@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.
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
- package/dist/extensions/feishu/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
- package/dist/extensions/telegram/src/inbound-processor.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +1 -1
- package/dist/extensions/telegram/src/routing-integration.js +2 -2
- package/dist/extensions/telegram/src/update-offset-store.js +1 -1
- package/dist/extensions/telegram/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +2 -2
- package/dist/extensions/weixin/src/auth/accounts.js +1 -1
- package/dist/extensions/weixin/src/cdn/upload.js +1 -1
- package/dist/extensions/weixin/src/media/data-url.js +1 -1
- package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
- package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
- package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
- package/dist/extensions/weixin/src/plugin.js +1 -1
- package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
- package/dist/extensions/weixin/src/workflow-progress.js +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CBlklyNr.js → agent-avatar-dicebear-DVnBfANm.js} +1 -1
- package/dist/gateway/static/root/assets/agent-browser-settings-page-DPXc4hz8.js +6 -0
- package/dist/gateway/static/root/assets/agent-defaults-tabbed-page-CTJ0YnRQ.js +1 -0
- package/dist/gateway/static/root/assets/agents-zJXQfJ_W.js +71 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-28E_WfMe.js → app-management-settings-panel-DzGbdr04.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-Do1z0XgJ.js → appearance-settings-BQpPSTHD.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-CPjfyzSD.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-BAFlsov_.js → archive-plugin-CXu-Csep.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-V3qGPC3x.js → attachment-load-BAjgOoGY.js} +1 -1
- package/dist/gateway/static/root/assets/{binary-plugins-DT8NvA6W.js → binary-plugins-BSBgB2hO.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-CdLMEcHd.js → block-editor-BpXw9TTR.js} +3 -3
- package/dist/gateway/static/root/assets/channels-settings-BbPUpzWB.js +1 -0
- package/dist/gateway/static/root/assets/{config-api-Bf5mjpu7.js → config-api-NOoPiIYz.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-settings-CAXYMOdp.js +2 -0
- package/dist/gateway/static/root/assets/{cron-api--pAB_rps.js → cron-api-C9BOqAXd.js} +1 -1
- package/dist/gateway/static/root/assets/cron-page-DuUbBeKI.js +3 -0
- package/dist/gateway/static/root/assets/{dreaming-settings-6UZE1FSK.js → dreaming-settings-DQ4DtiK1.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-BGhE7msg.js → extension-debug-page-D9kgUHCc.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-CvpI45WG.js → extension-page-CGyhXqzR.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-DAmR5FUe.js → extension-settings-page-DL8Xquqd.js} +1 -1
- package/dist/gateway/static/root/assets/{fetch-NZmjSXLl.js → fetch-D0VXA932.js} +1 -1
- package/dist/gateway/static/root/assets/{format-interval-label-qhth3BMV.js → format-interval-label-Be8SmgUw.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-CaXBt-9R.js → gateway-config-api-C-xjn__h.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-DphpbLBc.js → gateway-settings-BMPwIjKI.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-Be1omjh3.js → gateway-startup-retry-DERUH61L.js} +1 -1
- package/dist/gateway/static/root/assets/goal-detail-page-BJsyjJnF.js +1 -0
- package/dist/gateway/static/root/assets/goals-config-api-BPmqWk90.js +1 -0
- package/dist/gateway/static/root/assets/goals-page-BerDgIhw.js +2 -0
- package/dist/gateway/static/root/assets/goals-settings-ByTjeAto.js +1 -0
- package/dist/gateway/static/root/assets/{heartbeat-config-api-BzO6G4fD.js → heartbeat-config-api-Bfdzr8oV.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-DCST9-du.js → heartbeat-settings-TbHgcjTn.js} +1 -1
- package/dist/gateway/static/root/assets/index-AkTrf6Pb.js +122 -0
- package/dist/gateway/static/root/assets/index-fh5sXTj9.css +1 -0
- package/dist/gateway/static/root/assets/{interval-presets-DJmshV8n.js → interval-presets-utKbuCRY.js} +1 -1
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-9AUUlQ5Q.js → keyboard-shortcuts-settings-CjqS6c6V.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-DGXuPf5B.js +2 -0
- package/dist/gateway/static/root/assets/{markdown-split-CYYELqAr.js → markdown-split-DW8C47iB.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-BEcMR2M8.js → media-plugins-D6HwDhDT.js} +1 -1
- package/dist/gateway/static/root/assets/messages-upgxw6Ub.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-panel-Bot16nn7.js +2 -0
- package/dist/gateway/static/root/assets/note-detail-page-Brlyou8M.js +2 -0
- package/dist/gateway/static/root/assets/{note-image-lightbox-DNAoPcmm.js → note-image-lightbox-pJM35Pz5.js} +1 -1
- package/dist/gateway/static/root/assets/notes-page-DvZ4pwc-.js +1 -0
- package/dist/gateway/static/root/assets/{preview-open-alternatives-BPLz0AIv.js → preview-open-alternatives-CVwHuyN6.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-BZEDmxbZ.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-CrWwWRVK.js → save-bar-controls-Ba-UEk7x.js} +1 -1
- package/dist/gateway/static/root/assets/{schedule-field-CF2sadvN.js → schedule-field-CNN9595U.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-Di5cKjYE.js → schema-form-DnNMmtD5.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-DdGGlsfn.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-DlkEkPf9.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-Chh282jW.js → settings-collapsible-section-CmOz80i5.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-form-section-Dq-83cQd.js → settings-form-section-BmK7JJOV.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-DFPTrsPF.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-CYCCfgh4.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-0FXYnSUA.js → share-preview-page-Dp2qGrHC.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-Bff1pGd0.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-CJGKpBur.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-C6ocduTD.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-W1pTcojB.js → system-settings-panel-5jrIEr5b.js} +1 -1
- package/dist/gateway/static/root/assets/{use-agent-defaults-form-BVRvkK7m.js → use-agent-defaults-form-BuiXLIs5.js} +1 -1
- package/dist/gateway/static/root/assets/{use-channel-catalog-CgJibfMM.js → use-channel-catalog-CHlO8J9G.js} +1 -1
- package/dist/gateway/static/root/assets/{use-settings-tab-guard-Bw_qkRQE.js → use-settings-tab-guard-CW5JORnl.js} +1 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-DDoQyghO.js +1 -0
- package/dist/gateway/static/root/assets/{voice-player-store-C7lziaAx.js → voice-player-store-DDDWYHvg.js} +1 -1
- package/dist/gateway/static/root/assets/workflow-page.utils-CKjeEGqx.js +1 -0
- package/dist/gateway/static/root/assets/workflows-page-B604ehHG.js +18 -0
- package/dist/gateway/static/root/index.html +5 -5
- package/dist/gateway/static/root/logo.svg +4 -3
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +8 -0
- package/dist/src/agent/agent-manager.js +63 -28
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/agent-scope.js +1 -1
- package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
- package/dist/src/agent/bootstrap/project-agents-context.d.ts +2 -0
- package/dist/src/agent/bootstrap/project-agents-context.js +32 -0
- package/dist/src/agent/bootstrap/project-agents-context.js.map +1 -0
- package/dist/src/agent/context/workspace-seed.js +2 -2
- package/dist/src/agent/context/workspace-state.js +1 -1
- package/dist/src/agent/context/workspace.js +1 -1
- package/dist/src/agent/embedded/session-tool-result-guard.js +8 -1
- package/dist/src/agent/embedded/session-tool-result-guard.js.map +1 -1
- package/dist/src/agent/goals/checklist-judge.d.ts +1 -0
- package/dist/src/agent/goals/checklist-judge.js +3 -2
- package/dist/src/agent/goals/checklist-judge.js.map +1 -1
- package/dist/src/agent/goals/evaluate-turn.d.ts +1 -1
- package/dist/src/agent/goals/evaluate-turn.js +1 -0
- package/dist/src/agent/goals/evaluate-turn.js.map +1 -1
- package/dist/src/agent/goals/goal-locale.js +2 -2
- package/dist/src/agent/goals/persistent-goal-service.js +2 -4
- package/dist/src/agent/goals/persistent-goal-service.js.map +1 -1
- package/dist/src/agent/goals/post-turn.d.ts +6 -1
- package/dist/src/agent/goals/post-turn.js +15 -6
- package/dist/src/agent/goals/post-turn.js.map +1 -1
- package/dist/src/agent/image/load-image-media.js +2 -2
- package/dist/src/agent/inbound/inbound-loop.js +5 -1
- package/dist/src/agent/inbound/inbound-loop.js.map +1 -1
- package/dist/src/agent/inbound/turn-dispatcher.d.ts +2 -2
- package/dist/src/agent/inbound/turn-dispatcher.js +2 -2
- package/dist/src/agent/inbound/turn-dispatcher.js.map +1 -1
- package/dist/src/agent/ipc/inbox.js +3 -3
- package/dist/src/agent/ipc/socket.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-materialize.d.ts +27 -0
- package/dist/src/agent/mcp/bundle-mcp-materialize.js +50 -2
- package/dist/src/agent/mcp/bundle-mcp-materialize.js.map +1 -1
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +79 -4
- package/dist/src/agent/mcp/bundle-mcp-runtime.js.map +1 -1
- package/dist/src/agent/mcp/bundle-mcp-types.d.ts +19 -0
- package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
- package/dist/src/agent/mcp/mcp-transport.js +1 -1
- package/dist/src/agent/memory/builtin-memory-store.js +1 -1
- package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
- package/dist/src/agent/memory/dreaming/events.js +1 -1
- package/dist/src/agent/memory/dreaming/last-run.js +1 -1
- package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
- package/dist/src/agent/memory/dreaming/preview.js +1 -1
- package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
- package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
- package/dist/src/agent/memory/dreaming/utils.js +1 -1
- package/dist/src/agent/memory/memory-flush.js +1 -1
- package/dist/src/agent/memory/plugin-discovery.js +1 -1
- package/dist/src/agent/models/manager.js +1 -1
- package/dist/src/agent/prompt/memory/index.js +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
- package/dist/src/agent/reply/post-compaction-context.js +1 -1
- package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
- package/dist/src/agent/sandbox/path-policy.js +2 -2
- package/dist/src/agent/service/btw-query.js +11 -3
- package/dist/src/agent/service/btw-query.js.map +1 -1
- package/dist/src/agent/service/parse-outbound-session-key.js +13 -8
- package/dist/src/agent/service/parse-outbound-session-key.js.map +1 -1
- package/dist/src/agent/service/process-direct-one-shot.d.ts +2 -2
- package/dist/src/agent/service/process-direct-one-shot.js +1 -1
- package/dist/src/agent/service/process-direct-one-shot.js.map +1 -1
- package/dist/src/agent/service/process-direct-streaming.d.ts +2 -2
- package/dist/src/agent/service/process-direct-streaming.js +1 -1
- package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
- package/dist/src/agent/service.d.ts +1 -1
- package/dist/src/agent/service.js +13 -9
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/service.types.d.ts +5 -0
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/config.js +2 -2
- package/dist/src/agent/skills/filesystem-watcher.js +5 -4
- package/dist/src/agent/skills/filesystem-watcher.js.map +1 -1
- package/dist/src/agent/skills/hub-hash.js +2 -2
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +2 -2
- package/dist/src/agent/skills/index.js +4 -3
- package/dist/src/agent/skills/index.js.map +1 -1
- package/dist/src/agent/skills/installer.js +2 -2
- package/dist/src/agent/skills/managed-store.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +3 -2
- package/dist/src/agent/skills/skill-manage-ops.js.map +1 -1
- package/dist/src/agent/skills/skill-manager.js +1 -1
- package/dist/src/agent/skills/skill-view-path.js +1 -1
- package/dist/src/agent/skills/test-framework.js +1 -1
- package/dist/src/agent/skills/types.d.ts +1 -1
- package/dist/src/agent/skills/watcher.js +2 -5
- package/dist/src/agent/skills/watcher.js.map +1 -1
- package/dist/src/agent/skills/workspace-skills-dir.d.ts +1 -0
- package/dist/src/agent/skills/workspace-skills-dir.js +11 -0
- package/dist/src/agent/skills/workspace-skills-dir.js.map +1 -0
- package/dist/src/agent/starter-agents.js +1 -1
- package/dist/src/agent/tool-manuals/browser.d.ts +1 -1
- package/dist/src/agent/tool-manuals/browser.js +62 -3
- package/dist/src/agent/tool-manuals/browser.js.map +1 -1
- package/dist/src/agent/tools/browser/tool/browser-use-tool.d.ts +4 -1
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js +13 -4
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +1 -1
- package/dist/src/agent/tools/browser/tool/schemas.d.ts +0 -2
- package/dist/src/agent/tools/browser/tool/schemas.js +1 -2
- package/dist/src/agent/tools/browser/tool/schemas.js.map +1 -1
- package/dist/src/agent/tools/dreaming-tool.js +1 -1
- package/dist/src/agent/tools/factory.js +1 -10
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/find.js +1 -1
- package/dist/src/agent/tools/grep.js +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +1 -1
- package/dist/src/agent/tools/skill-manage-tool.js +2 -2
- package/dist/src/agent/tools/skill-manage-tool.js.map +1 -1
- package/dist/src/agent/tools/workflow-tool.js +1 -1
- package/dist/src/agent/workflow/catalog.js +1 -1
- package/dist/src/agent/workflow/snapshot.d.ts +10 -0
- package/dist/src/agent/workflow/snapshot.js +136 -1
- package/dist/src/agent/workflow/snapshot.js.map +1 -1
- package/dist/src/agent/workflow/subagent-runner.js +18 -1
- package/dist/src/agent/workflow/subagent-runner.js.map +1 -1
- package/dist/src/ai-assist/text-assist.js +1 -1
- package/dist/src/auth/credentials.js +2 -2
- package/dist/src/auth/profiles/store.js +2 -2
- package/dist/src/auth/sync-provider-auth.js +1 -1
- package/dist/src/browser/actions/extension-registry-bridge.js +91 -7
- package/dist/src/browser/actions/extension-registry-bridge.js.map +1 -1
- package/dist/src/browser/actions/registry.js +383 -7
- package/dist/src/browser/actions/registry.js.map +1 -1
- package/dist/src/browser/actions/types.d.ts +11 -3
- package/dist/src/browser/cache-dir-policy.js +1 -1
- package/dist/src/browser/cdp-local-launcher.js +2 -2
- package/dist/src/browser/index.js +2 -2
- package/dist/src/browser/pipeline/output.d.ts +18 -16
- package/dist/src/browser/pipeline/output.js +28 -20
- package/dist/src/browser/pipeline/output.js.map +1 -1
- package/dist/src/browser/pipeline/runner.d.ts +7 -14
- package/dist/src/browser/pipeline/runner.js +349 -102
- package/dist/src/browser/pipeline/runner.js.map +1 -1
- package/dist/src/browser/pipeline/schema.d.ts +1 -0
- package/dist/src/browser/pipeline/schema.js +35 -58
- package/dist/src/browser/pipeline/schema.js.map +1 -1
- package/dist/src/browser/pipeline/source.d.ts +2 -0
- package/dist/src/browser/pipeline/source.js +10 -1
- package/dist/src/browser/pipeline/source.js.map +1 -1
- package/dist/src/browser/pipeline/template.d.ts +10 -2
- package/dist/src/browser/pipeline/template.js +50 -8
- package/dist/src/browser/pipeline/template.js.map +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +4 -4
- package/dist/src/browser/providers/cloakbrowser.js +5 -5
- package/dist/src/browser/providers/playwright-doctor.js +1 -1
- package/dist/src/browser/stealth.js +1 -1
- package/dist/src/channels/catalog/channel-catalog-service.d.ts +2 -1
- package/dist/src/channels/catalog/channel-catalog-service.js +133 -16
- package/dist/src/channels/catalog/channel-catalog-service.js.map +1 -1
- package/dist/src/channels/catalog/channel-catalog-types.d.ts +13 -0
- package/dist/src/channels/outbound/persist-store.js +1 -1
- package/dist/src/channels/pairing/allow-from-file.js +1 -1
- package/dist/src/channels/pairing/pairing-store.js +2 -2
- package/dist/src/chat-commands/agent-edit.js +2 -2
- package/dist/src/chat-commands/builtins/config.js +5 -7
- package/dist/src/chat-commands/builtins/config.js.map +1 -1
- package/dist/src/chat-commands/context.d.ts +5 -0
- package/dist/src/chat-commands/context.js +18 -9
- package/dist/src/chat-commands/context.js.map +1 -1
- package/dist/src/chat-commands/index.d.ts +1 -1
- package/dist/src/chat-commands/index.js +2 -2
- package/dist/src/chat-commands/index.js.map +1 -1
- package/dist/src/chat-commands/processor.js +22 -21
- package/dist/src/chat-commands/processor.js.map +1 -1
- package/dist/src/chat-commands/session-key.d.ts +3 -15
- package/dist/src/chat-commands/session-key.js +3 -49
- package/dist/src/chat-commands/session-key.js.map +1 -1
- package/dist/src/chat-commands/types.d.ts +4 -0
- package/dist/src/cli/commands/browser-cli-helpers.js +11 -5
- package/dist/src/cli/commands/browser-cli-helpers.js.map +1 -1
- package/dist/src/cli/commands/config.js +1 -1
- package/dist/src/cli/commands/doctor/checks/channel-config.js +14 -1
- package/dist/src/cli/commands/doctor/checks/channel-config.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
- package/dist/src/cli/commands/doctor/checks/session-integrity.js +8 -8
- package/dist/src/cli/commands/doctor/checks/session-integrity.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
- package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
- package/dist/src/cli/commands/extension-create.js +1 -1
- package/dist/src/cli/commands/extension-dev.js +2 -2
- package/dist/src/cli/commands/extension-marketplace.js +2 -2
- package/dist/src/cli/commands/extension-pack.js +2 -2
- package/dist/src/cli/commands/extension.js +3 -3
- package/dist/src/cli/commands/gateway/logs.js +1 -1
- package/dist/src/cli/commands/image.js +1 -1
- package/dist/src/cli/commands/init.js +2 -2
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/skills-test.js +1 -1
- package/dist/src/cli/templates.js +1 -1
- package/dist/src/cli/utils/gateway-client.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +2 -2
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/agent-typed-models.js +1 -1
- package/dist/src/config/gateway-bind.js +1 -1
- package/dist/src/config/index.js +7 -7
- package/dist/src/config/loader.js +4 -4
- package/dist/src/config/models-json.js +2 -2
- package/dist/src/config/paths-state.js +1 -1
- package/dist/src/config/paths.js +1 -1
- package/dist/src/config/profile.js +1 -1
- package/dist/src/config/reload.js +1 -1
- package/dist/src/config/rules.js +5 -0
- package/dist/src/config/rules.js.map +1 -1
- package/dist/src/config/schema.d.ts +8 -0
- package/dist/src/config/schema.js +7 -0
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/config/web-patch.d.ts +1 -0
- package/dist/src/config/web-patch.js +1 -0
- package/dist/src/config/web-patch.js.map +1 -1
- package/dist/src/config/workspace-path.js +1 -1
- package/dist/src/connectors/builtin-catalog.js +180 -1
- package/dist/src/connectors/builtin-catalog.js.map +1 -1
- package/dist/src/connectors/health.js +18 -9
- package/dist/src/connectors/health.js.map +1 -1
- package/dist/src/connectors/types.d.ts +19 -0
- package/dist/src/connectors/usage.js +12 -4
- package/dist/src/connectors/usage.js.map +1 -1
- package/dist/src/cron/executor.js +1 -1
- package/dist/src/cron/service.js +1 -1
- package/dist/src/daemon/constants.js +1 -1
- package/dist/src/daemon/install-plan.js +2 -2
- package/dist/src/daemon/launchd.js +2 -2
- package/dist/src/daemon/schtasks.js +2 -2
- package/dist/src/daemon/systemd.js +2 -2
- package/dist/src/extensions/bundle-mcp.js +1 -1
- package/dist/src/extensions/discover-extensions.js +2 -2
- package/dist/src/extensions/health.js +1 -1
- package/dist/src/extensions/install.js +2 -2
- package/dist/src/extensions/loader.js +2 -2
- package/dist/src/extensions/lockfile.js +3 -3
- package/dist/src/extensions/security.js +1 -1
- package/dist/src/extensions/types/tui.d.ts +2 -0
- package/dist/src/extensions/update.js +2 -2
- package/dist/src/gateway/agents-admin.js +2 -2
- package/dist/src/gateway/file-path-classifier.js +2 -2
- package/dist/src/gateway/heartbeat/service.js +13 -1
- package/dist/src/gateway/heartbeat/service.js.map +1 -1
- package/dist/src/gateway/hono/app.js +18 -5
- package/dist/src/gateway/hono/app.js.map +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +3 -1
- package/dist/src/gateway/hono/lib/config-payload.js +7 -4
- package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
- package/dist/src/gateway/hono/lib/extension-store.js +2 -2
- package/dist/src/gateway/hono/lib/static-ui.js +2 -2
- package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +4 -0
- package/dist/src/gateway/hono/middleware/strict-rate-limit.js +19 -5
- package/dist/src/gateway/hono/middleware/strict-rate-limit.js.map +1 -1
- package/dist/src/gateway/hono/oauth-async.js +1 -1
- package/dist/src/gateway/hono/routes/agent-stream.js +6 -6
- package/dist/src/gateway/hono/routes/agent-stream.js.map +1 -1
- package/dist/src/gateway/hono/routes/agents.js +1 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
- package/dist/src/gateway/hono/routes/channels.js +18 -14
- package/dist/src/gateway/hono/routes/channels.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/gateway.d.ts +1 -1
- package/dist/src/gateway/hono/routes/config-patch/gateway.js +6 -0
- package/dist/src/gateway/hono/routes/config-patch/gateway.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
- package/dist/src/gateway/hono/routes/deps.d.ts +1 -0
- package/dist/src/gateway/hono/routes/dreaming.js +1 -1
- package/dist/src/gateway/hono/routes/goals.js +16 -3
- package/dist/src/gateway/hono/routes/goals.js.map +1 -1
- package/dist/src/gateway/hono/routes/host-fs.js +2 -2
- package/dist/src/gateway/hono/routes/logs.js +1 -0
- package/dist/src/gateway/hono/routes/logs.js.map +1 -1
- package/dist/src/gateway/hono/routes/mcp.js +27 -8
- package/dist/src/gateway/hono/routes/mcp.js.map +1 -1
- package/dist/src/gateway/hono/routes/models.js +1 -1
- package/dist/src/gateway/hono/routes/notes.js +14 -2
- package/dist/src/gateway/hono/routes/notes.js.map +1 -1
- package/dist/src/gateway/hono/routes/sessions.js +62 -4
- package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
- package/dist/src/gateway/hono/routes/shares.js +1 -1
- package/dist/src/gateway/hono/routes/workflows.js +1 -1
- package/dist/src/gateway/hono/routes/workspace.js +5 -68
- package/dist/src/gateway/hono/routes/workspace.js.map +1 -1
- package/dist/src/gateway/hono/sse.d.ts +2 -2
- package/dist/src/gateway/hono/sse.js +7 -15
- package/dist/src/gateway/hono/sse.js.map +1 -1
- package/dist/src/gateway/lock.js +3 -3
- package/dist/src/gateway/ports.js +1 -1
- package/dist/src/gateway/rate-limit/buckets.d.ts +3 -0
- package/dist/src/gateway/rate-limit/buckets.js +12 -0
- package/dist/src/gateway/rate-limit/buckets.js.map +1 -1
- package/dist/src/gateway/resolve-webchat-session-key.d.ts +2 -6
- package/dist/src/gateway/resolve-webchat-session-key.js +5 -31
- package/dist/src/gateway/resolve-webchat-session-key.js.map +1 -1
- package/dist/src/gateway/service/agent-runner.d.ts +2 -3
- package/dist/src/gateway/service/agent-runner.js +9 -22
- package/dist/src/gateway/service/agent-runner.js.map +1 -1
- package/dist/src/gateway/service/config-coordinator.js +1 -1
- package/dist/src/gateway/service/marketplace-service.js +2 -2
- package/dist/src/gateway/service/run-gateway-agent.js +9 -7
- package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
- package/dist/src/gateway/service/sessions-api.d.ts +9 -0
- package/dist/src/gateway/service/sessions-api.js +11 -0
- package/dist/src/gateway/service/sessions-api.js.map +1 -1
- package/dist/src/gateway/service.d.ts +1 -1
- package/dist/src/gateway/service.js +23 -9
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/gateway/workspace-file-search.d.ts +9 -0
- package/dist/src/gateway/workspace-file-search.js +76 -0
- package/dist/src/gateway/workspace-file-search.js.map +1 -0
- package/dist/src/gateway/workspace-fs-file-list.js +1 -1
- package/dist/src/goals/goal-notifications.d.ts +2 -0
- package/dist/src/goals/goal-notifications.js +16 -11
- package/dist/src/goals/goal-notifications.js.map +1 -1
- package/dist/src/goals/goal-service.js +1 -6
- package/dist/src/goals/goal-service.js.map +1 -1
- package/dist/src/goals/goal-workflow-judge.js +2 -2
- package/dist/src/i18n/goals-bundle.js +1 -1
- package/dist/src/i18n/index.js +1 -1
- package/dist/src/i18n/share-tool-bundle.js +2 -2
- package/dist/src/infra/brew.js +1 -1
- package/dist/src/infra/package-json.js +1 -1
- package/dist/src/infra/package-update-steps.js +1 -1
- package/dist/src/infra/path-env.js +2 -2
- package/dist/src/infra/restart.js +1 -1
- package/dist/src/infra/stable-node-path.js +1 -1
- package/dist/src/infra/update-check.js +1 -1
- package/dist/src/infra/update-global.js +1 -1
- package/dist/src/infra/update-lock.js +2 -2
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/infra/update-runner.js +1 -1
- package/dist/src/infra/update-startup.js +1 -1
- package/dist/src/infra/write-file-atomic.js +2 -2
- package/dist/src/media/store.js +1 -1
- package/dist/src/notes/agent-context.js +1 -1
- package/dist/src/notes/service.js +1 -1
- package/dist/src/notes/store.js +2 -2
- package/dist/src/project-trust/trust-store.js +4 -2
- package/dist/src/project-trust/trust-store.js.map +1 -1
- package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
- package/dist/src/providers/index.js +1 -1
- package/dist/src/providers/model-registry.js +4 -4
- package/dist/src/session/index.d.ts +1 -1
- package/dist/src/session/index.js +2 -2
- package/dist/src/session/init-session-turn.js +7 -10
- package/dist/src/session/init-session-turn.js.map +1 -1
- package/dist/src/session/manager.d.ts +5 -1
- package/dist/src/session/manager.js +5 -2
- package/dist/src/session/manager.js.map +1 -1
- package/dist/src/session/reset-type.d.ts +0 -2
- package/dist/src/session/reset-type.js +3 -9
- package/dist/src/session/reset-type.js.map +1 -1
- package/dist/src/session/resolve-session.js +10 -21
- package/dist/src/session/resolve-session.js.map +1 -1
- package/dist/src/session/session-title.js +2 -2
- package/dist/src/session/store.d.ts +11 -3
- package/dist/src/session/store.js +30 -14
- package/dist/src/session/store.js.map +1 -1
- package/dist/src/session/types.d.ts +2 -4
- package/dist/src/session/types.js.map +1 -1
- package/dist/src/share/share-auto.js +2 -2
- package/dist/src/share/share-store.js +3 -3
- package/dist/src/share/share-thumbnail.js +2 -2
- package/dist/src/share/share-zip.js +1 -1
- package/dist/src/share/site-share-store.js +3 -3
- package/dist/src/share/site-static-serve.js +1 -1
- package/dist/src/storage/sqlite/connection.js +1 -1
- package/dist/src/storage/sqlite/index.d.ts +2 -2
- package/dist/src/storage/sqlite/index.js +3 -3
- package/dist/src/storage/sqlite/memory-index-repository.js +2 -2
- package/dist/src/storage/sqlite/migrations/010_session_id_identity.sql +30 -0
- package/dist/src/storage/sqlite/migrations/discover.js +1 -1
- package/dist/src/storage/sqlite/migrations/runner.d.ts +2 -2
- package/dist/src/storage/sqlite/migrations/runner.js +5 -5
- package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
- package/dist/src/storage/sqlite/migrations/runner.ts +2 -2
- package/dist/src/storage/sqlite/row-mappers.d.ts +4 -4
- package/dist/src/storage/sqlite/row-mappers.js +11 -14
- package/dist/src/storage/sqlite/row-mappers.js.map +1 -1
- package/dist/src/storage/sqlite/schema.js +4 -4
- package/dist/src/storage/sqlite/schema.js.map +1 -1
- package/dist/src/storage/sqlite/schema.sql +37 -10
- package/dist/src/storage/sqlite/session-metadata.d.ts +2 -7
- package/dist/src/storage/sqlite/session-metadata.js +18 -72
- package/dist/src/storage/sqlite/session-metadata.js.map +1 -1
- package/dist/src/storage/sqlite/session-repository.d.ts +6 -5
- package/dist/src/storage/sqlite/session-repository.js +34 -40
- package/dist/src/storage/sqlite/session-repository.js.map +1 -1
- package/dist/src/storage/sqlite/transcript-repository.d.ts +2 -2
- package/dist/src/storage/sqlite/transcript-repository.js +52 -52
- package/dist/src/storage/sqlite/transcript-repository.js.map +1 -1
- package/dist/src/tui/backends/embedded-backend.d.ts +18 -4
- package/dist/src/tui/backends/embedded-backend.js +100 -1
- package/dist/src/tui/backends/embedded-backend.js.map +1 -1
- package/dist/src/tui/backends/gateway-sse-backend.d.ts +5 -1
- package/dist/src/tui/backends/gateway-sse-backend.js +45 -2
- package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
- package/dist/src/tui/clipboard-image.js +3 -3
- package/dist/src/tui/components/chat-log.d.ts +2 -0
- package/dist/src/tui/components/chat-log.js +19 -0
- package/dist/src/tui/components/chat-log.js.map +1 -1
- package/dist/src/tui/extension-host/autocomplete.d.ts +3 -2
- package/dist/src/tui/extension-host/autocomplete.js +29 -12
- package/dist/src/tui/extension-host/autocomplete.js.map +1 -1
- package/dist/src/tui/extension-host/load-extensions.js +1 -1
- package/dist/src/tui/extension-host/runtime.d.ts +12 -0
- package/dist/src/tui/extension-host/runtime.js +6 -4
- package/dist/src/tui/extension-host/runtime.js.map +1 -1
- package/dist/src/tui/theme-manager.js +1 -1
- package/dist/src/tui/tui-backend.d.ts +23 -0
- package/dist/src/tui/tui-command-formatters.js +4 -4
- package/dist/src/tui/tui-commands.d.ts +16 -3
- package/dist/src/tui/tui-commands.js +134 -27
- package/dist/src/tui/tui-commands.js.map +1 -1
- package/dist/src/tui/tui-file-autocomplete.d.ts +5 -0
- package/dist/src/tui/tui-file-autocomplete.js +26 -0
- package/dist/src/tui/tui-file-autocomplete.js.map +1 -0
- package/dist/src/tui/tui-keybindings-file.js +1 -1
- package/dist/src/tui/tui-picker-overlay.js +1 -1
- package/dist/src/tui/tui-scoped-models.js +2 -2
- package/dist/src/tui/tui-settings.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/tui/tui-startup-text.js +1 -1
- package/dist/src/tui/tui-startup-text.js.map +1 -1
- package/dist/src/tui/tui.js +106 -17
- package/dist/src/tui/tui.js.map +1 -1
- package/dist/src/tunnel/frpc-binary.js +4 -4
- package/dist/src/tunnel/frpc-config.js +1 -1
- package/dist/src/tunnel/frpc-extract.js +1 -1
- package/dist/src/tunnel/tunnel-state.js +1 -1
- package/dist/src/utils/logger/audit.js +1 -1
- package/dist/src/utils/logger/context.d.ts +2 -2
- package/dist/src/utils/logger/context.js +2 -1
- package/dist/src/utils/logger/context.js.map +1 -1
- package/dist/src/utils/logger/log-store.js +2 -1
- package/dist/src/utils/logger/log-store.js.map +1 -1
- package/dist/src/utils/logger/pino-record.js +3 -0
- package/dist/src/utils/logger/pino-record.js.map +1 -1
- package/dist/src/utils/logger/rotation.js +1 -1
- package/dist/src/utils/logger/streams.js +1 -1
- package/dist/src/utils/logger/types.d.ts +5 -0
- package/dist/src/utils/logger/types.js.map +1 -1
- package/dist/src/voice/tts/audio.js +1 -1
- package/dist/src/voice/tts/providers/edge-speech.js +2 -2
- package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.js +1 -1
- package/dist/src/workflows/service/workflow-session-bridge.js +13 -1
- package/dist/src/workflows/service/workflow-session-bridge.js.map +1 -1
- package/dist/src/workflows/store/event-store.js +1 -1
- package/dist/src/workflows/store/run-store.js +1 -1
- package/package.json +1 -1
- package/dist/gateway/static/root/assets/agent-browser-settings-page-rGbKc2Hh.js +0 -6
- package/dist/gateway/static/root/assets/agent-defaults-tabbed-page-CtwVbjOA.js +0 -1
- package/dist/gateway/static/root/assets/agents-CCBmGcwc.js +0 -71
- package/dist/gateway/static/root/assets/apps-page-xwCsJS15.js +0 -1
- package/dist/gateway/static/root/assets/channels-settings-C044DcYk.js +0 -1
- package/dist/gateway/static/root/assets/connectors-settings-8VEWUOTj.js +0 -2
- package/dist/gateway/static/root/assets/cron-page-DqmNGNOy.js +0 -3
- package/dist/gateway/static/root/assets/goal-detail-page-bv0VRDaf.js +0 -1
- package/dist/gateway/static/root/assets/goals-page-1Ywnt4Cb.js +0 -2
- package/dist/gateway/static/root/assets/goals-settings-ceEBjnfc.js +0 -1
- package/dist/gateway/static/root/assets/index-Cxm6xsps.js +0 -122
- package/dist/gateway/static/root/assets/index-b_R4tKqt.css +0 -1
- package/dist/gateway/static/root/assets/logs-page-B_wrxhee.js +0 -2
- package/dist/gateway/static/root/assets/messages-CkT-lcgP.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-panel-D0JDSbNu.js +0 -2
- package/dist/gateway/static/root/assets/note-detail-page-DpFV-EO6.js +0 -2
- package/dist/gateway/static/root/assets/notes-page-CdkjTch8.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-DSYVAi96.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-CenkcVjF.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-D9sva86V.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-DL35U0x0.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-Ctwbp9Er.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-DIM3JNsr.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-DAlNaNzL.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-CLrHVzAt.js +0 -2
- package/dist/gateway/static/root/assets/voice-api-key-field-vYAO71Gn.js +0 -1
- package/dist/gateway/static/root/assets/workflow-page.utils-sgHjOXOm.js +0 -1
- 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-
|
|
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-
|
|
27
|
-
<link rel="modulepreload" crossorigin href="/assets/fetch-
|
|
28
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-
|
|
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-
|
|
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="#
|
|
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="#
|
|
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="#
|
|
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
|
@@ -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 {
|
|
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 {
|
|
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 {
|
|
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.
|
|
188
|
-
getMemoryManager: () => this.
|
|
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.
|
|
231
|
+
return this.getCurrentWorkspaceRuntime().memoryManager;
|
|
222
232
|
}
|
|
223
233
|
getMemoryManagerForSession(sessionKey) {
|
|
224
|
-
|
|
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:
|
|
271
|
+
workspacePath: this.getResolvedWorkspaceForSession(sessionKey),
|
|
263
272
|
lastAssistantText: this.getLastAssistantContent(sessionKey),
|
|
264
|
-
workspaceRuntime: this.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
391
|
-
|
|
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(
|
|
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:
|
|
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
|
|
456
|
-
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
786
|
+
workspaceOverride: resolvedWorkspacePath,
|
|
752
787
|
profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
|
|
753
788
|
systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
|
|
754
789
|
skillAllowlist: instance.effectiveProfile.skillsAllowlist,
|