@jiggai/kitchen 0.3.33 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +4 -0
  3. package/.next/build-manifest.json +5 -5
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +4 -4
  6. package/.next/required-server-files.json +4 -4
  7. package/.next/routes-manifest.json +24 -0
  8. package/.next/server/app/_global-error/page/build-manifest.json +3 -3
  9. package/.next/server/app/_global-error/page.js +2 -2
  10. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  11. package/.next/server/app/_global-error.html +2 -2
  12. package/.next/server/app/_global-error.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/.next/server/app/_not-found/page/build-manifest.json +3 -3
  19. package/.next/server/app/_not-found/page.js +2 -2
  20. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  21. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/_not-found.html +1 -1
  23. package/.next/server/app/_not-found.rsc +5 -5
  24. package/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
  25. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  26. package/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  27. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  28. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  29. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  30. package/.next/server/app/agents/[agentId]/page/build-manifest.json +3 -3
  31. package/.next/server/app/agents/[agentId]/page.js +2 -2
  32. package/.next/server/app/agents/[agentId]/page.js.nft.json +1 -1
  33. package/.next/server/app/agents/[agentId]/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/agents/[id]/route.js +1 -1
  35. package/.next/server/app/api/agents/[id]/route.js.nft.json +1 -1
  36. package/.next/server/app/api/agents/add/route.js.nft.json +1 -1
  37. package/.next/server/app/api/agents/file/route.js.nft.json +1 -1
  38. package/.next/server/app/api/agents/files/route.js.nft.json +1 -1
  39. package/.next/server/app/api/agents/route.js +1 -1
  40. package/.next/server/app/api/agents/route.js.nft.json +1 -1
  41. package/.next/server/app/api/agents/skills/install/route.js.nft.json +1 -1
  42. package/.next/server/app/api/agents/skills/route.js.nft.json +1 -1
  43. package/.next/server/app/api/agents/update/route.js.nft.json +1 -1
  44. package/.next/server/app/api/channels/bindings/route.js +1 -1
  45. package/.next/server/app/api/channels/bindings/route.js.nft.json +1 -1
  46. package/.next/server/app/api/cron/bulk/route/app-paths-manifest.json +3 -0
  47. package/.next/server/app/api/cron/bulk/route/build-manifest.json +11 -0
  48. package/.next/server/app/api/cron/bulk/route/server-reference-manifest.json +4 -0
  49. package/.next/server/app/api/cron/bulk/route.js +6 -0
  50. package/.next/server/app/api/cron/bulk/route.js.map +5 -0
  51. package/.next/server/app/api/cron/bulk/route.js.nft.json +1 -0
  52. package/.next/server/app/api/cron/bulk/route_client-reference-manifest.js +2 -0
  53. package/.next/server/app/api/cron/delete/route.js.nft.json +1 -1
  54. package/.next/server/app/api/cron/jobs/route.js.nft.json +1 -1
  55. package/.next/server/app/api/cron/recipe-installed/route.js.nft.json +1 -1
  56. package/.next/server/app/api/cron/worker/route.js +2 -1
  57. package/.next/server/app/api/cron/worker/route.js.nft.json +1 -1
  58. package/.next/server/app/api/goals/[id]/promote/route.js.nft.json +1 -1
  59. package/.next/server/app/api/goals/[id]/route.js.nft.json +1 -1
  60. package/.next/server/app/api/goals/route.js.nft.json +1 -1
  61. package/.next/server/app/api/ids/check/route.js.nft.json +1 -1
  62. package/.next/server/app/api/manifest/route/app-paths-manifest.json +3 -0
  63. package/.next/server/app/api/manifest/route/build-manifest.json +11 -0
  64. package/.next/server/app/api/manifest/route/server-reference-manifest.json +4 -0
  65. package/.next/server/app/api/manifest/route.js +6 -0
  66. package/.next/server/app/api/manifest/route.js.map +5 -0
  67. package/.next/server/app/api/manifest/route.js.nft.json +1 -0
  68. package/.next/server/app/api/manifest/route_client-reference-manifest.js +2 -0
  69. package/.next/server/app/api/marketplace/recipes/[slug]/route.js +1 -1
  70. package/.next/server/app/api/marketplace/recipes/[slug]/route.js.nft.json +1 -1
  71. package/.next/server/app/api/marketplace/recipes/route.js +1 -1
  72. package/.next/server/app/api/marketplace/recipes/route.js.nft.json +1 -1
  73. package/.next/server/app/api/plugins/[pluginId]/[...path]/route.js +2 -2
  74. package/.next/server/app/api/plugins/[pluginId]/[...path]/route.js.nft.json +1 -1
  75. package/.next/server/app/api/plugins/[pluginId]/tabs/[tabId]/route.js +1 -1
  76. package/.next/server/app/api/plugins/[pluginId]/tabs/[tabId]/route.js.nft.json +1 -1
  77. package/.next/server/app/api/plugins/route.js +1 -1
  78. package/.next/server/app/api/plugins/route.js.nft.json +1 -1
  79. package/.next/server/app/api/plugins/test/route.js +1 -1
  80. package/.next/server/app/api/plugins/test/route.js.nft.json +1 -1
  81. package/.next/server/app/api/recipes/[id]/route.js.nft.json +1 -1
  82. package/.next/server/app/api/recipes/clone/route.js.nft.json +1 -1
  83. package/.next/server/app/api/recipes/custom-team/route.js.nft.json +1 -1
  84. package/.next/server/app/api/recipes/delete/route.js.nft.json +1 -1
  85. package/.next/server/app/api/recipes/local-agent-catalog/route.js.nft.json +1 -1
  86. package/.next/server/app/api/recipes/route.js +1 -1
  87. package/.next/server/app/api/recipes/route.js.nft.json +1 -1
  88. package/.next/server/app/api/recipes/team-agents/route.js.nft.json +1 -1
  89. package/.next/server/app/api/scaffold/route.js.nft.json +1 -1
  90. package/.next/server/app/api/settings/cron-installation/route.js.nft.json +1 -1
  91. package/.next/server/app/api/settings/model-options/route.js +1 -1
  92. package/.next/server/app/api/settings/model-options/route.js.nft.json +1 -1
  93. package/.next/server/app/api/swarms/start/route.js +1 -1
  94. package/.next/server/app/api/swarms/start/route.js.nft.json +1 -1
  95. package/.next/server/app/api/swarms/status/route.js +1 -1
  96. package/.next/server/app/api/swarms/status/route.js.nft.json +1 -1
  97. package/.next/server/app/api/teams/[teamId]/media-providers/route.js +1 -1
  98. package/.next/server/app/api/teams/[teamId]/media-providers/route.js.nft.json +1 -1
  99. package/.next/server/app/api/teams/[teamId]/tickets/assign/route.js.nft.json +1 -1
  100. package/.next/server/app/api/teams/[teamId]/tickets/assignees/route.js.nft.json +1 -1
  101. package/.next/server/app/api/teams/[teamId]/tickets/comment/route.js.nft.json +1 -1
  102. package/.next/server/app/api/teams/[teamId]/tickets/delete/route.js.nft.json +1 -1
  103. package/.next/server/app/api/teams/[teamId]/tickets/move/route.js.nft.json +1 -1
  104. package/.next/server/app/api/teams/[teamId]/tickets/move-to-goals/route.js.nft.json +1 -1
  105. package/.next/server/app/api/teams/file/route.js.nft.json +1 -1
  106. package/.next/server/app/api/teams/files/route.js.nft.json +1 -1
  107. package/.next/server/app/api/teams/list/route/app-paths-manifest.json +3 -0
  108. package/.next/server/app/api/teams/list/route/build-manifest.json +11 -0
  109. package/.next/server/app/api/teams/list/route/server-reference-manifest.json +4 -0
  110. package/.next/server/app/api/teams/list/route.js +6 -0
  111. package/.next/server/app/api/teams/list/route.js.map +5 -0
  112. package/.next/server/app/api/teams/list/route.js.nft.json +1 -0
  113. package/.next/server/app/api/teams/list/route_client-reference-manifest.js +2 -0
  114. package/.next/server/app/api/teams/memory/route.js.nft.json +1 -1
  115. package/.next/server/app/api/teams/meta/route.js.nft.json +1 -1
  116. package/.next/server/app/api/teams/orchestrator/route.js +1 -1
  117. package/.next/server/app/api/teams/orchestrator/route.js.nft.json +1 -1
  118. package/.next/server/app/api/teams/remove-team/route.js.nft.json +1 -1
  119. package/.next/server/app/api/teams/skills/install/route.js.nft.json +1 -1
  120. package/.next/server/app/api/teams/skills/route.js.nft.json +1 -1
  121. package/.next/server/app/api/teams/workflow-deliverables/file/route.js +1 -1
  122. package/.next/server/app/api/teams/workflow-deliverables/file/route.js.nft.json +1 -1
  123. package/.next/server/app/api/teams/workflow-deliverables/route.js.nft.json +1 -1
  124. package/.next/server/app/api/teams/workflow-runs/route.js.nft.json +1 -1
  125. package/.next/server/app/api/teams/workflow-templates/route.js.nft.json +1 -1
  126. package/.next/server/app/api/teams/workflow-triggers/route/app-paths-manifest.json +3 -0
  127. package/.next/server/app/api/teams/workflow-triggers/route/build-manifest.json +11 -0
  128. package/.next/server/app/api/teams/workflow-triggers/route/server-reference-manifest.json +4 -0
  129. package/.next/server/app/api/teams/workflow-triggers/route.js +6 -0
  130. package/.next/server/app/api/teams/workflow-triggers/route.js.map +5 -0
  131. package/.next/server/app/api/teams/workflow-triggers/route.js.nft.json +1 -0
  132. package/.next/server/app/api/teams/workflow-triggers/route_client-reference-manifest.js +2 -0
  133. package/.next/server/app/api/teams/workflows/route.js.nft.json +1 -1
  134. package/.next/server/app/api/tickets/assign/route.js.nft.json +1 -1
  135. package/.next/server/app/api/tickets/assignees/route.js.nft.json +1 -1
  136. package/.next/server/app/api/tickets/move/route.js.nft.json +1 -1
  137. package/.next/server/app/channels/page/build-manifest.json +3 -3
  138. package/.next/server/app/channels/page.js +2 -2
  139. package/.next/server/app/channels/page.js.nft.json +1 -1
  140. package/.next/server/app/channels/page_client-reference-manifest.js +1 -1
  141. package/.next/server/app/channels.html +2 -2
  142. package/.next/server/app/channels.rsc +6 -6
  143. package/.next/server/app/channels.segments/_full.segment.rsc +6 -6
  144. package/.next/server/app/channels.segments/_head.segment.rsc +1 -1
  145. package/.next/server/app/channels.segments/_index.segment.rsc +3 -3
  146. package/.next/server/app/channels.segments/_tree.segment.rsc +2 -2
  147. package/.next/server/app/channels.segments/channels/__PAGE__.segment.rsc +2 -2
  148. package/.next/server/app/channels.segments/channels.segment.rsc +1 -1
  149. package/.next/server/app/cron-jobs/page/build-manifest.json +3 -3
  150. package/.next/server/app/cron-jobs/page.js +2 -2
  151. package/.next/server/app/cron-jobs/page.js.nft.json +1 -1
  152. package/.next/server/app/cron-jobs/page_client-reference-manifest.js +1 -1
  153. package/.next/server/app/goals/[id]/page/build-manifest.json +3 -3
  154. package/.next/server/app/goals/[id]/page.js +2 -2
  155. package/.next/server/app/goals/[id]/page.js.nft.json +1 -1
  156. package/.next/server/app/goals/[id]/page_client-reference-manifest.js +1 -1
  157. package/.next/server/app/goals/new/page/build-manifest.json +3 -3
  158. package/.next/server/app/goals/new/page.js +2 -2
  159. package/.next/server/app/goals/new/page.js.nft.json +1 -1
  160. package/.next/server/app/goals/new/page_client-reference-manifest.js +1 -1
  161. package/.next/server/app/goals/new.html +2 -2
  162. package/.next/server/app/goals/new.rsc +6 -6
  163. package/.next/server/app/goals/new.segments/_full.segment.rsc +6 -6
  164. package/.next/server/app/goals/new.segments/_head.segment.rsc +1 -1
  165. package/.next/server/app/goals/new.segments/_index.segment.rsc +3 -3
  166. package/.next/server/app/goals/new.segments/_tree.segment.rsc +2 -2
  167. package/.next/server/app/goals/new.segments/goals/new/__PAGE__.segment.rsc +2 -2
  168. package/.next/server/app/goals/new.segments/goals/new.segment.rsc +1 -1
  169. package/.next/server/app/goals/new.segments/goals.segment.rsc +1 -1
  170. package/.next/server/app/goals/page/build-manifest.json +3 -3
  171. package/.next/server/app/goals/page.js +2 -2
  172. package/.next/server/app/goals/page.js.nft.json +1 -1
  173. package/.next/server/app/goals/page_client-reference-manifest.js +1 -1
  174. package/.next/server/app/goals.html +1 -1
  175. package/.next/server/app/goals.rsc +6 -6
  176. package/.next/server/app/goals.segments/_full.segment.rsc +6 -6
  177. package/.next/server/app/goals.segments/_head.segment.rsc +1 -1
  178. package/.next/server/app/goals.segments/_index.segment.rsc +3 -3
  179. package/.next/server/app/goals.segments/_tree.segment.rsc +2 -2
  180. package/.next/server/app/goals.segments/goals/__PAGE__.segment.rsc +2 -2
  181. package/.next/server/app/goals.segments/goals.segment.rsc +1 -1
  182. package/.next/server/app/page/build-manifest.json +3 -3
  183. package/.next/server/app/page.js +4 -4
  184. package/.next/server/app/page.js.nft.json +1 -1
  185. package/.next/server/app/page_client-reference-manifest.js +1 -1
  186. package/.next/server/app/recipes/[id]/page/build-manifest.json +3 -3
  187. package/.next/server/app/recipes/[id]/page.js +4 -4
  188. package/.next/server/app/recipes/[id]/page.js.nft.json +1 -1
  189. package/.next/server/app/recipes/[id]/page_client-reference-manifest.js +1 -1
  190. package/.next/server/app/recipes/page/build-manifest.json +3 -3
  191. package/.next/server/app/recipes/page.js +4 -4
  192. package/.next/server/app/recipes/page.js.nft.json +1 -1
  193. package/.next/server/app/recipes/page_client-reference-manifest.js +1 -1
  194. package/.next/server/app/runs/page/build-manifest.json +3 -3
  195. package/.next/server/app/runs/page.js +5 -7
  196. package/.next/server/app/runs/page.js.nft.json +1 -1
  197. package/.next/server/app/runs/page_client-reference-manifest.js +1 -1
  198. package/.next/server/app/settings/page/build-manifest.json +3 -3
  199. package/.next/server/app/settings/page.js +2 -2
  200. package/.next/server/app/settings/page.js.nft.json +1 -1
  201. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  202. package/.next/server/app/settings.html +1 -1
  203. package/.next/server/app/settings.rsc +6 -6
  204. package/.next/server/app/settings.segments/_full.segment.rsc +6 -6
  205. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  206. package/.next/server/app/settings.segments/_index.segment.rsc +3 -3
  207. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  208. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  209. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  210. package/.next/server/app/teams/[teamId]/deliverables/page/build-manifest.json +3 -3
  211. package/.next/server/app/teams/[teamId]/deliverables/page.js +5 -5
  212. package/.next/server/app/teams/[teamId]/deliverables/page.js.nft.json +1 -1
  213. package/.next/server/app/teams/[teamId]/deliverables/page_client-reference-manifest.js +1 -1
  214. package/.next/server/app/teams/[teamId]/page/build-manifest.json +3 -3
  215. package/.next/server/app/teams/[teamId]/page.js +5 -6
  216. package/.next/server/app/teams/[teamId]/page.js.nft.json +1 -1
  217. package/.next/server/app/teams/[teamId]/page_client-reference-manifest.js +1 -1
  218. package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page/build-manifest.json +3 -3
  219. package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page.js +5 -6
  220. package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page.js.nft.json +1 -1
  221. package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page_client-reference-manifest.js +1 -1
  222. package/.next/server/app/teams/[teamId]/runs/page/build-manifest.json +3 -3
  223. package/.next/server/app/teams/[teamId]/runs/page.js +2 -2
  224. package/.next/server/app/teams/[teamId]/runs/page.js.nft.json +1 -1
  225. package/.next/server/app/teams/[teamId]/runs/page_client-reference-manifest.js +1 -1
  226. package/.next/server/app/teams/[teamId]/tickets/[ticket]/page/build-manifest.json +3 -3
  227. package/.next/server/app/teams/[teamId]/tickets/[ticket]/page.js +2 -2
  228. package/.next/server/app/teams/[teamId]/tickets/[ticket]/page.js.nft.json +1 -1
  229. package/.next/server/app/teams/[teamId]/tickets/[ticket]/page_client-reference-manifest.js +1 -1
  230. package/.next/server/app/teams/[teamId]/tickets/page/build-manifest.json +3 -3
  231. package/.next/server/app/teams/[teamId]/tickets/page.js +2 -2
  232. package/.next/server/app/teams/[teamId]/tickets/page.js.nft.json +1 -1
  233. package/.next/server/app/teams/[teamId]/tickets/page_client-reference-manifest.js +1 -1
  234. package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page/build-manifest.json +3 -3
  235. package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page.js +5 -5
  236. package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page.js.nft.json +1 -1
  237. package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page_client-reference-manifest.js +1 -1
  238. package/.next/server/app/teams/[teamId]/workflows/page/build-manifest.json +3 -3
  239. package/.next/server/app/teams/[teamId]/workflows/page.js +5 -5
  240. package/.next/server/app/teams/[teamId]/workflows/page.js.nft.json +1 -1
  241. package/.next/server/app/teams/[teamId]/workflows/page_client-reference-manifest.js +1 -1
  242. package/.next/server/app/tickets/[ticket]/page/build-manifest.json +3 -3
  243. package/.next/server/app/tickets/[ticket]/page.js +2 -2
  244. package/.next/server/app/tickets/[ticket]/page.js.nft.json +1 -1
  245. package/.next/server/app/tickets/[ticket]/page_client-reference-manifest.js +1 -1
  246. package/.next/server/app/tickets/page/build-manifest.json +3 -3
  247. package/.next/server/app/tickets/page.js +2 -2
  248. package/.next/server/app/tickets/page.js.nft.json +1 -1
  249. package/.next/server/app/tickets/page_client-reference-manifest.js +1 -1
  250. package/.next/server/app-paths-manifest.json +4 -0
  251. package/.next/server/chunks/[externals]_node:fs_ddf6f167._.js +3 -0
  252. package/.next/server/chunks/[externals]_node:fs_ddf6f167._.js.map +1 -0
  253. package/.next/server/chunks/[root-of-the-server]__00a30f40._.js +1 -1
  254. package/.next/server/chunks/[root-of-the-server]__03c5f2a6._.js +3 -0
  255. package/.next/server/chunks/[root-of-the-server]__03c5f2a6._.js.map +1 -0
  256. package/.next/server/chunks/[root-of-the-server]__04f289da._.js +1 -1
  257. package/.next/server/chunks/[root-of-the-server]__08b4c8f2._.js +1 -1
  258. package/.next/server/chunks/[root-of-the-server]__0b2c557c._.js +3 -0
  259. package/.next/server/chunks/[root-of-the-server]__0b2c557c._.js.map +1 -0
  260. package/.next/server/chunks/[root-of-the-server]__0f55461f._.js +1 -1
  261. package/.next/server/chunks/[root-of-the-server]__1311d7a3._.js +1 -1
  262. package/.next/server/chunks/[root-of-the-server]__1480ffda._.js +1 -1
  263. package/.next/server/chunks/{[root-of-the-server]__be5f57b2._.js → [root-of-the-server]__17fa6089._.js} +2 -2
  264. package/.next/server/chunks/[root-of-the-server]__1873f417._.js +1 -1
  265. package/.next/server/chunks/[root-of-the-server]__1d4f6506._.js +3 -0
  266. package/.next/server/chunks/[root-of-the-server]__1d4f6506._.js.map +1 -0
  267. package/.next/server/chunks/[root-of-the-server]__1f18c0c4._.js +3 -0
  268. package/.next/server/chunks/[root-of-the-server]__1f18c0c4._.js.map +1 -0
  269. package/.next/server/chunks/[root-of-the-server]__1f1e62ac._.js +1 -1
  270. package/.next/server/chunks/[root-of-the-server]__20b1f42d._.js +1 -1
  271. package/.next/server/chunks/[root-of-the-server]__21ad9eeb._.js +1 -1
  272. package/.next/server/chunks/[root-of-the-server]__2c207e60._.js +1 -1
  273. package/.next/server/chunks/[root-of-the-server]__2dd1afff._.js +1 -1
  274. package/.next/server/chunks/[root-of-the-server]__3021a250._.js +1 -1
  275. package/.next/server/chunks/[root-of-the-server]__30cd38e9._.js +1 -1
  276. package/.next/server/chunks/[root-of-the-server]__392e585d._.js +2 -2
  277. package/.next/server/chunks/[root-of-the-server]__3bfad714._.js +1 -1
  278. package/.next/server/chunks/[root-of-the-server]__3d15e850._.js +1 -1
  279. package/.next/server/chunks/[root-of-the-server]__3f648b9b._.js +1 -1
  280. package/.next/server/chunks/[root-of-the-server]__482575d2._.js +1 -1
  281. package/.next/server/chunks/[root-of-the-server]__4898071c._.js +4 -4
  282. package/.next/server/chunks/[root-of-the-server]__497e7a9d._.js +22 -0
  283. package/.next/server/chunks/[root-of-the-server]__497e7a9d._.js.map +1 -0
  284. package/.next/server/chunks/[root-of-the-server]__4ee12514._.js +1 -1
  285. package/.next/server/chunks/[root-of-the-server]__55defc7c._.js +1 -1
  286. package/.next/server/chunks/{[root-of-the-server]__74b80ca4._.js → [root-of-the-server]__5792c29e._.js} +2 -2
  287. package/.next/server/chunks/[root-of-the-server]__5aa1dc93._.js +1 -1
  288. package/.next/server/chunks/[root-of-the-server]__5c5990a6._.js +1 -1
  289. package/.next/server/chunks/[root-of-the-server]__603cb0fa._.js +1 -1
  290. package/.next/server/chunks/[root-of-the-server]__6131b7e2._.js +1 -1
  291. package/.next/server/chunks/[root-of-the-server]__6131b7e2._.js.map +1 -1
  292. package/.next/server/chunks/[root-of-the-server]__636919a0._.js +1 -1
  293. package/.next/server/chunks/[root-of-the-server]__653d42f0._.js +3 -0
  294. package/.next/server/chunks/[root-of-the-server]__653d42f0._.js.map +1 -0
  295. package/.next/server/chunks/[root-of-the-server]__663e79ff._.js +1 -1
  296. package/.next/server/chunks/{[root-of-the-server]__0883634a._.js → [root-of-the-server]__68a21bb1._.js} +2 -2
  297. package/.next/server/chunks/{[root-of-the-server]__0883634a._.js.map → [root-of-the-server]__68a21bb1._.js.map} +1 -1
  298. package/.next/server/chunks/[root-of-the-server]__69c065ce._.js +1 -1
  299. package/.next/server/chunks/[root-of-the-server]__6e463e5f._.js +3 -0
  300. package/.next/server/chunks/[root-of-the-server]__6e463e5f._.js.map +1 -0
  301. package/.next/server/chunks/{[root-of-the-server]__c1b0d50e._.js → [root-of-the-server]__7194dfe2._.js} +3 -3
  302. package/.next/server/chunks/{[root-of-the-server]__f45ceefb._.js → [root-of-the-server]__7347e39f._.js} +2 -2
  303. package/.next/server/chunks/{[root-of-the-server]__f45ceefb._.js.map → [root-of-the-server]__7347e39f._.js.map} +1 -1
  304. package/.next/server/chunks/[root-of-the-server]__74e2a9ba._.js +1 -1
  305. package/.next/server/chunks/[root-of-the-server]__7bdf9f6e._.js +1 -1
  306. package/.next/server/chunks/[root-of-the-server]__7bdf9f6e._.js.map +1 -1
  307. package/.next/server/chunks/[root-of-the-server]__7e12b9f4._.js +1 -1
  308. package/.next/server/chunks/[root-of-the-server]__87875179._.js +1 -1
  309. package/.next/server/chunks/{[root-of-the-server]__17124952._.js → [root-of-the-server]__89f2190c._.js} +3 -3
  310. package/.next/server/chunks/[root-of-the-server]__8f8e110f._.js +1 -1
  311. package/.next/server/chunks/[root-of-the-server]__91d0cce1._.js +1 -1
  312. package/.next/server/chunks/[root-of-the-server]__91d0cce1._.js.map +1 -1
  313. package/.next/server/chunks/[root-of-the-server]__937b40e2._.js +3 -0
  314. package/.next/server/chunks/[root-of-the-server]__937b40e2._.js.map +1 -0
  315. package/.next/server/chunks/[root-of-the-server]__9853b72d._.js +1 -1
  316. package/.next/server/chunks/[root-of-the-server]__9dba20b3._.js +1 -1
  317. package/.next/server/chunks/[root-of-the-server]__9e96d37b._.js +1 -1
  318. package/.next/server/chunks/[root-of-the-server]__aba68368._.js +1 -1
  319. package/.next/server/chunks/[root-of-the-server]__aed4e4f2._.js +1 -1
  320. package/.next/server/chunks/[root-of-the-server]__b6cff26d._.js +1 -1
  321. package/.next/server/chunks/{[root-of-the-server]__0bea0f71._.js → [root-of-the-server]__b986660c._.js} +2 -2
  322. package/.next/server/chunks/{[root-of-the-server]__0bea0f71._.js.map → [root-of-the-server]__b986660c._.js.map} +1 -1
  323. package/.next/server/chunks/{[root-of-the-server]__343776df._.js → [root-of-the-server]__bbed0e46._.js} +2 -2
  324. package/.next/server/chunks/[root-of-the-server]__c15c5141._.js +1 -1
  325. package/.next/server/chunks/[root-of-the-server]__c50e4bc4._.js +1 -1
  326. package/.next/server/chunks/[root-of-the-server]__cc0860cb._.js +1 -1
  327. package/.next/server/chunks/[root-of-the-server]__cc3ea05b._.js +3 -0
  328. package/.next/server/chunks/[root-of-the-server]__cc3ea05b._.js.map +1 -0
  329. package/.next/server/chunks/[root-of-the-server]__d302afb4._.js +1 -1
  330. package/.next/server/chunks/[root-of-the-server]__d4a8660e._.js +1 -1
  331. package/.next/server/chunks/[root-of-the-server]__e1432bba._.js +3 -0
  332. package/.next/server/chunks/[root-of-the-server]__e1432bba._.js.map +1 -0
  333. package/.next/server/chunks/[root-of-the-server]__e478ef0d._.js +1 -1
  334. package/.next/server/chunks/[root-of-the-server]__e9acbabd._.js +1 -1
  335. package/.next/server/chunks/[root-of-the-server]__e9d9d570._.js +1 -1
  336. package/.next/server/chunks/[root-of-the-server]__f408c708._.js +2 -2
  337. package/.next/server/chunks/[root-of-the-server]__f4cbadf7._.js +1 -1
  338. package/.next/server/chunks/[root-of-the-server]__f5cd81f1._.js +1 -1
  339. package/.next/server/chunks/[root-of-the-server]__f85b5a70._.js +3 -0
  340. package/.next/server/chunks/[root-of-the-server]__f85b5a70._.js.map +1 -0
  341. package/.next/server/chunks/[root-of-the-server]__f994dc62._.js +1 -1
  342. package/.next/server/chunks/[root-of-the-server]__fb22e719._.js +3 -0
  343. package/.next/server/chunks/[root-of-the-server]__fb22e719._.js.map +1 -0
  344. package/.next/server/chunks/_next-internal_server_app_api_cron_bulk_route_actions_30f8adb9.js +3 -0
  345. package/.next/server/chunks/_next-internal_server_app_api_cron_bulk_route_actions_30f8adb9.js.map +1 -0
  346. package/.next/server/chunks/_next-internal_server_app_api_manifest_route_actions_7f7622ff.js +3 -0
  347. package/.next/server/chunks/_next-internal_server_app_api_manifest_route_actions_7f7622ff.js.map +1 -0
  348. package/.next/server/chunks/_next-internal_server_app_api_teams_list_route_actions_5aa8c937.js +3 -0
  349. package/.next/server/chunks/_next-internal_server_app_api_teams_list_route_actions_5aa8c937.js.map +1 -0
  350. package/.next/server/chunks/_next-internal_server_app_api_teams_workflow-triggers_route_actions_e86e3b38.js +3 -0
  351. package/.next/server/chunks/_next-internal_server_app_api_teams_workflow-triggers_route_actions_e86e3b38.js.map +1 -0
  352. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_1fe98a49.js +1 -1
  353. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_1fe98a49.js.map +1 -1
  354. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_3a1b29e4.js +1 -1
  355. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_cb6ddb24.js +13 -0
  356. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_cb6ddb24.js.map +1 -0
  357. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f5680d9e.js +1 -1
  358. package/.next/server/chunks/node_modules_yaml_dist_49c13b35._.js +1 -1
  359. package/.next/server/chunks/node_modules_yaml_dist_49c13b35._.js.map +1 -1
  360. package/.next/server/chunks/ssr/[root-of-the-server]__195421b7._.js +2 -2
  361. package/.next/server/chunks/ssr/[root-of-the-server]__195421b7._.js.map +1 -1
  362. package/.next/server/chunks/ssr/[root-of-the-server]__2a657095._.js +3 -0
  363. package/.next/server/chunks/ssr/[root-of-the-server]__2a657095._.js.map +1 -0
  364. package/.next/server/chunks/ssr/[root-of-the-server]__3b880807._.js +1 -1
  365. package/.next/server/chunks/ssr/[root-of-the-server]__3b880807._.js.map +1 -1
  366. package/.next/server/chunks/ssr/[root-of-the-server]__3f55f975._.js +3 -0
  367. package/.next/server/chunks/ssr/[root-of-the-server]__3f55f975._.js.map +1 -0
  368. package/.next/server/chunks/ssr/[root-of-the-server]__471bc2e7._.js +1 -1
  369. package/.next/server/chunks/ssr/[root-of-the-server]__471bc2e7._.js.map +1 -1
  370. package/.next/server/chunks/ssr/[root-of-the-server]__4d24c088._.js +3 -0
  371. package/.next/server/chunks/ssr/[root-of-the-server]__4d24c088._.js.map +1 -0
  372. package/.next/server/chunks/ssr/[root-of-the-server]__6390ce9c._.js +3 -0
  373. package/.next/server/chunks/ssr/[root-of-the-server]__6390ce9c._.js.map +1 -0
  374. package/.next/server/chunks/ssr/[root-of-the-server]__7b8cdea5._.js +3 -0
  375. package/.next/server/chunks/ssr/[root-of-the-server]__7b8cdea5._.js.map +1 -0
  376. package/.next/server/chunks/ssr/[root-of-the-server]__7d21617d._.js +3 -0
  377. package/.next/server/chunks/ssr/[root-of-the-server]__7d21617d._.js.map +1 -0
  378. package/.next/server/chunks/ssr/[root-of-the-server]__8135c9d5._.js +3 -0
  379. package/.next/server/chunks/ssr/[root-of-the-server]__8135c9d5._.js.map +1 -0
  380. package/.next/server/chunks/ssr/{node_modules_next_dist_1038a5b9._.js → [root-of-the-server]__8e8f535b._.js} +2 -2
  381. package/.next/server/chunks/ssr/{node_modules_next_dist_1038a5b9._.js.map → [root-of-the-server]__8e8f535b._.js.map} +1 -1
  382. package/.next/server/chunks/ssr/[root-of-the-server]__92524828._.js +1 -1
  383. package/.next/server/chunks/ssr/[root-of-the-server]__92524828._.js.map +1 -1
  384. package/.next/server/chunks/ssr/[root-of-the-server]__997aa62c._.js +1 -1
  385. package/.next/server/chunks/ssr/[root-of-the-server]__997aa62c._.js.map +1 -1
  386. package/.next/server/chunks/ssr/[root-of-the-server]__9db1df87._.js +3 -0
  387. package/.next/server/chunks/ssr/[root-of-the-server]__9db1df87._.js.map +1 -0
  388. package/.next/server/chunks/ssr/[root-of-the-server]__9e1ab064._.js +1 -1
  389. package/.next/server/chunks/ssr/[root-of-the-server]__9e1ab064._.js.map +1 -1
  390. package/.next/server/chunks/ssr/[root-of-the-server]__a2e3966f._.js +3 -0
  391. package/.next/server/chunks/ssr/[root-of-the-server]__a2e3966f._.js.map +1 -0
  392. package/.next/server/chunks/ssr/[root-of-the-server]__af792402._.js +1 -1
  393. package/.next/server/chunks/ssr/[root-of-the-server]__af792402._.js.map +1 -1
  394. package/.next/server/chunks/ssr/[root-of-the-server]__b5f65083._.js +1 -1
  395. package/.next/server/chunks/ssr/[root-of-the-server]__b5f65083._.js.map +1 -1
  396. package/.next/server/chunks/ssr/[root-of-the-server]__becf14db._.js +3 -0
  397. package/.next/server/chunks/ssr/[root-of-the-server]__becf14db._.js.map +1 -0
  398. package/.next/server/chunks/ssr/[root-of-the-server]__c106a298._.js +3 -0
  399. package/.next/server/chunks/ssr/[root-of-the-server]__c106a298._.js.map +1 -0
  400. package/.next/server/chunks/ssr/[root-of-the-server]__cb91405c._.js +3 -0
  401. package/.next/server/chunks/ssr/[root-of-the-server]__cb91405c._.js.map +1 -0
  402. package/.next/server/chunks/ssr/[root-of-the-server]__f59c3144._.js +3 -0
  403. package/.next/server/chunks/ssr/[root-of-the-server]__f59c3144._.js.map +1 -0
  404. package/.next/server/chunks/ssr/[root-of-the-server]__fbe5ff69._.js +1 -1
  405. package/.next/server/chunks/ssr/[root-of-the-server]__fbe5ff69._.js.map +1 -1
  406. package/.next/server/chunks/ssr/_1ee3bd7b._.js +1 -1
  407. package/.next/server/chunks/ssr/_1ee3bd7b._.js.map +1 -1
  408. package/.next/server/chunks/ssr/{_deb7a691._.js → _2ab986a4._.js} +2 -2
  409. package/.next/server/chunks/ssr/_2ab986a4._.js.map +1 -0
  410. package/.next/server/chunks/ssr/_2d8d7232._.js +1 -1
  411. package/.next/server/chunks/ssr/_2d8d7232._.js.map +1 -1
  412. package/.next/server/chunks/ssr/_43a80c61._.js +1 -1
  413. package/.next/server/chunks/ssr/_43a80c61._.js.map +1 -1
  414. package/.next/server/chunks/ssr/_641f29bc._.js +3 -0
  415. package/.next/server/chunks/ssr/_641f29bc._.js.map +1 -0
  416. package/.next/server/chunks/ssr/_ac993243._.js +3 -0
  417. package/.next/server/chunks/ssr/_ac993243._.js.map +1 -0
  418. package/.next/server/chunks/ssr/_f636ce67._.js +3 -0
  419. package/.next/server/chunks/ssr/_f636ce67._.js.map +1 -0
  420. package/.next/server/chunks/ssr/b1a17_app_teams_[teamId]_workflows_[workflowId]_workflows-editor-client_tsx_5e714aa2._.js +7 -1
  421. package/.next/server/chunks/ssr/b1a17_app_teams_[teamId]_workflows_[workflowId]_workflows-editor-client_tsx_5e714aa2._.js.map +1 -1
  422. package/.next/server/chunks/ssr/{_7f9e89d2._.js → node_modules_next_10fb6ad9._.js} +3 -3
  423. package/.next/server/chunks/ssr/node_modules_next_10fb6ad9._.js.map +1 -0
  424. package/.next/server/chunks/ssr/node_modules_next_dist_25a30daf._.js +1 -1
  425. package/.next/server/chunks/ssr/node_modules_next_dist_compiled_bc6b8ddf._.js +1 -1
  426. package/.next/server/chunks/ssr/node_modules_yaml_dist_18db9ed7._.js +2 -2
  427. package/.next/server/chunks/ssr/src_13139e3d._.js +1 -1
  428. package/.next/server/chunks/ssr/src_13139e3d._.js.map +1 -1
  429. package/.next/server/chunks/ssr/src_2a73b867._.js +1 -1
  430. package/.next/server/chunks/ssr/src_2a73b867._.js.map +1 -1
  431. package/.next/server/chunks/ssr/src_2dbb3b7f._.js +1 -1
  432. package/.next/server/chunks/ssr/src_2dbb3b7f._.js.map +1 -1
  433. package/.next/server/chunks/ssr/src_417bc4a6._.js +1 -1
  434. package/.next/server/chunks/ssr/src_417bc4a6._.js.map +1 -1
  435. package/.next/server/chunks/ssr/src_59477309._.js +1 -1
  436. package/.next/server/chunks/ssr/src_59477309._.js.map +1 -1
  437. package/.next/server/chunks/ssr/src_79d55c05._.js +1 -1
  438. package/.next/server/chunks/ssr/src_79d55c05._.js.map +1 -1
  439. package/.next/server/chunks/ssr/src_app_HomeClient_tsx_f9f7568d._.js +1 -1
  440. package/.next/server/chunks/ssr/src_app_HomeClient_tsx_f9f7568d._.js.map +1 -1
  441. package/.next/server/chunks/ssr/src_app_agents_[agentId]_agent-editor_tsx_f85bbe65._.js +1 -1
  442. package/.next/server/chunks/ssr/src_app_agents_[agentId]_agent-editor_tsx_f85bbe65._.js.map +1 -1
  443. package/.next/server/chunks/ssr/src_app_cron-jobs_cron-jobs-client_tsx_ec91a73d._.js +1 -1
  444. package/.next/server/chunks/ssr/src_app_cron-jobs_cron-jobs-client_tsx_ec91a73d._.js.map +1 -1
  445. package/.next/server/chunks/ssr/src_app_recipes_[id]_RecipeEditor_index_tsx_98393217._.js +1 -1
  446. package/.next/server/chunks/ssr/src_app_recipes_[id]_RecipeEditor_index_tsx_98393217._.js.map +1 -1
  447. package/.next/server/chunks/ssr/src_app_recipes_recipes-client_tsx_8ed3ca94._.js +1 -1
  448. package/.next/server/chunks/ssr/src_app_recipes_recipes-client_tsx_8ed3ca94._.js.map +1 -1
  449. package/.next/server/chunks/ssr/src_app_teams_[teamId]_runs_[workflowId]_[runId]_run-detail-client_tsx_56f0cbd7._.js +3 -0
  450. package/.next/server/chunks/ssr/src_app_teams_[teamId]_runs_[workflowId]_[runId]_run-detail-client_tsx_56f0cbd7._.js.map +1 -0
  451. package/.next/server/chunks/ssr/src_app_teams_[teamId]_workflows_workflows-client_tsx_12742cc9._.js +1 -1
  452. package/.next/server/chunks/ssr/src_app_teams_[teamId]_workflows_workflows-client_tsx_12742cc9._.js.map +1 -1
  453. package/.next/server/chunks/ssr/src_app_tickets_TicketsBoardClient_tsx_5e156ef3._.js +1 -1
  454. package/.next/server/chunks/ssr/src_app_tickets_TicketsBoardClient_tsx_5e156ef3._.js.map +1 -1
  455. package/.next/server/middleware-build-manifest.js +3 -3
  456. package/.next/server/pages/404.html +1 -1
  457. package/.next/server/pages/500.html +2 -2
  458. package/.next/server/server-reference-manifest.js +1 -1
  459. package/.next/server/server-reference-manifest.json +1 -1
  460. package/.next/static/chunks/001f840e2d5598af.js +10 -0
  461. package/.next/static/chunks/212477db59154fa7.js +3 -0
  462. package/.next/static/chunks/242fee5849d79d1b.js +1 -0
  463. package/.next/static/chunks/26d8587a145bded7.js +1 -0
  464. package/.next/static/chunks/{b83c1ca03c3b8c6d.js → 372ac1d07db9969a.js} +1 -1
  465. package/.next/static/chunks/4a0d27f3023676a5.js +1 -0
  466. package/.next/static/chunks/4ad57cfc54e20abd.js +1 -0
  467. package/.next/static/chunks/4e8866ad8f1f6b2b.js +1 -0
  468. package/.next/static/chunks/7d9e7a36b92578fd.js +1 -0
  469. package/.next/static/chunks/87f63f654bc046a2.js +3 -0
  470. package/.next/static/chunks/8aac543d98940eb3.js +2 -0
  471. package/.next/static/chunks/8acd42df55d57556.js +1 -0
  472. package/.next/static/chunks/95b7564f2360e762.js +1 -0
  473. package/.next/static/chunks/9801fc48f532d076.js +1 -0
  474. package/.next/static/chunks/{d6e1b7307a9274ce.js → 9c627cb11f73ac4c.js} +1 -1
  475. package/.next/static/chunks/ad652e4b50e1fb17.js +1 -0
  476. package/.next/static/chunks/aff32612e6b9d901.js +1 -0
  477. package/.next/static/chunks/c6c561355e97baa8.js +7 -0
  478. package/.next/static/chunks/d4c855575c079ffc.js +3 -0
  479. package/.next/static/chunks/d593ea5e91e81b45.js +1 -0
  480. package/.next/static/chunks/{87879d67a1601ee0.js → e0984ec981f01c0d.js} +1 -1
  481. package/.next/static/chunks/f5039461b97678c7.js +1 -0
  482. package/.next/static/chunks/f51763a2aea0a4b6.js +1 -0
  483. package/.next/static/chunks/f7f157ba542e1ae5.js +1 -0
  484. package/.next/static/chunks/fb008837ba324b34.css +3 -0
  485. package/.next/static/chunks/{turbopack-dbf3078dbf5863bd.js → turbopack-bdd9478663f034d6.js} +1 -1
  486. package/LICENSE +192 -0
  487. package/README.md +19 -5
  488. package/openclaw/index.ts +154 -5
  489. package/openclaw.plugin.json +2 -8
  490. package/package.json +5 -2
  491. package/.next/server/chunks/[root-of-the-server]__18423bab._.js +0 -3
  492. package/.next/server/chunks/[root-of-the-server]__18423bab._.js.map +0 -1
  493. package/.next/server/chunks/[root-of-the-server]__35ec765d._.js +0 -13
  494. package/.next/server/chunks/[root-of-the-server]__35ec765d._.js.map +0 -1
  495. package/.next/server/chunks/[root-of-the-server]__3c92e5aa._.js +0 -3
  496. package/.next/server/chunks/[root-of-the-server]__3c92e5aa._.js.map +0 -1
  497. package/.next/server/chunks/[root-of-the-server]__813dd669._.js +0 -3
  498. package/.next/server/chunks/[root-of-the-server]__813dd669._.js.map +0 -1
  499. package/.next/server/chunks/[root-of-the-server]__b457b884._.js +0 -22
  500. package/.next/server/chunks/[root-of-the-server]__b457b884._.js.map +0 -1
  501. package/.next/server/chunks/[root-of-the-server]__c5e88cbb._.js +0 -3
  502. package/.next/server/chunks/[root-of-the-server]__c5e88cbb._.js.map +0 -1
  503. package/.next/server/chunks/[root-of-the-server]__da7df58d._.js +0 -3
  504. package/.next/server/chunks/[root-of-the-server]__da7df58d._.js.map +0 -1
  505. package/.next/server/chunks/ssr/[root-of-the-server]__0a5cb3ca._.js +0 -3
  506. package/.next/server/chunks/ssr/[root-of-the-server]__0a5cb3ca._.js.map +0 -1
  507. package/.next/server/chunks/ssr/[root-of-the-server]__177cec74._.js +0 -3
  508. package/.next/server/chunks/ssr/[root-of-the-server]__177cec74._.js.map +0 -1
  509. package/.next/server/chunks/ssr/[root-of-the-server]__4981f370._.js +0 -3
  510. package/.next/server/chunks/ssr/[root-of-the-server]__4981f370._.js.map +0 -1
  511. package/.next/server/chunks/ssr/[root-of-the-server]__51e26a01._.js +0 -3
  512. package/.next/server/chunks/ssr/[root-of-the-server]__51e26a01._.js.map +0 -1
  513. package/.next/server/chunks/ssr/[root-of-the-server]__6b6b7595._.js +0 -3
  514. package/.next/server/chunks/ssr/[root-of-the-server]__6b6b7595._.js.map +0 -1
  515. package/.next/server/chunks/ssr/[root-of-the-server]__8f9585b9._.js +0 -3
  516. package/.next/server/chunks/ssr/[root-of-the-server]__8f9585b9._.js.map +0 -1
  517. package/.next/server/chunks/ssr/[root-of-the-server]__9e400864._.js +0 -3
  518. package/.next/server/chunks/ssr/[root-of-the-server]__9e400864._.js.map +0 -1
  519. package/.next/server/chunks/ssr/[root-of-the-server]__a6348eaa._.js +0 -3
  520. package/.next/server/chunks/ssr/[root-of-the-server]__a6348eaa._.js.map +0 -1
  521. package/.next/server/chunks/ssr/[root-of-the-server]__ad4e8478._.js +0 -3
  522. package/.next/server/chunks/ssr/[root-of-the-server]__ad4e8478._.js.map +0 -1
  523. package/.next/server/chunks/ssr/[root-of-the-server]__b5aa14b8._.js +0 -3
  524. package/.next/server/chunks/ssr/[root-of-the-server]__b5aa14b8._.js.map +0 -1
  525. package/.next/server/chunks/ssr/[root-of-the-server]__b8998a21._.js +0 -3
  526. package/.next/server/chunks/ssr/[root-of-the-server]__b8998a21._.js.map +0 -1
  527. package/.next/server/chunks/ssr/[root-of-the-server]__e9bd9b71._.js +0 -3
  528. package/.next/server/chunks/ssr/[root-of-the-server]__e9bd9b71._.js.map +0 -1
  529. package/.next/server/chunks/ssr/_32beff4b._.js +0 -3
  530. package/.next/server/chunks/ssr/_32beff4b._.js.map +0 -1
  531. package/.next/server/chunks/ssr/_7f9e89d2._.js.map +0 -1
  532. package/.next/server/chunks/ssr/_8538617d._.js +0 -3
  533. package/.next/server/chunks/ssr/_8538617d._.js.map +0 -1
  534. package/.next/server/chunks/ssr/_a506fcf8._.js +0 -3
  535. package/.next/server/chunks/ssr/_a506fcf8._.js.map +0 -1
  536. package/.next/server/chunks/ssr/_deb7a691._.js.map +0 -1
  537. package/.next/server/chunks/ssr/d4b1c_modules_next_dist_server_route-modules_app-page_vendored_ssr_react-dom_6ef9314a.js +0 -3
  538. package/.next/server/chunks/ssr/d4b1c_modules_next_dist_server_route-modules_app-page_vendored_ssr_react-dom_6ef9314a.js.map +0 -1
  539. package/.next/server/chunks/ssr/src_app_21685f67._.js +0 -3
  540. package/.next/server/chunks/ssr/src_app_21685f67._.js.map +0 -1
  541. package/.next/static/chunks/0edab8a24d59a626.js +0 -2
  542. package/.next/static/chunks/410dc851d0e3033d.js +0 -1
  543. package/.next/static/chunks/4e38b3f280ced64c.js +0 -1
  544. package/.next/static/chunks/4f2b8a07ace7e02b.js +0 -1
  545. package/.next/static/chunks/57ad5290f7e92ffd.css +0 -3
  546. package/.next/static/chunks/8a919077b73862da.js +0 -1
  547. package/.next/static/chunks/9906444fb1191bb4.js +0 -1
  548. package/.next/static/chunks/a625725b4cd85ea3.js +0 -1
  549. package/.next/static/chunks/ac32974713c57cb3.js +0 -1
  550. package/.next/static/chunks/bdb7ebd88ea13111.js +0 -1
  551. package/.next/static/chunks/bfcfbe145220d365.js +0 -1
  552. package/.next/static/chunks/c0d9f53d91cc65c5.js +0 -10
  553. package/.next/static/chunks/c0e2f959abc4cc13.js +0 -1
  554. package/.next/static/chunks/c822e53f79a492c7.js +0 -1
  555. package/.next/static/chunks/ce6b2024d13b4333.js +0 -1
  556. package/.next/static/chunks/d13249af74d111cf.js +0 -3
  557. package/.next/static/chunks/d16f64ca3a8ed208.js +0 -1
  558. package/.next/static/chunks/d7541a171116ec9c.js +0 -1
  559. package/.next/static/chunks/e03137fd069b1514.js +0 -1
  560. package/.next/static/chunks/e10faa9296c8b246.js +0 -1
  561. package/.next/static/chunks/ec24877f7b7f82c5.js +0 -3
  562. package/.next/static/chunks/ff3bbb5df40b2cc4.js +0 -1
  563. /package/.next/server/chunks/{[root-of-the-server]__be5f57b2._.js.map → [root-of-the-server]__17fa6089._.js.map} +0 -0
  564. /package/.next/server/chunks/{[root-of-the-server]__74b80ca4._.js.map → [root-of-the-server]__5792c29e._.js.map} +0 -0
  565. /package/.next/server/chunks/{[root-of-the-server]__c1b0d50e._.js.map → [root-of-the-server]__7194dfe2._.js.map} +0 -0
  566. /package/.next/server/chunks/{[root-of-the-server]__17124952._.js.map → [root-of-the-server]__89f2190c._.js.map} +0 -0
  567. /package/.next/server/chunks/{[root-of-the-server]__343776df._.js.map → [root-of-the-server]__bbed0e46._.js.map} +0 -0
  568. /package/.next/static/{F0PhVXEIb3LrF9XQem5EQ → QPNWZUPFu-1zEy4dGcXv5}/_buildManifest.js +0 -0
  569. /package/.next/static/{F0PhVXEIb3LrF9XQem5EQ → QPNWZUPFu-1zEy4dGcXv5}/_clientMiddlewareManifest.json +0 -0
  570. /package/.next/static/{F0PhVXEIb3LrF9XQem5EQ → QPNWZUPFu-1zEy4dGcXv5}/_ssgManifest.js +0 -0
@@ -0,0 +1,7 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,87090,e=>{"use strict";var t=e.i(18050),r=e.i(71645),a=e.i(22016),o=e.i(18566),i=e.i(44355);function l(e){let t=new Set;for(let r of e)t.add(r);return t.size}let n={"media-image":{type:"tool",tool:"media.generate",label:"Generate Image",description:"Generate images using AI providers (DALL-E, Skills, etc.)",icon:"🎨",color:"#9333EA",category:"media",defaultConfig:{mediaType:"image",provider:"auto",prompt:"",size:"1024x1024",quality:"standard",style:"natural",outputPath:"shared-context/media/{{run.id}}_{{node.id}}.png"}},"media-video":{type:"tool",tool:"media.generate",label:"Generate Video",description:"Generate videos using AI providers",icon:"🎬",color:"#DC2626",category:"media",defaultConfig:{mediaType:"video",provider:"auto",prompt:"",duration:"5s",outputPath:"shared-context/media/{{run.id}}_{{node.id}}.mp4"}}},s=["{{run.id}}","{{workflow.name}}","{{workflow.id}}","{{date}}"],d={"social-media":"Professional social media image for: {{content}}","blog-header":"Blog header image representing: {{title}}","product-shot":"Product photography style image of: {{product}}",illustration:"Clean vector illustration of: {{concept}}",marketing:"Marketing banner image for: {{campaign}}"};function c({config:e,onChange:a,teamId:o,workflow:i,workflowNodeIds:l,workflowEdges:n,currentNodeId:c}){let[x,p]=(0,r.useState)([]),[m,u]=(0,r.useState)(!0),[h,g]=(0,r.useState)([]);(0,r.useEffect)(()=>{!async function(){try{let e=await fetch(`/api/teams/${o}/media-providers`);if(e.ok){let t=await e.json();p(t)}}catch(e){console.error("Failed to load media providers:",e)}finally{u(!1)}}()},[o]),(0,r.useEffect)(()=>{let t;g((t=[],e.prompt?.trim()||t.push("Prompt is required"),"image"===e.mediaType&&e.size&&!["256x256","512x512","1024x1024","1792x1024","1024x1792"].includes(e.size)&&t.push("Invalid image size"),"video"===e.mediaType&&e.duration&&!e.duration.match(/^\d+s?$/)&&t.push('Invalid video duration format (e.g., "5s")'),t))},[e]);let v=t=>{a({...e,...t})},f=x.filter(e=>e.available),b=x.find(t=>t.id===e.provider),y=(0,r.useRef)(null),[k,w]=(0,r.useState)(!1),j=(0,r.useRef)(null),N=(0,r.useMemo)(()=>[{variable:"{{run.id}}",type:"text"},{variable:"{{workflow.name}}",type:"text"},{variable:"{{workflow.id}}",type:"text"},{variable:"{{node.id}}",type:"text"},{variable:"{{date}}",type:"text"}],[]),S=(0,r.useMemo)(()=>{if(!l||!n||!c)return[];if(i&&i.nodes){let e=new Set,t=[c],r=new Set;for(;t.length>0;){let a=t.shift();if(!r.has(a))for(let o of(r.add(a),i.edges??[]))o.to!==a||o.from===c||e.has(o.from)||(e.add(o.from),t.push(o.from))}let a=[];for(let t of e){if("start"===t||"end"===t)continue;let e=i.nodes.find(e=>e.id===t);if(!e)continue;let r=String(e.name??e.id);a.push({nodeId:t,nodeName:r,fieldName:"output",fieldType:"text"}),a.push({nodeId:t,nodeName:r,fieldName:"text",fieldType:"text"});let o=e.config,l=o?.outputFields;if(Array.isArray(l))for(let e of l){let o=String(e.name??"").trim();o&&"output"!==o&&"text"!==o&&a.push({nodeId:t,nodeName:r,fieldName:o,fieldType:String(e.type??"text")})}}return a}return(function(e,t,r){let a=new Set,o=[r];for(;o.length>0;){let e=o.shift();for(let r of t)r.to!==e||a.has(r.from)||(a.add(r.from),o.push(r.from))}return[...e.filter(e=>a.has(e)&&"start"!==e&&"end"!==e).map(e=>`{{${e}.output}}`),...s]})(l,n,c).filter(e=>e.includes(".output")&&e.startsWith("{{")).map(e=>{let t=e.slice(2,-2),r=t.indexOf("."),a=t.substring(0,r);return{nodeId:a,nodeName:a,fieldName:"output",fieldType:"text"}})},[i,l,n,c]),C=(0,r.useMemo)(()=>{let e={};for(let t of S){let r=t.nodeId+"|"+t.nodeName;e[r]||(e[r]={nodeId:t.nodeId,nodeName:t.nodeName,fields:[]}),e[r].fields.push({name:t.fieldName,type:t.fieldType})}return Object.values(e)},[S]);(0,r.useEffect)(()=>{function e(e){j.current&&!j.current.contains(e.target)&&w(!1)}if(k)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[k]);let I=t=>{let r=y.current;if(!r){v({prompt:e.prompt+(e.prompt?" ":"")+t}),w(!1);return}let a=r.selectionStart,o=r.selectionEnd,i=r.value;v({prompt:i.substring(0,a)+t+i.substring(o)}),setTimeout(()=>{r.focus();let e=a+t.length;r.setSelectionRange(e,e)},0),w(!1)};return(0,t.jsxs)("div",{className:"space-y-3",children:[m&&(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[color:var(--ck-text-tertiary)]",children:[(0,t.jsx)("div",{className:"animate-spin w-3 h-3 border border-[color:var(--ck-border-subtle)] border-t-transparent rounded-full"}),"Detecting providers..."]}),!m&&0===f.length&&x.length>0&&(0,t.jsx)("div",{className:"mt-2 rounded-lg border border-amber-400/30 bg-amber-500/10 p-2 text-xs text-amber-50",children:(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("div",{className:"font-medium",children:"⚠️ Media providers detected but not available"}),(0,t.jsx)("div",{children:(0,t.jsx)("strong",{children:"Common Issues:"})}),x.some(e=>e.error?.includes("API key"))&&(0,t.jsx)("div",{children:"• Missing API keys - Check provider selection below for specific requirements"}),x.some(e=>e.error?.includes("not running"))&&(0,t.jsx)("div",{children:"• Local services not running - Start Stable Diffusion, ComfyUI, etc."}),(0,t.jsxs)("div",{children:["• ",(0,t.jsx)("a",{href:"https://docs.openclaw.ai/nodes/images",target:"_blank",rel:"noopener",className:"text-amber-100 underline hover:text-amber-50",children:"Setup troubleshooting →"})]})]})}),!m&&0===x.length&&(0,t.jsx)("div",{className:"rounded-lg border border-white/10 bg-white/5 p-3",children:(0,t.jsxs)("div",{className:"text-xs text-[color:var(--ck-text-secondary)] space-y-2",children:[(0,t.jsx)("p",{className:"font-medium text-[color:var(--ck-text-primary)]",children:"⚠️ No media generation providers detected"}),(0,t.jsxs)("div",{className:"space-y-1 text-[color:var(--ck-text-tertiary)]",children:[(0,t.jsx)("p",{children:(0,t.jsx)("strong",{children:"Setup Options:"})}),(0,t.jsxs)("p",{children:["• ",(0,t.jsx)("a",{href:"https://docs.openclaw.ai/nodes/images",target:"_blank",rel:"noopener",className:"text-blue-400 hover:text-blue-300 hover:underline",children:"Configure image generation models →"})]}),(0,t.jsxs)("p",{children:["• ",(0,t.jsx)("a",{href:"https://clawhub.ai/skills?q=image",target:"_blank",rel:"noopener",className:"text-blue-400 hover:text-blue-300 hover:underline",children:"Install image generation skills →"})]}),(0,t.jsxs)("p",{children:["• ",(0,t.jsx)("a",{href:"https://docs.openclaw.ai/setup/providers#openai",target:"_blank",rel:"noopener",className:"text-blue-400 hover:text-blue-300 hover:underline",children:"Add OpenAI API key for DALL-E →"})]})]})]})}),!m&&x.length>0&&(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"provider"}),(0,t.jsxs)("select",{value:e.provider,onChange:e=>v({provider:e.target.value}),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"auto",children:"Auto-detect (recommended)"}),x.map(e=>(0,t.jsxs)("option",{value:e.id,children:[e.name,e.available?e.models&&e.models.length>0?` (${e.models.join(", ")})`:" ✓":" ⚠️"]},e.id))]}),b&&(0,t.jsxs)("div",{className:"mt-1 space-y-1",children:[(0,t.jsxs)("div",{className:"text-[10px] text-[color:var(--ck-text-tertiary)]",children:["Supports: ",b.supportedTypes.join(", "),b.models&&b.models.length>0&&(0,t.jsxs)("span",{className:"ml-2",children:["• Models: ",b.models.join(", ")]})]}),b.error&&(0,t.jsxs)("div",{className:"mt-2 rounded-lg border border-red-400/30 bg-red-500/10 p-2 text-xs text-red-100",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"font-medium",children:"⚠️ Setup Required:"})," ",b.error]}),"openai"===b.id&&b.error.includes("OPENAI_API_KEY")&&(0,t.jsxs)("div",{className:"mt-1",children:["Add your OpenAI API key to environment variables or OpenClaw config."," ",(0,t.jsx)("a",{href:"https://docs.openclaw.ai/setup/providers#openai",target:"_blank",rel:"noopener",className:"text-red-200 underline hover:text-red-100",children:"Setup guide →"})]}),"skills"===b.id&&b.error.includes("API keys")&&(0,t.jsxs)("div",{className:"mt-1",children:["Skills require API keys (OPENAI_API_KEY, EVOLINK_API_KEY)."," ",(0,t.jsx)("a",{href:"https://clawhub.ai/skills?q=image",target:"_blank",rel:"noopener",className:"text-red-200 underline hover:text-red-100",children:"Browse skills →"})]}),b.id.startsWith("http-")&&(0,t.jsxs)("div",{className:"mt-1",children:["Start the local service or configure a different endpoint."," ",(0,t.jsx)("a",{href:"https://docs.openclaw.ai/nodes/images#local-endpoints",target:"_blank",rel:"noopener",className:"text-red-200 underline hover:text-red-100",children:"Local setup →"})]})]})]})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"prompt"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("textarea",{ref:y,value:e.prompt,onChange:e=>v({prompt:e.target.value}),placeholder:"Describe the image or video you want to generate...",rows:3,className:"mt-1 w-full resize-none rounded-lg border border-white/10 bg-white/5 p-2 pr-12 text-xs text-[color:var(--ck-text-primary)]"}),(0,t.jsxs)("div",{className:"absolute top-1 right-1",ref:j,children:[(0,t.jsx)("button",{type:"button",onClick:()=>w(!k),className:"rounded-lg border border-white/10 bg-black/30 px-2 py-1 text-[9px] text-[color:var(--ck-text-secondary)] hover:bg-white/10 hover:text-[color:var(--ck-text-primary)]",title:"Insert variable",children:"{{}}"}),k&&(0,t.jsx)("div",{className:"absolute right-0 top-8 z-50 w-72 max-h-80 overflow-auto rounded-lg border border-white/15 bg-black/80 backdrop-blur shadow-[var(--ck-shadow-1)]",children:(0,t.jsxs)("div",{className:"p-1",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"px-2 py-1 text-[10px] font-medium uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"Globals"}),N.map(({variable:e,type:r})=>(0,t.jsxs)("button",{type:"button",onClick:()=>I(e),className:"w-full flex items-center justify-between gap-2 rounded-lg px-2 py-1 text-left text-xs text-[color:var(--ck-text-primary)] hover:bg-white/10 cursor-pointer",children:[(0,t.jsx)("span",{className:"font-mono",children:e}),(0,t.jsx)("span",{className:"text-[9px] px-1 py-0.5 rounded-sm bg-black/30 text-blue-400",children:r})]},e))]}),C.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"px-2 py-1 text-[10px] font-medium uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:e.nodeName}),e.fields.map(r=>{let a=`{{${e.nodeId}.${r.name}}}`,o="text"===r.type?"text-blue-400":"list"===r.type?"text-green-400":"json"===r.type?"text-amber-400":"text-gray-400";return(0,t.jsxs)("button",{type:"button",onClick:()=>I(a),className:"w-full flex items-center justify-between gap-2 rounded-lg px-2 py-1 text-left text-xs text-[color:var(--ck-text-primary)] hover:bg-white/10 cursor-pointer",children:[(0,t.jsx)("span",{className:"font-mono",children:a}),(0,t.jsx)("span",{className:`text-[9px] px-1 py-0.5 rounded-sm bg-black/30 ${o}`,children:r.type})]},`${e.nodeId}.${r.name}`)})]},e.nodeId)),0===C.length&&(0,t.jsx)("div",{className:"px-2 py-3 text-xs text-[color:var(--ck-text-secondary)]",children:"Tip: Add output fields to upstream nodes to see node-specific variables here."})]})})]})]}),(0,t.jsx)("div",{className:"mt-1 flex gap-1 flex-wrap",children:Object.entries(d).map(([e,r])=>(0,t.jsx)("button",{onClick:()=>v({prompt:r}),className:"rounded-lg bg-white/5 px-2 py-0.5 text-[9px] text-[color:var(--ck-text-tertiary)] hover:bg-black/30",type:"button",children:e},e))}),(0,t.jsx)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)]",children:"Use template variables for dynamic content. Quick templates available above."})]}),"image"===e.mediaType&&(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"size"}),(0,t.jsxs)("select",{value:e.size||"1024x1024",onChange:e=>v({size:e.target.value}),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"1024x1024",children:"Square (1024×1024)"}),(0,t.jsx)("option",{value:"1792x1024",children:"Landscape (1792×1024)"}),(0,t.jsx)("option",{value:"1024x1792",children:"Portrait (1024×1792)"}),(0,t.jsx)("option",{value:"512x512",children:"Small Square (512×512)"})]})]}),b?.id==="openai"&&(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"quality"}),(0,t.jsxs)("select",{value:e.quality||"standard",onChange:e=>v({quality:e.target.value}),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"standard",children:"Standard"}),(0,t.jsx)("option",{value:"hd",children:"HD (higher cost)"})]})]})]}),b?.id==="openai"&&"image"===e.mediaType&&(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"style"}),(0,t.jsxs)("select",{value:e.style||"natural",onChange:e=>v({style:e.target.value}),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"natural",children:"Natural"}),(0,t.jsx)("option",{value:"vivid",children:"Vivid"})]})]}),"video"===e.mediaType&&(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"aspect ratio"}),(0,t.jsxs)("select",{value:e.aspect_ratio||"16:9",onChange:e=>v({aspect_ratio:e.target.value}),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"16:9",children:"Landscape (16:9)"}),(0,t.jsx)("option",{value:"9:16",children:"Portrait (9:16)"}),(0,t.jsx)("option",{value:"1:1",children:"Square (1:1)"}),(0,t.jsx)("option",{value:"4:3",children:"Standard (4:3)"}),(0,t.jsx)("option",{value:"3:4",children:"Portrait (3:4)"}),(0,t.jsx)("option",{value:"21:9",children:"Ultrawide (21:9)"})]})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"duration"}),(0,t.jsx)("input",{type:"text",value:e.duration||"5s",onChange:e=>v({duration:e.target.value}),placeholder:"e.g., 5s, 10s",className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]"}),b?.durationConstraints?(0,t.jsxs)("div",{className:"mt-1 flex items-center gap-1 text-[10px] text-amber-400/80",children:[(0,t.jsx)("span",{children:"ℹ️"}),(0,t.jsxs)("span",{children:[b.name,": ",b.durationConstraints.minSeconds,"–",b.durationConstraints.maxSeconds,"s (default ",b.durationConstraints.defaultSeconds,"s)"]})]}):(0,t.jsx)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)]",children:'Duration in seconds (e.g., "5s", "10s")'})]})]}),("video"===e.mediaType||"audio"===e.mediaType)&&(0,t.jsxs)("label",{className:"flex items-center gap-2 py-1",children:[(0,t.jsx)("input",{type:"checkbox",checked:!0===e.addRefinement||"true"===e.addRefinement,onChange:e=>v({addRefinement:e.target.checked}),className:"h-3.5 w-3.5 rounded border-white/20 bg-white/5 text-blue-500 accent-blue-500"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"Add LLM Refinement"}),(0,t.jsx)("div",{className:"text-[10px] text-[color:var(--ck-text-tertiary)] opacity-60",children:"Run an extra LLM pass to refine the prompt before generation. Off by default."})]})]}),h.length>0&&(0,t.jsxs)("div",{className:"mt-2 rounded-lg border border-red-400/30 bg-red-500/10 p-2 text-xs text-red-100",children:[(0,t.jsx)("div",{className:"font-medium mb-1",children:"Configuration Issues:"}),(0,t.jsx)("div",{className:"space-y-0.5",children:h.map((e,r)=>(0,t.jsxs)("div",{children:["• ",e]},r))})]})]})}var x=e.i(74080);function p({open:e}){return e?(0,x.createPortal)((0,t.jsxs)("div",{className:"fixed inset-0 z-[9999]",children:[(0,t.jsx)("div",{className:"fixed inset-0 bg-[color:var(--ck-bg-base)]/90 pointer-events-none"}),(0,t.jsx)("div",{className:"fixed inset-0 flex items-center justify-center p-6 sm:p-10",children:(0,t.jsxs)("div",{className:"w-full max-w-md rounded-2xl border border-white/10 bg-[color:var(--ck-bg-soft)] p-8 sm:p-10 shadow-[var(--ck-shadow-2)]",children:[(0,t.jsx)("div",{className:"text-xl font-semibold text-[color:var(--ck-text-primary)]",children:"Gathering your ingredients.."}),(0,t.jsx)("div",{className:"mt-6 h-1.5 w-full overflow-hidden rounded-full bg-white/10",children:(0,t.jsx)("div",{className:"h-full w-1/3 animate-[loading-bar_1.5s_ease-in-out_infinite] rounded-full bg-[var(--ck-accent-red)]"})})]})}),(0,t.jsx)("style",{children:`
2
+ @keyframes loading-bar {
3
+ 0% { transform: translateX(-100%); }
4
+ 50% { transform: translateX(200%); }
5
+ 100% { transform: translateX(-100%); }
6
+ }
7
+ `})]}),document.body):null}function m({targetTextareaRef:e,workflow:a,currentNodeId:o,onInsert:i}){let[l,n]=(0,r.useState)(!1),s=(0,r.useRef)(null),d=(0,r.useMemo)(()=>(function(e,t){let r=[],a=new Set,o=[t],i=new Set;for(;o.length>0;){let r=o.shift();if(!i.has(r))for(let l of(i.add(r),e.edges??[]))l.to!==r||a.has(l.from)||l.from===t||(a.add(l.from),o.push(l.from))}for(let t of a){let a=e.nodes.find(e=>e.id===t);if(!a)continue;let o=a.name||t,i=a.config&&"object"==typeof a.config&&!Array.isArray(a.config)?a.config:{};r.push({nodeId:t,nodeName:o,fieldName:"output",fieldType:"text"},{nodeId:t,nodeName:o,fieldName:"text",fieldType:"text"});let l=i.outputFields;if(Array.isArray(l))for(let e of l)e.name?.trim()&&r.push({nodeId:t,nodeName:o,fieldName:e.name.trim(),fieldType:e.type||"text"})}return r})(a,o),[a,o]),c=(0,r.useMemo)(()=>[{variable:"{{run.id}}",type:"text"},{variable:"{{workflow.name}}",type:"text"},{variable:"{{workflow.id}}",type:"text"},{variable:"{{node.id}}",type:"text"},{variable:"{{date}}",type:"text"}],[]);(0,r.useEffect)(()=>{function e(e){s.current&&!s.current.contains(e.target)&&n(!1)}if(l)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[l]);let x=t=>{let r=e.current;if(r){let e=r.selectionStart,a=r.selectionEnd,o=r.value,l=o.substring(0,e)+t+o.substring(a);i&&(i(l),setTimeout(()=>{r.focus();let a=e+t.length;r.setSelectionRange(a,a)},0))}n(!1)},p=d.reduce((e,t)=>{let r=`${t.nodeId}|${t.nodeName}`;return e[r]||(e[r]={nodeId:t.nodeId,nodeName:t.nodeName,fields:[]}),e[r].fields.push({name:t.fieldName,type:t.fieldType}),e},{});return(0,t.jsxs)("div",{className:"absolute top-1 right-1",ref:s,children:[(0,t.jsx)("button",{type:"button",onClick:()=>n(!l),className:"rounded-lg border border-white/10 bg-black/30 px-2 py-1 text-[9px] text-[color:var(--ck-text-secondary)] hover:bg-white/10 hover:text-[color:var(--ck-text-primary)]",title:"Insert variable",children:"{{}}"}),l&&(0,t.jsx)("div",{className:"absolute right-0 top-8 z-50 w-72 max-h-80 overflow-auto rounded-lg border border-white/15 bg-black/80 backdrop-blur shadow-[var(--ck-shadow-1)]",children:(0,t.jsxs)("div",{className:"p-1",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"px-2 py-1 text-[10px] font-medium uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"Globals"}),c.map(({variable:e,type:r})=>(0,t.jsxs)("button",{type:"button",onClick:()=>x(e),className:"w-full flex items-center justify-between gap-2 rounded-lg px-2 py-1 text-left text-xs text-[color:var(--ck-text-primary)] hover:bg-white/10 cursor-pointer",children:[(0,t.jsx)("span",{className:"font-mono",children:e}),(0,t.jsx)("span",{className:"text-[9px] px-1 py-0.5 rounded-sm bg-black/30 text-blue-400",children:r})]},e))]}),Object.values(p).map(e=>(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"px-2 py-1 text-[10px] font-medium uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:e.nodeName}),e.fields.map(r=>{let a=`{{${e.nodeId}.${r.name}}}`,o="text"===r.type?"text-blue-400":"list"===r.type?"text-green-400":"json"===r.type?"text-amber-400":"text-gray-400";return(0,t.jsxs)("button",{type:"button",onClick:()=>x(a),className:"w-full flex items-center justify-between gap-2 rounded-lg px-2 py-1 text-left text-xs text-[color:var(--ck-text-primary)] hover:bg-white/10 cursor-pointer",children:[(0,t.jsx)("span",{className:"font-mono",children:a}),(0,t.jsx)("span",{className:`text-[9px] px-1 py-0.5 rounded-sm bg-black/30 ${o}`,children:r.type})]},`${e.nodeId}.${r.name}`)})]},e.nodeId)),0===d.length&&(0,t.jsx)("div",{className:"px-2 py-3 text-xs text-[color:var(--ck-text-secondary)]",children:"Tip: Add output fields to upstream nodes to see node-specific variables here."})]})})]})}function u({value:e,onChangeValue:a,workflow:o,currentNodeId:i,className:l,placeholder:n,spellCheck:s}){let d=(0,r.useRef)(null);return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("textarea",{ref:d,value:e,onChange:e=>a(e.target.value),className:l,placeholder:n,spellCheck:s}),(0,t.jsx)(m,{targetTextareaRef:d,workflow:o,currentNodeId:i,onInsert:e=>a(e)})]})}function h({outputFields:e,onChange:r}){return(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"output fields (optional)"}),(0,t.jsx)("div",{className:"text-[9px] text-[color:var(--ck-text-secondary)] mb-2",children:"Define what this node produces for downstream nodes"}),(0,t.jsxs)("div",{className:"space-y-1",children:[e.map((a,o)=>(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{value:a.name,onChange:t=>{let i=[...e];i[o]={...a,name:t.target.value},r(i)},className:"flex-1 rounded-lg border border-white/10 bg-black/30 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"Field name"}),(0,t.jsxs)("select",{value:a.type,onChange:t=>{let i=t.target.value,l=[...e];l[o]={...a,type:i},r(l)},className:"rounded-lg border border-white/10 bg-black/30 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"text",children:"text"}),(0,t.jsx)("option",{value:"list",children:"list"}),(0,t.jsx)("option",{value:"json",children:"json"})]}),(0,t.jsx)("button",{type:"button",onClick:()=>{r(e.filter((e,t)=>t!==o))},className:"text-xs text-[color:var(--ck-text-tertiary)] hover:text-[color:var(--ck-text-primary)]",children:"×"})]},o)),(0,t.jsx)("button",{type:"button",onClick:()=>{r([...e,{name:"",type:"text"}])},className:"text-xs text-[color:var(--ck-text-secondary)] hover:text-[color:var(--ck-text-primary)]",children:"+ Add field"})]})]})}function g(e,t){return`ck-wf-draft:${e}:${t}`}function v({teamId:e,workflowId:s,draft:d,llmTaskEnabled:x}){let m,v,f,b,y,k,w,j,N,S,C,I,T,A,M,$,L,O,E,R,_,P,z,W,B,F,D,U=(0,o.useRouter)(),[q,J]=(0,r.useState)("canvas"),[V,K]=(0,r.useState)(!1),[G,H]=(0,r.useState)({kind:"loading"}),[Y,Z]=(0,r.useState)(""),[X,Q]=(0,r.useState)("idle"),[ee,et]=(0,r.useState)(""),er=(0,r.useRef)(null),[ea,eo]=(0,r.useState)(!1),[ei,el]=(0,r.useState)(1),en=(0,r.useRef)(null),[es,ed]=(0,r.useState)(""),[ec,ex]=(0,r.useState)(null),[ep,em]=(0,r.useState)({kind:"select"}),[eu,eh]=(0,r.useState)(""),[eg,ev]=(0,r.useState)([]),[ef,eb]=(0,r.useState)(""),[ey,ek]=(0,r.useState)([]),[ew,ej]=(0,r.useState)(""),[eN,eS]=(0,r.useState)([]),[eC,eI]=(0,r.useState)(""),[eT,eA]=(0,r.useState)([]),[eM,e$]=(0,r.useState)({}),[eL,eO]=(0,r.useState)(!1),[eE,eR]=(0,r.useState)({}),[e_,eP]=(0,r.useState)({}),[ez,eW]=(0,r.useState)({}),eB=(0,r.useMemo)(()=>/Tool not available:\s*gateway/i.test(String(ew||"")),[ew]),[eF,eD]=(0,r.useState)([]),[eU,eq]=(0,r.useState)(!1),[eJ,eV]=(0,r.useState)(!1),[eK,eG]=(0,r.useState)(""),[eH,eY]=(0,r.useState)(""),[eZ,eX]=(0,r.useState)(!1),[eQ,e0]=(0,r.useState)(""),[e1,e2]=(0,r.useState)({}),[e5,e3]=(0,r.useState)(!1),[e4,e6]=(0,r.useState)(!1),[e9,e8]=(0,r.useState)(""),[e7,te]=(0,r.useState)(""),[tt,tr]=(0,r.useState)(""),[ta,to]=(0,r.useState)("llm"),[ti,tl]=(0,r.useState)(""),[tn,ts]=(0,r.useState)(""),[td,tc]=(0,r.useState)("");function tx(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function tp(e){if(!tx(e))return null;let t=tx(e.match)?e.match:null;if(!t)return null;let r=String(t.channel??"").trim();if(!r)return null;let a=String(e.agentId??"").trim(),o=String(t.accountId??"").trim(),i=tx(t.peer)?t.peer:null,l=i?String(i.kind??"").trim():"",n=i?String(i.id??"").trim():"",s=n||o;if(!s)return null;let d=a||(o?`${r}:account:${o}`:`${r}:${l}:${n}`),c=[r];return a&&c.push(a),o&&c.push(`account:${o}`),l&&n&&c.push(`${l}:${n}`),{id:d,label:c.join(" · "),channel:r,target:s}}(0,r.useEffect)(()=>{(async()=>{try{if(d){let t=sessionStorage.getItem(g(e,s));if(t)return void H({kind:"ready",jsonText:t});let r=JSON.stringify({schema:"clawkitchen.workflow.v1",id:s,name:"New workflow",timezone:"UTC",nodes:[{id:"start",type:"start",name:"start",x:80,y:80,config:{}},{id:"end",type:"end",name:"end",x:520,y:80,config:{}}],edges:[{id:"e1",from:"start",to:"end"}]},null,2)+"\n";H({kind:"ready",jsonText:r});try{sessionStorage.setItem(g(e,s),r)}catch{}return}let t=await fetch(`/api/teams/workflows?teamId=${encodeURIComponent(e)}&id=${encodeURIComponent(s)}`,{cache:"no-store"}),r=await t.json();if(!t.ok||!r.ok)throw Error(r.error||"Failed to load workflow");H({kind:"ready",jsonText:JSON.stringify(r.workflow,null,2)+"\n"})}catch(e){H({kind:"error",error:e instanceof Error?e.message:String(e)})}})()},[e,s,d]),(0,r.useEffect)(()=>{(async()=>{eb("");try{let t=await fetch("/api/agents",{cache:"no-store"}),r=await t.json();if(!t.ok)throw Error(r.error||r.message||"Failed to load agents");let a=(Array.isArray(r.agents)?r.agents:[]).map(e=>({id:String(e.id??"").trim(),identityName:"string"==typeof e.identityName?e.identityName:void 0})).filter(t=>t.id&&t.id.startsWith(`${e}-`));ev(a)}catch(e){eb(e instanceof Error?e.message:String(e)),ev([])}})()},[e]),(0,r.useEffect)(()=>{(async()=>{ej("");try{let e=await fetch("/api/channels/bindings",{cache:"no-store"}),t=await e.json();if(!e.ok||!1===t.ok)throw Error(t.error||"Failed to load bindings");let r=(Array.isArray(t.bindings)?t.bindings:[]).map(tp).filter(Boolean);ek(r)}catch(e){ej(e instanceof Error?e.message:String(e)),ek([])}})()},[]),(0,r.useEffect)(()=>{(async()=>{eI("");try{let e=await fetch("/api/settings/model-options",{cache:"no-store"}),t=await e.json();if(!e.ok||!1===t.ok)throw Error(t.error||"Failed to load model options");let r=Array.isArray(t.models)?Array.from(new Set(t.models.map(e=>String(e??"").trim()).filter(Boolean))):[];eS(r)}catch(e){eI(e instanceof Error?e.message:String(e)),eS([])}})()},[]);let tm=(0,r.useCallback)(async()=>{e0(""),eX(!0);try{let e=await fetch("/api/cron/jobs",{cache:"no-store"}),t=await e.json();if(!e.ok||!1===t.ok)throw Error(t.error||"Failed to load cron jobs");let r=Array.isArray(t.jobs)?t.jobs:[],a={};for(let e of r){if(!e||!e.enabled)continue;let t=String(e.name??""),r=String(e.payload?.message??"");if(!(t.startsWith("workflow-worker:")||r.includes("worker-tick")))continue;let o=t.match(/^workflow-worker:[^:]+:(.+)$/);if(o?.[1]){a[o[1]]=!0;continue}let i=r.match(/--agent-id\s+(\S+)/);if(i?.[1]){a[i[1]]=!0;continue}let l=String(e.agentId??"").trim();l&&"main"!==l&&(a[l]=!0)}return e2(a),a}catch(e){return e0(e instanceof Error?e.message:String(e)),e2({}),{}}finally{eX(!1)}},[]);(0,r.useEffect)(()=>{tm()},[tm]);let tu=(0,r.useMemo)(()=>{if("ready"!==G.kind)return{wf:null,err:""};try{return{wf:JSON.parse(G.jsonText),err:""}}catch(e){return{wf:null,err:e instanceof Error?e.message:String(e)}}},[G]),th=(0,r.useMemo)(()=>tu.wf?function(e){let t=[],r=[];"clawkitchen.workflow.v1"!==e.schema&&t.push(`schema must be clawkitchen.workflow.v1 (got ${String(e.schema)})`),String(e.id||"").trim()||t.push("id is required"),String(e.name||"").trim()||t.push("name is required");let a=Array.isArray(e.nodes)?e.nodes:[],o=Array.isArray(e.edges)?e.edges:[],i=Array.isArray(e.triggers)?e.triggers:[],n=a.map(e=>String(e?.id??"").trim()).filter(Boolean);n.length!==a.length&&t.push("all nodes must have a non-empty id"),l(n)!==n.length&&t.push("node ids must be unique");let s=o.map(e=>String(e?.id??"").trim()).filter(Boolean);s.length!==o.length&&t.push("all edges must have a non-empty id"),l(s)!==s.length&&t.push("edge ids must be unique");let d=new Set(n);for(let e of o){let r=String(e?.from??"").trim(),a=String(e?.to??"").trim();if(!r||!a){t.push(`edge ${String(e?.id??"(missing id)")} must have from/to`);continue}d.has(r)||t.push(`edge ${String(e.id)} references missing from node: ${r}`),d.has(a)||t.push(`edge ${String(e.id)} references missing to node: ${a}`)}let c=a.filter(e=>"start"===e.type),x=a.filter(e=>"end"===e.type);for(let e of(c.length||r.push("no start node found"),c.length>1&&r.push("multiple start nodes found (MVP supports this, but execution semantics may be ambiguous)"),x.length||r.push("no end node found"),i))if("cron"===e.kind){(String(e.id||"").trim()||t.push("cron trigger missing id"),String(e.expr||"").trim())?5!==String(e.expr||"").trim().split(/\s+/).filter(Boolean).length&&r.push(`cron trigger ${String(e.id)} expr is not 5-field: ${String(e.expr)}`):t.push(`cron trigger ${String(e.id||"(missing id)")} missing expr`);let a=e.tz?String(e.tz).trim():"";a&&"UTC"!==a&&!a.includes("/")&&r.push(`cron trigger ${String(e.id)} tz doesn't look like an IANA timezone: ${String(e.tz)}`)}let p=e.meta&&"object"==typeof e.meta&&!Array.isArray(e.meta)?e.meta:{},m=String(p.approvalTarget??"").trim();for(let e of a){if("human_approval"!==e.type)continue;let t=e.config&&"object"==typeof e.config&&!Array.isArray(e.config)?e.config:{},a=String(t.target??t.chatId??"").trim(),o=String(t.provider??t.channel??"").trim();a||m||r.push(`human_approval node ${String(e.id)} has no target (set node.config.target or workflow.meta.approvalTarget)`),!a||o||String(p.approvalProvider??"").trim()||r.push(`human_approval node ${String(e.id)} has a target but no provider (set node.config.provider or workflow.meta.approvalProvider)`)}return{errors:t,warnings:r}}(tu.wf):{errors:[],warnings:[]},[tu.wf]),tg=(0,r.useMemo)(()=>{let e=tu.wf;if(!e)return{missingAgentOnNodeIds:[],requiredAgentIds:[],agentIdsMissingCron:[],ok:!0};let t=(e.nodes??[]).filter(e=>"start"!==e.type&&"end"!==e.type&&"human_approval"!==e.type),r=t.filter(e=>!String((e.config&&"object"==typeof e.config&&!Array.isArray(e.config)?e.config:{}).agentId??"").trim()).map(e=>e.id),a=Array.from(new Set(t.map(e=>String((e.config&&"object"==typeof e.config&&!Array.isArray(e.config)?e.config:{}).agentId??"").trim()).filter(Boolean))),o=a.filter(e=>!e1[e]),i=0===r.length&&0===o.length;return{missingAgentOnNodeIds:r,requiredAgentIds:a,agentIdsMissingCron:o,ok:i}},[tu.wf,e1]);function tv(t){let r=JSON.stringify(t,null,2)+"\n";if(H({kind:"ready",jsonText:r}),d)try{sessionStorage.setItem(g(e,s),r)}catch{}}async function tf(){if("ready"===G.kind&&tu.wf&&!tu.err&&!th.errors.length){K(!0),Z(""),Q("idle"),et("");try{let t=await fetch("/api/teams/workflows",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({teamId:e,workflow:tu.wf})}),r=await t.json();if(!t.ok||!r.ok)throw Error(r.error||"Failed to save workflow");try{sessionStorage.removeItem(g(e,s))}catch{}if(tu.wf.triggers?.length)try{Q("syncing");let t=await fetch("/api/teams/workflow-triggers",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"sync",teamId:e,workflowId:tu.wf.id,triggers:tu.wf.triggers??[]})}),r=await t.json();t.ok&&r.ok?(Q("success"),setTimeout(()=>Q("idle"),3e3)):(Q("error"),et(r.error||"Failed to sync triggers"))}catch(e){Q("error"),et(e instanceof Error?e.message:"Failed to sync triggers")}}catch(e){Z(e instanceof Error?e.message:String(e))}finally{K(!1)}}}if("loading"===G.kind)return(0,t.jsx)("div",{className:"w-full",children:"Loading…"});if("error"===G.kind)return(0,t.jsx)("div",{className:"w-full",children:G.error});let tb=!1===x?(0,t.jsxs)("div",{className:"mx-3 mb-3 rounded-lg border border-amber-500/30 bg-amber-500/10 p-3 text-sm",children:[(0,t.jsx)("div",{className:"font-medium text-amber-200",children:"LLM support is not enabled"}),(0,t.jsxs)("div",{className:"mt-1 text-[color:var(--ck-text-secondary)]",children:["Workflow LLM nodes require the optional built-in ",(0,t.jsx)("code",{className:"px-1",children:"llm-task"})," plugin."]}),(0,t.jsxs)("div",{className:"mt-2 text-[color:var(--ck-text-secondary)]",children:["Enable it with: ",(0,t.jsx)("code",{className:"px-1",children:"openclaw plugins enable llm-task"})," then run"," ",(0,t.jsx)("code",{className:"px-1",children:"openclaw gateway restart"}),"."]})]}):null;return(0,t.jsxs)("div",{className:"flex h-full min-h-0 w-full flex-1 flex-col",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 px-3 py-3",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)("a",{href:`/teams/${encodeURIComponent(e)}?tab=workflows`,className:"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Back"}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"truncate text-base font-medium text-[color:var(--ck-text-primary)]",children:[s,".workflow.json"]}),(0,t.jsxs)("div",{className:"mt-0.5 text-sm text-[color:var(--ck-text-tertiary)]",children:["Team: ",e]})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex overflow-hidden rounded-lg border border-white/10",children:[(0,t.jsx)("button",{type:"button",onClick:()=>J("canvas"),className:"canvas"===q?"bg-white/10 px-3 py-2 text-xs font-medium text-[color:var(--ck-text-primary)]":"bg-transparent px-3 py-2 text-xs font-medium text-[color:var(--ck-text-secondary)] hover:bg-white/5",children:"Canvas"}),(0,t.jsx)("button",{type:"button",onClick:()=>J("json"),className:"json"===q?"bg-white/10 px-3 py-2 text-xs font-medium text-[color:var(--ck-text-primary)]":"bg-transparent px-3 py-2 text-xs font-medium text-[color:var(--ck-text-secondary)] hover:bg-white/5",children:"JSON"})]}),(0,t.jsx)("input",{ref:er,type:"file",accept:"application/json,.json",className:"hidden",onChange:async t=>{let r=t.target.files?.[0];if(t.target.value="",r){Z("");try{let t=await r.text(),a=JSON.parse(t);if(H({kind:"ready",jsonText:JSON.stringify(a,null,2)+"\n"}),d)try{sessionStorage.setItem(g(e,s),JSON.stringify(a,null,2)+"\n")}catch{}}catch(e){Z(e instanceof Error?e.message:String(e))}}}}),(0,t.jsx)("button",{type:"button",disabled:V,onClick:()=>er.current?.click(),className:"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] shadow-[var(--ck-shadow-1)] hover:bg-white/10 disabled:opacity-50",children:"Import"}),(0,t.jsx)("button",{type:"button",disabled:!tu.wf||!!tu.err||th.errors.length>0,onClick:function(){if(!tu.wf||tu.err||th.errors.length)return;let e=`${tu.wf.id||s}.workflow.json`,t=new Blob([JSON.stringify(tu.wf,null,2)+"\n"],{type:"application/json"}),r=URL.createObjectURL(t),a=document.createElement("a");a.href=r,a.download=e,document.body.appendChild(a),a.click(),a.remove(),URL.revokeObjectURL(r)},className:"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] shadow-[var(--ck-shadow-1)] hover:bg-white/10 disabled:opacity-50",children:"Export"}),(0,t.jsx)("button",{type:"button",disabled:V||!tu.wf||!!tu.err||th.errors.length>0,onClick:tf,className:"rounded-lg bg-[var(--ck-accent-red)] px-3 py-2 text-sm font-medium text-white shadow-[var(--ck-shadow-1)] disabled:opacity-50",children:V?"Saving…":"Save"})]})]}),tb,tu.err?(0,t.jsxs)("div",{className:"mt-3 rounded-lg border border-yellow-400/30 bg-yellow-500/10 p-3 text-sm text-yellow-100",children:["JSON parse error: ",tu.err]}):null,!tu.err&&th.errors.length?(0,t.jsxs)("div",{className:"mt-3 rounded-lg border border-red-400/30 bg-red-500/10 p-3 text-sm text-red-100",children:[(0,t.jsx)("div",{className:"font-medium",children:"Workflow validation errors"}),(0,t.jsx)("ul",{className:"mt-2 list-disc space-y-1 pl-5",children:th.errors.map(e=>(0,t.jsx)("li",{children:e},e))})]}):null,tu.err||th.errors.length||!th.warnings.length?null:(0,t.jsxs)("div",{className:"mt-3 rounded-lg border border-yellow-400/30 bg-yellow-500/10 p-3 text-sm text-yellow-100",children:[(0,t.jsx)("div",{className:"font-medium",children:"Workflow validation warnings"}),(0,t.jsx)("ul",{className:"mt-2 list-disc space-y-1 pl-5",children:th.warnings.map(e=>(0,t.jsx)("li",{children:e},e))})]}),Y?(0,t.jsx)("div",{className:"mt-3 rounded-lg border border-red-400/30 bg-red-500/10 p-3 text-sm text-red-100",children:Y}):null,(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 gap-0",children:["json"===q?(0,t.jsx)("textarea",{value:G.jsonText,onChange:t=>{let r=t.target.value;if(H({kind:"ready",jsonText:r}),d)try{sessionStorage.setItem(g(e,s),r)}catch{}},className:"h-full min-h-0 w-full flex-1 resize-none rounded-lg border border-white/10 bg-white/5 p-3 font-mono text-xs text-[color:var(--ck-text-primary)]"}):(0,t.jsx)("div",{ref:en,className:"relative h-full min-h-0 w-full flex-1 overflow-auto bg-white/5",onWheel:e=>{if(!e.ctrlKey&&!e.metaKey)return;e.preventDefault();let t=e.deltaY>0?-1:1;el(e=>Math.max(.5,Math.min(2.5,Math.round((e+.1*t)*10)/10)))},onClick:e=>{if("add-node"!==ep.kind)return;let t=tu.wf;if(!t)return;let r=en.current;if(!r)return;let a=e.target;if(a&&a.closest("[data-wf-node='1']"))return;let o=r.getBoundingClientRect(),i=(e.clientX-o.left+r.scrollLeft)/ei,l=(e.clientY-o.top+r.scrollTop)/ei,s=ep.nodeType.replace(/[^a-z0-9_\-]/gi,"_"),d=new Set(t.nodes.map(e=>e.id)),c=1,x=`${s}_${c}`;for(;d.has(x);)c++,x=`${s}_${c}`;let p=Math.max(0,i-90),m=Math.max(0,l-24),u=ep.nodeType in n?{...n[ep.nodeType].defaultConfig}:{},h={id:x,type:ep.nodeType,name:x,x:p,y:m,config:u};tv({...t,nodes:[...t.nodes,h]}),ed(x),em({kind:"select"})},children:(0,t.jsxs)("div",{className:"relative",style:{width:2200*ei,height:1200*ei},children:[(0,t.jsxs)("div",{className:ea?"absolute left-3 top-3 z-20 w-[44px] overflow-hidden rounded-lg border border-white/10 bg-black/40 p-2 backdrop-blur":"absolute left-3 top-3 z-20 w-[260px] rounded-lg border border-white/10 bg-black/40 p-2 backdrop-blur",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:ea?"hidden":"text-[10px] font-medium uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"Tools"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("div",{className:ea?"hidden":"flex items-center gap-1",children:[(0,t.jsx)("button",{type:"button",onClick:()=>el(e=>Math.max(.5,Math.round((e-.1)*10)/10)),className:"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-[10px] text-[color:var(--ck-text-secondary)] hover:bg-white/10",title:"Zoom out (Ctrl/Cmd+wheel)",children:"-"}),(0,t.jsxs)("div",{className:"min-w-[42px] text-center text-[10px] text-[color:var(--ck-text-tertiary)]",children:[Math.round(100*ei),"%"]}),(0,t.jsx)("button",{type:"button",onClick:()=>el(e=>Math.min(2.5,Math.round((e+.1)*10)/10)),className:"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-[10px] text-[color:var(--ck-text-secondary)] hover:bg-white/10",title:"Zoom in (Ctrl/Cmd+wheel)",children:"+"})]}),(0,t.jsx)("button",{type:"button",onClick:()=>eo(e=>!e),className:"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-[10px] text-[color:var(--ck-text-secondary)] hover:bg-white/10",title:ea?"Expand":"Collapse",children:ea?">":"<"})]})]}),ea?(0,t.jsx)("div",{className:"mt-2 flex flex-col items-center gap-2",children:[{key:"select",label:"Select",active:"select"===ep.kind,onClick:()=>{em({kind:"select"}),eh("")},icon:(0,t.jsx)("svg",{viewBox:"0 0 24 24",className:"h-4 w-4",fill:"none","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M5 4l7 16 2-7 7-2L5 4Z",stroke:"currentColor",strokeWidth:"1.6",strokeLinejoin:"round"})})},{key:"connect",label:"Connect",active:"connect"===ep.kind,onClick:()=>{em(e=>"connect"===e.kind?{kind:"select"}:{kind:"connect"}),eh("")},icon:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",className:"h-4 w-4",fill:"none","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M10 13a5 5 0 0 1 0-7l1.2-1.2a5 5 0 0 1 7 7L17 12",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),(0,t.jsx)("path",{d:"M14 11a5 5 0 0 1 0 7L12.8 19.2a5 5 0 1 1-7-7L7 12",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})},{key:"llm",label:"LLM",active:"add-node"===ep.kind&&"llm"===ep.nodeType,onClick:()=>{em({kind:"add-node",nodeType:"llm"}),eh("")},icon:(0,t.jsx)("svg",{viewBox:"0 0 24 24",className:"h-4 w-4",fill:"none","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M12 2l1.5 6.5L20 10l-6.5 1.5L12 18l-1.5-6.5L4 10l6.5-1.5L12 2Z",stroke:"currentColor",strokeWidth:"1.6",strokeLinejoin:"round"})})},{key:"tool",label:"Tool",active:"add-node"===ep.kind&&"tool"===ep.nodeType,onClick:()=>{em({kind:"add-node",nodeType:"tool"}),eh("")},icon:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",className:"h-4 w-4",fill:"none","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M14.5 7.5l2 2-8.5 8.5H6v-2l8.5-8.5Z",stroke:"currentColor",strokeWidth:"1.6",strokeLinejoin:"round"}),(0,t.jsx)("path",{d:"M12 6a4 4 0 0 0-5 5l3-3 2 2 3-3A4 4 0 0 0 12 6Z",stroke:"currentColor",strokeWidth:"1.6",strokeLinejoin:"round"})]})},{key:"condition",label:"If",active:"add-node"===ep.kind&&"condition"===ep.nodeType,onClick:()=>{em({kind:"add-node",nodeType:"condition"}),eh("")},icon:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",className:"h-4 w-4",fill:"none","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M7 4v7a3 3 0 0 0 3 3h7",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),(0,t.jsx)("path",{d:"M17 10l3 3-3 3",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})]})},{key:"delay",label:"Delay",active:"add-node"===ep.kind&&"delay"===ep.nodeType,onClick:()=>{em({kind:"add-node",nodeType:"delay"}),eh("")},icon:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",className:"h-4 w-4",fill:"none","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M12 7v5l3 2",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),(0,t.jsx)("path",{d:"M21 12a9 9 0 1 1-9-9",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})},{key:"approval",label:"Approval",active:"add-node"===ep.kind&&"human_approval"===ep.nodeType,onClick:()=>{em({kind:"add-node",nodeType:"human_approval"}),eh("")},icon:(0,t.jsx)("svg",{viewBox:"0 0 24 24",className:"h-4 w-4",fill:"none","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M20 6 9 17l-5-5",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})})},{key:"end",label:"End",active:"add-node"===ep.kind&&"end"===ep.nodeType,onClick:()=>{em({kind:"add-node",nodeType:"end"}),eh("")},icon:(0,t.jsx)("svg",{viewBox:"0 0 24 24",className:"h-4 w-4",fill:"none","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M7 7h10v10H7V7Z",stroke:"currentColor",strokeWidth:"1.6",strokeLinejoin:"round"})})},{key:"media-image",label:"Image",active:"add-node"===ep.kind&&"media-image"===ep.nodeType,onClick:()=>{em({kind:"add-node",nodeType:"media-image"}),eh("")},icon:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",className:"h-4 w-4",fill:"none","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M14.5 4h-5L7 6.5 4.5 9v6L7 17.5 9.5 20h5L17 17.5 19.5 15V9L17 6.5 14.5 4Z",stroke:"currentColor",strokeWidth:"1.6",strokeLinejoin:"round"}),(0,t.jsx)("path",{d:"M9 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z",fill:"currentColor"}),(0,t.jsx)("path",{d:"m4.5 15 3.5-3.5L11 14l3.5-3.5 4 4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})]})},{key:"media-video",label:"Video",active:"add-node"===ep.kind&&"media-video"===ep.nodeType,onClick:()=>{em({kind:"add-node",nodeType:"media-video"}),eh("")},icon:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",className:"h-4 w-4",fill:"none","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),(0,t.jsx)("path",{d:"M14 2v6h6",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),(0,t.jsx)("path",{d:"M10 12l4.5 2.5-4.5 2.5v-5z",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})]})},{key:"handoff",label:"Handoff",active:"add-node"===ep.kind&&"handoff"===ep.nodeType,onClick:()=>{em({kind:"add-node",nodeType:"handoff"}),eh("")},icon:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",className:"h-4 w-4",fill:"none","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M5 12h14",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),(0,t.jsx)("path",{d:"M13 6l6 6-6 6",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"}),(0,t.jsx)("path",{d:"M3 6v12",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}].map(e=>(0,t.jsx)("button",{type:"button",onClick:e.onClick,className:e.active?"flex h-8 w-8 items-center justify-center rounded-lg bg-white/10 text-[color:var(--ck-text-primary)]":"flex h-8 w-8 items-center justify-center rounded-lg border border-white/10 bg-white/5 text-[color:var(--ck-text-secondary)] hover:bg-white/10",title:e.label,"aria-label":e.label,children:e.icon},e.key))}):(0,t.jsxs)("div",{className:"mt-2 grid grid-cols-2 gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>{em({kind:"select"}),eh("")},className:"select"===ep.kind?"rounded-lg bg-white/10 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]":"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-secondary)] hover:bg-white/10",children:"Select"}),(0,t.jsx)("button",{type:"button",onClick:()=>{em({kind:"connect"}),eh("")},className:"connect"===ep.kind?"rounded-lg bg-white/10 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]":"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-secondary)] hover:bg-white/10",title:"Click a node, then click another node to create an edge",children:"Connect"}),[{t:"llm",label:"LLM"},{t:"tool",label:"Tool"},{t:"condition",label:"If"},{t:"delay",label:"Delay"},{t:"human_approval",label:"Approve"},{t:"media-image",label:"🎨 Image"},{t:"media-video",label:"🎬 Video"},{t:"handoff",label:"↗ Handoff"},{t:"end",label:"End"}].map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{em({kind:"add-node",nodeType:e.t}),eh("")},className:"add-node"===ep.kind&&ep.nodeType===e.t?"rounded-lg bg-white/10 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]":"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-secondary)] hover:bg-white/10",title:"Select tool, then click on the canvas to place",children:["+ ",e.label]},e.t))]}),!ea&&"connect"===ep.kind&&eu?(0,t.jsxs)("div",{className:"mt-2 text-xs text-[color:var(--ck-text-secondary)]",children:["Connecting from: ",(0,t.jsx)("span",{className:"font-mono",children:eu})]}):null,ea||"add-node"!==ep.kind?null:(0,t.jsxs)("div",{className:"mt-2 text-xs text-[color:var(--ck-text-secondary)]",children:["Click on the canvas to place a ",(0,t.jsx)("span",{className:"font-mono",children:ep.nodeType})," node."]}),(0,t.jsxs)("div",{className:"mt-3 border-t border-white/10 pt-3",children:[(0,t.jsxs)("div",{className:ea?"hidden":"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"text-[10px] font-medium uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"Agents"}),(0,t.jsx)("div",{className:"text-[10px] text-[color:var(--ck-text-tertiary)]",children:"drag → node"})]}),ea?(0,t.jsx)("button",{type:"button",onClick:()=>eo(!1),className:"mt-2 flex h-8 w-8 items-center justify-center rounded-lg border border-white/10 bg-white/5 text-[color:var(--ck-text-secondary)] hover:bg-white/10",title:"Expand to see agents","aria-label":"Expand to see agents",children:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",className:"h-4 w-4",fill:"none","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M16 11a4 4 0 1 0-8 0",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"}),(0,t.jsx)("path",{d:"M4 20a8 8 0 0 1 16 0",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})]})}):(0,t.jsxs)(t.Fragment,{children:[ef?(0,t.jsx)("div",{className:"mt-1 text-[11px] text-red-200",children:ef}):null,(0,t.jsx)("div",{className:"mt-2 max-h-[140px] space-y-1 overflow-auto",children:eg.length?eg.map(r=>(0,t.jsx)("div",{draggable:!0,onDragStart:e=>{e.dataTransfer.setData("text/plain",r.id),e.dataTransfer.effectAllowed="copy"},className:"cursor-grab rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-secondary)] hover:bg-white/10",title:r.id,children:r.identityName?r.identityName:r.id.replace(`${e}-`,"")},r.id)):(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:"No team agents found."})})]})]})]}),(0,t.jsxs)("div",{className:"relative h-[1200px] w-[2200px]",style:{transform:`scale(${ei})`,transformOrigin:"0 0"},children:[(0,t.jsx)("svg",{className:"pointer-events-none absolute inset-0 -z-10",width:2200,height:1200,style:{overflow:"visible"},children:(tu.wf?.edges??[]).map(e=>{let r=tu.wf;if(!r)return null;let a=r.nodes.find(t=>t.id===e.from),o=r.nodes.find(t=>t.id===e.to);if(!a||!o)return null;let i=("number"==typeof a.x?a.x:80)+90,l=("number"==typeof a.y?a.y:80)+24,n=("number"==typeof o.x?o.x:80)+90,s=("number"==typeof o.y?o.y:80)+24;return(0,t.jsx)("line",{x1:i,y1:l,x2:n,y2:s,stroke:"rgba(255,255,255,0.35)",strokeWidth:3},e.id)})}),(tu.wf?.nodes??[]).map((r,a)=>{let o="number"==typeof r.x?r.x:80+220*a,i="number"==typeof r.y?r.y:80,l=es===r.id;return(0,t.jsxs)("div",{role:"button",tabIndex:0,"data-wf-node":"1",draggable:"select"===ep.kind||"connect"===ep.kind,onDragStart:e=>{"select"===ep.kind&&e.dataTransfer.setData("text/plain","")},onDragOver:e=>{e.dataTransfer.types.includes("text/plain")&&e.preventDefault()},onDrop:e=>{let t=tu.wf;if(!t)return;e.preventDefault(),e.stopPropagation();let a=String(e.dataTransfer.getData("text/plain")||"").trim();if(!a)return;let o=t.nodes.map(e=>{if(e.id!==r.id)return e;let t=e.config&&"object"==typeof e.config&&!Array.isArray(e.config)?e.config:{};return{...e,config:{...t,agentId:a}}});tv({...t,nodes:o}),ed(r.id)},onClick:e=>{e.stopPropagation();let t=tu.wf;if("connect"===ep.kind){if(!t)return;if(!eu){eh(r.id),ed(r.id);return}let e=r.id;if(eh(""),!eu||!e||eu===e||(t.edges??[]).some(t=>t.from===eu&&t.to===e))return;let a=`e${Date.now()}`;tv({...t,edges:[...t.edges??[],{id:a,from:eu,to:e}]}),em({kind:"select"});return}ed(r.id)},onPointerDown:e=>{if("add-node"===ep.kind||0!==e.button)return;let t=en.current;if(!t)return;let a=t.getBoundingClientRect();ed(r.id);try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}e.preventDefault();let l=(e.clientX-a.left+t.scrollLeft)/ei,n=(e.clientY-a.top+t.scrollTop)/ei;ex({nodeId:r.id,dx:l-o,dy:n-i})},onPointerUp:e=>{try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}ex(null)},onPointerMove:e=>{if(!ec||ec.nodeId!==r.id)return;let t=tu.wf;if(!t)return;let a=en.current;if(!a)return;let o=a.getBoundingClientRect(),i=(e.clientX-o.left+a.scrollLeft)/ei,l=(e.clientY-o.top+a.scrollTop)/ei,n=i-ec.dx,s=l-ec.dy,d=t.nodes.map(e=>e.id===r.id?{...e,x:n,y:s}:e);H({kind:"ready",jsonText:JSON.stringify({...t,nodes:d},null,2)+"\n"})},className:l?"absolute z-10 cursor-grab rounded-lg border border-white/25 bg-white/10 px-3 py-2 text-xs text-[color:var(--ck-text-primary)] shadow-[var(--ck-shadow-1)]":"absolute z-10 cursor-grab rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-xs text-[color:var(--ck-text-secondary)] hover:bg-white/10",style:{left:o,top:i,width:180},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[r.type in n&&(0,t.jsx)("span",{className:"text-lg",children:"media-image"===r.type?"🎨":"🎬"}),"handoff"===r.type&&(0,t.jsx)("span",{className:"text-lg",children:"↗"}),(0,t.jsx)("div",{className:"font-medium text-[color:var(--ck-text-primary)]",children:r.name||r.id})]}),(0,t.jsx)("div",{className:"mt-0.5 text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:r.type}),(()=>{let a=r.config&&"object"==typeof r.config&&!Array.isArray(r.config)?r.config:null;if(r.type in n&&a){let e=String(a.prompt??"").trim(),r=String(a.provider??"auto");return(0,t.jsxs)("div",{className:"mt-1 space-y-0.5",children:[e&&(0,t.jsxs)("div",{className:"text-[10px] text-[color:var(--ck-text-secondary)] truncate",title:e,children:['"',e.length>40?e.substring(0,40)+"...":e,'"']}),(0,t.jsxs)("div",{className:"text-[10px] text-[color:var(--ck-text-tertiary)]",children:["Provider: ",r]})]})}if("handoff"===r.type&&a){let e=String(a.targetTeamId??"").trim(),r=String(a.targetWorkflowId??"").trim(),o=String(a.mode??"fire-and-forget");return e?(0,t.jsxs)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-secondary)]",children:["→ ",e,r?` / ${r}`:"","wait-for-completion"===o?(0,t.jsx)("span",{className:"ml-1 text-yellow-400",title:"Waits for target to complete",children:"⏳"}):null]}):null}let o=a?String(a.agentId??"").trim():"";if(!o)return null;let i=o.replace(`${e}-`,"");return(0,t.jsxs)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-secondary)]",children:["Agent: ",i]})})()]},r.id)}),(()=>{let r,a,o,i,l,s,d,x,p,m,h,g,v=tu.wf;if(!v||!es)return null;let f=v.nodes.find(e=>e.id===es);if(!f)return null;let b="number"==typeof f.x?f.x:80,y="number"==typeof f.y?f.y:80,k=f.config&&"object"==typeof f.config&&!Array.isArray(f.config)?f.config:{},w=String(k.agentId??"").trim(),j=String(k.model??"").trim();return(0,t.jsxs)("div",{className:"absolute z-10 w-[320px] rounded-lg border border-white/15 bg-black/60 p-3 shadow-[var(--ck-shadow-1)] backdrop-blur",style:{left:b+200,top:y},children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[color:var(--ck-text-primary)]",children:f.name||f.id}),(0,t.jsx)("button",{type:"button",onClick:()=>ed(""),className:"text-[10px] text-[color:var(--ck-text-tertiary)] hover:text-[color:var(--ck-text-primary)]",children:"Close"})]}),(0,t.jsxs)("div",{className:"mt-2 space-y-2",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"name"}),(0,t.jsx)("input",{value:String(f.name??""),onChange:e=>{let t=e.target.value;tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,name:t}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-black/30 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"Optional"})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"type"}),(0,t.jsxs)("select",{value:f.type,onChange:e=>{let t=e.target.value;tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,type:t}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-black/30 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"start",children:"start"}),(0,t.jsx)("option",{value:"end",children:"end"}),(0,t.jsx)("option",{value:"llm",children:"llm"}),(0,t.jsx)("option",{value:"tool",children:"tool"}),(0,t.jsx)("option",{value:"condition",children:"condition"}),(0,t.jsx)("option",{value:"delay",children:"delay"}),(0,t.jsx)("option",{value:"human_approval",children:"human_approval"}),(0,t.jsx)("option",{value:"media-image",children:"media-image"}),(0,t.jsx)("option",{value:"media-video",children:"media-video"}),(0,t.jsx)("option",{value:"handoff",children:"handoff"})]})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"agentId"}),(0,t.jsx)("input",{value:w,onChange:e=>{let t=String(e.target.value||"").trim(),r={...k,...t?{agentId:t}:{}};t||delete r.agentId,tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,config:r}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-black/30 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"(drag an agent onto the node or type)"})]}),"llm"===f.type?(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"model"}),(0,t.jsxs)("select",{value:j,onChange:e=>{let t=String(e.target.value||"").trim(),r={...k,...t?{model:t}:{}};t||delete r.model,tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,config:r}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-black/30 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"",children:"Default (inherit global)"}),eN.map(e=>(0,t.jsx)("option",{value:e,children:e},e))]}),eC?(0,t.jsxs)("div",{className:"mt-1 text-[10px] text-amber-300",children:["Could not load model list: ",eC]}):null]}):null,"human_approval"===f.type?(0,t.jsxs)("div",{className:"rounded-lg border border-white/10 bg-white/5 p-2",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"approval config"}),(0,t.jsxs)("div",{className:"mt-2 space-y-2",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"provider"}),(0,t.jsx)("input",{value:String(k.provider??""),onChange:e=>{let t=String(e.target.value||"").trim(),r={...k,...t?{provider:t}:{}};t||delete r.provider,tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,config:r}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"telegram"})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"target"}),(0,t.jsx)("input",{value:String(k.target??""),onChange:e=>{let t=String(e.target.value||"").trim(),r={...k,...t?{target:t}:{}};t||delete r.target,tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,config:r}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"(e.g. Telegram chat id)"}),(0,t.jsx)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)]",children:"Overrides workflow-level default when set."})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"messageTemplate (optional)"}),(0,t.jsx)(u,{value:String(k.messageTemplate??""),workflow:v,currentNodeId:f.id,onChangeValue:e=>{let t={...k,...e.trim()?{messageTemplate:e}:{}};e.trim()||delete t.messageTemplate,tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,config:t}:e)})},className:"mt-1 h-[70px] w-full resize-none rounded-lg border border-white/10 bg-white/5 p-2 pr-12 font-mono text-[10px] text-[color:var(--ck-text-primary)]",placeholder:"Approval needed for {{workflowName}} (run {{runId}})",spellCheck:!1}),(0,t.jsxs)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)]",children:["Vars: ","{{workflowName}}",", ","{{workflowId}}",", ","{{runId}}",", ","{{nodeId}}"]})]})]})]}):null,f.type in n?(0,t.jsxs)("div",{className:"rounded-lg border border-white/10 bg-white/5 p-2",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"Media Generation"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(c,{config:{mediaType:"image",provider:"auto",prompt:"",...f.config||{}},onChange:e=>{tv({...v,nodes:v.nodes.map(t=>t.id===f.id?{...t,config:e}:t)})},teamId:e,workflow:v,workflowNodeIds:v.nodes.map(e=>e.id),workflowEdges:(v.edges??[]).map(e=>({from:e.from,to:e.to})),currentNodeId:f.id})})]}):null,"llm"===f.type?(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"prompt"}),(0,t.jsx)(u,{value:String(k.promptTemplate??""),workflow:v,currentNodeId:f.id,onChangeValue:e=>{let t={...k,promptTemplate:e};tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,config:t}:e)})},className:"mt-1 min-h-[200px] w-full resize-y rounded-lg border border-white/10 bg-black/30 p-2 pr-12 font-mono text-xs text-[color:var(--ck-text-primary)]",placeholder:"What should this node do? Use {{nodeId.output}} to reference upstream node outputs.",spellCheck:!1})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"output fields (optional)"}),(0,t.jsx)("div",{className:"text-[9px] text-[color:var(--ck-text-secondary)] mb-2",children:"Define the structure of what this node should produce"}),(r=k.outputFields||[],(0,t.jsxs)("div",{className:"space-y-1",children:[r.map((e,a)=>(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{value:e.name,onChange:t=>{let o=[...r];o[a]={...e,name:t.target.value};let i={...k,outputFields:o};tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,config:i}:e)})},className:"flex-1 rounded-lg border border-white/10 bg-black/30 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"Field name"}),(0,t.jsxs)("select",{value:e.type,onChange:t=>{let o=t.target.value,i=[...r];i[a]={...e,type:o};let l={...k,outputFields:i};tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,config:l}:e)})},className:"rounded-lg border border-white/10 bg-black/30 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"text",children:"text"}),(0,t.jsx)("option",{value:"list",children:"list"}),(0,t.jsx)("option",{value:"json",children:"json"})]}),(0,t.jsx)("button",{type:"button",onClick:()=>{let e=r.filter((e,t)=>t!==a),t={...k};e.length>0?t.outputFields=e:delete t.outputFields,tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,config:t}:e)})},className:"text-xs text-[color:var(--ck-text-tertiary)] hover:text-[color:var(--ck-text-primary)]",children:"×"})]},a)),(0,t.jsx)("button",{type:"button",onClick:()=>{let e=[...r,{name:"",type:"text"}],t={...k,outputFields:e};tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,config:t}:e)})},className:"text-xs text-[color:var(--ck-text-secondary)] hover:text-[color:var(--ck-text-primary)]",children:"+ Add field"})]}))]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"timeout (seconds)"}),(0,t.jsx)("input",{type:"number",value:k.timeoutMs?String(Number(k.timeoutMs)/1e3):"",onChange:e=>{let t=e.target.value?Number(e.target.value):null,r={...k};t&&t>0?r.timeoutMs=1e3*t:delete r.timeoutMs,tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,config:r}:e)})},className:"mt-1 w-24 rounded-lg border border-white/10 bg-black/30 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"120",min:"1"})]})]}):null,"handoff"===f.type?(a=String(k.targetTeamId??""),o=String(k.targetWorkflowId??""),i=k.variableMapping||{},l=String(k.mode??"fire-and-forget"),d=eE[s=String(i.kitchenTeamId??"").includes("{{")?e:String(i.kitchenTeamId??e)]||[],x=!!e_[s],p=String(i.integrationIds??i.integrationId??"").split(",").map(e=>e.trim()).filter(Boolean),m=eM[a]||[],h=o.toLowerCase().includes("instagram")||Object.prototype.hasOwnProperty.call(i,"integrationId")||Object.prototype.hasOwnProperty.call(i,"integrationIds"),g=e=>{let t={...k,...e};tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,config:t}:e)})},0!==eT.length||eL||(async()=>{try{let e=await fetch("/api/teams/list"),t=await e.json();t.ok&&eA(t.teamIds)}catch{}})(),a&&!eM[a]&&(async()=>{try{let e=await fetch(`/api/teams/workflows?teamId=${encodeURIComponent(a)}`),t=await e.json();t.ok&&t.files&&e$(e=>({...e,[a]:t.files.map(e=>({id:e.replace(/\.workflow\.json$/,"")}))}))}catch{}})(),h&&s&&!eE[s]&&!e_[s]&&(async()=>{eP(e=>({...e,[s]:!0}));try{let e=(()=>{try{return JSON.parse(localStorage.getItem(`ck-postiz-${s}`)||"{}").apiKey||""}catch{return""}})(),t=await fetch(`/api/plugins/marketing/drivers?team=${encodeURIComponent(s)}`,{headers:e?{"x-postiz-api-key":e}:{}}),r=((await t.json()).drivers||[]).filter(e=>"instagram"===e.platform&&"postiz"===e.backend&&e.integrationId).map(e=>({integrationId:String(e.integrationId),displayName:String(e.displayName||"Instagram"),username:e.username?String(e.username):void 0}));eR(e=>({...e,[s]:r}))}catch{}eP(e=>({...e,[s]:!1}))})(),(0,t.jsxs)("div",{className:"rounded-lg border border-white/10 bg-white/5 p-2 space-y-2",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"handoff config"}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"mode"}),(0,t.jsxs)("select",{value:l,onChange:e=>g({mode:"fire-and-forget"===e.target.value?void 0:e.target.value}),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"fire-and-forget",children:"Fire & Forget"}),(0,t.jsx)("option",{value:"wait-for-completion",children:"Wait for Completion"})]})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"target team"}),(0,t.jsxs)("select",{value:a,onChange:e=>{g({targetTeamId:e.target.value||void 0,targetWorkflowId:void 0})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"",children:"— Select —"}),eT.map(r=>(0,t.jsxs)("option",{value:r,children:[r,r===e?" (current)":""]},r))]})]}),a?(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"target workflow"}),(0,t.jsxs)("select",{value:o,onChange:e=>g({targetWorkflowId:e.target.value||void 0}),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"",children:"— Select —"}),m.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name||e.id},e.id))]})]}):null,h&&d.length>0?(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"instagram accounts"}),(0,t.jsx)("div",{className:"mt-1 space-y-1",children:d.map(e=>{let r=p.includes(e.integrationId);return(0,t.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer rounded-lg border border-white/10 bg-white/5 px-2 py-1 hover:bg-white/10",children:[(0,t.jsx)("input",{type:"checkbox",checked:r,onChange:()=>{let t=r?p.filter(t=>t!==e.integrationId):[...p,e.integrationId],a={...i};delete a.integrationId,t.length>0?a.integrationIds=t.join(","):delete a.integrationIds,g({variableMapping:a})},className:"accent-[var(--ck-accent-red)]"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-primary)]",children:e.displayName}),e.username?(0,t.jsx)("div",{className:"text-[10px] text-[color:var(--ck-text-tertiary)]",children:e.username}):null]})]},e.integrationId)})})]}):null,h&&x?(0,t.jsx)("div",{className:"text-[10px] text-[color:var(--ck-text-tertiary)]",children:"Loading accounts…"}):null]})):null,(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{let e=ez[f.id]??"llm"!==f.type;eW({...ez,[f.id]:!e})},className:"mb-2 text-[10px] text-[color:var(--ck-text-tertiary)] hover:text-[color:var(--ck-text-primary)]",children:[ez[f.id]??"llm"!==f.type?"Hide":"Show"," raw config"]}),ez[f.id]??"llm"!==f.type?(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"config (json)"}),(0,t.jsx)("textarea",{value:JSON.stringify(k,null,2),onChange:e=>{try{let t=JSON.parse(e.target.value);if(!t||"object"!=typeof t||Array.isArray(t))return;tv({...v,nodes:v.nodes.map(e=>e.id===f.id?{...e,config:t}:e)})}catch{}},className:"mt-1 h-[140px] w-full resize-none rounded-lg border border-white/10 bg-black/30 p-2 font-mono text-[10px] text-[color:var(--ck-text-primary)]",spellCheck:!1}),(0,t.jsx)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)]",children:"(Edits apply when JSON is valid.)"})]}):null]})]})]})})()]})]})}),(0,t.jsx)("div",{className:"w-[380px] shrink-0 overflow-auto p-3 text-sm",children:(0,t.jsx)("div",{className:"space-y-3",children:tu.wf?(_=String((R=tu.wf).timezone??"").trim()||"UTC",P=R.triggers??[],W=String((z=R.meta&&"object"==typeof R.meta&&!Array.isArray(R.meta)?R.meta:{}).approvalBindingId??"").trim(),B=String(z.approvalProvider??"telegram").trim()||"telegram",F=String(z.approvalTarget??"").trim(),D=[{label:"(no preset)",expr:""},{label:"Weekdays 09:00 local",expr:"0 9 * * 1-5"},{label:"Mon/Wed/Fri 09:00 local",expr:"0 9 * * 1,3,5"},{label:"Daily 08:00 local",expr:"0 8 * * *"},{label:"Daily 12:00 local",expr:"0 12 * * *"},{label:"Mon 09:30 local",expr:"30 9 * * 1"}],(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("details",{open:!0,className:"rounded-lg border border-white/10 bg-white/5",children:[(0,t.jsx)("summary",{className:"cursor-pointer list-none px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)]",children:"Workflow"}),(0,t.jsx)("div",{className:"px-3 pb-3",children:(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[11px] font-medium text-[color:var(--ck-text-tertiary)]",children:"Timezone"}),(0,t.jsx)("input",{value:_,onChange:e=>{let t=String(e.target.value||"").trim()||"UTC";tv({...R,timezone:t})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-sm text-[color:var(--ck-text-primary)]",placeholder:"America/New_York"})]})})]}),(0,t.jsxs)("details",{open:!0,className:"rounded-lg border border-white/10 bg-white/5",children:[(0,t.jsx)("summary",{className:"cursor-pointer list-none px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)]",children:"Approval Channel"}),(0,t.jsxs)("div",{className:"px-3 pb-3 space-y-2",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"binding (recommended)"}),(0,t.jsxs)("select",{value:W,onChange:e=>{let t=String(e.target.value||"").trim(),r=ey.find(e=>e.id===t);r?tv({...R,meta:{...z,approvalBindingId:r.id,approvalProvider:r.channel,approvalTarget:r.target},nodes:R.nodes.map(e=>"human_approval"===e.type?{...e,config:{...e.config&&"object"==typeof e.config&&!Array.isArray(e.config)?e.config:{},approvalBindingId:r.id,provider:r.channel,target:r.target}}:e)}):tv({...R,meta:{...z,approvalBindingId:""},nodes:R.nodes.map(e=>"human_approval"===e.type?{...e,config:{...e.config&&"object"==typeof e.config&&!Array.isArray(e.config)?e.config:{},approvalBindingId:""}}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"",children:"(manual)"}),ey.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))]}),eB?(0,t.jsxs)("div",{className:"mt-1 text-[10px] text-yellow-200",children:["Kitchen looks out of date. Run ",(0,t.jsx)("code",{className:"font-mono",children:"openclaw plugins update"})," then",(0,t.jsx)("code",{className:"ml-1 font-mono",children:"openclaw gateway restart"}),"."]}):null,ew?(0,t.jsxs)("div",{className:"mt-1 text-[10px] text-red-200",children:["Failed to load bindings: ",ew]}):null,(0,t.jsx)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)]",children:"Uses your existing OpenClaw bindings (recommended). Manual provider/target is an advanced override."})]}),(0,t.jsxs)("details",{className:"rounded-lg border border-white/10 bg-black/10",children:[(0,t.jsx)("summary",{className:"cursor-pointer list-none px-2 py-1 text-[11px] font-medium text-[color:var(--ck-text-secondary)]",children:"Advanced: manual override"}),(0,t.jsxs)("div",{className:"px-2 pb-2 pt-1 space-y-2",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"provider"}),(0,t.jsx)("input",{value:B,onChange:e=>{let t=String(e.target.value||"").trim()||"telegram";tv({...R,meta:{...z,approvalBindingId:"",approvalProvider:t},nodes:R.nodes.map(e=>"human_approval"===e.type?{...e,config:{...e.config&&"object"==typeof e.config&&!Array.isArray(e.config)?e.config:{},approvalBindingId:"",provider:t}}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"telegram"})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"target"}),(0,t.jsx)("input",{value:F,onChange:e=>{let t=String(e.target.value||"").trim();tv({...R,meta:{...z,approvalBindingId:"",approvalTarget:t},nodes:R.nodes.map(e=>"human_approval"===e.type?{...e,config:{...e.config&&"object"==typeof e.config&&!Array.isArray(e.config)?e.config:{},approvalBindingId:"",target:t}}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"(e.g. Telegram chat id)"})]})]})]})]})]}),(0,t.jsxs)("details",{open:!0,className:"rounded-lg border border-white/10 bg-white/5",children:[(0,t.jsx)("summary",{className:"cursor-pointer list-none px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)]",children:"Node inspector"}),(0,t.jsxs)("div",{className:"px-3 pb-3",children:[(0,t.jsx)("div",{className:"flex items-center justify-between gap-2",children:es?(0,t.jsx)("button",{type:"button",onClick:()=>{let e=R.nodes.filter(e=>e.id!==es),t=(R.edges??[]).filter(e=>e.from!==es&&e.to!==es);tv({...R,nodes:e,edges:t}),ed("")},className:"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-[10px] font-medium text-red-100 hover:bg-white/10",children:"Delete node"}):null}),es?(E=R.nodes.find(e=>e.id===es))?(0,t.jsxs)("div",{className:"mt-3 space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"id"}),(0,t.jsx)("div",{className:"mt-1 rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:E.id})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"name"}),(0,t.jsx)("input",{value:String(E.name??""),onChange:e=>{let t=e.target.value;tv({...R,nodes:R.nodes.map(e=>e.id===E.id?{...e,name:t}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"Optional"})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"type"}),(0,t.jsxs)("select",{value:E.type,onChange:e=>{let t=e.target.value;tv({...R,nodes:R.nodes.map(e=>e.id===E.id?{...e,type:t}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"start",children:"start"}),(0,t.jsx)("option",{value:"end",children:"end"}),(0,t.jsx)("option",{value:"llm",children:"llm"}),(0,t.jsx)("option",{value:"tool",children:"tool"}),(0,t.jsx)("option",{value:"condition",children:"condition"}),(0,t.jsx)("option",{value:"delay",children:"delay"}),(0,t.jsx)("option",{value:"human_approval",children:"human_approval"}),(0,t.jsx)("option",{value:"media-image",children:"media-image"}),(0,t.jsx)("option",{value:"media-video",children:"media-video"}),(0,t.jsx)("option",{value:"handoff",children:"handoff"})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"x"}),(0,t.jsx)("input",{type:"number",value:"number"==typeof E.x?E.x:0,onChange:e=>{let t=Number(e.target.value);tv({...R,nodes:R.nodes.map(e=>e.id===E.id?{...e,x:t}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]"})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"y"}),(0,t.jsx)("input",{type:"number",value:"number"==typeof E.y?E.y:0,onChange:e=>{let t=Number(e.target.value);tv({...R,nodes:R.nodes.map(e=>e.id===E.id?{...e,y:t}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]"})]})]}),"llm"===E.type?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"prompt"}),(0,t.jsx)(u,{value:String((E.config||{}).promptTemplate??""),workflow:R,currentNodeId:E.id,onChangeValue:e=>{let t={...E.config,promptTemplate:e};tv({...R,nodes:R.nodes.map(e=>e.id===E.id?{...e,config:t}:e)})},className:"mt-1 min-h-[150px] w-full resize-y rounded-lg border border-white/10 bg-white/5 p-2 pr-12 font-mono text-xs text-[color:var(--ck-text-primary)]",placeholder:"What should this node do? Use {{nodeId.output}} to reference upstream node outputs.",spellCheck:!1})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"model"}),(0,t.jsxs)("select",{value:String((E.config||{}).model??""),onChange:e=>{let t=String(e.target.value||"").trim(),r={...E.config,...t?{model:t}:{}};t||delete r.model,tv({...R,nodes:R.nodes.map(e=>e.id===E.id?{...e,config:r}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"",children:"Default (inherit global)"}),eN.map(e=>(0,t.jsx)("option",{value:e,children:e},e))]}),eC?(0,t.jsxs)("div",{className:"mt-1 text-[10px] text-amber-300",children:["Could not load model list: ",eC]}):null]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"timeout (seconds)"}),(0,t.jsx)("input",{type:"number",value:(E.config||{}).timeoutMs?String(Number((E.config||{}).timeoutMs)/1e3):"",onChange:e=>{let t=e.target.value?Number(e.target.value):null,r={...E.config};t&&t>0?r.timeoutMs=1e3*t:delete r.timeoutMs,tv({...R,nodes:R.nodes.map(e=>e.id===E.id?{...e,config:r}:e)})},className:"mt-1 w-24 rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"120",min:"1"})]})]}):null,E.type in n?(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"Media Generation"}),(0,t.jsx)("div",{className:"mt-1",children:(0,t.jsx)(c,{config:{mediaType:"image",provider:"auto",prompt:"",...E.config||{}},onChange:e=>{tv({...R,nodes:R.nodes.map(t=>t.id===E.id?{...t,config:e}:t)})},teamId:e,workflow:R,workflowNodeIds:R.nodes.map(e=>e.id),workflowEdges:(R.edges??[]).map(e=>({from:e.from,to:e.to})),currentNodeId:E.id})})]}):null,"human_approval"===E.type?(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"provider"}),(0,t.jsx)("input",{value:String((E.config||{}).provider??""),onChange:e=>{let t=String(e.target.value||"").trim(),r={...E.config,...t?{provider:t}:{}};t||delete r.provider,tv({...R,nodes:R.nodes.map(e=>e.id===E.id?{...e,config:r}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"telegram"})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"target"}),(0,t.jsx)("input",{value:String((E.config||{}).target??""),onChange:e=>{let t=String(e.target.value||"").trim(),r={...E.config,...t?{target:t}:{}};t||delete r.target,tv({...R,nodes:R.nodes.map(e=>e.id===E.id?{...e,config:r}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"(e.g. Telegram chat id)"}),(0,t.jsx)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)]",children:"Overrides workflow-level default when set."})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"messageTemplate (optional)"}),(0,t.jsx)(u,{value:String((E.config||{}).messageTemplate??""),workflow:R,currentNodeId:E.id,onChangeValue:e=>{let t={...E.config,...e.trim()?{messageTemplate:e}:{}};e.trim()||delete t.messageTemplate,tv({...R,nodes:R.nodes.map(e=>e.id===E.id?{...e,config:t}:e)})},className:"mt-1 h-[70px] w-full resize-none rounded-lg border border-white/10 bg-white/5 p-2 pr-12 font-mono text-[10px] text-[color:var(--ck-text-primary)]",placeholder:"Approval needed for {{workflowName}} (run {{runId}})",spellCheck:!1}),(0,t.jsxs)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)]",children:["Vars: ","{{workflowName}}",", ","{{workflowId}}",", ","{{runId}}",", ","{{nodeId}}"]})]})]}):null,"handoff"===E.type?(v=String((m=E.config||{}).targetTeamId??""),f=String(m.targetWorkflowId??""),b=m.variableMapping||{},y=async()=>{if(!(eT.length>0)&&!eL){eO(!0);try{let e=await fetch("/api/teams/list"),t=await e.json();t.ok&&Array.isArray(t.teamIds)&&eA(t.teamIds)}catch{}eO(!1)}},k=async e=>{if(e&&!eM[e])try{let t=await fetch(`/api/teams/workflows?teamId=${encodeURIComponent(e)}`),r=await t.json();if(r.ok&&Array.isArray(r.files)){let t=r.files.map(e=>({id:e.replace(/\.workflow\.json$/,"")}));e$(r=>({...r,[e]:t}))}}catch{}},w=async e=>{if(e&&!eE[e]&&!e_[e]){eP(t=>({...t,[e]:!0}));try{let t=(()=>{try{let t=localStorage.getItem(`ck-postiz-${e}`);return t&&JSON.parse(t).apiKey||""}catch{return""}})(),r=await fetch(`/api/plugins/marketing/drivers?team=${encodeURIComponent(e)}`,{headers:t?{"x-postiz-api-key":t}:{}}),a=await r.json(),o=(Array.isArray(a?.drivers)?a.drivers:[]).filter(e=>e?.platform==="instagram"&&e?.backend==="postiz"&&e?.integrationId).map(e=>({integrationId:String(e.integrationId),displayName:String(e.displayName||"Instagram"),username:e.username?String(e.username):void 0}));eR(t=>({...t,[e]:o}))}catch{}eP(t=>({...t,[e]:!1}))}},N=(j=String(b.kitchenTeamId??""))&&!j.includes("{{")?j:e,0!==eT.length||eL||y(),v&&!eM[v]&&k(v),(S=f.toLowerCase().includes("instagram")||Object.prototype.hasOwnProperty.call(b,"integrationId")||Object.prototype.hasOwnProperty.call(b,"integrationIds"))&&N&&!eE[N]&&!e_[N]&&w(N),C=eM[v]||[],I=Object.entries(b),T=N&&eE[N]||[],A=!!N&&!!e_[N],M=String(b.integrationIds??b.integrationId??"").split(",").map(e=>e.trim()).filter(Boolean),$=e=>{let t={...m,...e};tv({...R,nodes:R.nodes.map(e=>e.id===E.id?{...e,config:t}:e)})},L=String(m.mode??"fire-and-forget"),O="number"==typeof m.waitTimeoutMs?m.waitTimeoutMs:3e5,(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"Handoff Target"}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"mode"}),(0,t.jsxs)("select",{value:L,onChange:e=>{let t=e.target.value;$({mode:"fire-and-forget"===t?void 0:t})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"fire-and-forget",children:"Fire & Forget"}),(0,t.jsx)("option",{value:"wait-for-completion",children:"Wait for Completion"})]})]}),"wait-for-completion"===L?(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"wait timeout (seconds)"}),(0,t.jsx)("input",{type:"number",min:30,value:Math.round(O/1e3),onChange:e=>{$({waitTimeoutMs:1e3*Math.max(30,parseInt(e.target.value,10)||300)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]"}),(0,t.jsx)("div",{className:"mt-0.5 text-[9px] text-[color:var(--ck-text-tertiary)]",children:"Workflow will wait up to this long for the target to complete."})]}):null,(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"target team"}),(0,t.jsxs)("select",{value:v,onChange:e=>{let t=e.target.value;$({targetTeamId:t||void 0,targetWorkflowId:void 0}),t&&!eM[t]&&k(t)},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"",children:"— Select team —"}),eT.map(r=>(0,t.jsxs)("option",{value:r,children:[r,r===e?" (current)":""]},r))]})]}),v?(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"target workflow"}),(0,t.jsxs)("select",{value:f,onChange:e=>$({targetWorkflowId:e.target.value||void 0}),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"",children:"— Select workflow —"}),C.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name||e.id},e.id))]}),v&&!eM[v]?(0,t.jsx)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)]",children:"Loading workflows…"}):null]}):null,S?(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"instagram accounts"}),(0,t.jsx)("button",{type:"button",onClick:()=>{eR(e=>{let t={...e};return delete t[N],t}),w(N)},className:"rounded-lg border border-white/10 bg-white/5 px-2 py-0.5 text-[10px] font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Refresh"})]}),A?(0,t.jsx)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)]",children:"Loading accounts…"}):0===T.length?(0,t.jsx)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)]",children:"No Instagram accounts found. Open Marketing → Accounts and connect IG in Postiz."}):(0,t.jsxs)("div",{className:"mt-1 space-y-1",children:[T.map(e=>{let r=M.includes(e.integrationId);return(0,t.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer rounded-lg border border-white/10 bg-white/5 px-2 py-1 hover:bg-white/10",children:[(0,t.jsx)("input",{type:"checkbox",checked:r,onChange:()=>{let t=r?M.filter(t=>t!==e.integrationId):[...M,e.integrationId],a={...b};delete a.integrationId,t.length>0?a.integrationIds=t.join(","):delete a.integrationIds,$({variableMapping:a})},className:"accent-[var(--ck-accent-red)]"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-primary)]",children:e.displayName}),e.username?(0,t.jsx)("div",{className:"text-[10px] text-[color:var(--ck-text-tertiary)]",children:e.username}):null]})]},e.integrationId)}),(0,t.jsx)("div",{className:"text-[9px] text-[color:var(--ck-text-tertiary)]",children:0===M.length?"None selected — will use first connected account.":`${M.length} account${M.length>1?"s":""} selected.`})]})]}):null,(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"variable mapping"}),(0,t.jsx)("button",{type:"button",onClick:()=>{let e=`var_${Date.now()}`;$({variableMapping:{...b,[e]:""}})},className:"rounded-lg border border-white/10 bg-white/5 px-2 py-0.5 text-[10px] font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"+ Add"})]}),(0,t.jsxs)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)]",children:["Map target workflow trigger inputs to upstream node outputs. Key = target variable name, Value = ","{{nodeId.field}}"," template."]}),I.length>0?(0,t.jsx)("div",{className:"mt-2 space-y-1",children:I.map(([e,r],a)=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("input",{value:e,onChange:t=>{let a=t.target.value,o={...b};delete o[e],o[a]=r,$({variableMapping:o})},className:"w-1/3 rounded-lg border border-white/10 bg-white/5 px-1.5 py-0.5 text-[10px] text-[color:var(--ck-text-primary)]",placeholder:"target_var"}),(0,t.jsx)("span",{className:"text-[10px] text-[color:var(--ck-text-tertiary)]",children:"→"}),(0,t.jsx)("input",{value:r,onChange:t=>{$({variableMapping:{...b,[e]:t.target.value}})},className:"flex-1 rounded-lg border border-white/10 bg-white/5 px-1.5 py-0.5 text-[10px] text-[color:var(--ck-text-primary)]",placeholder:"{{nodeId.output}}"}),(0,t.jsx)("button",{type:"button",onClick:()=>{let t={...b};delete t[e],$({variableMapping:Object.keys(t).length>0?t:void 0})},className:"text-[10px] text-red-400 hover:text-red-300",title:"Remove mapping",children:"✕"})]},a))}):(0,t.jsx)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)] italic",children:"No mappings — target workflow will receive empty trigger input."})]})]})):null,(0,t.jsx)("div",{children:(0,t.jsx)(h,{outputFields:(E.config||{}).outputFields||[],onChange:e=>{let t={...E.config};e.length>0?t.outputFields=e:delete t.outputFields,tv({...R,nodes:R.nodes.map(e=>e.id===E.id?{...e,config:t}:e)})}})}),(0,t.jsxs)("details",{className:"rounded-lg border border-white/10 bg-black/10",children:[(0,t.jsx)("summary",{className:"cursor-pointer list-none px-2 py-1 text-[10px] font-medium text-[color:var(--ck-text-secondary)]",children:"Raw Config (debug)"}),(0,t.jsx)("div",{className:"p-2",children:(0,t.jsx)("pre",{className:"mt-1 max-h-[150px] overflow-auto rounded-lg border border-white/10 bg-white/5 p-2 text-[9px] text-[color:var(--ck-text-tertiary)]",children:JSON.stringify(E.config??{},null,2)})})]})]}):(0,t.jsx)("div",{className:"mt-2 text-sm text-[color:var(--ck-text-secondary)]",children:"No node selected."}):(0,t.jsx)("div",{className:"mt-2 text-sm text-[color:var(--ck-text-secondary)]",children:"Select a node."})]})]}),(0,t.jsxs)("details",{open:!0,className:"rounded-lg border border-white/10 bg-white/5",children:[(0,t.jsx)("summary",{className:"cursor-pointer list-none px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)]",children:"Triggers"}),(0,t.jsxs)("div",{className:"px-3 pb-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"triggers"}),(0,t.jsx)("button",{type:"button",onClick:()=>{let e=`t${Date.now()}`;tv({...R,triggers:[...P,{kind:"cron",id:e,name:"New trigger",enabled:!0,expr:"0 9 * * 1-5",tz:_}]})},className:"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-[10px] font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"+ Add"})]}),"idle"!==X&&(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2 rounded-lg border border-white/10 bg-white/5 px-2 py-1",children:["syncing"===X&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"h-3 w-3 animate-spin rounded-full border border-blue-400 border-t-transparent"}),(0,t.jsx)("div",{className:"text-xs text-blue-400",children:"Syncing triggers..."})]}),"success"===X&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"text-green-400",children:"✓"}),(0,t.jsx)("div",{className:"text-xs text-green-400",children:"Triggers synced"})]}),"error"===X&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"text-red-400",children:"✗"}),(0,t.jsxs)("div",{className:"text-xs text-red-400",children:["Trigger sync failed: ",ee]})]})]}),(0,t.jsx)("div",{className:"mt-2 space-y-2",children:P.length?P.map((e,r)=>{let a=e.kind,o=String(e.id??""),i=String(e.name??""),l=!!e.enabled,n=String(e.expr??""),s=String(e.tz??_),d=n.trim().split(/\s+/).filter(Boolean),c=!n.trim()||5===d.length;return(0,t.jsxs)("div",{className:"rounded-lg border border-white/10 bg-white/5 p-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-primary)]",children:i||o||`trigger-${r+1}`}),(0,t.jsx)("button",{type:"button",onClick:()=>tv({...R,triggers:P.filter((e,t)=>t!==r)}),className:"text-[10px] text-[color:var(--ck-text-tertiary)] hover:text-[color:var(--ck-text-primary)]",children:"Remove"})]}),"cron"===a?null:(0,t.jsxs)("div",{className:"mt-1 text-xs text-[color:var(--ck-text-secondary)]",children:["Unsupported trigger kind: ",String(a)]}),(0,t.jsxs)("div",{className:"mt-2 grid grid-cols-1 gap-2",children:[(0,t.jsxs)("label",{className:"flex items-center gap-2 text-xs text-[color:var(--ck-text-secondary)]",children:[(0,t.jsx)("input",{type:"checkbox",checked:l,onChange:e=>{let t=e.target.checked;tv({...R,triggers:P.map((e,a)=>a===r&&"cron"===e.kind?{...e,enabled:t}:e)})}}),"Enabled"]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"name"}),(0,t.jsx)("input",{value:i,onChange:e=>{let t=e.target.value;tv({...R,triggers:P.map((e,a)=>a===r&&"cron"===e.kind?{...e,name:t}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"Content cadence"})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"schedule (cron)"}),(0,t.jsx)("input",{value:n,onChange:e=>{let t=e.target.value;tv({...R,triggers:P.map((e,a)=>a===r&&"cron"===e.kind?{...e,expr:t}:e)})},className:c?"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 font-mono text-[11px] text-[color:var(--ck-text-primary)]":"mt-1 w-full rounded-lg border border-red-400/50 bg-white/5 px-2 py-1 font-mono text-[11px] text-[color:var(--ck-text-primary)]",placeholder:"0 9 * * 1,3,5"}),c?null:(0,t.jsxs)("div",{className:"mt-1 text-[10px] text-red-200",children:["Cron should be 5 fields (min hour dom month dow). You entered ",d.length,"."]}),(0,t.jsxs)("div",{className:"mt-1 grid grid-cols-1 gap-1",children:[(0,t.jsx)("select",{value:D.some(e=>e.expr===n)?n:"",onChange:e=>{let t=e.target.value;tv({...R,triggers:P.map((e,a)=>a===r&&"cron"===e.kind?{...e,expr:t}:e)})},className:"w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-[11px] text-[color:var(--ck-text-secondary)]",children:D.map(e=>(0,t.jsx)("option",{value:e.expr,children:e.label},e.label))}),(0,t.jsx)("div",{className:"text-[10px] text-[color:var(--ck-text-tertiary)]",children:"Presets set the cron; edit freely for advanced schedules."})]})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"timezone override"}),(0,t.jsx)("input",{value:s,onChange:e=>{let t=String(e.target.value||"").trim()||_;tv({...R,triggers:P.map((e,a)=>a===r&&"cron"===e.kind?{...e,tz:t}:e)})},className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:_})]})]})]},`${o}-${r}`)}):(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-secondary)]",children:"No triggers yet."})})]})]}),(0,t.jsxs)("details",{open:!0,className:"rounded-lg border border-white/10 bg-white/5",children:[(0,t.jsx)("summary",{className:"cursor-pointer list-none px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)]",children:"Runs"}),(0,t.jsxs)("div",{className:"px-3 pb-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[color:var(--ck-text-secondary)]",children:"Runs (history)"}),(0,t.jsx)(a.default,{href:`/teams/${encodeURIComponent(e)}/runs`,className:"text-[10px] font-medium text-[color:var(--ck-text-tertiary)] hover:text-[color:var(--ck-text-secondary)] hover:underline",children:"View all →"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{type:"button",disabled:V,onClick:async()=>{let t=String(R.id??"").trim();if(t){eG(""),eq(!0);try{let r=await fetch("/api/teams/workflow-runs",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({teamId:e,workflowId:t,mode:"enqueue"})}),a=await r.json();if(!r.ok||!a.ok)throw Error(a.error||"Failed to enqueue run");let o=await fetch(`/api/teams/workflow-runs?teamId=${encodeURIComponent(e)}&workflowId=${encodeURIComponent(t)}`,{cache:"no-store"}),i=await o.json();if(!o.ok||!i.ok)throw Error(i.error||"Failed to refresh runs");let l=(Array.isArray(i.files)?i.files:[]).map(e=>String(e??"").trim()).filter(e=>!!e);eD(l)}catch(e){eG(e instanceof Error?e.message:String(e))}finally{eq(!1)}}},className:"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-[10px] font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10 disabled:opacity-50",children:"+ Queue run"}),(0,t.jsx)("button",{type:"button",disabled:V||eZ||!tg.ok,onClick:async()=>{let t=String(R.id??"").trim();if(t){if(tg.missingAgentOnNodeIds.length)return void eG("All nodes must be assigned to an agent.");if(tg.agentIdsMissingCron.length){e6(!0),e8("");try{let t=await fetch("/api/cron/worker",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"reconcile",teamId:e})}),r=await t.json();if(!t.ok||!1===r.ok)throw Error(r.error||"Failed to reconcile worker crons");let a=await tm(),o=tg.requiredAgentIds.filter(e=>!a[e]);if(o.length)return void eG(`Cron not set up for: ${o.join(", ")}`)}catch(e){eG(e instanceof Error?e.message:String(e));return}finally{e6(!1)}}eG(""),eq(!0),eV(!0);try{let r=await fetch("/api/teams/workflow-runs",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({teamId:e,workflowId:t,mode:"run_now"})}),a=await r.json();if(!r.ok||!a.ok)throw Error(a.error||"Failed to create run");let o=String(a.runId??"").trim();if(o)return void U.push(`/teams/${e}/runs/${s}/${o}`);eV(!1);let i=await fetch(`/api/teams/workflow-runs?teamId=${encodeURIComponent(e)}&workflowId=${encodeURIComponent(t)}`,{cache:"no-store"}),l=await i.json();if(!i.ok||!l.ok)throw Error(l.error||"Failed to refresh runs");let n=(Array.isArray(l.files)?l.files:[]).map(e=>String(e??"").trim()).filter(e=>!!e);eD(n)}catch(e){eV(!1),eG(e instanceof Error?e.message:String(e))}finally{eq(!1)}}},className:"rounded-lg border border-emerald-400/30 bg-emerald-500/10 px-2 py-1 text-[10px] font-medium text-emerald-50 hover:bg-emerald-500/15 disabled:opacity-50",title:"Enqueue a run for the workflow runner (Kitchen does not execute nodes)",children:"+ Run now"}),eQ?(0,t.jsx)("div",{className:"ml-2 text-[10px] text-amber-100/90",title:eQ,children:"Cron check unavailable"}):null]})]}),tg.missingAgentOnNodeIds.length?(0,t.jsxs)("div",{className:"mt-2 rounded-lg border border-red-400/30 bg-red-500/10 p-2 text-xs text-red-100",children:["All nodes must be assigned to an agent. Missing agentId on: ",tg.missingAgentOnNodeIds.join(", ")]}):tg.agentIdsMissingCron.length?(0,t.jsxs)("div",{className:"mt-2 rounded-lg border border-amber-400/30 bg-amber-500/10 p-2 text-xs text-amber-50",children:[(0,t.jsxs)("div",{children:["Cron not set up for: ",tg.agentIdsMissingCron.join(", ")]}),(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>{e8(""),e3(!0)},className:"rounded-lg border border-amber-300/30 bg-amber-500/10 px-2 py-1 text-[10px] font-medium text-amber-50 hover:bg-amber-500/15",children:"Install worker cron(s)"}),(0,t.jsx)("button",{type:"button",onClick:()=>void tm(),className:"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-[10px] font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Re-check"})]})]}):null,(0,t.jsx)(i.ConfirmationModal,{open:e5,title:"Install worker cron jobs?",busy:e4,error:e9||void 0,confirmLabel:"Install",onClose:()=>{e4||e3(!1)},onConfirm:async()=>{e6(!0),e8("");try{let t=await fetch("/api/cron/worker",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"reconcile",teamId:e})}),r=await t.json();if(!t.ok||!1===r.ok)throw Error(r.error||"Failed to install worker crons");await tm(),e3(!1)}catch(e){e8(e instanceof Error?e.message:String(e))}finally{e6(!1)}},children:(0,t.jsxs)("div",{className:"text-sm text-[color:var(--ck-text-secondary)]",children:["Kitchen will install (or enable) worker cron jobs for the following agents so this workflow can drain:",(0,t.jsx)("div",{className:"mt-2 rounded-lg border border-white/10 bg-white/5 p-2 font-mono text-[11px] text-[color:var(--ck-text-primary)]",children:tg.agentIdsMissingCron.join(", ")}),(0,t.jsxs)("div",{className:"mt-2 text-xs text-[color:var(--ck-text-tertiary)]",children:["Cron cadence: every 5 minutes. The worker runs: ",(0,t.jsx)("span",{className:"font-mono",children:"openclaw recipes workflows worker-tick"}),"."]})]})}),eK?(0,t.jsx)("div",{className:"mt-2 rounded-lg border border-red-400/30 bg-red-500/10 p-2 text-xs text-red-100",children:eK}):null,(0,t.jsx)("div",{className:"mt-2 space-y-1",children:eU?(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-secondary)]",children:"Serving up hot…"}):eF.length?eF.slice(0,8).map(r=>{let o=String(R.id??"").trim(),i=String(r).replace(/\.run\.json$/i,""),l=eH===i,n=o?`/teams/${encodeURIComponent(e)}/runs/${encodeURIComponent(o)}/${encodeURIComponent(i)}`:"#";return(0,t.jsx)(a.default,{href:n,onClick:()=>eY(i),className:l?"block w-full rounded-lg bg-white/10 px-2 py-1 text-left text-[11px] font-mono text-[color:var(--ck-text-primary)]":"block w-full rounded-lg px-2 py-1 text-left text-[11px] font-mono text-[color:var(--ck-text-secondary)] hover:bg-white/5",title:"Open run detail",children:i},r)}):(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-secondary)]",children:"No runs yet."})}),(0,t.jsxs)("details",{open:!0,className:"mt-3 rounded-lg border border-white/10 bg-black/10",children:[(0,t.jsx)("summary",{className:"cursor-pointer list-none px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)]",children:"Nodes"}),(0,t.jsxs)("div",{className:"px-3 pb-3",children:[(0,t.jsx)("div",{className:"mt-2 rounded-lg border border-white/10 bg-white/5 p-2",children:(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-2",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"id"}),(0,t.jsx)("input",{value:e7,onChange:e=>te(e.target.value),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"e.g. draft_assets"})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"name (optional)"}),(0,t.jsx)("input",{value:tt,onChange:e=>tr(e.target.value),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"Human-friendly label"})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"type"}),(0,t.jsxs)("select",{value:ta,onChange:e=>to(e.target.value),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"start",children:"start"}),(0,t.jsx)("option",{value:"end",children:"end"}),(0,t.jsx)("option",{value:"llm",children:"llm"}),(0,t.jsx)("option",{value:"tool",children:"tool"}),(0,t.jsx)("option",{value:"condition",children:"condition"}),(0,t.jsx)("option",{value:"delay",children:"delay"}),(0,t.jsx)("option",{value:"human_approval",children:"human_approval"}),(0,t.jsx)("option",{value:"media-image",children:"media-image"}),(0,t.jsx)("option",{value:"media-video",children:"media-video"}),(0,t.jsx)("option",{value:"handoff",children:"handoff"})]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>{let e=String(e7||"").trim().replace(/[^a-z0-9_\-]/gi,"_");if(!e||R.nodes.some(t=>t.id===e))return;let t=R.nodes.reduce((e,t)=>"number"==typeof t.x?Math.max(e,t.x):e,80),r={id:e,type:ta,name:String(tt||"").trim()||e,x:t+220,y:80};tv({...R,nodes:[...R.nodes,r]}),ed(e),te(""),tr("")},className:"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-[11px] font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"+ Add node"})]})}),(0,t.jsx)("div",{className:"mt-2 space-y-1",children:R.nodes.map(e=>{let r=es===e.id;return(0,t.jsxs)("button",{type:"button",onClick:()=>ed(e.id),className:r?"w-full rounded-lg bg-white/10 px-2 py-1 text-left text-[11px] text-[color:var(--ck-text-primary)]":"w-full rounded-lg px-2 py-1 text-left text-[11px] text-[color:var(--ck-text-secondary)] hover:bg-white/5",children:[(0,t.jsx)("span",{className:"font-mono",children:e.id}),(0,t.jsx)("span",{className:"ml-2 text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:e.type})]},e.id)})})]})]}),(0,t.jsxs)("details",{open:!0,className:"mt-3 rounded-lg border border-white/10 bg-black/10",children:[(0,t.jsx)("summary",{className:"cursor-pointer list-none px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)]",children:"Edges"}),(0,t.jsxs)("div",{className:"px-3 pb-3",children:[(0,t.jsx)("div",{className:"mt-2 rounded-lg border border-white/10 bg-white/5 p-2",children:(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-2",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"from"}),(0,t.jsxs)("select",{value:ti,onChange:e=>tl(e.target.value),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"",children:"(select)"}),R.nodes.map(e=>(0,t.jsx)("option",{value:e.id,children:e.id},e.id))]})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"to"}),(0,t.jsxs)("select",{value:tn,onChange:e=>ts(e.target.value),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"",children:"(select)"}),R.nodes.map(e=>(0,t.jsx)("option",{value:e.id,children:e.id},e.id))]})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"label (optional)"}),(0,t.jsx)("input",{value:td,onChange:e=>tc(e.target.value),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"e.g. approve"})]}),(0,t.jsx)("button",{type:"button",onClick:()=>{let e=String(ti||"").trim(),t=String(tn||"").trim();if(!e||!t||e===t)return;let r={id:`e${Date.now()}`,from:e,to:t,...String(td||"").trim()?{label:String(td).trim()}:{}};tv({...R,edges:[...R.edges??[],r]}),tc("")},className:"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-[11px] font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"+ Add edge"})]})}),(0,t.jsx)("div",{className:"mt-2 space-y-2",children:(R.edges??[]).length?(R.edges??[]).map(e=>(0,t.jsx)("div",{className:"rounded-lg border border-white/10 bg-white/5 p-2",children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsxs)("div",{className:"text-[11px] text-[color:var(--ck-text-secondary)]",children:[(0,t.jsx)("span",{className:"font-mono",children:e.from})," → ",(0,t.jsx)("span",{className:"font-mono",children:e.to}),e.label?(0,t.jsxs)("span",{className:"ml-2 text-[10px] text-[color:var(--ck-text-tertiary)]",children:["(",e.label,")"]}):null]}),(0,t.jsx)("button",{type:"button",onClick:()=>tv({...R,edges:(R.edges??[]).filter(t=>t.id!==e.id)}),className:"text-[10px] text-[color:var(--ck-text-tertiary)] hover:text-[color:var(--ck-text-primary)]",children:"Remove"})]})},e.id)):(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-secondary)]",children:"No edges yet."})})]})]})]})]})]})):null})})]}),(0,t.jsx)(p,{open:eJ})]})}e.s(["default",()=>v],87090)}]);
@@ -0,0 +1,3 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,82310,e=>{"use strict";function t(e){return e instanceof Error?e.message:String(e)}e.s(["errorMessage",()=>t])},44355,e=>{"use strict";var t=e.i(18050),r=e.i(74080);function a({open:e,onClose:a,title:s,children:i,error:l,confirmLabel:o,confirmBusyLabel:n,onConfirm:d,confirmDisabled:c,busy:m,confirmButtonClassName:x}){if(!e)return null;let u=m??!1,h=u&&n?n:o,p="confirmation-modal-title";return(0,r.createPortal)((0,t.jsxs)("div",{className:"fixed inset-0 z-[200]",children:[(0,t.jsx)("div",{className:"fixed inset-0 bg-black/60",onClick:a,"aria-hidden":"true"}),(0,t.jsx)("div",{className:"fixed inset-0 overflow-y-auto",role:"dialog","aria-modal":"true","aria-labelledby":p,children:(0,t.jsx)("div",{className:"flex min-h-full items-center justify-center p-4",children:(0,t.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-white/10 bg-[color:var(--ck-bg-soft)] p-5 shadow-[var(--ck-shadow-2)]",children:[(0,t.jsx)("h2",{id:p,className:"text-lg font-semibold text-[color:var(--ck-text-primary)]",children:s}),i,l?(0,t.jsx)("div",{className:"mt-4 rounded-lg border border-red-400/30 bg-red-500/10 p-3 text-sm text-red-100",children:l}):null,(0,t.jsxs)("div",{className:"mt-6 flex items-center justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:a,className:"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Cancel"}),(0,t.jsx)("button",{type:"button",disabled:(c??!1)||u,onClick:d,className:x??"rounded-lg bg-[var(--ck-accent-red)] px-3 py-2 text-sm font-medium text-white shadow-[var(--ck-shadow-1)] transition-colors hover:bg-[var(--ck-accent-red-hover)] disabled:opacity-50",children:h})]})]})})})]}),document.body)}e.s(["ConfirmationModal",()=>a])},54510,e=>{"use strict";var t=e.i(18050),r=e.i(44355);function a({open:e,onClose:a,title:s,entityLabel:i,bodyText:l,onConfirm:o,busy:n,error:d}){return(0,t.jsx)(r.ConfirmationModal,{open:e,onClose:a,title:s,confirmLabel:"Delete",confirmBusyLabel:"Deleting…",onConfirm:o,busy:n,error:d??void 0,children:(0,t.jsxs)("p",{className:"mt-2 text-sm text-[color:var(--ck-text-secondary)]",children:[s," ",(0,t.jsx)("code",{className:"font-mono",children:i}),"? ",l]})})}function s(e){return function(r){let s=r[e.entityLabelKey];return(0,t.jsx)(a,{open:r.open,onClose:r.onClose,title:e.title,entityLabel:s,bodyText:e.bodyText,onConfirm:r.onConfirm,busy:r.busy,error:r.error})}}let i=s({title:"Delete agent",bodyText:"This will remove its workspace/state.",entityLabelKey:"agentId"}),l=s({title:"Delete Team",bodyText:"This will remove the team workspace, agents, and stamped cron jobs.",entityLabelKey:"teamId"}),o=s({title:"Delete recipe",bodyText:"This removes the markdown file from your workspace.",entityLabelKey:"recipeId"}),n=s({title:"Delete cron job",bodyText:"This removes it from the Gateway scheduler. You can recreate it later.",entityLabelKey:"jobLabel"});e.s(["DeleteAgentModal",0,i,"DeleteCronJobModal",0,n,"DeleteRecipeModal",0,o,"DeleteTeamModal",0,l],54510)},55613,e=>{"use strict";var t=e.i(18050),r=e.i(74080);function a({open:e,onClose:a,title:s,children:i,size:l="md",hideTitle:o=!1}){if(!e)return null;let n="modal-title";return(0,r.createPortal)((0,t.jsxs)("div",{className:"fixed inset-0 z-[200]",children:[(0,t.jsx)("div",{className:"fixed inset-0 bg-black/60",onClick:a,"aria-hidden":"true"}),(0,t.jsx)("div",{className:"fixed inset-0 overflow-y-auto",role:"dialog","aria-modal":"true","aria-labelledby":n,children:(0,t.jsx)("div",{className:"flex min-h-full items-center justify-center p-4",children:(0,t.jsxs)("div",{className:`w-full ${{sm:"max-w-md",md:"max-w-lg",lg:"max-w-2xl",xl:"max-w-4xl",full:"max-w-6xl"}[l]} rounded-2xl border border-white/10 bg-[color:var(--ck-bg-soft)] p-6 shadow-[var(--ck-shadow-2)]`,children:[o?(0,t.jsx)("h2",{id:n,className:"sr-only",children:s}):(0,t.jsx)("h2",{id:n,className:"text-lg font-semibold text-[color:var(--ck-text-primary)] mb-4",children:s}),i]})})})]}),document.body)}e.s(["Modal",()=>a])},88810,72532,e=>{"use strict";var t=e.i(18050),r=e.i(71645),a=e.i(18566),s=e.i(82310),i=e.i(42771),l=e.i(54510);function o({title:e,files:r,loading:a,showOptionalFiles:s,onShowOptionalChange:i,selectedFileName:l,onSelectFile:o,renderItemExtra:n}){let d=s?r:r.filter(e=>e.required||!e.missing);return(0,t.jsxs)("div",{className:"ck-card p-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-[color:var(--ck-text-primary)]",children:e}),(0,t.jsxs)("label",{className:"flex items-center gap-2 text-xs text-[color:var(--ck-text-secondary)]",children:[(0,t.jsx)("input",{type:"checkbox",checked:s,onChange:e=>i(e.target.checked)}),"Show optional"]})]}),(0,t.jsx)("div",{className:"mt-2 text-xs text-[color:var(--ck-text-tertiary)]",children:"Default view hides optional missing files to reduce noise."}),(0,t.jsxs)("ul",{className:"mt-3 space-y-1",children:[a?(0,t.jsx)("li",{className:"text-sm text-[color:var(--ck-text-secondary)]",children:"Loading…"}):null,d.map(e=>{var r;let a;return(0,t.jsx)("li",{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>o(e.name),className:(r=e.name,a="w-full rounded-lg px-3 py-2 text-left text-sm",l===r?`${a} bg-white/10 text-[color:var(--ck-text-primary)]`:`${a} text-[color:var(--ck-text-secondary)] hover:bg-white/5`),children:[(0,t.jsx)("span",{className:e.required?"text-[color:var(--ck-text-primary)]":"text-[color:var(--ck-text-secondary)]",children:e.name}),(0,t.jsx)("span",{className:"ml-2 text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:e.required?"required":"optional"}),e.missing?(0,t.jsx)("span",{className:"ml-2 text-xs text-[color:var(--ck-text-tertiary)]",children:"missing"}):null]}),n?.(e)]})},e.name)})]})]})}function n({name:e,emoji:r,theme:a,avatar:s,saving:i,returnTo:l,onNameChange:o,onEmojiChange:n,onThemeChange:d,onAvatarChange:c,onSave:m,router:x}){return(0,t.jsxs)("div",{className:"ck-card p-4",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-[color:var(--ck-text-primary)]",children:"Identity"}),(0,t.jsx)("label",{className:"mt-3 block text-xs font-medium text-[color:var(--ck-text-secondary)]",children:"Name"}),(0,t.jsx)("input",{value:e,onChange:e=>o(e.target.value),className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm text-[color:var(--ck-text-primary)]"}),(0,t.jsxs)("div",{className:"mt-3 grid grid-cols-1 gap-3 sm:grid-cols-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs font-medium text-[color:var(--ck-text-secondary)]",children:"Emoji"}),(0,t.jsx)("input",{value:r,onChange:e=>n(e.target.value),placeholder:"🦞",className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm text-[color:var(--ck-text-primary)]"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs font-medium text-[color:var(--ck-text-secondary)]",children:"Theme"}),(0,t.jsx)("input",{value:a,onChange:e=>d(e.target.value),placeholder:"warm, sharp, calm",className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm text-[color:var(--ck-text-primary)]"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs font-medium text-[color:var(--ck-text-secondary)]",children:"Avatar"}),(0,t.jsx)("input",{value:s,onChange:e=>c(e.target.value),placeholder:"avatars/openclaw.png",className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm text-[color:var(--ck-text-primary)]"})]})]}),(0,t.jsxs)("div",{className:"mt-4 flex flex-col gap-2 sm:flex-row",children:[(0,t.jsx)("button",{disabled:i,onClick:m,className:"rounded-lg bg-[var(--ck-accent-red)] px-3 py-2 text-sm font-medium text-white shadow-[var(--ck-shadow-1)] transition-colors hover:bg-[var(--ck-accent-red-hover)] active:bg-[var(--ck-accent-red-active)] disabled:opacity-50",children:i?"Saving…":"Save"}),l?(0,t.jsx)("button",{disabled:i,onClick:async()=>{await m(),x.push(l)},className:"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] shadow-[var(--ck-shadow-1)] transition-colors hover:bg-white/10 active:bg-white/15 disabled:opacity-50",children:"Save & return"}):null]})]})}function d({model:e,saving:r,onModelChange:a,onSave:s}){return(0,t.jsxs)("div",{className:"ck-card p-4",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-[color:var(--ck-text-primary)]",children:"Config"}),(0,t.jsx)("p",{className:"mt-2 text-sm text-[color:var(--ck-text-secondary)]",children:"Thin slice: edit the configured model id for this agent (writes to OpenClaw config)."}),(0,t.jsx)("label",{className:"mt-3 block text-xs font-medium text-[color:var(--ck-text-secondary)]",children:"Model"}),(0,t.jsx)("input",{value:e,onChange:e=>a(e.target.value),placeholder:"openai/gpt-5.2",className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm text-[color:var(--ck-text-primary)]"}),(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)("button",{disabled:r,onClick:s,className:"rounded-lg bg-[var(--ck-accent-red)] px-3 py-2 text-sm font-medium text-white shadow-[var(--ck-shadow-1)] disabled:opacity-50",children:r?"Saving…":"Save config"})})]})}function c({agentId:e,skillsList:r,availableSkills:a,skillsLoading:s,selectedSkill:i,installingSkill:l,skillError:o,skillMsg:n,onSelectedSkillChange:d,onInstallSkill:c}){return(0,t.jsxs)("div",{className:"ck-card p-4",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-[color:var(--ck-text-primary)]",children:"Skills"}),(0,t.jsxs)("p",{className:"mt-2 text-sm text-[color:var(--ck-text-secondary)]",children:["Skills installed in this ",(0,t.jsx)("strong",{children:"agent"})," workspace (",(0,t.jsx)("code",{children:"skills/"}),"). If you want a skill available to all agents, add it at the team level."]}),(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[color:var(--ck-text-secondary)]",children:"Installed"}),(0,t.jsxs)("ul",{className:"mt-2 list-disc space-y-1 pl-5 text-sm text-[color:var(--ck-text-secondary)]",children:[s&&(0,t.jsx)("li",{children:"Loading…"}),!s&&r.length>0&&r.map(e=>(0,t.jsx)("li",{children:e},e)),!s&&!r.length&&(0,t.jsx)("li",{children:"None installed."})]})]}),(0,t.jsxs)("div",{className:"mt-5 rounded-lg border border-white/10 bg-white/5 p-3",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[color:var(--ck-text-secondary)]",children:"Add a skill"}),(0,t.jsxs)("div",{className:"mt-2 flex flex-col gap-2 sm:flex-row sm:items-center",children:[(0,t.jsx)("select",{value:i,onChange:e=>d(e.target.value),className:"w-full rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm text-[color:var(--ck-text-primary)]",disabled:l||!a.length,children:a.length?a.map(e=>(0,t.jsx)("option",{value:e,children:e},e)):(0,t.jsx)("option",{value:"",children:"No skills found"})}),(0,t.jsx)("button",{type:"button",disabled:l||!i,onClick:()=>void c(),className:"rounded-lg bg-[var(--ck-accent-red)] px-3 py-2 text-sm font-medium text-white shadow-[var(--ck-shadow-1)] disabled:opacity-50",children:l?"Adding…":"Add"})]}),o&&(0,t.jsx)("div",{className:"mt-3 rounded-lg border border-red-400/30 bg-red-500/10 p-3 text-sm text-red-100",children:o}),!o&&n&&(0,t.jsx)("div",{className:"mt-3 rounded-lg border border-emerald-400/30 bg-emerald-500/10 p-3 text-sm text-emerald-100",children:n}),(0,t.jsxs)("div",{className:"mt-2 text-xs text-[color:var(--ck-text-tertiary)]",children:["This uses ",(0,t.jsxs)("code",{children:["openclaw recipes install-skill <skill> --agent-id ",e," --yes"]}),"."]})]})]})}function m({agentFiles:e,agentFilesLoading:r,showOptionalFiles:a,fileName:s,fileContent:i,loadingFile:l,saving:n,fileError:d,onShowOptionalChange:c,onLoadFile:m,onFileContentChange:x,onSaveFile:u,onCreateMissingFile:h}){return(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-3",children:[(0,t.jsx)(o,{title:"Agent files",files:e,loading:r,showOptionalFiles:a,onShowOptionalChange:c,selectedFileName:s,onSelectFile:m,renderItemExtra:e=>e.missing?(0,t.jsx)("button",{type:"button",disabled:n,onClick:()=>void h(e.name),className:"shrink-0 rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10 disabled:opacity-50",children:"Create"}):null}),(0,t.jsxs)("div",{className:"ck-card p-4 lg:col-span-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"text-sm font-medium text-[color:var(--ck-text-primary)]",children:["Edit: ",s]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[l?(0,t.jsx)("span",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:"Loading…"}):null,(0,t.jsx)("button",{disabled:n,onClick:u,className:"rounded-lg bg-[var(--ck-accent-red)] px-3 py-2 text-sm font-medium text-white shadow-[var(--ck-shadow-1)] disabled:opacity-50",children:n?"Saving…":"Save file"})]})]}),d?(0,t.jsx)("div",{className:"mt-3 rounded-lg border border-red-400/30 bg-red-500/10 p-3 text-sm text-red-100",children:d}):null,(0,t.jsx)("textarea",{value:i,onChange:e=>x(e.target.value),className:"mt-3 h-[55vh] w-full resize-none rounded-lg border border-white/10 bg-white/5 p-3 font-mono text-xs text-[color:var(--ck-text-primary)]",spellCheck:!1})]})]})}async function x(e,t){t.setAgentFilesLoading(!0),t.setSkillsLoading(!0);try{let[r,a,s]=await (0,i.fetchAll)([`/api/agents/files?agentId=${encodeURIComponent(e)}`,`/api/agents/skills?agentId=${encodeURIComponent(e)}`,"/api/skills/available"]),l=[];try{let e=await r.json();if(r.ok&&e.ok){let r=Array.isArray(e.files)?e.files:[];t.setAgentFiles(r.map(e=>({name:String(e.name??""),missing:!!e.missing,required:!!e.required,rationale:"string"==typeof e.rationale?e.rationale:void 0})))}}catch{}try{let e=await a.json();a.ok&&e.ok&&(l=Array.isArray(e.skills)?e.skills:[],t.setSkillsList(l))}catch{}try{let e=await s.json();if(s.ok&&e.ok){let r=Array.isArray(e.skills)?e.skills:[];t.setAvailableSkills(r);let a=r.find(e=>!l.includes(e));t.setSelectedSkill(a??r[0]??"")}}catch{}}finally{t.setAgentFilesLoading(!1),t.setSkillsLoading(!1)}}function u({agentId:e,returnTo:o,onClose:u}){let h=(0,a.useRouter)(),[p,f]=(0,r.useState)(null),[g,v]=(0,r.useState)(!0),[b,w]=(0,r.useState)(!1),[y,j]=(0,r.useState)(!1),[k,N]=(0,r.useState)(""),[S,C]=(0,r.useState)(""),[I,P]=(0,r.useState)(""),[E,_]=(0,r.useState)(""),[A,O]=(0,r.useState)(!1),[R,M]=(0,r.useState)(!1),[T,$]=(0,r.useState)(null),[L,D]=(0,r.useState)("identity"),[U,z]=(0,r.useState)(""),[F,B]=(0,r.useState)(""),[q,J]=(0,r.useState)(""),[W,G]=(0,r.useState)(""),[K,H]=(0,r.useState)(""),[V,X]=(0,r.useState)([]),[Y,Q]=(0,r.useState)([]),[Z,ee]=(0,r.useState)(!1),[et,er]=(0,r.useState)(""),[ea,es]=(0,r.useState)(!1),[ei,el]=(0,r.useState)([]),[eo,en]=(0,r.useState)(!1),[ed,ec]=(0,r.useState)(!1),[em,ex]=(0,r.useState)("SOUL.md"),[eu,eh]=(0,r.useState)(""),ep=e.includes("-")?e.split("-").slice(0,-1).join("-"):"";async function ef(e){w(!0),N("");try{let t=await e();N(t)}catch(e){N((0,s.errorMessage)(e))}finally{w(!1)}}async function eg(){await ef(async()=>(await (0,i.fetchJson)("/api/agents/identity",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({agentId:e,name:U,emoji:F,theme:q,avatar:W})}),"Saved identity via openclaw agents set-identity"))}async function ev(){await ef(async()=>(await (0,i.fetchJson)("/api/agents/update",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({agentId:e,patch:{model:K}})}),"Saved agent config (model) and restarted gateway"))}async function eb(t){ex(t),eh(""),j(!0),C("");try{let r=await (0,i.fetchJson)(`/api/agents/file?agentId=${encodeURIComponent(e)}&name=${encodeURIComponent(t)}`,{cache:"no-store"});if(!r.ok)throw Error("Failed to load file");eh(String(r.content??""))}catch(e){C((0,s.errorMessage)(e))}finally{j(!1)}}async function ew(){w(!0),C("");try{if(!(await (0,i.fetchJson)("/api/agents/file",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({agentId:e,name:em,content:eu})})).ok)throw Error("Failed to save file");try{let t=await (0,i.fetchJson)(`/api/agents/files?agentId=${encodeURIComponent(e)}`,{cache:"no-store"});t.ok&&Array.isArray(t.files)&&el(t.files)}catch{}}catch(e){C((0,s.errorMessage)(e))}finally{w(!1)}}async function ey(e){ex(e),C(""),eh(function(e){switch(e){case"SOUL.md":return"# SOUL.md\n\n";case"AGENTS.md":return"# AGENTS.md\n\n";case"TOOLS.md":return"# TOOLS.md\n\n";case"STATUS.md":return"# STATUS.md\n\n- (empty)\n";case"NOTES.md":return"# NOTES.md\n\n- (empty)\n";case"IDENTITY.md":return"# IDENTITY.md\n\n- **Name:**\n- **Creature:**\n- **Vibe:**\n- **Emoji:**\n- **Avatar:**\n";case"USER.md":return"# USER.md\n\n";case"HEARTBEAT.md":return"# HEARTBEAT.md\n\n# Keep this file empty (or with only comments) to skip heartbeat API calls.\n";default:return""}}(e)),await ew()}async function ej(){M(!0),$(null),N("");try{await (0,i.fetchJson)(`/api/agents/${encodeURIComponent(e)}`,{method:"DELETE"}),window.location.href="/"}catch(e){$((0,s.errorMessage)(e)),M(!1)}}return(0,r.useEffect)(()=>{(async()=>{v(!0),N("");try{let t=await (0,i.fetchJson)("/api/agents",{cache:"no-store"}),r=(Array.isArray(t.agents)?t.agents:[]).find(t=>t.id===e)??null;f(r),z(r?.identityName??""),H(r?.model??""),v(!1),x(e,{setAgentFiles:el,setSkillsList:X,setAvailableSkills:Q,setSelectedSkill:er,setAgentFilesLoading:en,setSkillsLoading:ee})}catch(e){N((0,s.errorMessage)(e))}finally{v(!1)}})()},[e]),(0,r.useEffect)(()=>{if("files"!==L||!ei.length)return;let e=ei.some(e=>e.name===em),t=ei[0]?.name,r=e?em:t;r&&(r!==em&&(ex(r),eh("")),eu||eb(r))},[L,e,ei.length]),g?(0,t.jsx)("div",{className:"w-full",children:"Loading…"}):p?(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[u?(0,t.jsx)("button",{type:"button",onClick:u,className:"text-[color:var(--ck-text-tertiary)] hover:text-[color:var(--ck-text-primary)]",title:"Close",children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",className:"h-5 w-5",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:(0,t.jsx)("path",{d:"M18 6 6 18M6 6l12 12"})})}):null,(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:p.identityName||p.id}),(0,t.jsxs)("p",{className:"mt-1 text-sm font-mono text-[color:var(--ck-text-tertiary)]",children:[p.id,p.isDefault?" · default":"",p.model?` \xb7 ${p.model}`:""]})]})]}),(0,t.jsx)("button",{type:"button",disabled:b,onClick:()=>{$(null),O(!0)},className:"rounded-lg border border-[color:rgba(255,59,48,0.45)] bg-[color:rgba(255,59,48,0.08)] px-3 py-2 text-sm font-medium text-[color:var(--ck-accent-red)] shadow-[var(--ck-shadow-1)] transition-colors hover:bg-[color:rgba(255,59,48,0.12)] disabled:opacity-50",children:"Delete agent"})]}),p.workspace?(0,t.jsxs)("div",{className:"mt-1 text-xs text-[color:var(--ck-text-tertiary)]",children:["Workspace: ",p.workspace]}):null,ep?(0,t.jsxs)("div",{className:"mt-1 text-xs text-[color:var(--ck-text-tertiary)]",children:["Team: ",ep]}):null,k?(0,t.jsx)("div",{className:"mt-4 rounded-lg border border-white/10 bg-white/5 p-3 text-sm text-[color:var(--ck-text-primary)]",children:k}):null,(0,t.jsx)("div",{className:"mt-6 flex flex-wrap gap-2",children:[{id:"identity",label:"Identity"},{id:"config",label:"Config"},{id:"skills",label:"Skills"},{id:"files",label:"Files"}].map(e=>(0,t.jsx)("button",{onClick:()=>D(e.id),className:L===e.id?"rounded-lg bg-[var(--ck-accent-red)] px-3 py-2 text-sm font-medium text-white shadow-[var(--ck-shadow-1)]":"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] shadow-[var(--ck-shadow-1)] hover:bg-white/10",children:e.label},e.id))}),(0,t.jsxs)("div",{className:"mt-6 grid grid-cols-1 gap-4",children:["identity"===L&&(0,t.jsx)(n,{name:U,emoji:F,theme:q,avatar:W,saving:b,returnTo:o,onNameChange:z,onEmojiChange:B,onThemeChange:J,onAvatarChange:G,onSave:eg,router:h}),"config"===L&&(0,t.jsx)(d,{model:K,saving:b,onModelChange:H,onSave:ev}),"skills"===L&&(0,t.jsx)(c,{agentId:e,skillsList:V,availableSkills:Y,skillsLoading:Z,selectedSkill:et,installingSkill:ea,skillError:E,skillMsg:I,onSelectedSkillChange:er,onInstallSkill:async()=>{es(!0),P(""),_("");try{await (0,i.fetchJson)("/api/agents/skills/install",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({agentId:e,skill:et})}),P(`Installed skill: ${et}`);try{let t=await (0,i.fetchJson)(`/api/agents/skills?agentId=${encodeURIComponent(e)}`,{cache:"no-store"});t.ok&&Array.isArray(t.skills)&&X(t.skills)}catch{}}catch(e){_((0,s.errorMessage)(e))}finally{es(!1)}}}),"files"===L&&(0,t.jsx)(m,{agentFiles:ei,agentFilesLoading:eo,showOptionalFiles:ed,fileName:em,fileContent:eu,loadingFile:y,saving:b,fileError:S,onShowOptionalChange:ec,onLoadFile:eb,onFileContentChange:eh,onSaveFile:ew,onCreateMissingFile:ey})]}),(0,t.jsx)(l.DeleteAgentModal,{open:A,agentId:e,busy:R,error:T,onClose:()=>O(!1),onConfirm:()=>void ej()})]}):(0,t.jsxs)("div",{className:"w-full",children:["Agent not found: ",e]})}e.s(["FileListWithOptionalToggle",()=>o],72532),e.s(["default",()=>u],88810)},92140,e=>{"use strict";var t=e.i(18050),r=e.i(71645),a=e.i(22016),s=e.i(18566),i=e.i(42771),l=e.i(82310);function o(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function n({teamId:e,llmTaskEnabled:n}){let d=(0,s.useRouter)(),[c,m]=(0,r.useState)([]),[x,u]=(0,r.useState)(!0),[h,p]=(0,r.useState)(!1),[f,g]=(0,r.useState)(""),[v,b]=(0,r.useState)(""),[w,y]=(0,r.useState)({}),[j,k]=(0,r.useState)({}),[N,S]=(0,r.useState)(""),[C,I]=(0,r.useState)(""),[P,E]=(0,r.useState)(null),[_,A]=(0,r.useState)(""),[O,R]=(0,r.useState)(""),[M,T]=(0,r.useState)(!1),$=(0,r.useCallback)(async t=>{let r=!!t?.quiet;g(""),r||u(!0);try{let t=await (0,i.fetchJson)(`/api/teams/workflows?teamId=${encodeURIComponent(e)}`,{cache:"no-store"});if(!t.ok)throw Error("Failed to load workflows");let r=(Array.isArray(t.files)?t.files:[]).map(e=>e.endsWith(".workflow.json")?e.slice(0,-14):null).filter(e=>!!e);m(r.map(e=>({id:e,name:e})))}catch(e){g((0,l.errorMessage)(e))}finally{r||u(!1)}},[e]);async function L(){p(!0);try{await $({quiet:!0})}finally{p(!1)}}async function D(t){if(confirm(`Delete workflow “${t}”? This removes the .workflow.json file from the team workspace.`)){g("");try{let r=await (0,i.fetchJson)(`/api/teams/workflows?teamId=${encodeURIComponent(e)}&id=${encodeURIComponent(t)}`,{method:"DELETE"});if(!r.ok)throw Error(r.error||"Failed to delete workflow");await $({quiet:!0}),v===t&&(b(""),S(""),E(null))}catch(e){g((0,l.errorMessage)(e))}}}async function U(t){k(e=>({...e,[t]:!0})),A("");try{let r=await (0,i.fetchJson)(`/api/teams/workflow-runs?teamId=${encodeURIComponent(e)}&workflowId=${encodeURIComponent(t)}`,{cache:"no-store"});if(!r.ok)throw Error(r.error||"Failed to load runs");let a=Array.isArray(r.runIds)?r.runIds.map(e=>String(e||"").trim()).filter(Boolean):Array.isArray(r.files)?r.files.map(e=>"string"==typeof e&&e.endsWith(".run.json")?e.slice(0,-9):null).filter(e=>!!e):[];y(e=>({...e,[t]:a}))}catch(e){A((0,l.errorMessage)(e)),y(e=>({...e,[t]:[]}))}finally{k(e=>({...e,[t]:!1}))}}async function z(t,r){I(t),S(r),E(null),A(""),R("");try{let a=await (0,i.fetchJson)(`/api/teams/workflow-runs?teamId=${encodeURIComponent(e)}&workflowId=${encodeURIComponent(t)}&runId=${encodeURIComponent(r)}`,{cache:"no-store"});if(!a.ok)throw Error(a.error||"Failed to load run");let s=o(a.run)?a.run:null;if(!s)throw Error("Invalid run format");E({id:String(s.id??r),status:"string"==typeof s.status?s.status:void 0,startedAt:"string"==typeof s.startedAt?s.startedAt:void 0,finishedAt:"string"==typeof s.finishedAt?String(s.finishedAt):void 0,meta:s.meta,memoryUsed:s.memoryUsed,approval:s.approval,raw:s})}catch(e){A((0,l.errorMessage)(e)),E(null)}}async function F(t){if(confirm(`Add workflow from template “${t}”?`)){g("");try{let r=await (0,i.fetchJson)("/api/teams/workflow-templates",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({teamId:e,templateId:t})});if(!r.ok)throw Error(r.error||"Failed to apply template");let a=String(r.workflowId??"").trim();if(!a)throw Error("Template applied but workflowId missing");await $({quiet:!0}),d.push(`/teams/${encodeURIComponent(e)}/workflows/${encodeURIComponent(a)}`)}catch(e){g((0,l.errorMessage)(e))}}}(0,r.useEffect)(()=>{$()},[$]);let B=(0,r.useMemo)(()=>{if(!P)return[];let e=P.memoryUsed??(o(P.meta)?P.meta.memoryUsed:void 0);return Array.isArray(e)?e.map(e=>o(e)?e:null).filter(Boolean).map(e=>({ts:String(e.ts??"").trim(),author:String(e.author??"").trim(),type:String(e.type??"").trim(),content:String(e.content??"").trim(),source:e.source})).filter(e=>e.ts&&e.author&&e.type&&e.content):[]},[P]);if(x)return(0,t.jsx)("div",{className:"ck-card p-4",children:"Loading workflows…"});let q=!1===n?(0,t.jsxs)("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 p-4 text-sm",children:[(0,t.jsx)("div",{className:"font-medium text-amber-200",children:"LLM support is not enabled"}),(0,t.jsxs)("div",{className:"mt-1 text-[color:var(--ck-text-secondary)]",children:["Workflow LLM nodes require the optional built-in ",(0,t.jsx)("code",{className:"px-1",children:"llm-task"})," plugin."]}),(0,t.jsxs)("div",{className:"mt-2 text-[color:var(--ck-text-secondary)]",children:["Enable it with: ",(0,t.jsx)("code",{className:"px-1",children:"openclaw plugins enable llm-task"})," then run"," ",(0,t.jsx)("code",{className:"px-1",children:"openclaw gateway restart"}),"."]}),(0,t.jsx)("div",{className:"mt-2 text-xs text-[color:var(--ck-text-tertiary)]",children:"If you’re doing a non-interactive install, keep this command in your setup docs as a fallback."})]}):null;return(0,t.jsxs)("div",{className:"ck-card p-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold",children:"Workflows (file-first)"}),(0,t.jsxs)("p",{className:"mt-1 text-sm text-[color:var(--ck-text-secondary)]",children:["Stored in ",(0,t.jsx)("code",{children:"shared-context/workflows/<id>.workflow.json"})," inside the team workspace."]}),q,(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap items-center justify-start gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>{let t=`new-${Date.now()}`;d.push(`/teams/${encodeURIComponent(e)}/workflows/${encodeURIComponent(t)}?draft=1`)},className:"rounded-lg bg-[var(--ck-accent-red)] px-3 py-2 text-sm font-medium text-white shadow-[var(--ck-shadow-1)]",children:"Add workflow"}),(0,t.jsx)("button",{type:"button",onClick:()=>void F("marketing-cadence-v1"),className:"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Add example template"}),(0,t.jsx)("button",{type:"button",onClick:L,disabled:h,className:"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10 disabled:opacity-60",children:h?"Refreshing…":"Refresh"})]})]}),f?(0,t.jsx)("div",{className:"mt-4 rounded-lg border border-red-400/30 bg-red-500/10 p-4 text-sm text-red-100",children:f}):null,0===c.length?(0,t.jsx)("p",{className:"mt-4 text-sm text-[color:var(--ck-text-secondary)]",children:"No workflows yet."}):(0,t.jsx)("ul",{className:"mt-4 divide-y divide-white/10 overflow-hidden rounded-lg border border-white/10",children:c.map(r=>{let s=v===r.id,i=w[r.id]??[],n=!!j[r.id];return(0,t.jsxs)("li",{className:"bg-white/5",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 px-4 py-3",children:[(0,t.jsxs)("button",{type:"button",onClick:async()=>{let e=s?"":r.id;b(e),S(""),E(null),A(""),e&&await U(e)},className:"min-w-0 flex-1 text-left",children:[(0,t.jsx)("div",{className:"truncate text-sm font-medium text-[color:var(--ck-text-primary)]",children:r.name||r.id}),(0,t.jsx)("div",{className:"truncate text-xs text-[color:var(--ck-text-tertiary)]",children:r.id}),(0,t.jsxs)("div",{className:"mt-1 text-[10px] text-[color:var(--ck-text-tertiary)]",children:["Click to ",s?"collapse":"expand"," run details"]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,t.jsx)(a.default,{href:`/teams/${encodeURIComponent(e)}/workflows/${encodeURIComponent(r.id)}`,className:"rounded-lg border border-white/10 bg-white/5 px-3 py-1.5 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Edit"}),(0,t.jsx)("button",{type:"button",onClick:()=>void D(r.id),className:"rounded-lg border border-[color:rgba(255,59,48,0.45)] bg-[color:rgba(255,59,48,0.08)] px-3 py-1.5 text-sm font-medium text-[color:var(--ck-accent-red)] transition-colors hover:bg-[color:rgba(255,59,48,0.12)]",children:"Delete"})]})]}),s?(0,t.jsxs)("div",{className:"border-t border-white/10 bg-white/5 px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[color:var(--ck-text-secondary)]",children:"Runs"}),(0,t.jsx)("button",{type:"button",disabled:n,onClick:()=>void U(r.id),className:"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-[11px] font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10 disabled:opacity-60",children:n?"Loading…":"Refresh runs"})]}),_?(0,t.jsx)("div",{className:"mt-2 rounded-lg border border-red-400/30 bg-red-500/10 p-2 text-xs text-red-100",children:_}):null,(0,t.jsxs)("div",{className:"mt-2 grid grid-cols-1 gap-3 lg:grid-cols-2",children:[(0,t.jsx)("div",{className:"rounded-lg border border-white/10 bg-white/5 p-2",children:i.length?(0,t.jsx)("div",{className:"space-y-1",children:i.slice(0,8).map(e=>{let a=N===e;return(0,t.jsx)("button",{type:"button",onClick:()=>void z(r.id,e),className:a?"w-full rounded-lg bg-white/10 px-2 py-1 text-left text-[11px] text-[color:var(--ck-text-primary)]":"w-full rounded-lg px-2 py-1 text-left text-[11px] text-[color:var(--ck-text-secondary)] hover:bg-white/5",children:(0,t.jsx)("span",{className:"font-mono",children:e})},e)})}):(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:"No runs yet."})}),(0,t.jsx)("div",{className:"rounded-lg border border-white/10 bg-white/5 p-3",children:P?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[color:var(--ck-text-secondary)]",children:"Run detail"}),(0,t.jsxs)("div",{className:"mt-1 text-[11px] text-[color:var(--ck-text-tertiary)]",children:[(0,t.jsx)("span",{className:"font-mono",children:P.id}),P.status?(0,t.jsxs)("span",{children:[" • ",P.status]}):null]})]}),(0,t.jsxs)("div",{className:"border-t border-white/10 pt-3",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[color:var(--ck-text-secondary)]",children:"Approval"}),(()=>{let r=P.approval;if(!o(r))return(0,t.jsx)("div",{className:"mt-2 text-xs text-[color:var(--ck-text-tertiary)]",children:"(No approval info recorded.)"});let a=String(r.state??"").trim(),s="string"==typeof r.requestedAt?r.requestedAt:"",i="string"==typeof r.decidedAt?r.decidedAt:"",n="string"==typeof r.decidedBy?r.decidedBy:"",d="string"==typeof r.note?r.note:"",c=o(r.outbound)?r.outbound:null,m="pending"===a||"waiting_for_approval"===P.status;return(0,t.jsxs)("div",{className:"mt-2 space-y-2",children:[(0,t.jsxs)("div",{className:"rounded-lg border border-white/10 bg-white/5 p-2 text-[11px] text-[color:var(--ck-text-secondary)]",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"font-mono",children:"state"}),": ",(0,t.jsx)("span",{className:"font-mono text-[color:var(--ck-text-primary)]",children:a||"(unknown)"})]}),s?(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"font-mono",children:"requestedAt"}),": ",(0,t.jsx)("span",{className:"font-mono",children:s})]}):null,i?(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"font-mono",children:"decidedAt"}),": ",(0,t.jsx)("span",{className:"font-mono",children:i})]}):null,n?(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"font-mono",children:"decidedBy"}),": ",(0,t.jsx)("span",{className:"font-mono",children:n})]}):null,d?(0,t.jsx)("div",{className:"mt-1 whitespace-pre-wrap text-xs text-[color:var(--ck-text-primary)]",children:d}):null,c?(0,t.jsxs)("div",{className:"mt-2 rounded-lg border border-white/10 bg-black/30 p-2 text-[10px]",children:[(0,t.jsx)("div",{className:"text-[color:var(--ck-text-tertiary)]",children:"Outbound"}),(0,t.jsx)("pre",{className:"mt-1 overflow-auto whitespace-pre-wrap",children:JSON.stringify(c,null,2)})]}):null]}),m?(0,t.jsxs)("div",{className:"rounded-lg border border-white/10 bg-white/5 p-2",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"approval note (optional)"}),(0,t.jsx)("textarea",{value:O,onChange:e=>R(e.target.value),rows:3,className:"mt-1 w-full rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",placeholder:"e.g. Ship it / please tweak hook"}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:[{action:"approve",label:"Approve"},{action:"request_changes",label:"Request changes"},{action:"cancel",label:"Cancel"}].map(r=>(0,t.jsx)("button",{type:"button",disabled:M,onClick:async()=>{if(C&&N&&confirm(`${r.label} run ${N}?`)){T(!0),A("");try{let t=await fetch("/api/teams/workflow-runs",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({teamId:e,workflowId:C,runId:N,action:r.action,note:O||void 0,decidedBy:"ClawKitchen UI"})}),a=await t.json();if(!t.ok||!a.ok)throw Error(a.error||"Failed to apply approval action");await z(C,N)}catch(e){A((0,l.errorMessage)(e))}finally{T(!1)}}},className:"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-[11px] font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10 disabled:opacity-60",children:r.label},r.action))})]}):null]})})()]}),(0,t.jsxs)("div",{className:"border-t border-white/10 pt-3",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[color:var(--ck-text-secondary)]",children:"Memory used in this run"}),B.length?(0,t.jsx)("div",{className:"mt-2 space-y-2",children:B.slice(0,20).map((e,r)=>(0,t.jsxs)("div",{className:"rounded-lg border border-white/10 bg-white/5 p-2",children:[(0,t.jsxs)("div",{className:"text-[10px] text-[color:var(--ck-text-tertiary)]",children:[(0,t.jsx)("span",{className:"font-mono",children:e.ts})," • ",(0,t.jsx)("span",{className:"font-mono",children:e.type})," • ",(0,t.jsx)("span",{className:"font-mono",children:e.author})]}),(0,t.jsx)("div",{className:"mt-1 whitespace-pre-wrap text-xs text-[color:var(--ck-text-primary)]",children:e.content}),void 0!==e.source?(0,t.jsx)("pre",{className:"mt-2 overflow-auto rounded-lg border border-white/10 bg-black/30 p-2 text-[10px] text-[color:var(--ck-text-secondary)]",children:JSON.stringify(e.source,null,2)}):null]},`${e.ts}-${r}`))}):(0,t.jsxs)("div",{className:"mt-2 text-xs text-[color:var(--ck-text-tertiary)]",children:["(None recorded yet.)",(0,t.jsxs)("div",{className:"mt-1",children:["Next step: have the workflow runner write an explicit ",(0,t.jsx)("span",{className:"font-mono",children:"memoryUsed[]"})," list into the run file."]})]})]})]}):N?(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-secondary)]",children:"Loading run…"}):(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:"Select a run to see details."})})]})]}):null]},r.id)})})]})}e.s(["default",()=>n])},88143,(e,t,r)=>{"use strict";function a({widthInt:e,heightInt:t,blurWidth:r,blurHeight:a,blurDataURL:s,objectFit:i}){let l=r?40*r:e,o=a?40*a:t,n=l&&o?`viewBox='0 0 ${l} ${o}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${n}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${n?"none":"contain"===i?"xMidYMid":"cover"===i?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${s}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return a}})},87690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={VALID_LOADERS:function(){return i},imageConfigDefault:function(){return l}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let i=["default","imgix","cloudinary","akamai","custom"],l={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},8927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return d}}),e.r(33525);let a=e.r(43369),s=e.r(88143),i=e.r(87690),l=["-moz-initial","fill","none","scale-down",void 0];function o(e){return void 0!==e.default}function n(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function d({src:e,sizes:t,unoptimized:r=!1,priority:d=!1,preload:c=!1,loading:m,className:x,quality:u,width:h,height:p,fill:f=!1,style:g,overrideSrc:v,onLoad:b,onLoadingComplete:w,placeholder:y="empty",blurDataURL:j,fetchPriority:k,decoding:N="async",layout:S,objectFit:C,objectPosition:I,lazyBoundary:P,lazyRoot:E,..._},A){var O;let R,M,T,{imgConf:$,showAltText:L,blurComplete:D,defaultLoader:U}=A,z=$||i.imageConfigDefault;if("allSizes"in z)R=z;else{let e=[...z.deviceSizes,...z.imageSizes].sort((e,t)=>e-t),t=z.deviceSizes.sort((e,t)=>e-t),r=z.qualities?.sort((e,t)=>e-t);R={...z,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===U)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let F=_.loader||U;delete _.loader,delete _.srcSet;let B="__next_img_default"in F;if(B){if("custom"===R.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
2
+ Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=F;F=t=>{let{config:r,...a}=t;return e(a)}}if(S){"fill"===S&&(f=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[S];e&&(g={...g,...e});let r={responsive:"100vw",fill:"100vw"}[S];r&&!t&&(t=r)}let q="",J=n(h),W=n(p);if((O=e)&&"object"==typeof O&&(o(O)||void 0!==O.src)){let t=o(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(M=t.blurWidth,T=t.blurHeight,j=j||t.blurDataURL,q=t.src,!f)if(J||W){if(J&&!W){let e=J/t.width;W=Math.round(t.height*e)}else if(!J&&W){let e=W/t.height;J=Math.round(t.width*e)}}else J=t.width,W=t.height}let G=!d&&!c&&("lazy"===m||void 0===m);(!(e="string"==typeof e?e:q)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,G=!1),R.unoptimized&&(r=!0),B&&!R.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let K=n(u),H=Object.assign(f?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:C,objectPosition:I}:{},L?{}:{color:"transparent"},g),V=D||"empty"===y?null:"blur"===y?`url("data:image/svg+xml;charset=utf-8,${(0,s.getImageBlurSvg)({widthInt:J,heightInt:W,blurWidth:M,blurHeight:T,blurDataURL:j||"",objectFit:H.objectFit})}")`:`url("${y}")`,X=l.includes(H.objectFit)?"fill"===H.objectFit?"100% 100%":"cover":H.objectFit,Y=V?{backgroundSize:X,backgroundPosition:H.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:V}:{},Q=function({config:e,src:t,unoptimized:r,width:s,quality:i,sizes:l,loader:o}){if(r){let e=(0,a.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")&&e){let r=t.includes("?")?"&":"?";t=`${t}${r}dpl=${e}`}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:n,kind:d}=function({deviceSizes:e,allSizes:t},r,a){if(a){let r=/(^|\s)(1?\d?\d)vw/g,s=[];for(let e;e=r.exec(a);)s.push(parseInt(e[2]));if(s.length){let r=.01*Math.min(...s);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,s,l),c=n.length-1;return{sizes:l||"w"!==d?l:"100vw",srcSet:n.map((r,a)=>`${o({config:e,src:t,quality:i,width:r})} ${"w"===d?r:a+1}${d}`).join(", "),src:o({config:e,src:t,quality:i,width:n[c]})}}({config:R,src:e,unoptimized:r,width:J,quality:K,sizes:t,loader:F}),Z=G?"lazy":m;return{props:{..._,loading:Z,fetchPriority:k,width:J,height:W,decoding:N,className:x,style:{...H,...Y},sizes:Q.sizes,srcSet:Q.srcSet,src:v||Q.src},meta:{unoptimized:r,preload:c||d,placeholder:y,fill:f}}}},98879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let a=e.r(71645),s="u"<typeof window,i=s?()=>{}:a.useLayoutEffect,l=s?()=>{}:a.useEffect;function o(e){let{headManager:t,reduceComponentsToState:r}=e;function o(){if(t&&t.mountedInstances){let e=a.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return s&&(t?.mountedInstances?.add(e.children),o()),i(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),i(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),l(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},25633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return p},defaultHead:function(){return m}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let i=e.r(55682),l=e.r(90809),o=e.r(18050),n=l._(e.r(71645)),d=i._(e.r(98879)),c=e.r(42732);function m(){return[(0,o.jsx)("meta",{charSet:"utf-8"},"charset"),(0,o.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function x(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===n.default.Fragment?e.concat(n.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let u=["name","httpEquiv","charSet","itemProp"];function h(e){let t,r,a,s;return e.reduce(x,[]).reverse().concat(m().reverse()).filter((t=new Set,r=new Set,a=new Set,s={},e=>{let i=!0,l=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){l=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?i=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?i=!1:r.add(e.type);break;case"meta":for(let t=0,r=u.length;t<r;t++){let r=u[t];if(e.props.hasOwnProperty(r))if("charSet"===r)a.has(r)?i=!1:a.add(r);else{let t=e.props[r],a=s[r]||new Set;("name"!==r||!l)&&a.has(t)?i=!1:(a.add(t),s[r]=a)}}}return i})).reverse().map((e,t)=>{let r=e.key||t;return n.default.cloneElement(e,{key:r})})}let p=function({children:e}){let t=(0,n.useContext)(c.HeadManagerContext);return(0,o.jsx)(d.default,{reduceComponentsToState:h,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18556,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return i}});let a=e.r(55682)._(e.r(71645)),s=e.r(87690),i=a.default.createContext(s.imageConfigDefault)},65856,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return a}});let a=e.r(55682)._(e.r(71645)).default.createContext(null)},70965,(e,t,r)=>{"use strict";function a(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,0):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return a}})},1948,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let a=e.r(70965),s=e.r(43369);function i({config:e,src:t,width:r,quality:i}){if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
3
+ Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let l=(0,a.findClosestQuality)(i,e),o=(0,s.getDeploymentId)();return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${l}${t.startsWith("/")&&o?`&dpl=${o}`:""}`}i.__next_img_default=!0;let l=i},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return w}});let a=e.r(55682),s=e.r(90809),i=e.r(18050),l=s._(e.r(71645)),o=a._(e.r(74080)),n=a._(e.r(25633)),d=e.r(8927),c=e.r(87690),m=e.r(18556);e.r(33525);let x=e.r(65856),u=a._(e.r(1948)),h=e.r(18581),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function f(e,t,r,a,s,i,l){let o=e?.src;e&&e["data-loaded-src"]!==o&&(e["data-loaded-src"]=o,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&s(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let a=!1,s=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>a,isPropagationStopped:()=>s,persist:()=>{},preventDefault:()=>{a=!0,t.preventDefault()},stopPropagation:()=>{s=!0,t.stopPropagation()}})}a?.current&&a.current(e)}}))}function g(e){return l.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let v=(0,l.forwardRef)(({src:e,srcSet:t,sizes:r,height:a,width:s,decoding:o,className:n,style:d,fetchPriority:c,placeholder:m,loading:x,unoptimized:u,fill:p,onLoadRef:v,onLoadingCompleteRef:b,setBlurComplete:w,setShowAltText:y,sizesInput:j,onLoad:k,onError:N,...S},C)=>{let I=(0,l.useCallback)(e=>{e&&(N&&(e.src=e.src),e.complete&&f(e,m,v,b,w,u,j))},[e,m,v,b,w,N,u,j]),P=(0,h.useMergedRef)(C,I);return(0,i.jsx)("img",{...S,...g(c),loading:x,width:s,height:a,decoding:o,"data-nimg":p?"fill":"1",className:n,style:d,sizes:r,srcSet:t,src:e,ref:P,onLoad:e=>{f(e.currentTarget,m,v,b,w,u,j)},onError:e=>{y(!0),"empty"!==m&&w(!0),N&&N(e)}})});function b({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...g(t.fetchPriority)};return e&&o.default.preload?(o.default.preload(t.src,r),null):(0,i.jsx)(n.default,{children:(0,i.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let w=(0,l.forwardRef)((e,t)=>{let r=(0,l.useContext)(x.RouterContext),a=(0,l.useContext)(m.ImageConfigContext),s=(0,l.useMemo)(()=>{let e=p||a||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),s=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:s,localPatterns:"u"<typeof window?a?.localPatterns:e.localPatterns}},[a]),{onLoad:o,onLoadingComplete:n}=e,h=(0,l.useRef)(o);(0,l.useEffect)(()=>{h.current=o},[o]);let f=(0,l.useRef)(n);(0,l.useEffect)(()=>{f.current=n},[n]);let[g,w]=(0,l.useState)(!1),[y,j]=(0,l.useState)(!1),{props:k,meta:N}=(0,d.getImgProps)(e,{defaultLoader:u.default,imgConf:s,blurComplete:g,showAltText:y});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(v,{...k,unoptimized:N.unoptimized,placeholder:N.placeholder,fill:N.fill,onLoadRef:h,onLoadingCompleteRef:f,setBlurComplete:w,setShowAltText:j,sizesInput:e.sizes,ref:t}),N.preload?(0,i.jsx)(b,{isAppRouter:!r,imgAttributes:k}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return c},getImageProps:function(){return d}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let i=e.r(55682),l=e.r(8927),o=e.r(5500),n=i._(e.r(1948));function d(e){let{props:t}=(0,l.getImgProps)(e,{defaultLoader:n.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let c=o.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},37121,34011,e=>{"use strict";let t=new Set(["png","jpg","jpeg","gif","webp","svg"]),r=new Set(["mp4","webm","mov","avi","mkv","ogv"]),a=new Set(["mp3","wav","ogg","m4a","aac","flac","webm"]);function s(e){return e.toLowerCase().split(".").pop()??""}function i(e){return t.has(s(e))}function l(e){return r.has(s(e))}function o(e){return a.has(s(e))}let n={mp4:"video/mp4",webm:"video/webm",mov:"video/quicktime",avi:"video/x-msvideo",mkv:"video/x-matroska",ogv:"video/ogg",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac"};function d(e){return n[s(e)]??""}e.s(["isAudioFile",()=>o,"isImageFile",()=>i,"isVideoFile",()=>l,"mimeForFile",()=>d],37121);var c=e.i(18050),m=e.i(57688);function x(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(1))+" "+["B","KB","MB","GB"][t]}function u(e){return({png:"🖼️",jpg:"🖼️",jpeg:"🖼️",gif:"🖼️",webp:"🖼️",svg:"🖼️",mp4:"🎬",webm:"🎬",mov:"🎬",avi:"🎬",mkv:"🎬",ogv:"🎬",mp3:"🎵",wav:"🎵",ogg:"🎵",m4a:"🎵",aac:"🎵",flac:"🎵",json:"📋",md:"📝",txt:"📄",html:"🌐",pdf:"📕"})[e.toLowerCase().split(".").pop()??""]??"📎"}function h({deliverable:e,fileUrl:t,maxMediaHeight:r="400px",onDownload:a}){return e?(0,c.jsxs)("div",{children:[(0,c.jsxs)("div",{className:"mb-3 pb-3 border-b border-white/10",children:[(0,c.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,c.jsx)("span",{className:"text-lg",children:u(e.fileName)}),(0,c.jsx)("span",{className:"font-medium text-[color:var(--ck-text-primary)] text-sm break-all",children:e.fileName})]}),(0,c.jsxs)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)] space-y-1",children:[(0,c.jsxs)("div",{children:["Size: ",x(e.size)]}),(0,c.jsxs)("div",{children:["Modified: ",function(e){try{return new Date(e).toLocaleString()}catch{return e}}(e.mtime)]}),(0,c.jsxs)("div",{children:["Path: ",e.relativePath]})]})]}),i(e.fileName)?(0,c.jsxs)("div",{children:[(0,c.jsx)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)] mb-2",children:"Image Preview:"}),(0,c.jsx)("div",{className:"bg-white/5 border border-white/10 rounded-lg p-2 overflow-hidden",children:(0,c.jsx)(m.default,{src:t,alt:e.fileName,width:800,height:600,className:"w-full h-auto rounded-lg object-contain",style:{maxHeight:r},unoptimized:!0})}),(0,c.jsxs)("div",{className:"mt-2 flex gap-2",children:[(0,c.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"text-xs px-2 py-1 border border-white/10 rounded hover:bg-white/5 text-[color:var(--ck-text-secondary)]",children:"Open full size ↗"}),(0,c.jsx)("button",{onClick:a,className:"text-xs px-2 py-1 border border-white/10 rounded hover:bg-white/5 text-[color:var(--ck-text-secondary)]",children:"Download"})]})]}):l(e.fileName)?(0,c.jsxs)("div",{children:[(0,c.jsx)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)] mb-2",children:"Video Preview:"}),(0,c.jsx)("div",{className:"bg-white/5 border border-white/10 rounded-lg p-2 overflow-hidden",children:(0,c.jsxs)("video",{src:t,controls:!0,className:"w-full rounded-lg",style:{maxHeight:r},preload:"metadata",children:[(0,c.jsx)("source",{src:t,type:d(e.fileName)}),"Your browser does not support video playback."]})}),(0,c.jsxs)("div",{className:"mt-2 flex gap-2",children:[(0,c.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"text-xs px-2 py-1 border border-white/10 rounded hover:bg-white/5 text-[color:var(--ck-text-secondary)]",children:"Open full size ↗"}),(0,c.jsx)("button",{onClick:a,className:"text-xs px-2 py-1 border border-white/10 rounded hover:bg-white/5 text-[color:var(--ck-text-secondary)]",children:"Download"})]})]}):o(e.fileName)?(0,c.jsxs)("div",{children:[(0,c.jsx)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)] mb-2",children:"Audio Preview:"}),(0,c.jsx)("div",{className:"bg-white/5 border border-white/10 rounded-lg p-2",children:(0,c.jsxs)("audio",{src:t,controls:!0,className:"w-full",preload:"metadata",children:[(0,c.jsx)("source",{src:t,type:d(e.fileName)}),"Your browser does not support audio playback."]})}),(0,c.jsx)("div",{className:"mt-2",children:(0,c.jsx)("button",{onClick:a,className:"text-xs px-2 py-1 border border-white/10 rounded hover:bg-white/5 text-[color:var(--ck-text-secondary)]",children:"Download"})})]}):e.isText&&e.contentPreview?(0,c.jsxs)("div",{children:[(0,c.jsx)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)] mb-2",children:"Content Preview:"}),(0,c.jsx)("div",{className:"bg-white/5 border border-white/10 rounded-lg p-3 overflow-auto",style:{maxHeight:r},children:(0,c.jsx)("pre",{className:"text-xs text-[color:var(--ck-text-primary)] whitespace-pre-wrap break-words",children:e.contentPreview})})]}):(0,c.jsxs)("div",{className:"text-center py-6",children:[(0,c.jsx)("div",{className:"text-3xl mb-2",children:u(e.fileName)}),(0,c.jsxs)("div",{className:"text-xs text-[color:var(--ck-text-secondary)] mb-2",children:[x(e.size)," · ",e.fileName.split(".").pop()?.toUpperCase()," file"]}),(0,c.jsx)("button",{onClick:a,className:"text-xs px-3 py-1.5 border border-white/10 rounded hover:bg-white/5 text-[color:var(--ck-text-secondary)]",children:"Download file"})]})]}):(0,c.jsx)("div",{className:"text-sm text-[color:var(--ck-text-secondary)] italic",children:"Select a deliverable to preview"})}e.s(["DeliverablePreviewPanel",()=>h],34011)},529,e=>{"use strict";var t=e.i(18050),r=e.i(57688),a=e.i(22016),s=e.i(71645),i=e.i(18566),l=e.i(37121),o=e.i(34011);function n(e,t){return`/api/teams/workflow-deliverables/file?teamId=${encodeURIComponent(e)}&runId=${encodeURIComponent(t.runId)}&path=${encodeURIComponent(t.relativePath)}`}function d(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(1))+" "+["B","KB","MB","GB"][t]}function c(e){try{return new Date(e).toLocaleString()}catch{return e}}function m(e){switch(e.toLowerCase().split(".").pop()){case"md":return"📝";case"json":return"🔧";case"txt":default:return"📄";case"html":case"htm":return"🌐";case"css":return"🎨";case"js":case"ts":case"tsx":case"jsx":return"⚙️";case"png":case"jpg":case"jpeg":case"gif":case"webp":return"🖼️";case"pdf":return"📋";case"zip":case"tar":case"gz":return"📦"}}function x({teamId:e,deliverables:x,workflows:u}){let h=(0,i.useRouter)(),[p,f]=(0,s.useState)(""),[g,v]=(0,s.useState)(""),[b,w]=(0,s.useState)(""),[y,j]=(0,s.useState)(null),k=(0,s.useMemo)(()=>{let e=b.trim().toLowerCase();return x.filter(t=>{if(p&&t.workflowId!==p||g&&t.runId!==g)return!1;if(!e)return!0;let r=u[t.workflowId]?.name??"";return t.fileName.toLowerCase().includes(e)||t.workflowId.toLowerCase().includes(e)||t.runId.toLowerCase().includes(e)||r.toLowerCase().includes(e)||t.contentPreview&&t.contentPreview.toLowerCase().includes(e)})},[x,b,p,g,u]),N=(0,s.useMemo)(()=>Array.from(new Set(x.map(e=>e.workflowId).filter(Boolean))).sort(),[x]),S=(0,s.useMemo)(()=>Array.from(new Set((p?x.filter(e=>e.workflowId===p):x).map(e=>e.runId).filter(Boolean))).sort(),[x,p]),C=async t=>{try{if(t.isText&&t.contentPreview)await navigator.clipboard.writeText(t.contentPreview),alert("Content copied to clipboard!");else{let r=n(e,t),a=document.createElement("a");a.href=r,a.download=t.fileName,document.body.appendChild(a),a.click(),a.remove()}}catch{alert("Failed to download file")}};return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsx)("div",{className:"rounded-3xl border border-white/10 bg-black/10 p-4",children:(0,t.jsxs)("div",{className:"flex flex-wrap items-end justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-end gap-3",children:[(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"workflow"}),(0,t.jsxs)("select",{value:p,onChange:e=>{f(e.target.value||""),v("")},className:"mt-1 w-64 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"",children:"All workflows"}),N.map(e=>(0,t.jsx)("option",{value:e,children:u[e]?.name?`${u[e]?.name} (${e})`:e},e))]})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"run"}),(0,t.jsxs)("select",{value:g,onChange:e=>v(e.target.value||""),className:"mt-1 w-56 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]",children:[(0,t.jsx)("option",{value:"",children:"All runs"}),S.map(e=>(0,t.jsx)("option",{value:e,children:e},e))]})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-[color:var(--ck-text-tertiary)]",children:"search"}),(0,t.jsx)("input",{value:b,onChange:e=>w(e.target.value),placeholder:"filename / content",className:"mt-1 w-72 max-w-full rounded-lg border border-white/10 bg-white/5 px-2 py-2 text-sm text-[color:var(--ck-text-primary)]"})]})]}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)("button",{type:"button",onClick:()=>h.refresh(),className:"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Refresh"})})]})}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-3",children:[(0,t.jsxs)("div",{className:"lg:col-span-2 rounded-3xl border border-white/10 bg-black/10 p-4",children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-[color:var(--ck-text-primary)] mb-4",children:"Workflow Deliverables"}),k.length>0?(0,t.jsx)("div",{className:"space-y-2",children:k.map((s,i)=>{let o=y?.absolutePath===s.absolutePath,x=u[s.workflowId]?.name||s.workflowId;return(0,t.jsx)("div",{className:`cursor-pointer rounded-lg border p-3 transition-colors ${o?"border-white/20 bg-white/10":"border-white/5 bg-black/5 hover:bg-white/5"}`,onClick:()=>j(s),children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,l.isImageFile)(s.fileName)&&(0,t.jsx)("div",{className:"flex-shrink-0 w-12 h-12 rounded overflow-hidden bg-white/5 border border-white/10",children:(0,t.jsx)(r.default,{src:n(e,s),alt:s.fileName,width:48,height:48,className:"w-full h-full object-cover",unoptimized:!0})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-lg",children:m(s.fileName)}),(0,t.jsx)("span",{className:"font-medium text-[color:var(--ck-text-primary)] truncate",children:s.fileName}),s.isText&&(0,t.jsx)("span",{className:"text-xs bg-green-500/20 text-green-400 px-1.5 py-0.5 rounded",children:"TEXT"})]}),(0,t.jsxs)("div",{className:"mt-1 text-xs text-[color:var(--ck-text-tertiary)]",children:[(0,t.jsx)("span",{className:"font-mono",children:x})," · ",(0,t.jsx)("span",{className:"font-mono",children:s.runId})]}),(0,t.jsxs)("div",{className:"mt-1 text-xs text-[color:var(--ck-text-tertiary)]",children:[s.relativePath!==s.fileName&&(0,t.jsxs)("span",{children:[s.relativePath," · "]}),d(s.size)," · ",c(s.mtime)]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{onClick:e=>{e.stopPropagation(),C(s)},className:"text-xs px-2 py-1 border border-white/10 rounded hover:bg-white/5 text-[color:var(--ck-text-secondary)]",children:s.isText?"Copy":"Download"}),(0,t.jsx)(a.default,{href:`/teams/${e}/runs/${s.workflowId}/${s.runId}`,onClick:e=>e.stopPropagation(),className:"text-xs px-2 py-1 border border-white/10 rounded hover:bg-white/5 text-[color:var(--ck-text-secondary)]",children:"View Run →"})]})]})},`${s.runId}-${s.relativePath}`)})}):(0,t.jsxs)("div",{className:"text-center py-8 text-[color:var(--ck-text-secondary)]",children:[(0,t.jsx)("div",{className:"text-4xl mb-2",children:"📋"}),(0,t.jsx)("div",{className:"text-lg mb-1",children:"No deliverables found"}),(0,t.jsx)("div",{className:"text-sm",children:"Workflow runs will create deliverables that appear here when they complete."})]}),k.length>0&&(0,t.jsxs)("div",{className:"mt-4 text-xs text-[color:var(--ck-text-tertiary)]",children:["Showing ",k.length," of ",x.length," deliverables."]})]}),(0,t.jsxs)("div",{className:"lg:col-span-1 rounded-3xl border border-white/10 bg-black/10 p-4",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-[color:var(--ck-text-primary)] mb-3",children:"Preview"}),y?(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-3 pb-3 border-b border-white/10",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)("span",{className:"text-lg",children:m(y.fileName)}),(0,t.jsx)("span",{className:"font-medium text-[color:var(--ck-text-primary)] text-sm break-all",children:y.fileName})]}),(0,t.jsxs)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)] space-y-1",children:[(0,t.jsxs)("div",{children:["Size: ",d(y.size)]}),(0,t.jsxs)("div",{children:["Modified: ",c(y.mtime)]}),(0,t.jsxs)("div",{children:["Path: ",y.relativePath]})]})]}),(0,t.jsx)(o.DeliverablePreviewPanel,{deliverable:y,fileUrl:n(e,y),maxMediaHeight:"500px",onDownload:()=>C(y)})]}):(0,t.jsx)("div",{className:"text-sm text-[color:var(--ck-text-secondary)] italic",children:"Select a deliverable to preview"})]})]})]})}e.s(["default",()=>x])},32246,e=>{e.v(e=>Promise.resolve().then(()=>e(74080)))}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,44355,e=>{"use strict";var t=e.i(18050),r=e.i(74080);function i({open:e,onClose:i,title:d,children:l,error:a,confirmLabel:o,confirmBusyLabel:s,onConfirm:c,confirmDisabled:n,busy:m,confirmButtonClassName:x}){if(!e)return null;let b=m??!1,u=b&&s?s:o,h="confirmation-modal-title";return(0,r.createPortal)((0,t.jsxs)("div",{className:"fixed inset-0 z-[200]",children:[(0,t.jsx)("div",{className:"fixed inset-0 bg-black/60",onClick:i,"aria-hidden":"true"}),(0,t.jsx)("div",{className:"fixed inset-0 overflow-y-auto",role:"dialog","aria-modal":"true","aria-labelledby":h,children:(0,t.jsx)("div",{className:"flex min-h-full items-center justify-center p-4",children:(0,t.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-white/10 bg-[color:var(--ck-bg-soft)] p-5 shadow-[var(--ck-shadow-2)]",children:[(0,t.jsx)("h2",{id:h,className:"text-lg font-semibold text-[color:var(--ck-text-primary)]",children:d}),l,a?(0,t.jsx)("div",{className:"mt-4 rounded-lg border border-red-400/30 bg-red-500/10 p-3 text-sm text-red-100",children:a}):null,(0,t.jsxs)("div",{className:"mt-6 flex items-center justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:i,className:"rounded-lg border border-white/10 bg-white/5 px-3 py-2 text-sm font-medium text-[color:var(--ck-text-primary)] hover:bg-white/10",children:"Cancel"}),(0,t.jsx)("button",{type:"button",disabled:(n??!1)||b,onClick:c,className:x??"rounded-lg bg-[var(--ck-accent-red)] px-3 py-2 text-sm font-medium text-white shadow-[var(--ck-shadow-1)] transition-colors hover:bg-[var(--ck-accent-red-hover)] disabled:opacity-50",children:u})]})]})})})]}),document.body)}e.s(["ConfirmationModal",()=>i])}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,82310,e=>{"use strict";function t(e){return e instanceof Error?e.message:String(e)}e.s(["errorMessage",()=>t])},39905,e=>{"use strict";var t=e.i(18050),s=e.i(71645),r=e.i(82310),a=e.i(42771);function o(){let[e,o]=(0,s.useState)(!0),[l,i]=(0,s.useState)(!1),[n,c]=(0,s.useState)("prompt"),[d,u]=(0,s.useState)("");async function f(e){i(!0),u("");try{let t=await (0,a.fetchJson)("/api/settings/cron-installation",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({value:e})});if(!t.ok)throw Error(t.error||"Save failed");c(e),u("Saved.")}catch(e){u((0,r.errorMessage)(e))}finally{i(!1)}}(0,s.useEffect)(()=>{(async()=>{o(!0),u("");try{let e=await (0,a.fetchJson)("/api/settings/cron-installation",{cache:"no-store"});if(!e.ok)throw Error(e.error||"Failed to load config");let t=String(e.value||"").trim();"off"===t||"prompt"===t||"on"===t?c(t):c("prompt")}catch(e){u((0,r.errorMessage)(e))}finally{o(!1)}})()},[]);let m=({value:s,title:r,help:a})=>(0,t.jsxs)("button",{type:"button",onClick:()=>f(s),disabled:e||l,className:`ck-glass w-full text-left px-4 py-3 transition-colors hover:bg-white/10 ${n===s?"border-[color:var(--ck-accent-red)]":""}`,children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,t.jsx)("div",{className:"font-medium",children:r}),n===s?(0,t.jsx)("div",{className:"text-xs font-medium text-[color:var(--ck-accent-red)]",children:"Selected"}):null]}),(0,t.jsx)("div",{className:"mt-1 text-sm text-[color:var(--ck-text-secondary)]",children:a})]});return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(m,{value:"off",title:"Off",help:"Never install or reconcile recipe-defined cron jobs."}),(0,t.jsx)(m,{value:"prompt",title:"Prompt (default)",help:"Ask at scaffold time. Default answer should be No; jobs are installed disabled unless you opt in."}),(0,t.jsx)(m,{value:"on",title:"On",help:"Install/reconcile jobs during scaffold (enabledByDefault controls new jobs)."}),d?(0,t.jsx)("div",{className:"mt-2 rounded-[var(--ck-radius-sm)] border border-white/10 bg-black/20 p-3 text-sm",children:d}):null]})}e.s(["default",()=>o])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,82310,e=>{"use strict";function t(e){return e instanceof Error?e.message:String(e)}e.s(["errorMessage",()=>t])},39905,e=>{"use strict";var t=e.i(18050),s=e.i(71645),r=e.i(82310),o=e.i(42771);function l(){let[e,l]=(0,s.useState)(!0),[a,i]=(0,s.useState)(!1),[n,c]=(0,s.useState)("prompt"),[d,u]=(0,s.useState)("");async function f(e){i(!0),u("");try{let t=await (0,o.fetchJson)("/api/settings/cron-installation",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({value:e})});if(!t.ok)throw Error(t.error||"Save failed");c(e),u("Saved.")}catch(e){u((0,r.errorMessage)(e))}finally{i(!1)}}(0,s.useEffect)(()=>{(async()=>{l(!0),u("");try{let e=await (0,o.fetchJson)("/api/settings/cron-installation",{cache:"no-store"});if(!e.ok)throw Error(e.error||"Failed to load config");let t=String(e.value||"").trim();"off"===t||"prompt"===t||"on"===t?c(t):c("prompt")}catch(e){u((0,r.errorMessage)(e))}finally{l(!1)}})()},[]);let p=({value:s,title:r,help:o})=>(0,t.jsxs)("button",{type:"button",onClick:()=>f(s),disabled:e||a,className:`ck-glass w-full text-left px-4 py-3 transition-colors hover:bg-white/10 ${n===s?"border-[color:var(--ck-accent-red)]":""}`,children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,t.jsx)("div",{className:"font-medium",children:r}),n===s?(0,t.jsx)("div",{className:"text-xs font-medium text-[color:var(--ck-accent-red)]",children:"Selected"}):null]}),(0,t.jsx)("div",{className:"mt-1 text-sm text-[color:var(--ck-text-secondary)]",children:o})]});return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(p,{value:"off",title:"Off",help:"Never install or reconcile recipe-defined cron jobs."}),(0,t.jsx)(p,{value:"prompt",title:"Prompt (default)",help:"Ask at scaffold time. Default answer should be No; jobs are installed disabled unless you opt in."}),(0,t.jsx)(p,{value:"on",title:"On",help:"Install/reconcile jobs during scaffold (enabledByDefault controls new jobs)."}),d?(0,t.jsx)("div",{className:"mt-2 rounded-lg border border-white/10 bg-white/5 p-3 text-sm",children:d}):null]})}e.s(["default",()=>l])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,82310,e=>{"use strict";function t(e){return e instanceof Error?e.message:String(e)}e.s(["errorMessage",()=>t])},96985,e=>{"use strict";var t=e.i(18050),r=e.i(71645),s=e.i(82310),n=e.i(42771);function a(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function l({children:e,onClick:r,kind:s,disabled:n}){let a="rounded-lg px-3 py-2 text-sm font-medium transition disabled:opacity-50 ";return"primary"===s?a+="bg-[var(--ck-accent-red)] text-white":"danger"===s?a+="border border-[color:rgba(255,59,48,0.45)] bg-[color:rgba(255,59,48,0.08)] text-[color:var(--ck-accent-red)] hover:bg-[color:rgba(255,59,48,0.12)]":a+="border border-[color:var(--ck-border-subtle)] hover:bg-white/5",(0,t.jsx)("button",{className:a,onClick:r,disabled:n,children:e})}function i(){let[e,i]=(0,r.useState)({}),[c,o]=(0,r.useState)(!0),[d,m]=(0,r.useState)(null),[x,u]=(0,r.useState)("telegram"),[h,g]=(0,r.useState)('{\n "enabled": true\n}\n'),[f,v]=(0,r.useState)(!1),[p,b]=(0,r.useState)(null),[j,y]=(0,r.useState)(""),k=(0,r.useMemo)(()=>{let e=String(d??"");return/Tool not available:\s*gateway/i.test(e)},[d]);async function N(){try{let e=await (0,n.fetchJson)("/api/channels/bindings",{cache:"no-store"}),t=a(e.channels)?e.channels:{};return{ok:!0,channels:t}}catch(e){return{ok:!1,error:(0,s.errorMessage)(e)}}}let w=(0,r.useCallback)(async()=>{o(!0),m(null);try{let e=await N();if(!e.ok){m(e.error),i({}),o(!1);return}i(e.channels),o(!1)}catch(e){m((0,s.errorMessage)(e)),i({}),o(!1)}},[]);(0,r.useEffect)(()=>{let e=!1;return(async()=>{if(await w(),e)return})(),()=>{e=!0}},[w]);let S=(0,r.useMemo)(()=>{let t=Object.keys(e);return t.sort(),t.filter(t=>null!=e[t])},[e]);async function C(e,t){try{let r=await (0,n.fetchJson)("/api/channels/bindings",{method:e,headers:{"content-type":"application/json"},body:JSON.stringify(t)});if(!r?.ok)return{ok:!1,error:String(r?.error??`Failed to ${"PUT"===e?"save":"delete"}`)};return{ok:!0}}catch(e){return{ok:!1,error:(0,s.errorMessage)(e)}}}async function T(){let e;v(!0),m(null);try{e=JSON.parse(h)}catch{m("Config must be valid JSON"),v(!1);return}if(!a(e)){m("Config must be a JSON object"),v(!1);return}let t=await C("PUT",{provider:x.trim(),config:e});if(!t.ok){m(t.error),v(!1);return}await w(),v(!1)}async function O(e){let t=String(e??"").trim();t&&(b(t),y(""))}async function E(){let e=String(p??"").trim();if(!e)return;let t=String(j??"").trim();if(t!==e)return;v(!0),m(null);let r=await C("DELETE",{provider:e,confirm:t});if(!r.ok){m(r.error),v(!1);return}b(null),y(""),await w(),v(!1)}let J=(0,r.useMemo)(()=>{let t=e[x];return a(t)?t:null},[e,x]);return(0,t.jsxs)("div",{className:"space-y-6",children:[p?(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4",children:(0,t.jsxs)("div",{className:"ck-card w-full max-w-lg border border-[color:var(--ck-border-subtle)] p-4",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-red-200",children:"Confirm destructive delete"}),(0,t.jsxs)("div",{className:"mt-2 text-sm text-[color:var(--ck-text-secondary)]",children:["This will ",(0,t.jsx)("span",{className:"font-medium text-red-200",children:"DELETE"})," the channel binding",(0,t.jsx)("span",{className:"mx-1 font-mono",children:p}),"from ",(0,t.jsx)("span",{className:"font-mono",children:"~/.openclaw/openclaw.json"}),"."]}),(0,t.jsxs)("div",{className:"mt-3 text-xs text-[color:var(--ck-text-tertiary)]",children:["Type ",(0,t.jsx)("code",{className:"font-mono",children:p})," to confirm."]}),(0,t.jsx)("input",{value:j,onChange:e=>y(e.target.value),className:"mt-2 w-full rounded-lg border border-[color:var(--ck-border-subtle)] bg-transparent px-3 py-2 font-mono text-sm",placeholder:p,autoFocus:!0}),(0,t.jsxs)("div",{className:"mt-4 flex items-center justify-end gap-2",children:[(0,t.jsx)(l,{onClick:function(){b(null),y("")},disabled:f,children:"Cancel"}),(0,t.jsx)(l,{kind:"danger",onClick:()=>void E(),disabled:f||j.trim()!=p,children:f?"Deleting…":"Delete"})]})]})}):null,(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:"Channels"}),(0,t.jsxs)("p",{className:"mt-1 text-sm text-[color:var(--ck-text-secondary)]",children:["Source of truth: ",(0,t.jsx)("code",{className:"font-mono",children:"~/.openclaw/openclaw.json"}),". This page intentionally avoids calling the Gateway tool. Some changes may require a gateway restart depending on provider."]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(l,{onClick:()=>void w(),disabled:f,children:"Refresh"}),(0,t.jsx)(l,{kind:"primary",onClick:function(){let e=String(window.prompt("Provider id (e.g. telegram)","telegram")??"").trim();e&&(u(e),g('{\n "enabled": true\n}\n'))},disabled:f,children:"Add binding"})]})]}),k?(0,t.jsxs)("div",{className:"ck-card p-4 text-sm",children:[(0,t.jsx)("div",{className:"font-medium text-yellow-200",children:"Kitchen looks out of date"}),(0,t.jsx)("div",{className:"mt-1 text-[color:var(--ck-text-secondary)]",children:"This endpoint used to go through the Gateway tool and would fail on hardened systems. Update the Kitchen plugin and restart the gateway to pick up the fix."}),(0,t.jsx)("pre",{className:"mt-3 overflow-x-auto rounded-lg border border-[color:var(--ck-border-subtle)] bg-white/5 p-3 text-xs",children:"openclaw plugins update openclaw gateway restart"}),(0,t.jsxs)("div",{className:"mt-2 text-xs text-[color:var(--ck-text-tertiary)]",children:["Last resort (not recommended): temporarily allow the ",(0,t.jsx)("code",{className:"font-mono",children:"gateway"})," tool."]})]}):null,d?(0,t.jsx)("div",{className:"ck-card p-4 text-sm text-red-300",children:d}):null,(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-3",children:[(0,t.jsxs)("div",{className:"ck-card p-4",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:"Bindings"}),c&&(0,t.jsx)("div",{className:"mt-3 text-sm text-[color:var(--ck-text-secondary)]",children:"Loading…"}),!c&&0===S.length&&(0,t.jsx)("div",{className:"mt-3 text-sm text-[color:var(--ck-text-secondary)]",children:"No bindings configured."}),!c&&S.length>0&&(0,t.jsx)("div",{className:"mt-3 space-y-2",children:S.map(r=>(0,t.jsxs)("button",{className:"flex w-full items-center justify-between rounded-lg border px-3 py-2 text-left text-sm "+(r===x?"border-[var(--ck-accent-red)] bg-white/5":"border-[color:var(--ck-border-subtle)] hover:bg-white/5"),onClick:()=>{u(r),g(JSON.stringify(e[r]??{},null,2)+"\n")},children:[(0,t.jsx)("span",{className:"font-mono",children:r}),(0,t.jsx)("span",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:"edit"})]},r))})]}),(0,t.jsxs)("div",{className:"ck-card p-4 lg:col-span-2",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:"Edit"}),(0,t.jsxs)("div",{className:"mt-1 text-xs text-[color:var(--ck-text-tertiary)]",children:["Provider: ",(0,t.jsx)("code",{className:"font-mono",children:x})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(l,{kind:"danger",onClick:()=>void O(x),disabled:f,children:"Delete"}),(0,t.jsx)(l,{kind:"primary",onClick:()=>void T(),disabled:f,children:f?"Saving…":"Save"})]})]}),(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:"Config (JSON)"}),(0,t.jsx)("textarea",{value:h,onChange:e=>g(e.target.value),className:"mt-2 h-[420px] w-full rounded-lg border border-[color:var(--ck-border-subtle)] bg-transparent px-3 py-2 font-mono text-sm",placeholder:'{\n "enabled": true\n}'}),(0,t.jsxs)("div",{className:"mt-2 text-xs text-[color:var(--ck-text-tertiary)]",children:["Validation:",(0,t.jsxs)("ul",{className:"list-disc pl-5",children:[(0,t.jsxs)("li",{children:["Telegram requires ",(0,t.jsx)("code",{className:"font-mono",children:"botToken"}),"."]}),(0,t.jsx)("li",{children:"Other providers can be edited as raw JSON in v1."})]})]}),J?(0,t.jsxs)("div",{className:"mt-3 text-xs text-[color:var(--ck-text-tertiary)]",children:["Current keys: ",(0,t.jsx)("code",{className:"font-mono",children:Object.keys(J).join(", ")||"(none)"})]}):null]})]})]})]})}e.s(["default",()=>i],96985)}]);