@xopcai/xopc 0.0.113 → 0.0.115

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 (567) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
  3. package/dist/extensions/feishu/src/workflow-progress.js +1 -1
  4. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
  5. package/dist/extensions/telegram/src/inbound-processor.js +1 -1
  6. package/dist/extensions/telegram/src/plugin.js +1 -1
  7. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  8. package/dist/extensions/telegram/src/update-offset-store.js +1 -1
  9. package/dist/extensions/telegram/src/workflow-progress.js +1 -1
  10. package/dist/extensions/telegram/xopc.extension.json +1 -1
  11. package/dist/extensions/weixin/src/api/api.js +2 -2
  12. package/dist/extensions/weixin/src/auth/accounts.js +1 -1
  13. package/dist/extensions/weixin/src/cdn/upload.js +1 -1
  14. package/dist/extensions/weixin/src/media/data-url.js +1 -1
  15. package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
  16. package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
  17. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  18. package/dist/extensions/weixin/src/plugin.js +1 -1
  19. package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
  20. package/dist/extensions/weixin/src/workflow-progress.js +1 -1
  21. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CBlklyNr.js → agent-avatar-dicebear-DVnBfANm.js} +1 -1
  22. package/dist/gateway/static/root/assets/agent-browser-settings-page-DPXc4hz8.js +6 -0
  23. package/dist/gateway/static/root/assets/agent-defaults-tabbed-page-CTJ0YnRQ.js +1 -0
  24. package/dist/gateway/static/root/assets/agents-zJXQfJ_W.js +71 -0
  25. package/dist/gateway/static/root/assets/{app-management-settings-panel-28E_WfMe.js → app-management-settings-panel-DzGbdr04.js} +1 -1
  26. package/dist/gateway/static/root/assets/{appearance-settings-Do1z0XgJ.js → appearance-settings-BQpPSTHD.js} +1 -1
  27. package/dist/gateway/static/root/assets/apps-page-CPjfyzSD.js +1 -0
  28. package/dist/gateway/static/root/assets/{archive-plugin-BAFlsov_.js → archive-plugin-CXu-Csep.js} +1 -1
  29. package/dist/gateway/static/root/assets/{attachment-load-V3qGPC3x.js → attachment-load-BAjgOoGY.js} +1 -1
  30. package/dist/gateway/static/root/assets/{binary-plugins-DT8NvA6W.js → binary-plugins-BSBgB2hO.js} +1 -1
  31. package/dist/gateway/static/root/assets/{block-editor-CdLMEcHd.js → block-editor-BpXw9TTR.js} +3 -3
  32. package/dist/gateway/static/root/assets/channels-settings-BbPUpzWB.js +1 -0
  33. package/dist/gateway/static/root/assets/{config-api-Bf5mjpu7.js → config-api-NOoPiIYz.js} +1 -1
  34. package/dist/gateway/static/root/assets/connectors-settings-CAXYMOdp.js +2 -0
  35. package/dist/gateway/static/root/assets/{cron-api--pAB_rps.js → cron-api-C9BOqAXd.js} +1 -1
  36. package/dist/gateway/static/root/assets/cron-page-DuUbBeKI.js +3 -0
  37. package/dist/gateway/static/root/assets/{dreaming-settings-6UZE1FSK.js → dreaming-settings-DQ4DtiK1.js} +1 -1
  38. package/dist/gateway/static/root/assets/{extension-debug-page-BGhE7msg.js → extension-debug-page-D9kgUHCc.js} +1 -1
  39. package/dist/gateway/static/root/assets/{extension-page-CvpI45WG.js → extension-page-CGyhXqzR.js} +1 -1
  40. package/dist/gateway/static/root/assets/{extension-settings-page-DAmR5FUe.js → extension-settings-page-DL8Xquqd.js} +1 -1
  41. package/dist/gateway/static/root/assets/{fetch-NZmjSXLl.js → fetch-D0VXA932.js} +1 -1
  42. package/dist/gateway/static/root/assets/{format-interval-label-qhth3BMV.js → format-interval-label-Be8SmgUw.js} +1 -1
  43. package/dist/gateway/static/root/assets/{gateway-config-api-CaXBt-9R.js → gateway-config-api-C-xjn__h.js} +1 -1
  44. package/dist/gateway/static/root/assets/{gateway-settings-DphpbLBc.js → gateway-settings-BMPwIjKI.js} +1 -1
  45. package/dist/gateway/static/root/assets/{gateway-startup-retry-Be1omjh3.js → gateway-startup-retry-DERUH61L.js} +1 -1
  46. package/dist/gateway/static/root/assets/goal-detail-page-BJsyjJnF.js +1 -0
  47. package/dist/gateway/static/root/assets/goals-config-api-BPmqWk90.js +1 -0
  48. package/dist/gateway/static/root/assets/goals-page-BerDgIhw.js +2 -0
  49. package/dist/gateway/static/root/assets/goals-settings-ByTjeAto.js +1 -0
  50. package/dist/gateway/static/root/assets/{heartbeat-config-api-BzO6G4fD.js → heartbeat-config-api-Bfdzr8oV.js} +1 -1
  51. package/dist/gateway/static/root/assets/{heartbeat-settings-DCST9-du.js → heartbeat-settings-TbHgcjTn.js} +1 -1
  52. package/dist/gateway/static/root/assets/index-AkTrf6Pb.js +122 -0
  53. package/dist/gateway/static/root/assets/index-fh5sXTj9.css +1 -0
  54. package/dist/gateway/static/root/assets/{interval-presets-DJmshV8n.js → interval-presets-utKbuCRY.js} +1 -1
  55. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-9AUUlQ5Q.js → keyboard-shortcuts-settings-CjqS6c6V.js} +1 -1
  56. package/dist/gateway/static/root/assets/logs-page-DGXuPf5B.js +2 -0
  57. package/dist/gateway/static/root/assets/{markdown-split-CYYELqAr.js → markdown-split-DW8C47iB.js} +1 -1
  58. package/dist/gateway/static/root/assets/{media-plugins-BEcMR2M8.js → media-plugins-D6HwDhDT.js} +1 -1
  59. package/dist/gateway/static/root/assets/messages-upgxw6Ub.js +3 -0
  60. package/dist/gateway/static/root/assets/models-hub-panel-Bot16nn7.js +2 -0
  61. package/dist/gateway/static/root/assets/note-detail-page-Brlyou8M.js +2 -0
  62. package/dist/gateway/static/root/assets/{note-image-lightbox-DNAoPcmm.js → note-image-lightbox-pJM35Pz5.js} +1 -1
  63. package/dist/gateway/static/root/assets/notes-page-DvZ4pwc-.js +1 -0
  64. package/dist/gateway/static/root/assets/{preview-open-alternatives-BPLz0AIv.js → preview-open-alternatives-CVwHuyN6.js} +1 -1
  65. package/dist/gateway/static/root/assets/remote-access-hub-BZEDmxbZ.js +1 -0
  66. package/dist/gateway/static/root/assets/{save-bar-controls-CrWwWRVK.js → save-bar-controls-Ba-UEk7x.js} +1 -1
  67. package/dist/gateway/static/root/assets/{schedule-field-CF2sadvN.js → schedule-field-CNN9595U.js} +1 -1
  68. package/dist/gateway/static/root/assets/{schema-form-Di5cKjYE.js → schema-form-DnNMmtD5.js} +1 -1
  69. package/dist/gateway/static/root/assets/sessions-page-DdGGlsfn.js +1 -0
  70. package/dist/gateway/static/root/assets/settings-advanced-gate-DlkEkPf9.js +1 -0
  71. package/dist/gateway/static/root/assets/{settings-collapsible-section-Chh282jW.js → settings-collapsible-section-CmOz80i5.js} +1 -1
  72. package/dist/gateway/static/root/assets/{settings-form-section-Dq-83cQd.js → settings-form-section-BmK7JJOV.js} +1 -1
  73. package/dist/gateway/static/root/assets/settings-page-DFPTrsPF.js +1 -0
  74. package/dist/gateway/static/root/assets/setup-status-panel-CYCCfgh4.js +1 -0
  75. package/dist/gateway/static/root/assets/{share-preview-page-0FXYnSUA.js → share-preview-page-Dp2qGrHC.js} +1 -1
  76. package/dist/gateway/static/root/assets/shares-settings-Bff1pGd0.js +1 -0
  77. package/dist/gateway/static/root/assets/skill-reload-api-CJGKpBur.js +1 -0
  78. package/dist/gateway/static/root/assets/skills-page-C6ocduTD.js +2 -0
  79. package/dist/gateway/static/root/assets/{system-settings-panel-W1pTcojB.js → system-settings-panel-5jrIEr5b.js} +1 -1
  80. package/dist/gateway/static/root/assets/{use-agent-defaults-form-BVRvkK7m.js → use-agent-defaults-form-BuiXLIs5.js} +1 -1
  81. package/dist/gateway/static/root/assets/{use-channel-catalog-CgJibfMM.js → use-channel-catalog-CHlO8J9G.js} +1 -1
  82. package/dist/gateway/static/root/assets/{use-settings-tab-guard-Bw_qkRQE.js → use-settings-tab-guard-CW5JORnl.js} +1 -1
  83. package/dist/gateway/static/root/assets/voice-api-key-field-DDoQyghO.js +1 -0
  84. package/dist/gateway/static/root/assets/{voice-player-store-C7lziaAx.js → voice-player-store-DDDWYHvg.js} +1 -1
  85. package/dist/gateway/static/root/assets/workflow-page.utils-CKjeEGqx.js +1 -0
  86. package/dist/gateway/static/root/assets/workflows-page-B604ehHG.js +18 -0
  87. package/dist/gateway/static/root/index.html +5 -5
  88. package/dist/gateway/static/root/logo.svg +4 -3
  89. package/dist/package.js +1 -1
  90. package/dist/src/agent/agent-manager.d.ts +8 -0
  91. package/dist/src/agent/agent-manager.js +63 -28
  92. package/dist/src/agent/agent-manager.js.map +1 -1
  93. package/dist/src/agent/agent-scope.js +1 -1
  94. package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
  95. package/dist/src/agent/bootstrap/project-agents-context.d.ts +2 -0
  96. package/dist/src/agent/bootstrap/project-agents-context.js +32 -0
  97. package/dist/src/agent/bootstrap/project-agents-context.js.map +1 -0
  98. package/dist/src/agent/context/workspace-seed.js +2 -2
  99. package/dist/src/agent/context/workspace-state.js +1 -1
  100. package/dist/src/agent/context/workspace.js +1 -1
  101. package/dist/src/agent/embedded/session-tool-result-guard.js +8 -1
  102. package/dist/src/agent/embedded/session-tool-result-guard.js.map +1 -1
  103. package/dist/src/agent/goals/checklist-judge.d.ts +1 -0
  104. package/dist/src/agent/goals/checklist-judge.js +3 -2
  105. package/dist/src/agent/goals/checklist-judge.js.map +1 -1
  106. package/dist/src/agent/goals/evaluate-turn.d.ts +1 -1
  107. package/dist/src/agent/goals/evaluate-turn.js +1 -0
  108. package/dist/src/agent/goals/evaluate-turn.js.map +1 -1
  109. package/dist/src/agent/goals/goal-locale.js +2 -2
  110. package/dist/src/agent/goals/persistent-goal-service.js +2 -4
  111. package/dist/src/agent/goals/persistent-goal-service.js.map +1 -1
  112. package/dist/src/agent/goals/post-turn.d.ts +6 -1
  113. package/dist/src/agent/goals/post-turn.js +15 -6
  114. package/dist/src/agent/goals/post-turn.js.map +1 -1
  115. package/dist/src/agent/image/load-image-media.js +2 -2
  116. package/dist/src/agent/inbound/inbound-loop.js +5 -1
  117. package/dist/src/agent/inbound/inbound-loop.js.map +1 -1
  118. package/dist/src/agent/inbound/turn-dispatcher.d.ts +2 -2
  119. package/dist/src/agent/inbound/turn-dispatcher.js +2 -2
  120. package/dist/src/agent/inbound/turn-dispatcher.js.map +1 -1
  121. package/dist/src/agent/ipc/inbox.js +3 -3
  122. package/dist/src/agent/ipc/socket.js +1 -1
  123. package/dist/src/agent/mcp/bundle-mcp-materialize.d.ts +27 -0
  124. package/dist/src/agent/mcp/bundle-mcp-materialize.js +50 -2
  125. package/dist/src/agent/mcp/bundle-mcp-materialize.js.map +1 -1
  126. package/dist/src/agent/mcp/bundle-mcp-runtime.js +79 -4
  127. package/dist/src/agent/mcp/bundle-mcp-runtime.js.map +1 -1
  128. package/dist/src/agent/mcp/bundle-mcp-types.d.ts +19 -0
  129. package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
  130. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  131. package/dist/src/agent/memory/builtin-memory-store.js +1 -1
  132. package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
  133. package/dist/src/agent/memory/dreaming/events.js +1 -1
  134. package/dist/src/agent/memory/dreaming/last-run.js +1 -1
  135. package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
  136. package/dist/src/agent/memory/dreaming/preview.js +1 -1
  137. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  138. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  139. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  140. package/dist/src/agent/memory/memory-flush.js +1 -1
  141. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  142. package/dist/src/agent/models/manager.js +1 -1
  143. package/dist/src/agent/prompt/memory/index.js +1 -1
  144. package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
  145. package/dist/src/agent/reply/post-compaction-context.js +1 -1
  146. package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
  147. package/dist/src/agent/sandbox/path-policy.js +2 -2
  148. package/dist/src/agent/service/btw-query.js +11 -3
  149. package/dist/src/agent/service/btw-query.js.map +1 -1
  150. package/dist/src/agent/service/parse-outbound-session-key.js +13 -8
  151. package/dist/src/agent/service/parse-outbound-session-key.js.map +1 -1
  152. package/dist/src/agent/service/process-direct-one-shot.d.ts +2 -2
  153. package/dist/src/agent/service/process-direct-one-shot.js +1 -1
  154. package/dist/src/agent/service/process-direct-one-shot.js.map +1 -1
  155. package/dist/src/agent/service/process-direct-streaming.d.ts +2 -2
  156. package/dist/src/agent/service/process-direct-streaming.js +1 -1
  157. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  158. package/dist/src/agent/service.d.ts +1 -1
  159. package/dist/src/agent/service.js +13 -9
  160. package/dist/src/agent/service.js.map +1 -1
  161. package/dist/src/agent/service.types.d.ts +5 -0
  162. package/dist/src/agent/session/session-inspector.js +1 -1
  163. package/dist/src/agent/skills/config.js +2 -2
  164. package/dist/src/agent/skills/filesystem-watcher.js +5 -4
  165. package/dist/src/agent/skills/filesystem-watcher.js.map +1 -1
  166. package/dist/src/agent/skills/hub-hash.js +2 -2
  167. package/dist/src/agent/skills/hub-lock.js +1 -1
  168. package/dist/src/agent/skills/hub-pull.js +2 -2
  169. package/dist/src/agent/skills/index.js +4 -3
  170. package/dist/src/agent/skills/index.js.map +1 -1
  171. package/dist/src/agent/skills/installer.js +2 -2
  172. package/dist/src/agent/skills/managed-store.js +1 -1
  173. package/dist/src/agent/skills/skill-manage-ops.js +3 -2
  174. package/dist/src/agent/skills/skill-manage-ops.js.map +1 -1
  175. package/dist/src/agent/skills/skill-manager.js +1 -1
  176. package/dist/src/agent/skills/skill-view-path.js +1 -1
  177. package/dist/src/agent/skills/test-framework.js +1 -1
  178. package/dist/src/agent/skills/types.d.ts +1 -1
  179. package/dist/src/agent/skills/watcher.js +2 -5
  180. package/dist/src/agent/skills/watcher.js.map +1 -1
  181. package/dist/src/agent/skills/workspace-skills-dir.d.ts +1 -0
  182. package/dist/src/agent/skills/workspace-skills-dir.js +11 -0
  183. package/dist/src/agent/skills/workspace-skills-dir.js.map +1 -0
  184. package/dist/src/agent/starter-agents.js +1 -1
  185. package/dist/src/agent/tool-manuals/browser.d.ts +1 -1
  186. package/dist/src/agent/tool-manuals/browser.js +62 -3
  187. package/dist/src/agent/tool-manuals/browser.js.map +1 -1
  188. package/dist/src/agent/tools/browser/tool/browser-use-tool.d.ts +4 -1
  189. package/dist/src/agent/tools/browser/tool/browser-use-tool.js +13 -4
  190. package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +1 -1
  191. package/dist/src/agent/tools/browser/tool/schemas.d.ts +0 -2
  192. package/dist/src/agent/tools/browser/tool/schemas.js +1 -2
  193. package/dist/src/agent/tools/browser/tool/schemas.js.map +1 -1
  194. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  195. package/dist/src/agent/tools/factory.js +1 -10
  196. package/dist/src/agent/tools/factory.js.map +1 -1
  197. package/dist/src/agent/tools/find.js +1 -1
  198. package/dist/src/agent/tools/grep.js +1 -1
  199. package/dist/src/agent/tools/image-generate-tool.js +1 -1
  200. package/dist/src/agent/tools/skill-manage-tool.js +2 -2
  201. package/dist/src/agent/tools/skill-manage-tool.js.map +1 -1
  202. package/dist/src/agent/tools/workflow-tool.js +1 -1
  203. package/dist/src/agent/workflow/catalog.js +1 -1
  204. package/dist/src/agent/workflow/snapshot.d.ts +10 -0
  205. package/dist/src/agent/workflow/snapshot.js +136 -1
  206. package/dist/src/agent/workflow/snapshot.js.map +1 -1
  207. package/dist/src/agent/workflow/subagent-runner.js +18 -1
  208. package/dist/src/agent/workflow/subagent-runner.js.map +1 -1
  209. package/dist/src/ai-assist/text-assist.js +1 -1
  210. package/dist/src/auth/credentials.js +2 -2
  211. package/dist/src/auth/profiles/store.js +2 -2
  212. package/dist/src/auth/sync-provider-auth.js +1 -1
  213. package/dist/src/browser/actions/extension-registry-bridge.js +91 -7
  214. package/dist/src/browser/actions/extension-registry-bridge.js.map +1 -1
  215. package/dist/src/browser/actions/registry.js +383 -7
  216. package/dist/src/browser/actions/registry.js.map +1 -1
  217. package/dist/src/browser/actions/types.d.ts +11 -3
  218. package/dist/src/browser/cache-dir-policy.js +1 -1
  219. package/dist/src/browser/cdp-local-launcher.js +2 -2
  220. package/dist/src/browser/index.js +2 -2
  221. package/dist/src/browser/pipeline/output.d.ts +18 -16
  222. package/dist/src/browser/pipeline/output.js +28 -20
  223. package/dist/src/browser/pipeline/output.js.map +1 -1
  224. package/dist/src/browser/pipeline/runner.d.ts +7 -14
  225. package/dist/src/browser/pipeline/runner.js +349 -102
  226. package/dist/src/browser/pipeline/runner.js.map +1 -1
  227. package/dist/src/browser/pipeline/schema.d.ts +1 -0
  228. package/dist/src/browser/pipeline/schema.js +35 -58
  229. package/dist/src/browser/pipeline/schema.js.map +1 -1
  230. package/dist/src/browser/pipeline/source.d.ts +2 -0
  231. package/dist/src/browser/pipeline/source.js +10 -1
  232. package/dist/src/browser/pipeline/source.js.map +1 -1
  233. package/dist/src/browser/pipeline/template.d.ts +10 -2
  234. package/dist/src/browser/pipeline/template.js +50 -8
  235. package/dist/src/browser/pipeline/template.js.map +1 -1
  236. package/dist/src/browser/providers/browser-ext-install.js +4 -4
  237. package/dist/src/browser/providers/cloakbrowser.js +5 -5
  238. package/dist/src/browser/providers/playwright-doctor.js +1 -1
  239. package/dist/src/browser/stealth.js +1 -1
  240. package/dist/src/channels/catalog/channel-catalog-service.d.ts +2 -1
  241. package/dist/src/channels/catalog/channel-catalog-service.js +133 -16
  242. package/dist/src/channels/catalog/channel-catalog-service.js.map +1 -1
  243. package/dist/src/channels/catalog/channel-catalog-types.d.ts +13 -0
  244. package/dist/src/channels/outbound/persist-store.js +1 -1
  245. package/dist/src/channels/pairing/allow-from-file.js +1 -1
  246. package/dist/src/channels/pairing/pairing-store.js +2 -2
  247. package/dist/src/chat-commands/agent-edit.js +2 -2
  248. package/dist/src/chat-commands/builtins/config.js +5 -7
  249. package/dist/src/chat-commands/builtins/config.js.map +1 -1
  250. package/dist/src/chat-commands/context.d.ts +5 -0
  251. package/dist/src/chat-commands/context.js +18 -9
  252. package/dist/src/chat-commands/context.js.map +1 -1
  253. package/dist/src/chat-commands/index.d.ts +1 -1
  254. package/dist/src/chat-commands/index.js +2 -2
  255. package/dist/src/chat-commands/index.js.map +1 -1
  256. package/dist/src/chat-commands/processor.js +22 -21
  257. package/dist/src/chat-commands/processor.js.map +1 -1
  258. package/dist/src/chat-commands/session-key.d.ts +3 -15
  259. package/dist/src/chat-commands/session-key.js +3 -49
  260. package/dist/src/chat-commands/session-key.js.map +1 -1
  261. package/dist/src/chat-commands/types.d.ts +4 -0
  262. package/dist/src/cli/commands/browser-cli-helpers.js +11 -5
  263. package/dist/src/cli/commands/browser-cli-helpers.js.map +1 -1
  264. package/dist/src/cli/commands/config.js +1 -1
  265. package/dist/src/cli/commands/doctor/checks/channel-config.js +14 -1
  266. package/dist/src/cli/commands/doctor/checks/channel-config.js.map +1 -1
  267. package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
  268. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  269. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  270. package/dist/src/cli/commands/doctor/checks/session-integrity.js +8 -8
  271. package/dist/src/cli/commands/doctor/checks/session-integrity.js.map +1 -1
  272. package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
  273. package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
  274. package/dist/src/cli/commands/extension-create.js +1 -1
  275. package/dist/src/cli/commands/extension-dev.js +2 -2
  276. package/dist/src/cli/commands/extension-marketplace.js +2 -2
  277. package/dist/src/cli/commands/extension-pack.js +2 -2
  278. package/dist/src/cli/commands/extension.js +3 -3
  279. package/dist/src/cli/commands/gateway/logs.js +1 -1
  280. package/dist/src/cli/commands/image.js +1 -1
  281. package/dist/src/cli/commands/init.js +2 -2
  282. package/dist/src/cli/commands/models.js +1 -1
  283. package/dist/src/cli/commands/skills-test.js +1 -1
  284. package/dist/src/cli/templates.js +1 -1
  285. package/dist/src/cli/utils/gateway-client.js +1 -1
  286. package/dist/src/cli/utils/init-workspace-core.js +2 -2
  287. package/dist/src/config/agent-profile.js +1 -1
  288. package/dist/src/config/agent-typed-models.js +1 -1
  289. package/dist/src/config/gateway-bind.js +1 -1
  290. package/dist/src/config/index.js +7 -7
  291. package/dist/src/config/loader.js +4 -4
  292. package/dist/src/config/models-json.js +2 -2
  293. package/dist/src/config/paths-state.js +1 -1
  294. package/dist/src/config/paths.js +1 -1
  295. package/dist/src/config/profile.js +1 -1
  296. package/dist/src/config/reload.js +1 -1
  297. package/dist/src/config/rules.js +5 -0
  298. package/dist/src/config/rules.js.map +1 -1
  299. package/dist/src/config/schema.d.ts +8 -0
  300. package/dist/src/config/schema.js +7 -0
  301. package/dist/src/config/schema.js.map +1 -1
  302. package/dist/src/config/web-patch.d.ts +1 -0
  303. package/dist/src/config/web-patch.js +1 -0
  304. package/dist/src/config/web-patch.js.map +1 -1
  305. package/dist/src/config/workspace-path.js +1 -1
  306. package/dist/src/connectors/builtin-catalog.js +180 -1
  307. package/dist/src/connectors/builtin-catalog.js.map +1 -1
  308. package/dist/src/connectors/health.js +18 -9
  309. package/dist/src/connectors/health.js.map +1 -1
  310. package/dist/src/connectors/types.d.ts +19 -0
  311. package/dist/src/connectors/usage.js +12 -4
  312. package/dist/src/connectors/usage.js.map +1 -1
  313. package/dist/src/cron/executor.js +1 -1
  314. package/dist/src/cron/service.js +1 -1
  315. package/dist/src/daemon/constants.js +1 -1
  316. package/dist/src/daemon/install-plan.js +2 -2
  317. package/dist/src/daemon/launchd.js +2 -2
  318. package/dist/src/daemon/schtasks.js +2 -2
  319. package/dist/src/daemon/systemd.js +2 -2
  320. package/dist/src/extensions/bundle-mcp.js +1 -1
  321. package/dist/src/extensions/discover-extensions.js +2 -2
  322. package/dist/src/extensions/health.js +1 -1
  323. package/dist/src/extensions/install.js +2 -2
  324. package/dist/src/extensions/loader.js +2 -2
  325. package/dist/src/extensions/lockfile.js +3 -3
  326. package/dist/src/extensions/security.js +1 -1
  327. package/dist/src/extensions/types/tui.d.ts +2 -0
  328. package/dist/src/extensions/update.js +2 -2
  329. package/dist/src/gateway/agents-admin.js +2 -2
  330. package/dist/src/gateway/file-path-classifier.js +2 -2
  331. package/dist/src/gateway/heartbeat/service.js +13 -1
  332. package/dist/src/gateway/heartbeat/service.js.map +1 -1
  333. package/dist/src/gateway/hono/app.js +18 -5
  334. package/dist/src/gateway/hono/app.js.map +1 -1
  335. package/dist/src/gateway/hono/lib/config-payload.d.ts +3 -1
  336. package/dist/src/gateway/hono/lib/config-payload.js +7 -4
  337. package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
  338. package/dist/src/gateway/hono/lib/extension-store.js +2 -2
  339. package/dist/src/gateway/hono/lib/static-ui.js +2 -2
  340. package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +4 -0
  341. package/dist/src/gateway/hono/middleware/strict-rate-limit.js +19 -5
  342. package/dist/src/gateway/hono/middleware/strict-rate-limit.js.map +1 -1
  343. package/dist/src/gateway/hono/oauth-async.js +1 -1
  344. package/dist/src/gateway/hono/routes/agent-stream.js +6 -6
  345. package/dist/src/gateway/hono/routes/agent-stream.js.map +1 -1
  346. package/dist/src/gateway/hono/routes/agents.js +1 -1
  347. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  348. package/dist/src/gateway/hono/routes/channels.js +18 -14
  349. package/dist/src/gateway/hono/routes/channels.js.map +1 -1
  350. package/dist/src/gateway/hono/routes/config-patch/gateway.d.ts +1 -1
  351. package/dist/src/gateway/hono/routes/config-patch/gateway.js +6 -0
  352. package/dist/src/gateway/hono/routes/config-patch/gateway.js.map +1 -1
  353. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  354. package/dist/src/gateway/hono/routes/deps.d.ts +1 -0
  355. package/dist/src/gateway/hono/routes/dreaming.js +1 -1
  356. package/dist/src/gateway/hono/routes/goals.js +16 -3
  357. package/dist/src/gateway/hono/routes/goals.js.map +1 -1
  358. package/dist/src/gateway/hono/routes/host-fs.js +2 -2
  359. package/dist/src/gateway/hono/routes/logs.js +1 -0
  360. package/dist/src/gateway/hono/routes/logs.js.map +1 -1
  361. package/dist/src/gateway/hono/routes/mcp.js +27 -8
  362. package/dist/src/gateway/hono/routes/mcp.js.map +1 -1
  363. package/dist/src/gateway/hono/routes/models.js +1 -1
  364. package/dist/src/gateway/hono/routes/notes.js +14 -2
  365. package/dist/src/gateway/hono/routes/notes.js.map +1 -1
  366. package/dist/src/gateway/hono/routes/sessions.js +62 -4
  367. package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
  368. package/dist/src/gateway/hono/routes/shares.js +1 -1
  369. package/dist/src/gateway/hono/routes/workflows.js +1 -1
  370. package/dist/src/gateway/hono/routes/workspace.js +5 -68
  371. package/dist/src/gateway/hono/routes/workspace.js.map +1 -1
  372. package/dist/src/gateway/hono/sse.d.ts +2 -2
  373. package/dist/src/gateway/hono/sse.js +7 -15
  374. package/dist/src/gateway/hono/sse.js.map +1 -1
  375. package/dist/src/gateway/lock.js +3 -3
  376. package/dist/src/gateway/ports.js +1 -1
  377. package/dist/src/gateway/rate-limit/buckets.d.ts +3 -0
  378. package/dist/src/gateway/rate-limit/buckets.js +12 -0
  379. package/dist/src/gateway/rate-limit/buckets.js.map +1 -1
  380. package/dist/src/gateway/resolve-webchat-session-key.d.ts +2 -6
  381. package/dist/src/gateway/resolve-webchat-session-key.js +5 -31
  382. package/dist/src/gateway/resolve-webchat-session-key.js.map +1 -1
  383. package/dist/src/gateway/service/agent-runner.d.ts +2 -3
  384. package/dist/src/gateway/service/agent-runner.js +9 -22
  385. package/dist/src/gateway/service/agent-runner.js.map +1 -1
  386. package/dist/src/gateway/service/config-coordinator.js +1 -1
  387. package/dist/src/gateway/service/marketplace-service.js +2 -2
  388. package/dist/src/gateway/service/run-gateway-agent.js +9 -7
  389. package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
  390. package/dist/src/gateway/service/sessions-api.d.ts +9 -0
  391. package/dist/src/gateway/service/sessions-api.js +11 -0
  392. package/dist/src/gateway/service/sessions-api.js.map +1 -1
  393. package/dist/src/gateway/service.d.ts +1 -1
  394. package/dist/src/gateway/service.js +23 -9
  395. package/dist/src/gateway/service.js.map +1 -1
  396. package/dist/src/gateway/workspace-file-search.d.ts +9 -0
  397. package/dist/src/gateway/workspace-file-search.js +76 -0
  398. package/dist/src/gateway/workspace-file-search.js.map +1 -0
  399. package/dist/src/gateway/workspace-fs-file-list.js +1 -1
  400. package/dist/src/goals/goal-notifications.d.ts +2 -0
  401. package/dist/src/goals/goal-notifications.js +16 -11
  402. package/dist/src/goals/goal-notifications.js.map +1 -1
  403. package/dist/src/goals/goal-service.js +1 -6
  404. package/dist/src/goals/goal-service.js.map +1 -1
  405. package/dist/src/goals/goal-workflow-judge.js +2 -2
  406. package/dist/src/i18n/goals-bundle.js +1 -1
  407. package/dist/src/i18n/index.js +1 -1
  408. package/dist/src/i18n/share-tool-bundle.js +2 -2
  409. package/dist/src/infra/brew.js +1 -1
  410. package/dist/src/infra/package-json.js +1 -1
  411. package/dist/src/infra/package-update-steps.js +1 -1
  412. package/dist/src/infra/path-env.js +2 -2
  413. package/dist/src/infra/restart.js +1 -1
  414. package/dist/src/infra/stable-node-path.js +1 -1
  415. package/dist/src/infra/update-check.js +1 -1
  416. package/dist/src/infra/update-global.js +1 -1
  417. package/dist/src/infra/update-lock.js +2 -2
  418. package/dist/src/infra/update-restart.js +1 -1
  419. package/dist/src/infra/update-runner.js +1 -1
  420. package/dist/src/infra/update-startup.js +1 -1
  421. package/dist/src/infra/write-file-atomic.js +2 -2
  422. package/dist/src/media/store.js +1 -1
  423. package/dist/src/notes/agent-context.js +1 -1
  424. package/dist/src/notes/service.js +1 -1
  425. package/dist/src/notes/store.js +2 -2
  426. package/dist/src/project-trust/trust-store.js +4 -2
  427. package/dist/src/project-trust/trust-store.js.map +1 -1
  428. package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
  429. package/dist/src/providers/index.js +1 -1
  430. package/dist/src/providers/model-registry.js +4 -4
  431. package/dist/src/session/index.d.ts +1 -1
  432. package/dist/src/session/index.js +2 -2
  433. package/dist/src/session/init-session-turn.js +7 -10
  434. package/dist/src/session/init-session-turn.js.map +1 -1
  435. package/dist/src/session/manager.d.ts +5 -1
  436. package/dist/src/session/manager.js +5 -2
  437. package/dist/src/session/manager.js.map +1 -1
  438. package/dist/src/session/reset-type.d.ts +0 -2
  439. package/dist/src/session/reset-type.js +3 -9
  440. package/dist/src/session/reset-type.js.map +1 -1
  441. package/dist/src/session/resolve-session.js +10 -21
  442. package/dist/src/session/resolve-session.js.map +1 -1
  443. package/dist/src/session/session-title.js +2 -2
  444. package/dist/src/session/store.d.ts +11 -3
  445. package/dist/src/session/store.js +30 -14
  446. package/dist/src/session/store.js.map +1 -1
  447. package/dist/src/session/types.d.ts +2 -4
  448. package/dist/src/session/types.js.map +1 -1
  449. package/dist/src/share/share-auto.js +2 -2
  450. package/dist/src/share/share-store.js +3 -3
  451. package/dist/src/share/share-thumbnail.js +2 -2
  452. package/dist/src/share/share-zip.js +1 -1
  453. package/dist/src/share/site-share-store.js +3 -3
  454. package/dist/src/share/site-static-serve.js +1 -1
  455. package/dist/src/storage/sqlite/connection.js +1 -1
  456. package/dist/src/storage/sqlite/index.d.ts +2 -2
  457. package/dist/src/storage/sqlite/index.js +3 -3
  458. package/dist/src/storage/sqlite/memory-index-repository.js +2 -2
  459. package/dist/src/storage/sqlite/migrations/010_session_id_identity.sql +30 -0
  460. package/dist/src/storage/sqlite/migrations/discover.js +1 -1
  461. package/dist/src/storage/sqlite/migrations/runner.d.ts +2 -2
  462. package/dist/src/storage/sqlite/migrations/runner.js +5 -5
  463. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  464. package/dist/src/storage/sqlite/migrations/runner.ts +2 -2
  465. package/dist/src/storage/sqlite/row-mappers.d.ts +4 -4
  466. package/dist/src/storage/sqlite/row-mappers.js +11 -14
  467. package/dist/src/storage/sqlite/row-mappers.js.map +1 -1
  468. package/dist/src/storage/sqlite/schema.js +4 -4
  469. package/dist/src/storage/sqlite/schema.js.map +1 -1
  470. package/dist/src/storage/sqlite/schema.sql +37 -10
  471. package/dist/src/storage/sqlite/session-metadata.d.ts +2 -7
  472. package/dist/src/storage/sqlite/session-metadata.js +18 -72
  473. package/dist/src/storage/sqlite/session-metadata.js.map +1 -1
  474. package/dist/src/storage/sqlite/session-repository.d.ts +6 -5
  475. package/dist/src/storage/sqlite/session-repository.js +34 -40
  476. package/dist/src/storage/sqlite/session-repository.js.map +1 -1
  477. package/dist/src/storage/sqlite/transcript-repository.d.ts +2 -2
  478. package/dist/src/storage/sqlite/transcript-repository.js +52 -52
  479. package/dist/src/storage/sqlite/transcript-repository.js.map +1 -1
  480. package/dist/src/tui/backends/embedded-backend.d.ts +18 -4
  481. package/dist/src/tui/backends/embedded-backend.js +100 -1
  482. package/dist/src/tui/backends/embedded-backend.js.map +1 -1
  483. package/dist/src/tui/backends/gateway-sse-backend.d.ts +5 -1
  484. package/dist/src/tui/backends/gateway-sse-backend.js +45 -2
  485. package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
  486. package/dist/src/tui/clipboard-image.js +3 -3
  487. package/dist/src/tui/components/chat-log.d.ts +2 -0
  488. package/dist/src/tui/components/chat-log.js +19 -0
  489. package/dist/src/tui/components/chat-log.js.map +1 -1
  490. package/dist/src/tui/extension-host/autocomplete.d.ts +3 -2
  491. package/dist/src/tui/extension-host/autocomplete.js +29 -12
  492. package/dist/src/tui/extension-host/autocomplete.js.map +1 -1
  493. package/dist/src/tui/extension-host/load-extensions.js +1 -1
  494. package/dist/src/tui/extension-host/runtime.d.ts +12 -0
  495. package/dist/src/tui/extension-host/runtime.js +6 -4
  496. package/dist/src/tui/extension-host/runtime.js.map +1 -1
  497. package/dist/src/tui/theme-manager.js +1 -1
  498. package/dist/src/tui/tui-backend.d.ts +23 -0
  499. package/dist/src/tui/tui-command-formatters.js +4 -4
  500. package/dist/src/tui/tui-commands.d.ts +16 -3
  501. package/dist/src/tui/tui-commands.js +134 -27
  502. package/dist/src/tui/tui-commands.js.map +1 -1
  503. package/dist/src/tui/tui-file-autocomplete.d.ts +5 -0
  504. package/dist/src/tui/tui-file-autocomplete.js +26 -0
  505. package/dist/src/tui/tui-file-autocomplete.js.map +1 -0
  506. package/dist/src/tui/tui-keybindings-file.js +1 -1
  507. package/dist/src/tui/tui-picker-overlay.js +1 -1
  508. package/dist/src/tui/tui-scoped-models.js +2 -2
  509. package/dist/src/tui/tui-settings.js +1 -1
  510. package/dist/src/tui/tui-startup-resources.js +1 -1
  511. package/dist/src/tui/tui-startup-text.js +1 -1
  512. package/dist/src/tui/tui-startup-text.js.map +1 -1
  513. package/dist/src/tui/tui.js +106 -17
  514. package/dist/src/tui/tui.js.map +1 -1
  515. package/dist/src/tunnel/frpc-binary.js +4 -4
  516. package/dist/src/tunnel/frpc-config.js +1 -1
  517. package/dist/src/tunnel/frpc-extract.js +1 -1
  518. package/dist/src/tunnel/tunnel-state.js +1 -1
  519. package/dist/src/utils/logger/audit.js +1 -1
  520. package/dist/src/utils/logger/context.d.ts +2 -2
  521. package/dist/src/utils/logger/context.js +2 -1
  522. package/dist/src/utils/logger/context.js.map +1 -1
  523. package/dist/src/utils/logger/log-store.js +2 -1
  524. package/dist/src/utils/logger/log-store.js.map +1 -1
  525. package/dist/src/utils/logger/pino-record.js +3 -0
  526. package/dist/src/utils/logger/pino-record.js.map +1 -1
  527. package/dist/src/utils/logger/rotation.js +1 -1
  528. package/dist/src/utils/logger/streams.js +1 -1
  529. package/dist/src/utils/logger/types.d.ts +5 -0
  530. package/dist/src/utils/logger/types.js.map +1 -1
  531. package/dist/src/voice/tts/audio.js +1 -1
  532. package/dist/src/voice/tts/providers/edge-speech.js +2 -2
  533. package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
  534. package/dist/src/workflows/service/workflow-run-service.js +1 -1
  535. package/dist/src/workflows/service/workflow-session-bridge.js +13 -1
  536. package/dist/src/workflows/service/workflow-session-bridge.js.map +1 -1
  537. package/dist/src/workflows/store/event-store.js +1 -1
  538. package/dist/src/workflows/store/run-store.js +1 -1
  539. package/package.json +1 -1
  540. package/dist/gateway/static/root/assets/agent-browser-settings-page-rGbKc2Hh.js +0 -6
  541. package/dist/gateway/static/root/assets/agent-defaults-tabbed-page-CtwVbjOA.js +0 -1
  542. package/dist/gateway/static/root/assets/agents-CCBmGcwc.js +0 -71
  543. package/dist/gateway/static/root/assets/apps-page-xwCsJS15.js +0 -1
  544. package/dist/gateway/static/root/assets/channels-settings-C044DcYk.js +0 -1
  545. package/dist/gateway/static/root/assets/connectors-settings-8VEWUOTj.js +0 -2
  546. package/dist/gateway/static/root/assets/cron-page-DqmNGNOy.js +0 -3
  547. package/dist/gateway/static/root/assets/goal-detail-page-bv0VRDaf.js +0 -1
  548. package/dist/gateway/static/root/assets/goals-page-1Ywnt4Cb.js +0 -2
  549. package/dist/gateway/static/root/assets/goals-settings-ceEBjnfc.js +0 -1
  550. package/dist/gateway/static/root/assets/index-Cxm6xsps.js +0 -122
  551. package/dist/gateway/static/root/assets/index-b_R4tKqt.css +0 -1
  552. package/dist/gateway/static/root/assets/logs-page-B_wrxhee.js +0 -2
  553. package/dist/gateway/static/root/assets/messages-CkT-lcgP.js +0 -3
  554. package/dist/gateway/static/root/assets/models-hub-panel-D0JDSbNu.js +0 -2
  555. package/dist/gateway/static/root/assets/note-detail-page-DpFV-EO6.js +0 -2
  556. package/dist/gateway/static/root/assets/notes-page-CdkjTch8.js +0 -1
  557. package/dist/gateway/static/root/assets/remote-access-hub-DSYVAi96.js +0 -1
  558. package/dist/gateway/static/root/assets/sessions-page-CenkcVjF.js +0 -1
  559. package/dist/gateway/static/root/assets/settings-advanced-gate-D9sva86V.js +0 -1
  560. package/dist/gateway/static/root/assets/settings-page-DL35U0x0.js +0 -1
  561. package/dist/gateway/static/root/assets/setup-status-panel-Ctwbp9Er.js +0 -1
  562. package/dist/gateway/static/root/assets/shares-settings-DIM3JNsr.js +0 -1
  563. package/dist/gateway/static/root/assets/skill-reload-api-DAlNaNzL.js +0 -1
  564. package/dist/gateway/static/root/assets/skills-page-CLrHVzAt.js +0 -2
  565. package/dist/gateway/static/root/assets/voice-api-key-field-vYAO71Gn.js +0 -1
  566. package/dist/gateway/static/root/assets/workflow-page.utils-sgHjOXOm.js +0 -1
  567. package/dist/gateway/static/root/assets/workflows-page-DYyOTmFx.js +0 -18
@@ -0,0 +1,18 @@
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-JdwAhgNB.js";import{t as a}from"./messages-upgxw6Ub.js";import{t as o}from"./locale-store-DjbfSsfA.js";import{c as s}from"./fetch-D0VXA932.js";import{i as c}from"./vendor-swr-BIWyz7Rc.js";import{$a as l,$r as u,Ao as d,As as f,D as p,E as m,F as h,Fa as g,Jn as _,L as v,Lo as y,Lt as b,M as x,Mi as S,Mo as C,N as w,O as T,Os as E,P as D,Pi as O,Po as k,Qr as A,R as j,Ro as M,Sa as N,So as ee,T as P,Ut as F,Vo as te,Wa as I,Wi as L,Xi as R,Xo as z,Xr as B,Zr as ne,_ as re,a as V,b as H,bi as U,ca as W,co as G,d as ie,ds as K,ei as q,es as ae,f as oe,g as se,ga as ce,i as le,j as ue,ja as de,k as fe,ka as pe,ni as me,o as he,oa as J,os as ge,r as _e,s as ve,si as Y,so as ye,ss as be,ti as xe,u as Se,ua as Ce,v as we,w as Te,wi as Ee,x as De,y as Oe,zi as ke}from"./index-AkTrf6Pb.js";import{a as Ae,c as je,d as Me,f as Ne,h as Pe,i as Fe,l as Ie,m as Le,n as Re,o as ze,p as Be,r as Ve,s as X,t as He,u as Ue}from"./workflow-page.utils-CKjeEGqx.js";var Z=e(t(),1),Q=n(),We=[`queued`,`running`,`succeeded`,`attention`],Ge=10080*60*1e3,Ke=new Set([`failed`,`timeout`,`cancelled`]);function qe(e){return e.metadata?.sessionKey?.trim()||null}function Je(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function Ye(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 Xe(e,t=90){let n=e.metadata?.input?.goal?.trim()||(typeof e.metadata?.input?.payload==`string`?e.metadata.input.payload.trim():null)||Ye(e.metadata?.input?.payload,[`query`,`goal`,`prompt`,`input`,`message`])||Ye(e.metadata?.input?.variables,[`query`,`goal`,`prompt`,`input`,`message`]);return n?Je(n,t):null}function Ze(e,t=90){return Xe(e,t)??Je(e.title?.trim()||e.definitionId,t)}function Qe(e,t=44){return Je(e.title?.trim()||e.definitionId,t)}function $e(e,t){let n=t.trim().toLowerCase();return n?[Xe(e,500),e.title,e.definitionId,e.id].filter(Boolean).join(` `).toLowerCase().includes(n):!0}function et(e,t){let n=t.workflowFilterId.trim();return e.filter(e=>n&&e.definitionId!==n||!Ue(e,t.triggerFilter??`all`)?!1:$e(e,t.searchQuery))}function tt(e){return e.completedAtMs??e.createdAtMs}function nt(e,t){return t-tt(e)<=Ge}function rt(e,t){return e.status===`queued`?`queued`:e.status===`running`?`running`:e.status===`succeeded`?nt(e,t)?`succeeded`:null:Ke.has(e.status)?`attention`:null}function it(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)=>tt(t)-tt(e))}function at(e,t){let n={queued:[],running:[],succeeded:[],attention:[]};for(let r of e){let e=rt(r,t);e&&n[e].push(r)}let r=it(`succeeded`,n.succeeded),i=r.length,a=r.slice(0,20),o=Math.max(0,i-20);return We.map(e=>e===`succeeded`?{id:e,runs:a,totalInWindow:i,hiddenByCap:o}:{id:e,runs:it(e,n[e])})}var ot=new Map;function st(e){let t=ot.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:`auto`}),ot.set(e,t)),t}function ct(e,t,n){let r=Math.round((t-e)/1e3),i=st(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 lt(e){return e.status===`queued`||e.status===`running`}function ut(e){return e.status===`failed`||e.status===`timeout`||e.status===`cancelled`}var $=r(),dt=(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:f}=e,p=a(r).workflows,[m,h]=(0,Z.useState)(!1),g;t[0]===n?g=t[1]:(g=qe(n),t[0]=n,t[1]=g);let _=!g,v;t[2]===n?v=t[3]:(v=lt(n),t[2]=n,t[3]=v);let y=v,b=n.status===`running`||n.status===`queued`,x;t[4]!==n.metrics.agentCount||t[5]!==n.metrics.doneAgentCount?(x=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]=x):x=t[6];let w=x,T=n.metrics.errorAgentCount>0,E=n.startedAtMs??n.createdAtMs,D=Fe(y?s-E:n.metrics.durationMs),O=X(p.taskArtifacts,{count:n.metrics.artifactCount}),k;t[7]===n?k=t[8]:(k=Ze(n),t[7]=n,t[8]=k);let A=k,j;t[9]===n?j=t[10]:(j=Qe(n),t[9]=n,t[10]=j);let M=j,N;t[11]!==l||t[12]!==n?(N=()=>{l(n)},t[11]=l,t[12]=n,t[13]=N):N=t[13];let ee=N,P;t[14]!==_||t[15]!==u||t[16]!==n?(P=()=>{_||u(n)},t[14]=_,t[15]=u,t[16]=n,t[17]=P):P=t[17];let F=P,te=c?`border-accent/70 ring-1 ring-accent/30`:`border-edge`,I;t[18]===te?I=t[19]:(I=i(`group relative overflow-hidden rounded-xl border bg-surface-panel p-3.5 transition-colors`,te,`hover:border-edge-strong hover:bg-surface-hover/50`),t[18]=te,t[19]=I);let R;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(R=i(`w-full text-left`,Ee.focusRingPanel),t[20]=R):R=t[20];let z;t[21]===A?z=t[22]:(z=(0,$.jsx)(`div`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-fg`,children:A}),t[21]=A,t[22]=z);let B;t[23]===M?B=t[24]:(B=(0,$.jsx)(`div`,{className:`mt-1 truncate text-[11px] font-medium text-fg-muted`,children:M}),t[23]=M,t[24]=B);let ne;t[25]!==z||t[26]!==B?(ne=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[z,B]}),t[25]=z,t[26]=B,t[27]=ne):ne=t[27];let re;t[28]===n.status?re=t[29]:(re=i(`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold shadow-sm`,Me(n.status)),t[28]=n.status,t[29]=re);let V;t[30]!==o||t[31]!==s||t[32]!==E?(V=ct(E,s,o),t[30]=o,t[31]=s,t[32]=E,t[33]=V):V=t[33];let H;t[34]===V?H=t[35]:(H=(0,$.jsx)(`span`,{children:V}),t[34]=V,t[35]=H);let U=D===`—`?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,$.jsx)(`span`,{children:X(p.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,ie=c?(0,$.jsx)(`span`,{className:`font-medium text-accent-fg`,children:p.taskOpenDetails}):null,K;t[39]!==G||t[40]!==ie?(K=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-subtle`,children:[G,ie]}),t[39]=G,t[40]=ie,t[41]=K):K=t[41];let q;t[42]===h?q=t[43]:(q=()=>h(pt),t[42]=h,t[43]=q);let ae;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(ae=(0,$.jsx)(C,{className:`size-4`,"aria-hidden":!0}),t[44]=ae):ae=t[44];let oe;t[45]!==p.taskActionsAria||t[46]!==m||t[47]!==q?(oe=(0,$.jsx)(S,{variant:`ghost`,className:`size-7 p-0 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,"aria-label":p.taskActionsAria,"aria-expanded":m,onClick:q,children:ae}),t[45]=p.taskActionsAria,t[46]=m,t[47]=q,t[48]=oe):oe=t[48];let se;t[49]!==y||t[50]!==_||t[51]!==F||t[52]!==p.cancel||t[53]!==p.continueInChat||t[54]!==p.rerun||t[55]!==p.taskCloseMenu||t[56]!==m||t[57]!==d||t[58]!==f||t[59]!==n||t[60]!==h?(se=m?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-10 cursor-default`,"aria-label":p.taskCloseMenu,onClick:()=>h(!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)(ft,{label:p.continueInChat,disabled:_,onClick:()=>{h(!1),F()}}),y?(0,$.jsx)(ft,{label:p.cancel,tone:`danger`,onClick:()=>{h(!1),d(n.id)}}):null,ut(n)?(0,$.jsx)(ft,{label:p.rerun,onClick:()=>{h(!1),f(n.id)}}):null]})]}):null,t[49]=y,t[50]=_,t[51]=F,t[52]=p.cancel,t[53]=p.continueInChat,t[54]=p.rerun,t[55]=p.taskCloseMenu,t[56]=m,t[57]=d,t[58]=f,t[59]=n,t[60]=h,t[61]=se):se=t[61];let ce;return t[62]!==oe||t[63]!==se?(ce=(0,$.jsxs)(`div`,{className:`absolute right-2 top-2`,children:[oe,se]}),t[62]=oe,t[63]=se,t[64]=ce):ce=t[64],(0,$.jsxs)(`div`,{className:I,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:ee,"aria-label":`${p.taskOpenDetails}: ${A}`,"aria-current":c?`true`:void 0,className:R,children:[(0,$.jsxs)(`div`,{className:`pr-7`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-2`,children:[ne,(0,$.jsx)(`span`,{className:re,children:p.status[n.status]??n.status})]}),W]}),b?(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:X(p.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,K,T?(0,$.jsxs)(`div`,{className:`mt-2 flex items-center gap-1 text-[11px] text-amber-700 dark:text-amber-300`,children:[(0,$.jsx)(L,{className:`size-3 shrink-0`,"aria-hidden":!0}),X(p.runRowErrorSummary,{count:n.metrics.errorAgentCount})]}):null]}),ce]})});function ft(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 pt(e){return!e}function mt(e,t){return t.boardColumns[e]}var ht=(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:f}=e,p=a(r).workflows,[m,h]=(0,Z.useState)(!1),g=n.id===`succeeded`,_=g?5:n.runs.length,v;t[0]!==_||t[1]!==n.runs||t[2]!==m||t[3]!==g?(v=g&&!m?n.runs.slice(0,_):n.runs,t[0]=_,t[1]=n.runs,t[2]=m,t[3]=g,t[4]=v):v=t[4];let y=v,b=g&&n.runs.length>5&&!m,x=g&&m,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=y.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:p.boardColumnEmpty}):y.map(e=>(0,$.jsx)(dt,{run:e,language:r,localeTag:o,nowMs:s,selected:e.id===c,onOpen:l,onOpenChat:u,onCancel:d,onRetry:f},e.id)),D=b?(0,$.jsx)(S,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>h(!0),children:X(p.boardExpandSucceeded,{count:Math.min(n.runs.length,n.totalInWindow??n.runs.length)})}):null,O=x?(0,$.jsx)(S,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>h(!1),children:p.boardCollapseSucceeded}):null,k=g&&(n.hiddenByCap??0)>0?(0,$.jsx)(`p`,{className:`px-1 text-center text-[11px] text-fg-subtle`,children:X(p.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":mt(n.id,p),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:mt(n.id,p)})]}),T]}),A]})}),gt=(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:f,onCancelRun:p,onRetryRun:m,onStart:h}=e,g;t[0]===n?g=t[1]:(g=n.some(_t),t[0]=n,t[1]=g);let _=g,[v,y]=(0,Z.useState)(vt),b,x;t[2]===_?(b=t[3],x=t[4]):(b=()=>{if(!_)return;let e=window.setInterval(()=>y(Date.now()),1e3);return()=>window.clearInterval(e)},x=[_],t[2]=_,t[3]=b,t[4]=x),(0,Z.useEffect)(b,x);let C;t[5]!==v||t[6]!==n||t[7]!==o||t[8]!==c||t[9]!==s?(C=at(et(n,{searchQuery:o,workflowFilterId:s,triggerFilter:c}),v),t[5]=v,t[6]=n,t[7]=o,t[8]=c,t[9]=s,t[10]=C):C=t[10];let w=C,T=w.reduce(yt,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]!==h?(r=(0,$.jsx)(`div`,{className:`mt-4 flex justify-center`,children:(0,$.jsx)(S,{variant:`primary`,onClick:h,children:a.boardStart})}),t[17]=a.boardStart,t[18]=h,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]!==v||t[28]!==p||t[29]!==d||t[30]!==f||t[31]!==m||t[32]!==l){let e;t[34]!==r||t[35]!==i||t[36]!==v||t[37]!==p||t[38]!==d||t[39]!==f||t[40]!==m||t[41]!==l?(e=e=>(0,$.jsx)(ht,{column:e,language:r,localeTag:i,nowMs:v,selectedRunId:l,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m},e.id),t[34]=r,t[35]=i,t[36]=v,t[37]=p,t[38]=d,t[39]=f,t[40]=m,t[41]=l,t[42]=e):e=t[42],E=w.map(e),t[24]=w,t[25]=r,t[26]=i,t[27]=v,t[28]=p,t[29]=d,t[30]=f,t[31]=m,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 _t(e){return e.status===`queued`||e.status===`running`}function vt(){return Date.now()}function yt(e,t){return e+t.runs.length}var bt=`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 xt(e){let t=(0,Q.c)(48),{open:n,language:r,ownerAgentId:i,saving:o,initialDraft:s,onClose:c,onSave:l,onSaveAndStart:d}=e,f;t[0]===r?f=t[1]:(f=a(r),t[0]=r,t[1]=f);let p=f.workflows,[m,h]=(0,Z.useState)(`ai`),[g,_]=(0,Z.useState)(``),[v,y]=(0,Z.useState)(``),b=s?.mode===`edit`,x=b?p.editWorkflowTitle:p.createWorkflowTitle,S=b?p.editWorkflowHint:s?.mode===`copy`?p.createWorkflowHintFromCopy:p.createWorkflowHint,C,w;t[2]!==s||t[3]!==n?(C=()=>{n&&(h(s?`manual`:`ai`),_(s?.name??``),y(s?.script??``))},w=[s,n],t[2]=s,t[3]=n,t[4]=C,t[5]=w):(C=t[4],w=t[5]),(0,Z.useEffect)(C,w);let T;t[6]===c?T=t[7]:(T=e=>!e&&c(),t[6]=c,t[7]=T);let E;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,$.jsx)(u,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[8]=E):E=t[8];let D;t[9]===x?D=t[10]:(D=(0,$.jsx)(me,{className:`text-base font-semibold text-fg`,children:x}),t[9]=x,t[10]=D);let O;t[11]===S?O=t[12]:(O=(0,$.jsx)(A,{className:`mt-1 text-sm text-fg-muted`,children:S}),t[11]=S,t[12]=O);let k=m===`ai`,j,M;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(M=()=>h(`ai`),j=(0,$.jsx)(J,{className:`size-4`,"aria-hidden":!0}),t[13]=j,t[14]=M):(j=t[13],M=t[14]);let N;t[15]!==p.createWorkflowAiTab||t[16]!==k?(N=(0,$.jsx)(St,{active:k,onClick:M,icon:j,children:p.createWorkflowAiTab}),t[15]=p.createWorkflowAiTab,t[16]=k,t[17]=N):N=t[17];let ee=m===`manual`,P,F;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(P=()=>h(`manual`),F=(0,$.jsx)(te,{className:`size-4`,"aria-hidden":!0}),t[18]=P,t[19]=F):(P=t[18],F=t[19]);let I;t[20]!==p.createWorkflowManualTab||t[21]!==ee?(I=(0,$.jsx)(St,{active:ee,onClick:P,icon:F,children:p.createWorkflowManualTab}),t[20]=p.createWorkflowManualTab,t[21]=ee,t[22]=I):I=t[22];let L;t[23]!==N||t[24]!==I?(L=(0,$.jsxs)(`div`,{className:`mt-4 inline-flex rounded-xl border border-edge bg-surface-base p-1`,children:[N,I]}),t[23]=N,t[24]=I,t[25]=L):L=t[25];let R;t[26]!==L||t[27]!==D||t[28]!==O?(R=(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[D,O,L]}),t[26]=L,t[27]=D,t[28]=O,t[29]=R):R=t[29];let z;t[30]!==s||t[31]!==r||t[32]!==m||t[33]!==c||t[34]!==l||t[35]!==d||t[36]!==i||t[37]!==o||t[38]!==g||t[39]!==v?(z=m===`ai`?(0,$.jsx)(Ct,{language:r,ownerAgentId:i,saving:o,initialDraft:s,name:g,setName:_,script:v,setScript:y,onClose:c,onSave:l,onSaveAndStart:d}):(0,$.jsx)(wt,{language:r,saving:o,initialDraft:s,name:g,setName:_,script:v,setScript:y,onClose:c,onSave:l}),t[30]=s,t[31]=r,t[32]=m,t[33]=c,t[34]=l,t[35]=d,t[36]=i,t[37]=o,t[38]=g,t[39]=v,t[40]=z):z=t[40];let B;t[41]!==R||t[42]!==z?(B=(0,$.jsxs)(q,{children:[E,(0,$.jsxs)(ne,{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:[R,z]})]}),t[41]=R,t[42]=z,t[43]=B):B=t[43];let re;return t[44]!==n||t[45]!==B||t[46]!==T?(re=(0,$.jsx)(xe,{open:n,onOpenChange:T,children:B}),t[44]=n,t[45]=B,t[46]=T,t[47]=re):re=t[47],re}function St(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 Ct({language:e,ownerAgentId:t,saving:n,initialDraft:r,name:i,setName:o,script:s,setScript:c,onClose:l,onSave:u,onSaveAndStart:d}){let f=a(e).workflows,[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(null),[_,v]=(0,Z.useState)({allowNetwork:!1,fileSystem:`read`,maxPhases:4,maxSubagents:8,outputFormat:`report`}),[y,b]=(0,Z.useState)(!1),[x,C]=(0,Z.useState)(null),w=(0,Z.useMemo)(()=>h?.validation.errors.map(e=>e.message)??[],[h]),T=(0,Z.useMemo)(()=>h?.lint.filter(e=>e.severity===`error`)??[],[h]),E=p.trim().length>0&&!y,D=!!(h&&i.trim()&&s.trim()&&h.validation.valid&&T.length===0&&!n),O=s.trim().length>0,k=O?f.nlBuilderEditPromptLabel:f.nlBuilderPromptLabel,A=O?f.nlBuilderEditPromptPlaceholder:f.nlBuilderPromptPlaceholder,j=O?`improve`:`create`,M=async n=>{if(p.trim()){b(!0),C(null);try{let r=await P({prompt:p,agentId:t,language:e===`zh`?`zh`:`en`,mode:n,existingScript:n===`improve`?s:void 0,constraints:_});g(r),o(r.name),c(r.script)}catch(e){C(e instanceof Error?e.message:f.nlBuilderGenerateFailed)}finally{b(!1)}}},N=async()=>{D&&await u({name:i.trim(),script:s})&&l()},ee=async()=>{D&&await d({name:i.trim(),script:s,goal:p.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:p,onChange:e=>m(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)(Tt,{label:f.nlBuilderMaxPhases,value:_.maxPhases??4,min:1,max:8,onChange:e=>v(t=>({...t,maxPhases:e}))}),(0,$.jsx)(Tt,{label:f.nlBuilderMaxAgents,value:_.maxSubagents??8,min:1,max:20,onChange:e=>v(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:!!_.allowNetwork,onChange:e=>v(t=>({...t,allowNetwork:e.target.checked}))}),f.nlBuilderAllowNetwork]}),(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:f.nlBuilderFilesystem}),(0,$.jsxs)(`select`,{value:_.fileSystem??`read`,onChange:e=>v(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)(`option`,{value:`none`,children:`none`}),(0,$.jsx)(`option`,{value:`read`,children:`read`}),(0,$.jsx)(`option`,{value:`write`,children:`write`})]})]})]}),(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,$.jsxs)(S,{variant:`primary`,disabled:!E,onClick:()=>void M(j),children:[(0,$.jsx)(J,{className:`size-4`,"aria-hidden":!0}),y?f.nlBuilderGenerating:O?f.nlBuilderRewriteExisting:f.nlBuilderGenerate]})}),x?(0,$.jsx)(Rt,{text:x}):null,h?(0,$.jsx)(kt,{draft:h,labels:f}):null]}),(0,$.jsxs)(`section`,{className:`min-w-0 space-y-3`,children:[(0,$.jsx)(Dt,{initialDraft:r,labels:f}),(0,$.jsx)(Et,{labels:f,name:i,setName:o}),(0,$.jsx)(Ot,{labels:f,script:s,setScript:c,minHeightClass:`min-h-96`}),h?(0,$.jsx)(At,{draft:h,labels:f,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)(S,{variant:`secondary`,onClick:l,disabled:n||y,children:f.cancelDialog}),(0,$.jsx)(S,{variant:`secondary`,disabled:!D,onClick:()=>void N(),children:n?f.savingWorkflow:f.saveWorkflow}),(0,$.jsx)(S,{variant:`primary`,disabled:!D,onClick:()=>void ee(),children:f.nlBuilderSaveAndStart})]})]})}function wt({language:e,saving:t,initialDraft:n,name:r,setName:i,script:o,setScript:s,onClose:c,onSave:l}){let u=a(e).workflows,[d,f]=(0,Z.useState)(!1),[p,m]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(null),[_,v]=(0,Z.useState)(null),y=r.trim(),b=!!(y&&o.trim());(0,Z.useEffect)(()=>{if(!b){m(!1),g(null),v(null);return}let e=!1,t=window.setTimeout(()=>{m(!0),g(null),j(y,o).then(t=>{e||v(t)}).catch(t=>{e||(v(null),g(t instanceof Error?t.message:u.validateWorkflowFailed))}).finally(()=>{e||m(!1)})},450);return()=>{e=!0,window.clearTimeout(t)}},[b,u.validateWorkflowFailed,o,y]);let x=(0,Z.useMemo)(()=>h?[h]:_?.errors.map(e=>e.message)??[],[h,_]),C=d||p||_!=null||h!=null,w=b&&!t&&!p&&_?.valid===!0;(0,Z.useEffect)(()=>{!n&&!o.trim()&&s(bt),f(!1),m(!1),g(null),v(null)},[n,o,s]);let T=async()=>{if(f(!0),!(!b||t)){m(!0),g(null);try{let e=await j(y,o);if(v(e),!e.valid)return;await l({name:y,script:o})&&c()}catch(e){v(null),g(e instanceof Error?e.message:u.validateWorkflowFailed)}finally{m(!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)(Dt,{initialDraft:n,labels:u}),(0,$.jsx)(Et,{labels:u,name:r,setName:e=>{i(e),v(null),g(null)}}),(0,$.jsx)(Ot,{labels:u,script:o,setScript:e=>{s(e),v(null),g(null)},minHeightClass:`min-h-72`}),C?(0,$.jsx)(Pt,{labels:u,validating:p,validationIssues:x,validationResult:_}):null]}),(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,$.jsx)(S,{variant:`secondary`,onClick:c,disabled:t,children:u.cancelDialog}),(0,$.jsx)(S,{variant:`primary`,disabled:!w,onClick:()=>void T(),children:t?u.savingWorkflow:u.saveWorkflow})]})]})}function Tt(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 Et(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 Dt(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 Ot(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 kt(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)(It,{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)(It,{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)(It,{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 At(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(Nt),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)(ae,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(L,{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(Mt),a.map(jt)]}):(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 jt(e){return(0,$.jsx)(`li`,{children:e.message},`${e.code}:${e.message}`)}function Mt(e){return(0,$.jsx)(`li`,{children:e},e)}function Nt(e){return e.severity!==`error`}function Pt(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(Ft)}):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 Ft(e){return(0,$.jsx)(`li`,{children:e},e)}function It(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)(K,{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(Lt),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 Lt(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 Rt(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 zt(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 d;t[2]!==r||t[3]!==i?(d=Pe(r,i),t[2]=r,t[3]=i,t[4]=d):d=t[4];let f=d,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)(u,{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)(me,{className:`text-base font-semibold text-fg`,children:r.title}),t[8]=r.title,t[9]=g);let _;t[10]===f.description?_=t[11]:(_=(0,$.jsx)(A,{className:`mt-1 text-sm text-fg-muted`,children:f.description}),t[10]=f.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]!==f.whenToUse?(y=f.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:f.whenToUse})]}):null,t[15]=l.whenToUseHeading,t[16]=f.whenToUse,t[17]=y):y=t[17];let b;t[18]!==r||t[19]!==l?(b=(0,$.jsx)(Vt,{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)(Ut,{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)(Ut,{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(Bt)})]}):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)(S,{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)(S,{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 j;t[49]!==E||t[50]!==k||t[51]!==v?(j=(0,$.jsxs)(q,{children:[h,(0,$.jsxs)(ne,{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]=j):j=t[52];let M;return t[53]!==n||t[54]!==j||t[55]!==m?(M=(0,$.jsx)(xe,{open:n,onOpenChange:m,children:j}),t[53]=n,t[54]=j,t[55]=m,t[56]=M):M=t[56],M}function Bt(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 Vt(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(Ht)}):(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 Ht(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)(Ce,{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 Ut(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)(K,{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(Wt)}):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 Wt(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 Gt(e,t){let n=e.metadata.estimatedAgents;return n?n.min===n.max?X(t.agentScaleExact,{count:n.min}):X(t.agentScaleRange,{min:n.min,max:n.max}):null}function Kt(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=Pe(n,r),t[0]=n,t[1]=r,t[2]=l):l=t[2];let u=l,f;t[3]!==n||t[4]!==a?(f=Gt(n,a),t[3]=n,t[4]=a,t[5]=f):f=t[5];let p=f,m=n.metadata.source===`user`,h;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(h=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]=h):h=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`,Ee.focusRingPanel),t[10]=v):v=t[10];let y=m?`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=m?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 w;t[16]!==n.inputSchema||t[17]!==a.inputSchemaBadge?(w=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)(K,{className:`size-2.5`,"aria-hidden":!0}),a.inputSchemaBadge]}):null,t[16]=n.inputSchema,t[17]=a.inputSchemaBadge,t[18]=w):w=t[18];let T;t[19]===n.metadata.tags?T=t[20]:(T=n.metadata.tags.slice(0,2).map(qt),t[19]=n.metadata.tags,t[20]=T);let E;t[21]!==w||t[22]!==T||t[23]!==C?(E=(0,$.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center gap-1.5`,children:[C,w,T]}),t[21]=w,t[22]=T,t[23]=C,t[24]=E):E=t[24];let D;t[25]===n.title?D=t[26]:(D=(0,$.jsx)(`span`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-fg`,children:n.title}),t[25]=n.title,t[26]=D);let O;t[27]!==E||t[28]!==D?(O=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[E,D]}),t[27]=E,t[28]=D,t[29]=O):O=t[29];let k;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(k=(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)(d,{className:`size-3.5`,"aria-hidden":!0})}),t[30]=k):k=t[30];let A;t[31]===O?A=t[32]:(A=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[O,k]}),t[31]=O,t[32]=A);let j;t[33]===u.description?j=t[34]:(j=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]=j);let N;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsx)(G,{className:`size-3`,"aria-hidden":!0}),t[35]=N):N=t[35];let ee;t[36]!==n.phases.length||t[37]!==a.phaseCount?(ee=X(a.phaseCount,{count:n.phases.length}),t[36]=n.phases.length,t[37]=a.phaseCount,t[38]=ee):ee=t[38];let P;t[39]===ee?P=t[40]:(P=(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[N,ee]}),t[39]=ee,t[40]=P);let F;t[41]===p?F=t[42]:(F=p?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,$.jsx)(ke,{className:`size-3`,"aria-hidden":!0}),p]}):null,t[41]=p,t[42]=F);let te;t[43]!==P||t[44]!==F?(te=(0,$.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center gap-3 pt-3 text-[11px] text-fg-subtle`,children:[P,F]}),t[43]=P,t[44]=F,t[45]=te):te=t[45];let I;t[46]!==A||t[47]!==j||t[48]!==te||t[49]!==_?(I=(0,$.jsxs)(`button`,{type:`button`,onClick:_,className:v,children:[A,j,te]}),t[46]=A,t[47]=j,t[48]=te,t[49]=_,t[50]=I):I=t[50];let L;t[51]!==n||t[52]!==o?(L=()=>o(n),t[51]=n,t[52]=o,t[53]=L):L=t[53];let R;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,$.jsx)(de,{className:`size-3.5`,"aria-hidden":!0}),t[54]=R):R=t[54];let z;t[55]!==a.runWorkflow||t[56]!==L?(z=(0,$.jsxs)(S,{type:`button`,variant:`primary`,className:`h-8 flex-1 rounded-lg text-xs`,onClick:L,children:[R,a.runWorkflow]}),t[55]=a.runWorkflow,t[56]=L,t[57]=z):z=t[57];let B;t[58]!==n||t[59]!==s?(B=()=>s(n),t[58]=n,t[59]=s,t[60]=B):B=t[60];let ne;t[61]===Symbol.for(`react.memo_cache_sentinel`)?(ne=(0,$.jsx)(d,{className:`size-3.5`,"aria-hidden":!0}),t[61]=ne):ne=t[61];let re;t[62]!==a.viewDetails||t[63]!==B?(re=(0,$.jsxs)(S,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg text-xs`,onClick:B,children:[ne,a.viewDetails]}),t[62]=a.viewDetails,t[63]=B,t[64]=re):re=t[64];let V;t[65]!==n||t[66]!==c?(V=()=>c(n),t[65]=n,t[66]=c,t[67]=V):V=t[67];let H;t[68]===m?H=t[69]:(H=m?(0,$.jsx)(g,{className:`size-3.5`,"aria-hidden":!0}):(0,$.jsx)(M,{className:`size-3.5`,"aria-hidden":!0}),t[68]=m,t[69]=H);let U=m?a.editWorkflow:a.copyAndEditWorkflow,W;t[70]!==V||t[71]!==H||t[72]!==U?(W=(0,$.jsxs)(S,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg text-xs`,onClick:V,children:[H,U]}),t[70]=V,t[71]=H,t[72]=U,t[73]=W):W=t[73];let ie;t[74]!==z||t[75]!==re||t[76]!==W?(ie=(0,$.jsxs)(`div`,{className:`mt-4 flex flex-wrap gap-2 border-t border-edge-subtle pt-3`,children:[z,re,W]}),t[74]=z,t[75]=re,t[76]=W,t[77]=ie):ie=t[77];let q;return t[78]!==I||t[79]!==ie?(q=(0,$.jsxs)(`article`,{className:h,children:[I,ie]}),t[78]=I,t[79]=ie,t[80]=q):q=t[80],q}function qt(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 Jt(e,t){return e===`uncategorized`?t.categories.uncategorized:t.categories[e]}function Yt(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)(``),[f,p]=(0,Z.useState)(`all`),m;t[0]!==f||t[1]!==n||t[2]!==u?(m=Ve(n,u,f,`all`),t[0]=f,t[1]=n,t[2]=u,t[3]=m):m=t[3];let h=m,g;t[4]===h?g=t[5]:(g=ze(h),t[4]=h,t[5]=g);let _=g,v;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsx)(ce,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[6]=v):v=t[6];let y;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>d(e.target.value),t[7]=y):y=t[7];let b=l.searchPlaceholder,x;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(x=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`,Ee.focusRingPanel),t[8]=x):x=t[8];let C=h.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})]}):f===`all`?(0,$.jsx)(`div`,{className:`flex flex-col gap-6 pb-1`,children:_.map(e=>(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`mb-3 text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:Jt(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)(Kt,{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:h.map(e=>(0,$.jsx)(Kt,{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:[v,(0,$.jsx)(`input`,{value:u,onChange:y,placeholder:b,className:x})]}),(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":l.categoryFilterAria,children:ve.map(e=>(0,$.jsx)(S,{type:`button`,variant:f===e?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>p(e),children:l.categories[e]},e))})]}),w]})}function Xt(e){let t=(0,Q.c)(32),{open:n,definitions:r,language:o,onClose:s,onPick:c,onDetail:l,onEdit:d}=e,f;t[0]===o?f=t[1]:(f=a(o),t[0]=o,t[1]=f);let p=f.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)(u,{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`,Ee.focusRingPanel),t[5]=g):g=t[5];let _;t[6]===p.pickStartTitle?_=t[7]:(_=(0,$.jsx)(me,{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)(A,{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 b;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(O,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),t[13]=b):b=t[13];let x;t[14]===p.pickStartClose?x=t[15]:(x=(0,$.jsx)(B,{asChild:!0,children:(0,$.jsx)(S,{variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":p.pickStartClose,children:b})}),t[14]=p.pickStartClose,t[15]=x);let C;t[16]!==y||t[17]!==x?(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,x]}),t[16]=y,t[17]=x,t[18]=C):C=t[18];let w;t[19]!==r||t[20]!==o||t[21]!==l||t[22]!==d||t[23]!==c?(w=(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col px-6 py-5`,children:(0,$.jsx)(Yt,{definitions:r,language:o,onPick:c,onDetail:l,onEdit:d})}),t[19]=r,t[20]=o,t[21]=l,t[22]=d,t[23]=c,t[24]=w):w=t[24];let T;t[25]!==C||t[26]!==w?(T=(0,$.jsxs)(q,{children:[h,(0,$.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4 pointer-events-none`,children:(0,$.jsxs)(ne,{className:g,onOpenAutoFocus:Zt,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)(xe,{open:n,onOpenChange:m,children:T}),t[28]=n,t[29]=T,t[30]=m,t[31]=E):E=t[31],E}function Zt(e){return e.preventDefault()}function Qt(e,t){return t.status[e]??e}function $t(e,t){return t.phaseStatus[e]??e}function en(e,t){let{run:n}=e;return n.status===`succeeded`?X(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:X(t.runSummaryActive,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}function tn(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 nn(e){return Ie(e)}function rn(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===`cron`?`cron · ${e.scheduleId}`:e.kind===`api`?e.requestId?`api · ${e.requestId}`:`api`:e.kind===`im`?`${e.channel} · ${e.chatId}`:String(e.kind)}function an({view:e,comparison:t,currentDefinition:n,loading:r,language:o,localeTag:s,onCancel:c,onRetry:l,onReplay:d,onOpenRunId:f,ownerAgentId:m,onClose:h}){let g=a(o).workflows,_=se(o),v=E(),[b,x]=(0,Z.useState)(!0),[C,w]=(0,Z.useState)(!1),[T,D]=(0,Z.useState)(null),[A,j]=(0,Z.useState)(!1),[M,ee]=(0,Z.useState)(null),[P,F]=(0,Z.useState)(null),[,te]=(0,Z.useState)(0),L=e?.run.status,R=L?le.has(L):!1;(0,Z.useEffect)(()=>{e?.run.id&&(x(R||L===`failed`||L===`timeout`),D(null),ee(null))},[e?.run.id,R,L,e?.run.metrics.errorAgentCount]),(0,Z.useEffect)(()=>{if(!R)return;let e=window.setInterval(()=>te(e=>e+1),1e3);return()=>window.clearInterval(e)},[R]);let B=(0,Z.useMemo)(()=>e?oe(e):null,[e]),V=(0,Z.useMemo)(()=>B?De(B):{phases:[],unphased:null},[B]),W=(0,Z.useMemo)(()=>T==null||!B?null:B.agents.find(e=>e.id===T)??null,[T,B]),G=(0,Z.useCallback)(e=>{D(e.id)},[]),ie=e?gn(e.run.result):null,K=(0,Z.useMemo)(()=>e?Re(e):[],[e]),ae=e?je(e.run.result):void 0,ce=Ne(ae),ue=ce.trim().length>0,de=(0,Z.useCallback)(async()=>{ue&&await U(ce)&&(j(!0),window.setTimeout(()=>j(!1),1500))},[ue,ce]),fe=(0,Z.useCallback)(()=>{if(!ue||!e)return;let t=new Blob([ce],{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)},[ue,ce,e]),pe=(0,Z.useCallback)(()=>{if(!e)return;let t=nn(e);t&&v(Be(t))},[v,e]),he=(0,Z.useCallback)(async t=>{if(e){ee(null),F(t.id);try{mn(await p(e.run.id,t.id,{ownerAgentId:m}),t.name||t.id)}catch(e){ee(e instanceof Error?e.message:String(e))}finally{F(null)}}},[m,e]),J=(0,Z.useCallback)(t=>{if(!e||!t.prompt)return;let n=nn(e);if(!n){U(t.prompt);return}v(Be(n,t.prompt))},[v,e]),_e=(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);D(Number.isFinite(i)?i:r+1)},[e]),ve=e?nn(e):null;if(r)return(0,$.jsx)(xe,{open:!0,onOpenChange:e=>!e&&h(),children:(0,$.jsxs)(q,{children:[(0,$.jsx)(u,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),(0,$.jsxs)(ne,{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)(me,{className:`text-base font-semibold tracking-tight text-fg`,children:g.runSummaryTitle}),(0,$.jsx)(S,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":g.pickStartClose,onClick:h,children:(0,$.jsx)(O,{className:`size-5`,"aria-hidden":!0})})]}),(0,$.jsx)(`div`,{className:`p-5 text-sm text-fg-muted`,children:g.loading})]})]})});if(!e||!B)return null;let{run:Y}=e,ye=e.controls.canCancel&&R,Se=R&&Y.startedAtMs!=null?Fe(Date.now()-Y.startedAtMs):Fe(Y.metrics.durationMs??void 0),Ce=en(e,g),Te=tn(e,g),Ee=Y.metadata,ke=rn(Y.source),Pe=e.controls.canRetry&&e.agents.some(e=>(e.status===`error`||e.status===`skipped`)&&e.prompt?.trim()),Le=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())),ze=Y.goal?.trim()||Y.title,Ve=K.length>0||!!Te,He=!!ve||ye,Ue=e.controls.canRetry||Pe||Le,Q=ue,We=He||Ue||Q;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(xe,{open:!0,onOpenChange:e=>!e&&h(),children:(0,$.jsxs)(q,{children:[(0,$.jsx)(u,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),(0,$.jsxs)(ne,{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)(me,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:ze}),(0,$.jsx)(S,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":g.pickStartClose,onClick:h,children:(0,$.jsx)(O,{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:ze}),(0,$.jsx)(`span`,{className:i(`rounded-full px-2 py-0.5 text-xs font-medium`,Me(Y.status)),children:Qt(Y.status,g)})]}),(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:[Y.title,` · `,Y.definitionId]}),(0,$.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:Ce}),Te?(0,$.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-fg-subtle`,children:Te}):null]})}),(0,$.jsxs)(`dl`,{className:`mt-4 grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,children:[(0,$.jsx)(Tn,{label:g.metrics.startedAt,value:Ae(Y.startedAtMs??Y.createdAtMs,s)}),(0,$.jsx)(Tn,{label:g.metrics.duration,value:Se}),(0,$.jsx)(Tn,{label:g.metrics.agents,value:X(g.agentProgress,{done:Y.metrics.doneAgentCount,total:Y.metrics.agentCount})}),(0,$.jsx)(Tn,{label:g.metrics.artifacts,value:String(Y.metrics.artifactCount)})]})]}),(0,$.jsxs)(`section`,{className:`mt-5`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:g.resultTitle}),ue?(0,$.jsx)(`div`,{className:`mt-3 rounded-xl border border-edge bg-surface-base/50 p-3`,children:(0,$.jsx)(re,{result:ae,labels:_.result})}):(0,$.jsx)(`div`,{className:`mt-3 rounded-xl border border-dashed border-edge p-4 text-sm text-fg-muted`,children:g.noResult}),(0,$.jsx)(pn,{outcome:ie,labels:g,downloadingArtifactId:P,downloadError:M,onCopyText:e=>void U(e),onDownloadArtifact:e=>void he(e),onStartFollowUp:J})]}),Ve?(0,$.jsx)(on,{diagnostics:K,labels:g,hint:Te,onOpenAgent:_e}):null,(0,$.jsx)(cn,{view:e,comparison:t,labels:g,onOpenRunId:f}),We?(0,$.jsxs)(`section`,{className:`mt-5 rounded-2xl border border-edge-subtle bg-surface-base/35 p-4`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:g.nextActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-3 grid gap-3 lg:grid-cols-3`,children:[He?(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-xs font-medium text-fg-subtle`,children:g.primaryActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[ve?(0,$.jsxs)(S,{variant:`primary`,onClick:pe,children:[(0,$.jsx)(I,{className:`size-4`,"aria-hidden":!0}),g.continueInChat]}):null,ye?(0,$.jsxs)(S,{variant:`secondary`,onClick:c,className:`text-red-600 dark:text-red-300`,children:[(0,$.jsx)(z,{className:`size-4`,"aria-hidden":!0}),g.cancel]}):null]})]}):null,Ue?(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-xs font-medium text-fg-subtle`,children:g.recoveryActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[Pe?(0,$.jsxs)(S,{variant:`secondary`,onClick:()=>d(`failed_agents`),children:[(0,$.jsx)(N,{className:`size-4`,"aria-hidden":!0}),g.replayFailedAgents]}):null,Le?(0,$.jsxs)(S,{variant:`secondary`,onClick:()=>d(`failed_phases`),children:[(0,$.jsx)(N,{className:`size-4`,"aria-hidden":!0}),g.replayFailedPhases]}):null,e.controls.canRetry?(0,$.jsxs)(S,{variant:`secondary`,onClick:l,children:[(0,$.jsx)(N,{className:`size-4`,"aria-hidden":!0}),g.rerun]}):null]})]}):null,Q?(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-xs font-medium text-fg-subtle`,children:g.resultActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[(0,$.jsxs)(S,{variant:`secondary`,onClick:de,children:[A?(0,$.jsx)(be,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(y,{className:`size-4`,"aria-hidden":!0}),A?g.copied:g.copyResult]}),(0,$.jsxs)(S,{variant:`secondary`,onClick:fe,children:[(0,$.jsx)(k,{className:`size-4`,"aria-hidden":!0}),g.exportResult]})]})]}):null]})]}):null,(0,$.jsxs)(`div`,{className:`mt-6 rounded-2xl border border-edge bg-surface-base/35`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-4 px-4 py-3 text-left`,onClick:()=>x(e=>!e),"aria-expanded":b,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:g.process}),(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:[X(g.agentProgress,{done:Y.metrics.doneAgentCount,total:Y.metrics.agentCount}),` · `,Se]})]}),(0,$.jsx)(ge,{className:i(`size-4 shrink-0 text-fg-subtle transition-transform`,b?`rotate-180`:null),"aria-hidden":!0})]}),b?(0,$.jsxs)(`div`,{className:`border-t border-edge px-4 pb-4 pt-4`,children:[R?(0,$.jsx)(Oe,{snapshot:B,labels:_,logsExpanded:C,onToggleLogs:()=>w(e=>!e),selectedAgentId:T,onSelectAgent:G}):(0,$.jsx)(we,{rollup:V,currentPhase:B.currentPhase,labels:_.phase,recentLogs:B.logs,recentLogsHeading:_.recentLogsHeading,showAllLogsLabel:_.showAllLogs,logsExpanded:C,onToggleLogs:()=>w(e=>!e),selectedAgentId:T,onSelectAgent:G}),e.phases.length>0?(0,$.jsx)(`div`,{className:`mt-4 grid gap-2 sm:grid-cols-2`,children:e.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:$t(e.status,g)})]})},e.id))}):null]}):null]}),(0,$.jsx)(_n,{agents:B.agents,labels:g,metadataItems:[{label:g.metadataSession,value:Ee?.sessionKey??Ie(e)??`—`},{label:g.metadataSource,value:ke},{label:g.metadataDefinition,value:`${Ee?.definition.version??Y.definitionVersion} · ${Ee?.definition.source??`unknown`}`},{label:g.metadataDefinitionHash,value:ln(Ee?.definition,n,g)},{label:g.metadataPermissions,value:un(Ee?.definition)},{label:g.metadataRetryOf,value:Ee?.retryOfRunId??`—`}],defaultExpanded:Y.status===`failed`||Y.status===`timeout`})]})]})]})}),(0,$.jsx)(H,{open:T!=null&&W!=null,agent:W,snapshot:B,sessionKey:null,ownerAgentId:m,onClose:()=>D(null),labels:_.drawer})]})}function on(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)(L,{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:sn(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)(S,{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 sn(e,t){return e.kind===`run_error`?e.code?X(t.diagnosticsRunErrorWithCode,{code:e.code}):t.diagnosticsRunError:e.kind===`agent_error`?X(t.diagnosticsAgentError,{agent:e.agentLabel??String(e.agentId??`—`)}):e.kind===`step_error`?X(t.diagnosticsStepError,{agent:e.agentLabel??String(e.agentId??`—`),step:e.stepLabel??e.stepId??`—`}):X(t.diagnosticsAgentSkipped,{agent:e.agentLabel??String(e.agentId??`—`)})}function cn(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=X(i.replayLineageSummary,{scope:fn(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)(En,{label:i.replaySourceRun,value:o.sourceRunId}),t[8]=i.replaySourceRun,t[9]=o.sourceRunId,t[10]=u):u=t[10];let d=i.replayTargetAgents,f;t[11]===o.agentIds?f=t[12]:(f=o.agentIds.join(`, `),t[11]=o.agentIds,t[12]=f);let p;t[13]!==i.replayTargetAgents||t[14]!==f?(p=(0,$.jsx)(En,{label:d,value:f}),t[13]=i.replayTargetAgents,t[14]=f,t[15]=p):p=t[15];let m;t[16]!==u||t[17]!==p?(m=(0,$.jsxs)(`dl`,{className:`mt-3 grid gap-2 text-xs sm:grid-cols-2`,children:[u,p]}),t[16]=u,t[17]=p,t[18]=m):m=t[18];let h;t[19]!==r||t[20]!==i.replayDurationDelta||t[21]!==i.replayFixedAgents||t[22]!==i.replayStillFailingAgents?(h=r?(0,$.jsxs)(`div`,{className:`mt-3 grid gap-2 sm:grid-cols-3`,children:[(0,$.jsx)(Tn,{label:i.replayFixedAgents,value:String(r.fixedAgentIds.length)}),(0,$.jsx)(Tn,{label:i.replayStillFailingAgents,value:String(r.stillFailingAgentIds.length)}),(0,$.jsx)(Tn,{label:i.replayDurationDelta,value:dn(r.durationDeltaMs)})]}):null,t[19]=r,t[20]=i.replayDurationDelta,t[21]=i.replayFixedAgents,t[22]=i.replayStillFailingAgents,t[23]=h):h=t[23];let g;t[24]!==s||t[25]!==l||t[26]!==m||t[27]!==h?(g=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[s,l,m,h]}),t[24]=s,t[25]=l,t[26]=m,t[27]=h,t[28]=g):g=t[28];let _;t[29]!==i.replayOpenSource||t[30]!==a||t[31]!==o.sourceRunId?(_=a?(0,$.jsx)(S,{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]=_):_=t[32];let v;return t[33]!==g||t[34]!==_?(v=(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:[g,_]})}),t[33]=g,t[34]=_,t[35]=v):v=t[35],v}function ln(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 un(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 dn(e){return e==null?`—`:`${e>0?`+`:e<0?`-`:``}${Fe(Math.abs(e))}`}function fn(e,t){return e===`failed_phases`?t.replayScopeFailedPhases:t.replayScopeFailedAgents}function pn(e){let t=(0,Q.c)(18),{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)return null;let l;t[0]!==a||t[1]!==i||t[2]!==r||t[3]!==s||t[4]!==n.artifacts?(l=n.artifacts.length>0?(0,$.jsxs)(hn,{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)(k,{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[0]=a,t[1]=i,t[2]=r,t[3]=s,t[4]=n.artifacts,t[5]=l):l=t[5];let u;t[6]!==r||t[7]!==o||t[8]!==c||t[9]!==n.followUps?(u=n.followUps.length>0?(0,$.jsx)(hn,{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[6]=r,t[7]=o,t[8]=c,t[9]=n.followUps,t[10]=u):u=t[10];let d;t[11]!==r||t[12]!==n.structuredOutput?(d=n.structuredOutput===void 0?null:(0,$.jsx)(hn,{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:Ne(n.structuredOutput)})}),t[11]=r,t[12]=n.structuredOutput,t[13]=d):d=t[13];let f;return t[14]!==l||t[15]!==u||t[16]!==d?(f=(0,$.jsxs)(`div`,{className:`mt-3 grid gap-3 lg:grid-cols-3`,children:[l,u,d]}),t[14]=l,t[15]=u,t[16]=d,t[17]=f):f=t[17],f}function mn(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),URL.revokeObjectURL(n)}function hn(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 gn(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 _n(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(yn),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)(ge,{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)(bn,{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(vn)})]}):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 vn(e){return(0,$.jsx)(En,{label:e.label,value:e.value},e.label)}function yn(e){return!e}function bn(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`,wn(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)(xn,{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 xn(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(Cn),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(Sn)}),t[19]=m,t[20]=h),h}function Sn(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 Cn(e){return!!e.value}function wn(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 Tn(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 En(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}var Dn=`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`;function On(e){return!!(e&&e.type===`object`&&e.properties&&!Array.isArray(e.properties))}function kn({schema:e,value:t,onChange:n,labels:r}){let a=(0,Z.useMemo)(()=>Mn(e),[e]),[o,s]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(()=>JSON.stringify(t,null,2)),[u,d]=(0,Z.useState)(null);if(a.length===0)return null;let f=(e,r)=>{let i={...t,[e]:r};(r===``||r===void 0)&&delete i[e],n(i),o&&l(JSON.stringify(i,null,2))},p=e=>{l(e);try{let t=e.trim()?JSON.parse(e):{};if(!t||typeof t!=`object`||Array.isArray(t)){d(r.rawJsonInvalid);return}d(null),n(t)}catch{d(r.rawJsonInvalid)}};return(0,$.jsxs)(`section`,{className:`rounded-2xl border border-edge-subtle bg-surface-base/35 p-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.inputSchemaHeading}),(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent-fg hover:underline`,onClick:()=>{let e=!o;s(e),e&&(l(JSON.stringify(t,null,2)),d(null))},children:r.rawJson})]}),o?(0,$.jsxs)(`div`,{className:`mt-3`,children:[(0,$.jsx)(`textarea`,{value:c,onChange:e=>p(e.target.value),spellCheck:!1,className:i(Dn,`min-h-40 font-mono text-xs leading-5`)}),u?(0,$.jsx)(`p`,{className:`mt-1 text-xs text-red-600 dark:text-red-300`,children:u}):null]}):(0,$.jsx)(`div`,{className:`mt-3 grid gap-3`,children:a.map(e=>(0,$.jsx)(An,{field:e,value:t[e.key],labels:r,onChange:t=>f(e.key,t)},e.key))})]})}function An(e){let t=(0,Q.c)(18),{field:n,value:r,labels:a,onChange:o}=e,s=n.schema.title||n.key,c=typeof n.schema.description==`string`?n.schema.description:void 0,l=Array.isArray(n.schema.type)?n.schema.type[0]:n.schema.type,u;t[0]===n.schema.enum?u=t[1]:(u=Array.isArray(n.schema.enum)?n.schema.enum:[],t[0]=n.schema.enum,t[1]=u);let d=u,f=String(s),p=n.required?` *`:``,m;t[2]!==f||t[3]!==p?(m=(0,$.jsxs)(`span`,{className:`text-xs font-medium text-fg`,children:[f,p]}),t[2]=f,t[3]=p,t[4]=m):m=t[4];let h;t[5]===c?h=t[6]:(h=c?(0,$.jsx)(`p`,{className:`mt-0.5 text-xs leading-5 text-fg-subtle`,children:c}):null,t[5]=c,t[6]=h);let g;t[7]!==c||t[8]!==d||t[9]!==a||t[10]!==o||t[11]!==l||t[12]!==r?(g=d.length>0?(0,$.jsxs)(`select`,{value:r==null?``:String(r),onChange:e=>o(e.target.value),className:Dn,children:[(0,$.jsx)(`option`,{value:``}),d.map(jn)]}):l===`boolean`?(0,$.jsxs)(`select`,{value:typeof r==`boolean`?String(r):``,onChange:e=>o(e.target.value===``?void 0:e.target.value===`true`),className:Dn,children:[(0,$.jsx)(`option`,{value:``}),(0,$.jsx)(`option`,{value:`true`,children:a.booleanTrue}),(0,$.jsx)(`option`,{value:`false`,children:a.booleanFalse})]}):l===`number`||l===`integer`?(0,$.jsx)(`input`,{type:`number`,value:typeof r==`number`||typeof r==`string`?String(r):``,onChange:e=>o(e.target.value===``?void 0:Number(e.target.value)),className:Dn}):(0,$.jsx)(`textarea`,{value:typeof r==`string`?r:r==null?``:String(r),onChange:e=>o(e.target.value),className:i(Dn,c&&c.length>80?`min-h-20 resize-y`:`min-h-10 resize-y`)}),t[7]=c,t[8]=d,t[9]=a,t[10]=o,t[11]=l,t[12]=r,t[13]=g):g=t[13];let _;return t[14]!==m||t[15]!==h||t[16]!==g?(_=(0,$.jsxs)(`label`,{className:`block`,children:[m,h,g]}),t[14]=m,t[15]=h,t[16]=g,t[17]=_):_=t[17],_}function jn(e){return(0,$.jsx)(`option`,{value:String(e),children:String(e)},String(e))}function Mn(e){let t=e.properties??{},n=new Set(e.required??[]);return Object.entries(t).map(([e,t])=>({key:e,schema:t,required:n.has(e)}))}function Nn(e){let t=(0,Q.c)(12),{examples:n,labels:r,onSelect:i}=e;if(n.length===0)return null;let a;t[0]===r.examplePrompts?a=t[1]:(a=(0,$.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:r.examplePrompts}),t[0]=r.examplePrompts,t[1]=a);let o;if(t[2]!==n||t[3]!==i){let e;t[5]===i?e=t[6]:(e=e=>(0,$.jsx)(`button`,{type:`button`,onClick:()=>i(e),className:`rounded-lg border border-edge bg-surface-base/50 px-3 py-2 text-left text-xs text-fg-muted hover:bg-surface-hover`,children:e.text},`${e.field}:${e.text}`),t[5]=i,t[6]=e),o=n.map(e),t[2]=n,t[3]=i,t[4]=o}else o=t[4];let s;t[7]===o?s=t[8]:(s=(0,$.jsx)(`div`,{className:`mt-2 flex flex-col gap-1.5`,children:o}),t[7]=o,t[8]=s);let c;return t[9]!==a||t[10]!==s?(c=(0,$.jsxs)(`div`,{children:[a,s]}),t[9]=a,t[10]=s,t[11]=c):c=t[11],c}function Pn(e,t){let n=e.metadata.estimatedAgents;return n?n.min===n.max?X(t.agentScaleExact,{count:n.min}):X(t.agentScaleRange,{min:n.min,max:n.max}):X(t.agentScaleExact,{count:e.defaults.maxSubagents})}function Fn(e,t,n,r){let i=Object.values(t).map(e=>e.trim()).filter(Boolean),a=e.trim()||n;return a&&i.unshift(a),i.length===0?r.noInputSummary:i.join(` · `)}function In(e){let t=(0,Q.c)(58),{open:n,definition:r,language:o,starting:s,onClose:c,onStart:l}=e,d=a(o).workflows,[f,p]=(0,Z.useState)(``),m;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(m={},t[0]=m):m=t[0];let[h,g]=(0,Z.useState)(m),_;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(_={},t[1]=_):_=t[1];let[v,y]=(0,Z.useState)(_),[b,x]=(0,Z.useState)(``),[C,w]=(0,Z.useState)(``),[T,E]=(0,Z.useState)(!1),D;t[2]!==r||t[3]!==o?(D=r?Pe(r,o):null,t[2]=r,t[3]=o,t[4]=D):D=t[4];let O=D,k;t[5]===r?k=t[6]:(k=r?he[r.name]??[]:[],t[5]=r,t[6]=k);let j=k,M;t[7]===O?.examplePrompts?M=t[8]:(M=O?.examplePrompts??[],t[7]=O?.examplePrompts,t[8]=M);let N=M,ee=r?.inputSchema,P;t[9]===ee?P=t[10]:(P=On(ee),t[9]=ee,t[10]=P);let F=P,te=!F&&j.length>0,I;t[11]!==b||t[12]!==r?.defaults?(I=b.trim()?Number(b):r?.defaults.concurrency,t[11]=b,t[12]=r?.defaults,t[13]=I):I=t[13];let L=I,z;t[14]!==r?.defaults||t[15]!==C?(z=C.trim()?Number(C):r?.defaults.maxSubagents,t[14]=r?.defaults,t[15]=C,t[16]=z):z=t[16];let B=z,re=r&&O?F&&Object.keys(v).length>0?Object.entries(v).map(zn).join(` · `):Fn(f,h,O.description,d):d.noInputSummary,V;t[17]!==r||t[18]!==n?(V=()=>{!n||!r||(p(``),g({}),y({}),x(``),w(``),E(!1))},t[17]=r,t[18]=n,t[19]=V):V=t[19];let H=r?.id,U;if(t[20]!==n||t[21]!==H?(U=[n,H],t[20]=n,t[21]=H,t[22]=U):U=t[22],(0,Z.useEffect)(V,U),!r||!O)return null;let ie;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(ie=e=>{Le(e,p,g)},t[23]=ie):ie=t[23];let K=ie,ae;t[24]!==h||t[25]!==b||t[26]!==f||t[27]!==F||t[28]!==O.description||t[29]!==C||t[30]!==l||t[31]!==v?(ae=()=>{let e=F&&Object.keys(v).length>0?v:He(h);l({goal:f.trim()||O.description,input:e,concurrency:b.trim()?Number(b):void 0,maxSubagents:C.trim()?Number(C):void 0})},t[24]=h,t[25]=b,t[26]=f,t[27]=F,t[28]=O.description,t[29]=C,t[30]=l,t[31]=v,t[32]=ae):ae=t[32];let oe=ae,se;t[33]===c?se=t[34]:(se=e=>!e&&c(),t[33]=c,t[34]=se);let ce;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,$.jsx)(u,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[35]=ce):ce=t[35];let le;t[36]===O.description?le=t[37]:(le=(0,$.jsx)(A,{className:`mt-1 text-sm text-fg-muted`,children:O.description}),t[36]=O.description,t[37]=le);let ue;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(ue=(0,$.jsx)(G,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[38]=ue):ue=t[38];let de;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(de=(0,$.jsx)(ke,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[39]=de):de=t[39];let fe;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(fe=(0,$.jsx)(W,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[40]=fe):fe=t[40];let pe;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(pe=e=>p(e.target.value),t[41]=pe):pe=t[41];let J;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(J=()=>E(Ln),t[42]=J):J=t[42];let _e=d.advancedSettings,ve=T&&`rotate-180`,Y;t[43]===ve?Y=t[44]:(Y=i(`size-4 transition-transform`,ve),t[43]=ve,t[44]=Y);let ye;t[45]===Y?ye=t[46]:(ye=(0,$.jsx)(ge,{className:Y}),t[45]=Y,t[46]=ye);let be;t[47]!==d.cancelDialog||t[48]!==c||t[49]!==s?(be=(0,$.jsx)(S,{variant:`secondary`,onClick:c,disabled:s,children:d.cancelDialog}),t[47]=d.cancelDialog,t[48]=c,t[49]=s,t[50]=be):be=t[50];let Se=s?d.starting:d.start,Ce;t[51]!==s||t[52]!==oe||t[53]!==Se?(Ce=(0,$.jsx)(S,{variant:`primary`,onClick:oe,disabled:s,children:Se}),t[51]=s,t[52]=oe,t[53]=Se,t[54]=Ce):Ce=t[54];let we;return t[55]!==be||t[56]!==Ce?(we=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[be,Ce]}),t[55]=be,t[56]=Ce,t[57]=we):we=t[57],(0,$.jsx)(xe,{open:n,onOpenChange:se,children:(0,$.jsxs)(q,{children:[ce,(0,$.jsxs)(ne,{className:`fixed left-1/2 top-1/2 z-66 flex max-h-[min(85vh,40rem)] w-[min(100%-2rem,32rem)] -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:`border-b border-edge px-5 py-4`,children:[(0,$.jsxs)(me,{className:`text-base font-semibold text-fg`,children:[d.startTitle,` · `,r.title]}),le]}),(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-auto px-5 py-4`,children:[(0,$.jsxs)(`section`,{className:`rounded-2xl border border-edge bg-surface-base/70 p-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:d.runPlanPreview}),(0,$.jsx)(`p`,{className:`mt-1 line-clamp-2 text-xs leading-5 text-fg-muted`,children:re})]}),(0,$.jsx)(`span`,{className:`shrink-0 rounded-full bg-accent-soft px-2 py-1 text-[11px] font-medium text-accent-fg`,children:d.readyToStart})]}),(0,$.jsxs)(`div`,{className:`mt-4 grid gap-2 text-xs text-fg-muted sm:grid-cols-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[ue,(0,$.jsx)(`span`,{children:X(d.phaseCount,{count:r.phases.length})})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[de,(0,$.jsx)(`span`,{children:Pn(r,d)})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[fe,(0,$.jsx)(`span`,{children:X(d.runLimitsSummary,{concurrency:L??r.defaults.concurrency,max:B??r.defaults.maxSubagents})})]})]}),r.phases.length>0?(0,$.jsxs)(`div`,{className:`mt-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] font-medium uppercase tracking-wide text-fg-subtle`,children:[(0,$.jsx)(R,{className:`size-3.5`,"aria-hidden":!0}),d.startPlanPhases]}),(0,$.jsx)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5`,children:r.phases.map(Rn)})]}):null]}),F&&r.inputSchema?(0,$.jsx)(kn,{schema:r.inputSchema,value:v,onChange:y,labels:{inputSchemaHeading:d.inputSchemaHeading,rawJson:d.rawJson,rawJsonInvalid:d.rawJsonInvalid,booleanTrue:d.booleanTrue,booleanFalse:d.booleanFalse}}):null,!F&&j.map(e=>(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsxs)(`span`,{className:`text-xs font-medium text-fg`,children:[Bn(d,e.labelKey),e.required?` *`:``]}),e.multiline?(0,$.jsx)(`textarea`,{value:h[e.key]??``,onChange:t=>g(n=>({...n,[e.key]:t.target.value})),placeholder:Bn(d,e.placeholderKey),className:`mt-1.5 min-h-20 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}):(0,$.jsx)(`input`,{value:h[e.key]??``,onChange:t=>g(n=>({...n,[e.key]:t.target.value})),placeholder:Bn(d,e.placeholderKey),className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]},e.key)),te?(0,$.jsx)(Nn,{examples:N,labels:d,onSelect:K}):null,(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:d.goalLabel}),(0,$.jsx)(`textarea`,{value:f,onChange:pe,placeholder:d.goalPlaceholder,className:`mt-1.5 min-h-24 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}),te?null:(0,$.jsx)(Nn,{examples:N,labels:d,onSelect:K}),(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between px-3 py-2.5 text-left text-sm text-fg`,onClick:J,children:[_e,ye]}),T?(0,$.jsxs)(`div`,{className:`grid gap-3 border-t border-edge px-3 pb-3 pt-3 sm:grid-cols-2`,children:[(0,$.jsx)(`input`,{value:b,onChange:e=>x(e.target.value),placeholder:X(d.concurrencyPlaceholder,{default:r.defaults.concurrency}),inputMode:`numeric`,className:`rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}),(0,$.jsx)(`input`,{value:C,onChange:e=>w(e.target.value),placeholder:X(d.maxSubagentsPlaceholder,{default:r.defaults.maxSubagents}),inputMode:`numeric`,className:`rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}):null]})]}),we]})]})})}function Ln(e){return!e}function Rn(e,t){return(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[t>0?(0,$.jsx)(`span`,{className:`text-fg-subtle`,children:`→`}):null,(0,$.jsx)(`span`,{className:`rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1 text-[11px] text-fg-muted`,children:e.title})]},e.id)}function zn(e){let[t,n]=e;return`${t}: ${String(n)}`}function Bn(e,t){return e.args[t]??t}function Vn(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]?X(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)(Hn,{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)(Hn,{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)(Hn,{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?`—`:Fe(n.averageDurationMs),t[17]=n.averageDurationMs,t[18]=_);let v;t[19]!==i.statsAvgDuration||t[20]!==_?(v=(0,$.jsx)(Hn,{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 Hn(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 Un(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)(de,{className:`size-4`,"aria-hidden":!0}),t[2]=l):l=t[2];let u;t[3]!==r.boardStart||t[4]!==c?(u=(0,$.jsxs)(S,{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 f;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(pe,{className:`size-4`,"aria-hidden":!0}),t[8]=f):f=t[8];let p;t[9]!==r.addWorkflow||t[10]!==d?(p=(0,$.jsxs)(S,{variant:`secondary`,className:`h-9 rounded-lg`,onClick:d,children:[f,r.addWorkflow]}),t[9]=r.addWorkflow,t[10]=d,t[11]=p):p=t[11];let m;t[12]!==r.refresh||t[13]!==i||t[14]!==a?(m=(0,$.jsx)(_,{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]=m):m=t[15];let h;return t[16]!==u||t[17]!==p||t[18]!==m?(h=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[u,p,m]}),t[16]=u,t[17]=p,t[18]=m,t[19]=h):h=t[19],h}var Wn=[`attention`,`running`,`queued`,`recent`];function Gn(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 Kn(e){return e.completedAtMs??e.startedAtMs??e.createdAtMs}function qn(e,t){let n=[...t];return e===`queued`?n.sort((e,t)=>e.createdAtMs-t.createdAtMs):n.sort((e,t)=>Kn(t)-Kn(e))}function Jn(e){let t=new Map(Wn.map(e=>[e,[]]));for(let n of e){let e=Gn(n);e&&t.get(e)?.push(n)}for(let e of Wn)t.set(e,qn(e,t.get(e)??[]));return t}function Yn(e){let t=(0,Q.c)(205),{vm:n}=e,{language:r,localeTag:o,labels:s,hasToken:c,definitions:u,runs:d,searchQuery:f,setSearchQuery:p,ownerAgentId:m,agentOptions:h,setOwnerAgentId:g,workflowFilterId:_,setWorkflowFilterId:v,triggerFilter:y,setTriggerFilter:x,selectedRunId:S,selectedRunView:C,selectedRunComparison:w,selectedRunLoading:T,selectedRunError:E,openRunDetails:D,closeRunDetails:O,openRunDetailsById:k,openRunInChat:A,pickStartOpen:j,setPickStartOpen:M,startDefinition:N,setStartDefinition:P,detailDefinition:F,setDetailDefinition:te,manageOpen:I,setManageOpen:L,workflowEditorDraft:R,openWorkflowEditor:z,actionError:B,actionFeedback:ne,starting:re,savingWorkflow:V,loading:H,error:U,stats:W,submitStart:G,cancelRun:ie,retryRun:K,replayRun:q,saveCustomWorkflow:ae,saveDraftAndStart:oe}=n,se=Y(Qn),le=Y(Zn),[ue,de]=(0,Z.useState)(`operations`),fe;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(fe=Date.now(),t[0]=fe):fe=t[0];let pe=fe,me=Jn(et(d,{searchQuery:f,workflowFilterId:_,triggerFilter:y})),he;t[1]!==le||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?(he=()=>{if(!c){le();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)(Un,{vm:n})}),()=>le()},t[1]=le,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]=he):he=t[10];let J;if(t[11]!==le||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?(J=[le,c,s.title,s.statsActiveRuns,s.statsTotalRuns,s.subtitleBoard,H,W,n,n.refreshAll,n.setManageOpen,n.setSearchQuery],t[11]=le,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]=J):J=t[20],(0,Z.useLayoutEffect)(he,J),!c){let e;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(ee,{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:`mx-auto flex w-full max-w-app-main flex-col items-center px-4 py-16 text-center sm:px-8`,children:[e,n,r]})}),t[26]=n,t[27]=r,t[28]=i):i=t[28],i}let ge;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(ge=(0,$.jsx)(ce,{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]=ge):ge=t[29];let _e;t[30]===p?_e=t[31]:(_e=e=>p(e.target.value),t[30]=p,t[31]=_e);let ve=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`,Ee.focusRingPanel),t[32]=be):be=t[32];let xe;t[33]!==s.searchPlaceholder||t[34]!==f||t[35]!==_e?(xe=(0,$.jsxs)(`div`,{className:`relative min-w-48 flex-1 sm:max-w-xs`,children:[ge,(0,$.jsx)(`input`,{value:f,onChange:_e,placeholder:ve,className:be})]}),t[33]=s.searchPlaceholder,t[34]=f,t[35]=_e,t[36]=xe):xe=t[36];let Se;t[37]!==h||t[38]!==r||t[39]!==m||t[40]!==g?(Se=h.length>1?(0,$.jsx)(`select`,{value:m??``,"aria-label":`Agent`,onChange:e=>g(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`,Ee.focusRingPanel),children:h.map(e=>(0,$.jsx)(`option`,{value:e.id,children:b(e,a(r).agentsSettings)},e.id))}):null,t[37]=h,t[38]=r,t[39]=m,t[40]=g,t[41]=Se):Se=t[41];let Ce=s.boardTriggerFilterAria,we;t[42]===x?we=t[43]:(we=e=>x(e.target.value),t[42]=x,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`,Ee.focusRingPanel),t[44]=Te):Te=t[44];let De;t[45]===s.boardTriggerFilterAll?De=t[46]:(De=(0,$.jsx)(`option`,{value:`all`,children:s.boardTriggerFilterAll}),t[45]=s.boardTriggerFilterAll,t[46]=De);let Oe;t[47]===s.boardTriggerFilterCron?Oe=t[48]:(Oe=(0,$.jsx)(`option`,{value:`cron`,children:s.boardTriggerFilterCron}),t[47]=s.boardTriggerFilterCron,t[48]=Oe);let ke;t[49]===s.boardTriggerFilterWebui?ke=t[50]:(ke=(0,$.jsx)(`option`,{value:`webui`,children:s.boardTriggerFilterWebui}),t[49]=s.boardTriggerFilterWebui,t[50]=ke);let Ae;t[51]===s.boardTriggerFilterChat?Ae=t[52]:(Ae=(0,$.jsx)(`option`,{value:`chat`,children:s.boardTriggerFilterChat}),t[51]=s.boardTriggerFilterChat,t[52]=Ae);let je;t[53]===s.boardTriggerFilterApi?je=t[54]:(je=(0,$.jsx)(`option`,{value:`api`,children:s.boardTriggerFilterApi}),t[53]=s.boardTriggerFilterApi,t[54]=je);let Me;t[55]!==s.boardTriggerFilterAria||t[56]!==we||t[57]!==De||t[58]!==Oe||t[59]!==ke||t[60]!==Ae||t[61]!==je||t[62]!==y?(Me=(0,$.jsxs)(`select`,{value:y,"aria-label":Ce,onChange:we,className:Te,children:[De,Oe,ke,Ae,je]}),t[55]=s.boardTriggerFilterAria,t[56]=we,t[57]=De,t[58]=Oe,t[59]=ke,t[60]=Ae,t[61]=je,t[62]=y,t[63]=Me):Me=t[63];let Ne=s.boardWorkflowFilterAria,Pe;t[64]===v?Pe=t[65]:(Pe=e=>v(e.target.value),t[64]=v,t[65]=Pe);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`,Ee.focusRingPanel),t[66]=Fe):Fe=t[66];let Ie;t[67]===s.boardWorkflowFilterAll?Ie=t[68]:(Ie=(0,$.jsx)(`option`,{value:``,children:s.boardWorkflowFilterAll}),t[67]=s.boardWorkflowFilterAll,t[68]=Ie);let Le;t[69]===u?Le=t[70]:(Le=u.map(Xn),t[69]=u,t[70]=Le);let Re;t[71]!==s.boardWorkflowFilterAria||t[72]!==Pe||t[73]!==Ie||t[74]!==Le||t[75]!==_?(Re=(0,$.jsxs)(`select`,{value:_,"aria-label":Ne,onChange:Pe,className:Fe,children:[Ie,Le]}),t[71]=s.boardWorkflowFilterAria,t[72]=Pe,t[73]=Ie,t[74]=Le,t[75]=_,t[76]=Re):Re=t[76];let ze=ue===`operations`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:text-fg`,Be;t[77]===ze?Be=t[78]:(Be=i(`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium transition-colors`,ze),t[77]=ze,t[78]=Be);let Ve,X;t[79]===Symbol.for(`react.memo_cache_sentinel`)?(Ve=()=>de(`operations`),X=(0,$.jsx)(l,{className:`size-3.5`,"aria-hidden":!0}),t[79]=Ve,t[80]=X):(Ve=t[79],X=t[80]);let He;t[81]!==s.viewModes.operations||t[82]!==Be?(He=(0,$.jsxs)(`button`,{type:`button`,className:Be,onClick:Ve,children:[X,s.viewModes.operations]}),t[81]=s.viewModes.operations,t[82]=Be,t[83]=He):He=t[83];let Ue=ue===`board`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:text-fg`,We;t[84]===Ue?We=t[85]:(We=i(`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium transition-colors`,Ue),t[84]=Ue,t[85]=We);let Ge,Ke;t[86]===Symbol.for(`react.memo_cache_sentinel`)?(Ge=()=>de(`board`),Ke=(0,$.jsx)(ye,{className:`size-3.5`,"aria-hidden":!0}),t[86]=Ge,t[87]=Ke):(Ge=t[86],Ke=t[87]);let qe;t[88]!==s.viewModes.board||t[89]!==We?(qe=(0,$.jsxs)(`button`,{type:`button`,className:We,onClick:Ge,children:[Ke,s.viewModes.board]}),t[88]=s.viewModes.board,t[89]=We,t[90]=qe):qe=t[90];let Je;t[91]!==He||t[92]!==qe?(Je=(0,$.jsxs)(`div`,{className:`flex rounded-lg border border-edge bg-surface-muted p-0.5`,children:[He,qe]}),t[91]=He,t[92]=qe,t[93]=Je):Je=t[93];let Ye;t[94]!==xe||t[95]!==Se||t[96]!==Me||t[97]!==Re||t[98]!==Je?(Ye=(0,$.jsxs)(`section`,{className:`mx-auto flex w-full max-w-app-main flex-wrap items-center gap-2 rounded-lg border border-edge bg-surface-panel/70 px-3 py-2`,children:[xe,Se,Me,Re,Je]}),t[94]=xe,t[95]=Se,t[96]=Me,t[97]=Re,t[98]=Je,t[99]=Ye):Ye=t[99];let Xe;t[100]===ne?Xe=t[101]:(Xe=ne?(0,$.jsx)(`div`,{className:`mx-auto w-full max-w-app-main 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:ne}):null,t[100]=ne,t[101]=Xe);let Ze;t[102]!==B||t[103]!==U?(Ze=B??U?(0,$.jsx)(`div`,{className:`mx-auto w-full max-w-app-main 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:B??U}):null,t[102]=B,t[103]=U,t[104]=Ze):Ze=t[104];let Qe;t[105]!==r||t[106]!==W?(Qe=(0,$.jsx)(`div`,{className:`mx-auto w-full max-w-app-main`,children:(0,$.jsx)(Vn,{stats:W,language:r})}),t[105]=r,t[106]=W,t[107]=Qe):Qe=t[107];let $e;t[108]===E?$e=t[109]:($e=E?(0,$.jsx)(`div`,{className:`mx-auto w-full max-w-app-main 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:E}):null,t[108]=E,t[109]=$e);let tt=ue===`operations`?(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto pb-3`,children:(0,$.jsx)(`div`,{className:`mx-auto grid w-full max-w-app-main gap-4`,children:Wn.map(e=>{let t=me.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)(dt,{run:e,language:r,localeTag:o,nowMs:pe,selected:e.id===S,onOpen:D,onOpenChat:A,onCancel:e=>void ie(e),onRetry:e=>void K(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:`mx-auto min-h-0 w-full max-w-app-main flex-1`,children:(0,$.jsx)(gt,{runs:d,language:r,localeTag:o,labels:{boardEmptyTitle:s.boardEmptyTitle,boardEmptyHint:s.boardEmptyHint,boardStart:s.boardStart,loading:s.loading},searchQuery:f,workflowFilterId:_,triggerFilter:y,selectedRunId:S,loading:H,onOpenRun:D,onOpenRunChat:A,onCancelRun:e=>void ie(e),onRetryRun:e=>void K(e),onStart:()=>M(!0)})}),nt;t[110]!==Ye||t[111]!==Xe||t[112]!==Ze||t[113]!==Qe||t[114]!==$e||t[115]!==tt?(nt=(0,$.jsxs)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col gap-4 px-4 py-5 sm:px-6 2xl:px-8`,children:[Ye,Xe,Ze,Qe,$e,tt]}),t[110]=Ye,t[111]=Xe,t[112]=Ze,t[113]=Qe,t[114]=$e,t[115]=tt,t[116]=nt):nt=t[116];let rt;if(t[117]!==u||t[118]!==C?.run){let e;t[120]===C?.run?e=t[121]:(e=e=>e.id===C?.run.definitionId,t[120]=C?.run,t[121]=e),rt=u.find(e),t[117]=u,t[118]=C?.run,t[119]=rt}else rt=t[119];let it=!!S&&T,at;t[122]!==ie||t[123]!==S?(at=()=>{S&&ie(S)},t[122]=ie,t[123]=S,t[124]=at):at=t[124];let ot;t[125]!==K||t[126]!==S?(ot=()=>{S&&K(S)},t[125]=K,t[126]=S,t[127]=ot):ot=t[127];let st;t[128]!==q||t[129]!==S?(st=e=>{S&&q(S,e)},t[128]=q,t[129]=S,t[130]=st):st=t[130];let ct;t[131]!==O||t[132]!==r||t[133]!==o||t[134]!==k||t[135]!==m||t[136]!==w||t[137]!==C||t[138]!==rt||t[139]!==it||t[140]!==at||t[141]!==ot||t[142]!==st?(ct=(0,$.jsx)(an,{view:C,comparison:w,currentDefinition:rt,loading:it,language:r,localeTag:o,onCancel:at,onRetry:ot,onReplay:st,onOpenRunId:k,ownerAgentId:m,onClose:O}),t[131]=O,t[132]=r,t[133]=o,t[134]=k,t[135]=m,t[136]=w,t[137]=C,t[138]=rt,t[139]=it,t[140]=at,t[141]=ot,t[142]=st,t[143]=ct):ct=t[143];let lt;t[144]===M?lt=t[145]:(lt=()=>M(!1),t[144]=M,t[145]=lt);let ut;t[146]!==M||t[147]!==P?(ut=e=>{M(!1),P(e)},t[146]=M,t[147]=P,t[148]=ut):ut=t[148];let ft;t[149]!==te||t[150]!==M?(ft=e=>{M(!1),te(e)},t[149]=te,t[150]=M,t[151]=ft):ft=t[151];let pt;t[152]!==u||t[153]!==r||t[154]!==z||t[155]!==j||t[156]!==lt||t[157]!==ut||t[158]!==ft?(pt=(0,$.jsx)(Xt,{open:j,definitions:u,language:r,onClose:lt,onPick:ut,onDetail:ft,onEdit:z}),t[152]=u,t[153]=r,t[154]=z,t[155]=j,t[156]=lt,t[157]=ut,t[158]=ft,t[159]=pt):pt=t[159];let mt=N!=null,ht;t[160]===P?ht=t[161]:(ht=()=>P(null),t[160]=P,t[161]=ht);let _t;t[162]===G?_t=t[163]:(_t=e=>void G(e),t[162]=G,t[163]=_t);let vt;t[164]!==r||t[165]!==N||t[166]!==re||t[167]!==mt||t[168]!==ht||t[169]!==_t?(vt=(0,$.jsx)(In,{open:mt,definition:N,language:r,starting:re,onClose:ht,onStart:_t}),t[164]=r,t[165]=N,t[166]=re,t[167]=mt,t[168]=ht,t[169]=_t,t[170]=vt):vt=t[170];let yt=F!=null,bt;t[171]===te?bt=t[172]:(bt=()=>te(null),t[171]=te,t[172]=bt);let St;t[173]!==F||t[174]!==te||t[175]!==P?(St=()=>{F&&(te(null),P(F))},t[173]=F,t[174]=te,t[175]=P,t[176]=St):St=t[176];let Ct;t[177]!==F||t[178]!==r||t[179]!==yt||t[180]!==bt||t[181]!==St?(Ct=(0,$.jsx)(zt,{open:yt,definition:F,language:r,onClose:bt,onRun:St}),t[177]=F,t[178]=r,t[179]=yt,t[180]=bt,t[181]=St,t[182]=Ct):Ct=t[182];let wt;t[183]===R?wt=t[184]:(wt=R?{mode:R.mode,name:R.initialName,script:R.initialScript,sourceTitle:R.definition.title}:null,t[183]=R,t[184]=wt);let Tt;t[185]===L?Tt=t[186]:(Tt=()=>L(!1),t[185]=L,t[186]=Tt);let Et;t[187]===ae?Et=t[188]:(Et=e=>ae(e),t[187]=ae,t[188]=Et);let Dt;t[189]!==r||t[190]!==I||t[191]!==m||t[192]!==oe||t[193]!==V||t[194]!==wt||t[195]!==Tt||t[196]!==Et?(Dt=(0,$.jsx)(xt,{open:I,language:r,ownerAgentId:m,saving:V,initialDraft:wt,onClose:Tt,onSave:Et,onSaveAndStart:oe}),t[189]=r,t[190]=I,t[191]=m,t[192]=oe,t[193]=V,t[194]=wt,t[195]=Tt,t[196]=Et,t[197]=Dt):Dt=t[197];let Ot;return t[198]!==nt||t[199]!==ct||t[200]!==pt||t[201]!==vt||t[202]!==Ct||t[203]!==Dt?(Ot=(0,$.jsxs)(`main`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden bg-surface-base`,children:[nt,ct,pt,vt,Ct,Dt]}),t[198]=nt,t[199]=ct,t[200]=pt,t[201]=vt,t[202]=Ct,t[203]=Dt,t[204]=Ot):Ot=t[204],Ot}function Xn(e){return(0,$.jsx)(`option`,{value:e.id,children:e.title},e.id)}function Zn(e){return e.clearPageHeader}function Qn(e){return e.setPageHeader}function $n(){let e=o(e=>e.language),t=a(e).workflows,n=e===`zh`?`zh-CN`:`en-US`,r=s(e=>e.token),i=!!r,l=E(),[u,d]=f(),p=u.get(`q`)??``,g=u.get(`wf`)?.trim()??``,_=u.get(`trigger`)?.trim()||`all`,y=u.get(`run`)?.trim()??``,b=u.get(`agent`)?.trim()??``,[S,C]=(0,Z.useState)(null),[O,k]=(0,Z.useState)(!1),[A,j]=(0,Z.useState)(null),[M,N]=(0,Z.useState)(!1),[ee,P]=(0,Z.useState)(null),[te,I]=(0,Z.useState)(null),[L,R]=(0,Z.useState)(null),[z,B]=(0,Z.useState)(!1),[ne,re]=(0,Z.useState)(!1),H=c(i?[`workflow-agents`,r]:null,F,{revalidateOnFocus:!1}),U=(0,Z.useMemo)(()=>{let e=H.data?.agents??[];return b&&e.some(e=>e.id===b)||b&&e.length===0?b:H.data?.defaultId??(b||void 0)},[H.data,b]),W=c(i?[`workflow-definitions`,r]:null,ue,{revalidateOnFocus:!1}),G=c(i&&U?[`workflow-runs`,r,U]:null,()=>x(100,{ownerAgentId:U}),{revalidateOnFocus:!1,refreshInterval:e=>e?.length&&e.some(e=>e.status===`queued`||e.status===`running`)?3e3:0}),K=c(i&&U?[`workflow-stats`,r,U,g]:null,()=>fe(g,{ownerAgentId:U}),{revalidateOnFocus:!1});(0,Z.useEffect)(()=>{if(!L)return;let e=window.setTimeout(()=>R(null),4e3);return()=>window.clearTimeout(e)},[L]);let q=W.data??[],ae=H.data?.agents??[],oe=G.data??[],se=y||null,ce=_e(se,{ownerAgentId:U}),le=c(i&&U&&se&&ce.view?.run.metadata?.replay?[`workflow-run-comparison`,r,U,se]:null,()=>T(se,{ownerAgentId:U}),{revalidateOnFocus:!1}),de=(0,Z.useMemo)(()=>Ve(q,p,`all`,`all`),[q,p]),pe=(0,Z.useCallback)(e=>{e&&P(null),N(e)},[]),me=(0,Z.useCallback)(e=>{let t=new Set(q.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()}`},[q]),he=(0,Z.useCallback)(e=>{let n=e.runtime?.source??``;if(!n.trim()){I(t.editWorkflowSourceMissing);return}let r=e.metadata.source===`user`?`edit`:`copy`,i=r===`edit`?e.name:me(e);I(null),k(!1),P({mode:r,definition:e,initialName:i,initialScript:r===`copy`?er(n,i):n}),N(!0)},[me,t.editWorkflowSourceMissing]),J=(0,Z.useCallback)(e=>{d(t=>{let n=new URLSearchParams(t);return e(n,t),n},{replace:!0})},[d]);(0,Z.useEffect)(()=>{let e=H.data?.agents??[];!b||e.length===0||e.some(e=>e.id===b)||J(e=>{H.data?.defaultId?e.set(V,H.data.defaultId):e.delete(V),e.delete(`run`)})},[H.data,b,J]);let ge=(0,Z.useCallback)(e=>{J(t=>{let n=e.trim();n?t.set(`q`,n):t.delete(`q`)})},[J]),ve=(0,Z.useCallback)(e=>{J(t=>{let n=e.trim();n?t.set(V,n):t.delete(V),t.delete(`run`)})},[J]),Y=(0,Z.useCallback)(e=>{J(t=>{let n=e.trim();n?t.set(`wf`,n):t.delete(`wf`)})},[J]),ye=(0,Z.useCallback)(e=>{J(t=>{let n=e.trim();n&&n!==`all`?t.set(ie,n):t.delete(ie)})},[J]),be=(0,Z.useCallback)(e=>{J(t=>{U&&t.set(V,U),t.set(`run`,e.id)})},[U,J]),xe=(0,Z.useCallback)(()=>{J(e=>{e.delete(`run`)})},[J]),Ce=(0,Z.useCallback)(e=>{J(t=>{U&&t.set(V,U),t.set(`run`,e)})},[U,J]),we=(0,Z.useCallback)(e=>{let t=qe(e);t&&l(Be(t))},[l]);(0,Z.useEffect)(()=>{u.get(`tab`)&&J(e=>{e.delete(`tab`)})},[J,u]),(0,Z.useEffect)(()=>{let e=u.get(`def`),t=u.get(Se)===`1`;if(!e||!q.length)return;let n=q.find(t=>t.id===e||t.name===e);n&&(t?C(n):j(n),J(e=>{e.delete(`def`),e.delete(Se)}))},[q,J,u]),(0,Z.useEffect)(()=>{let e=()=>{G.mutate(),K.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)}},[G,K]);let Ee=(0,Z.useCallback)(()=>{H.mutate(),W.mutate(),G.mutate(),K.mutate()},[H,W,G,K]),De=(0,Z.useCallback)(async e=>{if(S){B(!0),I(null);try{let n=await v({definitionId:S.id,goal:e.goal,input:e.input,agentId:U,concurrency:e.concurrency,maxSubagents:e.maxSubagents});C(null),await G.mutate(),await K.mutate(),R(t.startSuccess),J(e=>{U&&e.set(V,U),e.set(`run`,n.runId)})}catch(e){I(e instanceof Error?e.message:t.startFailed)}finally{B(!1)}}},[t.startFailed,t.startSuccess,U,J,G,S,K]),Oe=(0,Z.useCallback)(async e=>{try{await Te(e,{ownerAgentId:U}),await G.mutate(),await K.mutate()}catch(e){let n=e instanceof Error?e.message:t.cancelFailed;if(/not active|already finished/i.test(n)){await G.mutate(),await K.mutate();return}I(n)}},[t.cancelFailed,U,G,K]),ke=(0,Z.useCallback)(async e=>{try{let t=await D(e,{ownerAgentId:U});await G.mutate(),await K.mutate(),J(e=>{U&&e.set(V,U),e.set(`run`,t.runId)})}catch(e){I(e instanceof Error?e.message:t.retryFailed)}},[t.retryFailed,U,J,G,K]),Ae=(0,Z.useCallback)(async(e,n)=>{try{let t=await w(e,n,{ownerAgentId:U});await G.mutate(),await K.mutate(),J(e=>{U&&e.set(V,U),e.set(`run`,t.runId)})}catch(e){I(e instanceof Error?e.message:t.retryFailed)}},[t.retryFailed,U,J,G,K]),je=(0,Z.useCallback)(async e=>{re(!0),I(null);try{let n=await h(e.name,e.script);return N(!1),P(null),await W.mutate(),R(t.saveWorkflowSuccess),n}catch(e){I(e instanceof Error?e.message:t.saveWorkflowFailed)}finally{re(!1)}},[W,t.saveWorkflowFailed,t.saveWorkflowSuccess]),Me=(0,Z.useCallback)(async e=>{re(!0),I(null);try{let n=await h(e.name,e.script);await W.mutate();let r=await v({definitionId:n.id,goal:e.goal,input:{goal:e.goal},agentId:U});N(!1),P(null),await G.mutate(),await K.mutate(),R(t.startSuccess),J(e=>{U&&e.set(V,U),e.set(`run`,r.runId)})}catch(e){I(e instanceof Error?e.message:t.startFailed)}finally{re(!1)}},[W,t.startFailed,t.startSuccess,U,J,G,K]),Ne=(0,Z.useCallback)(async e=>{if(e.metadata.source===`user`&&window.confirm(X(t.deleteConfirm,{name:e.name}))){I(null);try{await m(e.id),await W.mutate(),R(t.deleteWorkflowSuccess)}catch(e){I(e instanceof Error?e.message:t.deleteWorkflowFailed)}}},[W,t]),Pe=H.isLoading||W.isLoading||G.isLoading,Fe=H.error?.message??W.error?.message??G.error?.message??null;return{language:e,localeTag:n,labels:t,hasToken:i,searchQuery:p,setSearchQuery:ge,ownerAgentId:U,agentOptions:ae,setOwnerAgentId:ve,workflowFilterId:g,setWorkflowFilterId:Y,triggerFilter:_,setTriggerFilter:ye,definitions:q,filteredDefinitions:de,runs:oe,selectedRunId:se,selectedRunView:ce.view,selectedRunComparison:le.data,selectedRunLoading:ce.loading,selectedRunError:ce.error?.message??le.error?.message??null,openRunDetails:be,closeRunDetails:xe,openRunDetailsById:Ce,openRunInChat:we,pickStartOpen:O,setPickStartOpen:k,startDefinition:S,setStartDefinition:C,detailDefinition:A,setDetailDefinition:j,manageOpen:M,setManageOpen:pe,workflowEditorDraft:ee,openWorkflowEditor:he,actionError:te,actionFeedback:L,starting:z,savingWorkflow:ne,loading:Pe,error:Fe,stats:K.data,refreshAll:Ee,submitStart:De,cancelRun:Oe,retryRun:ke,replayRun:Ae,saveCustomWorkflow:je,saveDraftAndStart:Me,removeCustomWorkflow:Ne}}function er(e,t){return e.replace(/(name\s*:\s*['"`])([^'"`]+)(['"`])/,(e,n,r,i)=>`${n}${t}${i}`)}function tr(){let e=(0,Q.c)(2),t=$n(),n;return e[0]===t?n=e[1]:(n=(0,$.jsx)(Yn,{vm:t}),e[0]=t,e[1]=n),n}export{tr as WorkflowsPage};
@@ -10,7 +10,7 @@
10
10
  <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.pngv=20260623-2" />
11
11
  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=20260623-2" />
12
12
  <title>xopc</title>
13
- <script type="module" crossorigin src="/assets/index-Cxm6xsps.js"></script>
13
+ <script type="module" crossorigin src="/assets/index-AkTrf6Pb.js"></script>
14
14
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
15
15
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-zJ_50EbN.js">
16
16
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-BOUWij0V.js">
@@ -23,12 +23,12 @@
23
23
  <link rel="modulepreload" crossorigin href="/assets/middleware-Pd0e8Igk.js">
24
24
  <link rel="modulepreload" crossorigin href="/assets/locale-store-DjbfSsfA.js">
25
25
  <link rel="modulepreload" crossorigin href="/assets/config-reload-event-Bjh2zoKp.js">
26
- <link rel="modulepreload" crossorigin href="/assets/messages-CkT-lcgP.js">
27
- <link rel="modulepreload" crossorigin href="/assets/fetch-NZmjSXLl.js">
28
- <link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-Be1omjh3.js">
26
+ <link rel="modulepreload" crossorigin href="/assets/messages-upgxw6Ub.js">
27
+ <link rel="modulepreload" crossorigin href="/assets/fetch-D0VXA932.js">
28
+ <link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-DERUH61L.js">
29
29
  <link rel="modulepreload" crossorigin href="/assets/toast-z0toXu32.js">
30
30
  <link rel="modulepreload" crossorigin href="/assets/theme-store-CD2wtgZV.js">
31
- <link rel="stylesheet" crossorigin href="/assets/index-b_R4tKqt.css">
31
+ <link rel="stylesheet" crossorigin href="/assets/index-fh5sXTj9.css">
32
32
  </head>
33
33
  <body>
34
34
  <div id="root"></div>
@@ -3,13 +3,13 @@
3
3
  <g transform="translate(50 50) scale(0.92) translate(-50 -50)">
4
4
  <!-- Goal loop: outer system boundary + inner feedback loop -->
5
5
  <g stroke-linecap="round" fill="none">
6
- <g stroke="#000000" stroke-width="4">
6
+ <g stroke="#111111" stroke-opacity="0.9" stroke-width="4">
7
7
  <path d="M 29.375 23.602 A 33.5 33.5 0 0 1 70.625 23.602" />
8
8
  <path d="M 76.398 29.375 A 33.5 33.5 0 0 1 76.398 70.625" />
9
9
  <path d="M 70.625 76.398 A 33.5 33.5 0 0 1 29.375 76.398" />
10
10
  <path d="M 23.602 70.625 A 33.5 33.5 0 0 1 23.602 29.375" />
11
11
  </g>
12
- <g stroke="#000000" stroke-width="3.2" transform="rotate(45 50 50)">
12
+ <g stroke="#3a6bff" stroke-width="3.2" transform="rotate(45 50 50)">
13
13
  <path d="M 35.011 29.370 A 25.5 25.5 0 0 1 64.989 29.370" />
14
14
  <path d="M 70.630 35.011 A 25.5 25.5 0 0 1 70.630 64.989" />
15
15
  <path d="M 64.989 70.630 A 25.5 25.5 0 0 1 35.011 70.630" />
@@ -18,7 +18,8 @@
18
18
  </g>
19
19
  <!-- Central hub -->
20
20
  <path
21
- fill="#000000"
21
+ fill="#111111"
22
+ fill-opacity="0.92"
22
23
  transform="translate(50 50) scale(0.72) translate(-50 -50)"
23
24
  d="M 61.000 50.000 L 61.159 50.548 L 61.629 51.145 L 62.381 51.837 L 63.374 52.660 L 64.550 53.645 L 65.843 54.806 L 67.178 56.146 L 68.478 57.654 L 69.667 59.302 L 70.676 61.051 L 71.443 62.853 L 71.921 64.647 L 72.075 66.372 L 71.888 67.963 L 71.359 69.359 L 70.506 70.506 L 69.359 71.359 L 67.963 71.888 L 66.372 72.075 L 64.647 71.921 L 62.853 71.443 L 61.051 70.676 L 59.302 69.667 L 57.654 68.478 L 56.146 67.178 L 54.806 65.843 L 53.645 64.550 L 52.660 63.374 L 51.837 62.381 L 51.145 61.629 L 50.548 61.159 L 50.000 61.000 L 49.452 61.159 L 48.855 61.629 L 48.163 62.381 L 47.340 63.374 L 46.355 64.550 L 45.194 65.843 L 43.854 67.178 L 42.346 68.478 L 40.698 69.667 L 38.949 70.676 L 37.147 71.443 L 35.353 71.921 L 33.628 72.075 L 32.037 71.888 L 30.641 71.359 L 29.494 70.506 L 28.641 69.359 L 28.112 67.963 L 27.925 66.372 L 28.079 64.647 L 28.557 62.853 L 29.324 61.051 L 30.333 59.302 L 31.522 57.654 L 32.822 56.146 L 34.157 54.806 L 35.450 53.645 L 36.626 52.660 L 37.619 51.837 L 38.371 51.145 L 38.841 50.548 L 39.000 50.000 L 38.841 49.452 L 38.371 48.855 L 37.619 48.163 L 36.626 47.340 L 35.450 46.355 L 34.157 45.194 L 32.822 43.854 L 31.522 42.346 L 30.333 40.698 L 29.324 38.949 L 28.557 37.147 L 28.079 35.353 L 27.925 33.628 L 28.112 32.037 L 28.641 30.641 L 29.494 29.494 L 30.641 28.641 L 32.037 28.112 L 33.628 27.925 L 35.353 28.079 L 37.147 28.557 L 38.949 29.324 L 40.698 30.333 L 42.346 31.522 L 43.854 32.822 L 45.194 34.157 L 46.355 35.450 L 47.340 36.626 L 48.163 37.619 L 48.855 38.371 L 49.452 38.841 L 50.000 39.000 L 50.548 38.841 L 51.145 38.371 L 51.837 37.619 L 52.660 36.626 L 53.645 35.450 L 54.806 34.157 L 56.146 32.822 L 57.654 31.522 L 59.302 30.333 L 61.051 29.324 L 62.853 28.557 L 64.647 28.079 L 66.372 27.925 L 67.963 28.112 L 69.359 28.641 L 70.506 29.494 L 71.359 30.641 L 71.888 32.037 L 72.075 33.628 L 71.921 35.353 L 71.443 37.147 L 70.676 38.949 L 69.667 40.698 L 68.478 42.346 L 67.178 43.854 L 65.843 45.194 L 64.550 46.355 L 63.374 47.340 L 62.381 48.163 L 61.629 48.855 L 61.159 49.452 L 61.000 50.000 Z"
24
25
  />
package/dist/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "0.0.113";
2
+ var version = "0.0.115";
3
3
  //#endregion
4
4
  export { version };
5
5
 
@@ -84,6 +84,10 @@ export interface AgentManagerConfig {
84
84
  onSkillsUpdated?: (payload: {
85
85
  reason: 'disk' | 'config';
86
86
  }) => void;
87
+ /**
88
+ * Runtime trust override. Persistent "do not trust" entries still take precedence.
89
+ */
90
+ isWorkspaceTrusted?: (workspaceDir: string) => boolean | null | undefined;
87
91
  }
88
92
  export interface AgentInstance {
89
93
  agent: Agent;
@@ -118,6 +122,7 @@ export declare class AgentManager implements AgentInstanceGateway {
118
122
  private lastExplicitSkillDiskRefreshAt;
119
123
  private skillsUpdatedTimer;
120
124
  private pendingSkillsUpdatedReason;
125
+ private projectTrustStore;
121
126
  constructor(config: AgentManagerConfig);
122
127
  private computeBaseWorkspacePath;
123
128
  /**
@@ -125,6 +130,8 @@ export declare class AgentManager implements AgentInstanceGateway {
125
130
  * Uses in-memory session workspace overrides when the session has a persisted `workingDirectoryOverride`.
126
131
  */
127
132
  getResolvedWorkspaceForSession(sessionKey: string): string;
133
+ private getWorkspaceRuntimeForSession;
134
+ private getCurrentWorkspaceRuntime;
128
135
  /**
129
136
  * Sync in-memory workspace override from session config (after load or PATCH).
130
137
  * Pass `null` to clear when the session has no `workingDirectoryOverride` on disk.
@@ -179,6 +186,7 @@ export declare class AgentManager implements AgentInstanceGateway {
179
186
  /** Structured SKILL.md preview for the gateway console. */
180
187
  getSkillMarkdownSource(skillName: string): SkillMarkdownPreviewPayload | null;
181
188
  private loadProfileMarkdownForProfile;
189
+ private isProjectWorkspaceTrusted;
182
190
  private resolveContextFilesForSession;
183
191
  private skillCatalogEntryFromSkill;
184
192
  getSkillCatalog(): SkillCatalogEntry[];
@@ -1,19 +1,20 @@
1
+ import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
2
+ import { applyConfigOverrides } from "../config/runtime-overrides.js";
1
3
  import { resolveStateDir } from "../config/paths-state.js";
2
4
  import { expandWorkspacePathString, init_workspace_path } from "../config/workspace-path.js";
3
5
  import { init_agent_scope, resolveAgentProfileDir } from "./agent-scope.js";
4
- import { init_paths, resolveBundledSkillsDir } from "../config/paths.js";
6
+ import { resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
5
7
  import { createLogger } from "../utils/logger/index.js";
6
8
  import { init_logger } from "../utils/logger.js";
7
- import { CredentialResolver, init_credentials } from "../auth/credentials.js";
8
- import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
9
+ import { init_paths, resolveBundledSkillsDir } from "../config/paths.js";
9
10
  import { init_sync_provider_auth, resolveProviderApiKeySync } from "../auth/sync-provider-auth.js";
11
+ import { CredentialResolver, init_credentials } from "../auth/credentials.js";
10
12
  import { getApiKeySync, getDefaultModelSync, init_providers, resolveModel } from "../providers/index.js";
11
13
  import { createExtensionAwareStreamFn } from "../providers/extension-stream-bridge.js";
12
- import { applyConfigOverrides } from "../config/runtime-overrides.js";
13
- import { resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
14
14
  import { extractTextContent, loadProfileMarkdownFiles } from "./context/workspace.js";
15
15
  import { clearBootstrapSnapshot } from "./bootstrap/bootstrap-cache.js";
16
16
  import { resolveBootstrapContextSync } from "./bootstrap/bootstrap-files.js";
17
+ import { loadProjectAgentsContextFile } from "./bootstrap/project-agents-context.js";
17
18
  import { createSkillConfigManager, isSkillEnabled, resolveSkillConfig } from "./skills/config.js";
18
19
  import { isMemorySubsystemEnabled, shouldRegisterCuratedMemoryTool } from "./memory/memory-config.js";
19
20
  import { AgentToolsFactory } from "./tools/factory.js";
@@ -29,8 +30,9 @@ import { WorkspaceRuntimeRegistry } from "./workspace-runtime/registry.js";
29
30
  import { BackgroundReviewCoordinator } from "./background-review/coordinator.js";
30
31
  import { maybeRequestChannelExecApproval } from "../channels/exec-approval-runtime.js";
31
32
  import { SkillFilesystemWatcher } from "./skills/filesystem-watcher.js";
32
- import { basename, resolve, sep } from "node:path";
33
+ import { ProjectTrustStore, hasTrustRequiringProjectResources } from "../project-trust/trust-store.js";
33
34
  import { Agent } from "@earendil-works/pi-agent-core";
35
+ import { basename, resolve, sep } from "node:path";
34
36
  //#region src/agent/agent-manager.ts
35
37
  /**
36
38
  * Agent Manager - Manages Agent instances per session
@@ -71,6 +73,7 @@ var AgentManager = class {
71
73
  lastExplicitSkillDiskRefreshAt = 0;
72
74
  skillsUpdatedTimer;
73
75
  pendingSkillsUpdatedReason;
76
+ projectTrustStore = new ProjectTrustStore();
74
77
  constructor(config) {
75
78
  this.config = config;
76
79
  this.baseWorkspacePath = this.computeBaseWorkspacePath();
@@ -121,6 +124,13 @@ var AgentManager = class {
121
124
  if (fromMap !== void 0) return fromMap;
122
125
  return resolveEffectiveAgentProfileForSession(cfg, sessionKey).resolvedWorkspacePath;
123
126
  }
127
+ getWorkspaceRuntimeForSession(sessionKey) {
128
+ const resolvedPath = sessionKey ? this.getResolvedWorkspaceForSession(sessionKey) : this.baseWorkspacePath;
129
+ return this.workspaceRuntimes.getOrCreate(resolvedPath);
130
+ }
131
+ getCurrentWorkspaceRuntime() {
132
+ return this.getWorkspaceRuntimeForSession(this.config.getCurrentContext?.()?.sessionKey);
133
+ }
124
134
  /**
125
135
  * Sync in-memory workspace override from session config (after load or PATCH).
126
136
  * Pass `null` to clear when the session has no `workingDirectoryOverride` on disk.
@@ -184,8 +194,8 @@ var AgentManager = class {
184
194
  bus: this.config.bus,
185
195
  getConfig: () => this.mergedConfig(),
186
196
  getPrimaryModel: () => this.resolveModelStringToModel(this.pickDefaultModelRef()),
187
- getBuiltinMemoryStore: () => this.workspaceRuntimes.getOrCreate(this.baseWorkspacePath).builtinMemoryStore,
188
- getMemoryManager: () => this.workspaceRuntimes.getOrCreate(this.baseWorkspacePath).memoryManager,
197
+ getBuiltinMemoryStore: () => this.getCurrentWorkspaceRuntime().builtinMemoryStore,
198
+ getMemoryManager: () => this.getCurrentWorkspaceRuntime().memoryManager,
189
199
  getSessionStore: this.config.getSessionStore,
190
200
  gatewayClarify: this.config.gatewayClarify,
191
201
  getCronService: this.config.getCronService,
@@ -218,11 +228,10 @@ var AgentManager = class {
218
228
  };
219
229
  }
220
230
  getMemoryManager() {
221
- return this.workspaceRuntimes.getOrCreate(this.baseWorkspacePath).memoryManager;
231
+ return this.getCurrentWorkspaceRuntime().memoryManager;
222
232
  }
223
233
  getMemoryManagerForSession(sessionKey) {
224
- const path = this.getResolvedWorkspaceForSession(sessionKey);
225
- return this.workspaceRuntimes.getOrCreate(path).memoryManager;
234
+ return this.getWorkspaceRuntimeForSession(sessionKey).memoryManager;
226
235
  }
227
236
  /**
228
237
  * Prefix the user turn with fenced prefetched memory (external providers).
@@ -259,9 +268,9 @@ var AgentManager = class {
259
268
  agent: inst.agent,
260
269
  registeredToolNames: inst.registeredToolNames,
261
270
  skillAllowlist: inst.effectiveProfile.skillsAllowlist,
262
- workspacePath: inst.resolvedWorkspacePath,
271
+ workspacePath: this.getResolvedWorkspaceForSession(sessionKey),
263
272
  lastAssistantText: this.getLastAssistantContent(sessionKey),
264
- workspaceRuntime: this.workspaceRuntimes.getOrCreate(inst.resolvedWorkspacePath)
273
+ workspaceRuntime: this.getWorkspaceRuntimeForSession(sessionKey)
265
274
  });
266
275
  }
267
276
  /**
@@ -269,16 +278,15 @@ var AgentManager = class {
269
278
  */
270
279
  expandSkillUserText(text) {
271
280
  const sessionKey = (this.config.getCurrentContext?.())?.sessionKey;
272
- const path = sessionKey ? this.getResolvedWorkspaceForSession(sessionKey) : this.baseWorkspacePath;
273
281
  const inst = sessionKey ? this.agents.get(sessionKey) : void 0;
274
- return this.workspaceRuntimes.getOrCreate(path).skillManager.expandCommand(text, {
282
+ return this.getWorkspaceRuntimeForSession(sessionKey).skillManager.expandCommand(text, {
275
283
  skillAllowlist: inst?.effectiveProfile.skillsAllowlist,
276
284
  registeredToolNames: inst?.registeredToolNames
277
285
  });
278
286
  }
279
287
  /** Structured SKILL.md preview for the gateway console. */
280
288
  getSkillMarkdownSource(skillName) {
281
- const skill = this.workspaceRuntimes.getOrCreate(this.baseWorkspacePath).skillManager.findSkill(skillName);
289
+ const skill = this.getCurrentWorkspaceRuntime().skillManager.findSkill(skillName);
282
290
  if (!skill) return null;
283
291
  return {
284
292
  name: skill.name,
@@ -294,6 +302,23 @@ var AgentManager = class {
294
302
  const cfg = this.config.config;
295
303
  return loadProfileMarkdownFiles(resolveAgentProfileDir(cfg, profile.agentId));
296
304
  }
305
+ isProjectWorkspaceTrusted(workspaceDir) {
306
+ if (!hasTrustRequiringProjectResources(workspaceDir)) return false;
307
+ const persisted = this.projectTrustStore.get(workspaceDir);
308
+ if (persisted === false) return false;
309
+ if (persisted === true) return true;
310
+ try {
311
+ return this.config.isWorkspaceTrusted?.(workspaceDir) === true;
312
+ } catch (err) {
313
+ const errorMessage = err instanceof Error ? err.message : String(err);
314
+ log.warn({
315
+ err,
316
+ workspaceDir,
317
+ errorMessage
318
+ }, `Workspace trust override failed: ${errorMessage}`);
319
+ return false;
320
+ }
321
+ }
297
322
  resolveContextFilesForSession(sessionKey, profile, excludeHeartbeat) {
298
323
  const cfg = this.config.config;
299
324
  const profileDir = resolveAgentProfileDir(cfg, profile.agentId);
@@ -306,6 +331,12 @@ var AgentManager = class {
306
331
  excludeHeartbeat: excludeHeartbeat ?? !heartbeatEnabled,
307
332
  contextInjection
308
333
  });
334
+ const shouldAppendProjectContext = contextInjection === "always" || contextInjection === "continuation-skip" && contextFiles.length > 0;
335
+ const workspaceDir = this.getResolvedWorkspaceForSession(sessionKey);
336
+ if (shouldAppendProjectContext && this.isProjectWorkspaceTrusted(workspaceDir)) {
337
+ const projectAgentsFile = loadProjectAgentsContextFile(workspaceDir);
338
+ if (projectAgentsFile) contextFiles.push(projectAgentsFile);
339
+ }
309
340
  return contextFiles;
310
341
  }
311
342
  skillCatalogEntryFromSkill(s, skillsConfig = createSkillConfigManager(resolveStateDir()).load(), lock = loadSkillsLock()) {
@@ -334,7 +365,7 @@ var AgentManager = class {
334
365
  getSkillCatalogSnapshot() {
335
366
  const skillsConfig = createSkillConfigManager(resolveStateDir()).load();
336
367
  const lock = loadSkillsLock();
337
- const rt = this.workspaceRuntimes.getOrCreate(this.baseWorkspacePath);
368
+ const rt = this.getCurrentWorkspaceRuntime();
338
369
  return {
339
370
  catalog: rt.skillManager.getSkills().map((s) => this.skillCatalogEntryFromSkill(s, skillsConfig, lock)),
340
371
  version: rt.skillManager.getVersion(),
@@ -387,15 +418,16 @@ var AgentManager = class {
387
418
  touched.add(resolvedPath);
388
419
  }
389
420
  for (const instance of this.agents.values()) {
390
- const rt = this.workspaceRuntimes.getOrCreate(instance.resolvedWorkspacePath);
391
- if (!touched.has(instance.resolvedWorkspacePath)) {
421
+ const resolvedWorkspacePath = this.getResolvedWorkspaceForSession(instance.sessionKey);
422
+ const rt = this.workspaceRuntimes.getOrCreate(resolvedWorkspacePath);
423
+ if (!touched.has(resolvedWorkspacePath)) {
392
424
  rt.skillManager.refreshPromptFromConfig();
393
- touched.add(instance.resolvedWorkspacePath);
425
+ touched.add(resolvedWorkspacePath);
394
426
  }
395
427
  const contextFiles = this.resolveContextFilesForSession(instance.sessionKey, instance.effectiveProfile);
396
428
  const newPrompt = rt.systemPromptBuilder.build(contextFiles, {
397
429
  externalMemoryInstructions: rt.memoryManager.buildExternalSystemPrompt(),
398
- workspaceOverride: instance.resolvedWorkspacePath,
430
+ workspaceOverride: resolvedWorkspacePath,
399
431
  profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
400
432
  systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
401
433
  skillAllowlist: instance.effectiveProfile.skillsAllowlist,
@@ -452,12 +484,13 @@ var AgentManager = class {
452
484
  for (const rt of this.workspaceRuntimes.values()) rt.skillManager.reload();
453
485
  const touched = /* @__PURE__ */ new Set();
454
486
  for (const instance of this.agents.values()) {
455
- const rt = this.workspaceRuntimes.getOrCreate(instance.resolvedWorkspacePath);
456
- if (!touched.has(instance.resolvedWorkspacePath)) touched.add(instance.resolvedWorkspacePath);
487
+ const resolvedWorkspacePath = this.getResolvedWorkspaceForSession(instance.sessionKey);
488
+ const rt = this.workspaceRuntimes.getOrCreate(resolvedWorkspacePath);
489
+ if (!touched.has(resolvedWorkspacePath)) touched.add(resolvedWorkspacePath);
457
490
  const contextFiles = this.resolveContextFilesForSession(instance.sessionKey, instance.effectiveProfile);
458
491
  const newPrompt = rt.systemPromptBuilder.rebuild(contextFiles, {
459
492
  externalMemoryInstructions: rt.memoryManager.buildExternalSystemPrompt(),
460
- workspaceOverride: instance.resolvedWorkspacePath,
493
+ workspaceOverride: resolvedWorkspacePath,
461
494
  profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
462
495
  systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
463
496
  skillAllowlist: instance.effectiveProfile.skillsAllowlist,
@@ -572,13 +605,14 @@ var AgentManager = class {
572
605
  const instance = this.agents.get(sessionKey);
573
606
  if (!instance) return;
574
607
  const cfg = this.config.config;
575
- const rt = this.workspaceRuntimes.getOrCreate(instance.resolvedWorkspacePath);
608
+ const resolvedWorkspacePath = this.getResolvedWorkspaceForSession(sessionKey);
609
+ const rt = this.workspaceRuntimes.getOrCreate(resolvedWorkspacePath);
576
610
  const contextFiles = this.resolveContextFilesForSession(sessionKey, instance.effectiveProfile);
577
611
  const modelRef = instance.effectiveProfile.primaryModelRef?.trim() || this.defaultModel;
578
612
  const thinkingLevel = instance.effectiveProfile.thinkingDefault ?? this.config.thinkingLevel ?? "medium";
579
613
  instance.agent.state.systemPrompt = rt.systemPromptBuilder.build(contextFiles, {
580
614
  externalMemoryInstructions: rt.memoryManager.buildExternalSystemPrompt(),
581
- workspaceOverride: instance.resolvedWorkspacePath,
615
+ workspaceOverride: resolvedWorkspacePath,
582
616
  profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
583
617
  systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
584
618
  skillAllowlist: instance.effectiveProfile.skillsAllowlist,
@@ -743,12 +777,13 @@ var AgentManager = class {
743
777
  const model = resolveModel(modelId);
744
778
  instance.agent.state.model = model;
745
779
  const cfg = this.config.config;
746
- const rt = this.workspaceRuntimes.getOrCreate(instance.resolvedWorkspacePath);
780
+ const resolvedWorkspacePath = this.getResolvedWorkspaceForSession(sessionKey);
781
+ const rt = this.workspaceRuntimes.getOrCreate(resolvedWorkspacePath);
747
782
  const contextFiles = this.resolveContextFilesForSession(sessionKey, instance.effectiveProfile);
748
783
  const thinkingLevel = instance.agent.state.thinkingLevel ?? instance.effectiveProfile.thinkingDefault ?? this.config.thinkingLevel ?? "medium";
749
784
  instance.agent.state.systemPrompt = rt.systemPromptBuilder.build(contextFiles, {
750
785
  externalMemoryInstructions: rt.memoryManager.buildExternalSystemPrompt(),
751
- workspaceOverride: instance.resolvedWorkspacePath,
786
+ workspaceOverride: resolvedWorkspacePath,
752
787
  profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
753
788
  systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
754
789
  skillAllowlist: instance.effectiveProfile.skillsAllowlist,