@xopcai/xopc 0.0.324 → 0.0.329
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/README.md +4 -3
- package/README.zh-CN.md +4 -3
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-B-Gczr_A.js → agent-avatar-dicebear-Bs1qnnhD.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DHJyAT7t.js +1 -0
- package/dist/gateway/static/root/assets/agent-plugin-dialog-DLKj_iIh.js +1 -0
- package/dist/gateway/static/root/assets/agents-SXZ5O0g4.js +70 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-BwWdVRlb.js → app-management-settings-panel-BrIji9B5.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-EoXNDO1j.js → appearance-settings-Uts-MQ7K.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-DcclVdxW.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-B_T0uMvL.js → archive-plugin-_EzRfBuI.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-D9DDwxd2.js → attachment-load-CHg7_XFl.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-jI9vNr2r.js → automations-page-CGMErk_w.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-Cc4yqiF6.js +7 -0
- package/dist/gateway/static/root/assets/{binary-plugins-Dzsxh9OL.js → binary-plugins-D3WB-tVn.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-CWUUgWWk.js → block-editor-Cm1W-14I.js} +53 -53
- package/dist/gateway/static/root/assets/box-DvYoGszj.js +1 -0
- package/dist/gateway/static/root/assets/braces-Cfmtagno.js +1 -0
- package/dist/gateway/static/root/assets/{browser-automation-inputs-DSWXq9lI.js → browser-automation-inputs-VnvK-GQP.js} +1 -1
- package/dist/gateway/static/root/assets/browser-automations-page-CZYCvSSU.js +3 -0
- package/dist/gateway/static/root/assets/browser-settings-page-DDz9PE6m.js +3 -0
- package/dist/gateway/static/root/assets/calendar-clock-D-quYVPe.js +1 -0
- package/dist/gateway/static/root/assets/capabilities-page-DH3aDk53.js +2 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-C8jMZAJl.js +8 -0
- package/dist/gateway/static/root/assets/capability-discover-page-CgGvsf3t.js +1 -0
- package/dist/gateway/static/root/assets/capability-header-actions-C3chJDQu.js +1 -0
- package/dist/gateway/static/root/assets/capability-icon-BYm2-nS-.js +1 -0
- package/dist/gateway/static/root/assets/channels-CuVS_KsY.js +1 -0
- package/dist/gateway/static/root/assets/{chat-terminal-dock-WXZrEB3K.js → chat-terminal-dock-ClbmjCL2.js} +2 -2
- package/dist/gateway/static/root/assets/chevron-left-DqFhpbvK.js +1 -0
- package/dist/gateway/static/root/assets/clock-3-DnrAnuyZ.js +1 -0
- package/dist/gateway/static/root/assets/computer-settings-page-BfZaf516.js +1 -0
- package/dist/gateway/static/root/assets/connector-service-page-F-fYNIx8.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-B4SLpvSL.js +2 -0
- package/dist/gateway/static/root/assets/date-picker-DXQTsUJn.js +1 -0
- package/dist/gateway/static/root/assets/dependency-picker-B_z3zihW.js +1 -0
- package/dist/gateway/static/root/assets/{desktop-pet-DPVPqFlh.js → desktop-pet-C1TZzKS3.js} +1 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-B5JGIfqn.js +1 -0
- package/dist/gateway/static/root/assets/device-pairing-wizard-DFYK_Ywf.js +1 -0
- package/dist/gateway/static/root/assets/directory-picker-path-field-BfxaNwMB.js +1 -0
- package/dist/gateway/static/root/assets/ellipsis-0k4rZLoy.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-cuG5Lnwf.js → extension-debug-page-Bs8_FYCm.js} +1 -1
- package/dist/gateway/static/root/assets/extension-marketplace-api-DqV4YRYs.js +1 -0
- package/dist/gateway/static/root/assets/{extension-page-BCTAXdyE.js → extension-page-DH5vFbBw.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-kadW_icu.js → extension-settings-page-hGKovxxC.js} +1 -1
- package/dist/gateway/static/root/assets/external-link-DjqjBmc3.js +1 -0
- package/dist/gateway/static/root/assets/eye-CABVeTq0.js +1 -0
- package/dist/gateway/static/root/assets/folder-open-CyzJ19I9.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-CoQVulMd.js → gateway-config-swr-BYMrbKZE.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-BIsiP-JI.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-B5GJ-CQV.js → gateway-startup-retry-DMqYXHAn.js} +1 -1
- package/dist/gateway/static/root/assets/gauge-C78eD2BA.js +1 -0
- package/dist/gateway/static/root/assets/git-branch-Dh9uxTot.js +1 -0
- package/dist/gateway/static/root/assets/globe-DSSGFWFn.js +1 -0
- package/dist/gateway/static/root/assets/home-page-CoBivEvx.js +1 -0
- package/dist/gateway/static/root/assets/image-Cwyalflz.js +1 -0
- package/dist/gateway/static/root/assets/{image-generation-api-DvWDkbk1.js → image-generation-api-D1sQGaJz.js} +1 -1
- package/dist/gateway/static/root/assets/imports-page-rssb4rjP.js +1 -0
- package/dist/gateway/static/root/assets/inbox-DNoSz682.js +1 -0
- package/dist/gateway/static/root/assets/index-C4QN4gCi.css +1 -0
- package/dist/gateway/static/root/assets/index-Cr4SINLG.js +121 -0
- package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-C1fKIjz4.js → keyboard-shortcuts-settings-CMitbles.js} +1 -1
- package/dist/gateway/static/root/assets/layout-grid-CEVZdVFU.js +1 -0
- package/dist/gateway/static/root/assets/link-2-D_ZKYUW7.js +1 -0
- package/dist/gateway/static/root/assets/list-BBGUdmkF.js +1 -0
- package/dist/gateway/static/root/assets/loader-circle-CifKLtgG.js +1 -0
- package/dist/gateway/static/root/assets/local-app-workbench-page-Di82Oacm.js +1 -0
- package/dist/gateway/static/root/assets/local-apps-page-CCvA9d9L.js +1 -0
- package/dist/gateway/static/root/assets/{locale-store-BPZR8x9b.js → locale-store-BSkKhYkc.js} +1 -1
- package/dist/gateway/static/root/assets/lock-keyhole-DEK5kH0u.js +1 -0
- package/dist/gateway/static/root/assets/logs-page-BK8ol1q0.js +2 -0
- package/dist/gateway/static/root/assets/management-settings-CebXkEtB.js +1 -0
- package/dist/gateway/static/root/assets/{markdown-view-Dft8ASFD.js → markdown-view-DXubGEic.js} +2 -2
- package/dist/gateway/static/root/assets/{media-plugins-Cjj-fidX.js → media-plugins-DLJrmU9J.js} +1 -1
- package/dist/gateway/static/root/assets/message-circle-Badhj-4D.js +1 -0
- package/dist/gateway/static/root/assets/message-square-fVE7Ghj1.js +1 -0
- package/dist/gateway/static/root/assets/message-square-plus-XP0tGdlV.js +1 -0
- package/dist/gateway/static/root/assets/messages-D0G_sZvA.js +3 -0
- package/dist/gateway/static/root/assets/minimize-2-DtOGrlpo.js +1 -0
- package/dist/gateway/static/root/assets/models-hub-cache-B0EUPwTv.js +1 -0
- package/dist/gateway/static/root/assets/network-BUQLY1BV.js +1 -0
- package/dist/gateway/static/root/assets/note-detail-panel-xsKDIJdK.js +5 -0
- package/dist/gateway/static/root/assets/note-image-lightbox-1qg2v-9j.js +1 -0
- package/dist/gateway/static/root/assets/notes-page-BFm7XnWH.js +8 -0
- package/dist/gateway/static/root/assets/page-context-capture-button-C3JiQEKD.js +1 -0
- package/dist/gateway/static/root/assets/paperclip-f1HujQY1.js +1 -0
- package/dist/gateway/static/root/assets/pencil-DmIY3Oa-.js +1 -0
- package/dist/gateway/static/root/assets/power-ZI-pBczI.js +1 -0
- package/dist/gateway/static/root/assets/preview-open-alternatives-buk_gdip.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-DlpCi5zT.js → product-open-page-DwEEO0Ak.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-CRQGCRSU.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-DcqylysA.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-DWWO6ajd.js → registry-api-tx8XCHOs.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-Cq5MaiRW.js +1 -0
- package/dist/gateway/static/root/assets/rotate-cw-LIg3Am9S.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-BT_ANpaT.js → runtime-tools-settings-panel-De7HmmBu.js} +2 -2
- package/dist/gateway/static/root/assets/scenes-page-GXJ-b3dO.js +2 -0
- package/dist/gateway/static/root/assets/{schema-form-BcqsqSsV.js → schema-form-DPMEuj5D.js} +1 -1
- package/dist/gateway/static/root/assets/search-DA7gz22f.js +1 -0
- package/dist/gateway/static/root/assets/server-BlHCBjiE.js +1 -0
- package/dist/gateway/static/root/assets/sessions-page-C6FwYIRA.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-BEyQiZs0.js +1 -0
- package/dist/gateway/static/root/assets/settings-form-section-DM0D-BQ_.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-B65vii9U.js → settings-page-CWS9yOH3.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-layout-X1x-2Cp9.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-BhGKiTPf.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-BS8o58NJ.js → share-preview-page-CcRi2yGy.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-DNmcCBfX.js +1 -0
- package/dist/gateway/static/root/assets/skill-api-BCAV_F1P.js +1 -0
- package/dist/gateway/static/root/assets/skill-card-icon-BrrpZ3Mw.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-BEV2WXGk.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-C8zOGpKw.js +2 -0
- package/dist/gateway/static/root/assets/star-BUWJqJ5c.js +1 -0
- package/dist/gateway/static/root/assets/stethoscope-DRqTAtjD.js +1 -0
- package/dist/gateway/static/root/assets/store-SzD1Jvgm.js +1 -0
- package/dist/gateway/static/root/assets/system-settings-panel-C_lajq9u.js +1 -0
- package/dist/gateway/static/root/assets/task-detail-page-Dk8Bmlhw.js +1 -0
- package/dist/gateway/static/root/assets/tunnel-api-CYvKiE_f.js +1 -0
- package/dist/gateway/static/root/assets/upload-rrb46c3c.js +1 -0
- package/dist/gateway/static/root/assets/use-autosave-ZTHe1zCM.js +1 -0
- package/dist/gateway/static/root/assets/user-model-page-C_SPNZbP.js +2 -0
- package/dist/gateway/static/root/assets/user-round-C9jxPhMR.js +1 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-DJV-qERt.js → voice-api-key-field-C8Kpkct-.js} +1 -1
- package/dist/gateway/static/root/assets/voice-config-api-BvzxINUk.js +1 -0
- package/dist/gateway/static/root/assets/wand-sparkles-DWuJz5ya.js +1 -0
- package/dist/gateway/static/root/assets/{work-discovery-overlay-DcHhy54L.js → work-discovery-overlay-ClB6T-dm.js} +1 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-X0Cyh2AR.js +3 -0
- package/dist/gateway/static/root/assets/workflows-page-BrL6dzf0.js +6 -0
- package/dist/gateway/static/root/connector-icons/SOURCES.md +1 -0
- package/dist/gateway/static/root/connector-icons/wecom.svg +9 -0
- package/dist/gateway/static/root/index.html +26 -8
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-instance-gateway.d.ts +2 -2
- package/dist/src/agent/agent-manager.d.ts +4 -2
- package/dist/src/agent/agent-manager.js +58 -19
- package/dist/src/agent/background-review/coordinator.d.ts +2 -7
- package/dist/src/agent/background-review/coordinator.js +17 -34
- package/dist/src/agent/background-review/prompts.d.ts +13 -5
- package/dist/src/agent/background-review/prompts.js +17 -12
- package/dist/src/agent/background-review/run-background-review.d.ts +3 -3
- package/dist/src/agent/background-review/run-background-review.js +58 -43
- package/dist/src/agent/context/execution-context.js +5 -2
- package/dist/src/agent/mcp/index.js +1 -1
- package/dist/src/agent/mcp/mcp-transport.js +2 -2
- package/dist/src/agent/mcp/oauth/index.js +1 -1
- package/dist/src/agent/mcp/oauth/mcp-oauth-manager.js +2 -2
- package/dist/src/agent/mcp/oauth/mcp-oauth-provider.js +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.js +1 -1
- package/dist/src/agent/prompt/sections/tooling.js +3 -0
- package/dist/src/agent/service/direct-turn-helpers.js +1 -1
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.d.ts +12 -0
- package/dist/src/agent/tools/user-context-tool.js +29 -4
- package/dist/src/automations/domain/types.d.ts +7 -1
- package/dist/src/automations/service/action-executor.d.ts +2 -2
- package/dist/src/automations/service/action-executor.js +36 -13
- package/dist/src/automations/service/automation-service.js +2 -1
- package/dist/src/browser/automations/index.js +2 -2
- package/dist/src/browser/automations/service.d.ts +11 -2
- package/dist/src/browser/automations/service.js +19 -5
- package/dist/src/capabilities/readiness/from-config.d.ts +0 -1
- package/dist/src/capabilities/readiness/from-config.js +2 -4
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/extension-agent-plugin.js +2 -1
- package/dist/src/config/schema.js +4 -4
- package/dist/src/connectors/china-catalog.js +5 -1
- package/dist/src/connectors/connected-source-ingestion.js +6 -1
- package/dist/src/connectors/connected-source-observations.d.ts +10 -0
- package/dist/src/connectors/connected-source-observations.js +80 -0
- package/dist/src/connectors/connected-source-understanding.js +198 -8
- package/dist/src/connectors/learning-coordinator.js +63 -26
- package/dist/src/connectors/learning-recipes.js +19 -2
- package/dist/src/discussions/audio-repair.d.ts +1 -1
- package/dist/src/discussions/live-worker.js +1 -3
- package/dist/src/discussions/recording.js +2 -2
- package/dist/src/discussions/sealer.js +2 -2
- package/dist/src/extensions/agent-plugins/auth.d.ts +2 -2
- package/dist/src/extensions/agent-plugins/auth.js +6 -35
- package/dist/src/extensions/agent-plugins/credentials.d.ts +2 -0
- package/dist/src/extensions/agent-plugins/credentials.js +37 -0
- package/dist/src/extensions/agent-plugins/plugin-oauth-scope.d.ts +1 -0
- package/dist/src/extensions/agent-plugins/plugin-oauth-scope.js +8 -0
- package/dist/src/extensions/marketplace.d.ts +4 -0
- package/dist/src/extensions/marketplace.js +4 -0
- package/dist/src/gateway/file-space-service.d.ts +9 -2
- package/dist/src/gateway/hono/routes/agent-plugins.js +2 -1
- package/dist/src/gateway/hono/routes/config.js +0 -3
- package/dist/src/gateway/hono/routes/connectors.js +3 -10
- package/dist/src/gateway/hono/routes/context-sources.d.ts +0 -1
- package/dist/src/gateway/hono/routes/context-sources.js +12 -15
- package/dist/src/gateway/hono/routes/status.js +0 -1
- package/dist/src/gateway/hono/routes/user-model.js +21 -3
- package/dist/src/gateway/hono/routes/voice.js +0 -67
- package/dist/src/gateway/service.js +6 -4
- package/dist/src/media-understanding/types.d.ts +1 -1
- package/dist/src/memory-maintenance/service.d.ts +1 -0
- package/dist/src/memory-maintenance/service.js +13 -0
- package/dist/src/migrations/retired-local-stt.d.ts +2 -0
- package/dist/src/migrations/retired-local-stt.js +52 -0
- package/dist/src/migrations/runner.js +2 -1
- package/dist/src/session/turn-outcome-projector.js +1 -1
- package/dist/src/storage/sqlite/connection.js +1 -0
- package/dist/src/storage/sqlite/migrations/207_user_model_policy_contract.sql +121 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/sql-assets.d.ts +1 -0
- package/dist/src/storage/sqlite/sql-assets.js +7 -4
- package/dist/src/tasks/index.js +2 -2
- package/dist/src/tasks/task-application-service.d.ts +1 -0
- package/dist/src/tasks/task-application-service.js +4 -2
- package/dist/src/tasks/task-context-assembler.js +10 -1
- package/dist/src/tasks/task-run-dispatcher.d.ts +1 -0
- package/dist/src/tasks/task-run-dispatcher.js +15 -2
- package/dist/src/user-context/sources/consent-repository.d.ts +7 -0
- package/dist/src/user-context/sources/consent-repository.js +81 -0
- package/dist/src/user-context/sources/index.d.ts +1 -0
- package/dist/src/user-context/sources/index.js +2 -1
- package/dist/src/user-context/sources/repository.js +73 -1
- package/dist/src/user-context/sources/types.d.ts +16 -0
- package/dist/src/user-model/action-rule-suggestions.d.ts +11 -0
- package/dist/src/user-model/action-rule-suggestions.js +29 -0
- package/dist/src/user-model/bootstrap.js +1 -1
- package/dist/src/user-model/capture/executor.js +83 -7
- package/dist/src/user-model/capture/semantic.d.ts +5 -2
- package/dist/src/user-model/capture/semantic.js +27 -11
- package/dist/src/user-model/domain.d.ts +26 -0
- package/dist/src/user-model/domain.js +40 -2
- package/dist/src/user-model/index.d.ts +2 -0
- package/dist/src/user-model/index.js +6 -4
- package/dist/src/user-model/maintenance-policy.d.ts +1 -0
- package/dist/src/user-model/maintenance-policy.js +13 -0
- package/dist/src/user-model/observation-repository.d.ts +48 -0
- package/dist/src/user-model/observation-repository.js +100 -0
- package/dist/src/user-model/repository.d.ts +5 -0
- package/dist/src/user-model/repository.js +121 -10
- package/dist/src/user-model/usage-policy.d.ts +5 -2
- package/dist/src/user-model/usage-policy.js +2 -2
- package/dist/src/voice/audio/normalize.d.ts +1 -1
- package/dist/src/voice/audio/normalize.js +1 -1
- package/dist/src/voice/{local → audio}/wav.js +1 -1
- package/dist/src/voice/language-profile.js +10 -16
- package/dist/src/voice/metadata/builtin.js +0 -46
- package/dist/src/voice/stt/providers/index.d.ts +0 -1
- package/dist/src/voice/stt/providers/index.js +1 -2
- package/dist/src/voice/stt/types.js +3 -4
- package/dist/src/voice/tts/merge-config.js +1 -1
- package/dist/src/voice/tts/speech-registry.d.ts +1 -1
- package/dist/src/voice/tts/types.d.ts +1 -1
- package/dist/src/work-discovery/analyzer.js +6 -5
- package/dist/src/work-discovery/service.js +2 -2
- package/dist/src/work-discovery/types.d.ts +1 -1
- package/dist/src/workflows/context/workflow-context.js +5 -1
- package/dist/src/workflows/index.js +2 -2
- package/dist/src/workflows/service/workflow-run-service.d.ts +1 -0
- package/dist/src/workflows/service/workflow-run-service.js +13 -4
- package/package.json +13 -17
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CxcIHW_Z.js +0 -1
- package/dist/gateway/static/root/assets/agent-plugin-dialog-CNuqJcHQ.js +0 -1
- package/dist/gateway/static/root/assets/agents-CPpmkx7O.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-6xEgLDv8.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-rztQnZDk.js +0 -7
- package/dist/gateway/static/root/assets/browser-automations-page-D96o3bDY.js +0 -3
- package/dist/gateway/static/root/assets/browser-settings-page-DUQzQ3ic.js +0 -3
- package/dist/gateway/static/root/assets/capabilities-settings-panel-CKWtXof8.js +0 -8
- package/dist/gateway/static/root/assets/channels-settings-C8ducWB7.js +0 -1
- package/dist/gateway/static/root/assets/computer-settings-page-uy9YDwxJ.js +0 -1
- package/dist/gateway/static/root/assets/connector-service-page-BpF0SjB9.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-eZTfIMWI.js +0 -2
- package/dist/gateway/static/root/assets/date-picker-Do1dl0La.js +0 -1
- package/dist/gateway/static/root/assets/dependency-picker-BhS8s080.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-Dv3vG9HZ.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-DdvO1O6W.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-CLZyN-u9.js +0 -1
- package/dist/gateway/static/root/assets/home-page-BSqg-JE9.js +0 -1
- package/dist/gateway/static/root/assets/imports-page-_pddpuej.js +0 -1
- package/dist/gateway/static/root/assets/index-BKL5tg2f.css +0 -1
- package/dist/gateway/static/root/assets/index-CJuypaNt.js +0 -121
- package/dist/gateway/static/root/assets/local-app-workbench-page-DXFnYiA0.js +0 -1
- package/dist/gateway/static/root/assets/local-apps-page-CkXKS5xe.js +0 -1
- package/dist/gateway/static/root/assets/logs-page-C33z-ife.js +0 -2
- package/dist/gateway/static/root/assets/management-settings-8eDZb0uS.js +0 -1
- package/dist/gateway/static/root/assets/messages-kFWhF6_t.js +0 -3
- package/dist/gateway/static/root/assets/note-detail-panel-C95RtLuL.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-kFxknjMR.js +0 -8
- package/dist/gateway/static/root/assets/page-context-capture-button-OUL3fEYh.js +0 -1
- package/dist/gateway/static/root/assets/page-tabs-CVbY7_N5.js +0 -1
- package/dist/gateway/static/root/assets/preview-open-alternatives-CKiIby0r.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-LPAxUszX.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-Cbyb4hyy.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-BtDFZc6g.js +0 -1
- package/dist/gateway/static/root/assets/scenes-page-CJlc-mg1.js +0 -2
- package/dist/gateway/static/root/assets/sessions-page-CUo6-iV2.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-XeSxPjP7.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-Dol9j_pF.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-layout-eqTUTW2L.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-BCt__prc.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-BsjSqEnw.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-evN7gs0S.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-BifYwEhe.js +0 -2
- package/dist/gateway/static/root/assets/skills-page.utils-DOk-iOvN.js +0 -1
- package/dist/gateway/static/root/assets/system-settings-panel-CcSvoHfY.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-pCRG7Jb3.js +0 -1
- package/dist/gateway/static/root/assets/tunnel-api-DDGMf44u.js +0 -1
- package/dist/gateway/static/root/assets/use-autosave-DiIkxIq7.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-CvYeM0Ml.js +0 -2
- package/dist/gateway/static/root/assets/voice-config-api-BaxITrwZ.js +0 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-DbVtLh0R.js +0 -3
- package/dist/gateway/static/root/assets/workflows-page-CT8ouKcB.js +0 -6
- package/dist/src/voice/local/model-files.d.ts +0 -14
- package/dist/src/voice/local/model-files.js +0 -92
- package/dist/src/voice/local/model-manager.d.ts +0 -18
- package/dist/src/voice/local/model-manager.js +0 -133
- package/dist/src/voice/local/models.d.ts +0 -28
- package/dist/src/voice/local/models.js +0 -99
- package/dist/src/voice/local/provider-switch.d.ts +0 -4
- package/dist/src/voice/local/provider-switch.js +0 -36
- package/dist/src/voice/local/runtime-client.d.ts +0 -28
- package/dist/src/voice/local/runtime-client.js +0 -183
- package/dist/src/voice/local/runtime-worker.d.ts +0 -1
- package/dist/src/voice/local/runtime-worker.js +0 -271
- package/dist/src/voice/stt/providers/local-transcription.d.ts +0 -2
- package/dist/src/voice/stt/providers/local-transcription.js +0 -53
- /package/dist/src/voice/{local → audio}/wav.d.ts +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{c as i,f as a,g as o,l as s,m as c,t as l}from"./chunk-KS7C4IRE-BMYIfy9x.js";import{t as u}from"./createLucideIcon-DPHK1VkS.js";import{t as d}from"./braces-Cfmtagno.js";import{t as f}from"./check-DUBLcKHA.js";import{n as p,r as m,t as h}from"./popover-select-DcsFzD_i.js";import{t as g}from"./copy-Dv6d4Dvw.js";import{t as _}from"./download-Dk-ZjtO6.js";import{t as v}from"./ellipsis-0k4rZLoy.js";import{t as y}from"./markdown-view-DXubGEic.js";import{t as b}from"./git-branch-Dh9uxTot.js";import{t as x}from"./inbox-DNoSz682.js";import{t as S}from"./layout-grid-CEVZdVFU.js";import{t as C}from"./list-BBGUdmkF.js";import{t as w}from"./message-square-fVE7Ghj1.js";import{t as T}from"./pencil-DmIY3Oa-.js";import{t as E}from"./plus-Q2yW6OE7.js";import{t as D}from"./search-DA7gz22f.js";import{i as O,o as k,r as A,t as j}from"./workflow-run-setup-panel-X0Cyh2AR.js";import{t as M}from"./upload-rrb46c3c.js";import{t as N}from"./wand-sparkles-DWuJz5ya.js";import{t as P}from"./x-B_N4OPjy.js";import{t as F}from"./messages-D0G_sZvA.js";import{t as I}from"./cn-JdwAhgNB.js";import{c as L,n as R}from"./locale-store-BSkKhYkc.js";import{a as z,c as B,i as V,n as H,o as U,r as W,s as G,t as K}from"./dist-BGTk37IG.js";import{t as ee}from"./copy-to-clipboard-HOJ79TWv.js";import{i as te}from"./vendor-swr-BIWyz7Rc.js";import{t as q}from"./button-CS04eWY9.js";import{t as J}from"./skeleton-BwbyijEw.js";import{$l as Y,$r as ne,A as re,Br as ie,C as ae,D as oe,Dc as se,E as ce,Eo as le,Gc as ue,Go as de,Gr as fe,Hr as pe,Ic as me,Jl as he,Jr as ge,Kc as _e,Kr as ve,Ll as ye,Nl as X,O as be,Oa as xe,Oc as Se,Qr as Ce,S as we,Sl as Te,T as Ee,Tl as De,Tn as Oe,Ul as ke,Ur as Ae,Wl as je,Wr as Me,Xc as Ne,Xr as Pe,Yr as Fe,Ys as Ie,Zr as Le,_ as Re,_i as ze,_o as Be,ai as Ve,b as He,bi as Ue,ci as We,d as Ge,di as Ke,ei as qe,f as Je,fl as Ye,g as Xe,gi as Ze,h as Qe,i as $e,ii as et,ir as tt,k as nt,li as rt,m as it,mi as at,mo as ot,ni as st,oi as ct,p as lt,pi as ut,pl as dt,qr as ft,ri as pt,si as mt,u as ht,v as gt,vi as _t,vl as vt,w as yt,x as bt,xn as xt,y as St,yi as Ct,zo as wt}from"./index-Cr4SINLG.js";import{l as Tt}from"./vendor-codemirror-DFxP3B9T.js";import{t as Et}from"./code-editor-CXIH8jQw.js";import{n as Dt,t as Ot}from"./tab-completion-input-D64VNmiA.js";import{t as kt}from"./tab-completion-input.utils-BP3NH_du.js";import{a as At,c as jt,i as Mt,l as Nt,n as Pt,o as Ft,r as It,s as Lt,t as Rt}from"./style-TIDOdKy0.js";var zt=u(`bookmark-check`,[[`path`,{d:`M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z`,key:`oz39mx`}],[`path`,{d:`m9 10 2 2 4-4`,key:`1gnqz4`}]]),Bt=u(`copy-plus`,[[`line`,{x1:`15`,x2:`15`,y1:`12`,y2:`18`,key:`1p7wdc`}],[`line`,{x1:`12`,x2:`18`,y1:`15`,y2:`15`,key:`1nscbv`}],[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),Vt=u(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),Ht=u(`library`,[[`path`,{d:`m16 6 4 14`,key:`ji33uf`}],[`path`,{d:`M12 6v14`,key:`1n7gus`}],[`path`,{d:`M8 8v12`,key:`1gg7y9`}],[`path`,{d:`M4 4v16`,key:`6qkkli`}]]),Z=e(t(),1),Q=n(),Ut=[`queued`,`running`,`succeeded`,`attention`],Wt=new Set([`failed`,`timeout`,`cancelled`]);function Gt(e){return e.metadata?.conversationId?.trim()||null}function Kt(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function qt(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 Jt(e,t=90){let n=e.metadata?.input?.goal?.trim()||(typeof e.metadata?.input?.payload==`string`?e.metadata.input.payload.trim():null)||qt(e.metadata?.input?.payload,[`query`,`goal`,`prompt`,`input`,`message`])||qt(e.metadata?.input?.variables,[`query`,`goal`,`prompt`,`input`,`message`]);return n?Kt(n,t):null}function Yt(e,t=90){return Jt(e,t)??Kt(e.title?.trim()||e.definitionId,t)}function Xt(e,t=44){return Kt(e.title?.trim()||e.definitionId,t)}function Zt(e,t){let n=t.trim().toLowerCase();return n?[Jt(e,500),e.title,e.definitionId,e.id].filter(Boolean).join(` `).toLowerCase().includes(n):!0}function Qt(e,t){let n=t.workflowFilterId.trim();return e.filter(e=>n&&e.definitionId!==n||!Fe(e,t.triggerFilter??`all`)?!1:Zt(e,t.searchQuery))}function $t(e){return e.completedAtMs??e.createdAtMs}function en(e,t){return e.status===`queued`?`queued`:e.status===`running`?`running`:e.status===`succeeded`?`succeeded`:Wt.has(e.status)?`attention`:null}function tn(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)=>$t(t)-$t(e))}function nn(e,t){let n={queued:[],running:[],succeeded:[],attention:[]};for(let r of e){let e=en(r,t);e&&n[e].push(r)}return Ut.map(e=>{if(e===`succeeded`){let t=tn(`succeeded`,n.succeeded);return{id:e,runs:t,totalInWindow:t.length}}return{id:e,runs:tn(e,n[e])}})}function rn(e,t,n){let r=Math.round((t-e)/1e3);if(r<60)return at(-r,`second`,n);let i=Math.round(r/60);if(i<60)return at(-i,`minute`,n);let a=Math.round(i/60);return a<48?at(-a,`hour`,n):at(-Math.round(a/24),`day`,n)}function an(e){return e.status===`queued`||e.status===`running`}function on(e){return e.status===`failed`||e.status===`timeout`||e.status===`cancelled`}var $=r(),sn=(0,Z.memo)(function(e){let t=(0,Q.c)(76),{run:n,language:r,localeTag:i,nowMs:a,selected:o,onOpen:s,onOpenChat:c,onCancel:l,onRetry:u}=e,d=F(r).workflows,[f,p]=(0,Z.useState)(!1),m;t[0]===n?m=t[1]:(m=Gt(n),t[0]=n,t[1]=m);let h=!m,g;t[2]===n?g=t[3]:(g=an(n),t[2]=n,t[3]=g);let _=g,y=n.status===`running`||n.status===`queued`,b;t[4]!==n.metrics.agentCount||t[5]!==n.metrics.doneAgentCount?(b=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]=b):b=t[6];let x=b,S=n.metrics.errorAgentCount>0,C=n.startedAtMs??n.createdAtMs,w=Me(_?a-C:n.metrics.durationMs),T=ve(d.taskArtifacts,{count:n.metrics.artifactCount}),E;t[7]===n?E=t[8]:(E=Yt(n),t[7]=n,t[8]=E);let D=E,O;t[9]===n?O=t[10]:(O=Xt(n),t[9]=n,t[10]=O);let k=O,A;t[11]!==s||t[12]!==n?(A=()=>{s(n)},t[11]=s,t[12]=n,t[13]=A):A=t[13];let j=A,M;t[14]!==h||t[15]!==c||t[16]!==n?(M=()=>{h||c(n)},t[14]=h,t[15]=c,t[16]=n,t[17]=M):M=t[17];let N=M,P=o&&`ring-1 ring-accent/30`,L;t[18]===P?L=t[19]:(L=I(`group relative min-h-24 overflow-hidden rounded-lg bg-surface-panel p-3 shadow-surface transition-colors`,P,`hover:bg-surface-hover`),t[18]=P,t[19]=L);let R;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(R=I(`w-full text-left`,Ie.focusRingPanel),t[20]=R):R=t[20];let z;t[21]===D?z=t[22]:(z=(0,$.jsx)(`div`,{className:`line-clamp-2 text-sm font-medium leading-5 text-fg`,children:D}),t[21]=D,t[22]=z);let B;t[23]===k?B=t[24]:(B=(0,$.jsx)(`div`,{className:`mt-1 truncate text-[11px] font-medium text-fg-muted`,children:k}),t[23]=k,t[24]=B);let V;t[25]!==z||t[26]!==B?(V=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[z,B]}),t[25]=z,t[26]=B,t[27]=V):V=t[27];let H;t[28]===n.status?H=t[29]:(H=I(`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold shadow-sm`,Pe(n.status)),t[28]=n.status,t[29]=H);let U;t[30]!==i||t[31]!==a||t[32]!==C?(U=rn(C,a,i),t[30]=i,t[31]=a,t[32]=C,t[33]=U):U=t[33];let W;t[34]===U?W=t[35]:(W=(0,$.jsx)(`span`,{children:U}),t[34]=U,t[35]=W);let G=w===`—`?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,$.jsx)(`span`,{children:ve(d.taskElapsed,{duration:w})})]}),K;t[36]!==W||t[37]!==G?(K=(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5 text-[11px] text-fg-subtle`,children:[W,G]}),t[36]=W,t[37]=G,t[38]=K):K=t[38];let ee=n.metrics.artifactCount>0?(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 font-medium text-fg-muted`,children:T}):null,te=o?(0,$.jsx)(`span`,{className:`font-medium text-accent-fg`,children:d.taskOpenDetails}):null,J;t[39]!==ee||t[40]!==te?(J=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-subtle`,children:[ee,te]}),t[39]=ee,t[40]=te,t[41]=J):J=t[41];let Y=h&&`cursor-not-allowed text-fg-disabled hover:bg-transparent`,ne;t[42]===Y?ne=t[43]:(ne=I(`rounded-md px-2 py-1 text-xs font-medium`,`text-accent-fg hover:bg-accent-soft`,Ie.focusRingPanel,Y),t[42]=Y,t[43]=ne);let re;t[44]!==h||t[45]!==N||t[46]!==d.continueInChat||t[47]!==ne?(re=(0,$.jsx)(`button`,{type:`button`,className:ne,disabled:h,onClick:N,children:d.continueInChat}),t[44]=h,t[45]=N,t[46]=d.continueInChat,t[47]=ne,t[48]=re):re=t[48];let ie;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(ie=I(`rounded-md px-2 py-1 text-xs font-medium text-fg-muted hover:bg-surface-hover hover:text-fg`,Ie.focusRingPanel),t[49]=ie):ie=t[49];let ae;t[50]!==j||t[51]!==d.taskOpenDetails?(ae=(0,$.jsx)(`button`,{type:`button`,className:ie,onClick:j,children:d.taskOpenDetails}),t[50]=j,t[51]=d.taskOpenDetails,t[52]=ae):ae=t[52];let oe;t[53]!==re||t[54]!==ae?(oe=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 border-t border-edge-subtle pt-2`,children:[re,ae]}),t[53]=re,t[54]=ae,t[55]=oe):oe=t[55];let ce;t[56]===p?ce=t[57]:(ce=()=>p(ln),t[56]=p,t[57]=ce);let le;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(le=(0,$.jsx)(v,{className:`size-4`,"aria-hidden":!0}),t[58]=le):le=t[58];let ue;t[59]!==d.taskActionsAria||t[60]!==f||t[61]!==ce?(ue=(0,$.jsx)(q,{variant:`ghost`,className:`size-7 p-0 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,"aria-label":d.taskActionsAria,"aria-expanded":f,onClick:ce,children:le}),t[59]=d.taskActionsAria,t[60]=f,t[61]=ce,t[62]=ue):ue=t[62];let de;t[63]!==_||t[64]!==d.cancel||t[65]!==d.rerun||t[66]!==d.taskCloseMenu||t[67]!==f||t[68]!==l||t[69]!==u||t[70]!==n||t[71]!==p?(de=f?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-10 cursor-default`,"aria-label":d.taskCloseMenu,onClick:()=>p(!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)(cn,{label:d.cancel,tone:`danger`,onClick:()=>{p(!1),l(n.id)}}):null,on(n)?(0,$.jsx)(cn,{label:d.rerun,onClick:()=>{p(!1),u(n.id)}}):null]})]}):null,t[63]=_,t[64]=d.cancel,t[65]=d.rerun,t[66]=d.taskCloseMenu,t[67]=f,t[68]=l,t[69]=u,t[70]=n,t[71]=p,t[72]=de):de=t[72];let fe;return t[73]!==ue||t[74]!==de?(fe=(0,$.jsxs)(`div`,{className:`absolute right-2 top-2`,children:[ue,de]}),t[73]=ue,t[74]=de,t[75]=fe):fe=t[75],(0,$.jsxs)(`div`,{className:L,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:j,"aria-label":`${d.taskOpenDetails}: ${D}`,"aria-current":o?`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:[V,(0,$.jsx)(`span`,{className:H,children:d.status[n.status]??n.status})]}),K]}),y?(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:ve(d.agentProgress,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}),(0,$.jsxs)(`span`,{children:[x,`%`]})]}),(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:`${x}%`}})})]}):null,J,S?(0,$.jsxs)(`div`,{className:`mt-2 flex items-center gap-1 text-[11px] text-amber-700 dark:text-amber-300`,children:[(0,$.jsx)(se,{className:`size-3 shrink-0`,"aria-hidden":!0}),ve(d.runRowErrorSummary,{count:n.metrics.errorAgentCount})]}):null]}),oe,fe]})});function cn(e){let t=(0,Q.c)(8),{label:n,disabled:r,tone:i,onClick:a}=e,o=r?`cursor-not-allowed text-fg-subtle`:`text-fg hover:bg-surface-hover`,s=i===`danger`&&!r&&`text-red-600 dark:text-red-300`,c;t[0]!==o||t[1]!==s?(c=I(`block w-full px-3 py-1.5 text-left text-xs`,o,s),t[0]=o,t[1]=s,t[2]=c):c=t[2];let l;return t[3]!==r||t[4]!==n||t[5]!==a||t[6]!==c?(l=(0,$.jsx)(`button`,{type:`button`,disabled:r,onClick:a,className:c,children:n}),t[3]=r,t[4]=n,t[5]=a,t[6]=c,t[7]=l):l=t[7],l}function ln(e){return!e}function un(e,t){return t.boardColumns[e]}var dn=(0,Z.memo)(function(e){let t=(0,Q.c)(17),{column:n,language:r,localeTag:i,nowMs:a,selectedRunId:o,loading:s,onOpenRun:c,onOpenRunChat:l,onCancelRun:u,onRetryRun:d}=e,f=F(r).workflows,[p,m]=(0,Z.useState)(!1),h=n.id===`succeeded`,g=h?5:n.runs.length,_;t[0]!==g||t[1]!==n.runs||t[2]!==p||t[3]!==h?(_=h&&!p?n.runs.slice(0,g):n.runs,t[0]=g,t[1]=n.runs,t[2]=p,t[3]=h,t[4]=_):_=t[4];let y=_,b=h&&n.runs.length>5&&!p,x=h&&p,S;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(S=I(`flex max-h-full w-72 min-w-72 max-w-72 shrink-0 flex-col overflow-y-auto rounded-lg bg-surface-base shadow-surface`),t[5]=S):S=t[5];let C;t[6]===n.runs.length?C=t[7]:(C=(0,$.jsx)(`span`,{className:`shrink-0 text-xs text-fg-subtle`,children:n.runs.length}),t[6]=n.runs.length,t[7]=C);let w;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(v,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[8]=w):w=t[8];let T=s&&y.length===0?(0,$.jsx)(fn,{}):y.length===0?(0,$.jsx)(`div`,{className:`rounded-lg bg-surface-panel/70 px-3 py-6 text-center text-xs text-fg-subtle`,children:f.boardColumnEmpty}):y.map(e=>(0,$.jsx)(sn,{run:e,language:r,localeTag:i,nowMs:a,selected:e.id===o,onOpen:c,onOpenChat:l,onCancel:u,onRetry:d},e.id)),E=b?(0,$.jsx)(q,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>m(!0),children:ve(f.boardExpandSucceeded,{count:Math.min(n.runs.length,n.totalInWindow??n.runs.length)})}):null,D;t[9]!==x||t[10]!==f||t[11]!==m?(D=x?(0,$.jsx)(q,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>m(!1),children:f.boardCollapseSucceeded}):null,t[9]=x,t[10]=f,t[11]=m,t[12]=D):D=t[12];let O;return t[13]!==T||t[14]!==E||t[15]!==D?(O=(0,$.jsxs)(`div`,{className:`mx-2 mt-3 grid min-h-0 min-w-0 content-start gap-2 pb-2 pr-1 [scrollbar-gutter:stable]`,children:[T,E,D]}),t[13]=T,t[14]=E,t[15]=D,t[16]=O):O=t[16],(0,$.jsxs)(`section`,{className:S,"aria-label":un(n.id,f),children:[(0,$.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between gap-2 p-3`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,$.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:un(n.id,f)}),C]}),w]}),O]})});function fn(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)(`article`,{className:`min-h-24 rounded-lg bg-surface-panel p-3 shadow-surface`,"aria-hidden":`true`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(J,{className:`size-4/5`}),(0,$.jsx)(J,{className:`mt-2 h-3 w-24`})]}),(0,$.jsx)(J,{className:`h-5 w-14 rounded-full`})]}),(0,$.jsx)(J,{className:`mt-3 h-3 w-2/3`}),(0,$.jsx)(J,{className:`mt-4 h-5 w-20 rounded-full`})]}),e[0]=t):t=e[0],t}function pn(e){return e instanceof Element?!!e.closest(`a,button,input,select,textarea,[contenteditable="true"],[draggable="true"],[data-board-pan-skip="true"]`):!0}var mn=(0,Z.memo)(function(e){let t=(0,Q.c)(54),{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(hn),t[0]=n,t[1]=g);let _=g,v=(0,Z.useRef)(null),y=(0,Z.useRef)(null),[b,x]=(0,Z.useState)(gn),[S,C]=(0,Z.useState)(!1),w,T;t[2]===_?(w=t[3],T=t[4]):(w=()=>{if(!_)return;let e=window.setInterval(()=>x(Date.now()),1e3);return()=>window.clearInterval(e)},T=[_],t[2]=_,t[3]=w,t[4]=T),(0,Z.useEffect)(w,T);let E;t[5]!==b||t[6]!==n||t[7]!==o||t[8]!==c||t[9]!==s?(E=nn(Qt(n,{searchQuery:o,workflowFilterId:s,triggerFilter:c}),b),t[5]=b,t[6]=n,t[7]=o,t[8]=c,t[9]=s,t[10]=E):E=t[10];let D=E,O=D.reduce(_n,0),k;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(k=e=>{let t=y.current;!t||t.pointerId!==e.pointerId||(y.current=null,C(!1),e.currentTarget.hasPointerCapture?.(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},t[11]=k):k=t[11];let A=k,j;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(j=e=>{if(e.button!==0||pn(e.target))return;let t=v.current;t&&(y.current={pointerId:e.pointerId,startX:e.clientX,scrollLeft:t.scrollLeft,active:!1},e.currentTarget.setPointerCapture(e.pointerId))},t[12]=j):j=t[12];let M=j,N;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(N=e=>{let t=y.current,n=v.current;if(!t||!n||t.pointerId!==e.pointerId)return;let r=e.clientX-t.startX;!t.active&&Math.abs(r)<5||(t.active||(t.active=!0,C(!0)),e.preventDefault(),n.scrollLeft=t.scrollLeft-r)},t[13]=N):N=t[13];let P=N;if(!u&&O===0){let e;t[14]===a.boardEmptyTitle?e=t[15]:(e=(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:a.boardEmptyTitle}),t[14]=a.boardEmptyTitle,t[15]=e);let n;t[16]===a.boardEmptyHint?n=t[17]:(n=(0,$.jsx)(`p`,{className:`mx-auto mt-2 max-w-md text-sm leading-6 text-fg-muted`,children:a.boardEmptyHint}),t[16]=a.boardEmptyHint,t[17]=n);let r;t[18]!==a.boardStart||t[19]!==h?(r=(0,$.jsx)(`div`,{className:`mt-4 flex justify-center`,children:(0,$.jsx)(q,{variant:`primary`,onClick:h,children:a.boardStart})}),t[18]=a.boardStart,t[19]=h,t[20]=r):r=t[20];let i;return t[21]!==r||t[22]!==e||t[23]!==n?(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[21]=r,t[22]=e,t[23]=n,t[24]=i):i=t[24],i}let F=S?`cursor-grabbing select-none`:`cursor-grab`,I;t[25]===F?I=t[26]:(I=[`min-h-0 h-full min-w-0 overflow-x-auto rounded-lg p-2`,F],t[25]=F,t[26]=I);let L=I.join(` `),R;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(R=e=>{y.current?.pointerId===e.pointerId&&(y.current=null,C(!1))},t[27]=R):R=t[27];let z;if(t[28]!==D||t[29]!==r||t[30]!==u||t[31]!==i||t[32]!==b||t[33]!==p||t[34]!==d||t[35]!==f||t[36]!==m||t[37]!==l){let e;t[39]!==r||t[40]!==u||t[41]!==i||t[42]!==b||t[43]!==p||t[44]!==d||t[45]!==f||t[46]!==m||t[47]!==l?(e=e=>(0,$.jsx)(dn,{column:e,language:r,localeTag:i,nowMs:b,selectedRunId:l,loading:u,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m},e.id),t[39]=r,t[40]=u,t[41]=i,t[42]=b,t[43]=p,t[44]=d,t[45]=f,t[46]=m,t[47]=l,t[48]=e):e=t[48],z=D.map(e),t[28]=D,t[29]=r,t[30]=u,t[31]=i,t[32]=b,t[33]=p,t[34]=d,t[35]=f,t[36]=m,t[37]=l,t[38]=z}else z=t[38];let B;t[49]===z?B=t[50]:(B=(0,$.jsx)(`div`,{className:`flex min-h-full min-w-max items-start gap-3 pr-4`,children:z}),t[49]=z,t[50]=B);let V;return t[51]!==L||t[52]!==B?(V=(0,$.jsx)(`div`,{ref:v,className:L,onPointerDown:M,onPointerMove:P,onPointerUp:A,onPointerCancel:A,onLostPointerCapture:R,children:B}),t[51]=L,t[52]=B,t[53]=V):V=t[53],V});function hn(e){return e.status===`queued`||e.status===`running`}function gn(){return Date.now()}function _n(e,t){return e+t.runs.length}function vn(e,t){let n=e.metadata.estimatedAgents;return n?n.min===n.max?ve(t.agentScaleExact,{count:n.min}):ve(t.agentScaleRange,{min:n.min,max:n.max}):null}function yn(e){let t=(0,Q.c)(77),{definition:n,language:r,labels:i,onPick:a,onDetail:o,onEdit:s,savedForProject:c}=e,l;t[0]!==n||t[1]!==r?(l=Ke(n,r),t[0]=n,t[1]=r,t[2]=l):l=t[2];let u=l,f;t[3]!==n||t[4]!==i?(f=vn(n,i),t[3]=n,t[4]=i,t[5]=f):f=t[5];let p=f,m=n.metadata.source===`user`,h=m?`bg-accent-soft text-accent-fg`:`bg-surface-inset text-fg-muted`,g;t[6]===h?g=t[7]:(g=I(`rounded-full px-2 py-0.5 text-[10px] font-medium`,h),t[6]=h,t[7]=g);let _=m?i.badgeUser:i.badgeBuiltin,v;t[8]!==g||t[9]!==_?(v=(0,$.jsx)(`span`,{className:g,children:_}),t[8]=g,t[9]=_,t[10]=v):v=t[10];let y;t[11]!==n.inputSchema||t[12]!==i.inputSchemaBadge?(y=n.inputSchema?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-surface-inset px-2 py-0.5 text-[10px] text-fg-subtle`,children:[(0,$.jsx)(d,{className:`size-2.5`,"aria-hidden":!0}),i.inputSchemaBadge]}):null,t[11]=n.inputSchema,t[12]=i.inputSchemaBadge,t[13]=y):y=t[13];let b;t[14]!==i.projectWorkflowBadge||t[15]!==c?(b=c?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-success-soft px-2 py-0.5 text-[10px] text-success`,children:[(0,$.jsx)(zt,{className:`size-2.5`,"aria-hidden":!0}),i.projectWorkflowBadge]}):null,t[14]=i.projectWorkflowBadge,t[15]=c,t[16]=b):b=t[16];let x;t[17]!==v||t[18]!==y||t[19]!==b?(x=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[v,y,b]}),t[17]=v,t[18]=y,t[19]=b,t[20]=x):x=t[20];let S;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(S=I(`mt-2 line-clamp-2 text-left text-sm font-semibold leading-5 text-fg hover:text-accent-fg`,Ie.focusRingPanel),t[21]=S):S=t[21];let C;t[22]!==n||t[23]!==o?(C=()=>o(n),t[22]=n,t[23]=o,t[24]=C):C=t[24];let w;t[25]!==n.title||t[26]!==C?(w=(0,$.jsx)(`button`,{type:`button`,className:S,onClick:C,children:n.title}),t[25]=n.title,t[26]=C,t[27]=w):w=t[27];let E;t[28]!==w||t[29]!==x?(E=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[x,w]}),t[28]=w,t[29]=x,t[30]=E):E=t[30];let D=`${m?i.editWorkflow:i.copyAndEditWorkflow}: ${n.title}`,O;t[31]!==n||t[32]!==s?(O=()=>s(n),t[31]=n,t[32]=s,t[33]=O):O=t[33];let A;t[34]===m?A=t[35]:(A=m?(0,$.jsx)(T,{className:`size-3.5`,"aria-hidden":!0}):(0,$.jsx)(Bt,{className:`size-3.5`,"aria-hidden":!0}),t[34]=m,t[35]=A);let j;t[36]!==D||t[37]!==O||t[38]!==A?(j=(0,$.jsx)(q,{type:`button`,variant:`ghost`,className:`size-8 shrink-0 p-0`,"aria-label":D,onClick:O,children:A}),t[36]=D,t[37]=O,t[38]=A,t[39]=j):j=t[39];let M;t[40]!==E||t[41]!==j?(M=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-3`,children:[E,j]}),t[40]=E,t[41]=j,t[42]=M):M=t[42];let N=u.whenToUse||u.description||n.description,P;t[43]===N?P=t[44]:(P=(0,$.jsx)(`p`,{className:`mt-2 line-clamp-2 text-xs leading-5 text-fg-muted`,children:N}),t[43]=N,t[44]=P);let F;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,$.jsx)(dt,{className:`size-3`,"aria-hidden":!0}),t[45]=F):F=t[45];let L;t[46]!==n.phases.length||t[47]!==i.phaseCount?(L=ve(i.phaseCount,{count:n.phases.length}),t[46]=n.phases.length,t[47]=i.phaseCount,t[48]=L):L=t[48];let R;t[49]===L?R=t[50]:(R=(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[F,L]}),t[49]=L,t[50]=R);let z;t[51]===p?z=t[52]:(z=p?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,$.jsx)(k,{className:`size-3`,"aria-hidden":!0}),p]}):null,t[51]=p,t[52]=z);let B;t[53]!==R||t[54]!==z?(B=(0,$.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center gap-3 pt-4 text-[11px] text-fg-subtle`,children:[R,z]}),t[53]=R,t[54]=z,t[55]=B):B=t[55];let V;t[56]!==n||t[57]!==a?(V=()=>a(n),t[56]=n,t[57]=a,t[58]=V):V=t[58];let H;t[59]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,$.jsx)(Ne,{className:`size-3.5`,"aria-hidden":!0}),t[59]=H):H=t[59];let U;t[60]!==i.configureAndRun||t[61]!==V?(U=(0,$.jsxs)(q,{type:`button`,variant:`secondary`,className:`h-8 flex-1 rounded-lg text-xs`,onClick:V,children:[H,i.configureAndRun]}),t[60]=i.configureAndRun,t[61]=V,t[62]=U):U=t[62];let W;t[63]!==n||t[64]!==o?(W=()=>o(n),t[63]=n,t[64]=o,t[65]=W):W=t[65];let G;t[66]!==i.viewDetails||t[67]!==W?(G=(0,$.jsx)(q,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg text-xs`,onClick:W,children:i.viewDetails}),t[66]=i.viewDetails,t[67]=W,t[68]=G):G=t[68];let K;t[69]!==U||t[70]!==G?(K=(0,$.jsxs)(`div`,{className:`mt-3 flex items-center gap-2 border-t border-edge-subtle pt-3`,children:[U,G]}),t[69]=U,t[70]=G,t[71]=K):K=t[71];let ee;return t[72]!==M||t[73]!==P||t[74]!==B||t[75]!==K?(ee=(0,$.jsxs)(`article`,{className:`flex min-h-48 flex-col rounded-xl border border-edge-subtle bg-surface-base p-4 transition-colors hover:border-edge hover:bg-surface-hover/35`,children:[M,P,B,K]}),t[72]=M,t[73]=P,t[74]=B,t[75]=K,t[76]=ee):ee=t[76],ee}function bn(e){let t=(0,Q.c)(45),{definitions:n,runs:r,language:i,projectPresetDefinitionIds:a,onPick:o,onDetail:s,onEdit:c}=e,[l]=(0,Z.useState)(Cn),u=F(i).workflows,d=i===`zh`?`zh-CN`:`en-US`,[f,h]=(0,Z.useState)(``),[g,_]=(0,Z.useState)(`all`),[v,y]=(0,Z.useState)(`all`),b;t[0]!==g||t[1]!==n||t[2]!==f||t[3]!==v?(b=Ae(n,f,g,v),t[0]=g,t[1]=n,t[2]=f,t[3]=v,t[4]=b):b=t[4];let x=b,S;if(t[5]!==n||t[6]!==r){let e=new Map(n.map(Sn)),i=new Set;S=[...r].sort(xn).flatMap(t=>{if(i.has(t.definitionId))return[];let n=e.get(t.definitionId);return n?(i.add(t.definitionId),[{definition:n,lastRunAtMs:t.startedAtMs??t.createdAtMs}]):[]}).slice(0,3),t[5]=n,t[6]=r,t[7]=S}else S=t[7];let C=S,w=ve(u.workflowCount,{count:x.length}),T;t[8]===w?T=t[9]:(T=(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:w}),t[8]=w,t[9]=T);let E=u.sourceFilterAria,O;t[10]!==u.sources||t[11]!==y||t[12]!==v?(O=ct.map(e=>(0,$.jsx)(`button`,{type:`button`,className:I(`h-8 rounded-md px-2.5 text-xs font-medium transition-colors`,v===e?`bg-surface-base text-fg shadow-surface`:`text-fg-muted hover:text-fg`,Ie.focusRingPanel),"aria-pressed":v===e,onClick:()=>y(e),children:u.sources[e]},e)),t[10]=u.sources,t[11]=y,t[12]=v,t[13]=O):O=t[13];let k;t[14]!==u.sourceFilterAria||t[15]!==O?(k=(0,$.jsx)(`div`,{className:`flex rounded-lg bg-surface-inset p-0.5`,role:`group`,"aria-label":E,children:O}),t[14]=u.sourceFilterAria,t[15]=O,t[16]=k):k=t[16];let A=u.categoryFilterAria,j;t[17]===_?j=t[18]:(j=e=>_(e.target.value),t[17]=_,t[18]=j);let M;t[19]===u.categories?M=t[20]:(M=st.map(e=>(0,$.jsx)(m,{value:e,children:u.categories[e]},e)),t[19]=u.categories,t[20]=M);let N;t[21]!==g||t[22]!==u.categoryFilterAria||t[23]!==j||t[24]!==M?(N=(0,$.jsx)(p,{value:g,"aria-label":A,onChange:j,className:`h-9 min-w-36 rounded-lg border border-edge bg-surface-base px-2.5 text-xs font-medium text-fg shadow-surface`,children:M}),t[21]=g,t[22]=u.categoryFilterAria,t[23]=j,t[24]=M,t[25]=N):N=t[25];let P;t[26]!==N||t[27]!==k?(P=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[k,N]}),t[26]=N,t[27]=k,t[28]=P):P=t[28];let L;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,$.jsx)(D,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[29]=L):L=t[29];let R;t[30]===h?R=t[31]:(R=e=>h(e.target.value),t[30]=h,t[31]=R);let z=u.librarySearchPlaceholder,B;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(B=I(`h-10 w-full rounded-lg border border-edge bg-surface-base py-2 pl-10 pr-3 text-sm text-fg`,`placeholder:text-fg-muted`,Ie.focusRingPanel),t[32]=B):B=t[32];let V;t[33]!==u.librarySearchPlaceholder||t[34]!==f||t[35]!==R?(V=(0,$.jsxs)(`div`,{className:`relative max-w-xl`,children:[L,(0,$.jsx)(`input`,{value:f,onChange:R,placeholder:z,className:B})]}),t[33]=u.librarySearchPlaceholder,t[34]=f,t[35]=R,t[36]=V):V=t[36];let H;return t[37]!==x||t[38]!==u||t[39]!==i||t[40]!==s||t[41]!==c||t[42]!==o||t[43]!==a?(H=x.length===0?(0,$.jsxs)(`div`,{className:`flex min-h-64 flex-col items-center justify-center px-4 py-12 text-center`,children:[(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:u.noDefinitions}),(0,$.jsx)(`p`,{className:`mt-1 max-w-sm text-xs leading-5 text-fg-muted`,children:u.noDefinitionsHint})]}):(0,$.jsx)(`div`,{className:`grid grid-cols-1 gap-3 pt-4 sm:grid-cols-2 xl:grid-cols-3`,children:x.map(e=>(0,$.jsx)(yn,{definition:e,language:i,labels:u,savedForProject:a?.has(e.id)??!1,onPick:o,onDetail:s,onEdit:c},e.id))}),t[37]=x,t[38]=u,t[39]=i,t[40]=s,t[41]=c,t[42]=o,t[43]=a,t[44]=H):H=t[44],(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-5`,children:[C.length>0&&!f&&g===`all`&&v===`all`?(0,$.jsxs)(`section`,{"aria-labelledby":`recent-workflows-heading`,children:[(0,$.jsx)(`h2`,{id:`recent-workflows-heading`,className:`text-sm font-semibold text-fg`,children:u.recentlyUsed}),(0,$.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:C.map(e=>{let{definition:t,lastRunAtMs:n}=e;return(0,$.jsxs)(`button`,{type:`button`,className:I(`flex min-w-52 flex-1 items-center justify-between gap-3 rounded-lg border border-edge-subtle bg-surface-base px-3 py-2 text-left hover:bg-surface-hover`,`sm:max-w-sm`,Ie.focusRingPanel),onClick:()=>o(t),children:[(0,$.jsxs)(`span`,{className:`min-w-0`,children:[(0,$.jsx)(`span`,{className:`block truncate text-sm font-medium text-fg`,children:t.title}),(0,$.jsx)(`span`,{className:`mt-0.5 block text-[11px] text-fg-subtle`,children:rn(n,l,d)})]}),(0,$.jsx)(Ne,{className:`size-3.5 shrink-0 text-accent-fg`,"aria-hidden":!0})]},t.id)})})]}):null,(0,$.jsxs)(`section`,{"aria-labelledby":`all-workflows-heading`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-3 border-b border-edge-subtle pb-4`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h2`,{id:`all-workflows-heading`,className:`text-sm font-semibold text-fg`,children:u.allWorkflows}),T]}),P]}),V]}),H]})]})}function xn(e,t){return(t.startedAtMs??t.createdAtMs)-(e.startedAtMs??e.createdAtMs)}function Sn(e){return[e.id,e]}function Cn(){return Date.now()}var wn=(0,Z.memo)(function(e){let t=(0,Q.c)(108),{run:n,language:r,localeTag:i,nowMs:a,onOpen:o,onOpenChat:s,onCancel:c,onRetry:l}=e,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E;if(t[0]!==r||t[1]!==i||t[2]!==a||t[3]!==o||t[4]!==n){f=F(r).workflows;let e;t[22]===n?e=t[23]:(e=an(n),t[22]=n,t[23]=e),u=e;let s;t[24]===n?s=t[25]:(s=on(n),t[24]=n,t[25]=s),p=s;let c;t[26]===n?c=t[27]:(c=Gt(n),t[26]=n,t[27]=c),d=!!c;let l=n.startedAtMs??n.createdAtMs,D=Me(u?a-l:n.metrics.durationMs),O;t[28]!==n.metrics.agentCount||t[29]!==n.metrics.doneAgentCount?(O=n.metrics.agentCount>0?Math.round(n.metrics.doneAgentCount/n.metrics.agentCount*100):0,t[28]=n.metrics.agentCount,t[29]=n.metrics.doneAgentCount,t[30]=O):O=t[30];let k=O;v=`group border-b border-edge-subtle last:border-b-0`,_=`flex min-w-0 flex-col gap-3 p-3 transition-colors hover:bg-surface-hover/55 sm:px-4 lg:flex-row lg:items-center`,T=`button`,t[31]!==o||t[32]!==n?(E=()=>o(n),t[31]=o,t[32]=n,t[33]=E):E=t[33],t[34]===Symbol.for(`react.memo_cache_sentinel`)?(h=I(`min-w-0 flex-1 text-left`,Ie.focusRingPanel),t[34]=h):h=t[34];let A=f.taskOpenDetails,j;t[35]===n?j=t[36]:(j=Yt(n),t[35]=n,t[36]=j),g=`${A}: ${j}`,C=`flex min-w-0 items-start gap-3`;let M;t[37]===n.status?M=t[38]:(M=I(`mt-0.5 shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold`,Pe(n.status)),t[37]=n.status,t[38]=M),w=(0,$.jsx)(`span`,{className:M,children:f.status[n.status]??n.status}),m=`min-w-0 flex-1`;let N;t[39]===n?N=t[40]:(N=Yt(n),t[39]=n,t[40]=N),t[41]===N?y=t[42]:(y=(0,$.jsx)(`span`,{className:`block truncate text-sm font-medium text-fg`,children:N}),t[41]=N,t[42]=y);let P;t[43]===n?P=t[44]:(P=Xt(n),t[43]=n,t[44]=P);let L;t[45]===P?L=t[46]:(L=(0,$.jsx)(`span`,{className:`truncate font-medium`,children:P}),t[45]=P,t[46]=L);let R;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,$.jsx)(`span`,{"aria-hidden":!0,children:`·`}),t[47]=R):R=t[47];let z;t[48]!==i||t[49]!==a||t[50]!==l?(z=rn(l,a,i),t[48]=i,t[49]=a,t[50]=l,t[51]=z):z=t[51];let B;t[52]===z?B=t[53]:(B=(0,$.jsx)(`span`,{children:z}),t[52]=z,t[53]=B);let V=D===`—`?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,$.jsx)(`span`,{children:ve(f.taskElapsed,{duration:D})})]});t[54]!==L||t[55]!==B||t[56]!==V?(b=(0,$.jsxs)(`span`,{className:`mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-fg-muted`,children:[L,R,B,V]}),t[54]=L,t[55]=B,t[56]=V,t[57]=b):b=t[57],x=u&&n.metrics.agentCount>0?(0,$.jsxs)(`span`,{className:`mt-2 block max-w-md`,children:[(0,$.jsxs)(`span`,{className:`flex items-center justify-between text-[11px] text-fg-subtle`,children:[(0,$.jsx)(`span`,{children:ve(f.agentProgress,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}),(0,$.jsxs)(`span`,{className:`tabular-nums`,children:[k,`%`]})]}),(0,$.jsx)(`span`,{className:`mt-1 block h-1.5 overflow-hidden rounded-full bg-surface-inset`,children:(0,$.jsx)(`span`,{className:`block h-full rounded-full bg-accent transition-[width] duration-200 motion-reduce:transition-none`,style:{width:`${k}%`}})})]}):null,S=n.metrics.errorAgentCount>0?(0,$.jsxs)(`span`,{className:`mt-2 flex items-center gap-1 text-[11px] text-amber-700 dark:text-amber-300`,children:[(0,$.jsx)(se,{className:`size-3 shrink-0`,"aria-hidden":!0}),ve(f.runRowErrorSummary,{count:n.metrics.errorAgentCount})]}):null,t[0]=r,t[1]=i,t[2]=a,t[3]=o,t[4]=n,t[5]=u,t[6]=d,t[7]=f,t[8]=p,t[9]=m,t[10]=h,t[11]=g,t[12]=_,t[13]=v,t[14]=y,t[15]=b,t[16]=x,t[17]=S,t[18]=C,t[19]=w,t[20]=T,t[21]=E}else u=t[5],d=t[6],f=t[7],p=t[8],m=t[9],h=t[10],g=t[11],_=t[12],v=t[13],y=t[14],b=t[15],x=t[16],S=t[17],C=t[18],w=t[19],T=t[20],E=t[21];let D;t[58]!==m||t[59]!==y||t[60]!==b||t[61]!==x||t[62]!==S?(D=(0,$.jsxs)(`span`,{className:m,children:[y,b,x,S]}),t[58]=m,t[59]=y,t[60]=b,t[61]=x,t[62]=S,t[63]=D):D=t[63];let O;t[64]!==D||t[65]!==C||t[66]!==w?(O=(0,$.jsxs)(`div`,{className:C,children:[w,D]}),t[64]=D,t[65]=C,t[66]=w,t[67]=O):O=t[67];let k;t[68]!==h||t[69]!==g||t[70]!==O||t[71]!==T||t[72]!==E?(k=(0,$.jsx)(`button`,{type:T,onClick:E,className:h,"aria-label":g,children:O}),t[68]=h,t[69]=g,t[70]=O,t[71]=T,t[72]=E,t[73]=k):k=t[73];let A;t[74]!==f.rerun||t[75]!==l||t[76]!==p||t[77]!==n.id?(A=p?(0,$.jsx)(q,{type:`button`,variant:`primary`,className:`h-8 rounded-lg text-xs`,onClick:()=>l(n.id),children:f.rerun}):null,t[74]=f.rerun,t[75]=l,t[76]=p,t[77]=n.id,t[78]=A):A=t[78];let j;t[79]!==d||t[80]!==f.continueInChat||t[81]!==s||t[82]!==n?(j=n.status===`succeeded`&&d?(0,$.jsx)(q,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg text-xs`,onClick:()=>s(n),children:f.continueInChat}):null,t[79]=d,t[80]=f.continueInChat,t[81]=s,t[82]=n,t[83]=j):j=t[83];let M;t[84]!==u||t[85]!==f.cancel||t[86]!==c||t[87]!==n.id?(M=u?(0,$.jsx)(q,{type:`button`,variant:`ghost`,className:`h-8 rounded-lg text-xs text-red-600 dark:text-red-300`,onClick:()=>c(n.id),children:f.cancel}):null,t[84]=u,t[85]=f.cancel,t[86]=c,t[87]=n.id,t[88]=M):M=t[88];let N;t[89]!==o||t[90]!==n?(N=()=>o(n),t[89]=o,t[90]=n,t[91]=N):N=t[91];let P;t[92]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,$.jsx)(ke,{className:`size-4`,"aria-hidden":!0}),t[92]=P):P=t[92];let L;t[93]!==f.taskOpenDetails||t[94]!==N?(L=(0,$.jsx)(q,{type:`button`,variant:`ghost`,className:`size-8 p-0`,"aria-label":f.taskOpenDetails,onClick:N,children:P}),t[93]=f.taskOpenDetails,t[94]=N,t[95]=L):L=t[95];let R;t[96]!==A||t[97]!==j||t[98]!==M||t[99]!==L?(R=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-1.5 pl-7 lg:pl-0`,children:[A,j,M,L]}),t[96]=A,t[97]=j,t[98]=M,t[99]=L,t[100]=R):R=t[100];let z;t[101]!==_||t[102]!==k||t[103]!==R?(z=(0,$.jsxs)(`div`,{className:_,children:[k,R]}),t[101]=_,t[102]=k,t[103]=R,t[104]=z):z=t[104];let B;return t[105]!==v||t[106]!==z?(B=(0,$.jsx)(`article`,{className:v,children:z}),t[105]=v,t[106]=z,t[107]=B):B=t[107],B});function Tn(e){let t=(0,Q.c)(17),{vm:n}=e,{labels:r,language:i,loading:a,ownerAgentId:o,agentOptions:s,setOwnerAgentId:c,refreshAll:u}=n,d;t[0]!==s||t[1]!==r.agentFilterAria||t[2]!==i||t[3]!==o||t[4]!==c?(d=s.length>1?(0,$.jsx)(p,{value:o??``,"aria-label":r.agentFilterAria,onChange:e=>c(e.target.value),className:`h-9 min-w-32 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,children:s.map(e=>(0,$.jsx)(m,{value:e.id,children:Oe(e,F(i).agentsSettings)},e.id))}):null,t[0]=s,t[1]=r.agentFilterAria,t[2]=i,t[3]=o,t[4]=c,t[5]=d):d=t[5];let f;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(E,{className:`size-4`,"aria-hidden":!0}),t[6]=f):f=t[6];let h;t[7]===r.addWorkflow?h=t[8]:(h=(0,$.jsx)(q,{asChild:!0,variant:`primary`,className:`h-9 rounded-lg`,children:(0,$.jsxs)(l,{to:`/workflows/new`,children:[f,r.addWorkflow]})}),t[7]=r.addWorkflow,t[8]=h);let g;t[9]!==r.refresh||t[10]!==a||t[11]!==u?(g=(0,$.jsx)(xe,{className:`size-9 shrink-0 p-0`,loading:a,label:r.refresh,onClick:u}),t[9]=r.refresh,t[10]=a,t[11]=u,t[12]=g):g=t[12];let _;return t[13]!==d||t[14]!==h||t[15]!==g?(_=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[d,h,g]}),t[13]=d,t[14]=h,t[15]=g,t[16]=_):_=t[16],_}var En=new Set([`failed`,`timeout`,`cancelled`]),Dn=[{id:`runs`,icon:Ye},{id:`library`,icon:Ht}],On={failed:0,timeout:0,cancelled:0,running:1,queued:2,succeeded:3};function kn(e){return En.has(e.status)}function An(e,t){return t===`all`?!0:t===`attention`?kn(e):e.status===t}function jn(e){return[...e].sort((e,t)=>{let n=(On[e.status]??4)-(On[t.status]??4);if(n!==0)return n;if(e.status===`queued`&&t.status===`queued`)return e.createdAtMs-t.createdAtMs;let r=e.completedAtMs??e.startedAtMs??e.createdAtMs;return(t.completedAtMs??t.startedAtMs??t.createdAtMs)-r})}function Mn(e,t){return e===`Home`?`runs`:e===`End`?`library`:e===`ArrowLeft`||e===`ArrowRight`?t===`runs`?`library`:`runs`:null}function Nn(){let e=(0,Q.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(J,{className:`h-5 w-16 rounded-full`}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-edge-subtle p-4 last:border-b-0`,"aria-hidden":`true`,children:[t,(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(J,{className:`h-4 w-52 max-w-full`}),(0,$.jsx)(J,{className:`mt-2 h-3 w-36 max-w-full`})]}),(0,$.jsx)(J,{className:`hidden h-8 w-20 rounded-lg sm:block`})]}),e[1]=n):n=e[1],n}function Pn(e){let t=(0,Q.c)(27),{vm:n}=e,{language:r,localeTag:i,labels:a,hasToken:o,definitions:s,projectPresetDefinitionIds:c,runs:l,searchQuery:u,setSearchQuery:d,workflowFilterId:f,setWorkflowFilterId:h,triggerFilter:g,setTriggerFilter:_,statusFilter:v,setStatusFilter:y,clearRunFilters:x,pageTab:w,setPageTab:T,runLayout:E,setRunLayout:O,openRunDetails:k,openRunInChat:A,openDefinitionDetails:j,openWorkflowEditor:M,startWorkflow:N,actionError:F,loading:L,error:R,cancelRun:z,retryRun:B}=n,V=le(Rn),H=le(Ln),U=Date.now(),W=jn(l.filter(kn)),G;t[0]===v?G=t[1]:(G=e=>An(e,v),t[0]=v,t[1]=G);let K=jn(Qt(l,{searchQuery:u,workflowFilterId:f,triggerFilter:g}).filter(G)),ee=!!(u||f||g!==`all`||v!==`all`),te,J;if(t[2]!==H||t[3]!==o||t[4]!==a.title||t[5]!==V||t[6]!==n?(te=()=>{if(!o){H();return}return V({startExtra:null,main:(0,$.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:a.title}),end:(0,$.jsx)(Tn,{vm:n})}),()=>H()},J=[H,o,a.title,V,n],t[2]=H,t[3]=o,t[4]=a.title,t[5]=V,t[6]=n,t[7]=te,t[8]=J):(te=t[7],J=t[8]),(0,Z.useLayoutEffect)(te,J),!o){let e;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(b,{className:`size-10 text-accent-fg`,"aria-hidden":!0}),t[9]=e):e=t[9];let n;t[10]===a.title?n=t[11]:(n=(0,$.jsx)(`h1`,{className:`mt-4 text-xl font-semibold text-fg`,children:a.title}),t[10]=a.title,t[11]=n);let r;t[12]===a.needToken?r=t[13]:(r=(0,$.jsx)(`p`,{className:`mt-2 max-w-md text-sm leading-6 text-fg-muted`,children:a.needToken}),t[12]=a.needToken,t[13]=r);let i;return t[14]!==n||t[15]!==r?(i=(0,$.jsx)(`main`,{className:`min-h-0 flex-1 overflow-auto bg-surface-panel`,children:(0,$.jsxs)(`div`,{className:`flex w-full flex-col items-center px-3 py-16 text-center sm:px-5 xl:px-6`,children:[e,n,r]})}),t[14]=n,t[15]=r,t[16]=i):i=t[16],i}let Y=a.pageTabsAria,ne=Dn.map(e=>{let{id:t,icon:n}=e;return(0,$.jsxs)(`button`,{id:`workflow-tab-${t}`,type:`button`,role:`tab`,"aria-selected":w===t,"aria-controls":`workflow-panel-${t}`,tabIndex:w===t?0:-1,draggable:!1,className:I(`relative inline-flex shrink-0 items-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium`,`transition-transform duration-150 ease-out active:scale-[0.98] motion-reduce:transition-none motion-reduce:active:scale-100`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,w===t?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`),onClick:()=>T(t),onKeyDown:e=>{let n=Mn(e.key,t);n&&(e.preventDefault(),T(n),window.requestAnimationFrame(()=>{document.getElementById(`workflow-tab-${n}`)?.focus()}))},children:[(0,$.jsx)(n,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`span`,{children:a.pageTabs[t]}),t===`runs`&&W.length>0?(0,$.jsx)(`span`,{className:`rounded-full bg-red-500/15 px-1.5 py-0.5 text-[10px] font-semibold text-red-700 dark:text-red-300`,children:W.length}):null]},t)}),re;t[17]!==a.pageTabsAria||t[18]!==ne?(re=(0,$.jsx)(`nav`,{className:`-mx-1 flex gap-1 overflow-x-auto px-1 pb-1`,"aria-label":Y,role:`tablist`,children:ne}),t[17]=a.pageTabsAria,t[18]=ne,t[19]=re):re=t[19];let ie;t[20]!==F||t[21]!==R?(ie=F??R?(0,$.jsx)(`div`,{className:`mt-4 rounded-lg border border-red-500/25 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,role:`alert`,children:F??R}):null,t[20]=F,t[21]=R,t[22]=ie):ie=t[22];let ae=w===`runs`?(0,$.jsxs)(`div`,{id:`workflow-panel-runs`,role:`tabpanel`,"aria-labelledby":`workflow-tab-runs`,className:`flex flex-col gap-4 py-4`,children:[W.length>0?(0,$.jsx)(`section`,{className:`rounded-xl border border-amber-500/30 bg-amber-500/8 px-4 py-3`,"aria-labelledby":`workflow-attention-heading`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,$.jsx)(se,{className:`mt-0.5 size-4 shrink-0 text-amber-700 dark:text-amber-300`,"aria-hidden":!0}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(`h2`,{id:`workflow-attention-heading`,className:`text-sm font-semibold text-fg`,children:a.attentionTitle}),(0,$.jsx)(`span`,{className:`rounded-full bg-amber-500/15 px-2 py-0.5 text-[10px] font-semibold text-amber-800 dark:text-amber-200`,children:W.length})]}),(0,$.jsxs)(`p`,{className:`mt-1 truncate text-xs text-fg-muted`,children:[Yt(W[0]),` · `,rn(W[0].completedAtMs??W[0].createdAtMs,U,i)]})]})]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pl-7 lg:pl-0`,children:[(0,$.jsx)(q,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg text-xs`,onClick:()=>k(W[0]),children:a.attentionView}),(0,$.jsx)(q,{type:`button`,variant:`primary`,className:`h-8 rounded-lg text-xs`,onClick:()=>void B(W[0].id),children:a.rerun})]})]})}):null,(0,$.jsx)(`section`,{className:`flex flex-col gap-3 rounded-xl border border-edge-subtle bg-surface-base p-3`,"aria-label":a.runFiltersAria,children:(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsxs)(`div`,{className:`relative min-w-52 flex-1 sm:max-w-sm`,children:[(0,$.jsx)(D,{className:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,$.jsx)(`input`,{value:u,onChange:e=>d(e.target.value),placeholder:a.runsSearchPlaceholder,className: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-muted`,Ie.focusRingPanel)})]}),(0,$.jsx)(p,{value:v,"aria-label":a.statusFilterAria,onChange:e=>y(e.target.value),className:`h-9 min-w-32 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,children:[`all`,`attention`,`running`,`queued`,`succeeded`].map(e=>(0,$.jsx)(m,{value:e,children:a.runStatuses[e]},e))}),(0,$.jsxs)(p,{value:g,"aria-label":a.boardTriggerFilterAria,onChange:e=>_(e.target.value),className:`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`,children:[(0,$.jsx)(m,{value:`all`,children:a.boardTriggerFilterAll}),(0,$.jsx)(m,{value:`automation`,children:a.boardTriggerFilterAutomation}),(0,$.jsx)(m,{value:`webui`,children:a.boardTriggerFilterWebui}),(0,$.jsx)(m,{value:`chat`,children:a.boardTriggerFilterChat}),(0,$.jsx)(m,{value:`api`,children:a.boardTriggerFilterApi})]}),(0,$.jsxs)(p,{value:f,"aria-label":a.boardWorkflowFilterAria,onChange:e=>h(e.target.value),className:`h-9 min-w-40 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,children:[(0,$.jsx)(m,{value:``,children:a.boardWorkflowFilterAll}),s.map(In)]}),ee?(0,$.jsxs)(q,{type:`button`,variant:`ghost`,className:`h-9 rounded-lg text-xs`,onClick:x,children:[(0,$.jsx)(P,{className:`size-3.5`,"aria-hidden":!0}),a.clearFilters]}):null,(0,$.jsxs)(`div`,{className:`ml-auto flex rounded-lg bg-surface-inset p-0.5`,role:`group`,"aria-label":a.layoutAria,children:[(0,$.jsxs)(`button`,{type:`button`,className:I(`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium transition-colors`,E===`list`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:text-fg`,Ie.focusRingPanel),"aria-pressed":E===`list`,onClick:()=>O(`list`),children:[(0,$.jsx)(C,{className:`size-3.5`,"aria-hidden":!0}),a.runLayouts.list]}),(0,$.jsxs)(`button`,{type:`button`,className:I(`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium transition-colors`,E===`board`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:text-fg`,Ie.focusRingPanel),"aria-pressed":E===`board`,onClick:()=>O(`board`),children:[(0,$.jsx)(S,{className:`size-3.5`,"aria-hidden":!0}),a.runLayouts.board]})]})]})}),E===`list`?(0,$.jsxs)(`section`,{className:`overflow-hidden rounded-xl border border-edge-subtle bg-surface-base`,"aria-labelledby":`workflow-runs-heading`,children:[(0,$.jsxs)(`header`,{className:`flex items-start justify-between gap-3 border-b border-edge-subtle px-4 py-3`,children:[(0,$.jsx)(`h2`,{id:`workflow-runs-heading`,className:`text-sm font-semibold text-fg`,children:a.allRuns}),(0,$.jsx)(`span`,{className:`rounded-full bg-surface-inset px-2 py-0.5 text-xs font-semibold tabular-nums text-fg-muted`,children:K.length})]}),L&&K.length===0?Array.from({length:4}).map(Fn):K.length>0?K.map(e=>(0,$.jsx)(wn,{run:e,language:r,localeTag:i,nowMs:U,onOpen:k,onOpenChat:A,onCancel:e=>void z(e),onRetry:e=>void B(e)},e.id)):(0,$.jsxs)(`div`,{className:`flex min-h-64 flex-col items-center justify-center px-4 py-12 text-center`,children:[(0,$.jsx)(b,{className:`size-8 text-fg-subtle`,"aria-hidden":!0}),(0,$.jsx)(`h3`,{className:`mt-3 text-sm font-semibold text-fg`,children:ee?a.noRunResultsTitle:a.noRunsTitle}),(0,$.jsx)(`p`,{className:`mt-1 max-w-md text-xs leading-5 text-fg-muted`,children:ee?a.noRunResultsHint:a.noRunsStartHint}),(0,$.jsx)(q,{type:`button`,variant:ee?`secondary`:`primary`,className:`mt-4 h-9 rounded-lg text-xs`,onClick:ee?x:()=>T(`library`),children:ee?a.clearFilters:a.chooseWorkflow})]})]}):(0,$.jsx)(`div`,{className:`h-[min(72vh,48rem)] min-h-[24rem] w-full sm:min-h-[28rem]`,children:(0,$.jsx)(mn,{runs:K,language:r,localeTag:i,labels:{boardEmptyTitle:a.boardEmptyTitle,boardEmptyHint:a.boardEmptyHint,boardStart:a.chooseWorkflow,loading:a.loading},searchQuery:``,workflowFilterId:``,triggerFilter:`all`,selectedRunId:null,loading:L,onOpenRun:k,onOpenRunChat:A,onCancelRun:e=>void z(e),onRetryRun:e=>void B(e),onStart:()=>T(`library`)})})]}):(0,$.jsx)(`section`,{id:`workflow-panel-library`,role:`tabpanel`,"aria-labelledby":`workflow-tab-library`,className:`py-5`,children:(0,$.jsx)(bn,{definitions:s,runs:l,language:r,projectPresetDefinitionIds:c,onPick:N,onDetail:j,onEdit:M})}),oe;return t[23]!==ie||t[24]!==ae||t[25]!==re?(oe=(0,$.jsx)(`main`,{className:`min-h-0 flex-1 overflow-y-auto bg-surface-panel`,children:(0,$.jsxs)(`div`,{className:`mx-auto flex min-h-full w-full max-w-[96rem] flex-col px-3 py-5 sm:px-5 xl:px-6`,children:[re,ie,ae]})}),t[23]=ie,t[24]=ae,t[25]=re,t[26]=oe):oe=t[26],oe}function Fn(e,t){return(0,$.jsx)(Nn,{},t)}function In(e){return(0,$.jsx)(m,{value:e.id,children:e.title},e.id)}function Ln(e){return e.clearPageHeader}function Rn(e){return e.setPageHeader}function zn(){let e=(0,Q.c)(131),t=R(Gn),n;e[0]===t?n=e[1]:(n=F(t),e[0]=t,e[1]=n);let r=n.workflows,i=t===`zh`?`zh-CN`:`en-US`,s=L(Wn),c=!!s,l=a(),[u,d]=o(),f;e[2]===u?f=e[3]:(f=u.get(`q`)??``,e[2]=u,e[3]=f);let p=f,m;e[4]===u?m=e[5]:(m=u.get(`wf`)?.trim()??``,e[4]=u,e[5]=m);let h=m,g;e[6]===u?g=e[7]:(g=u.get(`trigger`)?.trim()||`all`,e[6]=u,e[7]=g);let _=g,v,y,b,x,S;if(e[8]!==u){let t=u.get(`status`)?.trim()??``,n=u.get(`tab`)?.trim()??``,r=u.get(`layout`)?.trim()??``;v=u.get(`agent`)?.trim()??``,b=u.get(`projectId`)?.trim()||void 0,y=pt.has(n)?n:`runs`,x=Ve.has(r)?r:`list`,S=We.has(t)?t:`all`,e[8]=u,e[9]=v,e[10]=y,e[11]=b,e[12]=x,e[13]=S}else v=e[9],y=e[10],b=e[11],x=e[12],S=e[13];let C=S,[w,T]=(0,Z.useState)(null),E;e[14]!==c||e[15]!==s?(E=c?[`workflow-agents`,s]:null,e[14]=c,e[15]=s,e[16]=E):E=e[16];let D;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(D={revalidateOnFocus:!1},e[17]=D):D=e[17];let O=te(E,xt,D),k;bb0:{let e=O.data?.agents??[];if(v&&(e.length===0||e.some(e=>e.id===v))){k=v;break bb0}k=O.data?.defaultId}let A=k,j;e[18]!==c||e[19]!==s?(j=c?[`workflow-definitions`,s]:null,e[18]=c,e[19]=s,e[20]=j):j=e[20];let M;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(M={revalidateOnFocus:!1},e[21]=M):M=e[21];let N=te(j,St,M),P;e[22]!==c||e[23]!==b||e[24]!==s?(P=c&&b?[`workflow-project-presets`,s,b]:null,e[22]=c,e[23]=b,e[24]=s,e[25]=P):P=e[25];let I;e[26]===b?I=e[27]:(I=()=>gt(b),e[26]=b,e[27]=I);let z;e[28]===Symbol.for(`react.memo_cache_sentinel`)?(z={revalidateOnFocus:!1},e[28]=z):z=e[28];let B=te(P,I,z),V;e[29]!==c||e[30]!==A||e[31]!==b||e[32]!==s?(V=c&&A?[`workflow-runs`,s,A,b??``]:null,e[29]=c,e[30]=A,e[31]=b,e[32]=s,e[33]=V):V=e[33];let H;e[34]!==A||e[35]!==b?(H=()=>bt(100,{ownerAgentId:A,projectId:b}),e[34]=A,e[35]=b,e[36]=H):H=e[36];let U;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(U={revalidateOnFocus:!1,refreshInterval:Hn},e[37]=U):U=e[37];let W=te(V,H,U),G;e[38]===N.data?G=e[39]:(G=N.data??[],e[38]=N.data,e[39]=G);let K=G,ee;e[40]===W.data?ee=e[41]:(ee=W.data??[],e[40]=W.data,e[41]=ee);let q=ee,J;e[42]===d?J=e[43]:(J=e=>{d(t=>{let n=new URLSearchParams(t);return e(n),n},{replace:!0})},e[42]=d,e[43]=J);let Y=J,ne;e[44]===Y?ne=e[45]:(ne=e=>Y(t=>{let n=e.trim();n?t.set(`q`,n):t.delete(`q`)}),e[44]=Y,e[45]=ne);let re=ne,ie;e[46]===Y?ie=e[47]:(ie=e=>Y(t=>{let n=e.trim();n?t.set(qe,n):t.delete(qe)}),e[46]=Y,e[47]=ie);let ae=ie,oe;e[48]===Y?oe=e[49]:(oe=e=>Y(t=>{let n=e.trim();n?t.set(`wf`,n):t.delete(`wf`)}),e[48]=Y,e[49]=oe);let se=oe,ce;e[50]===Y?ce=e[51]:(ce=e=>Y(t=>{e&&e!==`all`?t.set(rt,e):t.delete(rt)}),e[50]=Y,e[51]=ce);let le=ce,ue;e[52]===Y?ue=e[53]:(ue=e=>Y(t=>{e===`runs`?t.delete(`tab`):t.set(`tab`,e)}),e[52]=Y,e[53]=ue);let de=ue,fe;e[54]===Y?fe=e[55]:(fe=e=>Y(t=>{e===`list`?t.delete(et):t.set(et,e)}),e[54]=Y,e[55]=fe);let pe=fe,me;e[56]===Y?me=e[57]:(me=e=>Y(t=>{e===`all`?t.delete(mt):t.set(mt,e)}),e[56]=Y,e[57]=me);let he=me,ge;e[58]===Y?ge=e[59]:(ge=()=>Y(Vn),e[58]=Y,e[59]=ge);let _e=ge,ve;if(e[60]!==A||e[61]!==b){let t=new URLSearchParams;A&&t.set(`agentId`,A),b&&t.set(`projectId`,b),ve=t.size?`?${t.toString()}`:``,e[60]=A,e[61]=b,e[62]=ve}else ve=e[62];let ye=ve,X;e[63]!==l||e[64]!==ye?(X=e=>l(`/workflows/${e.id}${ye}`),e[63]=l,e[64]=ye,e[65]=X):X=e[65];let be=X,xe=be,Se;e[66]!==l||e[67]!==ye?(Se=e=>{let t=new URLSearchParams(ye.slice(1));e.metadata.source!==`user`&&t.set(`copy`,e.id),l(e.metadata.source===`user`?`/workflows/${e.id}/edit${ye}`:`/workflows/new${t.size?`?${t.toString()}`:``}`)},e[66]=l,e[67]=ye,e[68]=Se):Se=e[68];let Ce=Se,we;e[69]!==l||e[70]!==ye?(we=e=>l(`/workflows/runs/${e.id}${ye}`),e[69]=l,e[70]=ye,e[71]=we):we=e[71];let Te=we,De;e[72]===l?De=e[73]:(De=e=>{let t=Gt(e);t&&l(Le(t))},e[72]=l,e[73]=De);let Oe=De,ke;e[74]!==r.cancelFailed||e[75]!==A||e[76]!==W?(ke=async e=>{try{await Ge(e,{ownerAgentId:A}),await W.mutate()}catch(e){let t=e;T(t instanceof Error?t.message:r.cancelFailed)}},e[74]=r.cancelFailed,e[75]=A,e[76]=W,e[77]=ke):ke=e[77];let Ae=ke,je;e[78]!==r.retryFailed||e[79]!==l||e[80]!==A||e[81]!==ye?(je=async e=>{try{l(`/workflows/runs/${(await Ee(e,{ownerAgentId:A})).runId}${ye}`)}catch(e){let t=e;T(t instanceof Error?t.message:r.retryFailed)}},e[78]=r.retryFailed,e[79]=l,e[80]=A,e[81]=ye,e[82]=je):je=e[82];let Me=je,Ne,Pe;e[83]===W?(Ne=e[84],Pe=e[85]):(Ne=()=>{let e=()=>void W.mutate();return window.addEventListener(`workflow-run-updated`,e),window.addEventListener(`workflow-run-error`,e),()=>{window.removeEventListener(`workflow-run-updated`,e),window.removeEventListener(`workflow-run-error`,e)}},Pe=[W],e[83]=W,e[84]=Ne,e[85]=Pe),(0,Z.useEffect)(Ne,Pe);let Fe;e[86]!==O||e[87]!==N||e[88]!==B||e[89]!==W?(Fe=()=>{Promise.all([O.mutate(),N.mutate(),B.mutate(),W.mutate()])},e[86]=O,e[87]=N,e[88]=B,e[89]=W,e[90]=Fe):Fe=e[90];let Ie=Fe,Re=O.isLoading||N.isLoading||W.isLoading||B.isLoading,ze=O.error?.message??N.error?.message??W.error?.message??B.error?.message??null,Be;e[91]===O.data?.agents?Be=e[92]:(Be=O.data?.agents??[],e[91]=O.data?.agents,e[92]=Be);let He;e[93]===B.data?He=e[94]:(He=new Set((B.data??[]).map(Bn)),e[93]=B.data,e[94]=He);let Ue;return e[95]!==w||e[96]!==Ae||e[97]!==_e||e[98]!==K||e[99]!==ze||e[100]!==c||e[101]!==r||e[102]!==t||e[103]!==Re||e[104]!==i||e[105]!==be||e[106]!==Te||e[107]!==Oe||e[108]!==Ce||e[109]!==A||e[110]!==y||e[111]!==b||e[112]!==Ie||e[113]!==Me||e[114]!==x||e[115]!==q||e[116]!==p||e[117]!==ae||e[118]!==de||e[119]!==pe||e[120]!==re||e[121]!==he||e[122]!==le||e[123]!==se||e[124]!==xe||e[125]!==C||e[126]!==Be||e[127]!==He||e[128]!==_||e[129]!==h?(Ue={language:t,localeTag:i,labels:r,hasToken:c,searchQuery:p,setSearchQuery:re,ownerAgentId:A,projectId:b,agentOptions:Be,setOwnerAgentId:ae,workflowFilterId:h,setWorkflowFilterId:se,triggerFilter:_,setTriggerFilter:le,statusFilter:C,setStatusFilter:he,clearRunFilters:_e,pageTab:y,setPageTab:de,runLayout:x,setRunLayout:pe,definitions:K,projectPresetDefinitionIds:He,runs:q,openDefinitionDetails:be,startWorkflow:xe,openWorkflowEditor:Ce,openRunDetails:Te,openRunInChat:Oe,actionError:w,loading:Re,error:ze,refreshAll:Ie,cancelRun:Ae,retryRun:Me},e[95]=w,e[96]=Ae,e[97]=_e,e[98]=K,e[99]=ze,e[100]=c,e[101]=r,e[102]=t,e[103]=Re,e[104]=i,e[105]=be,e[106]=Te,e[107]=Oe,e[108]=Ce,e[109]=A,e[110]=y,e[111]=b,e[112]=Ie,e[113]=Me,e[114]=x,e[115]=q,e[116]=p,e[117]=ae,e[118]=de,e[119]=pe,e[120]=re,e[121]=he,e[122]=le,e[123]=se,e[124]=xe,e[125]=C,e[126]=Be,e[127]=He,e[128]=_,e[129]=h,e[130]=Ue):Ue=e[130],Ue}function Bn(e){return e.definitionId}function Vn(e){e.delete(`q`),e.delete(`wf`),e.delete(rt),e.delete(mt)}function Hn(e){return e?.some(Un)?3e3:0}function Un(e){return e.status===`queued`||e.status===`running`}function Wn(e){return e.conversationId}function Gn(e){return e.language}function Kn(){let e=(0,Q.c)(2),t=zn(),n;return e[0]===t?n=e[1]:(n=(0,$.jsx)(Pn,{vm:t}),e[0]=t,e[1]=n),n}function qn(e){return{title:e.title,description:e.description,version:e.version,inputSchema:e.inputSchema,outputSchema:e.outputSchema,defaults:e.defaults,tags:e.metadata.tags,whenToUse:e.metadata.whenToUse,estimatedAgents:e.metadata.estimatedAgents,examplePrompts:e.metadata.examplePrompts,i18n:e.metadata.i18n,permissions:e.permissions,resources:e.resources,connectors:e.connectors}}function Jn(e){let t=(0,Q.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=Tt(),t[0]=n):n=t[0];let r=n,i;return t[1]===e?i=t[2]:(i=(0,$.jsx)(Et,{...e,language:r}),t[1]=e,t[2]=i),i}function Yn({initialSource:e,resetKey:t,fileName:n,language:r,readOnly:i=!0,error:a,onChange:o,allowImport:s=!1,className:c=`h-[28rem]`}){let l=Xn(r),u=de(e=>e.resolved)===`dark`,[d,p]=(0,Z.useState)(e),[m,h]=(0,Z.useState)(0),[g,v]=(0,Z.useState)(!1),[y,b]=(0,Z.useState)(null),x=(0,Z.useRef)(null),S=(0,Z.useRef)(null),C=(0,Z.useRef)(null),w=(0,Z.useRef)(e);w.current=e,(0,Z.useEffect)(()=>{p(w.current),h(e=>e+1)},[t]),(0,Z.useEffect)(()=>{let e=e=>{let t=C.current;t&&b(Zn(t.startHeight+e.clientY-t.startY))},t=()=>{C.current=null,document.body.style.removeProperty(`cursor`),document.body.style.removeProperty(`user-select`)};return window.addEventListener(`pointermove`,e),window.addEventListener(`pointerup`,t),window.addEventListener(`pointercancel`,t),()=>{window.removeEventListener(`pointermove`,e),window.removeEventListener(`pointerup`,t),window.removeEventListener(`pointercancel`,t),t()}},[]);let T=e=>{x.current&&(e.preventDefault(),C.current={startY:e.clientY,startHeight:x.current.getBoundingClientRect().height},document.body.style.cursor=`row-resize`,document.body.style.userSelect=`none`)},E=e=>{e.key!==`ArrowUp`&&e.key!==`ArrowDown`||(e.preventDefault(),b(Zn((y??x.current?.getBoundingClientRect().height??448)+(e.key===`ArrowDown`?24:-24))))},D=e=>{p(e),o?.(e)};return(0,$.jsxs)(`section`,{ref:x,className:`relative flex min-h-0 flex-col overflow-hidden rounded-xl border border-edge bg-surface-base ${c}`,style:y===null?void 0:{height:y,minHeight:280,flex:`none`},children:[(0,$.jsxs)(`header`,{className:`flex shrink-0 flex-wrap items-center gap-2 border-b border-edge bg-surface-panel px-3 py-2`,children:[(0,$.jsxs)(`div`,{className:`mr-auto flex items-center gap-2 text-xs text-fg-muted`,children:[(0,$.jsx)(Vt,{className:`size-3.5`,"aria-hidden":!0}),(0,$.jsx)(`span`,{children:l.title}),(0,$.jsx)(`span`,{className:a?`text-danger`:`text-success`,children:a?l.invalid:l.valid})]}),i?null:(0,$.jsx)(q,{type:`button`,variant:`ghost`,className:`h-8 px-2 text-xs`,disabled:!!a,onClick:()=>{try{D(`${JSON.stringify(JSON.parse(d),null,2)}\n`),h(e=>e+1)}catch{}},children:l.format}),s?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`input`,{ref:S,type:`file`,accept:`application/json,.json`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];e.target.value=``,t&&t.text().then(e=>{D(e),h(e=>e+1)})}}),(0,$.jsxs)(q,{type:`button`,variant:`ghost`,className:`h-8 px-2 text-xs`,onClick:()=>S.current?.click(),children:[(0,$.jsx)(M,{className:`size-3.5`,"aria-hidden":!0}),l.import]})]}):null,(0,$.jsxs)(q,{type:`button`,variant:`ghost`,className:`h-8 px-2 text-xs`,onClick:()=>void ee(d).then(e=>{e&&(v(!0),window.setTimeout(()=>v(!1),1500))}),children:[g?(0,$.jsx)(f,{className:`size-3.5`,"aria-hidden":!0}):(0,$.jsx)(X,{className:`size-3.5`,"aria-hidden":!0}),g?l.copied:l.copy]}),(0,$.jsxs)(q,{type:`button`,variant:`ghost`,className:`h-8 px-2 text-xs`,onClick:()=>{let e=URL.createObjectURL(new Blob([d],{type:`application/json;charset=utf-8`})),t=document.createElement(`a`);t.href=e,t.download=n,t.click(),URL.revokeObjectURL(e)},children:[(0,$.jsx)(_,{className:`size-3.5`,"aria-hidden":!0}),l.download]})]}),a?(0,$.jsx)(`div`,{className:`shrink-0 border-b border-danger/25 bg-danger/5 px-4 py-2 text-xs text-danger`,children:a}):null,(0,$.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,$.jsx)(Jn,{initialContent:d,onChange:D,isDark:u,readOnly:i,lineWrap:!1},`${t}:${m}`)}),(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`horizontal`,"aria-label":l.resize,title:l.resize,tabIndex:0,className:`group absolute inset-x-0 bottom-0 z-10 flex h-3 touch-none cursor-row-resize items-end justify-center border-t border-transparent outline-none hover:border-accent/40 focus:border-accent/40`,onPointerDown:T,onKeyDown:E,onDoubleClick:()=>b(null),children:(0,$.jsx)(`span`,{className:`mb-1 h-0.5 w-10 rounded-full bg-edge-strong transition-colors group-hover:bg-accent group-focus:bg-accent`})})]})}function Xn(e){return e===`zh`?{title:`工作流定义 · JSON`,valid:`有效`,invalid:`需要修复`,format:`格式化`,copy:`复制`,copied:`已复制`,download:`下载`,import:`导入`,resize:`上下拖动调整源码区域高度`}:{title:`Workflow definition · JSON`,valid:`Valid`,invalid:`Needs attention`,format:`Format`,copy:`Copy`,copied:`Copied`,download:`Download`,import:`Import`,resize:`Drag vertically to resize the source area`}}function Zn(e){let t=typeof window>`u`?960:Math.max(280,window.innerHeight-96);return Math.min(t,Math.max(280,Math.round(e)))}function Qn(e){return $n(e.name,e.graph,qn(e))}function $n(e,t,n){return{formatVersion:1,name:e,manifest:structuredClone(n),graph:structuredClone(t)}}function er(e){return $n(e.name,e.graph,{title:e.title,description:e.description,version:e.version,defaults:e.defaults,tags:e.tags,estimatedAgents:e.estimatedAgents,permissions:e.permissions,resources:e.resources,connectors:e.connectors,inputSchema:e.inputSchema,outputSchema:e.outputSchema,whenToUse:e.whenToUse,examplePrompts:e.examplePrompts,i18n:e.i18n})}function tr(e,t){let n=ur(e),r=ur(t);if(n.length*r.length>25e4)return dr(n,r);let i=Array.from({length:n.length+1},()=>new Uint32Array(r.length+1));for(let e=n.length-1;e>=0;--e)for(let t=r.length-1;t>=0;--t)i[e][t]=n[e]===r[t]?i[e+1][t+1]+1:Math.max(i[e+1][t],i[e][t+1]);let a=[],o=0,s=0;for(;o<n.length&&s<r.length;)n[o]===r[s]?(a.push({kind:`same`,beforeLine:o+1,afterLine:s+1,text:n[o]}),o+=1,s+=1):i[o+1][s]>=i[o][s+1]?(a.push({kind:`removed`,beforeLine:o+1,text:n[o]}),o+=1):(a.push({kind:`added`,afterLine:s+1,text:r[s]}),s+=1);for(;o<n.length;)a.push({kind:`removed`,beforeLine:++o,text:n[o-1]});for(;s<r.length;)a.push({kind:`added`,afterLine:++s,text:r[s-1]});return a}function nr(e){return`${JSON.stringify(e,null,2)}\n`}function rr(e){let t;try{t=JSON.parse(e)}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Invalid JSON.`}}if(!sr(t))return lr(`The source root must be a JSON object.`);if(t.formatVersion!==1)return lr(`formatVersion must be 1.`);if(typeof t.name!=`string`||!/^[a-z][a-z0-9_-]*$/.test(t.name))return lr(`name must use lowercase letters, numbers, underscores, or hyphens.`);if(!sr(t.manifest))return lr(`manifest must be an object.`);let n=ir(t.manifest);if(n)return lr(n);if(!sr(t.graph))return lr(`graph must be an object.`);if(t.graph.schemaVersion!==1)return lr(`graph.schemaVersion must be 1.`);if(!Array.isArray(t.graph.nodes))return lr(`graph.nodes must be an array.`);if(!Array.isArray(t.graph.edges))return lr(`graph.edges must be an array.`);for(let[e,n]of t.graph.nodes.entries()){let t=ar(n,e);if(t)return lr(t)}for(let[e,n]of t.graph.edges.entries()){let t=or(n,e);if(t)return lr(t)}return{ok:!0,document:t}}function ir(e){for(let t of[`title`,`description`,`version`,`whenToUse`])if(e[t]!==void 0&&typeof e[t]!=`string`)return`manifest.${t} must be a string.`;return e.tags!==void 0&&(!Array.isArray(e.tags)||e.tags.some(e=>typeof e!=`string`))?`manifest.tags must be an array of strings.`:e.defaults!==void 0&&!sr(e.defaults)?`manifest.defaults must be an object.`:null}function ar(e,t){return sr(e)?typeof e.id!=`string`||!e.id?`graph.nodes[${t}].id must be a non-empty string.`:[`input`,`agent`,`decision`,`merge`,`output`].includes(String(e.kind))?typeof e.title==`string`?!sr(e.position)||!cr(e.position.x)||!cr(e.position.y)?`graph.nodes[${t}].position must contain finite x and y values.`:sr(e.config)?null:`graph.nodes[${t}].config must be an object.`:`graph.nodes[${t}].title must be a string.`:`graph.nodes[${t}].kind is invalid.`:`graph.nodes[${t}] must be an object.`}function or(e,t){if(!sr(e))return`graph.edges[${t}] must be an object.`;for(let n of[`id`,`source`,`target`])if(typeof e[n]!=`string`||!e[n])return`graph.edges[${t}].${n} must be a non-empty string.`;return e.sourcePort!==void 0&&![`true`,`false`,`default`].includes(String(e.sourcePort))?`graph.edges[${t}].sourcePort is invalid.`:null}function sr(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function cr(e){return typeof e==`number`&&Number.isFinite(e)}function lr(e){return{ok:!1,error:e}}function ur(e){let t=e.split(`
|
|
2
|
+
`);return t.at(-1)===``&&t.pop(),t}function dr(e,t){let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];)n+=1;let r=0;for(;r<e.length-n&&r<t.length-n&&e[e.length-r-1]===t[t.length-r-1];)r+=1;return[...e.slice(0,n).map((e,t)=>({kind:`same`,beforeLine:t+1,afterLine:t+1,text:e})),...e.slice(n,e.length-r).map((e,t)=>({kind:`removed`,beforeLine:n+t+1,text:e})),...t.slice(n,t.length-r).map((e,t)=>({kind:`added`,afterLine:n+t+1,text:e})),...e.slice(e.length-r).map((n,i)=>({kind:`same`,beforeLine:e.length-r+i+1,afterLine:t.length-r+i+1,text:n}))]}function fr(e){let t=(0,Q.c)(31),{comparison:n,language:r,onClose:i}=e,a;t[0]===n?a=t[1]:(a=n?tr(n.before,n.after):[],t[0]=n,t[1]=a);let o=a,s;t[2]===o?s=t[3]:(s=o.filter(mr),t[2]=o,t[3]=s);let c=s.length,l=!!n,u;t[4]===i?u=t[5]:(u=e=>{e||i()},t[4]=i,t[5]=u);let d;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,$.jsx)(z,{className:`xopc-dialog-overlay fixed inset-0 z-50 bg-scrim backdrop-blur-[2px]`}),t[6]=d):d=t[6];let f=r===`zh`?`源码变更`:`Source changes`,p;t[7]===f?p=t[8]:(p=(0,$.jsx)(G,{className:`text-base font-semibold text-fg`,children:f}),t[7]=f,t[8]=p);let m=n?`${n.beforeLabel} → ${n.afterLabel} · ${r===`zh`?`${c} 行变更`:`${c} changed lines`}`:``,h;t[9]===m?h=t[10]:(h=(0,$.jsx)(V,{className:`mt-1 text-xs text-fg-muted`,children:m}),t[9]=m,t[10]=h);let g;t[11]!==p||t[12]!==h?(g=(0,$.jsxs)(`div`,{children:[p,h]}),t[11]=p,t[12]=h,t[13]=g):g=t[13];let _=r===`zh`?`关闭`:`Close`,v;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsx)(P,{className:`size-4`}),t[14]=v):v=t[14];let y;t[15]===_?y=t[16]:(y=(0,$.jsx)(H,{asChild:!0,children:(0,$.jsx)(q,{type:`button`,variant:`ghost`,className:`size-8 p-0`,"aria-label":_,children:v})}),t[15]=_,t[16]=y);let b;t[17]!==g||t[18]!==y?(b=(0,$.jsxs)(`header`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-edge px-5 py-4`,children:[g,y]}),t[17]=g,t[18]=y,t[19]=b):b=t[19];let x;t[20]===o?x=t[21]:(x=o.map(pr),t[20]=o,t[21]=x);let S;t[22]===x?S=t[23]:(S=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto bg-surface-base py-3 font-mono text-xs leading-5`,children:x}),t[22]=x,t[23]=S);let C;t[24]!==b||t[25]!==S?(C=(0,$.jsxs)(U,{children:[d,(0,$.jsxs)(W,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-50 flex h-[min(46rem,calc(100vh-2rem))] w-[min(64rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay shadow-float`,children:[b,S]})]}),t[24]=b,t[25]=S,t[26]=C):C=t[26];let w;return t[27]!==C||t[28]!==l||t[29]!==u?(w=(0,$.jsx)(K,{open:l,onOpenChange:u,children:C}),t[27]=C,t[28]=l,t[29]=u,t[30]=w):w=t[30],w}function pr(e,t){return(0,$.jsxs)(`div`,{className:e.kind===`added`?`grid min-w-max grid-cols-[3rem_3rem_1.5rem_minmax(40rem,1fr)] bg-success/10 text-success`:e.kind===`removed`?`grid min-w-max grid-cols-[3rem_3rem_1.5rem_minmax(40rem,1fr)] bg-danger/10 text-danger`:`grid min-w-max grid-cols-[3rem_3rem_1.5rem_minmax(40rem,1fr)] text-fg-muted`,children:[(0,$.jsx)(`span`,{className:`select-none border-r border-edge-subtle pr-2 text-right text-fg-subtle`,children:e.beforeLine??``}),(0,$.jsx)(`span`,{className:`select-none border-r border-edge-subtle pr-2 text-right text-fg-subtle`,children:e.afterLine??``}),(0,$.jsx)(`span`,{className:`select-none text-center`,children:e.kind===`added`?`+`:e.kind===`removed`?`−`:` `}),(0,$.jsx)(`span`,{className:`whitespace-pre pr-5`,children:e.text||` `})]},`${t}:${e.kind}`)}function mr(e){return e.kind!==`same`}function hr(e,t){let n=new Set(t);if(!n.has(e))return e;for(let t=2;t<1e3;t+=1){let r=`${e}_${t}`;if(!n.has(r))return r}return`${e}_${Date.now()}`}function gr(e){if(!(e instanceof Error))return null;let t=e;if(t.status!==409||!t.body||typeof t.body!=`object`)return null;let n=t.body,r=typeof n.currentRevision==`number`?n.currentRevision:0;return n.code===`WORKFLOW_NAME_EXISTS`&&typeof n.name==`string`&&typeof n.suggestedName==`string`?{code:`WORKFLOW_NAME_EXISTS`,name:n.name,currentRevision:r,suggestedName:n.suggestedName}:n.code===`WORKFLOW_REVISION_CONFLICT`?{code:`WORKFLOW_REVISION_CONFLICT`,currentRevision:r}:null}var _r={padding:.24,minZoom:.45,maxZoom:1};function vr({language:e,ownerAgentId:t,saving:n,initialDraft:r,initialName:a,existingNames:o,saveConflict:c,onSave:u,onSaveAndStart:d,onClearSaveConflict:f,onReloadLatest:p}){let m=Lr(e),[h,g]=(0,Z.useState)(`my_workflow`),[_,v]=(0,Z.useState)(()=>Ar()),[y,x]=(0,Z.useState)(()=>({title:m.untitled,description:``,tags:[`custom`]})),[S,C]=(0,Z.useState)(`agent-1`),[w,T,E]=Lt(_.nodes.map(e=>Or(e,e.id===`agent-1`))),[D,O]=(0,Z.useState)(``),[k,A]=(0,Z.useState)(``),[j,M]=(0,Z.useState)(!1),[N,P]=(0,Z.useState)(null),[F,L]=(0,Z.useState)(null),[R,z]=(0,Z.useState)(!!r),[B,V]=(0,Z.useState)(null),[H,U]=(0,Z.useState)(`idle`),[W,G]=(0,Z.useState)(0),[K,ee]=(0,Z.useState)([]),[te,J]=(0,Z.useState)(null),ne=(0,Z.useRef)(``),ie=(0,Z.useRef)(``),ae=(0,Z.useRef)(void 0),se=(0,Z.useRef)(void 0),ce=(0,Z.useRef)(``),le=(0,Z.useRef)(!1),de=(0,Z.useRef)(null),[fe,pe]=(0,Z.useState)(0),[ge,ve]=(0,Z.useState)(`canvas`),[ye,X]=(0,Z.useState)(``),[be,xe]=(0,Z.useState)(0),[Se,Ce]=(0,Z.useState)(null),[we,Te]=(0,Z.useState)(null),[Ee,De]=(0,Z.useState)(null),Oe=s(!!Se);i((0,Z.useCallback)(e=>{Se&&(e.preventDefault(),e.returnValue=``)},[Se])),(0,Z.useEffect)(()=>{Oe.state===`blocked`&&(window.confirm(e===`zh`?`源码仍有错误。要放弃这些修改吗?`:`The source still has errors. Discard these changes?`)?Oe.proceed():Oe.reset())},[Oe,e]),(0,Z.useEffect)(()=>{let e=`${r?.mode??`new`}:${r?.name??a}:${r?.baseRevision??0}:${r?.repairPrompt??``}`;if(ne.current===e)return;ne.current=e,g(r?.name??a),v(structuredClone(r?.graph??Ar())),pe(e=>e+1),x(structuredClone(r?.manifest??{title:m.untitled,description:``,tags:[`custom`]})),C(r?.graph.nodes.find(e=>e.kind===`agent`)?.id??`agent-1`),O(r?.repairPrompt??``),P(null),L(null),z(!!r),A(``),V(null),G(r?.baseRevision??0),ee([]),J(null),ae.current=void 0,se.current=void 0,U(`idle`),ve(`canvas`);let t=nr($n(r?.name??a,r?.graph??Ar(),r?.manifest??{title:m.untitled,description:``,tags:[`custom`]}));ce.current=t,X(t),xe(e=>e+1),Ce(null),Te(null),De(null)},[m.untitled,r,a]),(0,Z.useEffect)(()=>{r?.mode===`edit`&&He(r.name).then(ee).catch(()=>ee([]))},[r?.mode,r?.name]),(0,Z.useEffect)(()=>{if(!h.trim())return;let e=!0,t=window.setTimeout(()=>{re(h,_,y).then(t=>{e&&V(t)}).catch(()=>{e&&V(null)})},350);return()=>{e=!1,window.clearTimeout(t)}},[_,y,h]),(0,Z.useEffect)(()=>{if(!h.trim())return;U(`saving`);let e=window.setTimeout(()=>{oe({id:ae.current,workflowName:h,graph:_,manifest:y,baseRevision:W,expectedUpdatedAtMs:se.current}).then(e=>{ae.current=e.id,se.current=e.updatedAtMs,U(`saved`)}).catch(()=>U(`error`))},900);return()=>window.clearTimeout(e)},[W,_,y,h]);let ke=(0,Z.useMemo)(()=>Mr(_,N?.graph??null),[_,N?.graph]),Ae=(0,Z.useMemo)(()=>{if(!N)return _;let e=new Set(N.graph.nodes.map(e=>e.id)),t=_.nodes.filter(t=>!e.has(t.id));return{...N.graph,nodes:[...N.graph.nodes,...t]}},[_,N]);(0,Z.useLayoutEffect)(()=>{T(e=>{let t=new Map(e.map(e=>[e.id,e]));return Ae.nodes.map(e=>({...t.get(e.id),...Or(e,e.id===S,ke.nodeStates.get(e.id))}))})},[Ae.nodes,ke.nodeStates,S,T]),(0,Z.useEffect)(()=>{let e=de.current;if(!e||Ae.nodes.length===0)return;let t=window.requestAnimationFrame(()=>{e.fitView(_r)});return()=>window.cancelAnimationFrame(t)},[Ae.nodes.length,fe]);let je=(0,Z.useMemo)(()=>Ae.edges.map(kr),[Ae.edges]),Me=_.nodes.find(e=>e.id===S)??null,Pe=(0,Z.useMemo)(()=>new Set(o),[o]),Fe=r?.mode!==`edit`&&Pe.has(h),Le=Fe?hr(h,Pe):h,Re=B?.valid===!0&&!Fe&&!n&&!j&&Se===null,ze=e=>{if(!(e===ge||N)&&!(e===`canvas`&&Se)){if(e===`source`){let e=nr($n(h,_,y));ce.current=e,X(e),xe(e=>e+1),Ce(null)}ve(e)}},Be=t=>{ce.current=t;let n=rr(t);if(!n.ok){Ce(n.error);return}if(r?.mode===`edit`&&n.document.name!==r.name){Ce(e===`zh`?`已发布工作流的内部名称不能修改。`:`The internal name of a published workflow cannot be changed.`);return}Ce(null),V(null),g(n.document.name),v(structuredClone(n.document.graph)),x(structuredClone(n.document.manifest)),C(e=>n.document.graph.nodes.some(t=>t.id===e)?e:n.document.graph.nodes.find(e=>e.kind===`agent`)?.id??``),pe(e=>e+1)},Ve=e=>{if(g(e),ge!==`source`)return;let t=rr(ce.current);if(!t.ok)return;let n=nr({...t.document,name:e});ce.current=n,X(n),xe(e=>e+1),Be(n)},Ue=e=>{let t=qn(e);if(g(e.name),v(structuredClone(e.graph)),x(t),G(e.revision),Ce(null),ge===`source`){let n=nr($n(e.name,e.graph,t));ce.current=n,X(n),xe(e=>e+1)}},We=(0,Z.useCallback)(e=>{v(t=>{let n=t.nodes.map(t=>t.id!==e.id||t.position.x===e.position.x&&t.position.y===e.position.y?t:{...t,position:e.position});return n.some((e,n)=>e!==t.nodes[n])?{...t,nodes:n}:t})},[]),Ge=(0,Z.useCallback)(e=>{let t=e.filter(e=>e.type!==`select`);t.length!==0&&v(e=>({...e,edges:At(t,e.edges.map(kr)).map(e=>({id:e.id,source:e.source,target:e.target,sourcePort:e.sourceHandle===`true`||e.sourceHandle===`false`?e.sourceHandle:void 0}))}))},[]),Ke=(0,Z.useCallback)(e=>{!e.source||!e.target||v(t=>({...t,edges:Mt({...e,id:`edge-${crypto.randomUUID()}`},t.edges.map(kr)).map(e=>({id:e.id,source:e.source,target:e.target,sourcePort:e.sourceHandle===`true`||e.sourceHandle===`false`?e.sourceHandle:void 0}))}))},[]),qe=(0,Z.useCallback)((e,t)=>{v(n=>({...n,nodes:n.nodes.map(n=>n.id===e?t(n):n)}))},[]),Ye=e=>{let t=`${e}-${crypto.randomUUID().slice(0,8)}`,n=jr(e,t,_.nodes.length);v(e=>{let r=e.nodes.find(e=>e.id===S&&e.kind!==`output`),i=r?[{id:`edge-${crypto.randomUUID()}`,source:r.id,target:t}]:[];return{...e,nodes:[...e.nodes,n],edges:[...e.edges,...i]}}),pe(e=>e+1),C(t)},Xe=()=>{!Me||Me.kind===`input`||Me.kind===`output`||(v(e=>({...e,nodes:e.nodes.filter(e=>e.id!==Me.id),edges:e.edges.filter(e=>e.source!==Me.id&&e.target!==Me.id)})),pe(e=>e+1),C(``))},Ze=(0,Z.useCallback)(async()=>{if(D.trim()){M(!0);try{let n=await Je({prompt:D,agentId:t,language:e===`zh`?`zh`:`en`,mode:r||_.nodes.length>3?`improve`:`create`,existingGraph:_}),i=r?.mode===`edit`?r.name:hr(n.name,Pe);L(i===n.name?null:n.name),P(i===n.name?n:{...n,name:i}),z(!0),pe(e=>e+1),C(n.graph.nodes.find(e=>e.kind===`agent`)?.id??``)}finally{M(!1)}}},[D,Pe,_,r,e,t]);(0,Z.useEffect)(()=>{let e=r?.repairPrompt?.trim();!e||D.trim()!==e||j||N||ie.current===e||(ie.current=e,Ze())},[D,Ze,j,r?.repairPrompt,N]);let $e=()=>{P(null),L(null),C(_.nodes.find(e=>e.kind===`agent`)?.id??``),pe(e=>e+1)},et=async()=>{if(!(!N||n||le.current)){le.current=!0;try{let e=await u({name:N.name,graph:N.graph,manifest:N.manifest,expectedRevision:W});if(!e)return;Ue(e),V(N.validation),P(null),L(null),O(``),C(e.graph.nodes.find(e=>e.kind===`agent`)?.id??``),ae.current&&await lt(ae.current).catch(()=>void 0)}catch{}finally{le.current=!1}}},tt=async e=>{if(!Re||le.current)return;le.current=!0;let t={name:h,graph:_,manifest:y,expectedRevision:W};try{if(e)await d({...t,goal:k.trim()||y.description||h});else{let e=await u(t);if(!e)return;Ue(e)}ae.current&&await lt(ae.current).catch(()=>void 0)}catch{return}finally{le.current=!1}},nt=async e=>{if(!(te!==null||r?.mode!==`edit`)){J(e);try{let t=await yt(r.name,e,W);Ue(t),pe(e=>e+1),C(t.graph.nodes.find(e=>e.kind===`agent`)?.id??``),ee(await He(r.name))}finally{J(null)}}},rt=async t=>{if(!(we!==null||r?.mode!==`edit`)){Te(t);try{De({before:nr(Qn(await Qe(r.name,t))),after:nr($n(h,_,y)),beforeLabel:`v${t}`,afterLabel:e===`zh`?`当前草稿 · v${W}`:`Current draft · v${W}`})}finally{Te(null)}}};return(0,$.jsxs)(`main`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden bg-surface-panel`,children:[(0,$.jsxs)(`header`,{className:`flex shrink-0 items-center gap-3 border-b border-edge px-4 py-3`,children:[(0,$.jsx)(l,{to:`/workflows`,className:I(`inline-flex size-9 shrink-0 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg`,Ie.focusRingPanel),"aria-label":e===`zh`?`返回工作流`:`Back to workflows`,children:(0,$.jsx)(Y,{className:`size-4`,"aria-hidden":!0})}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`h1`,{className:`text-base font-semibold text-fg`,children:r?.mode===`edit`?m.editTitle:m.createTitle}),(0,$.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:m.subtitle})]}),R?(0,$.jsx)(`div`,{className:`flex rounded-lg bg-surface-base p-1`,role:`tablist`,"aria-label":e===`zh`?`工作流编辑视图`:`Workflow editor view`,children:[`canvas`,`source`].map(t=>(0,$.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":ge===t,disabled:!!N||t===`canvas`&&!!Se,className:I(`rounded-md px-3 py-1.5 text-xs font-medium disabled:cursor-not-allowed disabled:opacity-50`,ge===t?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:text-fg`),onClick:()=>ze(t),children:t===`canvas`?e===`zh`?`画布`:`Canvas`:e===`zh`?`源码`:`Source`},t))}):null,(0,$.jsx)(`span`,{className:I(`text-xs`,H===`error`?`text-danger`:`text-fg-subtle`),children:H===`saving`?m.savingDraft:H===`saved`?m.savedDraft:H===`error`?m.draftError:``})]}),c?(0,$.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2 border-b border-warning/30 bg-warning/5 px-4 py-2 text-sm text-fg`,children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1`,children:c.code===`WORKFLOW_NAME_EXISTS`?e===`zh`?`内部名称“${c.name}”已被使用。`:`The internal name “${c.name}” is already in use.`:e===`zh`?`这个工作流已更新到版本 ${c.currentRevision}。`:`This workflow has changed to revision ${c.currentRevision}.`}),c.code===`WORKFLOW_NAME_EXISTS`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(q,{variant:`secondary`,className:`h-8`,onClick:()=>{Ve(c.suggestedName),f()},children:e===`zh`?`使用 ${c.suggestedName}`:`Use ${c.suggestedName}`}),(0,$.jsx)(l,{className:`text-sm font-medium text-accent-fg hover:underline`,to:`/workflows/${encodeURIComponent(c.name)}`,children:e===`zh`?`打开已有工作流`:`Open existing`})]}):(0,$.jsx)(q,{variant:`secondary`,className:`h-8`,onClick:p,children:e===`zh`?`加载最新版本`:`Load latest`})]}):null,!c&&Fe?(0,$.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2 border-b border-warning/30 bg-warning/5 px-4 py-2 text-sm text-fg`,children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1`,children:e===`zh`?`内部名称“${h}”已被使用。`:`The internal name “${h}” is already in use.`}),(0,$.jsx)(q,{variant:`secondary`,className:`h-8`,onClick:()=>Ve(Le),children:e===`zh`?`使用 ${Le}`:`Use ${Le}`})]}):null,!c&&!Fe&&F&&N?(0,$.jsx)(`div`,{className:`shrink-0 border-b border-accent/20 bg-accent/5 px-4 py-2 text-sm text-fg-muted`,children:e===`zh`?`“${F}”已存在,方案将保存为“${N.name}”。`:`“${F}” already exists. This proposal will be saved as “${N.name}”.`}):null,R?(0,$.jsxs)($.Fragment,{children:[ge===`source`?(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 items-start overflow-y-auto bg-surface-base p-4`,children:(0,$.jsx)(Yn,{initialSource:ye,resetKey:be,fileName:`${h||`workflow`}.workflow.json`,language:e,readOnly:!1,error:Se,onChange:Be,allowImport:!0,className:`min-h-[32rem] flex-1`})}):(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto lg:flex-row lg:overflow-hidden`,children:[(0,$.jsxs)(`section`,{className:`flex min-h-[32rem] min-w-0 flex-1 flex-col bg-surface-base lg:min-h-0`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2 border-b border-edge px-3 py-2`,children:[(0,$.jsxs)(`div`,{className:`mr-2 min-w-36`,children:[(0,$.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:m.flowTitle}),(0,$.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:m.stepCount(_.nodes.length)})]}),(0,$.jsxs)(q,{variant:`secondary`,className:`h-8 rounded-lg text-xs`,disabled:!!N,onClick:()=>Ye(`agent`),children:[(0,$.jsx)(he,{className:`size-3.5`}),m.addAgent]}),(0,$.jsxs)(q,{variant:`secondary`,className:`h-8 rounded-lg text-xs`,disabled:!!N,onClick:()=>Ye(`decision`),children:[(0,$.jsx)(b,{className:`size-3.5`}),m.addDecision]}),(0,$.jsxs)(q,{variant:`secondary`,className:`h-8 rounded-lg text-xs`,disabled:!!N,onClick:()=>Ye(`merge`),children:[(0,$.jsx)(dt,{className:`size-3.5`}),m.addMerge]}),(0,$.jsx)(`span`,{className:`ml-auto text-xs text-fg-subtle`,children:m.canvasHint})]}),(0,$.jsx)(`div`,{className:`relative min-h-72 flex-1`,children:_.nodes.length>0?(0,$.jsxs)(Ft,{"aria-label":m.flowAria,nodes:w,edges:je,nodeTypes:Tr,onNodesChange:E,onEdgesChange:Ge,onConnect:Ke,nodesDraggable:!N,nodesConnectable:!N,onNodeClick:(e,t)=>C(t.id),onNodeDragStart:(e,t)=>C(t.id),onNodeDragStop:(e,t)=>We(t),onInit:e=>{de.current=e,window.requestAnimationFrame(()=>{e.fitView(_r)})},fitView:!0,fitViewOptions:_r,minZoom:.25,maxZoom:1.5,deleteKeyCode:null,proOptions:{hideAttribution:!0},children:[(0,$.jsx)(Rt,{color:`var(--color-edge)`,gap:22,size:1}),(0,$.jsx)(Pt,{showInteractive:!1,className:`!border-edge !bg-surface-panel !shadow-surface`})]}):(0,$.jsx)(`div`,{className:`flex h-full items-center justify-center px-6 text-center text-sm text-fg-muted`,children:m.emptyFlow})})]}),(0,$.jsx)(`aside`,{className:`flex w-full shrink-0 flex-col border-t border-edge bg-surface-panel lg:w-[22rem] lg:border-l lg:border-t-0`,children:(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-4`,children:N?(0,$.jsx)(br,{proposal:N,diff:ke,copy:m,saving:n,onAccept:()=>void et(),onReject:$e}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`label`,{className:`block text-xs font-medium text-fg`,htmlFor:`workflow-title`,children:m.humanTitle}),(0,$.jsx)(`input`,{id:`workflow-title`,value:y.title??``,onChange:e=>x(t=>({...t,title:e.target.value})),className:Dr}),(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg`,htmlFor:`workflow-description`,children:m.task}),(0,$.jsx)(`textarea`,{id:`workflow-description`,value:y.description??``,onChange:e=>x(t=>({...t,description:e.target.value})),className:`${Dr} min-h-20 resize-y`}),(0,$.jsxs)(`details`,{className:`mt-4 border-t border-edge pt-3`,children:[(0,$.jsx)(`summary`,{className:`cursor-pointer text-xs font-medium text-fg-muted`,children:m.advanced}),(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg`,htmlFor:`workflow-name`,children:m.workflowName}),(0,$.jsx)(`input`,{id:`workflow-name`,value:h,disabled:r?.mode===`edit`,onChange:e=>g(Fr(e.target.value)),className:`${Dr} disabled:cursor-not-allowed disabled:opacity-60`}),Fe?(0,$.jsx)(`p`,{className:`mt-1 text-xs text-danger`,children:e===`zh`?`该内部名称已被使用,请换一个名称。`:`This internal name is already in use.`}):null,r?.mode===`edit`&&K.length>0?(0,$.jsxs)(`div`,{className:`mt-4 border-t border-edge pt-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-medium text-fg-muted`,children:[(0,$.jsx)(vt,{className:`size-3.5`}),m.versions,` · v`,W]}),(0,$.jsx)(`div`,{className:`mt-2 space-y-1`,children:K.map(t=>(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 rounded-lg px-2 py-1.5 hover:bg-surface-hover`,children:[(0,$.jsxs)(`span`,{className:`min-w-0 text-xs text-fg-muted`,children:[`v`,t.revision,` · `,ut(t.createdAtMs,e)]}),t.revision===W?(0,$.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:m.currentVersion}):(0,$.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[(0,$.jsx)(q,{variant:`ghost`,className:`h-7 px-2 text-xs`,disabled:we!==null,onClick:()=>void rt(t.revision),children:we===t.revision?e===`zh`?`加载中…`:`Loading…`:e===`zh`?`对比`:`Compare`}),(0,$.jsxs)(q,{variant:`ghost`,className:`h-7 px-2 text-xs`,disabled:te!==null,onClick:()=>void nt(t.revision),children:[(0,$.jsx)(_e,{className:`size-3`}),te===t.revision?m.restoring:m.restore]})]})]},t.revision))})]}):null]})]}),(0,$.jsx)(`div`,{className:`my-4 border-t border-edge`}),Me?(0,$.jsx)(Er,{node:Me,copy:m,updateNode:qe,onDelete:Xe}):(0,$.jsx)(`div`,{className:`py-8 text-center text-sm text-fg-muted`,children:m.selectNode}),B&&!B.valid?(0,$.jsxs)(`section`,{className:`mt-4 rounded-lg border border-danger/30 bg-danger/5 p-3`,children:[(0,$.jsx)(`h3`,{className:`text-xs font-medium text-danger`,children:m.needsAttention}),(0,$.jsx)(`ul`,{className:`mt-2 space-y-1 text-xs text-danger`,children:B.errors.slice(0,5).map((e,t)=>(0,$.jsxs)(`li`,{children:[`• `,e.message]},`${e.code}-${t}`))})]}):null]})})})]}),(0,$.jsx)(`footer`,{className:`shrink-0 border-t border-edge bg-surface-panel p-3`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2 lg:flex-row lg:items-center`,children:[ge===`canvas`?(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,$.jsx)(me,{className:`size-4 shrink-0 text-accent-fg`}),(0,$.jsx)(Ot,{value:D,onChange:e=>O(e.target.value),suggestion:kt(m.aiPlaceholder),onAcceptSuggestion:O,onKeyDown:e=>{e.key===`Enter`&&Ze()},placeholder:m.aiPlaceholder,className:`${Dr} mt-0 flex-1`}),(0,$.jsx)(q,{variant:`secondary`,className:`h-10 shrink-0`,disabled:!!N||j||!D.trim(),onClick:()=>void Ze(),children:j?m.designing:m.applyWithAi})]}):(0,$.jsx)(`p`,{className:`min-w-0 flex-1 text-xs text-fg-muted`,children:Se?e===`zh`?`修复源码错误后才能切换画布或保存。`:`Fix source errors before switching to the canvas or saving.`:e===`zh`?`源码与画布使用同一个草稿。`:`Source and canvas share the same draft.`}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`input`,{value:k,onChange:e=>A(e.target.value),placeholder:m.testGoal,className:`${Dr} mt-0 w-52`}),(0,$.jsxs)(q,{variant:`secondary`,disabled:!Re,onClick:()=>void tt(!1),children:[(0,$.jsx)(ue,{className:`size-4`}),m.publish]}),(0,$.jsxs)(q,{variant:`primary`,disabled:!Re,onClick:()=>void tt(!0),children:[(0,$.jsx)(Ne,{className:`size-4`}),m.publishAndRun]})]})]})})]}):(0,$.jsx)(yr,{copy:m,prompt:D,generating:j,onPromptChange:O,onGenerate:()=>void Ze(),onManual:()=>z(!0)}),(0,$.jsx)(fr,{comparison:Ee,language:e,onClose:()=>De(null)})]})}function yr(e){let t=(0,Q.c)(42),{copy:n,prompt:r,generating:i,onPromptChange:a,onGenerate:o,onManual:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,$.jsx)(`div`,{className:`flex size-11 items-center justify-center rounded-2xl bg-accent-soft text-accent-fg`,children:(0,$.jsx)(me,{className:`size-5`})}),t[0]=c):c=t[0];let l;t[1]===n.introTitle?l=t[2]:(l=(0,$.jsx)(`h2`,{className:`mt-5 text-2xl font-semibold text-fg`,children:n.introTitle}),t[1]=n.introTitle,t[2]=l);let u;t[3]===n.introDescription?u=t[4]:(u=(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:n.introDescription}),t[3]=n.introDescription,t[4]=u);let d;t[5]===a?d=t[6]:(d=e=>a(e.target.value),t[5]=a,t[6]=d);let f;t[7]===n.introPlaceholder?f=t[8]:(f=kt(n.introPlaceholder),t[7]=n.introPlaceholder,t[8]=f);let p;t[9]!==n.introPlaceholder||t[10]!==a||t[11]!==r||t[12]!==d||t[13]!==f?(p=(0,$.jsx)(Dt,{value:r,onChange:d,suggestion:f,onAcceptSuggestion:a,placeholder:n.introPlaceholder,className:`${Dr} mt-6 h-auto min-h-32 resize-y py-3 text-base leading-6`}),t[9]=n.introPlaceholder,t[10]=a,t[11]=r,t[12]=d,t[13]=f,t[14]=p):p=t[14];let m;if(t[15]!==n.examples||t[16]!==a){let e;t[18]===a?e=t[19]:(e=e=>(0,$.jsx)(`button`,{type:`button`,className:`rounded-full border border-edge bg-surface-panel px-3 py-1.5 text-xs text-fg-muted hover:bg-surface-hover hover:text-fg`,onClick:()=>a(e),children:e},e),t[18]=a,t[19]=e),m=n.examples.map(e),t[15]=n.examples,t[16]=a,t[17]=m}else m=t[17];let h;t[20]===m?h=t[21]:(h=(0,$.jsx)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:m}),t[20]=m,t[21]=h);let g;t[22]!==i||t[23]!==r?(g=!r.trim()||i,t[22]=i,t[23]=r,t[24]=g):g=t[24];let _;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsx)(me,{className:`size-4`}),t[25]=_):_=t[25];let v=i?n.designing:n.designWorkflow,y;t[26]!==o||t[27]!==v||t[28]!==g?(y=(0,$.jsxs)(q,{variant:`primary`,disabled:g,onClick:o,children:[_,v]}),t[26]=o,t[27]=v,t[28]=g,t[29]=y):y=t[29];let b;t[30]!==n.manualStart||t[31]!==s?(b=(0,$.jsx)(q,{variant:`ghost`,onClick:s,children:n.manualStart}),t[30]=n.manualStart,t[31]=s,t[32]=b):b=t[32];let x;t[33]!==y||t[34]!==b?(x=(0,$.jsxs)(`div`,{className:`mt-6 flex flex-wrap items-center gap-3`,children:[y,b]}),t[33]=y,t[34]=b,t[35]=x):x=t[35];let S;return t[36]!==x||t[37]!==l||t[38]!==u||t[39]!==p||t[40]!==h?(S=(0,$.jsx)(`section`,{className:`flex min-h-0 flex-1 items-center justify-center overflow-y-auto bg-surface-base px-5 py-10`,children:(0,$.jsxs)(`div`,{className:`w-full max-w-2xl`,children:[c,l,u,p,h,x]})}),t[36]=x,t[37]=l,t[38]=u,t[39]=p,t[40]=h,t[41]=S):S=t[41],S}function br(e){let t=(0,Q.c)(74),{proposal:n,diff:r,copy:i,saving:a,onAccept:o,onReject:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,$.jsx)(`span`,{className:`flex size-8 shrink-0 items-center justify-center rounded-xl bg-accent-soft text-accent-fg`,children:(0,$.jsx)(me,{className:`size-4`})}),t[0]=c):c=t[0];let l;t[1]===i.proposalTitle?l=t[2]:(l=(0,$.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:i.proposalTitle}),t[1]=i.proposalTitle,t[2]=l);let u;t[3]===i.proposalHint?u=t[4]:(u=(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:i.proposalHint}),t[3]=i.proposalHint,t[4]=u);let d;t[5]!==l||t[6]!==u?(d=(0,$.jsxs)(`div`,{className:`flex items-start gap-2`,children:[c,(0,$.jsxs)(`div`,{className:`min-w-0`,children:[l,u]})]}),t[5]=l,t[6]=u,t[7]=d):d=t[7];let p=n.manifest.title||n.name,m;t[8]===p?m=t[9]:(m=(0,$.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:p}),t[8]=p,t[9]=m);let h=n.explanation||n.manifest.description,g;t[10]===h?g=t[11]:(g=(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:h}),t[10]=h,t[11]=g);let _;t[12]===i.added?_=t[13]:(_=(0,$.jsx)(`dt`,{className:`text-fg-subtle`,children:i.added}),t[12]=i.added,t[13]=_);let v;t[14]===r.addedIds.length?v=t[15]:(v=(0,$.jsx)(`dd`,{className:`mt-1 font-semibold text-success`,children:r.addedIds.length}),t[14]=r.addedIds.length,t[15]=v);let y;t[16]!==v||t[17]!==_?(y=(0,$.jsxs)(`div`,{className:`rounded-lg bg-success-soft p-2`,children:[_,v]}),t[16]=v,t[17]=_,t[18]=y):y=t[18];let b;t[19]===i.changed?b=t[20]:(b=(0,$.jsx)(`dt`,{className:`text-fg-subtle`,children:i.changed}),t[19]=i.changed,t[20]=b);let x=r.changedIds.length+r.connectionChanges,S;t[21]===x?S=t[22]:(S=(0,$.jsx)(`dd`,{className:`mt-1 font-semibold text-accent-fg`,children:x}),t[21]=x,t[22]=S);let C;t[23]!==b||t[24]!==S?(C=(0,$.jsxs)(`div`,{className:`rounded-lg bg-accent-soft p-2`,children:[b,S]}),t[23]=b,t[24]=S,t[25]=C):C=t[25];let w;t[26]===i.removed?w=t[27]:(w=(0,$.jsx)(`dt`,{className:`text-fg-subtle`,children:i.removed}),t[26]=i.removed,t[27]=w);let T;t[28]===r.removedIds.length?T=t[29]:(T=(0,$.jsx)(`dd`,{className:`mt-1 font-semibold text-danger`,children:r.removedIds.length}),t[28]=r.removedIds.length,t[29]=T);let E;t[30]!==w||t[31]!==T?(E=(0,$.jsxs)(`div`,{className:`rounded-lg bg-danger/5 p-2`,children:[w,T]}),t[30]=w,t[31]=T,t[32]=E):E=t[32];let D;t[33]!==y||t[34]!==C||t[35]!==E?(D=(0,$.jsxs)(`dl`,{className:`mt-3 grid grid-cols-3 gap-2 text-center text-xs`,children:[y,C,E]}),t[33]=y,t[34]=C,t[35]=E,t[36]=D):D=t[36];let O;t[37]!==D||t[38]!==m||t[39]!==g?(O=(0,$.jsxs)(`div`,{className:`mt-4 rounded-xl border border-edge bg-surface-base/50 p-3`,children:[m,g,D]}),t[37]=D,t[38]=m,t[39]=g,t[40]=O):O=t[40];let k;t[41]!==i.assumptions||t[42]!==n.assumptions?(k=n.assumptions.length?(0,$.jsx)(Sr,{title:i.assumptions,items:n.assumptions}):null,t[41]=i.assumptions,t[42]=n.assumptions,t[43]=k):k=t[43];let A;t[44]!==i.risks||t[45]!==n.risks?(A=n.risks.length?(0,$.jsx)(Sr,{title:i.risks,items:n.risks}):null,t[44]=i.risks,t[45]=n.risks,t[46]=A):A=t[46];let j;t[47]!==i.permissions||t[48]!==n.permissionsSummary?(j=n.permissionsSummary.length?(0,$.jsx)(Sr,{title:i.permissions,items:n.permissionsSummary}):null,t[47]=i.permissions,t[48]=n.permissionsSummary,t[49]=j):j=t[49];let M;t[50]!==n.validation.errors||t[51]!==n.validation.valid?(M=n.validation.valid?null:(0,$.jsx)(`div`,{className:`mt-4 rounded-xl border border-danger/30 bg-danger/5 p-3 text-xs text-danger`,children:n.validation.errors.slice(0,4).map(xr)}),t[50]=n.validation.errors,t[51]=n.validation.valid,t[52]=M):M=t[52];let N=a||!n.validation.valid,F;t[53]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,$.jsx)(f,{className:`size-4`}),t[53]=F):F=t[53];let I=a?i.savingProposal:i.acceptAndSave,L;t[54]!==o||t[55]!==N||t[56]!==I?(L=(0,$.jsxs)(q,{variant:`primary`,disabled:N,onClick:o,children:[F,I]}),t[54]=o,t[55]=N,t[56]=I,t[57]=L):L=t[57];let R;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,$.jsx)(P,{className:`size-4`}),t[58]=R):R=t[58];let z;t[59]!==i.rejectProposal||t[60]!==s||t[61]!==a?(z=(0,$.jsxs)(q,{variant:`ghost`,disabled:a,onClick:s,children:[R,i.rejectProposal]}),t[59]=i.rejectProposal,t[60]=s,t[61]=a,t[62]=z):z=t[62];let B;t[63]!==L||t[64]!==z?(B=(0,$.jsxs)(`div`,{className:`mt-5 grid gap-2`,children:[L,z]}),t[63]=L,t[64]=z,t[65]=B):B=t[65];let V;return t[66]!==O||t[67]!==k||t[68]!==A||t[69]!==j||t[70]!==M||t[71]!==B||t[72]!==d?(V=(0,$.jsxs)(`section`,{children:[d,O,k,A,j,M,B]}),t[66]=O,t[67]=k,t[68]=A,t[69]=j,t[70]=M,t[71]=B,t[72]=d,t[73]=V):V=t[73],V}function xr(e){return(0,$.jsxs)(`p`,{children:[`• `,e.message]},`${e.code}:${e.message}`)}function Sr(e){let t=(0,Q.c)(9),{title:n,items:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`h3`,{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=r.slice(0,4).map(Cr),t[2]=r,t[3]=a);let o;t[4]===a?o=t[5]:(o=(0,$.jsx)(`ul`,{className:`mt-2 space-y-1 text-xs leading-5 text-fg-muted`,children:a}),t[4]=a,t[5]=o);let s;return t[6]!==i||t[7]!==o?(s=(0,$.jsxs)(`section`,{className:`mt-4`,children:[i,o]}),t[6]=i,t[7]=o,t[8]=s):s=t[8],s}function Cr(e){return(0,$.jsxs)(`li`,{children:[`• `,e]},e)}function wr(e){let t=(0,Q.c)(34),{data:n,selected:r}=e,i=n.workflowNode,a=n.diffState,o;t[0]===i.kind?o=t[1]:(o=i.kind===`input`?(0,$.jsx)(x,{}):i.kind===`agent`?(0,$.jsx)(he,{}):i.kind===`decision`?(0,$.jsx)(b,{}):i.kind===`merge`?(0,$.jsx)(dt,{}):(0,$.jsx)(Ne,{}),t[0]=i.kind,t[1]=o);let s=o,c=r?`border-accent ring-2 ring-accent/20`:`border-edge`,l=a===`added`&&`border-success ring-2 ring-success/15`,u=a===`changed`&&`border-accent ring-2 ring-accent/15`,d=a===`removed`&&`border-dashed border-danger opacity-55`,f;t[2]!==c||t[3]!==l||t[4]!==u||t[5]!==d?(f=I(`w-52 rounded-xl border bg-surface-panel p-3 shadow-surface transition-colors`,c,l,u,d),t[2]=c,t[3]=l,t[4]=u,t[5]=d,t[6]=f):f=t[6];let p;t[7]===i.kind?p=t[8]:(p=i.kind===`input`?null:(0,$.jsx)(It,{type:`target`,position:Nt.Left,className:`!size-2.5 !border-2 !border-surface-panel !bg-fg-subtle`}),t[7]=i.kind,t[8]=p);let m;t[9]===s?m=t[10]:(m=(0,$.jsx)(`span`,{className:`mt-0.5 [&>svg]:size-4 text-accent-fg`,children:s}),t[9]=s,t[10]=m);let h;t[11]===i.title?h=t[12]:(h=(0,$.jsx)(`strong`,{className:`block truncate text-sm font-medium text-fg`,children:i.title}),t[11]=i.title,t[12]=h);let g;t[13]!==i.description||t[14]!==i.kind?(g=i.description||Ir(i.kind),t[13]=i.description,t[14]=i.kind,t[15]=g):g=t[15];let _;t[16]===g?_=t[17]:(_=(0,$.jsx)(`span`,{className:`mt-1 block line-clamp-2 text-xs leading-4 text-fg-muted`,children:g}),t[16]=g,t[17]=_);let v;t[18]!==_||t[19]!==h?(v=(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[h,_]}),t[18]=_,t[19]=h,t[20]=v):v=t[20];let y;t[21]===a?y=t[22]:(y=a?(0,$.jsx)(`span`,{className:I(`rounded-full px-1.5 py-0.5 text-[10px] font-medium`,a===`added`?`bg-success-soft text-success`:a===`removed`?`bg-danger/10 text-danger`:`bg-accent-soft text-accent-fg`),children:a===`added`?`+`:a===`removed`?`−`:`Δ`}):null,t[21]=a,t[22]=y);let S;t[23]!==v||t[24]!==y||t[25]!==m?(S=(0,$.jsxs)(`div`,{className:`flex items-start gap-2`,children:[m,v,y]}),t[23]=v,t[24]=y,t[25]=m,t[26]=S):S=t[26];let C;t[27]===i.kind?C=t[28]:(C=i.kind===`decision`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(It,{id:`true`,type:`source`,position:Nt.Right,style:{top:`38%`},className:`!size-2.5 !border-2 !border-surface-panel !bg-success`}),(0,$.jsx)(It,{id:`false`,type:`source`,position:Nt.Right,style:{top:`70%`},className:`!size-2.5 !border-2 !border-surface-panel !bg-danger`})]}):i.kind===`output`?null:(0,$.jsx)(It,{type:`source`,position:Nt.Right,className:`!size-2.5 !border-2 !border-surface-panel !bg-accent`}),t[27]=i.kind,t[28]=C);let w;return t[29]!==S||t[30]!==C||t[31]!==f||t[32]!==p?(w=(0,$.jsxs)(`div`,{className:f,children:[p,S,C]}),t[29]=S,t[30]=C,t[31]=f,t[32]=p,t[33]=w):w=t[33],w}var Tr={workflow:wr};function Er(e){let t=(0,Q.c)(71),{node:n,copy:r,updateNode:i,onDelete:a}=e,o;t[0]!==n.id||t[1]!==i?(o=e=>i(n.id,t=>({...t,...e})),t[0]=n.id,t[1]=i,t[2]=o):o=t[2];let s=o,c;t[3]!==n.id||t[4]!==i?(c=e=>i(n.id,t=>({...t,config:{...t.config,...e}})),t[3]=n.id,t[4]=i,t[5]=c):c=t[5];let l=c,u;t[6]===r.stepSettings?u=t[7]:(u=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.stepSettings}),t[6]=r.stepSettings,t[7]=u);let d;t[8]!==r.remove||t[9]!==n.kind||t[10]!==a?(d=n.kind!==`input`&&n.kind!==`output`?(0,$.jsxs)(q,{variant:`ghost`,className:`h-8 px-2 text-danger`,onClick:a,children:[(0,$.jsx)(Se,{className:`size-3.5`}),r.remove]}):null,t[8]=r.remove,t[9]=n.kind,t[10]=a,t[11]=d):d=t[11];let f;t[12]!==u||t[13]!==d?(f=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[u,d]}),t[12]=u,t[13]=d,t[14]=f):f=t[14];let p;t[15]===r.stepName?p=t[16]:(p=(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg`,htmlFor:`node-title`,children:r.stepName}),t[15]=r.stepName,t[16]=p);let m;t[17]===s?m=t[18]:(m=e=>s({title:e.target.value}),t[17]=s,t[18]=m);let g;t[19]!==n.title||t[20]!==m?(g=(0,$.jsx)(`input`,{id:`node-title`,value:n.title,onChange:m,className:Dr}),t[19]=n.title,t[20]=m,t[21]=g):g=t[21];let _;t[22]===r.stepPurpose?_=t[23]:(_=(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg`,htmlFor:`node-description`,children:r.stepPurpose}),t[22]=r.stepPurpose,t[23]=_);let v=n.description??``,y;t[24]===s?y=t[25]:(y=e=>s({description:e.target.value}),t[24]=s,t[25]=y);let b;t[26]!==v||t[27]!==y?(b=(0,$.jsx)(`textarea`,{id:`node-description`,value:v,onChange:y,className:`${Dr} min-h-16 resize-y`}),t[26]=v,t[27]=y,t[28]=b):b=t[28];let x;t[29]!==r.advanced||t[30]!==r.defaultModel||t[31]!==r.instructions||t[32]!==r.model||t[33]!==n.config||t[34]!==n.kind||t[35]!==l?(x=n.kind===`agent`?(0,$.jsx)($.Fragment,{children:(0,$.jsxs)(`details`,{className:`mt-4 border-t border-edge pt-3`,children:[(0,$.jsx)(`summary`,{className:`cursor-pointer text-xs font-medium text-fg-muted`,children:r.advanced}),(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg`,htmlFor:`node-prompt`,children:r.instructions}),(0,$.jsx)(`textarea`,{id:`node-prompt`,value:String(n.config.prompt??``),onChange:e=>l({prompt:e.target.value}),className:`${Dr} min-h-36 resize-y`}),(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg`,htmlFor:`node-model`,children:r.model}),(0,$.jsx)(`input`,{id:`node-model`,value:String(n.config.model??``),onChange:e=>l({model:e.target.value||void 0}),placeholder:r.defaultModel,className:Dr})]})}):null,t[29]=r.advanced,t[30]=r.defaultModel,t[31]=r.instructions,t[32]=r.model,t[33]=n.config,t[34]=n.kind,t[35]=l,t[36]=x):x=t[36];let S;t[37]!==r.compareValue||t[38]!==r.condition||t[39]!==r.contains||t[40]!==r.equals||t[41]!==r.exists||t[42]!==r.notEquals||t[43]!==r.valuePath||t[44]!==n.config||t[45]!==n.kind||t[46]!==l?(S=n.kind===`decision`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg`,htmlFor:`decision-path`,children:r.valuePath}),(0,$.jsx)(`input`,{id:`decision-path`,value:n.config.rule?.path??``,onChange:e=>l({rule:{...n.config.rule??{operator:`exists`},path:e.target.value}}),placeholder:`result.approved`,className:Dr}),(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg`,id:`decision-operator-label`,children:r.condition}),(0,$.jsx)(h,{value:n.config.rule?.operator??`exists`,placeholder:r.condition,allowEmpty:!1,ariaLabelledBy:`decision-operator-label`,options:[{value:`exists`,label:r.exists},{value:`equals`,label:r.equals},{value:`not_equals`,label:r.notEquals},{value:`contains`,label:r.contains}],onChange:e=>l({rule:{...n.config.rule??{path:``},operator:e}})}),n.config.rule?.operator===`exists`?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg`,htmlFor:`decision-value`,children:r.compareValue}),(0,$.jsx)(`input`,{id:`decision-value`,value:String(n.config.rule?.value??``),onChange:e=>l({rule:{...n.config.rule,value:e.target.value}}),className:Dr})]})]}):null,t[37]=r.compareValue,t[38]=r.condition,t[39]=r.contains,t[40]=r.equals,t[41]=r.exists,t[42]=r.notEquals,t[43]=r.valuePath,t[44]=n.config,t[45]=n.kind,t[46]=l,t[47]=S):S=t[47];let C;t[48]!==r.combineAs||t[49]!==r.listResults||t[50]!==r.namedResults||t[51]!==n.config||t[52]!==n.kind||t[53]!==l?(C=n.kind===`merge`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg`,id:`merge-mode-label`,children:r.combineAs}),(0,$.jsx)(h,{value:String(n.config.mode??`object`),placeholder:r.combineAs,allowEmpty:!1,ariaLabelledBy:`merge-mode-label`,options:[{value:`object`,label:r.namedResults},{value:`array`,label:r.listResults}],onChange:e=>l({mode:e})})]}):null,t[48]=r.combineAs,t[49]=r.listResults,t[50]=r.namedResults,t[51]=n.config,t[52]=n.kind,t[53]=l,t[54]=C):C=t[54];let w;t[55]!==r.autoSummary||t[56]!==r.summaryTemplate||t[57]!==n.config||t[58]!==n.kind||t[59]!==l?(w=n.kind===`output`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg`,htmlFor:`output-summary`,children:r.summaryTemplate}),(0,$.jsx)(`textarea`,{id:`output-summary`,value:String(n.config.summary??``),onChange:e=>l({summary:e.target.value||void 0}),placeholder:r.autoSummary,className:`${Dr} min-h-20 resize-y`})]}):null,t[55]=r.autoSummary,t[56]=r.summaryTemplate,t[57]=n.config,t[58]=n.kind,t[59]=l,t[60]=w):w=t[60];let T;return t[61]!==b||t[62]!==x||t[63]!==S||t[64]!==C||t[65]!==w||t[66]!==f||t[67]!==p||t[68]!==g||t[69]!==_?(T=(0,$.jsxs)(`section`,{children:[f,p,g,_,b,x,S,C,w]}),t[61]=b,t[62]=x,t[63]=S,t[64]=C,t[65]=w,t[66]=f,t[67]=p,t[68]=g,t[69]=_,t[70]=T):T=t[70],T}var Dr=`mt-1 block h-10 w-full rounded-lg border border-edge bg-surface-inset px-3 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-edge-strong`;function Or(e,t=!1,n){return{id:e.id,type:`workflow`,position:e.position,selected:t,data:{workflowNode:e,diffState:n}}}function kr(e){return{id:e.id,source:e.source,target:e.target,sourceHandle:e.sourcePort===`true`||e.sourcePort===`false`?e.sourcePort:void 0,markerEnd:{type:jt.ArrowClosed},style:{stroke:`var(--color-fg-subtle)`,strokeWidth:1.5}}}function Ar(){return{schemaVersion:1,nodes:[{id:`input`,kind:`input`,title:`Input`,description:`What the user provides`,position:{x:0,y:120},config:{}},{id:`agent-1`,kind:`agent`,title:`Do the work`,description:`Understand and complete the request`,phaseId:`work`,position:{x:300,y:120},config:{prompt:`Complete this goal: {{goal}}
|
|
3
|
+
|
|
4
|
+
User input:
|
|
5
|
+
{{input}}`,maxIterations:12}},{id:`output`,kind:`output`,title:`Result`,description:`A clear answer for the user`,position:{x:620,y:120},config:{}}],edges:[{id:`input-agent`,source:`input`,target:`agent-1`},{id:`agent-output`,source:`agent-1`,target:`output`}]}}function jr(e,t,n){let r={x:280+n%3*280,y:80+Math.floor(n/3)*180};return e===`agent`?{id:t,kind:e,title:`New AI step`,description:`Describe what this step should accomplish`,phaseId:`work`,position:r,config:{prompt:`Use the previous results to complete this step:
|
|
6
|
+
{{predecessors}}`,maxIterations:12}}:e===`decision`?{id:t,kind:e,title:`Check a condition`,description:`Choose what happens next`,position:r,config:{rule:{path:``,operator:`exists`}}}:{id:t,kind:e,title:`Combine results`,description:`Bring parallel work together`,position:r,config:{mode:`object`}}}function Mr(e,t){let n=new Map;if(!t)return{addedIds:[],changedIds:[],removedIds:[],connectionChanges:0,nodeStates:n};let r=new Map(e.nodes.map(e=>[e.id,e])),i=new Map(t.nodes.map(e=>[e.id,e])),a=t.nodes.filter(e=>!r.has(e.id)).map(e=>e.id),o=e.nodes.filter(e=>!i.has(e.id)).map(e=>e.id),s=t.nodes.filter(e=>{let t=r.get(e.id);return t?Nr(t)!==Nr(e):!1}).map(e=>e.id);a.forEach(e=>n.set(e,`added`)),s.forEach(e=>n.set(e,`changed`)),o.forEach(e=>n.set(e,`removed`));let c=new Set(e.edges.map(Pr)),l=new Set(t.edges.map(Pr));return{addedIds:a,changedIds:s,removedIds:o,connectionChanges:e.edges.filter(e=>!l.has(Pr(e))).length+t.edges.filter(e=>!c.has(Pr(e))).length,nodeStates:n}}function Nr(e){let{position:t,...n}=e;return JSON.stringify(n)}function Pr(e){return`${e.source}:${e.sourcePort??``}->${e.target}`}function Fr(e){return e.toLowerCase().replace(/[^a-z0-9_-]+/g,`_`).replace(/^_+/,``)}function Ir(e){return{input:`User input`,agent:`AI step`,decision:`Decision`,merge:`Combine`,output:`User result`}[e]}function Lr(e){return e===`zh`?{untitled:`未命名工作流`,editTitle:`编辑工作流`,createTitle:`创建工作流`,subtitle:`描述目标、确认方案,然后用示例测试。无需编写代码。`,close:`关闭`,savingDraft:`正在保存草稿…`,savedDraft:`草稿已保存`,draftError:`草稿保存失败`,flowTitle:`工作流步骤图`,flowAria:`可编辑的工作流步骤图`,stepCount:e=>`${e} 个步骤 · 点击步骤可编辑`,emptyFlow:`还没有步骤。添加一个 AI 步骤开始设计。`,addAgent:`添加 AI 步骤`,addDecision:`添加判断`,addMerge:`合并结果`,canvasHint:`拖动步骤并连接圆点`,workflowName:`内部名称`,humanTitle:`用户看到的名称`,task:`这个工作流最终帮用户得到什么?`,versions:`版本记录`,currentVersion:`当前`,restore:`恢复为新版本`,restoring:`恢复中…`,selectNode:`选择一个步骤来编辑`,needsAttention:`发布前需要处理`,stepSettings:`步骤设置`,remove:`删除`,stepName:`步骤名称`,stepPurpose:`这一步的作用`,instructions:`告诉 AI 要做什么`,advanced:`高级设置`,model:`模型(可选)`,defaultModel:`使用智能默认值`,valuePath:`要检查的值`,condition:`判断条件`,exists:`存在`,equals:`等于`,notEquals:`不等于`,contains:`包含`,compareValue:`比较值`,combineAs:`合并方式`,namedResults:`按步骤名称组织`,listResults:`按列表组织`,summaryTemplate:`结果摘要(可选)`,autoSummary:`留空则自动生成`,aiPlaceholder:`例如:增加一个风险评审步骤,并与方案分析并行`,designing:`正在设计…`,applyWithAi:`让 AI 提出修改`,testGoal:`用什么例子测试?`,publish:`保存`,publishAndRun:`保存并测试`,introTitle:`你希望这个工作流持续帮你完成什么?`,introDescription:`直接描述最终目标。AI 会先给出一份可理解的步骤方案,只有你确认后才会保存。`,introPlaceholder:`例如:每周整理项目进展,识别风险,并生成一份可以发给团队的周报。`,examples:[`研究一个主题并给出可靠结论`,`评审需求并生成实现计划`,`分析问题、定位原因并给出修复建议`],designWorkflow:`生成方案`,manualStart:`高级:手动搭建`,proposalTitle:`AI 提出的方案`,proposalHint:`绿色是新增,蓝色是修改,红色虚线是删除。确认前不会改变现有工作流。`,added:`新增`,changed:`修改`,removed:`删除`,assumptions:`方案假设`,risks:`需要留意`,permissions:`需要的权限`,acceptAndSave:`采用并保存`,savingProposal:`正在保存…`,rejectProposal:`不采用,返回修改`}:{untitled:`Untitled workflow`,editTitle:`Edit workflow`,createTitle:`Create workflow`,subtitle:`Describe the task, review the plan, then test it with an example. No code required.`,close:`Close`,savingDraft:`Saving draft…`,savedDraft:`Draft saved`,draftError:`Draft could not be saved`,flowTitle:`Workflow map`,flowAria:`Editable workflow step map`,stepCount:e=>`${e} steps · select a step to edit`,emptyFlow:`No steps yet. Add an AI step to start designing.`,addAgent:`Add AI step`,addDecision:`Add decision`,addMerge:`Combine results`,canvasHint:`Drag steps and connect the dots`,workflowName:`Internal name`,humanTitle:`Name users see`,task:`What will this workflow help the user achieve?`,versions:`Version history`,currentVersion:`Current`,restore:`Restore as new`,restoring:`Restoring…`,selectNode:`Select a step to edit it`,needsAttention:`Needs attention before publishing`,stepSettings:`Step settings`,remove:`Remove`,stepName:`Step name`,stepPurpose:`Purpose of this step`,instructions:`Tell the AI what to do`,advanced:`Advanced settings`,model:`Model (optional)`,defaultModel:`Use smart default`,valuePath:`Value to check`,condition:`Condition`,exists:`Exists`,equals:`Equals`,notEquals:`Does not equal`,contains:`Contains`,compareValue:`Compare with`,combineAs:`Combine as`,namedResults:`Named results`,listResults:`List of results`,summaryTemplate:`Result summary (optional)`,autoSummary:`Leave blank to generate automatically`,aiPlaceholder:`For example: add a risk review in parallel with solution analysis`,designing:`Designing…`,applyWithAi:`Ask AI to propose changes`,testGoal:`What example should we test?`,publish:`Save`,publishAndRun:`Save & test`,introTitle:`What should this workflow keep doing for you?`,introDescription:`Describe the task in plain language. AI will propose an understandable plan and will not save anything until you approve it.`,introPlaceholder:`For example: summarize project progress every week, identify risks, and produce a team-ready update.`,examples:[`Research a topic and deliver a reliable conclusion`,`Review a request and produce an implementation plan`,`Analyze an issue, find the cause, and recommend a fix`],designWorkflow:`Generate plan`,manualStart:`Advanced: build manually`,proposalTitle:`AI proposal`,proposalHint:`Green is added, blue is changed, and dashed red is removed. Nothing changes until you approve.`,added:`Added`,changed:`Changed`,removed:`Removed`,assumptions:`Assumptions`,risks:`Things to check`,permissions:`Required access`,acceptAndSave:`Accept & save`,savingProposal:`Saving…`,rejectProposal:`Reject and revise`}}function Rr(e){let t=(0,Q.c)(25),{projectId:n,language:r,value:i,onChange:a}=e,o=F(r).workflows,s=F(r).projectDetailPage.board.operationalStates,c;t[0]===n?c=t[1]:(c=n?[`workflow-context-project`,n]:null,t[0]=n,t[1]=c);let l;t[2]===n?l=t[3]:(l=()=>ot(n),t[2]=n,t[3]=l);let u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(u={revalidateOnFocus:!1},t[4]=u):u=t[4];let d=te(c,l,u),f;t[5]===n?f=t[6]:(f=n?[`workflow-context-notes`,n]:null,t[5]=n,t[6]=f);let p;t[7]===n?p=t[8]:(p=()=>tt({projectId:n,limit:100,sortBy:`updatedAt`,sortOrder:`desc`}),t[7]=n,t[8]=p);let m;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(m={revalidateOnFocus:!1},t[9]=m):m=t[9];let h=te(f,p,m),g;t[10]!==a||t[11]!==i?(g=e=>{a(i.some(t=>t.kind===e.kind&&t.id===e.id)?i.filter(t=>t.kind!==e.kind||t.id!==e.id):[...i,e])},t[10]=a,t[11]=i,t[12]=g):g=t[12];let _=g,v;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsx)(E,{className:`size-3.5`,"aria-hidden":!0}),t[13]=v):v=t[13];let y;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsx)(z,{className:`xopc-dialog-overlay fixed inset-0 z-50 bg-scrim backdrop-blur-[2px]`}),t[14]=y):y=t[14];let b;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(P,{className:`size-4`}),t[15]=b):b=t[15];let x=d.isLoading||h.isLoading?(0,$.jsx)(`div`,{className:`grid gap-3`,children:Array.from({length:6},zr)}):d.error||h.error?(0,$.jsx)(`p`,{className:`rounded-xl border border-danger/30 bg-danger/5 p-4 text-sm text-danger`,children:o.contextPickerLoadFailed}):(0,$.jsxs)(`div`,{className:`space-y-6`,children:[(0,$.jsx)(Br,{title:o.contextTasks,icon:Ye,empty:o.contextTasksEmpty,items:(d.data?.tasks??[]).map(e=>({id:e.id,title:e.title,subtitle:s[e.operationalState]})),selected:i,kind:`task`,onToggle:_}),(0,$.jsx)(Br,{title:o.contextNotes,icon:De,empty:o.contextNotesEmpty,items:(h.data?.items??[]).map(e=>({id:e.id,title:e.title||o.contextUntitled,subtitle:e.snippet})),selected:i,kind:`note`,onToggle:_})]}),S;t[16]===x?S=t[17]:(S=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-5`,children:x}),t[16]=x,t[17]=S);let C=o.contextPickerCount.replace(`{{count}}`,String(i.length)),w;t[18]===C?w=t[19]:(w=(0,$.jsx)(`span`,{className:`text-xs text-fg-muted`,children:C}),t[18]=C,t[19]=w);let T;t[20]===o.contextPickerDone?T=t[21]:(T=(0,$.jsx)(H,{asChild:!0,children:(0,$.jsx)(q,{type:`button`,variant:`primary`,className:`h-9`,children:o.contextPickerDone})}),t[20]=o.contextPickerDone,t[21]=T);let D;return t[22]!==w||t[23]!==T?(D=(0,$.jsxs)(`footer`,{className:`flex shrink-0 items-center justify-between border-t border-edge px-5 py-3`,children:[w,T]}),t[22]=w,t[23]=T,t[24]=D):D=t[24],(0,$.jsxs)(K,{children:[(0,$.jsx)(B,{asChild:!0,children:(0,$.jsxs)(q,{type:`button`,variant:`secondary`,className:`h-9 w-full justify-between rounded-lg px-3 text-xs`,disabled:!n,children:[(0,$.jsx)(`span`,{children:o.contextPickerLabel}),(0,$.jsxs)(`span`,{className:`flex items-center gap-1 text-fg-muted`,children:[i.length?o.contextPickerCount.replace(`{{count}}`,String(i.length)):o.contextPickerEmpty,v]})]})}),(0,$.jsxs)(U,{children:[y,(0,$.jsxs)(W,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-50 flex h-[min(42rem,calc(100vh-2rem))] w-[min(44rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay shadow-xl`,children:[(0,$.jsxs)(`header`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-edge px-5 py-4`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(G,{className:`text-base font-semibold text-fg`,children:o.contextPickerTitle}),(0,$.jsx)(V,{className:`mt-1 text-xs text-fg-muted`,children:o.contextPickerDescription})]}),(0,$.jsx)(H,{asChild:!0,children:(0,$.jsx)(q,{type:`button`,variant:`ghost`,className:`size-8 p-0`,"aria-label":o.pickStartClose,children:b})})]}),S,D]})]})]})}function zr(e,t){return(0,$.jsx)(J,{className:`h-14 rounded-xl`},t)}function Br(e){let t=(0,Q.c)(14),{title:n,icon:r,empty:i,items:a,selected:o,kind:s,onToggle:c}=e,l;t[0]===r?l=t[1]:(l=(0,$.jsx)(r,{className:`size-4 text-fg-subtle`,"aria-hidden":!0}),t[0]=r,t[1]=l);let u;t[2]!==l||t[3]!==n?(u=(0,$.jsxs)(`h3`,{className:`flex items-center gap-2 text-sm font-semibold text-fg`,children:[l,n]}),t[2]=l,t[3]=n,t[4]=u):u=t[4];let d;t[5]!==i||t[6]!==a||t[7]!==s||t[8]!==c||t[9]!==o?(d=a.length?(0,$.jsx)(`div`,{className:`mt-2 grid gap-2 sm:grid-cols-2`,children:a.map(e=>{let t=o.some(t=>t.kind===s&&t.id===e.id);return(0,$.jsxs)(`button`,{type:`button`,className:I(`flex min-w-0 items-start gap-3 rounded-xl border p-3 text-left`,t?`border-accent bg-accent-soft`:`border-edge-subtle hover:bg-surface-hover`),"aria-pressed":t,onClick:()=>c({kind:s,id:e.id,role:s===`task`?`objective`:`reference`,title:e.title}),children:[(0,$.jsx)(`span`,{className:I(`mt-0.5 flex size-5 shrink-0 items-center justify-center rounded-md border`,t?`border-accent bg-accent text-on-accent`:`border-edge`),children:t?(0,$.jsx)(f,{className:`size-3.5`,"aria-hidden":!0}):null}),(0,$.jsxs)(`span`,{className:`min-w-0`,children:[(0,$.jsx)(`strong`,{className:`block truncate text-sm font-medium text-fg`,children:e.title}),e.subtitle?(0,$.jsx)(`span`,{className:`mt-0.5 line-clamp-2 block text-xs text-fg-muted`,children:e.subtitle}):null]})]},e.id)})}):(0,$.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:i}),t[5]=i,t[6]=a,t[7]=s,t[8]=c,t[9]=o,t[10]=d):d=t[10];let p;return t[11]!==u||t[12]!==d?(p=(0,$.jsxs)(`section`,{children:[u,d]}),t[11]=u,t[12]=d,t[13]=p):p=t[13],p}function Vr(e){let t=(0,Q.c)(54),{graph:n,language:r,className:i}=e,a;t[0]===r?a=t[1]:(a=Kr(r),t[0]=r,t[1]=a);let o=a,[s,c]=(0,Z.useState)(n.nodes.find(Hr)?.id??n.nodes[0]?.id),l;if(t[2]!==o.kind||t[3]!==n.nodes){let e;t[5]===o.kind?e=t[6]:(e=e=>({id:e.id,type:`definitionNode`,position:e.position,data:{definitionNode:e,kindLabel:o.kind[e.kind]}}),t[5]=o.kind,t[6]=e),l=n.nodes.map(e),t[2]=o.kind,t[3]=n.nodes,t[4]=l}else l=t[4];let u=l,d;if(t[7]!==o.no||t[8]!==o.yes||t[9]!==n.edges){let e;t[11]!==o.no||t[12]!==o.yes?(e=e=>({id:e.id,source:e.source,target:e.target,sourceHandle:e.sourcePort===`true`||e.sourcePort===`false`?e.sourcePort:void 0,label:e.sourcePort===`true`?o.yes:e.sourcePort===`false`?o.no:void 0,labelStyle:{fill:`var(--color-fg-subtle)`,fontSize:10},labelBgStyle:{fill:`var(--color-surface-panel)`,fillOpacity:.9},markerEnd:{type:jt.ArrowClosed},style:{stroke:`var(--color-fg-subtle)`,strokeWidth:1.5}}),t[11]=o.no,t[12]=o.yes,t[13]=e):e=t[13],d=n.edges.map(e),t[7]=o.no,t[8]=o.yes,t[9]=n.edges,t[10]=d}else d=t[10];let f=d,p=n.nodes,m,h,g,_,v,y;if(t[14]!==i||t[15]!==o.ariaLabel||t[16]!==o.empty||t[17]!==o.kind||t[18]!==o.selectHint||t[19]!==f||t[20]!==n.nodes||t[21]!==u||t[22]!==s){m=Symbol.for(`react.early_return_sentinel`);bb0:{let e;t[29]===s?e=t[30]:(e=e=>e.id===s,t[29]=s,t[30]=e);let r=p.find(e);if(n.nodes.length===0){let e;t[31]===i?e=t[32]:(e=I(`flex min-h-72 items-center justify-center bg-surface-base/40 px-6 text-center text-sm text-fg-muted`,i),t[31]=i,t[32]=e);let n;t[33]!==o.empty||t[34]!==e?(n=(0,$.jsx)(`div`,{className:e,children:o.empty}),t[33]=o.empty,t[34]=e,t[35]=n):n=t[35],m=n;break bb0}t[36]===i?_=t[37]:(_=I(`overflow-hidden bg-surface-base/45`,i),t[36]=i,t[37]=_),v=o.ariaLabel;let a;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(a=(e,t)=>c(t.id),t[38]=a):a=t[38];let l;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(l={padding:.24,minZoom:.45,maxZoom:1},t[39]=l):l=t[39];let d,b,x;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(d={hideAttribution:!0},b=(0,$.jsx)(Rt,{color:`var(--color-edge)`,gap:22,size:1}),x=(0,$.jsx)(Pt,{showInteractive:!1,className:`!border-edge !bg-surface-panel !shadow-surface`}),t[40]=d,t[41]=b,t[42]=x):(d=t[40],b=t[41],x=t[42]),t[43]!==f||t[44]!==u?(y=(0,$.jsx)(`div`,{className:`h-[22rem] min-h-72`,children:(0,$.jsxs)(Ft,{nodes:u,edges:f,nodeTypes:Gr,nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!0,onNodeClick:a,fitView:!0,fitViewOptions:l,minZoom:.3,maxZoom:1.25,panOnScroll:!0,zoomOnDoubleClick:!1,proOptions:d,children:[b,x]})}),t[43]=f,t[44]=u,t[45]=y):y=t[45],h=`flex min-h-16 items-start gap-3 border-t border-edge bg-surface-panel px-4 py-3`,g=r?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{className:`mt-0.5 flex size-7 shrink-0 items-center justify-center rounded-lg bg-accent-soft text-accent-fg`,children:Wr(r.kind)}),(0,$.jsxs)(`span`,{className:`min-w-0`,children:[(0,$.jsx)(`strong`,{className:`block text-sm font-medium text-fg`,children:r.title}),(0,$.jsx)(`span`,{className:`mt-0.5 block text-xs leading-5 text-fg-muted`,children:r.description||o.kind[r.kind]})]})]}):(0,$.jsx)(`span`,{className:`text-xs text-fg-muted`,children:o.selectHint})}t[14]=i,t[15]=o.ariaLabel,t[16]=o.empty,t[17]=o.kind,t[18]=o.selectHint,t[19]=f,t[20]=n.nodes,t[21]=u,t[22]=s,t[23]=m,t[24]=h,t[25]=g,t[26]=_,t[27]=v,t[28]=y}else m=t[23],h=t[24],g=t[25],_=t[26],v=t[27],y=t[28];if(m!==Symbol.for(`react.early_return_sentinel`))return m;let b;t[46]!==h||t[47]!==g?(b=(0,$.jsx)(`div`,{className:h,children:g}),t[46]=h,t[47]=g,t[48]=b):b=t[48];let x;return t[49]!==b||t[50]!==_||t[51]!==v||t[52]!==y?(x=(0,$.jsxs)(`section`,{className:_,"aria-label":v,children:[y,b]}),t[49]=b,t[50]=_,t[51]=v,t[52]=y,t[53]=x):x=t[53],x}function Hr(e){return e.kind===`agent`}function Ur(e){let t=(0,Q.c)(25),{data:n,selected:r}=e,i=n.definitionNode,a=r?`border-accent ring-2 ring-accent/20`:`border-edge`,o;t[0]===a?o=t[1]:(o=I(`w-48 rounded-xl border bg-surface-panel p-3 shadow-surface transition-colors`,a),t[0]=a,t[1]=o);let s;t[2]===i.kind?s=t[3]:(s=i.kind===`input`?null:(0,$.jsx)(It,{type:`target`,position:Nt.Left,className:`!invisible`}),t[2]=i.kind,t[3]=s);let c;t[4]===i.kind?c=t[5]:(c=Wr(i.kind),t[4]=i.kind,t[5]=c);let l;t[6]===c?l=t[7]:(l=(0,$.jsx)(`span`,{className:`mt-0.5 flex size-7 shrink-0 items-center justify-center rounded-lg bg-accent-soft text-accent-fg`,children:c}),t[6]=c,t[7]=l);let u;t[8]===i.title?u=t[9]:(u=(0,$.jsx)(`strong`,{className:`block truncate text-sm font-medium text-fg`,children:i.title}),t[8]=i.title,t[9]=u);let d;t[10]===n.kindLabel?d=t[11]:(d=(0,$.jsx)(`span`,{className:`mt-1 block text-xs text-fg-subtle`,children:n.kindLabel}),t[10]=n.kindLabel,t[11]=d);let f;t[12]!==u||t[13]!==d?(f=(0,$.jsxs)(`span`,{className:`min-w-0`,children:[u,d]}),t[12]=u,t[13]=d,t[14]=f):f=t[14];let p;t[15]!==l||t[16]!==f?(p=(0,$.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[l,f]}),t[15]=l,t[16]=f,t[17]=p):p=t[17];let m;t[18]===i.kind?m=t[19]:(m=i.kind===`decision`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(It,{id:`true`,type:`source`,position:Nt.Right,style:{top:`38%`},className:`!invisible`}),(0,$.jsx)(It,{id:`false`,type:`source`,position:Nt.Right,style:{top:`70%`},className:`!invisible`})]}):i.kind===`output`?null:(0,$.jsx)(It,{type:`source`,position:Nt.Right,className:`!invisible`}),t[18]=i.kind,t[19]=m);let h;return t[20]!==m||t[21]!==o||t[22]!==s||t[23]!==p?(h=(0,$.jsxs)(`div`,{className:o,children:[s,p,m]}),t[20]=m,t[21]=o,t[22]=s,t[23]=p,t[24]=h):h=t[24],h}function Wr(e){return e===`input`?(0,$.jsx)(x,{className:`size-4`,"aria-hidden":!0}):e===`agent`?(0,$.jsx)(he,{className:`size-4`,"aria-hidden":!0}):e===`decision`?(0,$.jsx)(b,{className:`size-4`,"aria-hidden":!0}):e===`merge`?(0,$.jsx)(dt,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(Ne,{className:`size-4`,"aria-hidden":!0})}var Gr={definitionNode:Ur};function Kr(e){return e===`zh`?{ariaLabel:`工作流步骤图`,empty:`这个工作流还没有可展示的步骤。`,selectHint:`点击步骤查看它的作用。`,yes:`是`,no:`否`,kind:{input:`任务输入`,agent:`AI 执行`,decision:`条件判断`,merge:`汇总结果`,output:`最终结果`}}:{ariaLabel:`Workflow step map`,empty:`This workflow has no steps to display yet.`,selectHint:`Select a step to see what it does.`,yes:`Yes`,no:`No`,kind:{input:`Task input`,agent:`AI work`,decision:`Decision`,merge:`Combine results`,output:`Deliverable`}}}function qr(e){let t=(0,Q.c)(54),{graph:n,view:r,language:i,onRepair:a}=e,[o,s]=(0,Z.useState)(),c=(0,Z.useRef)(null),l=(0,Z.useRef)(void 0),u;t[0]===i?u=t[1]:(u=ni(i),t[0]=i,t[1]=u);let d=u,p;t[2]===r.nodes?p=t[3]:(p=new Map(r.nodes.map(Qr)),t[2]=r.nodes,t[3]=p);let m=p,h;if(t[4]!==n.nodes||t[5]!==m){let e;t[7]===m?e=t[8]:(e=e=>({id:e.id,type:`runNode`,position:e.position,data:{definitionNode:e,runNode:m.get(e.id)}}),t[7]=m,t[8]=e),h=n.nodes.map(e),t[4]=n.nodes,t[5]=m,t[6]=h}else h=t[6];let g=h,_;if(t[9]!==n.edges||t[10]!==m){let e;t[12]===m?e=t[13]:(e=e=>({id:e.id,source:e.source,target:e.target,sourceHandle:e.sourcePort===`true`||e.sourcePort===`false`?e.sourcePort:void 0,markerEnd:{type:jt.ArrowClosed},animated:m.get(e.source)?.status===`running`,style:{stroke:m.get(e.source)?.status===`done`?`var(--color-success)`:`var(--color-fg-subtle)`,strokeWidth:1.5}}),t[12]=m,t[13]=e),_=n.edges.map(e),t[9]=n.edges,t[10]=m,t[11]=_}else _=t[11];let v=_,y;t[14]!==o||t[15]!==m?(y=o?m.get(o):void 0,t[14]=o,t[15]=m,t[16]=y):y=t[16];let b=y,x;t[17]!==n.nodes||t[18]!==o?(x=o?n.nodes.find(e=>e.id===o):void 0,t[17]=n.nodes,t[18]=o,t[19]=x):x=t[19];let S=x,C;t[20]===r.nodes?C=t[21]:(C=r.nodes.some(Zr),t[20]=r.nodes,t[21]=C);let w=C,T,E;t[22]===r.nodes?(T=t[23],E=t[24]):(T=()=>{let e=r.nodes.find(Xr)??r.nodes.find(Yr)??[...r.nodes].reverse().find(Jr);if(!e||l.current===e.id)return;l.current=e.id,s(e.id);let t=window.requestAnimationFrame(()=>{c.current?.fitView({nodes:[{id:e.id}],padding:1.4,minZoom:.65,maxZoom:1,duration:300})});return()=>window.cancelAnimationFrame(t)},E=[r.nodes],t[22]=r.nodes,t[23]=T,t[24]=E),(0,Z.useEffect)(T,E);let D;t[25]===d.title?D=t[26]:(D=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:d.title}),t[25]=d.title,t[26]=D);let O;t[27]===d.hint?O=t[28]:(O=(0,$.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-subtle`,children:d.hint}),t[27]=d.hint,t[28]=O);let k;t[29]!==D||t[30]!==O?(k=(0,$.jsxs)(`div`,{children:[D,O]}),t[29]=D,t[30]=O,t[31]=k):k=t[31];let A;t[32]!==d.repair||t[33]!==w||t[34]!==a?(A=w&&a?(0,$.jsxs)(q,{variant:`secondary`,className:`h-8 text-xs`,onClick:a,children:[(0,$.jsx)(_e,{className:`size-3.5`}),d.repair]}):null,t[32]=d.repair,t[33]=w,t[34]=a,t[35]=A):A=t[35];let j;t[36]!==k||t[37]!==A?(j=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-edge px-4 py-3`,children:[k,A]}),t[36]=k,t[37]=A,t[38]=j):j=t[38];let M,N;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(M=(e,t)=>s(t.id),N=e=>{c.current=e},t[39]=M,t[40]=N):(M=t[39],N=t[40]);let P,F;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(P={hideAttribution:!0},F=(0,$.jsx)(Rt,{color:`var(--color-edge)`,gap:22,size:1}),t[41]=P,t[42]=F):(P=t[41],F=t[42]);let L;t[43]!==v||t[44]!==g?(L=(0,$.jsx)(`div`,{className:`h-[28rem]`,children:(0,$.jsx)(Ft,{nodes:g,edges:v,nodeTypes:ti,nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!0,onNodeClick:M,onInit:N,fitView:!0,minZoom:.3,maxZoom:1.25,panOnScroll:!0,zoomOnDoubleClick:!1,proOptions:P,children:F})}),t[43]=v,t[44]=g,t[45]=L):L=t[45];let R;t[46]!==d.status||t[47]!==b||t[48]!==S?(R=b?(0,$.jsxs)(`div`,{className:I(`flex items-start gap-2 border-t border-edge px-4 py-3 text-xs`,b.status===`error`?`text-danger`:`text-fg-muted`),children:[b.status===`error`?(0,$.jsx)(se,{className:`mt-0.5 size-3.5 shrink-0`}):b.status===`done`?(0,$.jsx)(f,{className:`mt-0.5 size-3.5 shrink-0 text-success`}):null,(0,$.jsxs)(`span`,{children:[(0,$.jsx)(`strong`,{className:`font-medium text-fg`,children:b.title}),S?.description?(0,$.jsx)(`span`,{className:`block pt-0.5 text-fg-subtle`,children:S.description}):null,(0,$.jsx)(`span`,{className:`block pt-1`,children:b.error||b.resultPreview||d.status[b.status]})]})]}):null,t[46]=d.status,t[47]=b,t[48]=S,t[49]=R):R=t[49];let z;return t[50]!==j||t[51]!==L||t[52]!==R?(z=(0,$.jsxs)(`section`,{className:`mt-5 overflow-hidden rounded-2xl border border-edge bg-surface-base/35`,children:[j,L,R]}),t[50]=j,t[51]=L,t[52]=R,t[53]=z):z=t[53],z}function Jr(e){return e.status===`done`}function Yr(e){return e.status===`error`}function Xr(e){return e.status===`running`}function Zr(e){return e.status===`error`}function Qr(e){return[e.id,e]}function $r(e){let t=(0,Q.c)(30),{data:n,selected:r}=e,i=n.definitionNode,a=n.runNode?.status??`pending`,o;t[0]===i.kind?o=t[1]:(o=i.kind===`input`?(0,$.jsx)(x,{}):i.kind===`agent`?(0,$.jsx)(he,{}):i.kind===`decision`?(0,$.jsx)(b,{}):i.kind===`merge`?(0,$.jsx)(dt,{}):(0,$.jsx)(Ne,{}),t[0]=i.kind,t[1]=o);let s=o,c=a===`running`&&`border-accent ring-2 ring-accent/20`,l=a===`done`&&`border-success/50`,u=a===`error`&&`border-danger ring-2 ring-danger/15`,d=(a===`pending`||a===`skipped`)&&`border-edge opacity-70`,f=r&&`ring-2 ring-accent/25`,p;t[2]!==c||t[3]!==l||t[4]!==u||t[5]!==d||t[6]!==f?(p=I(`w-48 rounded-xl border bg-surface-panel px-3 py-2.5 shadow-surface`,c,l,u,d,f),t[2]=c,t[3]=l,t[4]=u,t[5]=d,t[6]=f,t[7]=p):p=t[7];let m;t[8]===i.kind?m=t[9]:(m=i.kind===`input`?null:(0,$.jsx)(It,{type:`target`,position:Nt.Left,className:`!invisible`}),t[8]=i.kind,t[9]=m);let h;t[10]===s?h=t[11]:(h=(0,$.jsx)(`span`,{className:`[&>svg]:size-4 text-fg-subtle`,children:s}),t[10]=s,t[11]=h);let g;t[12]===i.title?g=t[13]:(g=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm font-medium text-fg`,children:i.title}),t[12]=i.title,t[13]=g);let _;t[14]===a?_=t[15]:(_=(0,$.jsx)(ei,{status:a}),t[14]=a,t[15]=_);let v;t[16]!==g||t[17]!==_||t[18]!==h?(v=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[h,g,_]}),t[16]=g,t[17]=_,t[18]=h,t[19]=v):v=t[19];let y;t[20]===i.description?y=t[21]:(y=i.description?(0,$.jsx)(`p`,{className:`mt-1.5 line-clamp-2 text-xs leading-4 text-fg-muted`,children:i.description}):null,t[20]=i.description,t[21]=y);let S;t[22]===i.kind?S=t[23]:(S=i.kind===`decision`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(It,{id:`true`,type:`source`,position:Nt.Right,className:`!invisible`}),(0,$.jsx)(It,{id:`false`,type:`source`,position:Nt.Right,className:`!invisible`})]}):i.kind===`output`?null:(0,$.jsx)(It,{type:`source`,position:Nt.Right,className:`!invisible`}),t[22]=i.kind,t[23]=S);let C;return t[24]!==v||t[25]!==y||t[26]!==S||t[27]!==p||t[28]!==m?(C=(0,$.jsxs)(`div`,{className:p,children:[m,v,y,S]}),t[24]=v,t[25]=y,t[26]=S,t[27]=p,t[28]=m,t[29]=C):C=t[29],C}function ei(e){let t=(0,Q.c)(4),{status:n}=e;if(n===`done`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`span`,{className:`flex size-5 items-center justify-center rounded-full bg-success-soft text-success`,children:(0,$.jsx)(f,{className:`size-3`})}),t[0]=e):e=t[0],e}if(n===`error`){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`span`,{className:`flex size-5 items-center justify-center rounded-full bg-danger/10 text-danger`,children:(0,$.jsx)(se,{className:`size-3`})}),t[1]=e):e=t[1],e}if(n===`running`){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`span`,{className:`size-2.5 animate-pulse rounded-full bg-accent motion-reduce:animate-none`}),t[2]=e):e=t[2],e}let r;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(`span`,{className:`size-2 rounded-full bg-edge-strong`}),t[3]=r):r=t[3],r}var ti={runNode:$r};function ni(e){return e===`zh`?{title:`运行过程`,hint:`点选步骤查看当前结果;画布会随着执行自动更新。`,repair:`修复这个工作流`,status:{pending:`等待中`,running:`执行中`,done:`已完成`,error:`失败`,skipped:`已跳过`}}:{title:`Live workflow`,hint:`Select a step to inspect it. The canvas updates as work progresses.`,repair:`Repair workflow`,status:{pending:`Waiting`,running:`Running`,done:`Completed`,error:`Failed`,skipped:`Skipped`}}}function ri(e,t){return t.status[e]??e}function ii(e,t){return t.phaseStatus[e]??e}function ai(e,t){let{run:n}=e;return n.status===`succeeded`?ve(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:ve(t.runSummaryActive,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}function oi(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 si(e){return ft(e)}function ci({view:e,comparison:t,loading:n,language:r,localeTag:i,activeTab:o,onTabChange:s,onCancel:c,onRetry:l,onReplay:u,onOpenRunId:d,ownerAgentId:p,onRepairWorkflow:m}){let h=F(r).workflows,v=ie(r),b=a(),[x,S]=(0,Z.useState)(!1),[C,T]=(0,Z.useState)(!1),[E,D]=(0,Z.useState)(null),[O,k]=(0,Z.useState)(!1),[A,j]=(0,Z.useState)(null),[M,P]=(0,Z.useState)(null),[,L]=(0,Z.useState)(0),R=e?.run.status,z=R?ne.has(R):!1;(0,Z.useEffect)(()=>{e?.run.id&&(S(!1),j(null))},[e?.run.id,z,R,e?.run.metrics.errorAgentCount]),(0,Z.useEffect)(()=>{if(!z)return;let e=window.setInterval(()=>L(e=>e+1),1e3);return()=>window.clearInterval(e)},[z]);let B=(0,Z.useMemo)(()=>e?ht(e):null,[e]),V=(0,Z.useMemo)(()=>B?Ue(B):{phases:[],unphased:null},[B]),H=(0,Z.useMemo)(()=>E==null||!B?null:B.agents.find(e=>e.id===E)??null,[E,B]);(0,Z.useEffect)(()=>{B?.runId&&D((B.agents.find(e=>e.status===`error`||e.status===`skipped`)??B.agents.find(e=>e.status===`running`)??null)?.id??null)},[B?.runId]);let U=(0,Z.useCallback)(e=>{D(e.id)},[]),W=(0,Z.useMemo)(()=>e?pe(e):[],[e]),G=e?ge(e.run.result):void 0,K=G?Ai(G):null,te=G?Ce(G):``,Y=!!G,re=(0,Z.useCallback)(async()=>{Y&&await ee(te)&&(k(!0),window.setTimeout(()=>k(!1),1500))},[Y,te]),ae=(0,Z.useCallback)(()=>{if(!Y||!e)return;let t=new Blob([te],{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)},[Y,te,e]),oe=(0,Z.useCallback)(()=>{if(!e)return;let t=si(e);t&&b(Le(t))},[b,e]),se=(0,Z.useCallback)(async t=>{if(e){j(null),P(t.id);try{Oi(await it(e.run.id,t.id,{ownerAgentId:p}),t.name||t.id)}catch(e){j(e instanceof Error?e.message:String(e))}finally{P(null)}}},[p,e]),ce=(0,Z.useCallback)(t=>{if(!e||!t.prompt)return;let n=si(e);if(!n){ee(t.prompt);return}b(Le(n,t.prompt))},[b,e]),le=(0,Z.useCallback)(e=>{if(e.kind===`copy_result`){re();return}if(e.kind===`open_artifact`){let t=Mi(e.payload),n=K?.artifacts.find(e=>e.id===t||e.name===t);n&&se(n);return}let t=Mi(e.payload),n=K?.followUps.find(e=>e.id===t);if(n?.prompt){ce(n);return}let r=Ni(e.payload);r&&ce({id:e.id,title:e.label,prompt:r})},[re,se,ce,K?.artifacts,K?.followUps]),ue=(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]),de=e?si(e):null,me=K?.actions.filter(e=>Pi(e,K))??[],he=me.some(e=>e.kind===`copy_result`);if(n)return(0,$.jsx)(`main`,{className:`min-h-0 flex-1 overflow-y-auto bg-surface-panel p-5`,children:(0,$.jsxs)(`div`,{className:`mx-auto w-full max-w-6xl`,"aria-busy":!0,children:[(0,$.jsx)(J,{className:`h-8 w-72 max-w-full`}),(0,$.jsx)(J,{className:`mt-4 h-28 rounded-2xl`}),(0,$.jsx)(J,{className:`mt-5 h-[28rem] rounded-2xl`})]})});if(!e||!B)return null;let{run:X}=e,be=e.controls.canCancel&&z,xe=z&&X.startedAtMs!=null?Me(Date.now()-X.startedAtMs):Me(X.metrics.durationMs??void 0),Se=ai(e,h),we=oi(e,h),Te=e.controls.canRetry&&e.agents.some(e=>(e.status===`error`||e.status===`skipped`)&&e.prompt?.trim()),Ee=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())),De=X.goal?.trim()||X.title,Oe=e.nodes.find(e=>e.status===`running`)??e.nodes.find(e=>e.status===`error`)??[...e.nodes].reverse().find(e=>e.status===`done`),ke=Oe?.kind===`output`&&!Oe.error?G?.summary??Oe.resultPreview:null,Ae=ke??(Oe?Oe.error||(r===`zh`?`${Oe.status===`running`?`正在执行`:Oe.status===`done`?`刚刚完成`:`需要处理`}:${Oe.title}`:`${Oe.status===`running`?`Working on`:Oe.status===`done`?`Just completed`:`Needs attention`}: ${Oe.title}`):Se),je=W.length>0||!!we,Ne=(X.status===`failed`||X.status===`timeout`)&&!!m;return(0,$.jsx)(`main`,{className:`min-h-0 flex-1 overflow-y-auto bg-surface-panel`,children:(0,$.jsxs)(`section`,{className:`mx-auto w-full max-w-6xl 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:De}),(0,$.jsx)(`span`,{className:I(`rounded-full px-2 py-0.5 text-xs font-medium`,Pe(X.status)),children:ri(X.status,h)})]}),(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:[X.title,` · `,X.definitionId]}),(0,$.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:Se}),we?(0,$.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-fg-subtle`,children:we}):null,(0,$.jsxs)(`div`,{className:I(`mt-4 rounded-xl border px-3 py-2.5`,Oe?.status===`error`?`border-danger/30 bg-danger/5`:`border-accent/20 bg-accent-soft/50`),children:[(0,$.jsx)(`div`,{className:`text-[11px] font-medium uppercase tracking-wide text-fg-subtle`,children:r===`zh`?`当前状态`:`Current status`}),ke?(0,$.jsx)(`div`,{className:`mt-2 max-h-40 overflow-hidden [mask-image:linear-gradient(to_bottom,black_calc(100%-1.5rem),transparent)]`,children:(0,$.jsx)(y,{content:Ae,compact:!0,className:`workflow-status-markdown`,codeCopy:!1,renderMermaid:!1})}):(0,$.jsx)(`p`,{className:`mt-1 text-sm font-medium text-fg`,children:Ae})]})]})}),(0,$.jsxs)(`dl`,{className:`mt-4 grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,children:[(0,$.jsx)(zi,{label:h.metrics.startedAt,value:fe(X.startedAtMs??X.createdAtMs,i)}),(0,$.jsx)(zi,{label:h.metrics.duration,value:xe}),(0,$.jsx)(zi,{label:h.metrics.agents,value:ve(h.agentProgress,{done:X.metrics.doneAgentCount,total:X.metrics.agentCount})}),(0,$.jsx)(zi,{label:h.metrics.artifacts,value:String(X.metrics.artifactCount)})]})]}),(0,$.jsx)(ui,{activeTab:o,onChange:s,labels:h,artifactCount:K?.artifacts.length??e.artifacts.length,language:r,showSource:!!X.metadata?.definition}),o===`result`?(0,$.jsxs)(`section`,{className:`mt-5 space-y-4`,children:[Y?(0,$.jsxs)(`section`,{className:`overflow-hidden rounded-2xl border border-edge bg-surface-base`,children:[(0,$.jsxs)(`header`,{className:`flex flex-col gap-3 border-b border-edge-subtle bg-surface-panel/45 px-4 py-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:h.resultTitle}),(0,$.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-subtle`,children:h.resultReadyHint})]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[de?(0,$.jsxs)(q,{variant:`primary`,className:`h-8 text-xs`,onClick:oe,children:[(0,$.jsx)(w,{className:`size-3.5`,"aria-hidden":!0}),h.continueInChat]}):null,me.map(e=>(0,$.jsx)(q,{variant:`secondary`,className:`h-8 text-xs`,onClick:()=>le(e),children:e.label},e.id)),he?null:(0,$.jsxs)(q,{variant:`secondary`,className:`h-8 text-xs`,onClick:re,children:[O?(0,$.jsx)(f,{className:`size-3.5`,"aria-hidden":!0}):(0,$.jsx)(g,{className:`size-3.5`,"aria-hidden":!0}),O?h.copied:h.copyResult]}),(0,$.jsxs)(q,{variant:`secondary`,className:`h-8 text-xs`,onClick:ae,children:[(0,$.jsx)(_,{className:`size-3.5`,"aria-hidden":!0}),h.exportResult]})]})]}),(0,$.jsx)(`div`,{className:`px-5 py-6 sm:px-8 sm:py-8`,children:(0,$.jsx)(`div`,{className:`mx-auto w-full max-w-4xl`,children:(0,$.jsx)(Ze,{result:G,labels:v.result})})})]}):X.status!==`failed`&&X.status!==`timeout`?(0,$.jsx)(`div`,{className:`rounded-xl border border-dashed border-edge p-4 text-sm text-fg-muted`,children:h.noResult}):null,X.status===`failed`||X.status===`timeout`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`section`,{className:`flex flex-col gap-3 rounded-2xl border border-amber-500/25 bg-amber-500/5 p-4 sm:flex-row sm:items-center sm:justify-between`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:h.recoveryActionsTitle}),(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:we})]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[Ne?(0,$.jsxs)(q,{variant:`primary`,onClick:m,children:[(0,$.jsx)(N,{className:`size-4`,"aria-hidden":!0}),r===`zh`?`让 AI 修复`:`Fix with AI`]}):null,Te?(0,$.jsxs)(q,{variant:`secondary`,onClick:()=>u(`failed_agents`),children:[(0,$.jsx)(_e,{className:`size-4`,"aria-hidden":!0}),h.replayFailedAgents]}):null,Ee?(0,$.jsxs)(q,{variant:`secondary`,onClick:()=>u(`failed_phases`),children:[(0,$.jsx)(_e,{className:`size-4`,"aria-hidden":!0}),h.replayFailedPhases]}):null,e.controls.canRetry?(0,$.jsxs)(q,{variant:`secondary`,onClick:l,children:[(0,$.jsx)(_e,{className:`size-4`,"aria-hidden":!0}),h.rerun]}):null]})]}),(0,$.jsx)(xi,{view:e,language:r})]}):null,K?(0,$.jsx)(Di,{task:K,labels:h,downloadingArtifactId:M,downloadError:A,onCopyText:e=>void ee(e),onDownloadArtifact:e=>void se(e),onStartFollowUp:ce,compact:!0}):null,be?(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsxs)(q,{variant:`secondary`,onClick:c,className:`text-red-600 dark:text-red-300`,children:[(0,$.jsx)(ye,{className:`size-4`,"aria-hidden":!0}),h.cancel]})}):null]}):null,o===`process`?(0,$.jsxs)($.Fragment,{children:[e.run.metadata?.definition.graph?(0,$.jsx)(qr,{graph:e.run.metadata.definition.graph,view:e,language:r,onRepair:m}):null,je?(0,$.jsx)(li,{diagnostics:W,labels:h,hint:we,onOpenAgent:ue}):null,(0,$.jsx)(di,{snapshot:B,rollup:V,view:e,labels:h,cardLabels:v,isActive:z,processExpanded:x,logsExpanded:C,selectedAgentId:E,selectedAgent:H,durationText:xe,onToggleProcess:()=>S(e=>!e),onToggleLogs:()=>T(e=>!e),onSelectAgent:U}),(0,$.jsx)(_i,{view:e,comparison:t,labels:h,onOpenRunId:d}),(0,$.jsx)(vi,{view:e,labels:h})]}):null,o===`artifacts`?(0,$.jsx)(Di,{task:K,labels:h,downloadingArtifactId:M,downloadError:A,onCopyText:e=>void ee(e),onDownloadArtifact:e=>void se(e),onStartFollowUp:ce}):null,o===`source`&&X.metadata?.definition?(0,$.jsx)(Yn,{initialSource:nr(er(X.metadata.definition)),resetKey:`${X.id}:${X.metadata.definition.revision}`,fileName:`${X.definitionId}-${X.id.slice(0,8)}.workflow.json`,language:r,className:`mt-5 h-[36rem]`}):null]})})}function li(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)(se,{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:gi(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)(q,{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 ui(e){let t=(0,Q.c)(20),{activeTab:n,onChange:r,labels:i,artifactCount:a,language:o,showSource:s}=e,c;t[0]===i.resultTitle?c=t[1]:(c={id:`result`,label:i.resultTitle},t[0]=i.resultTitle,t[1]=c);let l;t[2]===i.process?l=t[3]:(l={id:`process`,label:i.process},t[2]=i.process,t[3]=l);let u=a||void 0,d;t[4]!==i.taskArtifacts||t[5]!==u?(d={id:`artifacts`,label:i.taskArtifacts,count:u},t[4]=i.taskArtifacts,t[5]=u,t[6]=d):d=t[6];let f;t[7]!==o||t[8]!==s?(f=s?[{id:`source`,label:o===`zh`?`执行定义`:`Run definition`}]:[],t[7]=o,t[8]=s,t[9]=f):f=t[9];let p;t[10]!==c||t[11]!==l||t[12]!==d||t[13]!==f?(p=[c,l,d,...f],t[10]=c,t[11]=l,t[12]=d,t[13]=f,t[14]=p):p=t[14];let m=p,h;return t[15]!==n||t[16]!==i.taskActionsAria||t[17]!==r||t[18]!==m?(h=(0,$.jsx)(`div`,{className:`mt-5 flex overflow-x-auto border-b border-edge pb-2`,children:(0,$.jsx)(wt,{items:m,activeTab:n,onChange:r,ariaLabel:i.taskActionsAria})}),t[15]=n,t[16]=i.taskActionsAria,t[17]=r,t[18]=m,t[19]=h):h=t[19],h}function di(e){let t=(0,Q.c)(37),{snapshot:n,rollup:r,view:i,labels:a,cardLabels:o,isActive:s,processExpanded:c,logsExpanded:l,selectedAgentId:u,selectedAgent:d,durationText:f,onToggleProcess:p,onToggleLogs:m,onSelectAgent:h}=e,g;t[0]===a.process?g=t[1]:(g=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:a.process}),t[0]=a.process,t[1]=g);let _;t[2]!==a.agentProgress||t[3]!==i.run.metrics.agentCount||t[4]!==i.run.metrics.doneAgentCount?(_=ve(a.agentProgress,{done:i.run.metrics.doneAgentCount,total:i.run.metrics.agentCount}),t[2]=a.agentProgress,t[3]=i.run.metrics.agentCount,t[4]=i.run.metrics.doneAgentCount,t[5]=_):_=t[5];let v;t[6]!==f||t[7]!==_?(v=(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:[_,` · `,f]}),t[6]=f,t[7]=_,t[8]=v):v=t[8];let y;t[9]!==g||t[10]!==v?(y=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[g,v]}),t[9]=g,t[10]=v,t[11]=y):y=t[11];let b=c?`rotate-180`:null,x;t[12]===b?x=t[13]:(x=I(`size-4 shrink-0 text-fg-subtle transition-transform`,b),t[12]=b,t[13]=x);let S;t[14]===x?S=t[15]:(S=(0,$.jsx)(je,{className:x,"aria-hidden":!0}),t[14]=x,t[15]=S);let C;t[16]!==p||t[17]!==c||t[18]!==y||t[19]!==S?(C=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-4 px-4 py-3 text-left`,onClick:p,"aria-expanded":c,children:[y,S]}),t[16]=p,t[17]=c,t[18]=y,t[19]=S,t[20]=C):C=t[20];let w;t[21]!==o||t[22]!==s||t[23]!==a||t[24]!==l||t[25]!==h||t[26]!==m||t[27]!==c||t[28]!==r||t[29]!==d||t[30]!==u||t[31]!==n||t[32]!==i.phases?(w=c?(0,$.jsx)(`div`,{className:`border-t border-edge px-4 pb-4 pt-4`,children:(0,$.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-[minmax(0,1fr)_minmax(20rem,26rem)]`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[s?(0,$.jsx)(_t,{snapshot:n,labels:o,logsExpanded:l,onToggleLogs:m,selectedAgentId:u,onSelectAgent:h}):(0,$.jsx)(ze,{rollup:r,currentPhase:n.currentPhase,labels:o.phase,recentLogs:n.logs,recentLogsHeading:o.recentLogsHeading,showAllLogsLabel:o.showAllLogs,logsExpanded:l,onToggleLogs:m,selectedAgentId:u,onSelectAgent:h}),i.phases.length>0?(0,$.jsx)(`div`,{className:`mt-4 grid gap-2 sm:grid-cols-2`,children:i.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:ii(e.status,a)})]})},e.id))}):null]}),(0,$.jsx)(fi,{agent:d,snapshot:n,labels:a,cardLabels:o})]})}):null,t[21]=o,t[22]=s,t[23]=a,t[24]=l,t[25]=h,t[26]=m,t[27]=c,t[28]=r,t[29]=d,t[30]=u,t[31]=n,t[32]=i.phases,t[33]=w):w=t[33];let T;return t[34]!==C||t[35]!==w?(T=(0,$.jsxs)(`div`,{className:`mt-5 rounded-2xl border border-edge bg-surface-base/35`,children:[C,w]}),t[34]=C,t[35]=w,t[36]=T):T=t[36],T}function fi(e){let t=(0,Q.c)(57),{agent:n,snapshot:r,labels:i,cardLabels:a}=e,[o,s]=(0,Z.useState)(!1),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>{s(!1)},t[0]=c):c=t[0];let l=n?.id,u;if(t[1]===l?u=t[2]:(u=[l],t[1]=l,t[2]=u),(0,Z.useEffect)(c,u),!n){let e;return t[3]===i.noSubagents?e=t[4]:(e=(0,$.jsx)(`aside`,{className:`min-w-0 rounded-2xl border border-dashed border-edge bg-surface-panel/45 p-4 text-sm text-fg-muted`,children:i.noSubagents}),t[3]=i.noSubagents,t[4]=e),e}let d;t[5]===n?d=t[6]:(d=Ct(n),t[5]=n,t[6]=d);let f=d,p=n.error||n.resultPreview||n.currentStep||a.checkDetail.runningPlaceholder,m;t[7]===n.label?m=t[8]:(m=(0,$.jsx)(`h3`,{className:`truncate text-sm font-semibold text-fg`,children:n.label}),t[7]=n.label,t[8]=m);let h=n.phase||i.process,g;t[9]!==f||t[10]!==h?(g=[h,f].filter(Boolean),t[9]=f,t[10]=h,t[11]=g):g=t[11];let _=g.join(` · `),v;t[12]===_?v=t[13]:(v=(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:_}),t[12]=_,t[13]=v);let y;t[14]!==m||t[15]!==v?(y=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[m,v]}),t[14]=m,t[15]=v,t[16]=y):y=t[16];let b;t[17]===n.status?b=t[18]:(b=I(`rounded-full px-2 py-0.5 text-xs font-medium`,Ri(n.status)),t[17]=n.status,t[18]=b);let x=i.agentStatus[n.status]??n.status,S;t[19]!==b||t[20]!==x?(S=(0,$.jsx)(`span`,{className:b,children:x}),t[19]=b,t[20]=x,t[21]=S):S=t[21];let C;t[22]!==y||t[23]!==S?(C=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[y,S]}),t[22]=y,t[23]=S,t[24]=C):C=t[24];let w;t[25]===i.agentOutputHeading?w=t[26]:(w=(0,$.jsx)(`h4`,{className:`text-xs font-semibold text-fg`,children:i.agentOutputHeading}),t[25]=i.agentOutputHeading,t[26]=w);let T=n.error?`font-mono text-rose-600 dark:text-rose-400`:`text-fg-muted`,E;t[27]===T?E=t[28]:(E=I(`mt-2 max-h-72 overflow-auto whitespace-pre-wrap wrap-break-word text-sm leading-6`,T),t[27]=T,t[28]=E);let D;t[29]!==p||t[30]!==E?(D=(0,$.jsx)(`div`,{className:E,children:p}),t[29]=p,t[30]=E,t[31]=D):D=t[31];let O;t[32]!==w||t[33]!==D?(O=(0,$.jsxs)(`section`,{className:`mt-4 rounded-xl border border-edge-subtle bg-surface-base/60 p-3`,children:[w,D]}),t[32]=w,t[33]=D,t[34]=O):O=t[34];let k;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(k=()=>s(hi),t[35]=k):k=t[35];let A=i.debugDetailsTitle,j=o&&`rotate-180`,M;t[36]===j?M=t[37]:(M=I(`size-4 shrink-0 text-fg-subtle transition-transform`,j),t[36]=j,t[37]=M);let N;t[38]===M?N=t[39]:(N=(0,$.jsx)(je,{className:M,"aria-hidden":!0}),t[38]=M,t[39]=N);let P;t[40]!==o||t[41]!==i.debugDetailsTitle||t[42]!==N?(P=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-3 px-3 py-2 text-left text-xs font-semibold text-fg`,onClick:k,"aria-expanded":o,children:[A,N]}),t[40]=o,t[41]=i.debugDetailsTitle,t[42]=N,t[43]=P):P=t[43];let F;t[44]!==o||t[45]!==n||t[46]!==a||t[47]!==i||t[48]!==r?(F=o?(0,$.jsxs)(`div`,{className:`space-y-3 border-t border-edge-subtle p-3`,children:[n.steps?.length?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-wide text-fg-subtle`,children:a.checkDetail.stepsHeading}),(0,$.jsx)(`div`,{className:`mt-2 space-y-2`,children:n.steps.slice(0,8).map(mi)})]}):null,(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-wide text-fg-subtle`,children:i.agentInputHeading}),(0,$.jsx)(`pre`,{className:`mt-1 max-h-44 overflow-auto whitespace-pre-wrap wrap-break-word rounded-lg bg-surface-panel p-2 font-mono text-xs leading-5 text-fg-muted`,children:n.prompt||`—`})]}),(0,$.jsx)(Fi,{agent:n,labels:i}),r.logs.length>0?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-wide text-fg-subtle`,children:a.recentLogsHeading}),(0,$.jsx)(`div`,{className:`mt-1 max-h-36 space-y-0.5 overflow-auto rounded-lg bg-surface-panel p-2 font-mono text-xs text-fg-subtle`,children:r.logs.map(pi)})]}):null]}):null,t[44]=o,t[45]=n,t[46]=a,t[47]=i,t[48]=r,t[49]=F):F=t[49];let L;t[50]!==P||t[51]!==F?(L=(0,$.jsxs)(`section`,{className:`mt-3 rounded-xl border border-edge-subtle bg-surface-base/40`,children:[P,F]}),t[50]=P,t[51]=F,t[52]=L):L=t[52];let R;return t[53]!==C||t[54]!==O||t[55]!==L?(R=(0,$.jsxs)(`aside`,{className:`min-w-0 rounded-2xl border border-edge bg-surface-panel p-4`,children:[C,O,L]}),t[53]=C,t[54]=O,t[55]=L,t[56]=R):R=t[56],R}function pi(e){return(0,$.jsx)(`div`,{className:`wrap-break-word`,children:e},e)}function mi(e){return(0,$.jsxs)(`div`,{className:`rounded-lg bg-surface-panel px-2.5 py-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`min-w-0 truncate text-xs font-medium text-fg`,children:e.label}),(0,$.jsx)(`span`,{className:`shrink-0 text-[10px] text-fg-subtle`,children:e.status})]}),e.detail||e.resultPreview||e.error?(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:e.error||e.resultPreview||e.detail}):null]},e.id)}function hi(e){return!e}function gi(e,t){return e.kind===`run_error`?e.code?ve(t.diagnosticsRunErrorWithCode,{code:e.code}):t.diagnosticsRunError:e.kind===`agent_error`?ve(t.diagnosticsAgentError,{agent:e.agentLabel??String(e.agentId??`—`)}):e.kind===`step_error`?ve(t.diagnosticsStepError,{agent:e.agentLabel??String(e.agentId??`—`),step:e.stepLabel??e.stepId??`—`}):ve(t.diagnosticsAgentSkipped,{agent:e.agentLabel??String(e.agentId??`—`)})}function _i(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=ve(i.replayLineageSummary,{scope:bi(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)(Bi,{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)(Bi,{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)(zi,{label:i.replayFixedAgents,value:String(r.fixedAgentIds.length)}),(0,$.jsx)(zi,{label:i.replayStillFailingAgents,value:String(r.stillFailingAgentIds.length)}),(0,$.jsx)(zi,{label:i.replayDurationDelta,value:yi(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)(q,{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 vi(e){let t=(0,Q.c)(40),{view:n,labels:r}=e,i;t[0]===n.run.metadata?.contextRefs?i=t[1]:(i=n.run.metadata?.contextRefs??[],t[0]=n.run.metadata?.contextRefs,t[1]=i);let a=i,o=n.run.metadata?.contextSnapshot,s;t[2]===n.run.metadata?.writebackPolicy?.targets?s=t[3]:(s=n.run.metadata?.writebackPolicy?.targets??[],t[2]=n.run.metadata?.writebackPolicy?.targets,t[3]=s);let c=s;if(!a.length&&!c.length)return null;let l;t[4]===r.contextRefsTitle?l=t[5]:(l=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.contextRefsTitle}),t[4]=r.contextRefsTitle,t[5]=l);let u;t[6]!==r.contextRefsHint||t[7]!==r.contextSnapshotSummary||t[8]!==o?(u=o?r.contextSnapshotSummary.replace(`{{count}}`,String(o.totalTokens)):r.contextRefsHint,t[6]=r.contextRefsHint,t[7]=r.contextSnapshotSummary,t[8]=o,t[9]=u):u=t[9];let d;t[10]===u?d=t[11]:(d=(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:u}),t[10]=u,t[11]=d);let f;t[12]!==r.contextRefKinds||t[13]!==r.noContextRefs||t[14]!==a?(f=a.length?a.map(e=>(0,$.jsx)(Bi,{label:r.contextRefKinds[e.kind]??e.kind,value:[e.title||e.id,e.role].filter(Boolean).join(` · `)},`${e.kind}:${e.id}:${e.role??``}`)):(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.noContextRefs}),t[12]=r.contextRefKinds,t[13]=r.noContextRefs,t[14]=a,t[15]=f):f=t[15];let p;t[16]===f?p=t[17]:(p=(0,$.jsx)(`div`,{className:`mt-3 grid gap-2`,children:f}),t[16]=f,t[17]=p);let m;t[18]!==l||t[19]!==d||t[20]!==p?(m=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[l,d,p]}),t[18]=l,t[19]=d,t[20]=p,t[21]=m):m=t[21];let h;t[22]===r.writebackTitle?h=t[23]:(h=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.writebackTitle}),t[22]=r.writebackTitle,t[23]=h);let g;t[24]===r.writebackHint?g=t[25]:(g=(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:r.writebackHint}),t[24]=r.writebackHint,t[25]=g);let _;t[26]!==r.noWritebackTargets||t[27]!==r.writebackModes||t[28]!==r.writebackTargetKinds||t[29]!==c?(_=c.length?c.map(e=>(0,$.jsx)(Bi,{label:r.writebackTargetKinds[e.kind]??e.kind,value:`${e.id} · ${r.writebackModes[e.mode]??e.mode}`},`${e.kind}:${e.id}:${e.mode}`)):(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.noWritebackTargets}),t[26]=r.noWritebackTargets,t[27]=r.writebackModes,t[28]=r.writebackTargetKinds,t[29]=c,t[30]=_):_=t[30];let v;t[31]===_?v=t[32]:(v=(0,$.jsx)(`div`,{className:`mt-3 grid gap-2`,children:_}),t[31]=_,t[32]=v);let y;t[33]!==g||t[34]!==v||t[35]!==h?(y=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[h,g,v]}),t[33]=g,t[34]=v,t[35]=h,t[36]=y):y=t[36];let b;return t[37]!==y||t[38]!==m?(b=(0,$.jsx)(`section`,{className:`mt-5 rounded-2xl border border-edge-subtle bg-surface-base/35 p-4`,children:(0,$.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-2`,children:[m,y]})}),t[37]=y,t[38]=m,t[39]=b):b=t[39],b}function yi(e){return e==null?`—`:`${e>0?`+`:e<0?`-`:``}${Me(Math.abs(e))}`}function bi(e,t){return e===`failed_phases`?t.replayScopeFailedPhases:t.replayScopeFailedAgents}function xi(e){let t=(0,Q.c)(8),{view:n,language:r}=e,i=n.nodes,a,o;if(t[0]!==r||t[1]!==n.nodes){o=Symbol.for(`react.early_return_sentinel`);bb0:{let e=i.filter(Ei),s=n.nodes.filter(Ti);if(e.length===0&&s.length===0){o=null;break bb0}let c=r===`zh`?`已保留的阶段结果`:`Work completed before the failure`,l;t[4]===c?l=t[5]:(l=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:c}),t[4]=c,t[5]=l);let u=r===`zh`?`失败不会清空已经完成的工作。你可以先使用这些结果,再让 AI 修复剩余步骤。`:`Completed work is preserved. You can use it now and ask AI to repair the remaining steps.`,d;t[6]===u?d=t[7]:(d=(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:u}),t[6]=u,t[7]=d),a=(0,$.jsxs)(`section`,{className:`rounded-2xl border border-amber-500/25 bg-amber-500/5 p-4`,children:[l,d,e.length>0?(0,$.jsx)(`ul`,{className:`mt-3 space-y-2`,children:e.map(wi)}):null,s.length>0?(0,$.jsx)(`p`,{className:`mt-3 text-xs text-danger`,children:r===`zh`?`待修复:${s.map(Ci).join(`、`)}`:`Needs repair: ${s.map(Si).join(`, `)}`}):null]})}t[0]=r,t[1]=n.nodes,t[2]=a,t[3]=o}else a=t[2],o=t[3];return o===Symbol.for(`react.early_return_sentinel`)?a:o}function Si(e){return e.title}function Ci(e){return e.title}function wi(e){return(0,$.jsxs)(`li`,{className:`rounded-xl border border-edge-subtle bg-surface-base/60 px-3 py-2.5`,children:[(0,$.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:e.title}),(0,$.jsx)(`p`,{className:`mt-1 whitespace-pre-wrap break-words text-xs leading-5 text-fg-muted`,children:e.resultPreview})]},e.id)}function Ti(e){return e.status===`error`}function Ei(e){return e.status===`done`&&e.resultPreview?.trim()}function Di(e){let t=(0,Q.c)(19),{task:n,labels:r,downloadingArtifactId:i,downloadError:a,onCopyText:o,onDownloadArtifact:s,onStartFollowUp:c,compact:l}=e,u=l===void 0?!1:l;if(!n||!n.artifacts.length&&!n.followUps.length){if(u)return null;let e;return t[0]===r.noArtifacts?e=t[1]:(e=(0,$.jsx)(`section`,{className:`mt-5 rounded-xl border border-dashed border-edge p-4 text-sm text-fg-muted`,children:r.noArtifacts}),t[0]=r.noArtifacts,t[1]=e),e}let d=!u&&`mt-5`,f;t[2]===d?f=t[3]:(f=I(`grid gap-3 lg:grid-cols-3`,d),t[2]=d,t[3]=f);let p;t[4]!==a||t[5]!==i||t[6]!==r||t[7]!==s||t[8]!==n.artifacts?(p=n.artifacts.length>0?(0,$.jsxs)(ki,{title:r.taskArtifacts,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)(_,{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[4]=a,t[5]=i,t[6]=r,t[7]=s,t[8]=n.artifacts,t[9]=p):p=t[9];let m;t[10]!==r||t[11]!==o||t[12]!==c||t[13]!==n.followUps?(m=n.followUps.length>0?(0,$.jsx)(ki,{title:r.taskFollowUps,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[10]=r,t[11]=o,t[12]=c,t[13]=n.followUps,t[14]=m):m=t[14];let h;return t[15]!==f||t[16]!==p||t[17]!==m?(h=(0,$.jsxs)(`div`,{className:f,children:[p,m]}),t[15]=f,t[16]=p,t[17]=m,t[18]=h):h=t[18],h}function Oi(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),URL.revokeObjectURL(n)}function ki(e){let t=(0,Q.c)(10),{title:n,children:r,className:i}=e,a;t[0]===i?a=t[1]:(a=I(`min-w-0 rounded-xl border border-edge-subtle bg-surface-base/35 p-3`,i),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=(0,$.jsx)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:n}),t[2]=n,t[3]=o);let s;t[4]===r?s=t[5]:(s=(0,$.jsx)(`div`,{className:`mt-2`,children:r}),t[4]=r,t[5]=s);let c;return t[6]!==a||t[7]!==o||t[8]!==s?(c=(0,$.jsxs)(`section`,{className:a,children:[o,s]}),t[6]=a,t[7]=o,t[8]=s,t[9]=c):c=t[9],c}function Ai(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e,n=Array.isArray(t.actions)?t.actions:[],r=Array.isArray(t.artifacts)?t.artifacts:[],i=Array.isArray(t.followUps)?t.followUps:[];return n.length===0&&r.length===0&&i.length===0?null:{actions:n,artifacts:r,followUps:i}}function ji(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:null}function Mi(e){if(typeof e==`string`)return e.trim()||null;let t=ji(e);if(!t)return null;for(let e of[`artifactId`,`followUpId`,`id`,`name`])if(typeof t[e]==`string`&&t[e].trim())return t[e].trim();return null}function Ni(e){let t=ji(e);if(!t)return null;for(let e of[`prompt`,`message`,`text`])if(typeof t[e]==`string`&&t[e].trim())return t[e].trim();return null}function Pi(e,t){if(e.kind===`copy_result`)return!0;let n=Mi(e.payload);return e.kind===`open_artifact`?!!(n&&t.artifacts.some(e=>e.id===n||e.name===n)):e.kind===`start_followup`?!!(Ni(e.payload)||n&&t.followUps.some(e=>e.id===n&&e.prompt)):!!Ni(e.payload)}function Fi(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(Li),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(Ii)}),t[19]=m,t[20]=h),h}function Ii(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 Li(e){return!!e.value}function Ri(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 zi(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 Bi(e){let t=(0,Q.c)(7),{label:n,value:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`div`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`div`,{className:`mt-1 truncate text-sm font-medium text-fg`,title:r,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function Vi(){let e=(0,Q.c)(8),t=L(Hi),[n]=o(),r;e[0]===n?r=e[1]:(r=n.get(`agentId`)?.trim()||void 0,e[0]=n,e[1]=r);let i=r,a;e[2]===t?a=e[3]:(a=t?[`workflow-route-agents`,t]:null,e[2]=t,e[3]=a);let s;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(s={revalidateOnFocus:!1},e[4]=s):s=e[4];let c=te(a,xt,s),l=i??c.data?.defaultId,u;return e[5]!==c.isLoading||e[6]!==l?(u={ownerAgentId:l,loading:c.isLoading},e[5]=c.isLoading,e[6]=l,e[7]=u):u=e[7],u}function Hi(e){return e.conversationId}function Ui(e){let t=(0,Q.c)(19),n=L(Wi),r;t[0]===n?r=t[1]:(r=n?[`workflow-route-definitions`,n]:null,t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i={revalidateOnFocus:!1},t[2]=i):i=t[2];let a=te(r,St,i),o;t[3]!==e||t[4]!==a.data?(o=a.data?.find(t=>t.id===e||t.name===e),t[3]=e,t[4]=a.data,t[5]=o):o=t[5];let s=o,c;t[6]===a?c=t[7]:(c=async e=>{await a.mutate(t=>[...(t??[]).filter(t=>t.id!==e.id&&t.name!==e.name),e],{revalidate:!1})},t[6]=a,t[7]=c);let l=c,u;t[8]===a?u=t[9]:(u=async()=>{await a.mutate()},t[8]=a,t[9]=u);let d=u,f;t[10]===a.data?f=t[11]:(f=a.data??[],t[10]=a.data,t[11]=f);let p;return t[12]!==s||t[13]!==a.error||t[14]!==a.isLoading||t[15]!==d||t[16]!==f||t[17]!==l?(p={definition:s,definitions:f,loading:a.isLoading,error:a.error,upsertDefinition:l,refreshDefinitions:d},t[12]=s,t[13]=a.error,t[14]=a.isLoading,t[15]=d,t[16]=f,t[17]=l,t[18]=p):p=t[18],p}function Wi(e){return e.conversationId}var Gi=()=>({goal:``,argValues:{},schemaInput:{},concurrency:``,maxSubagents:``});function Ki(){let{definitionId:e}=c(),[t,n]=o(),r=a(),i=R(e=>e.language),s=F(i).workflows,u=i===`zh`?`zh-CN`:`en-US`,d=le(e=>e.setPageHeader),f=le(e=>e.clearPageHeader),{ownerAgentId:h}=Vi(),g=t.get(`projectId`)?.trim()||void 0,_=t.get(`view`)===`source`?`source`:`canvas`,{definition:v,loading:y,error:b}=Ui(e),x=te(`workflow-project-options`,()=>Be({limit:100,sortBy:`updatedAt`,sortOrder:`desc`}),{revalidateOnFocus:!1}),S=te(g?[`workflow-project-presets`,g]:null,()=>gt(g),{revalidateOnFocus:!1}),C=te(h?[`workflow-detail-runs`,h,e,g??``]:null,()=>bt(100,{ownerAgentId:h,projectId:g}),{revalidateOnFocus:!1}),[w,E]=(0,Z.useState)(Gi),[D,k]=(0,Z.useState)([]),[M,N]=(0,Z.useState)(!1),[P,I]=(0,Z.useState)(!1),[L,z]=(0,Z.useState)(null),B=(0,Z.useRef)(void 0),V=(0,Z.useMemo)(()=>(C.data??[]).filter(e=>e.definitionId===v?.id).slice(0,6),[v?.id,C.data]),H=O(v,w),U=v?Ke(v,i):null,W=S.data?.find(e=>e.definitionId===v?.id),G=!!W&&JSON.stringify(W?.contextRefs)===JSON.stringify(D);(0,Z.useEffect)(()=>{if(!g||!v||!S.data)return;let e=`${g}:${v.id}`;B.current!==e&&(B.current=e,k(W?.contextRefs??[]))},[v,g,W?.contextRefs,S.data]);let K=(0,Z.useCallback)(e=>{B.current=void 0,k([]),n(t=>{let n=new URLSearchParams(t);return e?n.set(`projectId`,e):n.delete(`projectId`),n},{replace:!0})},[n]),ee=(0,Z.useCallback)(async()=>{if(!(!g||!v||P)){I(!0),z(null);try{let e=await ce(g,v.id,D);await S.mutate(t=>[e,...(t??[]).filter(t=>t.definitionId!==e.definitionId)],{revalidate:!1})}catch(e){z(e instanceof Error?e.message:s.projectWorkflowSaveFailed)}finally{I(!1)}}},[D,v,s.projectWorkflowSaveFailed,g,S,P]),J=(0,Z.useCallback)(async()=>{if(!(!g||!v||P)){I(!0),z(null);try{await we(g,v.id),await S.mutate(e=>(e??[]).filter(e=>e.definitionId!==v.id),{revalidate:!1})}catch(e){z(e instanceof Error?e.message:s.projectWorkflowRemoveFailed)}finally{I(!1)}}},[v,s.projectWorkflowRemoveFailed,g,S,P]),ne=new URLSearchParams({tab:`library`});h&&ne.set(`agentId`,h),g&&ne.set(`projectId`,g);let re=`/workflows?${ne.toString()}`,ie=new URLSearchParams;h&&ie.set(`agentId`,h),g&&ie.set(`projectId`,g);let ae=ie.size?`?${ie.toString()}`:``,oe=e=>{n(t=>{let n=new URLSearchParams(t);return e===`source`?n.set(`view`,`source`):n.delete(`view`),n},{replace:!0})},se=null;if(v){let e=new URLSearchParams;h&&e.set(`agentId`,h),g&&e.set(`projectId`,g),v.metadata.source!==`user`&&e.set(`copy`,v.id),se=`${v.metadata.source===`user`?`/workflows/${v.id}/edit`:`/workflows/new`}${e.size?`?${e.toString()}`:``}`}(0,Z.useLayoutEffect)(()=>(d({startExtra:(0,$.jsx)(l,{to:re,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":i===`zh`?`返回工作流库`:`Back to workflow library`,children:(0,$.jsx)(Y,{className:`size-4`,"aria-hidden":!0})}),main:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:v?.title??(i===`zh`?`工作流详情`:`Workflow details`)}),v?(0,$.jsxs)(`p`,{className:`truncate text-xs text-fg-muted`,children:[v.metadata.source===`user`?s.badgeUser:s.badgeBuiltin,` · `,i===`zh`?`版本 ${v.revision}`:`Version ${v.revision}`]}):null]}),end:v&&se?(0,$.jsx)(q,{asChild:!0,variant:`secondary`,className:`h-9 shrink-0`,children:(0,$.jsxs)(l,{to:se,children:[v.metadata.source===`user`?(0,$.jsx)(T,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(Bt,{className:`size-4`,"aria-hidden":!0}),v.metadata.source===`user`?s.editWorkflow:s.copyAndEditWorkflow]})}):null}),()=>f()),[f,v,se,s.badgeBuiltin,s.badgeUser,s.copyAndEditWorkflow,s.editWorkflow,i,re,d]);let ue=(0,Z.useCallback)(async()=>{if(!(!v||!H.valid||M)){N(!0),z(null);try{r(`/workflows/runs/${(await nt({definitionId:v.id,goal:w.goal.trim()||U?.description||v.title,input:A(v,w),agentId:h,projectId:g,contextRefs:D,concurrency:w.concurrency.trim()?Number(w.concurrency):void 0,maxSubagents:w.maxSubagents.trim()?Number(w.maxSubagents):void 0})).runId}${ae}`)}catch(e){z(e instanceof Error?e.message:s.startFailed)}finally{N(!1)}}},[D,v,H.valid,s.startFailed,U?.description,r,h,g,ae,w,M]);return y?(0,$.jsx)($i,{}):!v||!U?(0,$.jsx)(ea,{message:b?.message??(i===`zh`?`没有找到这个工作流`:`Workflow not found`)}):(0,$.jsx)(`main`,{className:`min-h-0 flex-1 overflow-y-auto bg-surface-panel`,children:(0,$.jsxs)(`div`,{className:`mx-auto w-full max-w-6xl px-4 py-5 sm:px-6`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,$.jsx)(`p`,{className:`max-w-3xl text-sm leading-6 text-fg-muted`,children:U.description}),(0,$.jsx)(`div`,{className:`flex rounded-lg bg-surface-base p-1`,role:`tablist`,"aria-label":i===`zh`?`工作流视图`:`Workflow view`,children:[`canvas`,`source`].map(e=>(0,$.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":_===e,className:`rounded-md px-3 py-1.5 text-xs font-medium ${_===e?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:text-fg`}`,onClick:()=>oe(e),children:e===`canvas`?i===`zh`?`画布`:`Canvas`:i===`zh`?`源码`:`Source`},e))})]}),(0,$.jsxs)(`div`,{className:`mt-5 grid gap-5 xl:grid-cols-[minmax(0,1fr)_22rem]`,children:[(0,$.jsx)(`div`,{className:`min-w-0`,children:_===`source`?(0,$.jsx)(Yn,{initialSource:nr(Qn(v)),resetKey:`${v.id}:${v.revision}`,fileName:`${v.name}.workflow.json`,language:i}):(0,$.jsx)(Vr,{graph:v.graph,language:i,className:`h-[28rem] rounded-xl border border-edge`})}),(0,$.jsxs)(`aside`,{className:`rounded-xl border border-edge bg-surface-base/45 p-4`,children:[(0,$.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:i===`zh`?`开始一次运行`:`Start a run`}),(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:U.whenToUse||U.description}),(0,$.jsxs)(`label`,{className:`mt-4 block text-xs font-medium text-fg-muted`,children:[(0,$.jsxs)(`span`,{className:`mb-1.5 flex items-center gap-1.5`,children:[(0,$.jsx)(Te,{className:`size-3.5 text-fg-subtle`,"aria-hidden":!0}),s.runProject]}),(0,$.jsxs)(p,{value:g??``,"aria-label":s.runProject,onChange:e=>K(e.target.value),className:`h-9 w-full rounded-lg border border-edge bg-surface-panel px-2.5 text-sm text-fg shadow-surface`,children:[(0,$.jsx)(m,{value:``,children:s.runProjectNone}),(x.data?.items??[]).filter(e=>e.status!==`archived`&&e.status!==`cancelled`).map(e=>(0,$.jsx)(m,{value:e.id,children:e.name},e.id))]})]}),(0,$.jsx)(`div`,{className:`mt-3`,children:(0,$.jsx)(Rr,{projectId:g,language:i,value:D,onChange:k})}),g?(0,$.jsxs)(`div`,{className:`mt-2 flex items-center gap-2`,children:[(0,$.jsxs)(q,{type:`button`,variant:`ghost`,className:`h-8 flex-1 justify-start px-2 text-xs`,disabled:P||G,onClick:()=>void ee(),children:[(0,$.jsx)(zt,{className:`size-3.5`,"aria-hidden":!0}),G?s.projectWorkflowSaved:W?s.updateProjectWorkflow:s.saveProjectWorkflow]}),W?(0,$.jsx)(q,{type:`button`,variant:`ghost`,className:`size-8 p-0 text-fg-muted`,disabled:P,"aria-label":s.removeProjectWorkflow,onClick:()=>void J(),children:(0,$.jsx)(Se,{className:`size-3.5`,"aria-hidden":!0})}):null]}):null,(0,$.jsx)(`div`,{className:`mt-4`,children:(0,$.jsx)(j,{definition:v,language:i,value:w,onChange:E,mode:`manual`,badgeLabel:s.readyToStart,aiAssist:{context:{surface:`workflow-start`,workflowId:v.id,workflowName:v.name,workflowTitle:v.title,workflowDescription:U.description}}})}),L?(0,$.jsx)(`p`,{className:`mt-3 text-sm text-danger`,children:L}):null,(0,$.jsxs)(q,{variant:`primary`,className:`mt-4 w-full`,disabled:!H.valid||M,onClick:()=>void ue(),children:[(0,$.jsx)(Ne,{className:`size-4`,"aria-hidden":!0}),M?s.starting:s.runWorkflow]})]})]}),(0,$.jsxs)(`section`,{className:`mt-6 border-t border-edge pt-5`,children:[(0,$.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:i===`zh`?`最近运行`:`Recent runs`}),V.length?(0,$.jsx)(`div`,{className:`mt-3 grid gap-2 md:grid-cols-2 xl:grid-cols-3`,children:V.map(e=>(0,$.jsxs)(`button`,{type:`button`,className:`rounded-xl border border-edge bg-surface-base/40 p-3 text-left hover:bg-surface-hover`,onClick:()=>r(`/workflows/runs/${e.id}${ae}`),children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsx)(`span`,{className:`truncate text-sm font-medium text-fg`,children:e.title}),(0,$.jsx)(`span`,{className:`shrink-0 text-xs text-fg-subtle`,children:s.status[e.status]})]}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:ut(e.createdAtMs,u)})]},e.id))}):(0,$.jsx)(`p`,{className:`mt-3 text-sm text-fg-muted`,children:i===`zh`?`还没有运行记录。`:`No runs yet.`})]})]})})}function qi(){let{definitionId:e}=c(),[t]=o(),n=a(),r=R(e=>e.language),{ownerAgentId:i}=Vi(),s=t.get(`copy`)?.trim()||void 0,l=t.get(`repairRun`)?.trim()||void 0,u=t.get(`projectId`)?.trim()||void 0,d=new URLSearchParams;i&&d.set(`agentId`,i),u&&d.set(`projectId`,u);let f=d.size?`?${d.toString()}`:``,{definition:p,definitions:m,loading:h,upsertDefinition:g,refreshDefinitions:_}=Ui(e??s),v=te(l&&i?[`workflow-repair-run`,l,i]:null,()=>Xe(l,{ownerAgentId:i}),{revalidateOnFocus:!1}),[y,b]=(0,Z.useState)(!1),[x,S]=(0,Z.useState)(null),[C,w]=(0,Z.useState)(null),T=(0,Z.useMemo)(()=>m.map(e=>e.name),[m]),E=(0,Z.useMemo)(()=>hr(`my_workflow`,T),[T]),D=(0,Z.useMemo)(()=>{if(!p)return null;let t=e&&p.metadata.source===`user`?`edit`:`copy`,n=(v.data?.nodes.filter(e=>e.status===`error`)??[]).map(e=>r===`zh`?`${e.title}:${e.error??`执行失败`}`:`${e.title}: ${e.error??`execution failed`}`).join(r===`zh`?`;`:`; `)||v.data?.run.error?.message||void 0,i=l&&v.data?r===`zh`?`修复这次运行中的失败步骤,并保持原始目标不变:${n??`请根据运行记录定位失败原因`}`:`Repair the failed steps from this run while preserving the original goal: ${n??`use the run record to identify the failure`}`:void 0;return{mode:t,name:t===`edit`?p.name:Qi(p.name,m),graph:structuredClone(p.graph),manifest:qn(p),baseRevision:t===`edit`?p.revision:0,sourceTitle:p.title,repairPrompt:i}},[p,e,m,r,v.data?.nodes,l]),O=(0,Z.useCallback)(async e=>{b(!0),S(null),w(null);try{let t=await be(e.name,e.graph,e.manifest,e.expectedRevision);return await g(t),n(`/workflows/${t.id}/edit${f}`,{replace:!0}),t}catch(e){let t=gr(e);w(t),t||S(e instanceof Error?e.message:String(e))}finally{b(!1)}},[f,n,g]),k=(0,Z.useCallback)(async e=>{b(!0),S(null),w(null);try{let t=await be(e.name,e.graph,e.manifest,e.expectedRevision);await g(t),n(`/workflows/runs/${(await nt({definitionId:t.id,goal:e.goal,input:{goal:e.goal},agentId:i,projectId:u})).runId}${f}`)}catch(e){let t=gr(e);throw w(t),t||S(e instanceof Error?e.message:String(e)),e}finally{b(!1)}},[f,n,i,u,g]);return h?(0,$.jsx)($i,{}):e&&!p?(0,$.jsx)(ea,{message:r===`zh`?`没有找到这个工作流`:`Workflow not found`}):(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[x?(0,$.jsx)(`div`,{className:`border-b border-danger/30 bg-danger/5 px-4 py-2 text-sm text-danger`,children:x}):null,(0,$.jsx)(vr,{language:r,ownerAgentId:i,saving:y,initialDraft:D,initialName:E,existingNames:T,saveConflict:C,onSave:O,onSaveAndStart:k,onClearSaveConflict:()=>w(null),onReloadLatest:()=>{w(null),S(null),_()}})]})}function Ji(){let e=(0,Q.c)(67),{runId:t}=c(),n=a(),[r]=o(),i=R(Zi),s;e[0]===i?s=e[1]:(s=F(i),e[0]=i,e[1]=s);let u=s.workflows,d=i===`zh`?`zh-CN`:`en-US`,f=le(Xi),p=le(Yi),{ownerAgentId:m}=Vi(),h=r.get(`projectId`)?.trim()||void 0,g;e[2]===m?g=e[3]:(g={ownerAgentId:m},e[2]=m,e[3]=g);let _=$e(t,g),[v,y]=(0,Z.useState)(`process`),b=(0,Z.useRef)(!0),x;e[4]!==_.view?.run.metadata?.replay||e[5]!==m||e[6]!==t?(x=_.view?.run.metadata?.replay&&t?[`workflow-run-page-comparison`,t,m]:null,e[4]=_.view?.run.metadata?.replay,e[5]=m,e[6]=t,e[7]=x):x=e[7];let S;e[8]!==m||e[9]!==t?(S=()=>Re(t,{ownerAgentId:m}),e[8]=m,e[9]=t,e[10]=S):S=e[10];let C;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(C={revalidateOnFocus:!1},e[11]=C):C=e[11];let w=te(x,S,C),T;e[12]===_.view?T=e[13]:(T=_.view?ne.has(_.view.run.status):!0,e[12]=_.view,e[13]=T);let E=T,D;e[14]!==E||e[15]!==y?(D=()=>{b.current&&!E&&y(`result`),b.current=E},e[14]=E,e[15]=y,e[16]=D):D=e[16];let O;e[17]===E?O=e[18]:(O=[E],e[17]=E,e[18]=O),(0,Z.useEffect)(D,O);let k=new URLSearchParams({tab:`runs`});m&&k.set(`agentId`,m),h&&k.set(`projectId`,h);let A=`/workflows?${k.toString()}`,j,M;e[19]!==p||e[20]!==u.backToRuns||e[21]!==u.runDetailsTitle||e[22]!==_.view||e[23]!==A||e[24]!==f?(j=()=>(f({startExtra:(0,$.jsx)(l,{to:A,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":u.backToRuns,children:(0,$.jsx)(Y,{className:`size-4`,"aria-hidden":!0})}),main:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:u.runDetailsTitle}),_.view?(0,$.jsx)(`p`,{className:`truncate text-xs text-fg-muted`,children:_.view.run.title}):null]}),end:null}),()=>p()),M=[p,u.backToRuns,u.runDetailsTitle,_.view,A,f],e[19]=p,e[20]=u.backToRuns,e[21]=u.runDetailsTitle,e[22]=_.view,e[23]=A,e[24]=f,e[25]=j,e[26]=M):(j=e[25],M=e[26]),(0,Z.useLayoutEffect)(j,M);let N;e[27]!==n||e[28]!==m||e[29]!==h?(N=e=>{let t=new URLSearchParams;m&&t.set(`agentId`,m),h&&t.set(`projectId`,h),n(`/workflows/runs/${e}${t.size?`?${t.toString()}`:``}`)},e[27]=n,e[28]=m,e[29]=h,e[30]=N):N=e[30];let P=N,I;e[31]!==P||e[32]!==m||e[33]!==t?(I=async()=>{t&&P((await Ee(t,{ownerAgentId:m})).runId)},e[31]=P,e[32]=m,e[33]=t,e[34]=I):I=e[34];let L=I,z;e[35]!==P||e[36]!==m||e[37]!==t?(z=async e=>{t&&P((await ae(t,e,{ownerAgentId:m})).runId)},e[35]=P,e[36]=m,e[37]=t,e[38]=z):z=e[38];let B=z;if(!_.loading&&!_.view){let t=_.error instanceof Error?_.error.message:i===`zh`?`没有找到这次运行`:`Workflow run not found`,n;return e[39]===t?n=e[40]:(n=(0,$.jsx)(ea,{message:t}),e[39]=t,e[40]=n),n}let V;e[41]!==_||e[42]!==m||e[43]!==t?(V=()=>t&&void Ge(t,{ownerAgentId:m}).then(()=>_.mutate()),e[41]=_,e[42]=m,e[43]=t,e[44]=V):V=e[44];let H;e[45]===L?H=e[46]:(H=()=>void L(),e[45]=L,e[46]=H);let U;e[47]===B?U=e[48]:(U=e=>void B(e),e[47]=B,e[48]=U);let W;e[49]!==_.view||e[50]!==n||e[51]!==m?(W=_.view?()=>n(`/workflows/${_.view.run.definitionId}/edit?repairRun=${encodeURIComponent(_.view.run.id)}${m?`&agentId=${encodeURIComponent(m)}`:``}`):void 0,e[49]=_.view,e[50]=n,e[51]=m,e[52]=W):W=e[52];let G;return e[53]!==v||e[54]!==w.data||e[55]!==i||e[56]!==_.loading||e[57]!==_.view||e[58]!==d||e[59]!==P||e[60]!==m||e[61]!==y||e[62]!==V||e[63]!==H||e[64]!==U||e[65]!==W?(G=(0,$.jsx)(ci,{view:_.view,comparison:w.data,loading:_.loading,language:i,localeTag:d,activeTab:v,onTabChange:y,onCancel:V,onRetry:H,onReplay:U,onOpenRunId:P,ownerAgentId:m,onRepairWorkflow:W}),e[53]=v,e[54]=w.data,e[55]=i,e[56]=_.loading,e[57]=_.view,e[58]=d,e[59]=P,e[60]=m,e[61]=y,e[62]=V,e[63]=H,e[64]=U,e[65]=W,e[66]=G):G=e[66],G}function Yi(e){return e.clearPageHeader}function Xi(e){return e.setPageHeader}function Zi(e){return e.language}function Qi(e,t){let n=new Set(t.map(e=>e.name)),r=`${e}_copy`;if(!n.has(r))return r;for(let e=2;e<100;e+=1){let t=`${r}_${e}`;if(!n.has(t))return t}return`${r}_${Date.now()}`}function $i(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(`main`,{className:`min-h-0 flex-1 overflow-auto bg-surface-panel p-5`,"aria-busy":!0,children:(0,$.jsxs)(`div`,{className:`mx-auto w-full max-w-6xl`,children:[(0,$.jsx)(J,{className:`h-5 w-36`}),(0,$.jsx)(J,{className:`mt-5 h-9 w-80 max-w-full`}),(0,$.jsx)(J,{className:`mt-4 h-[28rem] rounded-xl`})]})}),e[0]=t):t=e[0],t}function ea(e){let t=(0,Q.c)(5),{message:n}=e,r;t[0]===n?r=t[1]:(r=(0,$.jsx)(`p`,{className:`text-sm text-danger`,children:n}),t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(q,{asChild:!0,variant:`secondary`,className:`mt-4`,children:(0,$.jsxs)(l,{to:`/workflows`,children:[(0,$.jsx)(Y,{className:`size-4`}),`Back`]})}),t[2]=i):i=t[2];let a;return t[3]===r?a=t[4]:(a=(0,$.jsx)(`main`,{className:`flex min-h-0 flex-1 items-center justify-center bg-surface-panel p-6 text-center`,children:(0,$.jsxs)(`div`,{children:[r,i]})}),t[3]=r,t[4]=a),a}export{Ki as WorkflowDetailPage,qi as WorkflowEditorPage,Ji as WorkflowRunPage,Kn as WorkflowsPage};
|
|
@@ -5,6 +5,7 @@ These files are stored locally so the connector catalog works offline. Each SVG
|
|
|
5
5
|
| Local file | Official source |
|
|
6
6
|
| --- | --- |
|
|
7
7
|
| `../channel-icons/feishu.svg` | `https://lf-package-cn.feishucdn.com/obj/feishu-static/developer/console/frontend/favicon-logo.svg` |
|
|
8
|
+
| `wecom.svg` | `https://wwcdn.weixin.qq.com/node/wwnl/wwnl/style/images/officialImages$h66b2153.svg` (official `LogoSingle` symbol extracted from the sprite without redrawing its paths) |
|
|
8
9
|
| `dingtalk-mark.svg` | `https://img.alicdn.com/imgextra/i3/O1CN01WMvMRG1ks3Ixc9x1v_!!6000000004738-55-tps-32-32.svg` |
|
|
9
10
|
| `wps-docs.svg` | `https://qn.cache.wpscdn.cn/encs/plus/img/wps-256.524ed83.svg` |
|
|
10
11
|
| `tencent-meeting-mark.svg` | `https://cdn.meeting.tencent.com/pro/Y2JmNmM1ODYtNGFmYS00MzNkLWFhNDItOWJkOGUzODc5M2Ri.svg` (official paths preserved; viewport cropped to the symbol for square icon use) |
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 31 26" role="img" aria-label="WeCom">
|
|
2
|
+
<g fill="none" fill-rule="evenodd">
|
|
3
|
+
<path fill="#0082F0" d="M24.27 6.9a10.746 10.746 0 00-1.945-2.764C20.295 2.034 17.453.68 14.322.323a14.773 14.773 0 00-1.656-.096c-.511 0-1.044.03-1.585.089-3.144.342-6.002 1.69-8.047 3.792a10.757 10.757 0 00-1.955 2.757 9.634 9.634 0 00-1.003 4.277c0 1.909.58 3.79 1.678 5.442a14.96 14.96 0 002.302 2.634v.002l-.378 2.974c-.015.04-.031.08-.04.123-.01.039-.012.079-.016.119-.002.03-.01.06-.01.091 0 .033.008.065.01.098.05.489.458.872.96.872.175 0 .337-.05.478-.131l.014-.008c.02-.012.042-.023.062-.036l.903-.454 2.69-1.352a13.93 13.93 0 002.35.453 14.54 14.54 0 003.243-.009 14.092 14.092 0 003.173-.742 1.752 1.752 0 01-1.192-1.832c-.72.23-1.472.393-2.25.482a12.172 12.172 0 01-2.716.008c-.09-.01-.182-.025-.274-.037a11.976 11.976 0 01-1.78-.373 1.217 1.217 0 00-.37-.057c-.2 0-.392.053-.588.154-.026.014-.05.025-.076.04l-2.21 1.303-.096.057-.003.001c-.047.028-.075.039-.1.039a.15.15 0 01-.146-.153l.085-.345.098-.375.162-.614.179-.686a.93.93 0 00-.334-1.033 9.906 9.906 0 01-.923-.777c-.5-.475-.94-.994-1.31-1.55-.869-1.308-1.328-2.792-1.328-4.293 0-1.164.266-2.297.79-3.366a8.633 8.633 0 011.569-2.21c1.68-1.728 4.045-2.837 6.656-3.12.454-.05.901-.075 1.328-.075.449 0 .916.027 1.388.08 2.599.296 4.949 1.41 6.617 3.138a8.618 8.618 0 011.56 2.215 7.584 7.584 0 01.778 3.338c0 .12-.007.24-.013.36a1.746 1.746 0 012.149.251c.03.03.054.062.08.093a9.11 9.11 0 00.031-.739 9.634 9.634 0 00-.986-4.243"/>
|
|
4
|
+
<path fill="#FB6500" d="M24.149 22.148a1.7 1.7 0 00-.21-.035 5.377 5.377 0 01-2.996-1.67v.001a.418.418 0 10-.534.64c.041.04.082.078.121.118a5.39 5.39 0 011.478 2.761 1.715 1.715 0 00.059.356 1.749 1.749 0 002.926.777 1.754 1.754 0 00-.844-2.948"/>
|
|
5
|
+
<path fill="#0082F0" d="M29.944 17.673a1.75 1.75 0 00-2.98 1.056 5.388 5.388 0 01-1.667 2.999.419.419 0 10.641.534l.117-.121a5.376 5.376 0 012.758-1.48 1.71 1.71 0 00.355-.058 1.754 1.754 0 00.776-2.93"/>
|
|
6
|
+
<path fill="#2DBC00" d="M22.53 12.717a1.754 1.754 0 001.054 2.982 5.376 5.376 0 012.996 1.67.419.419 0 10.534-.641 5.389 5.389 0 01-1.6-2.879 1.625 1.625 0 00-.058-.355 1.75 1.75 0 00-2.926-.777"/>
|
|
7
|
+
<path fill="#FC0" d="M20.543 19.19a1.93 1.93 0 00.015-.106 5.393 5.393 0 011.668-3 .42.42 0 10-.64-.534 5.375 5.375 0 01-2.876 1.6 1.73 1.73 0 00-.355.06 1.754 1.754 0 00-.776 2.93 1.75 1.75 0 002.964-.95"/>
|
|
8
|
+
</g>
|
|
9
|
+
</svg>
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=20260910-1" />
|
|
12
12
|
<link rel="manifest" href="/site.webmanifest?v=20260910-1" />
|
|
13
13
|
<title>XOPC — Keep what matters moving.</title>
|
|
14
|
-
<script type="module" crossorigin src="/assets/index-
|
|
14
|
+
<script type="module" crossorigin src="/assets/index-Cr4SINLG.js"></script>
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-zJ_50EbN.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-BOUWij0V.js">
|
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/download-Dk-ZjtO6.js">
|
|
26
26
|
<link rel="modulepreload" crossorigin href="/assets/plus-Q2yW6OE7.js">
|
|
27
27
|
<link rel="modulepreload" crossorigin href="/assets/x-B_N4OPjy.js">
|
|
28
|
-
<link rel="modulepreload" crossorigin href="/assets/messages-
|
|
29
|
-
<link rel="modulepreload" crossorigin href="/assets/locale-store-
|
|
28
|
+
<link rel="modulepreload" crossorigin href="/assets/messages-D0G_sZvA.js">
|
|
29
|
+
<link rel="modulepreload" crossorigin href="/assets/locale-store-BSkKhYkc.js">
|
|
30
30
|
<link rel="modulepreload" crossorigin href="/assets/cn-JdwAhgNB.js">
|
|
31
31
|
<link rel="modulepreload" crossorigin href="/assets/schemas-88fK3zzl.js">
|
|
32
32
|
<link rel="modulepreload" crossorigin href="/assets/local-apps-Bpja8nC6.js">
|
|
33
33
|
<link rel="modulepreload" crossorigin href="/assets/product-delivery-bv3z8Xkh.js">
|
|
34
34
|
<link rel="modulepreload" crossorigin href="/assets/app-link-C6gA5Nck.js">
|
|
35
35
|
<link rel="modulepreload" crossorigin href="/assets/copy-to-clipboard-HOJ79TWv.js">
|
|
36
|
-
<link rel="modulepreload" crossorigin href="/assets/markdown-view-
|
|
36
|
+
<link rel="modulepreload" crossorigin href="/assets/markdown-view-DXubGEic.js">
|
|
37
37
|
<link rel="modulepreload" crossorigin href="/assets/dist-Che_jiQF.js">
|
|
38
38
|
<link rel="modulepreload" crossorigin href="/assets/vendor-swr-BIWyz7Rc.js">
|
|
39
39
|
<link rel="modulepreload" crossorigin href="/assets/check-DUBLcKHA.js">
|
|
@@ -43,7 +43,23 @@
|
|
|
43
43
|
<link rel="modulepreload" crossorigin href="/assets/settings-shell-layer-context-BTQUDoJ2.js">
|
|
44
44
|
<link rel="modulepreload" crossorigin href="/assets/popover-select-DcsFzD_i.js">
|
|
45
45
|
<link rel="modulepreload" crossorigin href="/assets/circle-check-C23XjkUj.js">
|
|
46
|
+
<link rel="modulepreload" crossorigin href="/assets/clock-3-DnrAnuyZ.js">
|
|
46
47
|
<link rel="modulepreload" crossorigin href="/assets/copy-Dv6d4Dvw.js">
|
|
48
|
+
<link rel="modulepreload" crossorigin href="/assets/ellipsis-0k4rZLoy.js">
|
|
49
|
+
<link rel="modulepreload" crossorigin href="/assets/external-link-DjqjBmc3.js">
|
|
50
|
+
<link rel="modulepreload" crossorigin href="/assets/eye-CABVeTq0.js">
|
|
51
|
+
<link rel="modulepreload" crossorigin href="/assets/folder-open-CyzJ19I9.js">
|
|
52
|
+
<link rel="modulepreload" crossorigin href="/assets/git-branch-Dh9uxTot.js">
|
|
53
|
+
<link rel="modulepreload" crossorigin href="/assets/globe-DSSGFWFn.js">
|
|
54
|
+
<link rel="modulepreload" crossorigin href="/assets/link-2-D_ZKYUW7.js">
|
|
55
|
+
<link rel="modulepreload" crossorigin href="/assets/loader-circle-CifKLtgG.js">
|
|
56
|
+
<link rel="modulepreload" crossorigin href="/assets/message-circle-Badhj-4D.js">
|
|
57
|
+
<link rel="modulepreload" crossorigin href="/assets/message-square-plus-XP0tGdlV.js">
|
|
58
|
+
<link rel="modulepreload" crossorigin href="/assets/message-square-fVE7Ghj1.js">
|
|
59
|
+
<link rel="modulepreload" crossorigin href="/assets/minimize-2-DtOGrlpo.js">
|
|
60
|
+
<link rel="modulepreload" crossorigin href="/assets/pencil-DmIY3Oa-.js">
|
|
61
|
+
<link rel="modulepreload" crossorigin href="/assets/rotate-cw-LIg3Am9S.js">
|
|
62
|
+
<link rel="modulepreload" crossorigin href="/assets/search-DA7gz22f.js">
|
|
47
63
|
<link rel="modulepreload" crossorigin href="/assets/middleware-Pd0e8Igk.js">
|
|
48
64
|
<link rel="modulepreload" crossorigin href="/assets/tasks-CDR_RVbQ.js">
|
|
49
65
|
<link rel="modulepreload" crossorigin href="/assets/capabilities-sAZT4brT.js">
|
|
@@ -52,12 +68,14 @@
|
|
|
52
68
|
<link rel="modulepreload" crossorigin href="/assets/tool-activity-BtJkgjFf.js">
|
|
53
69
|
<link rel="modulepreload" crossorigin href="/assets/turn-outcome-D0SnyZ3Z.js">
|
|
54
70
|
<link rel="modulepreload" crossorigin href="/assets/button-CS04eWY9.js">
|
|
55
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-
|
|
56
|
-
<link rel="modulepreload" crossorigin href="/assets/registry-api-
|
|
57
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-
|
|
71
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-DMqYXHAn.js">
|
|
72
|
+
<link rel="modulepreload" crossorigin href="/assets/registry-api-tx8XCHOs.js">
|
|
73
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-BYMrbKZE.js">
|
|
74
|
+
<link rel="modulepreload" crossorigin href="/assets/models-hub-cache-B0EUPwTv.js">
|
|
58
75
|
<link rel="modulepreload" crossorigin href="/assets/electron-env-Dit0bHgy.js">
|
|
76
|
+
<link rel="modulepreload" crossorigin href="/assets/is-masked-secret-DOkL5b_X.js">
|
|
59
77
|
<link rel="stylesheet" crossorigin href="/assets/markdown-view-DSjfHfaW.css">
|
|
60
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
78
|
+
<link rel="stylesheet" crossorigin href="/assets/index-C4QN4gCi.css">
|
|
61
79
|
</head>
|
|
62
80
|
<body>
|
|
63
81
|
<div id="root"></div>
|
package/dist/package.js
CHANGED
|
@@ -47,8 +47,8 @@ export interface AgentInstanceGateway {
|
|
|
47
47
|
getLastAssistantContent(conversationId: string): string | null;
|
|
48
48
|
/** Build the bounded, policy-filtered context used for this model turn. */
|
|
49
49
|
prepareUserTurnContext(userMessage: AgentMessage, conversationId: string, turnId: string): Promise<import('./context/coordinator.js').ExecutionContextPlan>;
|
|
50
|
-
/**
|
|
51
|
-
|
|
50
|
+
/** Fire-and-forget maintenance of durable user understanding after a completed turn. */
|
|
51
|
+
scheduleUserUnderstandingMaintenance(conversationId: string, userPlainText: string, turnId: string): void;
|
|
52
52
|
/** Bump the per-session "turns since memory review" counter. */
|
|
53
53
|
beginBackgroundReviewUserTurn(conversationId: string): void;
|
|
54
54
|
/** Fire-and-forget review (memory + skill nudges) once the main turn finishes. */
|
|
@@ -156,6 +156,7 @@ export declare class AgentManager implements AgentInstanceGateway {
|
|
|
156
156
|
private workspaceRuntimes;
|
|
157
157
|
private executionContext;
|
|
158
158
|
private backgroundReview;
|
|
159
|
+
private userUnderstandingMaintenance;
|
|
159
160
|
private skillFilesystemWatcher;
|
|
160
161
|
private skillDiskRefreshInProgress;
|
|
161
162
|
private skillDiskRefreshPending;
|
|
@@ -202,8 +203,8 @@ export declare class AgentManager implements AgentInstanceGateway {
|
|
|
202
203
|
ensureMemoryReadyForSession(conversationId: string): Promise<void>;
|
|
203
204
|
/** Build the bounded, policy-filtered context used for this model turn. */
|
|
204
205
|
prepareUserTurnContext(userMessage: AgentMessage, conversationId: string, turnId: string): Promise<ExecutionContextPlan>;
|
|
205
|
-
/**
|
|
206
|
-
|
|
206
|
+
/** Maintain durable user understanding without delaying the user-visible turn. */
|
|
207
|
+
scheduleUserUnderstandingMaintenance(conversationId: string, userPlainText: string, turnId: string): void;
|
|
207
208
|
/**
|
|
208
209
|
* Call once per user turn before the main embedded agent turn.
|
|
209
210
|
* Delegates to {@link BackgroundReviewCoordinator}.
|
|
@@ -211,6 +212,7 @@ export declare class AgentManager implements AgentInstanceGateway {
|
|
|
211
212
|
beginBackgroundReviewUserTurn(conversationId: string): void;
|
|
212
213
|
/** After a successful main turn, may run a quiet follow-up for context review and skills. */
|
|
213
214
|
scheduleBackgroundReviewAfterUserTurn(conversationId: string): void;
|
|
215
|
+
private enqueueUserUnderstandingMaintenance;
|
|
214
216
|
/**
|
|
215
217
|
* Expand `/skill:name` user text into the full skill block for the current turn (WebChat, channels).
|
|
216
218
|
*/
|