@xopcai/xopc 0.0.122 → 0.0.124

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 (273) hide show
  1. package/README.md +28 -11
  2. package/README.zh-CN.md +28 -11
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/telegram/xopc.extension.json +1 -1
  5. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CK3s5cJo.js → agent-avatar-dicebear-B5uSVAyJ.js} +1 -1
  6. package/dist/gateway/static/root/assets/agents-BjIxt67Z.js +2 -0
  7. package/dist/gateway/static/root/assets/{app-management-settings-panel-CWsNHtTs.js → app-management-settings-panel-CYCONLIL.js} +1 -1
  8. package/dist/gateway/static/root/assets/{appearance-settings-C4b8y6iZ.js → appearance-settings-Clw3ryKg.js} +1 -1
  9. package/dist/gateway/static/root/assets/apps-page-QICTeGjX.js +1 -0
  10. package/dist/gateway/static/root/assets/{archive-plugin-DAtNW3Ia.js → archive-plugin-CXUGRp2i.js} +1 -1
  11. package/dist/gateway/static/root/assets/{attachment-load-Dm-RY54y.js → attachment-load-Cmiub3Wg.js} +1 -1
  12. package/dist/gateway/static/root/assets/{automation-suggestion-card-BKHewSVT.js → automation-suggestion-card-CU0-4nQ-.js} +1 -1
  13. package/dist/gateway/static/root/assets/automations-page-Car-jtiz.js +1 -0
  14. package/dist/gateway/static/root/assets/{binary-plugins-BG6Xnk71.js → binary-plugins-0Izz-N3p.js} +1 -1
  15. package/dist/gateway/static/root/assets/{block-editor-DfndiO3h.js → block-editor-C1Kv0IkJ.js} +28 -28
  16. package/dist/gateway/static/root/assets/browser-settings-page-CMeBJzlS.js +8 -0
  17. package/dist/gateway/static/root/assets/{capability-presets-api-Cx93GLdw.js → capability-presets-api-BmQTM9Il.js} +1 -1
  18. package/dist/gateway/static/root/assets/capability-presets-settings-panel-DZEJEoCF.js +1 -0
  19. package/dist/gateway/static/root/assets/{channel-recipient-api-DdPTtEs8.js → channel-recipient-api-BeA2aVor.js} +1 -1
  20. package/dist/gateway/static/root/assets/channels-settings-kkW-xFau.js +1 -0
  21. package/dist/gateway/static/root/assets/connectors-page-BvaQvO5F.js +2 -0
  22. package/dist/gateway/static/root/assets/{directory-picker-path-field-D835EHJd.js → directory-picker-path-field-2rjzUu57.js} +1 -1
  23. package/dist/gateway/static/root/assets/{dreaming-settings-CCa1F7Fg.js → dreaming-settings-DnHO686d.js} +1 -1
  24. package/dist/gateway/static/root/assets/{extension-debug-page-W2ITCPSA.js → extension-debug-page-BGLRuWVN.js} +1 -1
  25. package/dist/gateway/static/root/assets/{extension-page-DrvUytvn.js → extension-page-D978ePp9.js} +1 -1
  26. package/dist/gateway/static/root/assets/{extension-settings-page-qM8aLT5u.js → extension-settings-page-B6Ih4Swx.js} +1 -1
  27. package/dist/gateway/static/root/assets/{fetch-ovkvM8KQ.js → fetch-BU5S0Sn7.js} +1 -1
  28. package/dist/gateway/static/root/assets/{gateway-config-api-BB3biuD0.js → gateway-config-api-BIPGwrl1.js} +1 -1
  29. package/dist/gateway/static/root/assets/gateway-settings-CMEA3r5u.js +1 -0
  30. package/dist/gateway/static/root/assets/{gateway-startup-retry-CanQ8UcR.js → gateway-startup-retry-Cd0Zz30N.js} +1 -1
  31. package/dist/gateway/static/root/assets/{goal-create-dialog-CNqNdEkQ.js → goal-create-dialog-B-KHKeXN.js} +1 -1
  32. package/dist/gateway/static/root/assets/goal-detail-page-BxrSoWdj.js +1 -0
  33. package/dist/gateway/static/root/assets/{goals-config-api-BBOX6mUl.js → goals-config-api-B95KdGMj.js} +1 -1
  34. package/dist/gateway/static/root/assets/{goals-page-BP1kfvWv.js → goals-page-BTJzIl28.js} +2 -2
  35. package/dist/gateway/static/root/assets/{goals-settings-Bh3A7OZV.js → goals-settings-BJyEuLLm.js} +1 -1
  36. package/dist/gateway/static/root/assets/heartbeat-settings-wkOjYNQT.js +1 -0
  37. package/dist/gateway/static/root/assets/index-BLaXr6Ev.css +1 -0
  38. package/dist/gateway/static/root/assets/index-c_9TVr_C.js +191 -0
  39. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-B4TKJHla.js → keyboard-shortcuts-settings-BT8T4DyC.js} +1 -1
  40. package/dist/gateway/static/root/assets/logs-page-CrxBJUgI.js +2 -0
  41. package/dist/gateway/static/root/assets/{markdown-split-DcFtdLci.js → markdown-split-Dv66bO2b.js} +1 -1
  42. package/dist/gateway/static/root/assets/{media-plugins-B6SmeLVB.js → media-plugins-BhIQU5yS.js} +1 -1
  43. package/dist/gateway/static/root/assets/messages-O6TAtdFC.js +3 -0
  44. package/dist/gateway/static/root/assets/models-hub-panel-DOOpz6y1.js +2 -0
  45. package/dist/gateway/static/root/assets/notes-page-Br16pK9v.js +1 -0
  46. package/dist/gateway/static/root/assets/notes-workbench-PSJAi0ZC.js +2 -0
  47. package/dist/gateway/static/root/assets/{preview-open-alternatives-C29O19s7.js → preview-open-alternatives-DGzet1d7.js} +1 -1
  48. package/dist/gateway/static/root/assets/project-detail-page-CIGGgKuw.js +1 -0
  49. package/dist/gateway/static/root/assets/projects-page-B2grhsBt.js +1 -0
  50. package/dist/gateway/static/root/assets/remote-access-hub-CXMORxBD.js +1 -0
  51. package/dist/gateway/static/root/assets/{save-bar-controls-B4ad9GfB.js → save-bar-controls-Cqgb-jqa.js} +1 -1
  52. package/dist/gateway/static/root/assets/{schedule-field-DdYncfLR.js → schedule-field-DVZcI8Yt.js} +1 -1
  53. package/dist/gateway/static/root/assets/{schema-form-BMTrDE-7.js → schema-form-Bj7sOxC8.js} +1 -1
  54. package/dist/gateway/static/root/assets/sessions-page-Bi2wkBzU.js +1 -0
  55. package/dist/gateway/static/root/assets/settings-advanced-gate-B1L3G4IA.js +1 -0
  56. package/dist/gateway/static/root/assets/{settings-collapsible-section-MwTW2eK4.js → settings-collapsible-section-BmXn-8N6.js} +1 -1
  57. package/dist/gateway/static/root/assets/{settings-form-section-Dg6LBbcr.js → settings-form-section-BnqYMWHR.js} +1 -1
  58. package/dist/gateway/static/root/assets/settings-page-BfRSHJmO.js +1 -0
  59. package/dist/gateway/static/root/assets/{settings-page-layout-BX4T-OLF.js → settings-page-layout-CdWZU1hd.js} +1 -1
  60. package/dist/gateway/static/root/assets/{setup-status-panel-Ce1pcFtR.js → setup-status-panel-CWtPM7RK.js} +1 -1
  61. package/dist/gateway/static/root/assets/{share-preview-page-DWE-dUFh.js → share-preview-page-IB1v8i86.js} +1 -1
  62. package/dist/gateway/static/root/assets/shares-settings-ngbsBgij.js +1 -0
  63. package/dist/gateway/static/root/assets/skill-reload-api-BIe442Gv.js +1 -0
  64. package/dist/gateway/static/root/assets/skills-page-BfchZRVa.js +2 -0
  65. package/dist/gateway/static/root/assets/{system-settings-panel-Dd6Y35Cm.js → system-settings-panel-BxQ384RC.js} +1 -1
  66. package/dist/gateway/static/root/assets/{typed-models-lib-Cx6XV5A2.js → typed-models-lib-BkcpvFYO.js} +1 -1
  67. package/dist/gateway/static/root/assets/{use-channel-catalog-D4sMbmy7.js → use-channel-catalog-Cd0FaEQ4.js} +1 -1
  68. package/dist/gateway/static/root/assets/{user-profile-settings-panel-Bx-hjMQc.js → user-profile-settings-panel-DQ7NnRSY.js} +1 -1
  69. package/dist/gateway/static/root/assets/{utils-D7b_vZnv.js → utils-YKhVf7Ka.js} +1 -1
  70. package/dist/gateway/static/root/assets/voice-api-key-field-C5Ov8Uk_.js +1 -0
  71. package/dist/gateway/static/root/assets/{workflow-run-setup-panel--TdohF5N.js → workflow-run-setup-panel-BYD9BtOq.js} +2 -2
  72. package/dist/gateway/static/root/assets/{workflow-start-dialog-B0lavx_o.js → workflow-start-dialog-BNJVCWoS.js} +1 -1
  73. package/dist/gateway/static/root/assets/workflows-page-BYF29ANm.js +18 -0
  74. package/dist/gateway/static/root/index.html +5 -5
  75. package/dist/package.js +1 -1
  76. package/dist/src/agent/agent-manager.d.ts +6 -1
  77. package/dist/src/agent/agent-manager.js +28 -12
  78. package/dist/src/agent/agent-manager.js.map +1 -1
  79. package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
  80. package/dist/src/agent/embedded/xopc-tools-bridge.js +11 -7
  81. package/dist/src/agent/embedded/xopc-tools-bridge.js.map +1 -1
  82. package/dist/src/agent/lifecycle/progress.js +3 -1
  83. package/dist/src/agent/lifecycle/progress.js.map +1 -1
  84. package/dist/src/agent/lifecycle/timeout-wrapper.d.ts +2 -2
  85. package/dist/src/agent/lifecycle/timeout-wrapper.js +4 -4
  86. package/dist/src/agent/lifecycle/timeout-wrapper.js.map +1 -1
  87. package/dist/src/agent/memory/summary-generator.d.ts +1 -1
  88. package/dist/src/agent/memory/summary-generator.js +1 -2
  89. package/dist/src/agent/memory/summary-generator.js.map +1 -1
  90. package/dist/src/agent/middleware/index.d.ts +1 -1
  91. package/dist/src/agent/middleware/self-verify.d.ts +44 -14
  92. package/dist/src/agent/middleware/self-verify.js +214 -44
  93. package/dist/src/agent/middleware/self-verify.js.map +1 -1
  94. package/dist/src/agent/orchestration/agent-event-handler.js +57 -15
  95. package/dist/src/agent/orchestration/agent-event-handler.js.map +1 -1
  96. package/dist/src/agent/prompt/sections/tooling.js +18 -13
  97. package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
  98. package/dist/src/agent/prompt/system-reminder.js +2 -2
  99. package/dist/src/agent/prompt/system-reminder.js.map +1 -1
  100. package/dist/src/agent/sandbox/sanitize-env-vars.d.ts +2 -2
  101. package/dist/src/agent/sandbox/sanitize-env-vars.js +2 -2
  102. package/dist/src/agent/sandbox/sanitize-env-vars.js.map +1 -1
  103. package/dist/src/agent/sandbox/types.d.ts +2 -2
  104. package/dist/src/agent/sandbox/types.js.map +1 -1
  105. package/dist/src/agent/service/btw-query.js +1 -1
  106. package/dist/src/agent/service/btw-query.js.map +1 -1
  107. package/dist/src/agent/service/process-direct-one-shot.js +6 -2
  108. package/dist/src/agent/service/process-direct-one-shot.js.map +1 -1
  109. package/dist/src/agent/service/process-direct-streaming.js +12 -7
  110. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  111. package/dist/src/agent/service.js +2 -1
  112. package/dist/src/agent/service.js.map +1 -1
  113. package/dist/src/agent/skills/skill-tool-gating.js +1 -1
  114. package/dist/src/agent/skills/skill-tool-gating.js.map +1 -1
  115. package/dist/src/agent/starter-agents.js +9 -9
  116. package/dist/src/agent/starter-agents.js.map +1 -1
  117. package/dist/src/agent/tools/apply-patch.d.ts +25 -0
  118. package/dist/src/agent/tools/apply-patch.js +256 -0
  119. package/dist/src/agent/tools/apply-patch.js.map +1 -0
  120. package/dist/src/agent/tools/delegate-tool.d.ts +1 -1
  121. package/dist/src/agent/tools/delegate-tool.js +3 -3
  122. package/dist/src/agent/tools/delegate-tool.js.map +1 -1
  123. package/dist/src/agent/tools/exec-command.d.ts +30 -0
  124. package/dist/src/agent/tools/exec-command.js +224 -0
  125. package/dist/src/agent/tools/exec-command.js.map +1 -0
  126. package/dist/src/agent/tools/execute-code-tool.js +7 -4
  127. package/dist/src/agent/tools/execute-code-tool.js.map +1 -1
  128. package/dist/src/agent/tools/factory.d.ts +3 -3
  129. package/dist/src/agent/tools/factory.js +8 -9
  130. package/dist/src/agent/tools/factory.js.map +1 -1
  131. package/dist/src/agent/tools/goal-tool.d.ts +5 -1
  132. package/dist/src/agent/tools/goal-tool.js +8 -2
  133. package/dist/src/agent/tools/goal-tool.js.map +1 -1
  134. package/dist/src/agent/tools/index.d.ts +4 -3
  135. package/dist/src/agent/tools/index.js +5 -4
  136. package/dist/src/agent/tools/skills-tools.d.ts +1 -1
  137. package/dist/src/agent/tools/skills-tools.js.map +1 -1
  138. package/dist/src/agent/tools/update-plan-tool.d.ts +11 -0
  139. package/dist/src/agent/tools/update-plan-tool.js +72 -0
  140. package/dist/src/agent/tools/update-plan-tool.js.map +1 -0
  141. package/dist/src/agent/workflow/builtins/debug-incident.d.ts +1 -1
  142. package/dist/src/agent/workflow/builtins/debug-incident.js +1 -1
  143. package/dist/src/agent/workflow/builtins/debug-incident.js.map +1 -1
  144. package/dist/src/agent/workflow/builtins/pr-review.d.ts +1 -1
  145. package/dist/src/agent/workflow/builtins/pr-review.js +1 -1
  146. package/dist/src/agent/workflow/builtins/pr-review.js.map +1 -1
  147. package/dist/src/agent/workflow/builtins/release-check.d.ts +1 -1
  148. package/dist/src/agent/workflow/builtins/release-check.js +1 -1
  149. package/dist/src/agent/workflow/builtins/release-check.js.map +1 -1
  150. package/dist/src/agent/workflow/step-labels.js +7 -3
  151. package/dist/src/agent/workflow/step-labels.js.map +1 -1
  152. package/dist/src/chat-commands/agent-edit.js +1 -1
  153. package/dist/src/chat-commands/agent-edit.js.map +1 -1
  154. package/dist/src/chat-commands/builtins/goal.js +4 -1
  155. package/dist/src/chat-commands/builtins/goal.js.map +1 -1
  156. package/dist/src/chat-commands/builtins/review.d.ts +1 -0
  157. package/dist/src/chat-commands/builtins/review.js +167 -0
  158. package/dist/src/chat-commands/builtins/review.js.map +1 -0
  159. package/dist/src/chat-commands/index.d.ts +1 -0
  160. package/dist/src/chat-commands/index.js +3 -1
  161. package/dist/src/chat-commands/index.js.map +1 -1
  162. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  163. package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
  164. package/dist/src/config/agent-profile.js +1 -1
  165. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  166. package/dist/src/gateway/agent-builtin-tools.js +3 -2
  167. package/dist/src/gateway/agent-builtin-tools.js.map +1 -1
  168. package/dist/src/gateway/agents-admin.js +1 -1
  169. package/dist/src/gateway/chat-stream/mapper.d.ts +6 -0
  170. package/dist/src/gateway/chat-stream/mapper.js +149 -6
  171. package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
  172. package/dist/src/gateway/chat-stream/protocol.d.ts +51 -1
  173. package/dist/src/gateway/hono/routes/commands-skills.js +21 -0
  174. package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
  175. package/dist/src/gateway/hono/routes/index.js +2 -0
  176. package/dist/src/gateway/hono/routes/index.js.map +1 -1
  177. package/dist/src/gateway/hono/routes/lazy-bundles.js +1 -0
  178. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  179. package/dist/src/gateway/hono/routes/projects.js +136 -14
  180. package/dist/src/gateway/hono/routes/projects.js.map +1 -1
  181. package/dist/src/gateway/hono/routes/search.d.ts +3 -0
  182. package/dist/src/gateway/hono/routes/search.js +47 -0
  183. package/dist/src/gateway/hono/routes/search.js.map +1 -0
  184. package/dist/src/gateway/security/dangerous-tools.js +1 -1
  185. package/dist/src/gateway/security/dangerous-tools.js.map +1 -1
  186. package/dist/src/infra/update-restart.js +1 -1
  187. package/dist/src/projects/index.d.ts +3 -0
  188. package/dist/src/projects/index.js +4 -1
  189. package/dist/src/projects/project-agent-suggestion.d.ts +14 -0
  190. package/dist/src/projects/project-agent-suggestion.js +19 -0
  191. package/dist/src/projects/project-agent-suggestion.js.map +1 -0
  192. package/dist/src/projects/project-kind.d.ts +13 -0
  193. package/dist/src/projects/project-kind.js +147 -0
  194. package/dist/src/projects/project-kind.js.map +1 -0
  195. package/dist/src/projects/project-service.d.ts +15 -0
  196. package/dist/src/projects/project-service.js +96 -3
  197. package/dist/src/projects/project-service.js.map +1 -1
  198. package/dist/src/projects/project-store.js +32 -8
  199. package/dist/src/projects/project-store.js.map +1 -1
  200. package/dist/src/projects/types.d.ts +4 -1
  201. package/dist/src/projects/workspace-project.d.ts +22 -0
  202. package/dist/src/projects/workspace-project.js +143 -0
  203. package/dist/src/projects/workspace-project.js.map +1 -0
  204. package/dist/src/review/review-git.d.ts +48 -0
  205. package/dist/src/review/review-git.js +333 -0
  206. package/dist/src/review/review-git.js.map +1 -0
  207. package/dist/src/review/review-types.d.ts +22 -0
  208. package/dist/src/review/review-types.js +29 -0
  209. package/dist/src/review/review-types.js.map +1 -0
  210. package/dist/src/session/session-context-for-llm.js +151 -0
  211. package/dist/src/session/session-context-for-llm.js.map +1 -1
  212. package/dist/src/storage/sqlite/migrations/021_projects_fts.sql +21 -0
  213. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  214. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  215. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  216. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  217. package/dist/src/storage/sqlite/schema.js +1 -1
  218. package/dist/src/tui/backends/embedded-backend.d.ts +8 -1
  219. package/dist/src/tui/backends/embedded-backend.js +60 -1
  220. package/dist/src/tui/backends/embedded-backend.js.map +1 -1
  221. package/dist/src/tui/backends/gateway-sse-backend.d.ts +9 -1
  222. package/dist/src/tui/backends/gateway-sse-backend.js +29 -0
  223. package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
  224. package/dist/src/tui/components/assistant-message.js +35 -0
  225. package/dist/src/tui/components/assistant-message.js.map +1 -1
  226. package/dist/src/tui/tui-agent-events.js +25 -0
  227. package/dist/src/tui/tui-agent-events.js.map +1 -1
  228. package/dist/src/tui/tui-backend.d.ts +20 -0
  229. package/dist/src/tui/tui-commands.d.ts +1 -0
  230. package/dist/src/tui/tui-commands.js +110 -4
  231. package/dist/src/tui/tui-commands.js.map +1 -1
  232. package/dist/src/tui/tui-picker-overlay.d.ts +2 -0
  233. package/dist/src/tui/tui-picker-overlay.js +153 -1
  234. package/dist/src/tui/tui-picker-overlay.js.map +1 -1
  235. package/dist/src/tui/tui.js +36 -2
  236. package/dist/src/tui/tui.js.map +1 -1
  237. package/dist/src/workflows/service/workflow-run-service.js +1 -1
  238. package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
  239. package/package.json +1 -1
  240. package/dist/gateway/static/root/assets/agents-SsQrj9B-.js +0 -2
  241. package/dist/gateway/static/root/assets/apps-page-CYb6fame.js +0 -1
  242. package/dist/gateway/static/root/assets/automations-page-DpOOq1nk.js +0 -1
  243. package/dist/gateway/static/root/assets/browser-settings-page-9nXxgh4u.js +0 -8
  244. package/dist/gateway/static/root/assets/capability-presets-settings-panel-D528_YFy.js +0 -1
  245. package/dist/gateway/static/root/assets/channels-settings-Ck-3h5lI.js +0 -1
  246. package/dist/gateway/static/root/assets/connectors-page-DL-fAqE_.js +0 -2
  247. package/dist/gateway/static/root/assets/gateway-settings-mmmnIH27.js +0 -1
  248. package/dist/gateway/static/root/assets/goal-detail-page-Ceu5zrN6.js +0 -1
  249. package/dist/gateway/static/root/assets/heartbeat-settings-YoYgKlfX.js +0 -1
  250. package/dist/gateway/static/root/assets/index-DdqSO9R2.js +0 -191
  251. package/dist/gateway/static/root/assets/index-jGB-2nI-.css +0 -1
  252. package/dist/gateway/static/root/assets/logs-page-BgVk5DvZ.js +0 -2
  253. package/dist/gateway/static/root/assets/messages-B5O4OIEo.js +0 -3
  254. package/dist/gateway/static/root/assets/models-hub-panel-BU0x8PGP.js +0 -2
  255. package/dist/gateway/static/root/assets/notes-page-D6JYVP4I.js +0 -1
  256. package/dist/gateway/static/root/assets/notes-workbench-mqRJYnJS.js +0 -2
  257. package/dist/gateway/static/root/assets/project-detail-page-DOTgzoeh.js +0 -1
  258. package/dist/gateway/static/root/assets/projects-page-DGUIb4y5.js +0 -1
  259. package/dist/gateway/static/root/assets/remote-access-hub-DVKKUj3u.js +0 -1
  260. package/dist/gateway/static/root/assets/sessions-page-BVbzUWxW.js +0 -1
  261. package/dist/gateway/static/root/assets/settings-advanced-gate-DrNNoSqE.js +0 -1
  262. package/dist/gateway/static/root/assets/settings-page-CMDqgeMR.js +0 -1
  263. package/dist/gateway/static/root/assets/shares-settings-aKSraR8l.js +0 -1
  264. package/dist/gateway/static/root/assets/skill-reload-api-CS-FU_B-.js +0 -1
  265. package/dist/gateway/static/root/assets/skills-page-BaF3u0LA.js +0 -2
  266. package/dist/gateway/static/root/assets/voice-api-key-field-CkhbRt1q.js +0 -1
  267. package/dist/gateway/static/root/assets/workflows-page-CZR05Bu_.js +0 -18
  268. package/dist/src/agent/tools/edit.d.ts +0 -14
  269. package/dist/src/agent/tools/edit.js +0 -132
  270. package/dist/src/agent/tools/edit.js.map +0 -1
  271. package/dist/src/agent/tools/shell.d.ts +0 -15
  272. package/dist/src/agent/tools/shell.js +0 -158
  273. package/dist/src/agent/tools/shell.js.map +0 -1
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-BQ_8x0bT.js";import{c as a,i as o,n as s}from"./fetch-ovkvM8KQ.js";import{o as c}from"./vendor-swr-BIWyz7Rc.js";import{At as l,Ba as u,Mi as d,To as f,Yt as p,ga as m,jc as h,ji as g,jt as _,ka as v,ns as y,pc as b,va as x,za as S,zs as ee}from"./index-DdqSO9R2.js";var C=`/api/image/providers`;async function te(){return(await s(o(`/api/image/providers`)))?.payload?.providers??[]}var w=e(t(),1),ne=n();function T(){return{apiKey:``,region:``,baseUrl:``,imageBaseUrl:``}}function re(e){return e?.apiKey?`••••••••••••`:``}function E(e,t){let n=(()=>{if(!e||typeof e!=`object`||!(`providersConfig`in e))return;let t=e.providersConfig;if(!(!t||typeof t!=`object`||Array.isArray(t)))return t})(),r={};for(let e of t){let t=n?.[e];r[e]={apiKey:re(t),region:t?.region??``,baseUrl:t?.baseUrl??``,imageBaseUrl:t?.imageBaseUrl??``}}return r}function D(e,t,n){let r=e[n].trim();if(r!==t[n].trim())return r||null}function O(e,t){let n=e.trim(),r=t.trim();if(n!==r&&!(p(n)&&p(r)))return n||(r?null:void 0)}function ie(e,t,n){let r={};for(let i of e){let e=t[i]??T(),a=n[i]??T();if(JSON.stringify(e)===JSON.stringify(a))continue;let o={},s=O(e.apiKey,a.apiKey);s!==void 0&&(o.apiKey=s);let c=D(e,a,`region`);c!==void 0&&(o.region=c);let l=D(e,a,`baseUrl`);l!==void 0&&(o.baseUrl=l);let u=D(e,a,`imageBaseUrl`);u!==void 0&&(o.imageBaseUrl=u),Object.keys(o).length>0&&(r[i]=o)}return r}async function k(e){let t=await s(o(`/api/image/providers/${encodeURIComponent(e)}/reveal-api-key`),{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!t.ok||!t.payload)throw Error(t.error?.message??`Reveal failed`);return t.payload}async function ae(e){Object.keys(e).length!==0&&(await s(o(`/api/config`),{method:`PATCH`,body:JSON.stringify({providersConfig:e})}),await g())}var A=r();function oe(e){let t=(0,ne.c)(18),{providerId:n,value:r,onChange:i,labels:a,apiKeyLinks:o,apiKeyLinkLabels:s}=e,c;t[0]===n?c=t[1]:(c=()=>k(n).then(j),t[0]=n,t[1]=c);let l=c,u=`img-cred-key-${n}`,d;t[2]!==a.apiKeyLabel||t[3]!==u?(d=(0,A.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:u,children:a.apiKeyLabel}),t[2]=a.apiKeyLabel,t[3]=u,t[4]=d):d=t[4];let f;t[5]!==s||t[6]!==o?(f=o.length>0?(0,A.jsx)(`div`,{className:`flex flex-col gap-1`,children:o.map(e=>(0,A.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex w-fit items-center gap-1 text-xs font-medium text-accent-fg hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[_(e.kind,s),(0,A.jsx)(ee,{className:`size-3`,"aria-hidden":!0})]},`${e.kind}-${e.href}`))}):null,t[5]=s,t[6]=o,t[7]=f):f=t[7];let p=`img-cred-key-${n}`,m;t[8]!==a||t[9]!==i||t[10]!==l||t[11]!==p||t[12]!==r?(m=(0,A.jsx)(v,{id:p,value:r,onChange:i,placeholder:a.optionalPlaceholder,labels:a,reveal:l,loadFailedLabel:a.loadFailed,maskedHelp:a.maskedHelp,notInConfigFile:a.notInConfigFile}),t[8]=a,t[9]=i,t[10]=l,t[11]=p,t[12]=r,t[13]=m):m=t[13];let h;return t[14]!==d||t[15]!==f||t[16]!==m?(h=(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[d,f,m]}),t[14]=d,t[15]=f,t[16]=m,t[17]=h):h=t[17],h}function j(e){return e.apiKey??null}function M(){return i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,S)}function se(){return i(M(),`appearance-none bg-[length:1rem] bg-[right_0.5rem_center] bg-no-repeat pr-9`)}var N=`__custom__`;function ce(e,t){if(!e.region.trim()&&!e.imageBaseUrl.trim())return``;let n=e.region.trim().toLowerCase();return t.some(e=>e.value===n)?n:N}function le(e,t){let n=e.baseUrl.trim().replace(/\/+$/,``);if(!n)return``;let r=t.map(e=>e.value.replace(/\/+$/,``)).indexOf(n);return r>=0?t[r].value:N}function ue(e,t,n){return t===`beijing`?e.dashscopeRegion_beijing:t===`singapore`?e.dashscopeRegion_singapore:t===`us`?e.dashscopeRegion_us:n}function de(e,t){return t===`minimax`?e.minimaxClusterLabel:t===`fal`?e.falQueueBaseLabel:e.baseUrlLabel}function fe(e,t){return t===`minimax`?e.minimaxClusterHint:t===`fal`?e.falQueueBaseHint:null}function pe(e,t){return JSON.stringify(e)!==JSON.stringify(t)}function me(e,t){return t===1?e.modelCountOne:e.modelCountMany.replace(`{count}`,String(t))}function P(e){let t=(0,ne.c)(76),{summaries:n,credDraft:r,credBaseline:a,credDirty:o,credSaving:s,credError:c,credSavedFlash:d,credNoopFlash:p,updateCredRow:g,onDiscardCredentials:_,onSaveCredentials:v,extensionIds:S,showExtensionLinks:C,showImageModelsLink:te,hideActions:re,language:E,apiKeyLinkLabels:D,messages:O}=e,ie=re===void 0?!1:re,k;t[0]===n?k=t[1]:(k=n.some(ye),t[0]=n,t[1]=k);let ae=k,j;t[2]===n?j=t[3]:(j=n.some(ve),t[2]=n,t[3]=j);let P=j,[F,be]=(0,w.useState)(_e),[I,L]=(0,w.useState)(ge),R;if(t[4]!==a||t[5]!==r||t[6]!==n){R=new Set;for(let e of n)pe(r[e.id]??T(),a[e.id]??T())&&R.add(e.id);t[4]=a,t[5]=r,t[6]=n,t[7]=R}else R=t[7];let z=R,B;t[8]!==z||t[9]!==I||t[10]!==F?(B=e=>I.has(e)?!1:F.has(e)?!0:z.has(e),t[8]=z,t[9]=I,t[10]=F,t[11]=B):B=t[11];let V=B,H;t[12]===V?H=t[13]:(H=e=>{if(V(e)){L(t=>new Set(t).add(e)),be(t=>{let n=new Set(t);return n.delete(e),n});return}L(t=>{let n=new Set(t);return n.delete(e),n}),be(t=>new Set(t).add(e))},t[12]=V,t[13]=H);let U=H;if(n.length===0)return null;let W;t[14]===O.credentialsIntro?W=t[15]:(W=(0,A.jsx)(`p`,{children:O.credentialsIntro}),t[14]=O.credentialsIntro,t[15]=W);let G;t[16]!==ae||t[17]!==O.regionHint?(G=ae?(0,A.jsx)(`p`,{className:`text-fg-subtle`,children:O.regionHint}):null,t[16]=ae,t[17]=O.regionHint,t[18]=G):G=t[18];let K;t[19]!==P||t[20]!==O.endpointPresetsHint?(K=P?(0,A.jsx)(`p`,{className:`text-fg-subtle`,children:O.endpointPresetsHint}):null,t[19]=P,t[20]=O.endpointPresetsHint,t[21]=K):K=t[21];let q;t[22]!==te||t[23]!==O.imageModelsLinkTitle||t[24]!==O.openImageModelsPage?(q=te?(0,A.jsx)(`p`,{children:(0,A.jsx)(h,{to:`/settings/credentials?tab=image-models`,className:`font-medium text-accent hover:underline`,title:O.imageModelsLinkTitle,children:O.openImageModelsPage})}):null,t[22]=te,t[23]=O.imageModelsLinkTitle,t[24]=O.openImageModelsPage,t[25]=q):q=t[25];let J;t[26]!==W||t[27]!==G||t[28]!==K||t[29]!==q?(J=(0,A.jsxs)(`div`,{className:`flex flex-col gap-1 text-xs leading-relaxed text-fg-muted`,children:[W,G,K,q]}),t[26]=W,t[27]=G,t[28]=K,t[29]=q,t[30]=J):J=t[30];let Y;t[31]===c?Y=t[32]:(Y=c?(0,A.jsx)(`div`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:c}):null,t[31]=c,t[32]=Y);let X;t[33]!==o||t[34]!==p||t[35]!==d||t[36]!==s||t[37]!==ie||t[38]!==_||t[39]!==v||t[40]!==O.credentialsNothingToSave||t[41]!==O.credentialsSaved||t[42]!==O.discardCredentials||t[43]!==O.saveCredentials||t[44]!==O.savingCredentials?(X=ie?null:(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[d?(0,A.jsx)(`span`,{className:`text-sm text-fg-muted`,children:O.credentialsSaved}):null,p?(0,A.jsx)(`span`,{className:`text-sm text-fg-muted`,children:O.credentialsNothingToSave}):null,(0,A.jsx)(u,{type:`button`,variant:`secondary`,onClick:_,disabled:!o||s,children:O.discardCredentials}),(0,A.jsx)(u,{type:`button`,variant:`primary`,onClick:v,disabled:!o||s,children:s?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(y,{className:`size-3.5 animate-spin`}),(0,A.jsx)(`span`,{className:`ml-1.5`,children:O.savingCredentials})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(f,{className:`size-3.5`}),(0,A.jsx)(`span`,{className:`ml-1.5`,children:O.saveCredentials})]})})]}),t[33]=o,t[34]=p,t[35]=d,t[36]=s,t[37]=ie,t[38]=_,t[39]=v,t[40]=O.credentialsNothingToSave,t[41]=O.credentialsSaved,t[42]=O.discardCredentials,t[43]=O.saveCredentials,t[44]=O.savingCredentials,t[45]=X):X=t[45];let Z;if(t[46]!==D||t[47]!==a||t[48]!==r||t[49]!==S||t[50]!==V||t[51]!==E||t[52]!==C||t[53]!==n||t[54]!==O||t[55]!==U||t[56]!==g){let e;t[58]!==D||t[59]!==a||t[60]!==r||t[61]!==S||t[62]!==V||t[63]!==E||t[64]!==C||t[65]!==O||t[66]!==U||t[67]!==g?(e=e=>{let t=r[e.id]??T(),n=e.ui,o=C&&S.has(e.id)?`/settings/ext/${encodeURIComponent(e.id)}`:null,s=pe(t,a[e.id]??T()),c=V(e.id),u=e.label??e.id,d=me(O,e.models.length);return(0,A.jsxs)(`section`,{className:i(`overflow-hidden rounded-xl border bg-surface-panel shadow-sm transition-colors dark:shadow-none`,s?`border-accent/50`:`border-edge`),children:[(0,A.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-3 px-4 py-3 text-left hover:bg-surface-hover/70`,"aria-expanded":c,"aria-controls":`img-provider-credentials-${e.id}`,onClick:()=>U(e.id),children:[(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,A.jsx)(`span`,{className:`truncate text-sm font-semibold text-fg`,children:u}),(0,A.jsx)(`span`,{className:`rounded-full bg-surface-subtle px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:e.id}),s?(0,A.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:O.unsavedChanges}):null,e.configured?(0,A.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:O.configured}):(0,A.jsx)(`span`,{className:`rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-700 dark:text-amber-300`,children:O.missingKey})]}),(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-xs text-fg-subtle`,children:[(0,A.jsx)(`span`,{children:d}),e.defaultModel?(0,A.jsxs)(`span`,{className:`min-w-0 truncate`,children:[(0,A.jsxs)(`span`,{className:`text-fg-muted`,children:[O.defaultModel,`:`]}),` `,e.id,`/`,e.defaultModel]}):null]})]}),(0,A.jsx)(b,{className:i(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,c?`rotate-180`:`rotate-0`),"aria-hidden":`true`}),(0,A.jsx)(`span`,{className:`sr-only`,children:c?O.collapseProvider:O.expandProvider})]}),c?(0,A.jsxs)(`div`,{id:`img-provider-credentials-${e.id}`,className:`border-t border-edge px-4 py-4`,children:[o?(0,A.jsxs)(h,{to:o,className:`mb-3 inline-flex items-center gap-1 text-xs font-medium text-accent hover:underline`,title:O.extensionSettingsLinkTitle,children:[(0,A.jsx)(ee,{className:`size-3`}),O.openExtensionSettings]}):null,e.models.length>0?(0,A.jsxs)(`p`,{className:`mb-3 text-xs leading-relaxed text-fg-subtle`,children:[(0,A.jsxs)(`span`,{className:`text-fg-muted`,children:[O.modelsLabel,`:`]}),` `,e.models.map(t=>`${e.id}/${t}`).join(`, `)]}):null,(0,A.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,A.jsx)(oe,{providerId:e.id,value:t.apiKey,onChange:t=>g(e.id,{apiKey:t}),apiKeyLinks:l(e.id,E),apiKeyLinkLabels:D,labels:{apiKeyLabel:O.apiKeyLabel,optionalPlaceholder:O.optionalPlaceholder,maskedHelp:O.apiKeyMaskedHelp,copy:O.apiKeyCopy,copied:O.apiKeyCopied,show:O.apiKeyShow,hide:O.apiKeyHide,notInConfigFile:O.apiKeyNotInConfigFile,loadFailed:O.apiKeyRevealFailed}}),n?.regions?.length?(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,A.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-region-preset-${e.id}`,children:O.regionLabel}),(0,A.jsxs)(m,{id:`img-cred-region-preset-${e.id}`,className:se(),value:ce(t,n.regions),onChange:t=>{let r=t.target.value;if(r===``){g(e.id,{region:``,imageBaseUrl:``});return}if(r===N){g(e.id,{region:``,imageBaseUrl:``});return}let i=n.regions.find(e=>e.value===r);i&&g(e.id,{region:i.value,imageBaseUrl:i.imageBaseUrl})},children:[(0,A.jsx)(x,{value:``,children:O.regionPresetDefault}),n.regions.map(e=>(0,A.jsx)(x,{value:e.value,children:ue(O,e.value,e.label)},e.value)),(0,A.jsx)(x,{value:N,children:O.regionPresetCustom})]}),ce(t,n.regions)===N?(0,A.jsxs)(`div`,{className:`mt-2 grid gap-2 sm:grid-cols-2`,children:[(0,A.jsx)(`input`,{type:`text`,className:M(),value:t.region,placeholder:`region`,onChange:t=>g(e.id,{region:t.target.value})}),(0,A.jsx)(`input`,{type:`url`,className:M(),value:t.imageBaseUrl,placeholder:O.imageBaseUrlLabel,onChange:t=>g(e.id,{imageBaseUrl:t.target.value})})]}):null]}):null,n?.baseUrlPresets?.length?(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,A.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-base-preset-${e.id}`,children:de(O,n.baseUrlPresetKind)}),fe(O,n.baseUrlPresetKind)?(0,A.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:fe(O,n.baseUrlPresetKind)}):null,(0,A.jsxs)(m,{id:`img-cred-base-preset-${e.id}`,className:se(),value:le(t,n.baseUrlPresets),onChange:t=>{let n=t.target.value;if(n===``){g(e.id,{baseUrl:``});return}if(n===N){g(e.id,{baseUrl:``});return}g(e.id,{baseUrl:n.replace(/\/+$/,``)})},children:[(0,A.jsx)(x,{value:``,children:O.baseUrlPresetDefault}),n.baseUrlPresets.map(he),(0,A.jsx)(x,{value:N,children:O.baseUrlPresetCustom})]}),le(t,n.baseUrlPresets)===N?(0,A.jsx)(`input`,{type:`url`,className:i(M(),`mt-2`),value:t.baseUrl,placeholder:`https://…`,onChange:t=>g(e.id,{baseUrl:t.target.value})}):null]}):null,n?.regions?.length&&ce(t,n.regions)!==N?(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,A.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-imgbase-ro-${e.id}`,children:O.imageBaseUrlLabel}),(0,A.jsx)(`input`,{id:`img-cred-imgbase-ro-${e.id}`,type:`url`,readOnly:!0,className:i(M(),`cursor-not-allowed opacity-90`),value:t.imageBaseUrl,title:O.imageBaseUrlPresetHint}),(0,A.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:O.imageBaseUrlPresetHint})]}):null]})]}):null]},e.id)},t[58]=D,t[59]=a,t[60]=r,t[61]=S,t[62]=V,t[63]=E,t[64]=C,t[65]=O,t[66]=U,t[67]=g,t[68]=e):e=t[68],Z=n.map(e),t[46]=D,t[47]=a,t[48]=r,t[49]=S,t[50]=V,t[51]=E,t[52]=C,t[53]=n,t[54]=O,t[55]=U,t[56]=g,t[57]=Z}else Z=t[57];let Q;t[69]===Z?Q=t[70]:(Q=(0,A.jsx)(`div`,{className:`flex flex-col gap-4`,children:Z}),t[69]=Z,t[70]=Q);let $;return t[71]!==J||t[72]!==Y||t[73]!==X||t[74]!==Q?($=(0,A.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[J,Y,X,Q]}),t[71]=J,t[72]=Y,t[73]=X,t[74]=Q,t[75]=$):$=t[75],$}function he(e){return(0,A.jsx)(x,{value:e.value,children:e.label},e.value)}function ge(){return new Set}function _e(){return new Set}function ve(e){return(e.ui?.baseUrlPresets?.length??0)>0}function ye(e){return(e.ui?.regions?.length??0)>0}function F(e){let t=d(a(e=>!!e.token)),n=t.data,r=(0,w.useMemo)(()=>e.map(e=>e.id),[e]),i=(0,w.useRef)(!1),[s,l]=(0,w.useState)(null),[u,f]=(0,w.useState)(!1),[p,m]=(0,w.useState)(null),[h,g]=(0,w.useState)(!1),[_,v]=(0,w.useState)(!1),y=(0,w.useMemo)(()=>E(n?.payload?.config,r),[n?.payload?.config,r]),b=s??y,x=y;return{gwSwr:t,credDraft:b,credBaseline:x,credDirty:(0,w.useMemo)(()=>JSON.stringify(b)!==JSON.stringify(x),[b,x]),credSaving:u,credError:p,credSavedFlash:h,credNoopFlash:_,updateCredRow:(0,w.useCallback)((e,t)=>{i.current=!0,l(n=>{let r=n??y,i=r[e]??T();return{...r,[e]:{...i,...t}}})},[y]),onDiscardCredentials:(0,w.useCallback)(()=>{i.current=!1,l(null),m(null),g(!1),v(!1)},[]),saveCredentials:(0,w.useCallback)(async e=>{let n=ie(r,b,x);if(Object.keys(n).length===0){v(!0),window.setTimeout(()=>v(!1),2200);return}f(!0),m(null),g(!1);try{await ae(n),await t.mutate?.(),c(o(C)),i.current=!1,l(null),g(!0),window.setTimeout(()=>g(!1),2e3)}catch(t){m(t instanceof Error?t.message:e)}finally{f(!1)}},[r,b,x,t])}}function be(){return{enabled:!1,provider:`alibaba`,alibaba:{model:`paraformer-v2`},openai:{model:`whisper-1`},fallback:{enabled:!0,order:[`alibaba`,`openai`]}}}function I(){return{enabled:!1,provider:`edge`,trigger:`always`,maxTextLength:512,timeoutMs:6e4,alibaba:{model:`qwen-tts`,voice:`Cherry`},openai:{model:`tts-1`,voice:`alloy`},edge:{voice:`en-US-MichelleNeural`},minimax:{model:`speech-2.8-hd`,voice:`male-qn-qingse`},"tts-local-cli":{command:``,outputFormat:`wav`}}}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function R(e){return typeof e==`string`&&e.trim().length>0?e.trim():`alibaba`}function z(e,t,n){let r=L(e.providers)?e.providers:void 0,i=r&&L(r[t])?r[t]:void 0;return{...n,...i??{}}}function B(e){let t=be();if(!L(e))return t;let n=R(e.provider),r=z(e,`alibaba`,t.alibaba??{}),i=z(e,`openai`,t.openai??{}),a=t.fallback??{enabled:!0,order:[`alibaba`,`openai`]};if(L(e.fallback)){let t=Array.isArray(e.fallback.order)?e.fallback.order.filter(e=>typeof e==`string`&&e.trim().length>0):a.order;a={enabled:typeof e.fallback.enabled==`boolean`?e.fallback.enabled:a.enabled,order:t.length?t:a.order}}let o=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,alibaba:r,openai:i,...o?{providers:o}:{},fallback:a}}function V(e){return typeof e==`string`&&e.trim().length>0?e.trim():`edge`}function H(e){let t=I();if(!L(e))return t;let n=V(e.provider),r=e.trigger===`off`||e.trigger===`always`||e.trigger===`inbound`||e.trigger===`tagged`?e.trigger:`always`,i=t[`tts-local-cli`]??{},a=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,trigger:r,maxTextLength:typeof e.maxTextLength==`number`&&Number.isFinite(e.maxTextLength)?e.maxTextLength:t.maxTextLength,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)?e.timeoutMs:t.timeoutMs,...a?{providers:a}:{},alibaba:z(e,`alibaba`,t.alibaba??{}),openai:z(e,`openai`,t.openai??{}),edge:z(e,`edge`,t.edge??{}),minimax:z(e,`minimax`,t.minimax??{}),"tts-local-cli":z(e,`tts-local-cli`,i)}}function U(e){let{alibaba:t,openai:n,providers:r,...i}=e,a={...r??{}};return t&&(a.alibaba={...a.alibaba??{},...t}),n&&(a.openai={...a.openai??{},...n}),{...i,...Object.keys(a).length>0?{providers:a}:{}}}function W(e){let{alibaba:t,openai:n,edge:r,minimax:i,"tts-local-cli":a,providers:o,...s}=e,c={...o??{}};return t&&(c.alibaba={...c.alibaba??{},...t}),n&&(c.openai={...c.openai??{},...n}),r&&(c.edge={...c.edge??{},...r}),i&&(c.minimax={...c.minimax??{},...i}),a&&(c[`tts-local-cli`]={...c[`tts-local-cli`]??{},...a}),{...s,...Object.keys(c).length>0?{providers:c}:{}}}function G(e){let t=L(e)?e:{};return{stt:B(t.stt),tts:H(t.tts)}}async function K(){return G((await s(o(`/api/config`))).payload?.config??{})}async function q(e){await s(o(`/api/config`),{method:`PATCH`,body:JSON.stringify({stt:U(e.stt),tts:W(e.tts)})}),g()}async function J(){let e=await s(o(`/api/voice/models`));if(!e.payload?.models)throw Error(`Missing voice models payload`);return e.payload.models}async function Y(){let e=await s(o(`/api/voice/providers`));if(!e.payload?.providers)throw Error(`Missing voice providers payload`);return e.payload}async function X(){let e=await s(o(`/api/voice/stt-providers`));if(!e.payload?.providers)throw Error(`Missing STT providers payload`);return e.payload}async function Z(e){let t=await s(o(`/api/voice/tts-test`),{method:`POST`,body:JSON.stringify(e)});if(t.ok===!1){let e=typeof t.error==`string`?t.error:t.error?.message;throw Error(e||`TTS test failed`)}if(!t.payload||typeof t.payload.audio!=`string`||!t.payload.audio.trim())throw Error(`TTS test returned no audio. Check the selected voice engine and try again.`);return t.payload}async function Q(e){let t=await s(o(`/api/voice/reveal-api-key`),{method:`POST`,body:JSON.stringify(e)});if(!t.payload)throw Error(`Missing reveal payload`);return t.payload}function $(e){let t=(0,ne.c)(15),{kind:n,providerId:r,fieldId:a,value:o,onChange:s,labels:c,placeholder:l,className:u}=e,d=l===void 0?`sk-...`:l,f;t[0]!==n||t[1]!==r?(f=()=>Q({kind:n,provider:r}).then(xe),t[0]=n,t[1]=r,t[2]=f):f=t[2];let p=f,m;t[3]===u?m=t[4]:(m=i(`flex min-w-0 flex-col gap-1.5`,u),t[3]=u,t[4]=m);let h;t[5]!==a||t[6]!==c||t[7]!==s||t[8]!==d||t[9]!==p||t[10]!==o?(h=(0,A.jsx)(v,{id:a,value:o,onChange:s,placeholder:d,labels:c,reveal:p,loadFailedLabel:c.loadFailed,maskedHelp:c.maskedHelp,notInConfigFile:c.notInConfigFile,inputClassName:`text-xs`}),t[5]=a,t[6]=c,t[7]=s,t[8]=d,t[9]=p,t[10]=o,t[11]=h):h=t[11];let g;return t[12]!==m||t[13]!==h?(g=(0,A.jsx)(`div`,{className:m,children:h}),t[12]=m,t[13]=h,t[14]=g):g=t[14],g}function xe(e){return e.apiKey??null}export{X as a,Z as c,te as d,C as f,K as i,F as l,J as n,G as o,Y as r,q as s,$ as t,P as u};
@@ -1,18 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-BQ_8x0bT.js";import{t as a}from"./messages-B5O4OIEo.js";import{n as o}from"./locale-store-Ba72bFmP.js";import{c as s}from"./fetch-ovkvM8KQ.js";import{i as c}from"./vendor-swr-BIWyz7Rc.js";import{$ as l,Aa as u,B as d,Ba as f,Bo as p,Bs as m,C as h,D as g,Do as _,Gs as v,H as y,Ha as b,Hs as x,I as S,Ic as C,Io as w,J as T,K as E,Ks as D,L as O,M as k,Mn as A,N as j,O as ee,Os as M,P as N,Pa as te,Pc as P,Po as F,Qa as I,R as L,Rs as R,S as ne,So as re,T as z,V as B,Wr as V,X as ie,Y as H,Ys as U,Z as W,Zo as G,_ as K,_c as q,aa as ae,at as oe,b as J,cc as se,ea as ce,et as le,fo as ue,fs as de,g as fe,ga as pe,go as me,h as he,i as Y,ia as ge,ic as _e,j as ve,k as ye,l as be,mc as xe,ms as Se,na as Ce,nt as we,oa as Te,os as Ee,ot as De,p as Oe,pc as X,q as ke,qa as Ae,r as je,ra as Me,rt as Ne,sa as Pe,ta as Fe,tt as Ie,v as Le,va as Re,w as ze,x as Be,y as Ve,z as He,zn as Ue}from"./index-DdqSO9R2.js";import{t as We}from"./automation-suggestion-card-BKHewSVT.js";import{t as Ge}from"./workflow-start-dialog-B0lavx_o.js";var Z=e(t(),1),Q=n(),Ke=[`queued`,`running`,`succeeded`,`attention`],qe=10080*60*1e3,Je=new Set([`failed`,`timeout`,`cancelled`]);function Ye(e){return e.metadata?.sessionKey?.trim()||null}function Xe(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function Ze(e,t){if(!e||typeof e!=`object`)return null;let n=e;for(let e of t){let t=n[e];if(typeof t==`string`&&t.trim())return t.trim()}return null}function Qe(e,t=90){let n=e.metadata?.input?.goal?.trim()||(typeof e.metadata?.input?.payload==`string`?e.metadata.input.payload.trim():null)||Ze(e.metadata?.input?.payload,[`query`,`goal`,`prompt`,`input`,`message`])||Ze(e.metadata?.input?.variables,[`query`,`goal`,`prompt`,`input`,`message`]);return n?Xe(n,t):null}function $e(e,t=90){return Qe(e,t)??Xe(e.title?.trim()||e.definitionId,t)}function et(e,t=44){return Xe(e.title?.trim()||e.definitionId,t)}function tt(e,t){let n=t.trim().toLowerCase();return n?[Qe(e,500),e.title,e.definitionId,e.id].filter(Boolean).join(` `).toLowerCase().includes(n):!0}function nt(e,t){let n=t.workflowFilterId.trim();return e.filter(e=>n&&e.definitionId!==n||!h(e,t.triggerFilter??`all`)?!1:tt(e,t.searchQuery))}function rt(e){return e.completedAtMs??e.createdAtMs}function it(e,t){return t-rt(e)<=qe}function at(e,t){return e.status===`queued`?`queued`:e.status===`running`?`running`:e.status===`succeeded`?it(e,t)?`succeeded`:null:Je.has(e.status)?`attention`:null}function ot(e,t){let n=[...t];return e===`queued`?n.sort((e,t)=>e.createdAtMs-t.createdAtMs):e===`running`?n.sort((e,t)=>(t.startedAtMs??t.createdAtMs)-(e.startedAtMs??e.createdAtMs)):n.sort((e,t)=>rt(t)-rt(e))}function st(e,t){let n={queued:[],running:[],succeeded:[],attention:[]};for(let r of e){let e=at(r,t);e&&n[e].push(r)}let r=ot(`succeeded`,n.succeeded),i=r.length,a=r.slice(0,20),o=Math.max(0,i-20);return Ke.map(e=>e===`succeeded`?{id:e,runs:a,totalInWindow:i,hiddenByCap:o}:{id:e,runs:ot(e,n[e])})}var ct=new Map;function lt(e){let t=ct.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:`auto`}),ct.set(e,t)),t}function ut(e,t,n){let r=Math.round((t-e)/1e3),i=lt(n);if(r<60)return i.format(-r,`second`);let a=Math.round(r/60);if(a<60)return i.format(-a,`minute`);let o=Math.round(a/60);if(o<48)return i.format(-o,`hour`);let s=Math.round(o/24);return i.format(-s,`day`)}function dt(e){return e.status===`queued`||e.status===`running`}function ft(e){return e.status===`failed`||e.status===`timeout`||e.status===`cancelled`}var $=r(),pt=(0,Z.memo)(function(e){let t=(0,Q.c)(65),{run:n,language:r,localeTag:o,nowMs:s,selected:c,onOpen:l,onOpenChat:u,onCancel:d,onRetry:p}=e,h=a(r).workflows,[g,_]=(0,Z.useState)(!1),v;t[0]===n?v=t[1]:(v=Ye(n),t[0]=n,t[1]=v);let y=!v,b;t[2]===n?b=t[3]:(b=dt(n),t[2]=n,t[3]=b);let x=b,S=n.status===`running`||n.status===`queued`,C;t[4]!==n.metrics.agentCount||t[5]!==n.metrics.doneAgentCount?(C=n.metrics.agentCount>0?Math.round(n.metrics.doneAgentCount/n.metrics.agentCount*100):0,t[4]=n.metrics.agentCount,t[5]=n.metrics.doneAgentCount,t[6]=C):C=t[6];let w=C,T=n.metrics.errorAgentCount>0,E=n.startedAtMs??n.createdAtMs,D=K(x?s-E:n.metrics.durationMs),O=J(h.taskArtifacts,{count:n.metrics.artifactCount}),k;t[7]===n?k=t[8]:(k=$e(n),t[7]=n,t[8]=k);let A=k,j;t[9]===n?j=t[10]:(j=et(n),t[9]=n,t[10]=j);let ee=j,M;t[11]!==l||t[12]!==n?(M=()=>{l(n)},t[11]=l,t[12]=n,t[13]=M):M=t[13];let N=M,P;t[14]!==y||t[15]!==u||t[16]!==n?(P=()=>{y||u(n)},t[14]=y,t[15]=u,t[16]=n,t[17]=P):P=t[17];let F=P,L=c?`border-accent/70 ring-1 ring-accent/30`:`border-edge`,R;t[18]===L?R=t[19]:(R=i(`group relative overflow-hidden rounded-xl border bg-surface-panel p-3.5 transition-colors`,L,`hover:border-edge-strong hover:bg-surface-hover/50`),t[18]=L,t[19]=R);let ne;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(ne=i(`w-full text-left`,te.focusRingPanel),t[20]=ne):ne=t[20];let re;t[21]===A?re=t[22]:(re=(0,$.jsx)(`div`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-fg`,children:A}),t[21]=A,t[22]=re);let z;t[23]===ee?z=t[24]:(z=(0,$.jsx)(`div`,{className:`mt-1 truncate text-[11px] font-medium text-fg-muted`,children:ee}),t[23]=ee,t[24]=z);let B;t[25]!==re||t[26]!==z?(B=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[re,z]}),t[25]=re,t[26]=z,t[27]=B):B=t[27];let V;t[28]===n.status?V=t[29]:(V=i(`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold shadow-sm`,ze(n.status)),t[28]=n.status,t[29]=V);let ie;t[30]!==o||t[31]!==s||t[32]!==E?(ie=ut(E,s,o),t[30]=o,t[31]=s,t[32]=E,t[33]=ie):ie=t[33];let H;t[34]===ie?H=t[35]:(H=(0,$.jsx)(`span`,{children:ie}),t[34]=ie,t[35]=H);let U=D===`—`?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,$.jsx)(`span`,{children:J(h.taskElapsed,{duration:D})})]}),W;t[36]!==H||t[37]!==U?(W=(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5 text-[11px] text-fg-subtle`,children:[H,U]}),t[36]=H,t[37]=U,t[38]=W):W=t[38];let G=n.metrics.artifactCount>0?(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 font-medium text-fg-muted`,children:O}):null,q=c?(0,$.jsx)(`span`,{className:`font-medium text-accent-fg`,children:h.taskOpenDetails}):null,ae;t[39]!==G||t[40]!==q?(ae=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-subtle`,children:[G,q]}),t[39]=G,t[40]=q,t[41]=ae):ae=t[41];let oe;t[42]===_?oe=t[43]:(oe=()=>_(ht),t[42]=_,t[43]=oe);let se;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,$.jsx)(m,{className:`size-4`,"aria-hidden":!0}),t[44]=se):se=t[44];let ce;t[45]!==h.taskActionsAria||t[46]!==g||t[47]!==oe?(ce=(0,$.jsx)(f,{variant:`ghost`,className:`size-7 p-0 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,"aria-label":h.taskActionsAria,"aria-expanded":g,onClick:oe,children:se}),t[45]=h.taskActionsAria,t[46]=g,t[47]=oe,t[48]=ce):ce=t[48];let le;t[49]!==x||t[50]!==y||t[51]!==F||t[52]!==h.cancel||t[53]!==h.continueInChat||t[54]!==h.rerun||t[55]!==h.taskCloseMenu||t[56]!==g||t[57]!==d||t[58]!==p||t[59]!==n||t[60]!==_?(le=g?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-10 cursor-default`,"aria-label":h.taskCloseMenu,onClick:()=>_(!1)}),(0,$.jsxs)(`div`,{className:`absolute right-0 z-20 mt-1 min-w-36 rounded-lg border border-edge bg-surface-panel py-1 shadow-surface`,children:[(0,$.jsx)(mt,{label:h.continueInChat,disabled:y,onClick:()=>{_(!1),F()}}),x?(0,$.jsx)(mt,{label:h.cancel,tone:`danger`,onClick:()=>{_(!1),d(n.id)}}):null,ft(n)?(0,$.jsx)(mt,{label:h.rerun,onClick:()=>{_(!1),p(n.id)}}):null]})]}):null,t[49]=x,t[50]=y,t[51]=F,t[52]=h.cancel,t[53]=h.continueInChat,t[54]=h.rerun,t[55]=h.taskCloseMenu,t[56]=g,t[57]=d,t[58]=p,t[59]=n,t[60]=_,t[61]=le):le=t[61];let ue;return t[62]!==ce||t[63]!==le?(ue=(0,$.jsxs)(`div`,{className:`absolute right-2 top-2`,children:[ce,le]}),t[62]=ce,t[63]=le,t[64]=ue):ue=t[64],(0,$.jsxs)(`div`,{className:R,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:N,"aria-label":`${h.taskOpenDetails}: ${A}`,"aria-current":c?`true`:void 0,className:ne,children:[(0,$.jsxs)(`div`,{className:`pr-7`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-2`,children:[B,(0,$.jsx)(`span`,{className:V,children:h.status[n.status]??n.status})]}),W]}),S?(0,$.jsxs)(`div`,{className:`mt-2.5`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-fg-muted`,children:[(0,$.jsx)(`span`,{children:J(h.agentProgress,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}),(0,$.jsxs)(`span`,{children:[w,`%`]})]}),(0,$.jsx)(`div`,{className:`mt-1.5 h-1.5 overflow-hidden rounded-full bg-surface-hover`,children:(0,$.jsx)(`div`,{className:`h-full rounded-full bg-accent transition-all`,style:{width:`${w}%`}})})]}):null,ae,T?(0,$.jsxs)(`div`,{className:`mt-2 flex items-center gap-1 text-[11px] text-amber-700 dark:text-amber-300`,children:[(0,$.jsx)(I,{className:`size-3 shrink-0`,"aria-hidden":!0}),J(h.runRowErrorSummary,{count:n.metrics.errorAgentCount})]}):null]}),ue]})});function mt(e){let t=(0,Q.c)(8),{label:n,disabled:r,tone:a,onClick:o}=e,s=r?`cursor-not-allowed text-fg-subtle`:`text-fg hover:bg-surface-hover`,c=a===`danger`&&!r&&`text-red-600 dark:text-red-300`,l;t[0]!==s||t[1]!==c?(l=i(`block w-full px-3 py-1.5 text-left text-xs`,s,c),t[0]=s,t[1]=c,t[2]=l):l=t[2];let u;return t[3]!==r||t[4]!==n||t[5]!==o||t[6]!==l?(u=(0,$.jsx)(`button`,{type:`button`,disabled:r,onClick:o,className:l,children:n}),t[3]=r,t[4]=n,t[5]=o,t[6]=l,t[7]=u):u=t[7],u}function ht(e){return!e}function gt(e,t){return t.boardColumns[e]}var _t=(0,Z.memo)(function(e){let t=(0,Q.c)(14),{column:n,language:r,localeTag:o,nowMs:s,selectedRunId:c,onOpenRun:l,onOpenRunChat:u,onCancelRun:d,onRetryRun:p}=e,m=a(r).workflows,[h,g]=(0,Z.useState)(!1),_=n.id===`succeeded`,v=_?5:n.runs.length,y;t[0]!==v||t[1]!==n.runs||t[2]!==h||t[3]!==_?(y=_&&!h?n.runs.slice(0,v):n.runs,t[0]=v,t[1]=n.runs,t[2]=h,t[3]=_,t[4]=y):y=t[4];let b=y,x=_&&n.runs.length>5&&!h,S=_&&h,C;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(C=i(`flex h-full w-80 shrink-0 snap-center flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel/40`),t[5]=C):C=t[5];let w;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(`span`,{className:`size-2 rounded-full bg-accent`,"aria-hidden":!0}),t[6]=w):w=t[6];let T;t[7]===n.runs.length?T=t[8]:(T=(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2.5 py-1 text-xs font-semibold tabular-nums text-fg-muted`,children:n.runs.length}),t[7]=n.runs.length,t[8]=T);let E=b.length===0?(0,$.jsx)(`div`,{className:`flex min-h-32 items-center justify-center rounded-xl border border-dashed border-edge bg-surface-panel/40 px-4 py-6 text-center text-xs text-fg-subtle`,children:m.boardColumnEmpty}):b.map(e=>(0,$.jsx)(pt,{run:e,language:r,localeTag:o,nowMs:s,selected:e.id===c,onOpen:l,onOpenChat:u,onCancel:d,onRetry:p},e.id)),D=x?(0,$.jsx)(f,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>g(!0),children:J(m.boardExpandSucceeded,{count:Math.min(n.runs.length,n.totalInWindow??n.runs.length)})}):null,O=S?(0,$.jsx)(f,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>g(!1),children:m.boardCollapseSucceeded}):null,k=_&&(n.hiddenByCap??0)>0?(0,$.jsx)(`p`,{className:`px-1 text-center text-[11px] text-fg-subtle`,children:J(m.boardSucceededCapHint,{count:n.hiddenByCap??0})}):null,A;return t[9]!==E||t[10]!==D||t[11]!==O||t[12]!==k?(A=(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2.5`,children:[E,D,O,k]}),t[9]=E,t[10]=D,t[11]=O,t[12]=k,t[13]=A):A=t[13],(0,$.jsxs)(`section`,{className:C,"aria-label":gt(n.id,m),children:[(0,$.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between gap-2 rounded-t-2xl border-b border-edge-subtle bg-surface-panel/90 px-3.5 py-3 backdrop-blur`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[w,(0,$.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:gt(n.id,m)})]}),T]}),A]})}),vt=(0,Z.memo)(function(e){let t=(0,Q.c)(45),{runs:n,language:r,localeTag:i,labels:a,searchQuery:o,workflowFilterId:s,triggerFilter:c,selectedRunId:l,loading:u,onOpenRun:d,onOpenRunChat:p,onCancelRun:m,onRetryRun:h,onStart:g}=e,_;t[0]===n?_=t[1]:(_=n.some(yt),t[0]=n,t[1]=_);let v=_,[y,b]=(0,Z.useState)(bt),x,S;t[2]===v?(x=t[3],S=t[4]):(x=()=>{if(!v)return;let e=window.setInterval(()=>b(Date.now()),1e3);return()=>window.clearInterval(e)},S=[v],t[2]=v,t[3]=x,t[4]=S),(0,Z.useEffect)(x,S);let C;t[5]!==y||t[6]!==n||t[7]!==o||t[8]!==c||t[9]!==s?(C=st(nt(n,{searchQuery:o,workflowFilterId:s,triggerFilter:c}),y),t[5]=y,t[6]=n,t[7]=o,t[8]=c,t[9]=s,t[10]=C):C=t[10];let w=C,T=w.reduce(xt,0);if(u&&T===0){let e;return t[11]===a.loading?e=t[12]:(e=(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:a.loading}),t[11]=a.loading,t[12]=e),e}if(!u&&T===0){let e;t[13]===a.boardEmptyTitle?e=t[14]:(e=(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:a.boardEmptyTitle}),t[13]=a.boardEmptyTitle,t[14]=e);let n;t[15]===a.boardEmptyHint?n=t[16]:(n=(0,$.jsx)(`p`,{className:`mx-auto mt-2 max-w-md text-sm leading-6 text-fg-muted`,children:a.boardEmptyHint}),t[15]=a.boardEmptyHint,t[16]=n);let r;t[17]!==a.boardStart||t[18]!==g?(r=(0,$.jsx)(`div`,{className:`mt-4 flex justify-center`,children:(0,$.jsx)(f,{variant:`primary`,onClick:g,children:a.boardStart})}),t[17]=a.boardStart,t[18]=g,t[19]=r):r=t[19];let i;return t[20]!==e||t[21]!==n||t[22]!==r?(i=(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col items-center justify-center rounded-2xl border border-dashed border-edge bg-surface-panel/40 px-6 py-12 text-center`,children:[e,n,r]}),t[20]=e,t[21]=n,t[22]=r,t[23]=i):i=t[23],i}let E;if(t[24]!==w||t[25]!==r||t[26]!==i||t[27]!==y||t[28]!==m||t[29]!==d||t[30]!==p||t[31]!==h||t[32]!==l){let e;t[34]!==r||t[35]!==i||t[36]!==y||t[37]!==m||t[38]!==d||t[39]!==p||t[40]!==h||t[41]!==l?(e=e=>(0,$.jsx)(_t,{column:e,language:r,localeTag:i,nowMs:y,selectedRunId:l,onOpenRun:d,onOpenRunChat:p,onCancelRun:m,onRetryRun:h},e.id),t[34]=r,t[35]=i,t[36]=y,t[37]=m,t[38]=d,t[39]=p,t[40]=h,t[41]=l,t[42]=e):e=t[42],E=w.map(e),t[24]=w,t[25]=r,t[26]=i,t[27]=y,t[28]=m,t[29]=d,t[30]=p,t[31]=h,t[32]=l,t[33]=E}else E=t[33];let D;return t[43]===E?D=t[44]:(D=(0,$.jsx)(`div`,{className:`-mx-1 flex h-full min-w-0 snap-x snap-mandatory gap-3 overflow-x-auto px-1 pb-3`,children:E}),t[43]=E,t[44]=D),D});function yt(e){return e.status===`queued`||e.status===`running`}function bt(){return Date.now()}function xt(e,t){return e+t.runs.length}var St=`export const meta = {
2
- name: 'my_workflow',
3
- description: 'Describe what this workflow does.',
4
- whenToUse: 'When the user asks for ...',
5
- examplePrompts: [
6
- { field: 'goal', text: 'Example goal for this workflow' },
7
- ],
8
- tags: ['custom'],
9
- estimatedAgents: { min: 2, max: 4 },
10
- phases: [{ title: 'Step 1' }, { title: 'Synthesize' }],
11
- }
12
-
13
- phase('Step 1')
14
- const first = await agent('Do the first step.', { label: 'step 1' })
15
-
16
- phase('Synthesize')
17
- return await agent('Summarize:\\n\\n' + first, { label: 'synthesis' })
18
- `;function Ct(e){let t=(0,Q.c)(48),{open:n,language:r,ownerAgentId:i,saving:o,initialDraft:s,onClose:c,onSave:l,onSaveAndStart:u}=e,d;t[0]===r?d=t[1]:(d=a(r),t[0]=r,t[1]=d);let f=d.workflows,[p,m]=(0,Z.useState)(`ai`),[h,g]=(0,Z.useState)(``),[_,v]=(0,Z.useState)(``),y=s?.mode===`edit`,b=y?f.editWorkflowTitle:f.createWorkflowTitle,x=y?f.editWorkflowHint:s?.mode===`copy`?f.createWorkflowHintFromCopy:f.createWorkflowHint,S,C;t[2]!==s||t[3]!==n?(S=()=>{n&&(m(s?`manual`:`ai`),g(s?.name??``),v(s?.script??``))},C=[s,n],t[2]=s,t[3]=n,t[4]=S,t[5]=C):(S=t[4],C=t[5]),(0,Z.useEffect)(S,C);let w;t[6]===c?w=t[7]:(w=e=>!e&&c(),t[6]=c,t[7]=w);let T;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(Me,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[8]=T):T=t[8];let E;t[9]===b?E=t[10]:(E=(0,$.jsx)(Te,{className:`text-base font-semibold text-fg`,children:b}),t[9]=b,t[10]=E);let D;t[11]===x?D=t[12]:(D=(0,$.jsx)(Ce,{className:`mt-1 text-sm text-fg-muted`,children:x}),t[11]=x,t[12]=D);let O=p===`ai`,k,A;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(A=()=>m(`ai`),k=(0,$.jsx)(ue,{className:`size-4`,"aria-hidden":!0}),t[13]=k,t[14]=A):(k=t[13],A=t[14]);let j;t[15]!==f.createWorkflowAiTab||t[16]!==O?(j=(0,$.jsx)(wt,{active:O,onClick:A,icon:k,children:f.createWorkflowAiTab}),t[15]=f.createWorkflowAiTab,t[16]=O,t[17]=j):j=t[17];let ee=p===`manual`,M,N;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(M=()=>m(`manual`),N=(0,$.jsx)(U,{className:`size-4`,"aria-hidden":!0}),t[18]=M,t[19]=N):(M=t[18],N=t[19]);let te;t[20]!==f.createWorkflowManualTab||t[21]!==ee?(te=(0,$.jsx)(wt,{active:ee,onClick:M,icon:N,children:f.createWorkflowManualTab}),t[20]=f.createWorkflowManualTab,t[21]=ee,t[22]=te):te=t[22];let P;t[23]!==j||t[24]!==te?(P=(0,$.jsxs)(`div`,{className:`mt-4 inline-flex rounded-xl border border-edge bg-surface-base p-1`,children:[j,te]}),t[23]=j,t[24]=te,t[25]=P):P=t[25];let F;t[26]!==P||t[27]!==E||t[28]!==D?(F=(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[E,D,P]}),t[26]=P,t[27]=E,t[28]=D,t[29]=F):F=t[29];let I;t[30]!==s||t[31]!==r||t[32]!==p||t[33]!==c||t[34]!==l||t[35]!==u||t[36]!==i||t[37]!==o||t[38]!==h||t[39]!==_?(I=p===`ai`?(0,$.jsx)(Tt,{language:r,ownerAgentId:i,saving:o,initialDraft:s,name:h,setName:g,script:_,setScript:v,onClose:c,onSave:l,onSaveAndStart:u}):(0,$.jsx)(Et,{language:r,saving:o,initialDraft:s,name:h,setName:g,script:_,setScript:v,onClose:c,onSave:l}),t[30]=s,t[31]=r,t[32]=p,t[33]=c,t[34]=l,t[35]=u,t[36]=i,t[37]=o,t[38]=h,t[39]=_,t[40]=I):I=t[40];let L;t[41]!==F||t[42]!==I?(L=(0,$.jsxs)(ge,{children:[T,(0,$.jsxs)(Fe,{className:`fixed left-1/2 top-1/2 z-66 flex h-[min(92vh,52rem)] w-[min(100%-2rem,72rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[F,I]})]}),t[41]=F,t[42]=I,t[43]=L):L=t[43];let R;return t[44]!==n||t[45]!==L||t[46]!==w?(R=(0,$.jsx)(ae,{open:n,onOpenChange:w,children:L}),t[44]=n,t[45]=L,t[46]=w,t[47]=R):R=t[47],R}function wt(e){let t=(0,Q.c)(5),{active:n,onClick:r,icon:i,children:a}=e,o=n?`inline-flex h-8 items-center gap-2 rounded-lg bg-surface-panel px-3 text-sm font-medium text-fg shadow-surface`:`inline-flex h-8 items-center gap-2 rounded-lg px-3 text-sm font-medium text-fg-muted hover:text-fg`,s;return t[0]!==a||t[1]!==i||t[2]!==r||t[3]!==o?(s=(0,$.jsxs)(`button`,{type:`button`,onClick:r,className:o,children:[i,a]}),t[0]=a,t[1]=i,t[2]=r,t[3]=o,t[4]=s):s=t[4],s}function Tt({language:e,ownerAgentId:t,saving:n,initialDraft:r,name:i,setName:o,script:s,setScript:c,onClose:l,onSave:u,onSaveAndStart:d}){let p=a(e).workflows,[m,h]=(0,Z.useState)(``),[g,_]=(0,Z.useState)(null),[v,y]=(0,Z.useState)({allowNetwork:!1,fileSystem:`read`,maxPhases:4,maxSubagents:8,outputFormat:`report`}),[b,x]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(null),w=(0,Z.useMemo)(()=>g?.validation.errors.map(e=>e.message)??[],[g]),T=(0,Z.useMemo)(()=>g?.lint.filter(e=>e.severity===`error`)??[],[g]),E=m.trim().length>0&&!b,D=!!(g&&i.trim()&&s.trim()&&g.validation.valid&&T.length===0&&!n),O=s.trim().length>0,k=O?p.nlBuilderEditPromptLabel:p.nlBuilderPromptLabel,A=O?p.nlBuilderEditPromptPlaceholder:p.nlBuilderPromptPlaceholder,j=O?`improve`:`create`,ee=async n=>{if(m.trim()){x(!0),C(null);try{let r=await ke({prompt:m,agentId:t,language:e===`zh`?`zh`:`en`,mode:n,existingScript:n===`improve`?s:void 0,constraints:v});_(r),o(r.name),c(r.script)}catch(e){C(e instanceof Error?e.message:p.nlBuilderGenerateFailed)}finally{x(!1)}}},M=async()=>{D&&await u({name:i.trim(),script:s})&&l()},N=async()=>{D&&await d({name:i.trim(),script:s,goal:m.trim()})};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-4 overflow-auto px-5 py-4 lg:grid-cols-[minmax(18rem,0.9fr)_minmax(24rem,1.4fr)]`,children:[(0,$.jsxs)(`section`,{className:`space-y-3`,children:[(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:k}),(0,$.jsx)(`textarea`,{value:m,onChange:e=>h(e.target.value),placeholder:A,className:`mt-1.5 min-h-36 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm leading-6 text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}),(0,$.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,$.jsx)(Dt,{label:p.nlBuilderMaxPhases,value:v.maxPhases??4,min:1,max:8,onChange:e=>y(t=>({...t,maxPhases:e}))}),(0,$.jsx)(Dt,{label:p.nlBuilderMaxAgents,value:v.maxSubagents??8,min:1,max:20,onChange:e=>y(t=>({...t,maxSubagents:e}))})]}),(0,$.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,$.jsxs)(`label`,{className:`flex items-center gap-2 rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg-muted`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:!!v.allowNetwork,onChange:e=>y(t=>({...t,allowNetwork:e.target.checked}))}),p.nlBuilderAllowNetwork]}),(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:p.nlBuilderFilesystem}),(0,$.jsxs)(pe,{value:v.fileSystem??`read`,onChange:e=>y(t=>({...t,fileSystem:e.target.value})),className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,children:[(0,$.jsx)(Re,{value:`none`,children:`none`}),(0,$.jsx)(Re,{value:`read`,children:`read`}),(0,$.jsx)(Re,{value:`write`,children:`write`})]})]})]}),(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,$.jsxs)(f,{variant:`primary`,disabled:!E,onClick:()=>void ee(j),children:[(0,$.jsx)(ue,{className:`size-4`,"aria-hidden":!0}),b?p.nlBuilderGenerating:O?p.nlBuilderRewriteExisting:p.nlBuilderGenerate]})}),S?(0,$.jsx)(Bt,{text:S}):null,g?(0,$.jsx)(jt,{draft:g,labels:p}):null]}),(0,$.jsxs)(`section`,{className:`min-w-0 space-y-3`,children:[(0,$.jsx)(kt,{initialDraft:r,labels:p}),(0,$.jsx)(Ot,{labels:p,name:i,setName:o}),(0,$.jsx)(At,{labels:p,script:s,setScript:c,minHeightClass:`min-h-96`}),g?(0,$.jsx)(Mt,{draft:g,labels:p,validationIssues:w}):null]})]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,$.jsx)(f,{variant:`secondary`,onClick:l,disabled:n||b,children:p.cancelDialog}),(0,$.jsx)(f,{variant:`secondary`,disabled:!D,onClick:()=>void M(),children:n?p.savingWorkflow:p.saveWorkflow}),(0,$.jsx)(f,{variant:`primary`,disabled:!D,onClick:()=>void N(),children:p.nlBuilderSaveAndStart})]})]})}function Et({language:e,saving:t,initialDraft:n,name:r,setName:i,script:o,setScript:s,onClose:c,onSave:l}){let u=a(e).workflows,[d,p]=(0,Z.useState)(!1),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(null),[v,y]=(0,Z.useState)(null),b=r.trim(),x=!!(b&&o.trim());(0,Z.useEffect)(()=>{if(!x){h(!1),_(null),y(null);return}let e=!1,t=window.setTimeout(()=>{h(!0),_(null),De(b,o).then(t=>{e||y(t)}).catch(t=>{e||(y(null),_(t instanceof Error?t.message:u.validateWorkflowFailed))}).finally(()=>{e||h(!1)})},450);return()=>{e=!0,window.clearTimeout(t)}},[x,u.validateWorkflowFailed,o,b]);let S=(0,Z.useMemo)(()=>g?[g]:v?.errors.map(e=>e.message)??[],[g,v]),C=d||m||v!=null||g!=null,w=x&&!t&&!m&&v?.valid===!0;(0,Z.useEffect)(()=>{!n&&!o.trim()&&s(St),p(!1),h(!1),_(null),y(null)},[n,o,s]);let T=async()=>{if(p(!0),!(!x||t)){h(!0),_(null);try{let e=await De(b,o);if(y(e),!e.valid)return;await l({name:b,script:o})&&c()}catch(e){y(null),_(e instanceof Error?e.message:u.validateWorkflowFailed)}finally{h(!1)}}};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-3 overflow-auto px-5 py-4`,children:[(0,$.jsx)(kt,{initialDraft:n,labels:u}),(0,$.jsx)(Ot,{labels:u,name:r,setName:e=>{i(e),y(null),_(null)}}),(0,$.jsx)(At,{labels:u,script:o,setScript:e=>{s(e),y(null),_(null)},minHeightClass:`min-h-72`}),C?(0,$.jsx)(It,{labels:u,validating:m,validationIssues:S,validationResult:v}):null]}),(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,$.jsx)(f,{variant:`secondary`,onClick:c,disabled:t,children:u.cancelDialog}),(0,$.jsx)(f,{variant:`primary`,disabled:!w,onClick:()=>void T(),children:t?u.savingWorkflow:u.saveWorkflow})]})]})}function Dt(e){let t=(0,Q.c)(12),{label:n,value:r,min:i,max:a,onChange:o}=e,s;t[0]===n?s=t[1]:(s=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:n}),t[0]=n,t[1]=s);let c;t[2]===o?c=t[3]:(c=e=>o(Number(e.target.value)||void 0),t[2]=o,t[3]=c);let l;t[4]!==a||t[5]!==i||t[6]!==c||t[7]!==r?(l=(0,$.jsx)(`input`,{type:`number`,min:i,max:a,value:r,onChange:c,className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`}),t[4]=a,t[5]=i,t[6]=c,t[7]=r,t[8]=l):l=t[8];let u;return t[9]!==s||t[10]!==l?(u=(0,$.jsxs)(`label`,{className:`block`,children:[s,l]}),t[9]=s,t[10]=l,t[11]=u):u=t[11],u}function Ot(e){let t=(0,Q.c)(11),{labels:n,name:r,setName:i}=e,a;t[0]===n.workflowNameLabel?a=t[1]:(a=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:n.workflowNameLabel}),t[0]=n.workflowNameLabel,t[1]=a);let o;t[2]===i?o=t[3]:(o=e=>i(e.target.value),t[2]=i,t[3]=o);let s;t[4]!==n.workflowNamePlaceholder||t[5]!==r||t[6]!==o?(s=(0,$.jsx)(`input`,{value:r,onChange:o,placeholder:n.workflowNamePlaceholder,className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 font-mono text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}),t[4]=n.workflowNamePlaceholder,t[5]=r,t[6]=o,t[7]=s):s=t[7];let c;return t[8]!==a||t[9]!==s?(c=(0,$.jsxs)(`label`,{className:`block`,children:[a,s]}),t[8]=a,t[9]=s,t[10]=c):c=t[10],c}function kt(e){let t=(0,Q.c)(7),{initialDraft:n,labels:r}=e;if(!n)return null;let i;t[0]!==n.mode||t[1]!==n.sourceTitle||t[2]!==r.copyWorkflowNotice||t[3]!==r.editWorkflowNotice?(i=n.mode===`copy`?r.copyWorkflowNotice.replace(`{{title}}`,n.sourceTitle):r.editWorkflowNotice.replace(`{{title}}`,n.sourceTitle),t[0]=n.mode,t[1]=n.sourceTitle,t[2]=r.copyWorkflowNotice,t[3]=r.editWorkflowNotice,t[4]=i):i=t[4];let a=i,o;return t[5]===a?o=t[6]:(o=(0,$.jsx)(`div`,{className:`rounded-xl border border-accent/20 bg-accent-soft/60 px-3 py-2 text-sm leading-6 text-accent-fg`,children:a}),t[5]=a,t[6]=o),o}function At(e){let t=(0,Q.c)(11),{labels:n,script:r,setScript:i,minHeightClass:a}=e,o;t[0]===n.workflowScriptLabel?o=t[1]:(o=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:n.workflowScriptLabel}),t[0]=n.workflowScriptLabel,t[1]=o);let s;t[2]===i?s=t[3]:(s=e=>i(e.target.value),t[2]=i,t[3]=s);let c=`mt-1.5 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 font-mono text-xs leading-5 text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/20 ${a}`,l;t[4]!==r||t[5]!==s||t[6]!==c?(l=(0,$.jsx)(`textarea`,{value:r,onChange:s,spellCheck:!1,className:c}),t[4]=r,t[5]=s,t[6]=c,t[7]=l):l=t[7];let u;return t[8]!==o||t[9]!==l?(u=(0,$.jsxs)(`label`,{className:`block`,children:[o,l]}),t[8]=o,t[9]=l,t[10]=u):u=t[10],u}function jt(e){let t=(0,Q.c)(23),{draft:n,labels:r}=e,i=n.manifest.title??n.name,a;t[0]===i?a=t[1]:(a=(0,$.jsx)(`div`,{className:`text-sm font-semibold text-fg`,children:i}),t[0]=i,t[1]=a);let o;t[2]===n.explanation?o=t[3]:(o=(0,$.jsx)(`p`,{className:`text-xs leading-5 text-fg-muted`,children:n.explanation}),t[2]=n.explanation,t[3]=o);let s;t[4]!==n.repairAttempts||t[5]!==r.nlBuilderAutoRepaired?(s=n.repairAttempts>0?(0,$.jsx)(`div`,{className:`text-xs font-medium text-accent-fg`,children:r.nlBuilderAutoRepaired.replace(`{count}`,String(n.repairAttempts))}):null,t[4]=n.repairAttempts,t[5]=r.nlBuilderAutoRepaired,t[6]=s):s=t[6];let c;t[7]!==n.permissionsSummary||t[8]!==r.nlBuilderPermissions?(c=(0,$.jsx)(Rt,{title:r.nlBuilderPermissions,items:n.permissionsSummary}),t[7]=n.permissionsSummary,t[8]=r.nlBuilderPermissions,t[9]=c):c=t[9];let l;t[10]!==n.assumptions||t[11]!==r.nlBuilderAssumptions?(l=(0,$.jsx)(Rt,{title:r.nlBuilderAssumptions,items:n.assumptions}),t[10]=n.assumptions,t[11]=r.nlBuilderAssumptions,t[12]=l):l=t[12];let u;t[13]!==n.risks||t[14]!==r.nlBuilderRisks?(u=(0,$.jsx)(Rt,{title:r.nlBuilderRisks,items:n.risks}),t[13]=n.risks,t[14]=r.nlBuilderRisks,t[15]=u):u=t[15];let d;return t[16]!==a||t[17]!==o||t[18]!==s||t[19]!==c||t[20]!==l||t[21]!==u?(d=(0,$.jsxs)(`div`,{className:`space-y-2 rounded-xl border border-edge bg-surface-base/50 p-3`,children:[a,o,s,c,l,u]}),t[16]=a,t[17]=o,t[18]=s,t[19]=c,t[20]=l,t[21]=u,t[22]=d):d=t[22],d}function Mt(e){let t=(0,Q.c)(17),{draft:n,labels:r,validationIssues:i}=e,a=n.lint,o;t[0]!==n.validation.valid||t[1]!==a?(o=n.validation.valid&&a.every(Ft),t[0]=n.validation.valid,t[1]=a,t[2]=o):o=t[2];let s=o,c=s?`rounded-xl border border-emerald-500/30 bg-emerald-500/10 p-3 text-sm text-emerald-800 dark:text-emerald-200`:`rounded-xl border border-amber-500/30 bg-amber-500/10 p-3 text-sm text-amber-800 dark:text-amber-200`,l;t[3]===s?l=t[4]:(l=s?(0,$.jsx)(se,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(I,{className:`size-4`,"aria-hidden":!0}),t[3]=s,t[4]=l);let u=s?r.validationPassed:r.nlBuilderReviewIssues,d;t[5]!==l||t[6]!==u?(d=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 font-medium`,children:[l,u]}),t[5]=l,t[6]=u,t[7]=d):d=t[7];let f;t[8]!==n.validation.definition?.phases||t[9]!==r.validationPreview||t[10]!==a||t[11]!==i?(f=i.length>0||a.length>0?(0,$.jsxs)(`ul`,{className:`mt-2 list-disc space-y-1 pl-5 text-xs leading-5`,children:[i.map(Pt),a.map(Nt)]}):(0,$.jsx)(`p`,{className:`mt-1 text-xs opacity-80`,children:r.validationPreview.replace(`{{phaseCount}}`,String(n.validation.definition?.phases.length??0))}),t[8]=n.validation.definition?.phases,t[9]=r.validationPreview,t[10]=a,t[11]=i,t[12]=f):f=t[12];let p;return t[13]!==c||t[14]!==d||t[15]!==f?(p=(0,$.jsxs)(`div`,{className:c,children:[d,f]}),t[13]=c,t[14]=d,t[15]=f,t[16]=p):p=t[16],p}function Nt(e){return(0,$.jsx)(`li`,{children:e.message},`${e.code}:${e.message}`)}function Pt(e){return(0,$.jsx)(`li`,{children:e},e)}function Ft(e){return e.severity!==`error`}function It(e){let t=(0,Q.c)(10),{labels:n,validating:r,validationIssues:i,validationResult:a}=e,o=i.length>0?`rounded-xl border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-200`:`rounded-xl border border-emerald-500/30 bg-emerald-500/10 px-3 py-2 text-sm text-emerald-700 dark:text-emerald-200`,s=r?n.validatingWorkflow:i.length>0?n.validationFailed:n.validationPassed,c;t[0]===s?c=t[1]:(c=(0,$.jsx)(`div`,{className:`font-medium`,children:s}),t[0]=s,t[1]=c);let l;t[2]!==n.validationPreview||t[3]!==i||t[4]!==a?(l=i.length>0?(0,$.jsx)(`ul`,{className:`mt-1 list-disc space-y-1 pl-5`,children:i.map(Lt)}):a?.definition?(0,$.jsx)(`div`,{className:`mt-1 text-xs opacity-80`,children:n.validationPreview.replace(`{{phaseCount}}`,String(a.definition.phases.length))}):null,t[2]=n.validationPreview,t[3]=i,t[4]=a,t[5]=l):l=t[5];let u;return t[6]!==o||t[7]!==c||t[8]!==l?(u=(0,$.jsxs)(`div`,{className:o,role:`status`,children:[c,l]}),t[6]=o,t[7]=c,t[8]=l,t[9]=u):u=t[9],u}function Lt(e){return(0,$.jsx)(`li`,{children:e},e)}function Rt(e){let t=(0,Q.c)(10),{title:n,items:r}=e;if(!r.length)return null;let i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(q,{className:`size-3`,"aria-hidden":!0}),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,$.jsxs)(`div`,{className:`mb-1 flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wide text-fg-subtle`,children:[i,n]}),t[1]=n,t[2]=a);let o;t[3]===r?o=t[4]:(o=r.slice(0,5).map(zt),t[3]=r,t[4]=o);let s;t[5]===o?s=t[6]:(s=(0,$.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:o}),t[5]=o,t[6]=s);let c;return t[7]!==a||t[8]!==s?(c=(0,$.jsxs)(`div`,{children:[a,s]}),t[7]=a,t[8]=s,t[9]=c):c=t[9],c}function zt(e){return(0,$.jsx)(`span`,{className:`rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1 text-[11px] text-fg-muted`,children:e},e)}function Bt(e){let t=(0,Q.c)(2),{text:n}=e,r;return t[0]===n?r=t[1]:(r=(0,$.jsx)(`div`,{className:`rounded-xl border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-200`,children:n}),t[0]=n,t[1]=r),r}function Vt(e){let t=(0,Q.c)(57),{open:n,definition:r,language:i,onClose:o,onRun:s}=e,c;t[0]===i?c=t[1]:(c=a(i),t[0]=i,t[1]=c);let l=c.workflows;if(!r)return null;let u;t[2]!==r||t[3]!==i?(u=S(r,i),t[2]=r,t[3]=i,t[4]=u):u=t[4];let d=u,p=r.runtime?.source??``,m;t[5]===o?m=t[6]:(m=e=>!e&&o(),t[5]=o,t[6]=m);let h;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(Me,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[7]=h):h=t[7];let g;t[8]===r.title?g=t[9]:(g=(0,$.jsx)(Te,{className:`text-base font-semibold text-fg`,children:r.title}),t[8]=r.title,t[9]=g);let _;t[10]===d.description?_=t[11]:(_=(0,$.jsx)(Ce,{className:`mt-1 text-sm text-fg-muted`,children:d.description}),t[10]=d.description,t[11]=_);let v;t[12]!==g||t[13]!==_?(v=(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[g,_]}),t[12]=g,t[13]=_,t[14]=v):v=t[14];let y;t[15]!==l.whenToUseHeading||t[16]!==d.whenToUse?(y=d.whenToUse?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.whenToUseHeading}),(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:d.whenToUse})]}):null,t[15]=l.whenToUseHeading,t[16]=d.whenToUse,t[17]=y):y=t[17];let b;t[18]!==r||t[19]!==l?(b=(0,$.jsx)(Ut,{definition:r,labels:l}),t[18]=r,t[19]=l,t[20]=b):b=t[20];let x;t[21]!==r.inputSchema||t[22]!==l.inputsHeading?(x=r.inputSchema?(0,$.jsx)(Gt,{title:l.inputsHeading,schema:r.inputSchema}):null,t[21]=r.inputSchema,t[22]=l.inputsHeading,t[23]=x):x=t[23];let C;t[24]!==r.outputSchema||t[25]!==l.outputsHeading?(C=r.outputSchema?(0,$.jsx)(Gt,{title:l.outputsHeading,schema:r.outputSchema}):null,t[24]=r.outputSchema,t[25]=l.outputsHeading,t[26]=C):C=t[26];let w;t[27]!==r.phases||t[28]!==l.phasesHeading?(w=r.phases.length>0?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.phasesHeading}),(0,$.jsx)(`ol`,{className:`mt-2 space-y-2`,children:r.phases.map(Ht)})]}):null,t[27]=r.phases,t[28]=l.phasesHeading,t[29]=w):w=t[29];let T;t[30]!==l.scriptHeading||t[31]!==p?(T=p?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.scriptHeading}),(0,$.jsx)(`pre`,{className:`mt-2 max-h-64 overflow-auto rounded-xl border border-edge bg-surface-base/50 p-3 font-mono text-xs leading-5 text-fg-muted`,children:p})]}):null,t[30]=l.scriptHeading,t[31]=p,t[32]=T):T=t[32];let E;t[33]!==x||t[34]!==C||t[35]!==w||t[36]!==T||t[37]!==y||t[38]!==b?(E=(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-auto px-5 py-4`,children:[y,b,x,C,w,T]}),t[33]=x,t[34]=C,t[35]=w,t[36]=T,t[37]=y,t[38]=b,t[39]=E):E=t[39];let D;t[40]!==l.closeResult||t[41]!==o?(D=(0,$.jsx)(f,{variant:`secondary`,onClick:o,children:l.closeResult}),t[40]=l.closeResult,t[41]=o,t[42]=D):D=t[42];let O;t[43]!==l.runWorkflow||t[44]!==s?(O=(0,$.jsx)(f,{variant:`primary`,onClick:s,children:l.runWorkflow}),t[43]=l.runWorkflow,t[44]=s,t[45]=O):O=t[45];let k;t[46]!==D||t[47]!==O?(k=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[D,O]}),t[46]=D,t[47]=O,t[48]=k):k=t[48];let A;t[49]!==E||t[50]!==k||t[51]!==v?(A=(0,$.jsxs)(ge,{children:[h,(0,$.jsxs)(Fe,{className:`fixed left-1/2 top-1/2 z-66 flex max-h-[min(85vh,44rem)] w-[min(100%-2rem,48rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[v,E,k]})]}),t[49]=E,t[50]=k,t[51]=v,t[52]=A):A=t[52];let j;return t[53]!==n||t[54]!==A||t[55]!==m?(j=(0,$.jsx)(ae,{open:n,onOpenChange:m,children:A}),t[53]=n,t[54]=A,t[55]=m,t[56]=j):j=t[56],j}function Ht(e,t){return(0,$.jsxs)(`li`,{className:`rounded-xl border border-edge bg-surface-base/40 px-3 py-2`,children:[(0,$.jsxs)(`div`,{className:`text-sm font-medium text-fg`,children:[t+1,`. `,e.title]}),e.description?(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:e.description}):null]},e.id)}function Ut(e){let t=(0,Q.c)(39),{definition:n,labels:r}=e,i=n.permissions,a=n.resources,o;t[0]!==r.permissionsTools||t[1]!==i?(o=i?.tools?.length?[r.permissionsTools,i.tools.join(`, `)]:null,t[0]=r.permissionsTools,t[1]=i,t[2]=o):o=t[2];let s;t[3]!==r.networkDisabled||t[4]!==r.networkEnabled||t[5]!==r.permissionsNetwork||t[6]!==i?(s=i?.network==null?null:[r.permissionsNetwork,i.network?r.networkEnabled:r.networkDisabled],t[3]=r.networkDisabled,t[4]=r.networkEnabled,t[5]=r.permissionsNetwork,t[6]=i,t[7]=s):s=t[7];let c;t[8]!==r.permissionsFileSystem||t[9]!==i?(c=i?.fileSystem?[r.permissionsFileSystem,i.fileSystem]:null,t[8]=r.permissionsFileSystem,t[9]=i,t[10]=c):c=t[10];let l;t[11]!==r.permissionsApproval||t[12]!==i?.approvalRequired?(l=i?.approvalRequired?[r.permissionsApproval,r.permissionsApproval]:null,t[11]=r.permissionsApproval,t[12]=i?.approvalRequired,t[13]=l):l=t[13];let u;t[14]!==r.resourcesSkills||t[15]!==a?(u=a?.skills?.length?[r.resourcesSkills,a.skills.join(`, `)]:null,t[14]=r.resourcesSkills,t[15]=a,t[16]=u):u=t[16];let d;t[17]!==r.resourcesContextFiles||t[18]!==a?(d=a?.contextFiles?.length?[r.resourcesContextFiles,a.contextFiles.join(`, `)]:null,t[17]=r.resourcesContextFiles,t[18]=a,t[19]=d):d=t[19];let f;t[20]!==r.resourcesPromptTemplates||t[21]!==a?(f=a?.promptTemplates?.length?[r.resourcesPromptTemplates,a.promptTemplates.join(`, `)]:null,t[20]=r.resourcesPromptTemplates,t[21]=a,t[22]=f):f=t[22];let p;t[23]!==o||t[24]!==s||t[25]!==c||t[26]!==l||t[27]!==u||t[28]!==d||t[29]!==f?(p=[o,s,c,l,u,d,f].filter(Boolean),t[23]=o,t[24]=s,t[25]=c,t[26]=l,t[27]=u,t[28]=d,t[29]=f,t[30]=p):p=t[30];let m=p,h;t[31]===r.capabilitiesHeading?h=t[32]:(h=(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:r.capabilitiesHeading}),t[31]=r.capabilitiesHeading,t[32]=h);let g;t[33]!==r.capabilityNone||t[34]!==m?(g=m.length>0?(0,$.jsx)(`div`,{className:`mt-2 grid gap-2 sm:grid-cols-2`,children:m.map(Wt)}):(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:r.capabilityNone}),t[33]=r.capabilityNone,t[34]=m,t[35]=g):g=t[35];let _;return t[36]!==g||t[37]!==h?(_=(0,$.jsxs)(`section`,{children:[h,g]}),t[36]=g,t[37]=h,t[38]=_):_=t[38],_}function Wt(e){let[t,n]=e;return(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-base/40 px-3 py-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-medium text-fg-muted`,children:[(0,$.jsx)(me,{className:`size-3.5 text-fg-subtle`,"aria-hidden":!0}),t]}),(0,$.jsx)(`div`,{className:`mt-1 break-words text-sm text-fg`,children:n})]},`${t}:${n}`)}function Gt(e){let t=(0,Q.c)(16),{title:n,schema:r}=e,i;t[0]===r.properties?i=t[1]:(i=Object.keys(r.properties??{}),t[0]=r.properties,t[1]=i);let a=i,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(q,{className:`size-3.5`,"aria-hidden":!0}),t[2]=o):o=t[2];let s;t[3]===n?s=t[4]:(s=(0,$.jsxs)(`h3`,{className:`flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:[o,n]}),t[3]=n,t[4]=s);let c;t[5]===a?c=t[6]:(c=a.length>0?(0,$.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:a.map(Kt)}):null,t[5]=a,t[6]=c);let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(`summary`,{className:`cursor-pointer text-xs text-fg-subtle hover:text-fg-muted`,children:`JSON`}),t[7]=l):l=t[7];let u;t[8]===r?u=t[9]:(u=JSON.stringify(r,null,2),t[8]=r,t[9]=u);let d;t[10]===u?d=t[11]:(d=(0,$.jsxs)(`details`,{className:`mt-2`,children:[l,(0,$.jsx)(`pre`,{className:`mt-2 max-h-48 overflow-auto rounded-xl border border-edge bg-surface-base/50 p-3 font-mono text-xs leading-5 text-fg-muted`,children:u})]}),t[10]=u,t[11]=d);let f;return t[12]!==s||t[13]!==c||t[14]!==d?(f=(0,$.jsxs)(`section`,{children:[s,c,d]}),t[12]=s,t[13]=c,t[14]=d,t[15]=f):f=t[15],f}function Kt(e){return(0,$.jsx)(`span`,{className:`rounded-lg border border-edge-subtle bg-surface-base px-2 py-1 text-xs text-fg-muted`,children:e},e)}function qt(e,t){let n=e.metadata.estimatedAgents;return n?n.min===n.max?J(t.agentScaleExact,{count:n.min}):J(t.agentScaleRange,{min:n.min,max:n.max}):null}function Jt(e){let t=(0,Q.c)(81),{definition:n,language:r,labels:a,onPick:o,onDetail:s,onEdit:c}=e,l;t[0]!==n||t[1]!==r?(l=S(n,r),t[0]=n,t[1]=r,t[2]=l):l=t[2];let u=l,d;t[3]!==n||t[4]!==a?(d=qt(n,a),t[3]=n,t[4]=a,t[5]=d):d=t[5];let m=d,h=n.metadata.source===`user`,g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=i(`group flex h-full flex-col rounded-xl border border-edge-subtle bg-surface-base p-4 text-left transition-colors`,`hover:border-accent/40 hover:bg-surface-hover`),t[6]=g):g=t[6];let _;t[7]!==n||t[8]!==s?(_=()=>s(n),t[7]=n,t[8]=s,t[9]=_):_=t[9];let v;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(v=i(`flex flex-1 flex-col text-left`,te.focusRingPanel),t[10]=v):v=t[10];let y=h?`bg-accent-soft text-accent-fg`:`bg-surface-hover text-fg-muted`,b;t[11]===y?b=t[12]:(b=i(`rounded-full px-2 py-0.5 text-[10px] font-medium`,y),t[11]=y,t[12]=b);let x=h?a.badgeUser:a.badgeBuiltin,C;t[13]!==b||t[14]!==x?(C=(0,$.jsx)(`span`,{className:b,children:x}),t[13]=b,t[14]=x,t[15]=C):C=t[15];let T;t[16]!==n.inputSchema||t[17]!==a.inputSchemaBadge?(T=n.inputSchema?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-surface-hover px-2 py-0.5 text-[10px] text-fg-subtle`,children:[(0,$.jsx)(q,{className:`size-2.5`,"aria-hidden":!0}),a.inputSchemaBadge]}):null,t[16]=n.inputSchema,t[17]=a.inputSchemaBadge,t[18]=T):T=t[18];let E;t[19]===n.metadata.tags?E=t[20]:(E=n.metadata.tags.slice(0,2).map(Yt),t[19]=n.metadata.tags,t[20]=E);let O;t[21]!==T||t[22]!==E||t[23]!==C?(O=(0,$.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center gap-1.5`,children:[C,T,E]}),t[21]=T,t[22]=E,t[23]=C,t[24]=O):O=t[24];let k;t[25]===n.title?k=t[26]:(k=(0,$.jsx)(`span`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-fg`,children:n.title}),t[25]=n.title,t[26]=k);let A;t[27]!==O||t[28]!==k?(A=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[O,k]}),t[27]=O,t[28]=k,t[29]=A):A=t[29];let j;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,$.jsx)(`span`,{className:`flex size-8 shrink-0 items-center justify-center rounded-lg bg-accent-soft text-accent-fg opacity-80 transition-opacity group-hover:opacity-100`,children:(0,$.jsx)(R,{className:`size-3.5`,"aria-hidden":!0})}),t[30]=j):j=t[30];let ee;t[31]===A?ee=t[32]:(ee=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[A,j]}),t[31]=A,t[32]=ee);let M;t[33]===u.description?M=t[34]:(M=u.description?(0,$.jsx)(`p`,{className:`mt-2 line-clamp-2 text-xs leading-5 text-fg-muted`,children:u.description}):null,t[33]=u.description,t[34]=M);let N;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsx)(Se,{className:`size-3`,"aria-hidden":!0}),t[35]=N):N=t[35];let P;t[36]!==n.phases.length||t[37]!==a.phaseCount?(P=J(a.phaseCount,{count:n.phases.length}),t[36]=n.phases.length,t[37]=a.phaseCount,t[38]=P):P=t[38];let F;t[39]===P?F=t[40]:(F=(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[N,P]}),t[39]=P,t[40]=F);let I;t[41]===m?I=t[42]:(I=m?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,$.jsx)(Ae,{className:`size-3`,"aria-hidden":!0}),m]}):null,t[41]=m,t[42]=I);let L;t[43]!==F||t[44]!==I?(L=(0,$.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center gap-3 pt-3 text-[11px] text-fg-subtle`,children:[F,I]}),t[43]=F,t[44]=I,t[45]=L):L=t[45];let ne;t[46]!==ee||t[47]!==M||t[48]!==L||t[49]!==_?(ne=(0,$.jsxs)(`button`,{type:`button`,onClick:_,className:v,children:[ee,M,L]}),t[46]=ee,t[47]=M,t[48]=L,t[49]=_,t[50]=ne):ne=t[50];let re;t[51]!==n||t[52]!==o?(re=()=>o(n),t[51]=n,t[52]=o,t[53]=re):re=t[53];let z;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,$.jsx)(w,{className:`size-3.5`,"aria-hidden":!0}),t[54]=z):z=t[54];let B;t[55]!==a.runWorkflow||t[56]!==re?(B=(0,$.jsxs)(f,{type:`button`,variant:`primary`,className:`h-8 flex-1 rounded-lg text-xs`,onClick:re,children:[z,a.runWorkflow]}),t[55]=a.runWorkflow,t[56]=re,t[57]=B):B=t[57];let V;t[58]!==n||t[59]!==s?(V=()=>s(n),t[58]=n,t[59]=s,t[60]=V):V=t[60];let ie;t[61]===Symbol.for(`react.memo_cache_sentinel`)?(ie=(0,$.jsx)(R,{className:`size-3.5`,"aria-hidden":!0}),t[61]=ie):ie=t[61];let H;t[62]!==a.viewDetails||t[63]!==V?(H=(0,$.jsxs)(f,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg text-xs`,onClick:V,children:[ie,a.viewDetails]}),t[62]=a.viewDetails,t[63]=V,t[64]=H):H=t[64];let U;t[65]!==n||t[66]!==c?(U=()=>c(n),t[65]=n,t[66]=c,t[67]=U):U=t[67];let W;t[68]===h?W=t[69]:(W=h?(0,$.jsx)(p,{className:`size-3.5`,"aria-hidden":!0}):(0,$.jsx)(D,{className:`size-3.5`,"aria-hidden":!0}),t[68]=h,t[69]=W);let G=h?a.editWorkflow:a.copyAndEditWorkflow,K;t[70]!==U||t[71]!==W||t[72]!==G?(K=(0,$.jsxs)(f,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg text-xs`,onClick:U,children:[W,G]}),t[70]=U,t[71]=W,t[72]=G,t[73]=K):K=t[73];let ae;t[74]!==B||t[75]!==H||t[76]!==K?(ae=(0,$.jsxs)(`div`,{className:`mt-4 flex flex-wrap gap-2 border-t border-edge-subtle pt-3`,children:[B,H,K]}),t[74]=B,t[75]=H,t[76]=K,t[77]=ae):ae=t[77];let oe;return t[78]!==ne||t[79]!==ae?(oe=(0,$.jsxs)(`article`,{className:g,children:[ne,ae]}),t[78]=ne,t[79]=ae,t[80]=oe):oe=t[80],oe}function Yt(e){return(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-[10px] text-fg-subtle`,children:e},e)}function Xt(e,t){return e===`uncategorized`?t.categories.uncategorized:t.categories[e]}function Zt(e){let t=(0,Q.c)(11),{definitions:n,language:r,onPick:o,onDetail:s,onEdit:c}=e,l=a(r).workflows,[u,d]=(0,Z.useState)(``),[p,m]=(0,Z.useState)(`all`),h;t[0]!==p||t[1]!==n||t[2]!==u?(h=fe(n,u,p,`all`),t[0]=p,t[1]=n,t[2]=u,t[3]=h):h=t[3];let g=h,_;t[4]===g?_=t[5]:(_=Ve(g),t[4]=g,t[5]=_);let v=_,y;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsx)(re,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[6]=y):y=t[6];let b;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>d(e.target.value),t[7]=b):b=t[7];let x=l.searchPlaceholder,S;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(S=i(`h-10 w-full rounded-xl border border-edge bg-surface-base py-2 pl-10 pr-3 text-sm text-fg`,`placeholder:text-fg-subtle`,te.focusRingPanel),t[8]=S):S=t[8];let C=g.length===0?(0,$.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center px-4 py-12 text-center`,children:[(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:l.noDefinitions}),(0,$.jsx)(`p`,{className:`mt-1 max-w-sm text-xs leading-5 text-fg-subtle`,children:l.noDefinitionsHint})]}):p===`all`?(0,$.jsx)(`div`,{className:`flex flex-col gap-6 pb-1`,children:v.map(e=>(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`mb-3 text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:Xt(e.category,l)}),(0,$.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3`,children:e.items.map(e=>(0,$.jsx)(Jt,{definition:e,language:r,labels:l,onPick:o,onDetail:s,onEdit:c},e.id))})]},e.category))}):(0,$.jsx)(`div`,{className:`grid grid-cols-1 gap-3 pb-1 sm:grid-cols-2 xl:grid-cols-3`,children:g.map(e=>(0,$.jsx)(Jt,{definition:e,language:r,labels:l,onPick:o,onDetail:s,onEdit:c},e.id))}),w;return t[9]===C?w=t[10]:(w=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:C}),t[9]=C,t[10]=w),(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-4`,children:[(0,$.jsxs)(`div`,{className:`relative`,children:[y,(0,$.jsx)(`input`,{value:u,onChange:b,placeholder:x,className:S})]}),(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":l.categoryFilterAria,children:ve.map(e=>(0,$.jsx)(f,{type:`button`,variant:p===e?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>m(e),children:l.categories[e]},e))})]}),w]})}function Qt(e){let t=(0,Q.c)(32),{open:n,definitions:r,language:o,onClose:s,onPick:c,onDetail:l,onEdit:u}=e,d;t[0]===o?d=t[1]:(d=a(o),t[0]=o,t[1]=d);let p=d.workflows,m;t[2]===s?m=t[3]:(m=e=>!e&&s(),t[2]=s,t[3]=m);let h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(Me,{className:`fixed inset-0 z-50 bg-scrim`}),t[4]=h):h=t[4];let g;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(g=i(`pointer-events-auto relative flex h-[min(90vh,840px)] w-full max-w-5xl flex-col`,`rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,te.focusRingPanel),t[5]=g):g=t[5];let _;t[6]===p.pickStartTitle?_=t[7]:(_=(0,$.jsx)(Te,{className:`text-lg font-semibold text-fg`,children:p.pickStartTitle}),t[6]=p.pickStartTitle,t[7]=_);let v;t[8]===p.pickStartHint?v=t[9]:(v=(0,$.jsx)(Ce,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:p.pickStartHint}),t[8]=p.pickStartHint,t[9]=v);let y;t[10]!==_||t[11]!==v?(y=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[_,v]}),t[10]=_,t[11]=v,t[12]=y):y=t[12];let x;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(b,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),t[13]=x):x=t[13];let S;t[14]===p.pickStartClose?S=t[15]:(S=(0,$.jsx)(ce,{asChild:!0,children:(0,$.jsx)(f,{variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":p.pickStartClose,children:x})}),t[14]=p.pickStartClose,t[15]=S);let C;t[16]!==y||t[17]!==S?(C=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-edge-subtle px-6 py-5`,children:[y,S]}),t[16]=y,t[17]=S,t[18]=C):C=t[18];let w;t[19]!==r||t[20]!==o||t[21]!==l||t[22]!==u||t[23]!==c?(w=(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col px-6 py-5`,children:(0,$.jsx)(Zt,{definitions:r,language:o,onPick:c,onDetail:l,onEdit:u})}),t[19]=r,t[20]=o,t[21]=l,t[22]=u,t[23]=c,t[24]=w):w=t[24];let T;t[25]!==C||t[26]!==w?(T=(0,$.jsxs)(ge,{children:[h,(0,$.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4 pointer-events-none`,children:(0,$.jsxs)(Fe,{className:g,onOpenAutoFocus:$t,children:[C,w]})})]}),t[25]=C,t[26]=w,t[27]=T):T=t[27];let E;return t[28]!==n||t[29]!==T||t[30]!==m?(E=(0,$.jsx)(ae,{open:n,onOpenChange:m,children:T}),t[28]=n,t[29]=T,t[30]=m,t[31]=E):E=t[31],E}function $t(e){return e.preventDefault()}function en(e,t){return t.status[e]??e}function tn(e,t){return t.phaseStatus[e]??e}function nn(e,t){let{run:n}=e;return n.status===`succeeded`?J(t.runSummarySucceeded,{agents:n.metrics.doneAgentCount,artifacts:n.metrics.artifactCount}):n.status===`failed`||n.status===`timeout`?n.error?.message??t.runSummaryFailedFallback:n.status===`cancelled`?t.runSummaryCancelled:J(t.runSummaryActive,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}function rn(e,t){let{run:n}=e;return n.status===`failed`?t.diagnosticFailedHint:n.status===`timeout`?t.diagnosticTimeoutHint:n.status===`cancelled`?t.diagnosticCancelledHint:n.status===`succeeded`&&n.metrics.errorAgentCount>0?t.diagnosticPartialHint:null}function an(e){return ne(e)}function on(e){return!e||typeof e!=`object`||!(`kind`in e)?`unknown`:e.kind===`chat`?`chat · ${e.sessionKey}`:e.kind===`webui`?e.sessionKey?`webui · ${e.sessionKey}`:`webui`:e.kind===`automation`?`automation · ${e.automationId}`:e.kind===`api`?e.requestId?`api · ${e.requestId}`:`api`:e.kind===`im`?`${e.channel} · ${e.chatId}`:String(e.kind)}function sn({view:e,comparison:t,currentDefinition:n,loading:r,language:o,localeTag:s,onCancel:c,onRetry:l,onReplay:p,onOpenRunId:m,ownerAgentId:h,onClose:y}){let S=a(o).workflows,C=a(o).automations.suggestions,w=Oe(o),T=P(),[E,D]=(0,Z.useState)(!0),[k,A]=(0,Z.useState)(`result`),[j,M]=(0,Z.useState)(!1),[N,te]=(0,Z.useState)(null),[F,I]=(0,Z.useState)(!1),[L,R]=(0,Z.useState)(null),[re,V]=(0,Z.useState)(null),[,ie]=(0,Z.useState)(0),U=e?.run.status,W=U?ee.has(U):!1;(0,Z.useEffect)(()=>{e?.run.id&&(D(W||U===`failed`||U===`timeout`),A(`result`),te(null),R(null))},[e?.run.id,W,U,e?.run.metrics.errorAgentCount]),(0,Z.useEffect)(()=>{if(!W)return;let e=window.setInterval(()=>ie(e=>e+1),1e3);return()=>window.clearInterval(e)},[W]);let q=(0,Z.useMemo)(()=>e?be(e):null,[e]),oe=(0,Z.useMemo)(()=>q?B(q):{phases:[],unphased:null},[q]),se=(0,Z.useMemo)(()=>N==null||!q?null:q.agents.find(e=>e.id===N)??null,[N,q]),ce=(0,Z.useCallback)(e=>{te(e.id)},[]),le=(0,Z.useMemo)(()=>e?he(e):[],[e]),ue=e?Be(e.run.result):void 0,de=ue?bn(ue):null,fe=ue?z(ue):``,pe=!!ue,me=(0,Z.useCallback)(async()=>{pe&&await u(fe)&&(I(!0),window.setTimeout(()=>I(!1),1500))},[pe,fe]),ve=(0,Z.useCallback)(()=>{if(!pe||!e)return;let t=new Blob([fe],{type:`text/markdown;charset=utf-8`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${e.run.definitionId}-${e.run.id.slice(0,8)}.md`,r.click(),URL.revokeObjectURL(n)},[pe,fe,e]),ye=(0,Z.useCallback)(()=>{if(!e)return;let t=an(e);t&&T(g(t))},[T,e]),Se=(0,Z.useCallback)(async t=>{if(e){R(null),V(t.id);try{vn(await H(e.run.id,t.id,{ownerAgentId:h}),t.name||t.id)}catch(e){R(e instanceof Error?e.message:String(e))}finally{V(null)}}},[h,e]),Ce=(0,Z.useCallback)(t=>{if(!e||!t.prompt)return;let n=an(e);if(!n){u(t.prompt);return}T(g(n,t.prompt))},[T,e]),we=(0,Z.useCallback)(t=>{if(!e||t==null)return;let n=String(t),r=e.agents.findIndex(e=>String(e.id)===n);if(r<0)return;let i=Number.parseInt(n,10);te(Number.isFinite(i)?i:r+1)},[e]),Ee=e?an(e):null,De=U===`failed`;if(r)return(0,$.jsx)(ae,{open:!0,onOpenChange:e=>!e&&y(),children:(0,$.jsxs)(ge,{children:[(0,$.jsx)(Me,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),(0,$.jsxs)(Fe,{className:`fixed left-1/2 top-1/2 z-66 flex h-[min(85vh,44rem)] w-[min(100%-2rem,48rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-5 py-4`,children:[(0,$.jsx)(Te,{className:`text-base font-semibold tracking-tight text-fg`,children:S.runSummaryTitle}),(0,$.jsx)(f,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":S.pickStartClose,onClick:y,children:(0,$.jsx)(b,{className:`size-5`,"aria-hidden":!0})})]}),(0,$.jsx)(`div`,{className:`p-5 text-sm text-fg-muted`,children:S.loading})]})]})});if(!e||!q)return null;let{run:X}=e,ke=e.controls.canCancel&&W,Ae=W&&X.startedAtMs!=null?K(Date.now()-X.startedAtMs):K(X.metrics.durationMs??void 0),je=nn(e,S),Ne=rn(e,S),Pe=X.metadata,Ie=on(X.source),Re=e.controls.canRetry&&e.agents.some(e=>(e.status===`error`||e.status===`skipped`)&&e.prompt?.trim()),Ve=e.controls.canRetry&&(e.phases.some(t=>t.status===`failed`&&e.agents.some(e=>e.phaseId===t.id&&e.prompt?.trim()))||e.agents.some(e=>(e.status===`error`||e.status===`skipped`)&&e.phaseId&&e.prompt?.trim())),He=X.goal?.trim()||X.title,Ue=le.length>0||!!Ne,Ge=!!Ee||ke,Q=e.controls.canRetry||Re||Ve,Ke=pe,qe=Ge||Q||Ke;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ae,{open:!0,onOpenChange:e=>!e&&y(),children:(0,$.jsxs)(ge,{children:[(0,$.jsx)(Me,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),(0,$.jsxs)(Fe,{className:`fixed left-1/2 top-1/2 z-66 flex h-[min(90vh,52rem)] w-[min(100%-2rem,64rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-5 py-4`,children:[(0,$.jsx)(Te,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:He}),(0,$.jsx)(f,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":S.pickStartClose,onClick:y,children:(0,$.jsx)(b,{className:`size-5`,"aria-hidden":!0})})]}),(0,$.jsxs)(`section`,{className:`min-h-0 flex-1 overflow-y-auto p-5`,children:[(0,$.jsxs)(`header`,{className:`rounded-2xl border border-edge-subtle bg-surface-base/60 p-4`,children:[(0,$.jsx)(`div`,{className:`flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between`,children:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(`h2`,{className:`text-lg font-semibold leading-7 text-fg`,children:He}),(0,$.jsx)(`span`,{className:i(`rounded-full px-2 py-0.5 text-xs font-medium`,ze(X.status)),children:en(X.status,S)})]}),(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:[X.title,` · `,X.definitionId]}),(0,$.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:je}),Ne?(0,$.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-fg-subtle`,children:Ne}):null]})}),(0,$.jsxs)(`dl`,{className:`mt-4 grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,children:[(0,$.jsx)(kn,{label:S.metrics.startedAt,value:Le(X.startedAtMs??X.createdAtMs,s)}),(0,$.jsx)(kn,{label:S.metrics.duration,value:Ae}),(0,$.jsx)(kn,{label:S.metrics.agents,value:J(S.agentProgress,{done:X.metrics.doneAgentCount,total:X.metrics.agentCount})}),(0,$.jsx)(kn,{label:S.metrics.artifacts,value:String(X.metrics.artifactCount)})]})]}),(0,$.jsx)(Y,{eventType:`workflow.run.completed`,source:`workflows`,payloadKey:`runId`,payloadValue:X.id,className:`mt-4`}),De?(0,$.jsx)(We,{title:C.workflowFailedTitle,description:C.workflowFailedDescription,prompt:J(C.workflowFailedPrompt,{runId:X.id,definitionId:X.definitionId}),coverage:{eventType:`workflow.run.completed`,source:`workflows`,eventPayload:{runId:X.id,status:`failed`}},className:`mt-4`}):null,(0,$.jsx)(ln,{activeTab:k,onChange:A,labels:S,hasDiagnostics:Ue,artifactCount:de?.artifacts.length??e.artifacts.length}),k===`result`?(0,$.jsxs)(`section`,{className:`mt-5 space-y-4`,children:[pe?(0,$.jsx)(`div`,{className:`rounded-xl border border-edge bg-surface-base/50 p-3`,children:(0,$.jsx)(O,{result:ue,labels:w.result})}):(0,$.jsx)(`div`,{className:`rounded-xl border border-dashed border-edge p-4 text-sm text-fg-muted`,children:S.noResult}),qe?(0,$.jsxs)(`section`,{className:`rounded-2xl border border-edge-subtle bg-surface-base/35 p-4`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:S.nextActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-3 grid gap-3 lg:grid-cols-3`,children:[Ge?(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-xs font-medium text-fg-subtle`,children:S.primaryActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[Ee?(0,$.jsxs)(f,{variant:`primary`,onClick:ye,children:[(0,$.jsx)(G,{className:`size-4`,"aria-hidden":!0}),S.continueInChat]}):null,ke?(0,$.jsxs)(f,{variant:`secondary`,onClick:c,className:`text-red-600 dark:text-red-300`,children:[(0,$.jsx)(_e,{className:`size-4`,"aria-hidden":!0}),S.cancel]}):null]})]}):null,Q?(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-xs font-medium text-fg-subtle`,children:S.recoveryActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[Re?(0,$.jsxs)(f,{variant:`secondary`,onClick:()=>p(`failed_agents`),children:[(0,$.jsx)(_,{className:`size-4`,"aria-hidden":!0}),S.replayFailedAgents]}):null,Ve?(0,$.jsxs)(f,{variant:`secondary`,onClick:()=>p(`failed_phases`),children:[(0,$.jsx)(_,{className:`size-4`,"aria-hidden":!0}),S.replayFailedPhases]}):null,e.controls.canRetry?(0,$.jsxs)(f,{variant:`secondary`,onClick:l,children:[(0,$.jsx)(_,{className:`size-4`,"aria-hidden":!0}),S.rerun]}):null]})]}):null,Ke?(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-xs font-medium text-fg-subtle`,children:S.resultActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[(0,$.jsxs)(f,{variant:`secondary`,onClick:me,children:[F?(0,$.jsx)(xe,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(v,{className:`size-4`,"aria-hidden":!0}),F?S.copied:S.copyResult]}),(0,$.jsxs)(f,{variant:`secondary`,onClick:ve,children:[(0,$.jsx)(x,{className:`size-4`,"aria-hidden":!0}),S.exportResult]})]})]}):null]})]}):null,(0,$.jsx)(fn,{view:e,comparison:t,labels:S,onOpenRunId:m})]}):null,k===`process`?(0,$.jsx)(un,{snapshot:q,rollup:oe,view:e,labels:S,cardLabels:w,isActive:W,processExpanded:E,logsExpanded:j,drawerAgentId:N,durationText:Ae,onToggleProcess:()=>D(e=>!e),onToggleLogs:()=>M(e=>!e),onSelectAgent:ce}):null,k===`diagnostics`?(0,$.jsx)(cn,{diagnostics:le,labels:S,hint:Ne,onOpenAgent:we}):null,k===`artifacts`?(0,$.jsx)(_n,{outcome:de,labels:S,downloadingArtifactId:re,downloadError:L,onCopyText:e=>void u(e),onDownloadArtifact:e=>void Se(e),onStartFollowUp:Ce}):null,k===`debug`?(0,$.jsx)(xn,{agents:q.agents,labels:S,metadataItems:[{label:S.metadataSession,value:Pe?.sessionKey??ne(e)??`—`},{label:S.metadataSource,value:Ie},{label:S.metadataDefinition,value:`${Pe?.definition.version??X.definitionVersion} · ${Pe?.definition.source??`unknown`}`},{label:S.metadataDefinitionHash,value:pn(Pe?.definition,n,S)},{label:S.metadataPermissions,value:mn(Pe?.definition)},{label:S.metadataRetryOf,value:Pe?.retryOfRunId??`—`}],defaultExpanded:!0}):null]})]})]})}),(0,$.jsx)(d,{open:N!=null&&se!=null,agent:se,snapshot:q,sessionKey:null,ownerAgentId:h,onClose:()=>te(null),labels:w.drawer})]})}function cn(e){let t=(0,Q.c)(13),{diagnostics:n,labels:r,hint:i,onOpenAgent:a}=e;if(n.length===0&&!i)return null;let o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(`div`,{className:`rounded-xl bg-rose-500/10 p-2 text-rose-700 dark:text-rose-300`,children:(0,$.jsx)(I,{className:`size-4`,"aria-hidden":!0})}),t[0]=o):o=t[0];let s;t[1]===r.reliabilityTitle?s=t[2]:(s=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.reliabilityTitle}),t[1]=r.reliabilityTitle,t[2]=s);let c=i??r.reliabilityHint,l;t[3]===c?l=t[4]:(l=(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:c}),t[3]=c,t[4]=l);let u;t[5]!==n||t[6]!==r||t[7]!==a?(u=n.length>0?(0,$.jsx)(`ul`,{className:`mt-3 space-y-2`,children:n.slice(0,5).map(e=>(0,$.jsx)(`li`,{className:`rounded-xl border border-edge-subtle bg-surface-panel px-3 py-2`,children:(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:dn(e,r)}),e.message?(0,$.jsx)(`div`,{className:`mt-0.5 text-xs leading-5 text-fg-muted`,children:e.message}):null,e.detail?(0,$.jsx)(`div`,{className:`mt-0.5 line-clamp-2 text-xs leading-5 text-fg-subtle`,children:e.detail}):null]}),e.agentId==null?null:(0,$.jsx)(f,{type:`button`,variant:`ghost`,className:`h-8 shrink-0 px-2 text-xs`,onClick:()=>a(e.agentId),children:r.openAgentDetails})]})},e.key))}):null,t[5]=n,t[6]=r,t[7]=a,t[8]=u):u=t[8];let d;return t[9]!==s||t[10]!==l||t[11]!==u?(d=(0,$.jsx)(`section`,{className:`mt-5 rounded-2xl border border-rose-500/20 bg-rose-500/5 p-4`,children:(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[o,(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[s,l,u]})]})}),t[9]=s,t[10]=l,t[11]=u,t[12]=d):d=t[12],d}function ln(e){let t=(0,Q.c)(23),{activeTab:n,onChange:r,labels:i,hasDiagnostics:a,artifactCount:o}=e,s;t[0]===i.resultTitle?s=t[1]:(s={id:`result`,label:i.resultTitle},t[0]=i.resultTitle,t[1]=s);let c;t[2]===i.process?c=t[3]:(c={id:`process`,label:i.process},t[2]=i.process,t[3]=c);let l=a?1:void 0,u;t[4]!==i.diagnosticsTitle||t[5]!==l?(u={id:`diagnostics`,label:i.diagnosticsTitle,count:l},t[4]=i.diagnosticsTitle,t[5]=l,t[6]=u):u=t[6];let d=o||void 0,f;t[7]!==i.outcomeArtifacts||t[8]!==d?(f={id:`artifacts`,label:i.outcomeArtifacts,count:d},t[7]=i.outcomeArtifacts,t[8]=d,t[9]=f):f=t[9];let p;t[10]===i.debugDetailsTitle?p=t[11]:(p={id:`debug`,label:i.debugDetailsTitle},t[10]=i.debugDetailsTitle,t[11]=p);let m;t[12]!==s||t[13]!==c||t[14]!==u||t[15]!==f||t[16]!==p?(m=[s,c,u,f,p],t[12]=s,t[13]=c,t[14]=u,t[15]=f,t[16]=p,t[17]=m):m=t[17];let h=m,g;return t[18]!==n||t[19]!==i.taskActionsAria||t[20]!==r||t[21]!==h?(g=(0,$.jsx)(`div`,{className:`mt-5 flex overflow-x-auto border-b border-edge pb-2`,children:(0,$.jsx)(y,{items:h,activeTab:n,onChange:r,ariaLabel:i.taskActionsAria})}),t[18]=n,t[19]=i.taskActionsAria,t[20]=r,t[21]=h,t[22]=g):g=t[22],g}function un(e){let t=(0,Q.c)(36),{snapshot:n,rollup:r,view:a,labels:o,cardLabels:s,isActive:c,processExpanded:l,logsExpanded:u,drawerAgentId:d,durationText:f,onToggleProcess:p,onToggleLogs:m,onSelectAgent:h}=e,g;t[0]===o.process?g=t[1]:(g=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:o.process}),t[0]=o.process,t[1]=g);let _;t[2]!==o.agentProgress||t[3]!==a.run.metrics.agentCount||t[4]!==a.run.metrics.doneAgentCount?(_=J(o.agentProgress,{done:a.run.metrics.doneAgentCount,total:a.run.metrics.agentCount}),t[2]=o.agentProgress,t[3]=a.run.metrics.agentCount,t[4]=a.run.metrics.doneAgentCount,t[5]=_):_=t[5];let v;t[6]!==f||t[7]!==_?(v=(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:[_,` · `,f]}),t[6]=f,t[7]=_,t[8]=v):v=t[8];let y;t[9]!==g||t[10]!==v?(y=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[g,v]}),t[9]=g,t[10]=v,t[11]=y):y=t[11];let b=l?`rotate-180`:null,x;t[12]===b?x=t[13]:(x=i(`size-4 shrink-0 text-fg-subtle transition-transform`,b),t[12]=b,t[13]=x);let S;t[14]===x?S=t[15]:(S=(0,$.jsx)(X,{className:x,"aria-hidden":!0}),t[14]=x,t[15]=S);let C;t[16]!==p||t[17]!==l||t[18]!==y||t[19]!==S?(C=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-4 px-4 py-3 text-left`,onClick:p,"aria-expanded":l,children:[y,S]}),t[16]=p,t[17]=l,t[18]=y,t[19]=S,t[20]=C):C=t[20];let w;t[21]!==s||t[22]!==d||t[23]!==c||t[24]!==o||t[25]!==u||t[26]!==h||t[27]!==m||t[28]!==l||t[29]!==r||t[30]!==n||t[31]!==a.phases?(w=l?(0,$.jsxs)(`div`,{className:`border-t border-edge px-4 pb-4 pt-4`,children:[c?(0,$.jsx)(He,{snapshot:n,labels:s,logsExpanded:u,onToggleLogs:m,selectedAgentId:d,onSelectAgent:h}):(0,$.jsx)(L,{rollup:r,currentPhase:n.currentPhase,labels:s.phase,recentLogs:n.logs,recentLogsHeading:s.recentLogsHeading,showAllLogsLabel:s.showAllLogs,logsExpanded:u,onToggleLogs:m,selectedAgentId:d,onSelectAgent:h}),a.phases.length>0?(0,$.jsx)(`div`,{className:`mt-4 grid gap-2 sm:grid-cols-2`,children:a.phases.map(e=>(0,$.jsx)(`div`,{className:`rounded-xl border border-edge bg-surface-panel px-3 py-2`,children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:e.title}),(0,$.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:tn(e.status,o)})]})},e.id))}):null]}):null,t[21]=s,t[22]=d,t[23]=c,t[24]=o,t[25]=u,t[26]=h,t[27]=m,t[28]=l,t[29]=r,t[30]=n,t[31]=a.phases,t[32]=w):w=t[32];let T;return t[33]!==C||t[34]!==w?(T=(0,$.jsxs)(`div`,{className:`mt-5 rounded-2xl border border-edge bg-surface-base/35`,children:[C,w]}),t[33]=C,t[34]=w,t[35]=T):T=t[35],T}function dn(e,t){return e.kind===`run_error`?e.code?J(t.diagnosticsRunErrorWithCode,{code:e.code}):t.diagnosticsRunError:e.kind===`agent_error`?J(t.diagnosticsAgentError,{agent:e.agentLabel??String(e.agentId??`—`)}):e.kind===`step_error`?J(t.diagnosticsStepError,{agent:e.agentLabel??String(e.agentId??`—`),step:e.stepLabel??e.stepId??`—`}):J(t.diagnosticsAgentSkipped,{agent:e.agentLabel??String(e.agentId??`—`)})}function fn(e){let t=(0,Q.c)(36),{view:n,comparison:r,labels:i,onOpenRunId:a}=e,o=n.run.metadata?.replay;if(!o)return null;let s;t[0]===i.replayLineageTitle?s=t[1]:(s=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:i.replayLineageTitle}),t[0]=i.replayLineageTitle,t[1]=s);let c;t[2]!==i||t[3]!==o.scope||t[4]!==o.targetCount?(c=J(i.replayLineageSummary,{scope:gn(o.scope,i),count:o.targetCount}),t[2]=i,t[3]=o.scope,t[4]=o.targetCount,t[5]=c):c=t[5];let l;t[6]===c?l=t[7]:(l=(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:c}),t[6]=c,t[7]=l);let u;t[8]!==i.replaySourceRun||t[9]!==o.sourceRunId?(u=(0,$.jsx)(An,{label:i.replaySourceRun,value:o.sourceRunId}),t[8]=i.replaySourceRun,t[9]=o.sourceRunId,t[10]=u):u=t[10];let d=i.replayTargetAgents,p;t[11]===o.agentIds?p=t[12]:(p=o.agentIds.join(`, `),t[11]=o.agentIds,t[12]=p);let m;t[13]!==i.replayTargetAgents||t[14]!==p?(m=(0,$.jsx)(An,{label:d,value:p}),t[13]=i.replayTargetAgents,t[14]=p,t[15]=m):m=t[15];let h;t[16]!==u||t[17]!==m?(h=(0,$.jsxs)(`dl`,{className:`mt-3 grid gap-2 text-xs sm:grid-cols-2`,children:[u,m]}),t[16]=u,t[17]=m,t[18]=h):h=t[18];let g;t[19]!==r||t[20]!==i.replayDurationDelta||t[21]!==i.replayFixedAgents||t[22]!==i.replayStillFailingAgents?(g=r?(0,$.jsxs)(`div`,{className:`mt-3 grid gap-2 sm:grid-cols-3`,children:[(0,$.jsx)(kn,{label:i.replayFixedAgents,value:String(r.fixedAgentIds.length)}),(0,$.jsx)(kn,{label:i.replayStillFailingAgents,value:String(r.stillFailingAgentIds.length)}),(0,$.jsx)(kn,{label:i.replayDurationDelta,value:hn(r.durationDeltaMs)})]}):null,t[19]=r,t[20]=i.replayDurationDelta,t[21]=i.replayFixedAgents,t[22]=i.replayStillFailingAgents,t[23]=g):g=t[23];let _;t[24]!==s||t[25]!==l||t[26]!==h||t[27]!==g?(_=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[s,l,h,g]}),t[24]=s,t[25]=l,t[26]=h,t[27]=g,t[28]=_):_=t[28];let v;t[29]!==i.replayOpenSource||t[30]!==a||t[31]!==o.sourceRunId?(v=a?(0,$.jsx)(f,{type:`button`,variant:`secondary`,className:`shrink-0`,onClick:()=>a(o.sourceRunId),children:i.replayOpenSource}):null,t[29]=i.replayOpenSource,t[30]=a,t[31]=o.sourceRunId,t[32]=v):v=t[32];let y;return t[33]!==_||t[34]!==v?(y=(0,$.jsx)(`section`,{className:`mt-5 rounded-2xl border border-edge-subtle bg-surface-base/35 p-4`,children:(0,$.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[_,v]})}),t[33]=_,t[34]=v,t[35]=y):y=t[35],y}function pn(e,t,n){if(!e?.contentHash)return n.definitionHashUnavailable;let r=e.contentHash.slice(0,8);return t?.contentHash?t.contentHash===e.contentHash?`${r} · ${n.definitionHashMatches}`:`${r} · ${n.definitionHashDrifted}`:`${r} · ${n.definitionHashCurrentUnknown}`}function mn(e){let t=e?.permissions;if(!t)return`—`;let n=[t.tools?.length?`tools:${t.tools.join(`,`)}`:null,t.network==null?null:`network:${t.network?`on`:`off`}`,t.fileSystem?`fs:${t.fileSystem}`:null,t.approvalRequired?`approval`:null].filter(Boolean);return n.length>0?n.join(` · `):`—`}function hn(e){return e==null?`—`:`${e>0?`+`:e<0?`-`:``}${K(Math.abs(e))}`}function gn(e,t){return e===`failed_phases`?t.replayScopeFailedPhases:t.replayScopeFailedAgents}function _n(e){let t=(0,Q.c)(20),{outcome:n,labels:r,downloadingArtifactId:i,downloadError:a,onCopyText:o,onDownloadArtifact:s,onStartFollowUp:c}=e;if(!n||!n.artifacts.length&&!n.followUps.length&&n.structuredOutput===void 0){let e;return t[0]===r.noArtifacts?e=t[1]:(e=(0,$.jsx)(`section`,{className:`mt-5 rounded-xl border border-dashed border-edge p-4 text-sm text-fg-muted`,children:r.noArtifacts}),t[0]=r.noArtifacts,t[1]=e),e}let l;t[2]!==a||t[3]!==i||t[4]!==r||t[5]!==s||t[6]!==n.artifacts?(l=n.artifacts.length>0?(0,$.jsxs)(yn,{title:r.outcomeArtifacts,children:[(0,$.jsx)(`ul`,{className:`space-y-2`,children:n.artifacts.map(e=>(0,$.jsxs)(`li`,{className:`min-w-0 rounded-lg bg-surface-base px-2.5 py-2`,children:[(0,$.jsx)(`div`,{className:`truncate text-sm font-medium text-fg`,title:e.title??e.name,children:e.title??e.name}),(0,$.jsx)(`div`,{className:`mt-0.5 text-xs text-fg-subtle`,children:e.mimeType}),(0,$.jsxs)(`button`,{type:`button`,className:`mt-1 inline-flex items-center gap-1 text-xs font-medium text-accent-fg hover:underline disabled:cursor-wait disabled:opacity-60`,disabled:i===e.id,onClick:()=>s(e),children:[(0,$.jsx)(x,{className:`size-3`,"aria-hidden":!0}),i===e.id?r.downloadingArtifact:r.downloadArtifact]})]},e.id))}),a?(0,$.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-rose-600 dark:text-rose-400`,children:a}):null]}):null,t[2]=a,t[3]=i,t[4]=r,t[5]=s,t[6]=n.artifacts,t[7]=l):l=t[7];let u;t[8]!==r||t[9]!==o||t[10]!==c||t[11]!==n.followUps?(u=n.followUps.length>0?(0,$.jsx)(yn,{title:r.outcomeFollowUps,children:(0,$.jsx)(`ul`,{className:`space-y-2`,children:n.followUps.map(e=>(0,$.jsxs)(`li`,{className:`rounded-lg bg-surface-base px-2.5 py-2`,children:[(0,$.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:e.title}),e.prompt?(0,$.jsxs)(`div`,{className:`mt-1 flex flex-wrap gap-2`,children:[(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent-fg hover:underline`,onClick:()=>c(e),children:r.startFollowUp}),(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-fg-subtle hover:text-fg`,onClick:()=>o(e.prompt??``),children:r.copyPrompt})]}):null]},e.id))})}):null,t[8]=r,t[9]=o,t[10]=c,t[11]=n.followUps,t[12]=u):u=t[12];let d;t[13]!==r||t[14]!==n.structuredOutput?(d=n.structuredOutput===void 0?null:(0,$.jsx)(yn,{title:r.outcomeStructuredOutput,children:(0,$.jsx)(`pre`,{className:`max-h-44 overflow-auto whitespace-pre-wrap break-words rounded-lg bg-surface-base p-2 font-mono text-xs leading-5 text-fg-muted`,children:z(n.structuredOutput)})}),t[13]=r,t[14]=n.structuredOutput,t[15]=d):d=t[15];let f;return t[16]!==l||t[17]!==u||t[18]!==d?(f=(0,$.jsxs)(`div`,{className:`mt-5 grid gap-3 lg:grid-cols-3`,children:[l,u,d]}),t[16]=l,t[17]=u,t[18]=d,t[19]=f):f=t[19],f}function vn(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),URL.revokeObjectURL(n)}function yn(e){let t=(0,Q.c)(7),{title:n,children:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`div`,{className:`mt-2`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`section`,{className:`min-w-0 rounded-xl border border-edge-subtle bg-surface-base/35 p-3`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function bn(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e,n=Array.isArray(t.artifacts)?t.artifacts:[],r=Array.isArray(t.followUps)?t.followUps:[];return n.length===0&&r.length===0&&t.structuredOutput===void 0?null:{artifacts:n,followUps:r,structuredOutput:t.structuredOutput}}function xn(e){let t=(0,Q.c)(27),{agents:n,labels:r,metadataItems:a,defaultExpanded:o}=e,[s,c]=(0,Z.useState)(o),l,u;t[0]===o?(l=t[1],u=t[2]):(l=()=>{c(o)},u=[o],t[0]=o,t[1]=l,t[2]=u),(0,Z.useEffect)(l,u);let d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>c(Cn),t[3]=d):d=t[3];let f;t[4]===r.debugDetailsTitle?f=t[5]:(f=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.debugDetailsTitle}),t[4]=r.debugDetailsTitle,t[5]=f);let p;t[6]===r.debugDetailsHint?p=t[7]:(p=(0,$.jsx)(`p`,{className:`text-xs leading-5 text-fg-subtle`,children:r.debugDetailsHint}),t[6]=r.debugDetailsHint,t[7]=p);let m;t[8]!==f||t[9]!==p?(m=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[f,p]}),t[8]=f,t[9]=p,t[10]=m):m=t[10];let h=s?`rotate-180`:null,g;t[11]===h?g=t[12]:(g=i(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,h),t[11]=h,t[12]=g);let _;t[13]===g?_=t[14]:(_=(0,$.jsx)(X,{className:g,"aria-hidden":!0}),t[13]=g,t[14]=_);let v;t[15]!==s||t[16]!==m||t[17]!==_?(v=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-4 px-4 py-3 text-left`,onClick:d,"aria-expanded":s,children:[m,_]}),t[15]=s,t[16]=m,t[17]=_,t[18]=v):v=t[18];let y;t[19]!==n||t[20]!==s||t[21]!==r||t[22]!==a?(y=s?(0,$.jsxs)(`div`,{className:`border-t border-edge px-4 py-4`,children:[(0,$.jsx)(wn,{agents:n,labels:r}),(0,$.jsx)(`div`,{className:`mt-4 grid gap-3 rounded-xl border border-edge-subtle bg-surface-panel/60 p-3 sm:grid-cols-2 lg:grid-cols-3`,children:a.map(Sn)})]}):null,t[19]=n,t[20]=s,t[21]=r,t[22]=a,t[23]=y):y=t[23];let b;return t[24]!==v||t[25]!==y?(b=(0,$.jsxs)(`section`,{className:`mt-6 rounded-2xl border border-edge bg-surface-base/35`,children:[v,y]}),t[24]=v,t[25]=y,t[26]=b):b=t[26],b}function Sn(e){return(0,$.jsx)(An,{label:e.label,value:e.value},e.label)}function Cn(e){return!e}function wn(e){let t=(0,Q.c)(15),{agents:n,labels:r}=e;if(n.length===0)return null;let a;t[0]===r.agentIoTitle?a=t[1]:(a=(0,$.jsx)(`h4`,{className:`text-sm font-semibold text-fg`,children:r.agentIoTitle}),t[0]=r.agentIoTitle,t[1]=a);let o;t[2]===r.agentIoHint?o=t[3]:(o=(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:r.agentIoHint}),t[2]=r.agentIoHint,t[3]=o);let s;if(t[4]!==n||t[5]!==r){let e;t[7]===r?e=t[8]:(e=e=>{let t=e.error||e.resultPreview||r.agentNoOutput;return(0,$.jsxs)(`article`,{className:`rounded-xl border border-edge-subtle bg-surface-panel p-3`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,$.jsx)(`div`,{className:`min-w-0 text-sm font-medium text-fg`,children:e.label}),(0,$.jsx)(`span`,{className:i(`rounded-full px-2 py-0.5 text-xs font-medium`,On(e.status)),children:r.agentStatus[e.status]??e.status})]}),(0,$.jsxs)(`div`,{className:`mt-3 grid gap-3 lg:grid-cols-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-wide text-fg-subtle`,children:r.agentInputHeading}),(0,$.jsx)(`pre`,{className:`mt-1 max-h-32 overflow-y-auto whitespace-pre-wrap wrap-break-word rounded-lg border border-edge-subtle bg-surface-base/50 p-2 font-mono text-xs leading-5 text-fg-muted`,children:e.prompt||`—`})]}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-wide text-fg-subtle`,children:r.agentOutputHeading}),(0,$.jsx)(`div`,{className:i(`mt-1 max-h-32 overflow-y-auto whitespace-pre-wrap wrap-break-word rounded-lg border border-edge-subtle bg-surface-base/50 p-2 text-xs leading-5`,e.error?`font-mono text-rose-600 dark:text-rose-400`:`text-fg-muted`),children:t})]})]}),(0,$.jsx)(Tn,{agent:e,labels:r})]},e.id)},t[7]=r,t[8]=e),s=n.map(e),t[4]=n,t[5]=r,t[6]=s}else s=t[6];let c;t[9]===s?c=t[10]:(c=(0,$.jsx)(`div`,{className:`mt-3 grid gap-3`,children:s}),t[9]=s,t[10]=c);let l;return t[11]!==a||t[12]!==o||t[13]!==c?(l=(0,$.jsxs)(`section`,{children:[a,o,c]}),t[11]=a,t[12]=o,t[13]=c,t[14]=l):l=t[14],l}function Tn(e){let t=(0,Q.c)(21),{agent:n,labels:r}=e,i=n.invocation;if(!i)return null;let a=i.resolvedModelRef??i.modelRef,o;t[0]!==r.agentInvocationModel||t[1]!==a?(o={label:r.agentInvocationModel,value:a},t[0]=r.agentInvocationModel,t[1]=a,t[2]=o):o=t[2];let s;t[3]===i.toolset?s=t[4]:(s=i.toolset?.join(`, `),t[3]=i.toolset,t[4]=s);let c;t[5]!==r.agentInvocationTools||t[6]!==s?(c={label:r.agentInvocationTools,value:s},t[5]=r.agentInvocationTools,t[6]=s,t[7]=c):c=t[7];let l=i.maxIterations==null?void 0:String(i.maxIterations),u;t[8]!==r.agentInvocationIterations||t[9]!==l?(u={label:r.agentInvocationIterations,value:l},t[8]=r.agentInvocationIterations,t[9]=l,t[10]=u):u=t[10];let d=i.schema?r.agentInvocationSchemaPresent:void 0,f;t[11]!==r.agentInvocationSchema||t[12]!==d?(f={label:r.agentInvocationSchema,value:d},t[11]=r.agentInvocationSchema,t[12]=d,t[13]=f):f=t[13];let p;t[14]!==o||t[15]!==c||t[16]!==u||t[17]!==f?(p=[o,c,u,f].filter(Dn),t[14]=o,t[15]=c,t[16]=u,t[17]=f,t[18]=p):p=t[18];let m=p;if(m.length===0)return null;let h;return t[19]===m?h=t[20]:(h=(0,$.jsx)(`dl`,{className:`mt-3 grid gap-2 border-t border-edge-subtle pt-3 text-xs sm:grid-cols-2 lg:grid-cols-4`,children:m.map(En)}),t[19]=m,t[20]=h),h}function En(e){return(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`dt`,{className:`text-fg-subtle`,children:e.label}),(0,$.jsx)(`dd`,{className:`mt-0.5 truncate font-medium text-fg-muted`,title:e.value,children:e.value})]},e.label)}function Dn(e){return!!e.value}function On(e){return e===`done`?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:e===`error`?`bg-rose-500/10 text-rose-700 dark:text-rose-300`:e===`running`?`bg-accent-soft text-accent-fg`:`bg-surface-hover text-fg-subtle`}function kn(e){let t=(0,Q.c)(7),{label:n,value:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`dt`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`dd`,{className:`mt-1 text-sm font-semibold text-fg`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-base/40 p-3`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function An(e){let t=(0,Q.c)(7),{label:n,value:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`div`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`div`,{className:`mt-1 truncate text-sm font-medium text-fg`,title:r,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function jn(e){let t=(0,Q.c)(30),{stats:n,language:r}=e,i,o,s;if(t[0]!==r||t[1]!==n){s=Symbol.for(`react.early_return_sentinel`);bb0:{if(i=a(r).workflows,!n||n.totalRuns===0){s=null;break bb0}o=n.topDefinitions[0]?J(i.statsTopWorkflow,{name:n.topDefinitions[0].definitionId,count:n.topDefinitions[0].count}):null}t[0]=r,t[1]=n,t[2]=i,t[3]=o,t[4]=s}else i=t[2],o=t[3],s=t[4];if(s!==Symbol.for(`react.early_return_sentinel`))return s;let c=o,l=i.statsTotalRuns,u=String(n.totalRuns),d;t[5]!==i.statsTotalRuns||t[6]!==u?(d=(0,$.jsx)(Mn,{label:l,value:u}),t[5]=i.statsTotalRuns,t[6]=u,t[7]=d):d=t[7];let f=i.statsActiveRuns,p=String(n.activeRuns),m;t[8]!==i.statsActiveRuns||t[9]!==p?(m=(0,$.jsx)(Mn,{label:f,value:p}),t[8]=i.statsActiveRuns,t[9]=p,t[10]=m):m=t[10];let h;t[11]!==n.succeededRuns||t[12]!==n.totalRuns?(h=n.totalRuns>0?`${Math.round(n.succeededRuns/n.totalRuns*100)}%`:`—`,t[11]=n.succeededRuns,t[12]=n.totalRuns,t[13]=h):h=t[13];let g;t[14]!==i.statsSuccessRate||t[15]!==h?(g=(0,$.jsx)(Mn,{label:i.statsSuccessRate,value:h}),t[14]=i.statsSuccessRate,t[15]=h,t[16]=g):g=t[16];let _;t[17]===n.averageDurationMs?_=t[18]:(_=n.averageDurationMs==null?`—`:K(n.averageDurationMs),t[17]=n.averageDurationMs,t[18]=_);let v;t[19]!==i.statsAvgDuration||t[20]!==_?(v=(0,$.jsx)(Mn,{label:i.statsAvgDuration,value:_}),t[19]=i.statsAvgDuration,t[20]=_,t[21]=v):v=t[21];let y;t[22]===c?y=t[23]:(y=c?(0,$.jsx)(`span`,{className:`min-w-0 truncate text-xs text-fg-muted`,children:c}):null,t[22]=c,t[23]=y);let b;return t[24]!==g||t[25]!==v||t[26]!==y||t[27]!==d||t[28]!==m?(b=(0,$.jsxs)(`section`,{className:`flex min-w-0 flex-wrap items-center gap-2 rounded-lg border border-edge bg-surface-panel/70 px-3 py-2`,children:[d,m,g,v,y]}),t[24]=g,t[25]=v,t[26]=y,t[27]=d,t[28]=m,t[29]=b):b=t[29],b}function Mn(e){let t=(0,Q.c)(7),{label:n,value:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`span`,{children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`span`,{className:`font-semibold tabular-nums text-fg`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-full border border-edge bg-surface-muted px-2.5 py-1 text-xs text-fg-muted`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function Nn(e){let t=(0,Q.c)(20),{vm:n}=e,{labels:r,loading:i,refreshAll:a,setManageOpen:o,setPickStartOpen:s}=n,c;t[0]===s?c=t[1]:(c=()=>s(!0),t[0]=s,t[1]=c);let l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(w,{className:`size-4`,"aria-hidden":!0}),t[2]=l):l=t[2];let u;t[3]!==r.boardStart||t[4]!==c?(u=(0,$.jsxs)(f,{variant:`primary`,className:`h-9 rounded-lg`,onClick:c,children:[l,r.boardStart]}),t[3]=r.boardStart,t[4]=c,t[5]=u):u=t[5];let d;t[6]===o?d=t[7]:(d=()=>o(!0),t[6]=o,t[7]=d);let p;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(F,{className:`size-4`,"aria-hidden":!0}),t[8]=p):p=t[8];let m;t[9]!==r.addWorkflow||t[10]!==d?(m=(0,$.jsxs)(f,{variant:`secondary`,className:`h-9 rounded-lg`,onClick:d,children:[p,r.addWorkflow]}),t[9]=r.addWorkflow,t[10]=d,t[11]=m):m=t[11];let h;t[12]!==r.refresh||t[13]!==i||t[14]!==a?(h=(0,$.jsx)(V,{className:`size-9 shrink-0 p-0`,loading:i,label:r.refresh,onClick:a}),t[12]=r.refresh,t[13]=i,t[14]=a,t[15]=h):h=t[15];let g;return t[16]!==u||t[17]!==m||t[18]!==h?(g=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[u,m,h]}),t[16]=u,t[17]=m,t[18]=h,t[19]=g):g=t[19],g}var Pn=[`attention`,`running`,`queued`,`recent`];function Fn(e){return e.status===`failed`||e.status===`timeout`||e.status===`cancelled`?`attention`:e.status===`running`?`running`:e.status===`queued`?`queued`:e.status===`succeeded`?`recent`:null}function In(e){return e.completedAtMs??e.startedAtMs??e.createdAtMs}function Ln(e,t){let n=[...t];return e===`queued`?n.sort((e,t)=>e.createdAtMs-t.createdAtMs):n.sort((e,t)=>In(t)-In(e))}function Rn(e){let t=new Map(Pn.map(e=>[e,[]]));for(let n of e){let e=Fn(n);e&&t.get(e)?.push(n)}for(let e of Pn)t.set(e,Ln(e,t.get(e)??[]));return t}function zn(e){let t=(0,Q.c)(205),{vm:n}=e,{language:r,localeTag:o,labels:s,hasToken:c,definitions:l,runs:u,searchQuery:d,setSearchQuery:f,ownerAgentId:p,agentOptions:m,setOwnerAgentId:h,workflowFilterId:g,setWorkflowFilterId:_,triggerFilter:v,setTriggerFilter:y,selectedRunId:b,selectedRunView:x,selectedRunComparison:S,selectedRunLoading:C,selectedRunError:w,openRunDetails:T,closeRunDetails:E,openRunDetailsById:D,openRunInChat:O,pickStartOpen:k,setPickStartOpen:j,startDefinition:ee,setStartDefinition:N,detailDefinition:P,setDetailDefinition:F,manageOpen:I,setManageOpen:L,workflowEditorDraft:R,openWorkflowEditor:ne,actionError:z,actionFeedback:B,starting:V,savingWorkflow:ie,loading:H,error:U,stats:W,submitStart:G,cancelRun:K,retryRun:q,replayRun:ae,saveCustomWorkflow:oe,saveDraftAndStart:J}=n,se=Pe(Hn),ce=Pe(Vn),[le,ue]=(0,Z.useState)(`operations`),fe;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(fe=Date.now(),t[0]=fe):fe=t[0];let me=fe,he=Rn(nt(u,{searchQuery:d,workflowFilterId:g,triggerFilter:v})),Y;t[1]!==ce||t[2]!==c||t[3]!==s.statsActiveRuns||t[4]!==s.statsTotalRuns||t[5]!==s.subtitleBoard||t[6]!==s.title||t[7]!==se||t[8]!==W||t[9]!==n?(Y=()=>{if(!c){ce();return}return se({startExtra:null,main:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:s.title}),(0,$.jsx)(`p`,{className:`truncate text-xs text-fg-muted`,children:W?`${s.statsTotalRuns}: ${W.totalRuns} · ${s.statsActiveRuns}: ${W.activeRuns}`:s.subtitleBoard})]}),end:(0,$.jsx)(Nn,{vm:n})}),()=>ce()},t[1]=ce,t[2]=c,t[3]=s.statsActiveRuns,t[4]=s.statsTotalRuns,t[5]=s.subtitleBoard,t[6]=s.title,t[7]=se,t[8]=W,t[9]=n,t[10]=Y):Y=t[10];let ge;if(t[11]!==ce||t[12]!==c||t[13]!==s.statsActiveRuns||t[14]!==s.statsTotalRuns||t[15]!==s.subtitleBoard||t[16]!==s.title||t[17]!==H||t[18]!==W||t[19]!==n?(ge=[ce,c,s.title,s.statsActiveRuns,s.statsTotalRuns,s.subtitleBoard,H,W,n,n.refreshAll,n.setManageOpen,n.setSearchQuery],t[11]=ce,t[12]=c,t[13]=s.statsActiveRuns,t[14]=s.statsTotalRuns,t[15]=s.subtitleBoard,t[16]=s.title,t[17]=H,t[18]=W,t[19]=n,t[20]=ge):ge=t[20],(0,Z.useLayoutEffect)(Y,ge),!c){let e;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(M,{className:`size-10 text-accent-fg`,"aria-hidden":!0}),t[21]=e):e=t[21];let n;t[22]===s.title?n=t[23]:(n=(0,$.jsx)(`h1`,{className:`mt-4 text-xl font-semibold text-fg`,children:s.title}),t[22]=s.title,t[23]=n);let r;t[24]===s.needToken?r=t[25]:(r=(0,$.jsx)(`p`,{className:`mt-2 max-w-md text-sm leading-6 text-fg-muted`,children:s.needToken}),t[24]=s.needToken,t[25]=r);let i;return t[26]!==n||t[27]!==r?(i=(0,$.jsx)(`main`,{className:`min-h-0 flex-1 overflow-auto bg-surface-base`,children:(0,$.jsxs)(`div`,{className:`flex w-full flex-col items-center px-3 py-16 text-center sm:px-5 xl:px-6`,children:[e,n,r]})}),t[26]=n,t[27]=r,t[28]=i):i=t[28],i}let _e;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(_e=(0,$.jsx)(re,{className:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[29]=_e):_e=t[29];let ve;t[30]===f?ve=t[31]:(ve=e=>f(e.target.value),t[30]=f,t[31]=ve);let ye=s.searchPlaceholder,be;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(be=i(`h-9 w-full rounded-lg border border-edge bg-surface-panel py-2 pl-9 pr-3 text-sm text-fg shadow-surface`,`placeholder:text-fg-subtle`,te.focusRingPanel),t[32]=be):be=t[32];let xe;t[33]!==s.searchPlaceholder||t[34]!==d||t[35]!==ve?(xe=(0,$.jsxs)(`div`,{className:`relative min-w-48 flex-1 sm:max-w-xs`,children:[_e,(0,$.jsx)(`input`,{value:d,onChange:ve,placeholder:ye,className:be})]}),t[33]=s.searchPlaceholder,t[34]=d,t[35]=ve,t[36]=xe):xe=t[36];let Se;t[37]!==m||t[38]!==r||t[39]!==p||t[40]!==h?(Se=m.length>1?(0,$.jsx)(pe,{value:p??``,"aria-label":`Agent`,onChange:e=>h(e.target.value),className:i(`h-9 min-w-32 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,te.focusRingPanel),children:m.map(e=>(0,$.jsx)(Re,{value:e.id,children:A(e,a(r).agentsSettings)},e.id))}):null,t[37]=m,t[38]=r,t[39]=p,t[40]=h,t[41]=Se):Se=t[41];let Ce=s.boardTriggerFilterAria,we;t[42]===y?we=t[43]:(we=e=>y(e.target.value),t[42]=y,t[43]=we);let Te;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(Te=i(`h-9 min-w-[7.5rem] rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,te.focusRingPanel),t[44]=Te):Te=t[44];let De;t[45]===s.boardTriggerFilterAll?De=t[46]:(De=(0,$.jsx)(Re,{value:`all`,children:s.boardTriggerFilterAll}),t[45]=s.boardTriggerFilterAll,t[46]=De);let Oe;t[47]===s.boardTriggerFilterAutomation?Oe=t[48]:(Oe=(0,$.jsx)(Re,{value:`automation`,children:s.boardTriggerFilterAutomation}),t[47]=s.boardTriggerFilterAutomation,t[48]=Oe);let X;t[49]===s.boardTriggerFilterWebui?X=t[50]:(X=(0,$.jsx)(Re,{value:`webui`,children:s.boardTriggerFilterWebui}),t[49]=s.boardTriggerFilterWebui,t[50]=X);let ke;t[51]===s.boardTriggerFilterChat?ke=t[52]:(ke=(0,$.jsx)(Re,{value:`chat`,children:s.boardTriggerFilterChat}),t[51]=s.boardTriggerFilterChat,t[52]=ke);let Ae;t[53]===s.boardTriggerFilterApi?Ae=t[54]:(Ae=(0,$.jsx)(Re,{value:`api`,children:s.boardTriggerFilterApi}),t[53]=s.boardTriggerFilterApi,t[54]=Ae);let je;t[55]!==s.boardTriggerFilterAria||t[56]!==we||t[57]!==De||t[58]!==Oe||t[59]!==X||t[60]!==ke||t[61]!==Ae||t[62]!==v?(je=(0,$.jsxs)(pe,{value:v,"aria-label":Ce,onChange:we,className:Te,children:[De,Oe,X,ke,Ae]}),t[55]=s.boardTriggerFilterAria,t[56]=we,t[57]=De,t[58]=Oe,t[59]=X,t[60]=ke,t[61]=Ae,t[62]=v,t[63]=je):je=t[63];let Me=s.boardWorkflowFilterAria,Ne;t[64]===_?Ne=t[65]:(Ne=e=>_(e.target.value),t[64]=_,t[65]=Ne);let Fe;t[66]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=i(`h-9 min-w-40 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,te.focusRingPanel),t[66]=Fe):Fe=t[66];let Ie;t[67]===s.boardWorkflowFilterAll?Ie=t[68]:(Ie=(0,$.jsx)(Re,{value:``,children:s.boardWorkflowFilterAll}),t[67]=s.boardWorkflowFilterAll,t[68]=Ie);let Le;t[69]===l?Le=t[70]:(Le=l.map(Bn),t[69]=l,t[70]=Le);let ze;t[71]!==s.boardWorkflowFilterAria||t[72]!==Ne||t[73]!==Ie||t[74]!==Le||t[75]!==g?(ze=(0,$.jsxs)(pe,{value:g,"aria-label":Me,onChange:Ne,className:Fe,children:[Ie,Le]}),t[71]=s.boardWorkflowFilterAria,t[72]=Ne,t[73]=Ie,t[74]=Le,t[75]=g,t[76]=ze):ze=t[76];let Be=le===`operations`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:text-fg`,Ve;t[77]===Be?Ve=t[78]:(Ve=i(`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium transition-colors`,Be),t[77]=Be,t[78]=Ve);let He,Ue;t[79]===Symbol.for(`react.memo_cache_sentinel`)?(He=()=>ue(`operations`),Ue=(0,$.jsx)(Ee,{className:`size-3.5`,"aria-hidden":!0}),t[79]=He,t[80]=Ue):(He=t[79],Ue=t[80]);let We;t[81]!==s.viewModes.operations||t[82]!==Ve?(We=(0,$.jsxs)(`button`,{type:`button`,className:Ve,onClick:He,children:[Ue,s.viewModes.operations]}),t[81]=s.viewModes.operations,t[82]=Ve,t[83]=We):We=t[83];let Ke=le===`board`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:text-fg`,qe;t[84]===Ke?qe=t[85]:(qe=i(`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium transition-colors`,Ke),t[84]=Ke,t[85]=qe);let Je,Ye;t[86]===Symbol.for(`react.memo_cache_sentinel`)?(Je=()=>ue(`board`),Ye=(0,$.jsx)(de,{className:`size-3.5`,"aria-hidden":!0}),t[86]=Je,t[87]=Ye):(Je=t[86],Ye=t[87]);let Xe;t[88]!==s.viewModes.board||t[89]!==qe?(Xe=(0,$.jsxs)(`button`,{type:`button`,className:qe,onClick:Je,children:[Ye,s.viewModes.board]}),t[88]=s.viewModes.board,t[89]=qe,t[90]=Xe):Xe=t[90];let Ze;t[91]!==We||t[92]!==Xe?(Ze=(0,$.jsxs)(`div`,{className:`flex rounded-lg border border-edge bg-surface-muted p-0.5`,children:[We,Xe]}),t[91]=We,t[92]=Xe,t[93]=Ze):Ze=t[93];let Qe;t[94]!==xe||t[95]!==Se||t[96]!==je||t[97]!==ze||t[98]!==Ze?(Qe=(0,$.jsxs)(`section`,{className:`flex w-full flex-wrap items-center gap-2 rounded-lg border border-edge bg-surface-panel/70 px-3 py-2`,children:[xe,Se,je,ze,Ze]}),t[94]=xe,t[95]=Se,t[96]=je,t[97]=ze,t[98]=Ze,t[99]=Qe):Qe=t[99];let $e;t[100]===B?$e=t[101]:($e=B?(0,$.jsx)(`div`,{className:`w-full rounded-xl border border-emerald-500/25 bg-emerald-500/10 px-3 py-2 text-sm text-emerald-800 dark:text-emerald-200`,children:B}):null,t[100]=B,t[101]=$e);let et;t[102]!==z||t[103]!==U?(et=z??U?(0,$.jsx)(`div`,{className:`w-full rounded-xl border border-red-500/25 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:z??U}):null,t[102]=z,t[103]=U,t[104]=et):et=t[104];let tt;t[105]!==r||t[106]!==W?(tt=(0,$.jsx)(`div`,{className:`w-full`,children:(0,$.jsx)(jn,{stats:W,language:r})}),t[105]=r,t[106]=W,t[107]=tt):tt=t[107];let rt;t[108]===w?rt=t[109]:(rt=w?(0,$.jsx)(`div`,{className:`w-full rounded-xl border border-amber-500/25 bg-amber-500/10 px-3 py-2 text-sm text-amber-800 dark:text-amber-200`,children:w}):null,t[108]=w,t[109]=rt);let it=le===`operations`?(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto pb-3`,children:(0,$.jsx)(`div`,{className:`grid w-full gap-4`,children:Pn.map(e=>{let t=he.get(e)??[];return(0,$.jsxs)(`section`,{className:`rounded-lg border border-edge bg-surface-panel/60`,children:[(0,$.jsxs)(`header`,{className:`flex flex-wrap items-start justify-between gap-3 border-b border-edge-subtle px-4 py-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:s.operationSections[e].title}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:s.operationSections[e].description})]}),(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2.5 py-1 text-xs font-semibold tabular-nums text-fg-muted`,children:t.length})]}),(0,$.jsxs)(`div`,{className:`grid gap-2 p-2.5 md:grid-cols-2 xl:grid-cols-3`,children:[t.map(e=>(0,$.jsx)(pt,{run:e,language:r,localeTag:o,nowMs:me,selected:e.id===b,onOpen:T,onOpenChat:O,onCancel:e=>void K(e),onRetry:e=>void q(e)},e.id)),!H&&t.length===0?(0,$.jsx)(`div`,{className:`flex min-h-24 items-center justify-center rounded-md border border-dashed border-edge bg-surface-panel/40 px-4 py-5 text-center text-xs text-fg-subtle md:col-span-2 xl:col-span-3`,children:s.operationSections[e].empty}):null]})]},e)})})}):(0,$.jsx)(`div`,{className:`min-h-0 w-full flex-1`,children:(0,$.jsx)(vt,{runs:u,language:r,localeTag:o,labels:{boardEmptyTitle:s.boardEmptyTitle,boardEmptyHint:s.boardEmptyHint,boardStart:s.boardStart,loading:s.loading},searchQuery:d,workflowFilterId:g,triggerFilter:v,selectedRunId:b,loading:H,onOpenRun:T,onOpenRunChat:O,onCancelRun:e=>void K(e),onRetryRun:e=>void q(e),onStart:()=>j(!0)})}),at;t[110]!==Qe||t[111]!==$e||t[112]!==et||t[113]!==tt||t[114]!==rt||t[115]!==it?(at=(0,$.jsxs)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col gap-4 px-3 py-5 sm:px-5 xl:px-6`,children:[Qe,$e,et,tt,rt,it]}),t[110]=Qe,t[111]=$e,t[112]=et,t[113]=tt,t[114]=rt,t[115]=it,t[116]=at):at=t[116];let ot;if(t[117]!==l||t[118]!==x?.run){let e;t[120]===x?.run?e=t[121]:(e=e=>e.id===x?.run.definitionId,t[120]=x?.run,t[121]=e),ot=l.find(e),t[117]=l,t[118]=x?.run,t[119]=ot}else ot=t[119];let st=!!b&&C,ct;t[122]!==K||t[123]!==b?(ct=()=>{b&&K(b)},t[122]=K,t[123]=b,t[124]=ct):ct=t[124];let lt;t[125]!==q||t[126]!==b?(lt=()=>{b&&q(b)},t[125]=q,t[126]=b,t[127]=lt):lt=t[127];let ut;t[128]!==ae||t[129]!==b?(ut=e=>{b&&ae(b,e)},t[128]=ae,t[129]=b,t[130]=ut):ut=t[130];let dt;t[131]!==E||t[132]!==r||t[133]!==o||t[134]!==D||t[135]!==p||t[136]!==S||t[137]!==x||t[138]!==ot||t[139]!==st||t[140]!==ct||t[141]!==lt||t[142]!==ut?(dt=(0,$.jsx)(sn,{view:x,comparison:S,currentDefinition:ot,loading:st,language:r,localeTag:o,onCancel:ct,onRetry:lt,onReplay:ut,onOpenRunId:D,ownerAgentId:p,onClose:E}),t[131]=E,t[132]=r,t[133]=o,t[134]=D,t[135]=p,t[136]=S,t[137]=x,t[138]=ot,t[139]=st,t[140]=ct,t[141]=lt,t[142]=ut,t[143]=dt):dt=t[143];let ft;t[144]===j?ft=t[145]:(ft=()=>j(!1),t[144]=j,t[145]=ft);let mt;t[146]!==j||t[147]!==N?(mt=e=>{j(!1),N(e)},t[146]=j,t[147]=N,t[148]=mt):mt=t[148];let ht;t[149]!==F||t[150]!==j?(ht=e=>{j(!1),F(e)},t[149]=F,t[150]=j,t[151]=ht):ht=t[151];let gt;t[152]!==l||t[153]!==r||t[154]!==ne||t[155]!==k||t[156]!==ft||t[157]!==mt||t[158]!==ht?(gt=(0,$.jsx)(Qt,{open:k,definitions:l,language:r,onClose:ft,onPick:mt,onDetail:ht,onEdit:ne}),t[152]=l,t[153]=r,t[154]=ne,t[155]=k,t[156]=ft,t[157]=mt,t[158]=ht,t[159]=gt):gt=t[159];let _t=ee!=null,yt;t[160]===N?yt=t[161]:(yt=()=>N(null),t[160]=N,t[161]=yt);let bt;t[162]===G?bt=t[163]:(bt=e=>void G(e),t[162]=G,t[163]=bt);let xt;t[164]!==r||t[165]!==ee||t[166]!==V||t[167]!==_t||t[168]!==yt||t[169]!==bt?(xt=(0,$.jsx)(Ge,{open:_t,definition:ee,language:r,starting:V,onClose:yt,onStart:bt}),t[164]=r,t[165]=ee,t[166]=V,t[167]=_t,t[168]=yt,t[169]=bt,t[170]=xt):xt=t[170];let St=P!=null,wt;t[171]===F?wt=t[172]:(wt=()=>F(null),t[171]=F,t[172]=wt);let Tt;t[173]!==P||t[174]!==F||t[175]!==N?(Tt=()=>{P&&(F(null),N(P))},t[173]=P,t[174]=F,t[175]=N,t[176]=Tt):Tt=t[176];let Et;t[177]!==P||t[178]!==r||t[179]!==St||t[180]!==wt||t[181]!==Tt?(Et=(0,$.jsx)(Vt,{open:St,definition:P,language:r,onClose:wt,onRun:Tt}),t[177]=P,t[178]=r,t[179]=St,t[180]=wt,t[181]=Tt,t[182]=Et):Et=t[182];let Dt;t[183]===R?Dt=t[184]:(Dt=R?{mode:R.mode,name:R.initialName,script:R.initialScript,sourceTitle:R.definition.title}:null,t[183]=R,t[184]=Dt);let Ot;t[185]===L?Ot=t[186]:(Ot=()=>L(!1),t[185]=L,t[186]=Ot);let kt;t[187]===oe?kt=t[188]:(kt=e=>oe(e),t[187]=oe,t[188]=kt);let At;t[189]!==r||t[190]!==I||t[191]!==p||t[192]!==J||t[193]!==ie||t[194]!==Dt||t[195]!==Ot||t[196]!==kt?(At=(0,$.jsx)(Ct,{open:I,language:r,ownerAgentId:p,saving:ie,initialDraft:Dt,onClose:Ot,onSave:kt,onSaveAndStart:J}),t[189]=r,t[190]=I,t[191]=p,t[192]=J,t[193]=ie,t[194]=Dt,t[195]=Ot,t[196]=kt,t[197]=At):At=t[197];let jt;return t[198]!==at||t[199]!==dt||t[200]!==gt||t[201]!==xt||t[202]!==Et||t[203]!==At?(jt=(0,$.jsxs)(`main`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden bg-surface-base`,children:[at,dt,gt,xt,Et,At]}),t[198]=at,t[199]=dt,t[200]=gt,t[201]=xt,t[202]=Et,t[203]=At,t[204]=jt):jt=t[204],jt}function Bn(e){return(0,$.jsx)(Re,{value:e.id,children:e.title},e.id)}function Vn(e){return e.clearPageHeader}function Hn(e){return e.setPageHeader}function Un(){let e=o(e=>e.language),t=a(e).workflows,n=e===`zh`?`zh-CN`:`en-US`,r=s(e=>e.token),i=!!r,u=P(),[d,f]=C(),p=d.get(`q`)??``,m=d.get(`wf`)?.trim()??``,h=d.get(`trigger`)?.trim()||`all`,_=d.get(`run`)?.trim()??``,v=d.get(`agent`)?.trim()??``,[y,b]=(0,Z.useState)(null),[x,S]=(0,Z.useState)(!1),[w,D]=(0,Z.useState)(null),[O,A]=(0,Z.useState)(!1),[ee,M]=(0,Z.useState)(null),[te,F]=(0,Z.useState)(null),[I,L]=(0,Z.useState)(null),[R,ne]=(0,Z.useState)(!1),[re,z]=(0,Z.useState)(!1),B=c(i?[`workflow-agents`,r]:null,Ue,{revalidateOnFocus:!1}),V=(0,Z.useMemo)(()=>{let e=B.data?.agents??[];return v&&e.some(e=>e.id===v)||v&&e.length===0?v:B.data?.defaultId??(v||void 0)},[B.data,v]),H=c(i?[`workflow-definitions`,r]:null,l,{revalidateOnFocus:!1}),U=c(i&&V?[`workflow-runs`,r,V]:null,()=>le(100,{ownerAgentId:V}),{revalidateOnFocus:!1,refreshInterval:e=>e?.length&&e.some(e=>e.status===`queued`||e.status===`running`)?3e3:0}),G=c(i&&V?[`workflow-stats`,r,V,m]:null,()=>W(m,{ownerAgentId:V}),{revalidateOnFocus:!1});(0,Z.useEffect)(()=>{if(!I)return;let e=window.setTimeout(()=>L(null),4e3);return()=>window.clearTimeout(e)},[I]);let K=H.data??[],q=B.data?.agents??[],ae=U.data??[],se=_||null,ce=je(se,{ownerAgentId:V}),ue=c(i&&V&&se&&ce.view?.run.metadata?.replay?[`workflow-run-comparison`,r,V,se]:null,()=>ie(se,{ownerAgentId:V}),{revalidateOnFocus:!1}),de=(0,Z.useMemo)(()=>fe(K,p,`all`,`all`),[K,p]),pe=(0,Z.useCallback)(e=>{e&&M(null),A(e)},[]),me=(0,Z.useCallback)(e=>{let t=new Set(K.map(e=>e.name)),n=`${e.name}_copy`;if(!t.has(n))return n;for(let e=2;e<100;e+=1){let r=`${n}_${e}`;if(!t.has(r))return r}return`${n}_${Date.now()}`},[K]),he=(0,Z.useCallback)((e,n)=>{let r=e.runtime?.source??``;if(!r.trim()){F(t.editWorkflowSourceMissing);return}let i=n??(e.metadata.source===`user`?`edit`:`copy`),a=i===`edit`?e.name:me(e);F(null),S(!1),M({mode:i,definition:e,initialName:a,initialScript:i===`copy`?Wn(r,a):r}),A(!0)},[me,t.editWorkflowSourceMissing]),Y=(0,Z.useCallback)(e=>{f(t=>{let n=new URLSearchParams(t);return e(n,t),n},{replace:!0})},[f]);(0,Z.useEffect)(()=>{let e=B.data?.agents??[];!v||e.length===0||e.some(e=>e.id===v)||Y(e=>{B.data?.defaultId?e.set(ye,B.data.defaultId):e.delete(ye),e.delete(`run`)})},[B.data,v,Y]);let ge=(0,Z.useCallback)(e=>{Y(t=>{let n=e.trim();n?t.set(`q`,n):t.delete(`q`)})},[Y]),_e=(0,Z.useCallback)(e=>{Y(t=>{let n=e.trim();n?t.set(ye,n):t.delete(ye),t.delete(`run`)})},[Y]),ve=(0,Z.useCallback)(e=>{Y(t=>{let n=e.trim();n?t.set(`wf`,n):t.delete(`wf`)})},[Y]),be=(0,Z.useCallback)(e=>{Y(t=>{let n=e.trim();n&&n!==`all`?t.set(N,n):t.delete(N)})},[Y]),xe=(0,Z.useCallback)(e=>{Y(t=>{V&&t.set(ye,V),t.set(`run`,e.id)})},[V,Y]),Se=(0,Z.useCallback)(()=>{Y(e=>{e.delete(`run`)})},[Y]),Ce=(0,Z.useCallback)(e=>{Y(t=>{V&&t.set(ye,V),t.set(`run`,e)})},[V,Y]),Te=(0,Z.useCallback)(e=>{let t=Ye(e);t&&u(g(t))},[u]);(0,Z.useEffect)(()=>{d.get(`tab`)&&Y(e=>{e.delete(`tab`)})},[Y,d]),(0,Z.useEffect)(()=>{let e=d.get(`def`),t=d.get(j)===`1`,n=d.get(k)===`1`;if(!e||!K.length)return;let r=K.find(t=>t.id===e||t.name===e);r&&(n?he(r,`copy`):t?b(r):D(r),Y(e=>{e.delete(`def`),e.delete(j),e.delete(k)}))},[K,he,Y,d]),(0,Z.useEffect)(()=>{let e=()=>{U.mutate(),G.mutate()};return window.addEventListener(`workflow-event-appended`,e),window.addEventListener(`workflow-run-updated`,e),window.addEventListener(`workflow-run-error`,e),()=>{window.removeEventListener(`workflow-event-appended`,e),window.removeEventListener(`workflow-run-updated`,e),window.removeEventListener(`workflow-run-error`,e)}},[U,G]);let Ee=(0,Z.useCallback)(()=>{B.mutate(),H.mutate(),U.mutate(),G.mutate()},[B,H,U,G]),De=(0,Z.useCallback)(async e=>{if(y){ne(!0),F(null);try{let n=await oe({definitionId:y.id,goal:e.goal,input:e.input,agentId:V,concurrency:e.concurrency,maxSubagents:e.maxSubagents});b(null),await U.mutate(),await G.mutate(),L(t.startSuccess),Y(e=>{V&&e.set(ye,V),e.set(`run`,n.runId)})}catch(e){F(e instanceof Error?e.message:t.startFailed)}finally{ne(!1)}}},[t.startFailed,t.startSuccess,V,Y,U,y,G]),Oe=(0,Z.useCallback)(async e=>{try{await E(e,{ownerAgentId:V}),await U.mutate(),await G.mutate()}catch(e){let n=e instanceof Error?e.message:t.cancelFailed;if(/not active|already finished/i.test(n)){await U.mutate(),await G.mutate();return}F(n)}},[t.cancelFailed,V,U,G]),X=(0,Z.useCallback)(async e=>{try{let t=await we(e,{ownerAgentId:V});await U.mutate(),await G.mutate(),Y(e=>{V&&e.set(ye,V),e.set(`run`,t.runId)})}catch(e){F(e instanceof Error?e.message:t.retryFailed)}},[t.retryFailed,V,Y,U,G]),ke=(0,Z.useCallback)(async(e,n)=>{try{let t=await Ie(e,n,{ownerAgentId:V});await U.mutate(),await G.mutate(),Y(e=>{V&&e.set(ye,V),e.set(`run`,t.runId)})}catch(e){F(e instanceof Error?e.message:t.retryFailed)}},[t.retryFailed,V,Y,U,G]),Ae=(0,Z.useCallback)(async e=>{z(!0),F(null);try{let n=await Ne(e.name,e.script);return A(!1),M(null),await H.mutate(),L(t.saveWorkflowSuccess),n}catch(e){F(e instanceof Error?e.message:t.saveWorkflowFailed)}finally{z(!1)}},[H,t.saveWorkflowFailed,t.saveWorkflowSuccess]),Me=(0,Z.useCallback)(async e=>{z(!0),F(null);try{let n=await Ne(e.name,e.script);await H.mutate();let r=await oe({definitionId:n.id,goal:e.goal,input:{goal:e.goal},agentId:V});A(!1),M(null),await U.mutate(),await G.mutate(),L(t.startSuccess),Y(e=>{V&&e.set(ye,V),e.set(`run`,r.runId)})}catch(e){F(e instanceof Error?e.message:t.startFailed)}finally{z(!1)}},[H,t.startFailed,t.startSuccess,V,Y,U,G]),Pe=(0,Z.useCallback)(async e=>{if(e.metadata.source===`user`&&window.confirm(J(t.deleteConfirm,{name:e.name}))){F(null);try{await T(e.id),await H.mutate(),L(t.deleteWorkflowSuccess)}catch(e){F(e instanceof Error?e.message:t.deleteWorkflowFailed)}}},[H,t]),Fe=B.isLoading||H.isLoading||U.isLoading,Le=B.error?.message??H.error?.message??U.error?.message??null;return{language:e,localeTag:n,labels:t,hasToken:i,searchQuery:p,setSearchQuery:ge,ownerAgentId:V,agentOptions:q,setOwnerAgentId:_e,workflowFilterId:m,setWorkflowFilterId:ve,triggerFilter:h,setTriggerFilter:be,definitions:K,filteredDefinitions:de,runs:ae,selectedRunId:se,selectedRunView:ce.view,selectedRunComparison:ue.data,selectedRunLoading:ce.loading,selectedRunError:ce.error?.message??ue.error?.message??null,openRunDetails:xe,closeRunDetails:Se,openRunDetailsById:Ce,openRunInChat:Te,pickStartOpen:x,setPickStartOpen:S,startDefinition:y,setStartDefinition:b,detailDefinition:w,setDetailDefinition:D,manageOpen:O,setManageOpen:pe,workflowEditorDraft:ee,openWorkflowEditor:he,actionError:te,actionFeedback:I,starting:R,savingWorkflow:re,loading:Fe,error:Le,stats:G.data,refreshAll:Ee,submitStart:De,cancelRun:Oe,retryRun:X,replayRun:ke,saveCustomWorkflow:Ae,saveDraftAndStart:Me,removeCustomWorkflow:Pe}}function Wn(e,t){return e.replace(/(name\s*:\s*['"`])([^'"`]+)(['"`])/,(e,n,r,i)=>`${n}${t}${i}`)}function Gn(){let e=(0,Q.c)(2),t=Un(),n;return e[0]===t?n=e[1]:(n=(0,$.jsx)(zn,{vm:t}),e[0]=t,e[1]=n),n}export{Gn as WorkflowsPage};
@@ -1,14 +0,0 @@
1
- import type { AgentTool } from '@earendil-works/pi-agent-core';
2
- import type { GoalEvidenceRecordInput } from './goal-evidence-recorder.js';
3
- export interface EditToolDetails {
4
- diff?: string;
5
- firstChangedLine?: number;
6
- fuzzyMatchUsed?: boolean;
7
- }
8
- export interface CreateEditFileToolOptions {
9
- /** When set and the path is a bare profile filename (e.g. SOUL.md), edit under this root. */
10
- profileMarkdownRoot?: string;
11
- recordGoalEvidence?: (input: GoalEvidenceRecordInput) => Promise<void> | void;
12
- }
13
- export declare function createEditFileTool(workspace: string, options?: CreateEditFileToolOptions): AgentTool;
14
- export declare const editFileTool: AgentTool;
@@ -1,132 +0,0 @@
1
- import { checkFileSafety } from "../prompt/safety.js";
2
- import { isBareProfileMarkdownFileName, resolvePathUnderWorkspace, resolveProfileMarkdownPathIfBareName } from "./tool-paths.js";
3
- import { evaluateFilePolicy } from "../sandbox/exec-policy.js";
4
- import { fuzzyFindText, generateDiffString, normalizeForFuzzyMatch, normalizeToLF, restoreLineEndings, stripBom } from "./edit-diff.js";
5
- import { readFile, stat, writeFile } from "fs/promises";
6
- import { Type } from "@sinclair/typebox";
7
- //#region src/agent/tools/edit.ts
8
- const MAX_FILE_SIZE = 10 * 1024 * 1024;
9
- const EditFileSchema = Type.Object({
10
- path: Type.String({ description: "File path to edit" }),
11
- oldText: Type.String({ description: "Text to replace" }),
12
- newText: Type.String({ description: "Replacement text" })
13
- });
14
- function createEditFileTool(workspace, options) {
15
- return {
16
- name: "edit_file",
17
- description: "Edit file by replacing text. Relative paths are under the current agent workspace; profile Markdown (SOUL.md, etc.) is edited automatically when given by filename.",
18
- parameters: EditFileSchema,
19
- label: "✏️ Edit",
20
- async execute(_toolCallId, params, _signal) {
21
- try {
22
- const p = params;
23
- const safety = checkFileSafety("write", p.path);
24
- if (!safety.allowed) return {
25
- content: [{
26
- type: "text",
27
- text: `🚫 ${safety.message}`
28
- }],
29
- details: {}
30
- };
31
- const editsProfileFile = Boolean(options?.profileMarkdownRoot && isBareProfileMarkdownFileName(p.path));
32
- const workspaceRoot = editsProfileFile ? options.profileMarkdownRoot : workspace;
33
- const pathPolicy = evaluateFilePolicy({
34
- operation: "edit",
35
- path: p.path,
36
- workspaceRoot
37
- });
38
- if (!pathPolicy.allowed) return {
39
- content: [{
40
- type: "text",
41
- text: `🚫 Sandbox: ${pathPolicy.reason}`
42
- }],
43
- details: {}
44
- };
45
- const normalized = editsProfileFile ? resolveProfileMarkdownPathIfBareName(p.path, options.profileMarkdownRoot) : resolvePathUnderWorkspace(p.path, workspace);
46
- if ((await stat(normalized)).size > MAX_FILE_SIZE) return {
47
- content: [{
48
- type: "text",
49
- text: `🚫 File too large`
50
- }],
51
- details: {}
52
- };
53
- const rawContent = await readFile(normalized, "utf-8");
54
- const content = stripBom(rawContent);
55
- const lineEnding = detectLineEnding(rawContent);
56
- const normalizedContent = normalizeToLF(content);
57
- const normalizedOldText = normalizeToLF(p.oldText);
58
- const normalizedNewText = normalizeToLF(p.newText);
59
- const matchResult = fuzzyFindText(normalizedContent, normalizedOldText);
60
- if (!matchResult.found) return {
61
- content: [{
62
- type: "text",
63
- text: `Error: oldText not found`
64
- }],
65
- details: {}
66
- };
67
- const fuzzyContent = normalizeForFuzzyMatch(normalizedContent);
68
- const fuzzyOldText = normalizeForFuzzyMatch(normalizedOldText);
69
- const occurrences = fuzzyContent.split(fuzzyOldText).length - 1;
70
- if (occurrences > 1) return {
71
- content: [{
72
- type: "text",
73
- text: `Error: ${occurrences} occurrences found, text must be unique`
74
- }],
75
- details: {}
76
- };
77
- const baseContent = matchResult.contentForReplacement;
78
- const finalContent = restoreLineEndings(baseContent.substring(0, matchResult.index) + normalizedNewText + baseContent.substring(matchResult.index + matchResult.matchLength), lineEnding);
79
- const originalWithReplacement = restoreLineEndings(baseContent, lineEnding);
80
- if (originalWithReplacement === finalContent) return {
81
- content: [{
82
- type: "text",
83
- text: `Error: No changes`
84
- }],
85
- details: {}
86
- };
87
- const diffResult = generateDiffString(originalWithReplacement, finalContent, normalized);
88
- await writeFile(normalized, finalContent, "utf-8");
89
- await options?.recordGoalEvidence?.({
90
- kind: "diff",
91
- title: `File edited: ${normalized}`,
92
- summary: diffResult.slice(0, 4e3),
93
- uri: normalized,
94
- data: {
95
- path: normalized,
96
- fuzzyMatchUsed: matchResult.usedFuzzyMatch
97
- }
98
- });
99
- return {
100
- content: [{
101
- type: "text",
102
- text: `File edited: ${normalized}`
103
- }],
104
- details: {
105
- diff: diffResult,
106
- fuzzyMatchUsed: matchResult.usedFuzzyMatch
107
- }
108
- };
109
- } catch (error) {
110
- return {
111
- content: [{
112
- type: "text",
113
- text: `Error: ${error instanceof Error ? error.message : String(error)}`
114
- }],
115
- details: {}
116
- };
117
- }
118
- }
119
- };
120
- }
121
- const editFileTool = createEditFileTool(process.cwd());
122
- function detectLineEnding(content) {
123
- const crlfIdx = content.indexOf("\r\n");
124
- const lfIdx = content.indexOf("\n");
125
- if (lfIdx === -1) return "\n";
126
- if (crlfIdx === -1) return "\n";
127
- return crlfIdx < lfIdx ? "\r\n" : "\n";
128
- }
129
- //#endregion
130
- export { createEditFileTool, editFileTool };
131
-
132
- //# sourceMappingURL=edit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"edit.js","names":[],"sources":["../../../../src/agent/tools/edit.ts"],"sourcesContent":["// Edit file tool\nimport { Type } from '@sinclair/typebox';\nimport type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core';\nimport { readFile, writeFile, stat } from 'fs/promises';\nimport { checkFileSafety } from '../prompt/safety.js';\nimport {\n isBareProfileMarkdownFileName,\n resolveProfileMarkdownPathIfBareName,\n resolvePathUnderWorkspace,\n} from './tool-paths.js';\nimport { evaluateFilePolicy } from '../sandbox/exec-policy.js';\nimport { normalizeToLF, restoreLineEndings, normalizeForFuzzyMatch, fuzzyFindText, stripBom, generateDiffString } from './edit-diff.js';\nimport type { GoalEvidenceRecordInput } from './goal-evidence-recorder.js';\n\nconst MAX_FILE_SIZE = 10 * 1024 * 1024;\n\nconst EditFileSchema = Type.Object({\n path: Type.String({ description: 'File path to edit' }),\n oldText: Type.String({ description: 'Text to replace' }),\n newText: Type.String({ description: 'Replacement text' }),\n});\n\nexport interface EditToolDetails {\n diff?: string;\n firstChangedLine?: number;\n fuzzyMatchUsed?: boolean;\n}\n\ntype EditFileParams = { path: string; oldText: string; newText: string };\n\nexport interface CreateEditFileToolOptions {\n /** When set and the path is a bare profile filename (e.g. SOUL.md), edit under this root. */\n profileMarkdownRoot?: string;\n recordGoalEvidence?: (input: GoalEvidenceRecordInput) => Promise<void> | void;\n}\n\nexport function createEditFileTool(\n workspace: string,\n options?: CreateEditFileToolOptions,\n): AgentTool {\n return {\n name: 'edit_file',\n description:\n 'Edit file by replacing text. Relative paths are under the current agent workspace; profile Markdown (SOUL.md, etc.) is edited automatically when given by filename.',\n parameters: EditFileSchema,\n label: '✏️ Edit',\n\n async execute(\n _toolCallId: string,\n params: any,\n _signal?: AbortSignal,\n ): Promise<AgentToolResult<EditToolDetails>> {\n try {\n const p = params as EditFileParams;\n const safety = checkFileSafety('write', p.path);\n if (!safety.allowed) return { content: [{ type: 'text', text: `🚫 ${safety.message}` }], details: {} };\n\n const editsProfileFile = Boolean(\n options?.profileMarkdownRoot && isBareProfileMarkdownFileName(p.path),\n );\n const workspaceRoot = editsProfileFile ? options!.profileMarkdownRoot! : workspace;\n\n // Sandbox path-policy check (blocked dirs, symlink escape, config protection)\n const pathPolicy = evaluateFilePolicy({\n operation: 'edit',\n path: p.path,\n workspaceRoot,\n });\n if (!pathPolicy.allowed) {\n return { content: [{ type: 'text', text: `🚫 Sandbox: ${pathPolicy.reason}` }], details: {} };\n }\n\n const normalized = editsProfileFile\n ? resolveProfileMarkdownPathIfBareName(p.path, options!.profileMarkdownRoot!)\n : resolvePathUnderWorkspace(p.path, workspace);\n const stats = await stat(normalized);\n if (stats.size > MAX_FILE_SIZE) return { content: [{ type: 'text', text: `🚫 File too large` }], details: {} };\n\n const rawContent = await readFile(normalized, 'utf-8');\n const content = stripBom(rawContent);\n const lineEnding = detectLineEnding(rawContent);\n\n const normalizedContent = normalizeToLF(content);\n const normalizedOldText = normalizeToLF(p.oldText);\n const normalizedNewText = normalizeToLF(p.newText);\n\n const matchResult = fuzzyFindText(normalizedContent, normalizedOldText);\n if (!matchResult.found) return { content: [{ type: 'text', text: `Error: oldText not found` }], details: {} };\n\n const fuzzyContent = normalizeForFuzzyMatch(normalizedContent);\n const fuzzyOldText = normalizeForFuzzyMatch(normalizedOldText);\n const occurrences = fuzzyContent.split(fuzzyOldText).length - 1;\n if (occurrences > 1)\n return { content: [{ type: 'text', text: `Error: ${occurrences} occurrences found, text must be unique` }], details: {} };\n\n const baseContent = matchResult.contentForReplacement;\n const newContent =\n baseContent.substring(0, matchResult.index) +\n normalizedNewText +\n baseContent.substring(matchResult.index + matchResult.matchLength);\n const finalContent = restoreLineEndings(newContent, lineEnding);\n const originalWithReplacement = restoreLineEndings(baseContent, lineEnding);\n\n if (originalWithReplacement === finalContent)\n return { content: [{ type: 'text', text: `Error: No changes` }], details: {} };\n\n const diffResult = generateDiffString(originalWithReplacement, finalContent, normalized);\n await writeFile(normalized, finalContent, 'utf-8');\n await options?.recordGoalEvidence?.({\n kind: 'diff',\n title: `File edited: ${normalized}`,\n summary: diffResult.slice(0, 4000),\n uri: normalized,\n data: {\n path: normalized,\n fuzzyMatchUsed: matchResult.usedFuzzyMatch,\n },\n });\n\n return {\n content: [{ type: 'text', text: `File edited: ${normalized}` }],\n details: { diff: diffResult, fuzzyMatchUsed: matchResult.usedFuzzyMatch },\n };\n } catch (error) {\n return {\n content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }],\n details: {},\n };\n }\n },\n } as any;\n}\n\nexport const editFileTool: AgentTool = createEditFileTool(process.cwd());\n\nfunction detectLineEnding(content: string): '\\r\\n' | '\\n' {\n const crlfIdx = content.indexOf('\\r\\n');\n const lfIdx = content.indexOf('\\n');\n if (lfIdx === -1) return '\\n';\n if (crlfIdx === -1) return '\\n';\n return crlfIdx < lfIdx ? '\\r\\n' : '\\n';\n}\n"],"mappings":";;;;;;;AAcA,MAAM,gBAAgB,KAAK,OAAO;AAElC,MAAM,iBAAiB,KAAK,OAAO;CACjC,MAAM,KAAK,OAAO,EAAE,aAAa,qBAAqB,CAAC;CACvD,SAAS,KAAK,OAAO,EAAE,aAAa,mBAAmB,CAAC;CACxD,SAAS,KAAK,OAAO,EAAE,aAAa,oBAAoB,CAAC;CAC1D,CAAC;AAgBF,SAAgB,mBACd,WACA,SACW;AACX,QAAO;EACL,MAAM;EACN,aACE;EACF,YAAY;EACZ,OAAO;EAEP,MAAM,QACJ,aACA,QACA,SAC2C;AAC3C,OAAI;IACF,MAAM,IAAI;IACV,MAAM,SAAS,gBAAgB,SAAS,EAAE,KAAK;AAC/C,QAAI,CAAC,OAAO,QAAS,QAAO;KAAE,SAAS,CAAC;MAAE,MAAM;MAAQ,MAAM,MAAM,OAAO;MAAW,CAAC;KAAE,SAAS,EAAE;KAAE;IAEtG,MAAM,mBAAmB,QACvB,SAAS,uBAAuB,8BAA8B,EAAE,KAAK,CACtE;IACD,MAAM,gBAAgB,mBAAmB,QAAS,sBAAuB;IAGzE,MAAM,aAAa,mBAAmB;KACpC,WAAW;KACX,MAAM,EAAE;KACR;KACD,CAAC;AACF,QAAI,CAAC,WAAW,QACd,QAAO;KAAE,SAAS,CAAC;MAAE,MAAM;MAAQ,MAAM,eAAe,WAAW;MAAU,CAAC;KAAE,SAAS,EAAE;KAAE;IAG/F,MAAM,aAAa,mBACf,qCAAqC,EAAE,MAAM,QAAS,oBAAqB,GAC3E,0BAA0B,EAAE,MAAM,UAAU;AAEhD,SAAI,MADgB,KAAK,WAAW,EAC1B,OAAO,cAAe,QAAO;KAAE,SAAS,CAAC;MAAE,MAAM;MAAQ,MAAM;MAAqB,CAAC;KAAE,SAAS,EAAE;KAAE;IAE9G,MAAM,aAAa,MAAM,SAAS,YAAY,QAAQ;IACtD,MAAM,UAAU,SAAS,WAAW;IACpC,MAAM,aAAa,iBAAiB,WAAW;IAE/C,MAAM,oBAAoB,cAAc,QAAQ;IAChD,MAAM,oBAAoB,cAAc,EAAE,QAAQ;IAClD,MAAM,oBAAoB,cAAc,EAAE,QAAQ;IAElD,MAAM,cAAc,cAAc,mBAAmB,kBAAkB;AACvE,QAAI,CAAC,YAAY,MAAO,QAAO;KAAE,SAAS,CAAC;MAAE,MAAM;MAAQ,MAAM;MAA4B,CAAC;KAAE,SAAS,EAAE;KAAE;IAE7G,MAAM,eAAe,uBAAuB,kBAAkB;IAC9D,MAAM,eAAe,uBAAuB,kBAAkB;IAC9D,MAAM,cAAc,aAAa,MAAM,aAAa,CAAC,SAAS;AAC9D,QAAI,cAAc,EAChB,QAAO;KAAE,SAAS,CAAC;MAAE,MAAM;MAAQ,MAAM,UAAU,YAAY;MAA0C,CAAC;KAAE,SAAS,EAAE;KAAE;IAE3H,MAAM,cAAc,YAAY;IAKhC,MAAM,eAAe,mBAHnB,YAAY,UAAU,GAAG,YAAY,MAAM,GAC3C,oBACA,YAAY,UAAU,YAAY,QAAQ,YAAY,YAAY,EAChB,WAAW;IAC/D,MAAM,0BAA0B,mBAAmB,aAAa,WAAW;AAE3E,QAAI,4BAA4B,aAC9B,QAAO;KAAE,SAAS,CAAC;MAAE,MAAM;MAAQ,MAAM;MAAqB,CAAC;KAAE,SAAS,EAAE;KAAE;IAEhF,MAAM,aAAa,mBAAmB,yBAAyB,cAAc,WAAW;AACxF,UAAM,UAAU,YAAY,cAAc,QAAQ;AAClD,UAAM,SAAS,qBAAqB;KAClC,MAAM;KACN,OAAO,gBAAgB;KACvB,SAAS,WAAW,MAAM,GAAG,IAAK;KAClC,KAAK;KACL,MAAM;MACJ,MAAM;MACN,gBAAgB,YAAY;MAC7B;KACF,CAAC;AAEF,WAAO;KACL,SAAS,CAAC;MAAE,MAAM;MAAQ,MAAM,gBAAgB;MAAc,CAAC;KAC/D,SAAS;MAAE,MAAM;MAAY,gBAAgB,YAAY;MAAgB;KAC1E;YACM,OAAO;AACd,WAAO;KACL,SAAS,CAAC;MAAE,MAAM;MAAQ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;MAAI,CAAC;KACrG,SAAS,EAAE;KACZ;;;EAGN;;AAGH,MAAa,eAA0B,mBAAmB,QAAQ,KAAK,CAAC;AAExE,SAAS,iBAAiB,SAAgC;CACxD,MAAM,UAAU,QAAQ,QAAQ,OAAO;CACvC,MAAM,QAAQ,QAAQ,QAAQ,KAAK;AACnC,KAAI,UAAU,GAAI,QAAO;AACzB,KAAI,YAAY,GAAI,QAAO;AAC3B,QAAO,UAAU,QAAQ,SAAS"}
@@ -1,15 +0,0 @@
1
- import type { AgentTool } from '@earendil-works/pi-agent-core';
2
- import type { GoalEvidenceRecordInput } from './goal-evidence-recorder.js';
3
- export interface ShellDetails {
4
- exitCode: number | null;
5
- timedOut: boolean;
6
- truncated: boolean;
7
- truncatedBy?: 'lines' | 'bytes';
8
- outputBytes?: number;
9
- }
10
- export interface CreateShellToolOptions {
11
- /** Env var names allowed through {@link prepareSafeToolEnv} even if they match secret heuristics (skill passthrough). */
12
- getSkillPassthroughEnvVarNames?: () => string[];
13
- recordGoalEvidence?: (input: GoalEvidenceRecordInput) => Promise<void> | void;
14
- }
15
- export declare function createShellTool(cwd: string, options?: CreateShellToolOptions): AgentTool;