@xopcai/xopc 0.0.118 → 0.0.119
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 +2 -1
- package/README.zh-CN.md +2 -1
- 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-dzUrQoeZ.js → agent-avatar-dicebear-CU8J6zou.js} +1 -1
- package/dist/gateway/static/root/assets/agents-B0hkpLhP.js +2 -0
- package/dist/gateway/static/root/assets/app-management-settings-panel-B9vfYoEr.js +1 -0
- package/dist/gateway/static/root/assets/appearance-settings-ClOzIO24.js +1 -0
- package/dist/gateway/static/root/assets/{apps-page--wMEL00f.js → apps-page-DU0dz9Zo.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-Cki4SfU2.js → archive-plugin-BkVIgZzA.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-D-KnS2Do.js → attachment-load-CaCMWh1D.js} +1 -1
- package/dist/gateway/static/root/assets/automation-suggestion-card-DhGDpKP3.js +1 -0
- package/dist/gateway/static/root/assets/automations-page-CTedroVo.js +1 -0
- package/dist/gateway/static/root/assets/{binary-plugins-D2sgvJja.js → binary-plugins-B4TO_bsn.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-DIq-4Gvb.js → block-editor-DJRWwWNI.js} +28 -28
- package/dist/gateway/static/root/assets/browser-settings-page-FCDwOOBK.js +8 -0
- package/dist/gateway/static/root/assets/capability-presets-api-Befi89CL.js +1 -0
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-_G8eb2vJ.js +1 -0
- package/dist/gateway/static/root/assets/channel-recipient-api-BNSuJb5f.js +1 -0
- package/dist/gateway/static/root/assets/channels-settings-C3d5JBJX.js +1 -0
- package/dist/gateway/static/root/assets/cn-BQ_8x0bT.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-yaUNvt5u.js +2 -0
- package/dist/gateway/static/root/assets/cron-expression-B3B1eqnr.js +2 -0
- package/dist/gateway/static/root/assets/dreaming-settings-DNrdg1Ve.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-DYu1KaFQ.js → extension-debug-page-DYh402XV.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-B3W6QwlZ.js → extension-page-Cr_TizrN.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-D7VQ-cxE.js → extension-settings-page-BU1KoKRj.js} +1 -1
- package/dist/gateway/static/root/assets/{fetch-B7xDPu-R.js → fetch-Y7AEX4H3.js} +1 -1
- package/dist/gateway/static/root/assets/format-cron-label-arqgGlVV.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-api-BTBLSeUu.js → gateway-config-api-RbMmAOpX.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-C79wkXef.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-CYj9FWCp.js → gateway-startup-retry-DiD_Tx4N.js} +1 -1
- package/dist/gateway/static/root/assets/goal-detail-page-9paXuHdo.js +1 -0
- package/dist/gateway/static/root/assets/{goals-config-api-CQQgzPr3.js → goals-config-api-DqxVi0p5.js} +1 -1
- package/dist/gateway/static/root/assets/{goals-page-BHitvJAv.js → goals-page-CS0R-Af2.js} +2 -2
- package/dist/gateway/static/root/assets/goals-settings-CSuzZ8Ae.js +1 -0
- package/dist/gateway/static/root/assets/heartbeat-settings-DXPaYJm3.js +1 -0
- package/dist/gateway/static/root/assets/index-BoKafJIZ.js +191 -0
- package/dist/gateway/static/root/assets/index-CArhCcYn.css +1 -0
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-Dvg53qnd.js +1 -0
- package/dist/gateway/static/root/assets/{logs-page-C2Uqvae9.js → logs-page-DLXPcksQ.js} +2 -2
- package/dist/gateway/static/root/assets/{markdown-split-BwOFrJ2E.js → markdown-split-CpHxbtWJ.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-Cnz6Q5G6.js → media-plugins-SFPQRSxq.js} +1 -1
- package/dist/gateway/static/root/assets/messages-CrDHEbss.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-panel-BDF2iyRk.js +2 -0
- package/dist/gateway/static/root/assets/note-detail-page-CSb_hwig.js +2 -0
- package/dist/gateway/static/root/assets/{note-image-lightbox-B-Svpmza.js → note-image-lightbox-BUYURRgn.js} +1 -1
- package/dist/gateway/static/root/assets/notes-page-BsIBSFyZ.js +1 -0
- package/dist/gateway/static/root/assets/{preview-open-alternatives-Bss4TiwP.js → preview-open-alternatives-BHz9iWYA.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-CwzSovcS.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-BRNjdgKq.js → save-bar-controls-CefkOlRg.js} +1 -1
- package/dist/gateway/static/root/assets/schedule-field-CmTRoOcE.js +1 -0
- package/dist/gateway/static/root/assets/{schema-form-Dub9sy8r.js → schema-form-FMKv1vGu.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-PHmX-NmA.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-BRAeKJN4.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-BeFLavGi.js → settings-collapsible-section-BouO6JTi.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-form-section-dmyaPOTG.js → settings-form-section-D-4lBl6X.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-KKrbFjy8.js +1 -0
- package/dist/gateway/static/root/assets/settings-page-layout-BJ4Gsef5.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-CrUjHPQo.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-C8glrdqe.js → share-preview-page-BDy2btRN.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-B18OBmH5.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-C28-2uKQ.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-Bm2ebkwl.js +2 -0
- package/dist/gateway/static/root/assets/system-settings-panel-CRngrlnZ.js +1 -0
- package/dist/gateway/static/root/assets/typed-models-lib-BltBc0b-.js +1 -0
- package/dist/gateway/static/root/assets/{use-channel-catalog-DqlWTsDb.js → use-channel-catalog-CjN-51e6.js} +1 -1
- package/dist/gateway/static/root/assets/user-profile-settings-panel-DJ1dKwZy.js +1 -0
- package/dist/gateway/static/root/assets/utils-B5M5-YvK.js +1 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-C73IVZeC.js → voice-api-key-field-CeEevm7z.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-player-store-C_ArLJPM.js → voice-player-store-B7ykUlHM.js} +1 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-C4PzUQjB.js +3 -0
- package/dist/gateway/static/root/assets/workflows-page-BL84_-Ky.js +18 -0
- package/dist/gateway/static/root/index.html +6 -7
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +4 -5
- package/dist/src/agent/agent-manager.js +4 -8
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/embedded/run-for-session.js +102 -14
- package/dist/src/agent/embedded/run-for-session.js.map +1 -1
- package/dist/src/agent/fallback/candidates.d.ts +0 -8
- package/dist/src/agent/fallback/candidates.js.map +1 -1
- package/dist/src/agent/index.js +1 -1
- package/dist/src/agent/lifecycle/handlers/compaction.d.ts +1 -3
- package/dist/src/agent/lifecycle/handlers/compaction.js +1 -16
- package/dist/src/agent/lifecycle/handlers/compaction.js.map +1 -1
- package/dist/src/agent/lifecycle/progress.d.ts +0 -1
- package/dist/src/agent/lifecycle/progress.js +1 -6
- package/dist/src/agent/lifecycle/progress.js.map +1 -1
- package/dist/src/agent/lifecycle/timeout-wrapper.d.ts +1 -2
- package/dist/src/agent/lifecycle/timeout-wrapper.js +1 -7
- package/dist/src/agent/lifecycle/timeout-wrapper.js.map +1 -1
- package/dist/src/agent/middleware/self-verify.d.ts +0 -1
- package/dist/src/agent/middleware/self-verify.js +0 -2
- package/dist/src/agent/middleware/self-verify.js.map +1 -1
- package/dist/src/agent/models/index.d.ts +1 -1
- package/dist/src/agent/models/manager.d.ts +4 -20
- package/dist/src/agent/models/manager.js +9 -126
- package/dist/src/agent/models/manager.js.map +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.d.ts +0 -4
- package/dist/src/agent/orchestration/agent-orchestrator.js +1 -9
- package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
- package/dist/src/agent/prompt/sections/tooling.js +2 -2
- package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.d.ts +0 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +0 -12
- package/dist/src/agent/prompt/service-prompt-builder.js.map +1 -1
- package/dist/src/agent/prompt/subagent-context.js +1 -1
- package/dist/src/agent/prompt/subagent-context.js.map +1 -1
- package/dist/src/agent/prompt/types.d.ts +1 -1
- package/dist/src/agent/service.d.ts +1 -9
- package/dist/src/agent/service.js +3 -40
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/service.types.d.ts +2 -2
- package/dist/src/agent/session/session-config-service.d.ts +11 -11
- package/dist/src/agent/session/session-config-service.js +14 -14
- package/dist/src/agent/session/session-config-service.js.map +1 -1
- package/dist/src/agent/session/session-inspector.js +3 -2
- package/dist/src/agent/session/session-inspector.js.map +1 -1
- package/dist/src/agent/starter-agents.js +12 -12
- package/dist/src/agent/starter-agents.js.map +1 -1
- package/dist/src/agent/tools/automation-tool.d.ts +14 -0
- package/dist/src/agent/tools/automation-tool.js +102 -0
- package/dist/src/agent/tools/automation-tool.js.map +1 -0
- package/dist/src/agent/tools/delegate-tool.js +1 -1
- package/dist/src/agent/tools/delegate-tool.js.map +1 -1
- package/dist/src/agent/tools/factory.d.ts +3 -3
- package/dist/src/agent/tools/factory.js +2 -2
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/index.d.ts +1 -1
- package/dist/src/agent/tools/index.js +2 -2
- package/dist/src/agent-manifest/resolver.d.ts +1 -0
- package/dist/src/agent-manifest/resolver.js +1 -0
- package/dist/src/agent-manifest/resolver.js.map +1 -1
- package/dist/src/agent-manifest/schema.d.ts +6 -0
- package/dist/src/agent-manifest/schema.js +12 -3
- package/dist/src/agent-manifest/schema.js.map +1 -1
- package/dist/src/ai-assist/text-assist.d.ts +1 -1
- package/dist/src/ai-assist/text-assist.js +56 -0
- package/dist/src/ai-assist/text-assist.js.map +1 -1
- package/dist/src/auth/profiles/store.js.map +1 -1
- package/dist/src/automations/api/routes.d.ts +3 -0
- package/dist/src/automations/api/routes.js +193 -0
- package/dist/src/automations/api/routes.js.map +1 -0
- package/dist/src/automations/domain/index.d.ts +3 -0
- package/dist/src/automations/domain/index.js +3 -0
- package/dist/src/automations/domain/schedule.d.ts +4 -0
- package/dist/src/automations/domain/schedule.js +37 -0
- package/dist/src/automations/domain/schedule.js.map +1 -0
- package/dist/src/automations/domain/types.d.ts +160 -0
- package/dist/src/automations/domain/validation.d.ts +370 -0
- package/dist/src/automations/domain/validation.js +149 -0
- package/dist/src/automations/domain/validation.js.map +1 -0
- package/dist/src/automations/draft/automation-draft-prompt.d.ts +26 -0
- package/dist/src/automations/draft/automation-draft-prompt.js +127 -0
- package/dist/src/automations/draft/automation-draft-prompt.js.map +1 -0
- package/dist/src/automations/draft/automation-draft-service.d.ts +12 -0
- package/dist/src/automations/draft/automation-draft-service.js +135 -0
- package/dist/src/automations/draft/automation-draft-service.js.map +1 -0
- package/dist/src/automations/draft/automation-draft-validator.d.ts +99 -0
- package/dist/src/automations/draft/automation-draft-validator.js +105 -0
- package/dist/src/automations/draft/automation-draft-validator.js.map +1 -0
- package/dist/src/automations/draft/automation-draft.types.d.ts +40 -0
- package/dist/src/automations/draft/index.d.ts +3 -0
- package/dist/src/automations/draft/index.js +3 -0
- package/dist/src/automations/index.d.ts +3 -0
- package/dist/src/automations/index.js +8 -0
- package/dist/src/automations/product-events.d.ts +5 -0
- package/dist/src/automations/product-events.js +21 -0
- package/dist/src/automations/product-events.js.map +1 -0
- package/dist/src/automations/service/action-executor.d.ts +9 -0
- package/dist/src/automations/service/action-executor.js +157 -0
- package/dist/src/automations/service/action-executor.js.map +1 -0
- package/dist/src/automations/service/automation-service.d.ts +54 -0
- package/dist/src/automations/service/automation-service.js +404 -0
- package/dist/src/automations/service/automation-service.js.map +1 -0
- package/dist/src/automations/service/index.d.ts +2 -0
- package/dist/src/automations/service/index.js +3 -0
- package/dist/src/automations/storage/automation-repository.d.ts +6 -0
- package/dist/src/automations/storage/automation-repository.js +61 -0
- package/dist/src/automations/storage/automation-repository.js.map +1 -0
- package/dist/src/automations/storage/automation-run-repository.d.ts +17 -0
- package/dist/src/automations/storage/automation-run-repository.js +130 -0
- package/dist/src/automations/storage/automation-run-repository.js.map +1 -0
- package/dist/src/automations/storage/index.d.ts +2 -0
- package/dist/src/automations/storage/index.js +3 -0
- package/dist/src/channels/plugin-types.d.ts +3 -0
- package/dist/src/chat-commands/builtins/thinking.js.map +1 -1
- package/dist/src/cli/command-catalog.js +0 -39
- package/dist/src/cli/command-catalog.js.map +1 -1
- package/dist/src/cli/command-loaders.js +0 -1
- package/dist/src/cli/command-loaders.js.map +1 -1
- package/dist/src/cli/command-manifest.js +0 -4
- package/dist/src/cli/command-manifest.js.map +1 -1
- package/dist/src/cli/commands/agents.js +7 -6
- package/dist/src/cli/commands/agents.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/{cron-health.d.ts → migrations.d.ts} +1 -1
- package/dist/src/cli/commands/doctor/checks/migrations.js +40 -0
- package/dist/src/cli/commands/doctor/checks/migrations.js.map +1 -0
- package/dist/src/cli/commands/doctor/flow.js +2 -2
- package/dist/src/cli/commands/doctor/flow.js.map +1 -1
- package/dist/src/cli/commands/gateway/call.js +2 -2
- package/dist/src/cli/commands/gateway/call.js.map +1 -1
- package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
- package/dist/src/cli/commands/gateway/run-foreground.js +4 -2
- package/dist/src/cli/commands/gateway/run-foreground.js.map +1 -1
- package/dist/src/cli/commands/init.js +26 -8
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/tui.js +24 -2
- package/dist/src/cli/commands/tui.js.map +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +2 -0
- package/dist/src/cli/utils/init-workspace-core.js.map +1 -1
- package/dist/src/commands/agents.config.d.ts +9 -0
- package/dist/src/commands/agents.config.js +40 -2
- package/dist/src/commands/agents.config.js.map +1 -1
- package/dist/src/config/agent-profile.js +4 -3
- package/dist/src/config/agent-profile.js.map +1 -1
- package/dist/src/config/agent-typed-models.js.map +1 -1
- package/dist/src/config/config-surface.d.ts +3 -0
- package/dist/src/config/index.d.ts +0 -1
- package/dist/src/config/index.js +3 -3
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/config/paths.d.ts +0 -9
- package/dist/src/config/paths.js +1 -14
- package/dist/src/config/paths.js.map +1 -1
- package/dist/src/config/profile.js +0 -1
- package/dist/src/config/profile.js.map +1 -1
- package/dist/src/config/rules.js +0 -5
- package/dist/src/config/rules.js.map +1 -1
- package/dist/src/config/schema.d.ts +13 -12
- package/dist/src/config/schema.js +22 -26
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/config/web-patch.d.ts +0 -12
- package/dist/src/config/web-patch.js +2 -29
- package/dist/src/config/web-patch.js.map +1 -1
- package/dist/src/extensions/api.d.ts +2 -0
- package/dist/src/extensions/api.js +10 -0
- package/dist/src/extensions/api.js.map +1 -1
- package/dist/src/extensions/extension-registry-impl.d.ts +4 -1
- package/dist/src/extensions/extension-registry-impl.js +8 -0
- package/dist/src/extensions/extension-registry-impl.js.map +1 -1
- package/dist/src/extensions/loader.d.ts +3 -3
- package/dist/src/extensions/loader.js +3 -3
- package/dist/src/extensions/loader.js.map +1 -1
- package/dist/src/extensions/sdk/testing.d.ts +2 -0
- package/dist/src/extensions/sdk/testing.js +7 -0
- package/dist/src/extensions/sdk/testing.js.map +1 -1
- package/dist/src/extensions/types/core.d.ts +10 -1
- package/dist/src/extensions/types/index.d.ts +1 -1
- package/dist/src/extensions/types/{phase4.d.ts → registration.d.ts} +2 -2
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agent-builtin-tools.js +1 -1
- package/dist/src/gateway/agent-builtin-tools.js.map +1 -1
- package/dist/src/gateway/agents-admin.d.ts +1 -0
- package/dist/src/gateway/agents-admin.js +13 -15
- package/dist/src/gateway/agents-admin.js.map +1 -1
- package/dist/src/gateway/capability-presets-admin.d.ts +1 -0
- package/dist/src/gateway/capability-presets-admin.js +19 -10
- package/dist/src/gateway/capability-presets-admin.js.map +1 -1
- package/dist/src/gateway/dreaming-automation-reconciler.d.ts +11 -0
- package/dist/src/gateway/dreaming-automation-reconciler.js +105 -0
- package/dist/src/gateway/dreaming-automation-reconciler.js.map +1 -0
- package/dist/src/gateway/heartbeat/service.d.ts +0 -2
- package/dist/src/gateway/heartbeat/service.js +0 -7
- package/dist/src/gateway/heartbeat/service.js.map +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +5 -6
- package/dist/src/gateway/hono/lib/config-payload.js +2 -2
- package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
- package/dist/src/gateway/hono/routes/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +12 -6
- package/dist/src/gateway/hono/routes/config-patch/misc.js.map +1 -1
- package/dist/src/gateway/hono/routes/dreaming.js +27 -37
- package/dist/src/gateway/hono/routes/dreaming.js.map +1 -1
- package/dist/src/gateway/hono/routes/home.d.ts +2 -2
- package/dist/src/gateway/hono/routes/home.js +34 -25
- package/dist/src/gateway/hono/routes/home.js.map +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +10 -6
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/migrations.d.ts +3 -0
- package/dist/src/gateway/hono/routes/migrations.js +35 -0
- package/dist/src/gateway/hono/routes/migrations.js.map +1 -0
- package/dist/src/gateway/hono/routes/public-gateway.js +2 -1
- package/dist/src/gateway/hono/routes/public-gateway.js.map +1 -1
- package/dist/src/gateway/hono/routes/sessions.js +14 -0
- package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
- package/dist/src/gateway/run-loop.js +2 -0
- package/dist/src/gateway/run-loop.js.map +1 -1
- package/dist/src/gateway/security/operator-scopes.js +5 -1
- package/dist/src/gateway/security/operator-scopes.js.map +1 -1
- package/dist/src/gateway/service/config-coordinator.d.ts +4 -4
- package/dist/src/gateway/service/config-coordinator.js +14 -8
- package/dist/src/gateway/service/config-coordinator.js.map +1 -1
- package/dist/src/gateway/service/sessions-api.d.ts +2 -1
- package/dist/src/gateway/service/sessions-api.js +6 -1
- package/dist/src/gateway/service/sessions-api.js.map +1 -1
- package/dist/src/gateway/service.d.ts +7 -3
- package/dist/src/gateway/service.js +61 -27
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/goals/goal-service.js +45 -4
- package/dist/src/goals/goal-service.js.map +1 -1
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/migrations/config/default-capability-preset.d.ts +10 -0
- package/dist/src/migrations/config/default-capability-preset.js +135 -0
- package/dist/src/migrations/config/default-capability-preset.js.map +1 -0
- package/dist/src/migrations/index.d.ts +4 -0
- package/dist/src/migrations/index.js +4 -0
- package/dist/src/migrations/registry.d.ts +8 -0
- package/dist/src/migrations/registry.js +18 -0
- package/dist/src/migrations/registry.js.map +1 -0
- package/dist/src/migrations/runner.d.ts +17 -0
- package/dist/src/migrations/runner.js +191 -0
- package/dist/src/migrations/runner.js.map +1 -0
- package/dist/src/migrations/types.d.ts +34 -0
- package/dist/src/notes/service.js +24 -1
- package/dist/src/notes/service.js.map +1 -1
- package/dist/src/providers/model-registry.d.ts +0 -1
- package/dist/src/providers/model-registry.js +0 -3
- package/dist/src/providers/model-registry.js.map +1 -1
- package/dist/src/routing/resolve-tui-session-key.d.ts +3 -0
- package/dist/src/routing/resolve-tui-session-key.js +14 -3
- package/dist/src/routing/resolve-tui-session-key.js.map +1 -1
- package/dist/src/session/transcript-outline.d.ts +47 -0
- package/dist/src/session/transcript-outline.js +481 -0
- package/dist/src/session/transcript-outline.js.map +1 -0
- package/dist/src/storage/sqlite/index.d.ts +0 -2
- package/dist/src/storage/sqlite/index.js +1 -3
- package/dist/src/storage/sqlite/migrations/016_automations.sql +47 -0
- package/dist/src/storage/sqlite/migrations/017_automation_run_events.sql +14 -0
- package/dist/src/storage/sqlite/migrations/018_automation_safety.sql +1 -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/migrations/runner.js.map +1 -1
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/schema.sql +56 -46
- package/dist/src/tui/backends/embedded-backend.d.ts +6 -0
- package/dist/src/tui/backends/embedded-backend.js +18 -7
- package/dist/src/tui/backends/embedded-backend.js.map +1 -1
- package/dist/src/tui/backends/gateway-sse-backend.d.ts +3 -0
- package/dist/src/tui/backends/gateway-sse-backend.js +14 -0
- package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
- package/dist/src/tui/tui-backend.d.ts +4 -0
- package/dist/src/tui/tui-commands.d.ts +5 -0
- package/dist/src/tui/tui-commands.js +43 -0
- package/dist/src/tui/tui-commands.js.map +1 -1
- package/dist/src/tui/tui-transcript-tree.d.ts +1 -1
- package/dist/src/tui/tui-transcript-tree.js +17 -257
- package/dist/src/tui/tui-transcript-tree.js.map +1 -1
- package/dist/src/tui/tui-types.d.ts +2 -0
- package/dist/src/tui/tui-types.js.map +1 -1
- package/dist/src/tui/tui.js +7 -2
- package/dist/src/tui/tui.js.map +1 -1
- package/dist/src/workflows/domain/index.js +1 -1
- package/dist/src/workflows/domain/run.d.ts +7 -7
- package/dist/src/workflows/domain/run.js.map +1 -1
- package/dist/src/workflows/index.js +2 -2
- package/dist/src/workflows/service/workflow-run-service.d.ts +2 -0
- package/dist/src/workflows/service/workflow-run-service.js +31 -9
- package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
- package/dist/src/workflows/service/workflow-run-service.types.d.ts +1 -1
- package/package.json +4 -2
- package/dist/gateway/static/root/assets/agents-BCxZbkOw.js +0 -2
- package/dist/gateway/static/root/assets/app-management-settings-panel-bxYJVJpx.js +0 -1
- package/dist/gateway/static/root/assets/appearance-settings-BCIykXlI.js +0 -1
- package/dist/gateway/static/root/assets/browser-settings-page-DRhKdn81.js +0 -8
- package/dist/gateway/static/root/assets/capability-presets-api-CorhiHlg.js +0 -1
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-qFx9Jtce.js +0 -1
- package/dist/gateway/static/root/assets/channels-settings-BAwAkqIA.js +0 -1
- package/dist/gateway/static/root/assets/cn-JdwAhgNB.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-BQLcfitM.js +0 -2
- package/dist/gateway/static/root/assets/createLucideIcon-DPHK1VkS.js +0 -1
- package/dist/gateway/static/root/assets/cron-api-qGwmL-24.js +0 -1
- package/dist/gateway/static/root/assets/cron-dreaming-jobs-nCMWCf0p.js +0 -1
- package/dist/gateway/static/root/assets/cron-page-BBWMAj8-.js +0 -3
- package/dist/gateway/static/root/assets/dreaming-settings-Dw89Obml.js +0 -1
- package/dist/gateway/static/root/assets/format-cron-label-BsotZDO5.js +0 -2
- package/dist/gateway/static/root/assets/format-interval-label-BzxafKxR.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-Cmwy58rS.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-l7mu5GWX.js +0 -1
- package/dist/gateway/static/root/assets/goals-settings-CYVY4NGp.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-config-api-DriO_CN9.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-CUQTKxg7.js +0 -1
- package/dist/gateway/static/root/assets/index-C17Tsd_b.css +0 -1
- package/dist/gateway/static/root/assets/index-Cc41r16l.js +0 -191
- package/dist/gateway/static/root/assets/interval-presets-DFPCKW_W.js +0 -1
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-CcVcqstx.js +0 -1
- package/dist/gateway/static/root/assets/messages-B1iSKjiw.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-panel-BfLfcta8.js +0 -2
- package/dist/gateway/static/root/assets/note-detail-page-BjwOQBfT.js +0 -2
- package/dist/gateway/static/root/assets/notes-page-DktdBiwB.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-rfVx96fq.js +0 -1
- package/dist/gateway/static/root/assets/schedule-field-CUCKODde.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-DbtMFuuH.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-5re5gAnP.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-D-WMyLlj.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-Cl-DEJAU.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-CyPVvbLt.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-CleTH1oz.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-Ck8hdXqR.js +0 -2
- package/dist/gateway/static/root/assets/system-settings-panel-DI-LN_8G.js +0 -1
- package/dist/gateway/static/root/assets/typed-models-lib-kX9duch4.js +0 -1
- package/dist/gateway/static/root/assets/user-profile-settings-panel-B-UFPMXy.js +0 -1
- package/dist/gateway/static/root/assets/utils-Dm0hKalR.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-BtFGp2y_.js +0 -18
- package/dist/src/agent/fallback/error.d.ts +0 -22
- package/dist/src/agent/fallback/error.js +0 -32
- package/dist/src/agent/fallback/error.js.map +0 -1
- package/dist/src/agent/fallback/index.d.ts +0 -5
- package/dist/src/agent/fallback/index.js +0 -9
- package/dist/src/agent/fallback/index.js.map +0 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.d.ts +0 -29
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js +0 -76
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js.map +0 -1
- package/dist/src/agent/service/reconcile-dreaming-cron.d.ts +0 -6
- package/dist/src/agent/service/reconcile-dreaming-cron.js +0 -84
- package/dist/src/agent/service/reconcile-dreaming-cron.js.map +0 -1
- package/dist/src/agent/tools/cronjob-tool.d.ts +0 -29
- package/dist/src/agent/tools/cronjob-tool.js +0 -274
- package/dist/src/agent/tools/cronjob-tool.js.map +0 -1
- package/dist/src/cli/commands/cron-cli.d.ts +0 -2
- package/dist/src/cli/commands/cron-cli.js +0 -15
- package/dist/src/cli/commands/cron-cli.js.map +0 -1
- package/dist/src/cli/commands/cron.d.ts +0 -4
- package/dist/src/cli/commands/cron.js +0 -188
- package/dist/src/cli/commands/cron.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/cron-health.js +0 -35
- package/dist/src/cli/commands/doctor/checks/cron-health.js.map +0 -1
- package/dist/src/cron/execution-types.d.ts +0 -42
- package/dist/src/cron/executor.d.ts +0 -67
- package/dist/src/cron/executor.js +0 -669
- package/dist/src/cron/executor.js.map +0 -1
- package/dist/src/cron/index.d.ts +0 -7
- package/dist/src/cron/index.js +0 -7
- package/dist/src/cron/job-content.d.ts +0 -5
- package/dist/src/cron/job-content.js +0 -15
- package/dist/src/cron/job-content.js.map +0 -1
- package/dist/src/cron/run-log-store.d.ts +0 -12
- package/dist/src/cron/run-log-store.js +0 -58
- package/dist/src/cron/run-log-store.js.map +0 -1
- package/dist/src/cron/schedule.d.ts +0 -10
- package/dist/src/cron/schedule.js +0 -85
- package/dist/src/cron/schedule.js.map +0 -1
- package/dist/src/cron/service.d.ts +0 -58
- package/dist/src/cron/service.js +0 -419
- package/dist/src/cron/service.js.map +0 -1
- package/dist/src/cron/types.d.ts +0 -183
- package/dist/src/cron/validation.d.ts +0 -500
- package/dist/src/cron/validation.js +0 -192
- package/dist/src/cron/validation.js.map +0 -1
- package/dist/src/cron/workflow-run-completion.d.ts +0 -23
- package/dist/src/cron/workflow-run-completion.js +0 -72
- package/dist/src/cron/workflow-run-completion.js.map +0 -1
- package/dist/src/extensions/types/phase4.js +0 -1
- package/dist/src/gateway/hono/routes/cron.d.ts +0 -3
- package/dist/src/gateway/hono/routes/cron.js +0 -109
- package/dist/src/gateway/hono/routes/cron.js.map +0 -1
- package/dist/src/storage/sqlite/cron-job-repository.d.ts +0 -6
- package/dist/src/storage/sqlite/cron-job-repository.js +0 -70
- package/dist/src/storage/sqlite/cron-job-repository.js.map +0 -1
- package/dist/src/storage/sqlite/cron-run-repository.d.ts +0 -5
- package/dist/src/storage/sqlite/cron-run-repository.js +0 -96
- package/dist/src/storage/sqlite/cron-run-repository.js.map +0 -1
- /package/dist/src/{cron → automations/domain}/types.js +0 -0
- /package/dist/src/{config/defaults.d.ts → automations/draft/automation-draft.types.js} +0 -0
- /package/dist/src/{config/defaults.js → extensions/types/registration.js} +0 -0
- /package/dist/src/{cron/execution-types.js → migrations/types.js} +0 -0
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-JdwAhgNB.js";import{t as a}from"./messages-B1iSKjiw.js";import{t as o}from"./locale-store-DjbfSsfA.js";import{c as s}from"./fetch-B7xDPu-R.js";import{i as c}from"./vendor-swr-BIWyz7Rc.js";import{$ as l,A as u,Aa as d,As as f,B as p,C as m,Ci as h,D as g,Di as _,E as v,Ei as y,Es as b,F as x,H as S,Ho as C,J as w,Js as T,K as E,Ki as D,M as O,Ma as k,N as A,Ni as j,O as M,Oa as N,Oi as P,Oo as F,P as I,Q as L,Qa as R,Qo as ee,Ra as z,S as B,Si as te,T as V,Ti as H,Ts as U,U as ne,Ua as W,V as re,W as ie,X as ae,Xa as G,Xi as K,Xo as oe,Xs as se,Y as ce,_ as le,b as ue,bs as de,c as fe,d as pe,es as me,f as he,fo as ge,g as _e,gs as q,h as J,i as ve,ia as ye,is as be,j as xe,k as Se,ko as Ce,l as we,la as Te,m as Y,ma as Ee,mn as De,na as X,no as Oe,p as ke,q as Ae,r as je,rs as Me,sn as Ne,ss as Pe,u as Fe,v as Ie,w as Le,wi as Re,x as ze,xo as Be,xr as Ve,y as He,ya as Ue,z as We}from"./index-Cc41r16l.js";var Z=e(t(),1),Q=n(),Ge=[`queued`,`running`,`succeeded`,`attention`],Ke=10080*60*1e3,qe=new Set([`failed`,`timeout`,`cancelled`]);function Je(e){return e.metadata?.sessionKey?.trim()||null}function Ye(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function Xe(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 Ze(e,t=90){let n=e.metadata?.input?.goal?.trim()||(typeof e.metadata?.input?.payload==`string`?e.metadata.input.payload.trim():null)||Xe(e.metadata?.input?.payload,[`query`,`goal`,`prompt`,`input`,`message`])||Xe(e.metadata?.input?.variables,[`query`,`goal`,`prompt`,`input`,`message`]);return n?Ye(n,t):null}function Qe(e,t=90){return Ze(e,t)??Ye(e.title?.trim()||e.definitionId,t)}function $e(e,t=44){return Ye(e.title?.trim()||e.definitionId,t)}function et(e,t){let n=t.trim().toLowerCase();return n?[Ze(e,500),e.title,e.definitionId,e.id].filter(Boolean).join(` `).toLowerCase().includes(n):!0}function tt(e,t){let n=t.workflowFilterId.trim();return e.filter(e=>n&&e.definitionId!==n||!Ie(e,t.triggerFilter??`all`)?!1:et(e,t.searchQuery))}function nt(e){return e.completedAtMs??e.createdAtMs}function rt(e,t){return t-nt(e)<=Ke}function it(e,t){return e.status===`queued`?`queued`:e.status===`running`?`running`:e.status===`succeeded`?rt(e,t)?`succeeded`:null:qe.has(e.status)?`attention`:null}function at(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)=>nt(t)-nt(e))}function ot(e,t){let n={queued:[],running:[],succeeded:[],attention:[]};for(let r of e){let e=it(r,t);e&&n[e].push(r)}let r=at(`succeeded`,n.succeeded),i=r.length,a=r.slice(0,20),o=Math.max(0,i-20);return Ge.map(e=>e===`succeeded`?{id:e,runs:a,totalInWindow:i,hiddenByCap:o}:{id:e,runs:at(e,n[e])})}var st=new Map;function ct(e){let t=st.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:`auto`}),st.set(e,t)),t}function lt(e,t,n){let r=Math.round((t-e)/1e3),i=ct(n);if(r<60)return i.format(-r,`second`);let a=Math.round(r/60);if(a<60)return i.format(-a,`minute`);let o=Math.round(a/60);if(o<48)return i.format(-o,`hour`);let s=Math.round(o/24);return i.format(-s,`day`)}function ut(e){return e.status===`queued`||e.status===`running`}function dt(e){return e.status===`failed`||e.status===`timeout`||e.status===`cancelled`}var $=r(),ft=(0,Z.memo)(function(e){let t=(0,Q.c)(65),{run:n,language:r,localeTag:o,nowMs:s,selected:c,onOpen:l,onOpenChat:u,onCancel:d,onRetry:f}=e,p=a(r).workflows,[m,h]=(0,Z.useState)(!1),g;t[0]===n?g=t[1]:(g=Je(n),t[0]=n,t[1]=g);let _=!g,v;t[2]===n?v=t[3]:(v=ut(n),t[2]=n,t[3]=v);let y=v,b=n.status===`running`||n.status===`queued`,x;t[4]!==n.metrics.agentCount||t[5]!==n.metrics.doneAgentCount?(x=n.metrics.agentCount>0?Math.round(n.metrics.doneAgentCount/n.metrics.agentCount*100):0,t[4]=n.metrics.agentCount,t[5]=n.metrics.doneAgentCount,t[6]=x):x=t[6];let S=x,C=n.metrics.errorAgentCount>0,w=n.startedAtMs??n.createdAtMs,T=he(y?s-w:n.metrics.durationMs),E=J(p.taskArtifacts,{count:n.metrics.artifactCount}),D;t[7]===n?D=t[8]:(D=Qe(n),t[7]=n,t[8]=D);let O=D,k;t[9]===n?k=t[10]:(k=$e(n),t[9]=n,t[10]=k);let A=k,j;t[11]!==l||t[12]!==n?(j=()=>{l(n)},t[11]=l,t[12]=n,t[13]=j):j=t[13];let M=j,N;t[14]!==_||t[15]!==u||t[16]!==n?(N=()=>{_||u(n)},t[14]=_,t[15]=u,t[16]=n,t[17]=N):N=t[17];let P=N,F=c?`border-accent/70 ring-1 ring-accent/30`:`border-edge`,I;t[18]===F?I=t[19]:(I=i(`group relative overflow-hidden rounded-xl border bg-surface-panel p-3.5 transition-colors`,F,`hover:border-edge-strong hover:bg-surface-hover/50`),t[18]=F,t[19]=I);let L;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(L=i(`w-full text-left`,K.focusRingPanel),t[20]=L):L=t[20];let R;t[21]===O?R=t[22]:(R=(0,$.jsx)(`div`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-fg`,children:O}),t[21]=O,t[22]=R);let z;t[23]===A?z=t[24]:(z=(0,$.jsx)(`div`,{className:`mt-1 truncate text-[11px] font-medium text-fg-muted`,children:A}),t[23]=A,t[24]=z);let B;t[25]!==R||t[26]!==z?(B=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[R,z]}),t[25]=R,t[26]=z,t[27]=B):B=t[27];let te;t[28]===n.status?te=t[29]:(te=i(`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold shadow-sm`,He(n.status)),t[28]=n.status,t[29]=te);let V;t[30]!==o||t[31]!==s||t[32]!==w?(V=lt(w,s,o),t[30]=o,t[31]=s,t[32]=w,t[33]=V):V=t[33];let H;t[34]===V?H=t[35]:(H=(0,$.jsx)(`span`,{children:V}),t[34]=V,t[35]=H);let U=T===`—`?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,$.jsx)(`span`,{children:J(p.taskElapsed,{duration:T})})]}),ne;t[36]!==H||t[37]!==U?(ne=(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5 text-[11px] text-fg-subtle`,children:[H,U]}),t[36]=H,t[37]=U,t[38]=ne):ne=t[38];let W=n.metrics.artifactCount>0?(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 font-medium text-fg-muted`,children:E}):null,re=c?(0,$.jsx)(`span`,{className:`font-medium text-accent-fg`,children:p.taskOpenDetails}):null,ie;t[39]!==W||t[40]!==re?(ie=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-subtle`,children:[W,re]}),t[39]=W,t[40]=re,t[41]=ie):ie=t[41];let ae;t[42]===h?ae=t[43]:(ae=()=>h(mt),t[42]=h,t[43]=ae);let G;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,$.jsx)(ee,{className:`size-4`,"aria-hidden":!0}),t[44]=G):G=t[44];let oe;t[45]!==p.taskActionsAria||t[46]!==m||t[47]!==ae?(oe=(0,$.jsx)(X,{variant:`ghost`,className:`size-7 p-0 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,"aria-label":p.taskActionsAria,"aria-expanded":m,onClick:ae,children:G}),t[45]=p.taskActionsAria,t[46]=m,t[47]=ae,t[48]=oe):oe=t[48];let se;t[49]!==y||t[50]!==_||t[51]!==P||t[52]!==p.cancel||t[53]!==p.continueInChat||t[54]!==p.rerun||t[55]!==p.taskCloseMenu||t[56]!==m||t[57]!==d||t[58]!==f||t[59]!==n||t[60]!==h?(se=m?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-10 cursor-default`,"aria-label":p.taskCloseMenu,onClick:()=>h(!1)}),(0,$.jsxs)(`div`,{className:`absolute right-0 z-20 mt-1 min-w-36 rounded-lg border border-edge bg-surface-panel py-1 shadow-surface`,children:[(0,$.jsx)(pt,{label:p.continueInChat,disabled:_,onClick:()=>{h(!1),P()}}),y?(0,$.jsx)(pt,{label:p.cancel,tone:`danger`,onClick:()=>{h(!1),d(n.id)}}):null,dt(n)?(0,$.jsx)(pt,{label:p.rerun,onClick:()=>{h(!1),f(n.id)}}):null]})]}):null,t[49]=y,t[50]=_,t[51]=P,t[52]=p.cancel,t[53]=p.continueInChat,t[54]=p.rerun,t[55]=p.taskCloseMenu,t[56]=m,t[57]=d,t[58]=f,t[59]=n,t[60]=h,t[61]=se):se=t[61];let ce;return t[62]!==oe||t[63]!==se?(ce=(0,$.jsxs)(`div`,{className:`absolute right-2 top-2`,children:[oe,se]}),t[62]=oe,t[63]=se,t[64]=ce):ce=t[64],(0,$.jsxs)(`div`,{className:I,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:M,"aria-label":`${p.taskOpenDetails}: ${O}`,"aria-current":c?`true`:void 0,className:L,children:[(0,$.jsxs)(`div`,{className:`pr-7`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-2`,children:[B,(0,$.jsx)(`span`,{className:te,children:p.status[n.status]??n.status})]}),ne]}),b?(0,$.jsxs)(`div`,{className:`mt-2.5`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-fg-muted`,children:[(0,$.jsx)(`span`,{children:J(p.agentProgress,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}),(0,$.jsxs)(`span`,{children:[S,`%`]})]}),(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:`${S}%`}})})]}):null,ie,C?(0,$.jsxs)(`div`,{className:`mt-2 flex items-center gap-1 text-[11px] text-amber-700 dark:text-amber-300`,children:[(0,$.jsx)(Ee,{className:`size-3 shrink-0`,"aria-hidden":!0}),J(p.runRowErrorSummary,{count:n.metrics.errorAgentCount})]}):null]}),ce]})});function pt(e){let t=(0,Q.c)(8),{label:n,disabled:r,tone:a,onClick:o}=e,s=r?`cursor-not-allowed text-fg-subtle`:`text-fg hover:bg-surface-hover`,c=a===`danger`&&!r&&`text-red-600 dark:text-red-300`,l;t[0]!==s||t[1]!==c?(l=i(`block w-full px-3 py-1.5 text-left text-xs`,s,c),t[0]=s,t[1]=c,t[2]=l):l=t[2];let u;return t[3]!==r||t[4]!==n||t[5]!==o||t[6]!==l?(u=(0,$.jsx)(`button`,{type:`button`,disabled:r,onClick:o,className:l,children:n}),t[3]=r,t[4]=n,t[5]=o,t[6]=l,t[7]=u):u=t[7],u}function mt(e){return!e}function ht(e,t){return t.boardColumns[e]}var gt=(0,Z.memo)(function(e){let t=(0,Q.c)(14),{column:n,language:r,localeTag:o,nowMs:s,selectedRunId:c,onOpenRun:l,onOpenRunChat:u,onCancelRun:d,onRetryRun:f}=e,p=a(r).workflows,[m,h]=(0,Z.useState)(!1),g=n.id===`succeeded`,_=g?5:n.runs.length,v;t[0]!==_||t[1]!==n.runs||t[2]!==m||t[3]!==g?(v=g&&!m?n.runs.slice(0,_):n.runs,t[0]=_,t[1]=n.runs,t[2]=m,t[3]=g,t[4]=v):v=t[4];let y=v,b=g&&n.runs.length>5&&!m,x=g&&m,S;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(S=i(`flex h-full w-80 shrink-0 snap-center flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel/40`),t[5]=S):S=t[5];let C;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,$.jsx)(`span`,{className:`size-2 rounded-full bg-accent`,"aria-hidden":!0}),t[6]=C):C=t[6];let w;t[7]===n.runs.length?w=t[8]:(w=(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2.5 py-1 text-xs font-semibold tabular-nums text-fg-muted`,children:n.runs.length}),t[7]=n.runs.length,t[8]=w);let T=y.length===0?(0,$.jsx)(`div`,{className:`flex min-h-32 items-center justify-center rounded-xl border border-dashed border-edge bg-surface-panel/40 px-4 py-6 text-center text-xs text-fg-subtle`,children:p.boardColumnEmpty}):y.map(e=>(0,$.jsx)(ft,{run:e,language:r,localeTag:o,nowMs:s,selected:e.id===c,onOpen:l,onOpenChat:u,onCancel:d,onRetry:f},e.id)),E=b?(0,$.jsx)(X,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>h(!0),children:J(p.boardExpandSucceeded,{count:Math.min(n.runs.length,n.totalInWindow??n.runs.length)})}):null,D=x?(0,$.jsx)(X,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>h(!1),children:p.boardCollapseSucceeded}):null,O=g&&(n.hiddenByCap??0)>0?(0,$.jsx)(`p`,{className:`px-1 text-center text-[11px] text-fg-subtle`,children:J(p.boardSucceededCapHint,{count:n.hiddenByCap??0})}):null,k;return t[9]!==T||t[10]!==E||t[11]!==D||t[12]!==O?(k=(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2.5`,children:[T,E,D,O]}),t[9]=T,t[10]=E,t[11]=D,t[12]=O,t[13]=k):k=t[13],(0,$.jsxs)(`section`,{className:S,"aria-label":ht(n.id,p),children:[(0,$.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between gap-2 rounded-t-2xl border-b border-edge-subtle bg-surface-panel/90 px-3.5 py-3 backdrop-blur`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[C,(0,$.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:ht(n.id,p)})]}),w]}),k]})}),_t=(0,Z.memo)(function(e){let t=(0,Q.c)(45),{runs:n,language:r,localeTag:i,labels:a,searchQuery:o,workflowFilterId:s,triggerFilter:c,selectedRunId:l,loading:u,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m,onStart:h}=e,g;t[0]===n?g=t[1]:(g=n.some(vt),t[0]=n,t[1]=g);let _=g,[v,y]=(0,Z.useState)(yt),b,x;t[2]===_?(b=t[3],x=t[4]):(b=()=>{if(!_)return;let e=window.setInterval(()=>y(Date.now()),1e3);return()=>window.clearInterval(e)},x=[_],t[2]=_,t[3]=b,t[4]=x),(0,Z.useEffect)(b,x);let S;t[5]!==v||t[6]!==n||t[7]!==o||t[8]!==c||t[9]!==s?(S=ot(tt(n,{searchQuery:o,workflowFilterId:s,triggerFilter:c}),v),t[5]=v,t[6]=n,t[7]=o,t[8]=c,t[9]=s,t[10]=S):S=t[10];let C=S,w=C.reduce(bt,0);if(u&&w===0){let e;return t[11]===a.loading?e=t[12]:(e=(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:a.loading}),t[11]=a.loading,t[12]=e),e}if(!u&&w===0){let e;t[13]===a.boardEmptyTitle?e=t[14]:(e=(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:a.boardEmptyTitle}),t[13]=a.boardEmptyTitle,t[14]=e);let n;t[15]===a.boardEmptyHint?n=t[16]:(n=(0,$.jsx)(`p`,{className:`mx-auto mt-2 max-w-md text-sm leading-6 text-fg-muted`,children:a.boardEmptyHint}),t[15]=a.boardEmptyHint,t[16]=n);let r;t[17]!==a.boardStart||t[18]!==h?(r=(0,$.jsx)(`div`,{className:`mt-4 flex justify-center`,children:(0,$.jsx)(X,{variant:`primary`,onClick:h,children:a.boardStart})}),t[17]=a.boardStart,t[18]=h,t[19]=r):r=t[19];let i;return t[20]!==e||t[21]!==n||t[22]!==r?(i=(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col items-center justify-center rounded-2xl border border-dashed border-edge bg-surface-panel/40 px-6 py-12 text-center`,children:[e,n,r]}),t[20]=e,t[21]=n,t[22]=r,t[23]=i):i=t[23],i}let T;if(t[24]!==C||t[25]!==r||t[26]!==i||t[27]!==v||t[28]!==p||t[29]!==d||t[30]!==f||t[31]!==m||t[32]!==l){let e;t[34]!==r||t[35]!==i||t[36]!==v||t[37]!==p||t[38]!==d||t[39]!==f||t[40]!==m||t[41]!==l?(e=e=>(0,$.jsx)(gt,{column:e,language:r,localeTag:i,nowMs:v,selectedRunId:l,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m},e.id),t[34]=r,t[35]=i,t[36]=v,t[37]=p,t[38]=d,t[39]=f,t[40]=m,t[41]=l,t[42]=e):e=t[42],T=C.map(e),t[24]=C,t[25]=r,t[26]=i,t[27]=v,t[28]=p,t[29]=d,t[30]=f,t[31]=m,t[32]=l,t[33]=T}else T=t[33];let E;return t[43]===T?E=t[44]:(E=(0,$.jsx)(`div`,{className:`-mx-1 flex h-full min-w-0 snap-x snap-mandatory gap-3 overflow-x-auto px-1 pb-3`,children:T}),t[43]=T,t[44]=E),E});function vt(e){return e.status===`queued`||e.status===`running`}function yt(){return Date.now()}function bt(e,t){return e+t.runs.length}var xt=`export const meta = {
|
|
2
|
-
name: 'my_workflow',
|
|
3
|
-
description: 'Describe what this workflow does.',
|
|
4
|
-
whenToUse: 'When the user asks for ...',
|
|
5
|
-
examplePrompts: [
|
|
6
|
-
{ field: 'goal', text: 'Example goal for this workflow' },
|
|
7
|
-
],
|
|
8
|
-
tags: ['custom'],
|
|
9
|
-
estimatedAgents: { min: 2, max: 4 },
|
|
10
|
-
phases: [{ title: 'Step 1' }, { title: 'Synthesize' }],
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
phase('Step 1')
|
|
14
|
-
const first = await agent('Do the first step.', { label: 'step 1' })
|
|
15
|
-
|
|
16
|
-
phase('Synthesize')
|
|
17
|
-
return await agent('Summarize:\\n\\n' + first, { label: 'synthesis' })
|
|
18
|
-
`;function St(e){let t=(0,Q.c)(48),{open:n,language:r,ownerAgentId:i,saving:o,initialDraft:s,onClose:c,onSave:l,onSaveAndStart:u}=e,d;t[0]===r?d=t[1]:(d=a(r),t[0]=r,t[1]=d);let f=d.workflows,[p,m]=(0,Z.useState)(`ai`),[g,v]=(0,Z.useState)(``),[b,x]=(0,Z.useState)(``),S=s?.mode===`edit`,C=S?f.editWorkflowTitle:f.createWorkflowTitle,w=S?f.editWorkflowHint:s?.mode===`copy`?f.createWorkflowHintFromCopy:f.createWorkflowHint,T,E;t[2]!==s||t[3]!==n?(T=()=>{n&&(m(s?`manual`:`ai`),v(s?.name??``),x(s?.script??``))},E=[s,n],t[2]=s,t[3]=n,t[4]=T,t[5]=E):(T=t[4],E=t[5]),(0,Z.useEffect)(T,E);let D;t[6]===c?D=t[7]:(D=e=>!e&&c(),t[6]=c,t[7]=D);let O;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(H,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[8]=O):O=t[8];let k;t[9]===C?k=t[10]:(k=(0,$.jsx)(P,{className:`text-base font-semibold text-fg`,children:C}),t[9]=C,t[10]=k);let A;t[11]===w?A=t[12]:(A=(0,$.jsx)(Re,{className:`mt-1 text-sm text-fg-muted`,children:w}),t[11]=w,t[12]=A);let j=p===`ai`,M,F;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>m(`ai`),M=(0,$.jsx)(N,{className:`size-4`,"aria-hidden":!0}),t[13]=M,t[14]=F):(M=t[13],F=t[14]);let I;t[15]!==f.createWorkflowAiTab||t[16]!==j?(I=(0,$.jsx)(Ct,{active:j,onClick:F,icon:M,children:f.createWorkflowAiTab}),t[15]=f.createWorkflowAiTab,t[16]=j,t[17]=I):I=t[17];let L=p===`manual`,R,ee;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(R=()=>m(`manual`),ee=(0,$.jsx)(Pe,{className:`size-4`,"aria-hidden":!0}),t[18]=R,t[19]=ee):(R=t[18],ee=t[19]);let z;t[20]!==f.createWorkflowManualTab||t[21]!==L?(z=(0,$.jsx)(Ct,{active:L,onClick:R,icon:ee,children:f.createWorkflowManualTab}),t[20]=f.createWorkflowManualTab,t[21]=L,t[22]=z):z=t[22];let B;t[23]!==I||t[24]!==z?(B=(0,$.jsxs)(`div`,{className:`mt-4 inline-flex rounded-xl border border-edge bg-surface-base p-1`,children:[I,z]}),t[23]=I,t[24]=z,t[25]=B):B=t[25];let te;t[26]!==B||t[27]!==k||t[28]!==A?(te=(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[k,A,B]}),t[26]=B,t[27]=k,t[28]=A,t[29]=te):te=t[29];let V;t[30]!==s||t[31]!==r||t[32]!==p||t[33]!==c||t[34]!==l||t[35]!==u||t[36]!==i||t[37]!==o||t[38]!==g||t[39]!==b?(V=p===`ai`?(0,$.jsx)(wt,{language:r,ownerAgentId:i,saving:o,initialDraft:s,name:g,setName:v,script:b,setScript:x,onClose:c,onSave:l,onSaveAndStart:u}):(0,$.jsx)(Tt,{language:r,saving:o,initialDraft:s,name:g,setName:v,script:b,setScript:x,onClose:c,onSave:l}),t[30]=s,t[31]=r,t[32]=p,t[33]=c,t[34]=l,t[35]=u,t[36]=i,t[37]=o,t[38]=g,t[39]=b,t[40]=V):V=t[40];let U;t[41]!==te||t[42]!==V?(U=(0,$.jsxs)(y,{children:[O,(0,$.jsxs)(h,{className:`fixed left-1/2 top-1/2 z-66 flex h-[min(92vh,52rem)] w-[min(100%-2rem,72rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[te,V]})]}),t[41]=te,t[42]=V,t[43]=U):U=t[43];let ne;return t[44]!==n||t[45]!==U||t[46]!==D?(ne=(0,$.jsx)(_,{open:n,onOpenChange:D,children:U}),t[44]=n,t[45]=U,t[46]=D,t[47]=ne):ne=t[47],ne}function Ct(e){let t=(0,Q.c)(5),{active:n,onClick:r,icon:i,children:a}=e,o=n?`inline-flex h-8 items-center gap-2 rounded-lg bg-surface-panel px-3 text-sm font-medium text-fg shadow-surface`:`inline-flex h-8 items-center gap-2 rounded-lg px-3 text-sm font-medium text-fg-muted hover:text-fg`,s;return t[0]!==a||t[1]!==i||t[2]!==r||t[3]!==o?(s=(0,$.jsxs)(`button`,{type:`button`,onClick:r,className:o,children:[i,a]}),t[0]=a,t[1]=i,t[2]=r,t[3]=o,t[4]=s):s=t[4],s}function wt({language:e,ownerAgentId:t,saving:n,initialDraft:r,name:i,setName:o,script:s,setScript:c,onClose:l,onSave:u,onSaveAndStart:d}){let f=a(e).workflows,[m,h]=(0,Z.useState)(``),[g,_]=(0,Z.useState)(null),[v,y]=(0,Z.useState)({allowNetwork:!1,fileSystem:`read`,maxPhases:4,maxSubagents:8,outputFormat:`report`}),[b,x]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(null),w=(0,Z.useMemo)(()=>g?.validation.errors.map(e=>e.message)??[],[g]),T=(0,Z.useMemo)(()=>g?.lint.filter(e=>e.severity===`error`)??[],[g]),E=m.trim().length>0&&!b,D=!!(g&&i.trim()&&s.trim()&&g.validation.valid&&T.length===0&&!n),O=s.trim().length>0,k=O?f.nlBuilderEditPromptLabel:f.nlBuilderPromptLabel,A=O?f.nlBuilderEditPromptPlaceholder:f.nlBuilderPromptPlaceholder,j=O?`improve`:`create`,M=async n=>{if(m.trim()){x(!0),C(null);try{let r=await p({prompt:m,agentId:t,language:e===`zh`?`zh`:`en`,mode:n,existingScript:n===`improve`?s:void 0,constraints:v});_(r),o(r.name),c(r.script)}catch(e){C(e instanceof Error?e.message:f.nlBuilderGenerateFailed)}finally{x(!1)}}},P=async()=>{D&&await u({name:i.trim(),script:s})&&l()},F=async()=>{D&&await d({name:i.trim(),script:s,goal:m.trim()})};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-4 overflow-auto px-5 py-4 lg:grid-cols-[minmax(18rem,0.9fr)_minmax(24rem,1.4fr)]`,children:[(0,$.jsxs)(`section`,{className:`space-y-3`,children:[(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:k}),(0,$.jsx)(`textarea`,{value:m,onChange:e=>h(e.target.value),placeholder:A,className:`mt-1.5 min-h-36 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm leading-6 text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}),(0,$.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,$.jsx)(Et,{label:f.nlBuilderMaxPhases,value:v.maxPhases??4,min:1,max:8,onChange:e=>y(t=>({...t,maxPhases:e}))}),(0,$.jsx)(Et,{label:f.nlBuilderMaxAgents,value:v.maxSubagents??8,min:1,max:20,onChange:e=>y(t=>({...t,maxSubagents:e}))})]}),(0,$.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,$.jsxs)(`label`,{className:`flex items-center gap-2 rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg-muted`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:!!v.allowNetwork,onChange:e=>y(t=>({...t,allowNetwork:e.target.checked}))}),f.nlBuilderAllowNetwork]}),(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:f.nlBuilderFilesystem}),(0,$.jsxs)(`select`,{value:v.fileSystem??`read`,onChange:e=>y(t=>({...t,fileSystem:e.target.value})),className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,children:[(0,$.jsx)(`option`,{value:`none`,children:`none`}),(0,$.jsx)(`option`,{value:`read`,children:`read`}),(0,$.jsx)(`option`,{value:`write`,children:`write`})]})]})]}),(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,$.jsxs)(X,{variant:`primary`,disabled:!E,onClick:()=>void M(j),children:[(0,$.jsx)(N,{className:`size-4`,"aria-hidden":!0}),b?f.nlBuilderGenerating:O?f.nlBuilderRewriteExisting:f.nlBuilderGenerate]})}),S?(0,$.jsx)(zt,{text:S}):null,g?(0,$.jsx)(At,{draft:g,labels:f}):null]}),(0,$.jsxs)(`section`,{className:`min-w-0 space-y-3`,children:[(0,$.jsx)(Ot,{initialDraft:r,labels:f}),(0,$.jsx)(Dt,{labels:f,name:i,setName:o}),(0,$.jsx)(kt,{labels:f,script:s,setScript:c,minHeightClass:`min-h-96`}),g?(0,$.jsx)(jt,{draft:g,labels:f,validationIssues:w}):null]})]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,$.jsx)(X,{variant:`secondary`,onClick:l,disabled:n||b,children:f.cancelDialog}),(0,$.jsx)(X,{variant:`secondary`,disabled:!D,onClick:()=>void P(),children:n?f.savingWorkflow:f.saveWorkflow}),(0,$.jsx)(X,{variant:`primary`,disabled:!D,onClick:()=>void F(),children:f.nlBuilderSaveAndStart})]})]})}function Tt({language:e,saving:t,initialDraft:n,name:r,setName:i,script:o,setScript:s,onClose:c,onSave:u}){let d=a(e).workflows,[f,p]=(0,Z.useState)(!1),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(null),[v,y]=(0,Z.useState)(null),b=r.trim(),x=!!(b&&o.trim());(0,Z.useEffect)(()=>{if(!x){h(!1),_(null),y(null);return}let e=!1,t=window.setTimeout(()=>{h(!0),_(null),l(b,o).then(t=>{e||y(t)}).catch(t=>{e||(y(null),_(t instanceof Error?t.message:d.validateWorkflowFailed))}).finally(()=>{e||h(!1)})},450);return()=>{e=!0,window.clearTimeout(t)}},[x,d.validateWorkflowFailed,o,b]);let S=(0,Z.useMemo)(()=>g?[g]:v?.errors.map(e=>e.message)??[],[g,v]),C=f||m||v!=null||g!=null,w=x&&!t&&!m&&v?.valid===!0;(0,Z.useEffect)(()=>{!n&&!o.trim()&&s(xt),p(!1),h(!1),_(null),y(null)},[n,o,s]);let T=async()=>{if(p(!0),!(!x||t)){h(!0),_(null);try{let e=await l(b,o);if(y(e),!e.valid)return;await u({name:b,script:o})&&c()}catch(e){y(null),_(e instanceof Error?e.message:d.validateWorkflowFailed)}finally{h(!1)}}};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-3 overflow-auto px-5 py-4`,children:[(0,$.jsx)(Ot,{initialDraft:n,labels:d}),(0,$.jsx)(Dt,{labels:d,name:r,setName:e=>{i(e),y(null),_(null)}}),(0,$.jsx)(kt,{labels:d,script:o,setScript:e=>{s(e),y(null),_(null)},minHeightClass:`min-h-72`}),C?(0,$.jsx)(Ft,{labels:d,validating:m,validationIssues:S,validationResult:v}):null]}),(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,$.jsx)(X,{variant:`secondary`,onClick:c,disabled:t,children:d.cancelDialog}),(0,$.jsx)(X,{variant:`primary`,disabled:!w,onClick:()=>void T(),children:t?d.savingWorkflow:d.saveWorkflow})]})]})}function Et(e){let t=(0,Q.c)(12),{label:n,value:r,min:i,max:a,onChange:o}=e,s;t[0]===n?s=t[1]:(s=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:n}),t[0]=n,t[1]=s);let c;t[2]===o?c=t[3]:(c=e=>o(Number(e.target.value)||void 0),t[2]=o,t[3]=c);let l;t[4]!==a||t[5]!==i||t[6]!==c||t[7]!==r?(l=(0,$.jsx)(`input`,{type:`number`,min:i,max:a,value:r,onChange:c,className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`}),t[4]=a,t[5]=i,t[6]=c,t[7]=r,t[8]=l):l=t[8];let u;return t[9]!==s||t[10]!==l?(u=(0,$.jsxs)(`label`,{className:`block`,children:[s,l]}),t[9]=s,t[10]=l,t[11]=u):u=t[11],u}function Dt(e){let t=(0,Q.c)(11),{labels:n,name:r,setName:i}=e,a;t[0]===n.workflowNameLabel?a=t[1]:(a=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:n.workflowNameLabel}),t[0]=n.workflowNameLabel,t[1]=a);let o;t[2]===i?o=t[3]:(o=e=>i(e.target.value),t[2]=i,t[3]=o);let s;t[4]!==n.workflowNamePlaceholder||t[5]!==r||t[6]!==o?(s=(0,$.jsx)(`input`,{value:r,onChange:o,placeholder:n.workflowNamePlaceholder,className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 font-mono text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}),t[4]=n.workflowNamePlaceholder,t[5]=r,t[6]=o,t[7]=s):s=t[7];let c;return t[8]!==a||t[9]!==s?(c=(0,$.jsxs)(`label`,{className:`block`,children:[a,s]}),t[8]=a,t[9]=s,t[10]=c):c=t[10],c}function Ot(e){let t=(0,Q.c)(7),{initialDraft:n,labels:r}=e;if(!n)return null;let i;t[0]!==n.mode||t[1]!==n.sourceTitle||t[2]!==r.copyWorkflowNotice||t[3]!==r.editWorkflowNotice?(i=n.mode===`copy`?r.copyWorkflowNotice.replace(`{{title}}`,n.sourceTitle):r.editWorkflowNotice.replace(`{{title}}`,n.sourceTitle),t[0]=n.mode,t[1]=n.sourceTitle,t[2]=r.copyWorkflowNotice,t[3]=r.editWorkflowNotice,t[4]=i):i=t[4];let a=i,o;return t[5]===a?o=t[6]:(o=(0,$.jsx)(`div`,{className:`rounded-xl border border-accent/20 bg-accent-soft/60 px-3 py-2 text-sm leading-6 text-accent-fg`,children:a}),t[5]=a,t[6]=o),o}function kt(e){let t=(0,Q.c)(11),{labels:n,script:r,setScript:i,minHeightClass:a}=e,o;t[0]===n.workflowScriptLabel?o=t[1]:(o=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:n.workflowScriptLabel}),t[0]=n.workflowScriptLabel,t[1]=o);let s;t[2]===i?s=t[3]:(s=e=>i(e.target.value),t[2]=i,t[3]=s);let c=`mt-1.5 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 font-mono text-xs leading-5 text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/20 ${a}`,l;t[4]!==r||t[5]!==s||t[6]!==c?(l=(0,$.jsx)(`textarea`,{value:r,onChange:s,spellCheck:!1,className:c}),t[4]=r,t[5]=s,t[6]=c,t[7]=l):l=t[7];let u;return t[8]!==o||t[9]!==l?(u=(0,$.jsxs)(`label`,{className:`block`,children:[o,l]}),t[8]=o,t[9]=l,t[10]=u):u=t[10],u}function At(e){let t=(0,Q.c)(23),{draft:n,labels:r}=e,i=n.manifest.title??n.name,a;t[0]===i?a=t[1]:(a=(0,$.jsx)(`div`,{className:`text-sm font-semibold text-fg`,children:i}),t[0]=i,t[1]=a);let o;t[2]===n.explanation?o=t[3]:(o=(0,$.jsx)(`p`,{className:`text-xs leading-5 text-fg-muted`,children:n.explanation}),t[2]=n.explanation,t[3]=o);let s;t[4]!==n.repairAttempts||t[5]!==r.nlBuilderAutoRepaired?(s=n.repairAttempts>0?(0,$.jsx)(`div`,{className:`text-xs font-medium text-accent-fg`,children:r.nlBuilderAutoRepaired.replace(`{count}`,String(n.repairAttempts))}):null,t[4]=n.repairAttempts,t[5]=r.nlBuilderAutoRepaired,t[6]=s):s=t[6];let c;t[7]!==n.permissionsSummary||t[8]!==r.nlBuilderPermissions?(c=(0,$.jsx)(Lt,{title:r.nlBuilderPermissions,items:n.permissionsSummary}),t[7]=n.permissionsSummary,t[8]=r.nlBuilderPermissions,t[9]=c):c=t[9];let l;t[10]!==n.assumptions||t[11]!==r.nlBuilderAssumptions?(l=(0,$.jsx)(Lt,{title:r.nlBuilderAssumptions,items:n.assumptions}),t[10]=n.assumptions,t[11]=r.nlBuilderAssumptions,t[12]=l):l=t[12];let u;t[13]!==n.risks||t[14]!==r.nlBuilderRisks?(u=(0,$.jsx)(Lt,{title:r.nlBuilderRisks,items:n.risks}),t[13]=n.risks,t[14]=r.nlBuilderRisks,t[15]=u):u=t[15];let d;return t[16]!==a||t[17]!==o||t[18]!==s||t[19]!==c||t[20]!==l||t[21]!==u?(d=(0,$.jsxs)(`div`,{className:`space-y-2 rounded-xl border border-edge bg-surface-base/50 p-3`,children:[a,o,s,c,l,u]}),t[16]=a,t[17]=o,t[18]=s,t[19]=c,t[20]=l,t[21]=u,t[22]=d):d=t[22],d}function jt(e){let t=(0,Q.c)(17),{draft:n,labels:r,validationIssues:i}=e,a=n.lint,o;t[0]!==n.validation.valid||t[1]!==a?(o=n.validation.valid&&a.every(Pt),t[0]=n.validation.valid,t[1]=a,t[2]=o):o=t[2];let s=o,c=s?`rounded-xl border border-emerald-500/30 bg-emerald-500/10 p-3 text-sm text-emerald-800 dark:text-emerald-200`:`rounded-xl border border-amber-500/30 bg-amber-500/10 p-3 text-sm text-amber-800 dark:text-amber-200`,l;t[3]===s?l=t[4]:(l=s?(0,$.jsx)(de,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(Ee,{className:`size-4`,"aria-hidden":!0}),t[3]=s,t[4]=l);let u=s?r.validationPassed:r.nlBuilderReviewIssues,d;t[5]!==l||t[6]!==u?(d=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 font-medium`,children:[l,u]}),t[5]=l,t[6]=u,t[7]=d):d=t[7];let f;t[8]!==n.validation.definition?.phases||t[9]!==r.validationPreview||t[10]!==a||t[11]!==i?(f=i.length>0||a.length>0?(0,$.jsxs)(`ul`,{className:`mt-2 list-disc space-y-1 pl-5 text-xs leading-5`,children:[i.map(Nt),a.map(Mt)]}):(0,$.jsx)(`p`,{className:`mt-1 text-xs opacity-80`,children:r.validationPreview.replace(`{{phaseCount}}`,String(n.validation.definition?.phases.length??0))}),t[8]=n.validation.definition?.phases,t[9]=r.validationPreview,t[10]=a,t[11]=i,t[12]=f):f=t[12];let p;return t[13]!==c||t[14]!==d||t[15]!==f?(p=(0,$.jsxs)(`div`,{className:c,children:[d,f]}),t[13]=c,t[14]=d,t[15]=f,t[16]=p):p=t[16],p}function Mt(e){return(0,$.jsx)(`li`,{children:e.message},`${e.code}:${e.message}`)}function Nt(e){return(0,$.jsx)(`li`,{children:e},e)}function Pt(e){return e.severity!==`error`}function Ft(e){let t=(0,Q.c)(10),{labels:n,validating:r,validationIssues:i,validationResult:a}=e,o=i.length>0?`rounded-xl border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-200`:`rounded-xl border border-emerald-500/30 bg-emerald-500/10 px-3 py-2 text-sm text-emerald-700 dark:text-emerald-200`,s=r?n.validatingWorkflow:i.length>0?n.validationFailed:n.validationPassed,c;t[0]===s?c=t[1]:(c=(0,$.jsx)(`div`,{className:`font-medium`,children:s}),t[0]=s,t[1]=c);let l;t[2]!==n.validationPreview||t[3]!==i||t[4]!==a?(l=i.length>0?(0,$.jsx)(`ul`,{className:`mt-1 list-disc space-y-1 pl-5`,children:i.map(It)}):a?.definition?(0,$.jsx)(`div`,{className:`mt-1 text-xs opacity-80`,children:n.validationPreview.replace(`{{phaseCount}}`,String(a.definition.phases.length))}):null,t[2]=n.validationPreview,t[3]=i,t[4]=a,t[5]=l):l=t[5];let u;return t[6]!==o||t[7]!==c||t[8]!==l?(u=(0,$.jsxs)(`div`,{className:o,role:`status`,children:[c,l]}),t[6]=o,t[7]=c,t[8]=l,t[9]=u):u=t[9],u}function It(e){return(0,$.jsx)(`li`,{children:e},e)}function Lt(e){let t=(0,Q.c)(10),{title:n,items:r}=e;if(!r.length)return null;let i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(f,{className:`size-3`,"aria-hidden":!0}),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,$.jsxs)(`div`,{className:`mb-1 flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wide text-fg-subtle`,children:[i,n]}),t[1]=n,t[2]=a);let o;t[3]===r?o=t[4]:(o=r.slice(0,5).map(Rt),t[3]=r,t[4]=o);let s;t[5]===o?s=t[6]:(s=(0,$.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:o}),t[5]=o,t[6]=s);let c;return t[7]!==a||t[8]!==s?(c=(0,$.jsxs)(`div`,{children:[a,s]}),t[7]=a,t[8]=s,t[9]=c):c=t[9],c}function Rt(e){return(0,$.jsx)(`span`,{className:`rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1 text-[11px] text-fg-muted`,children:e},e)}function zt(e){let t=(0,Q.c)(2),{text:n}=e,r;return t[0]===n?r=t[1]:(r=(0,$.jsx)(`div`,{className:`rounded-xl border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-200`,children:n}),t[0]=n,t[1]=r),r}function Bt(e){let t=(0,Q.c)(57),{open:n,definition:r,language:i,onClose:o,onRun:s}=e,c;t[0]===i?c=t[1]:(c=a(i),t[0]=i,t[1]=c);let l=c.workflows;if(!r)return null;let d;t[2]!==r||t[3]!==i?(d=u(r,i),t[2]=r,t[3]=i,t[4]=d):d=t[4];let f=d,p=r.runtime?.source??``,m;t[5]===o?m=t[6]:(m=e=>!e&&o(),t[5]=o,t[6]=m);let g;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,$.jsx)(H,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[7]=g):g=t[7];let v;t[8]===r.title?v=t[9]:(v=(0,$.jsx)(P,{className:`text-base font-semibold text-fg`,children:r.title}),t[8]=r.title,t[9]=v);let b;t[10]===f.description?b=t[11]:(b=(0,$.jsx)(Re,{className:`mt-1 text-sm text-fg-muted`,children:f.description}),t[10]=f.description,t[11]=b);let x;t[12]!==v||t[13]!==b?(x=(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[v,b]}),t[12]=v,t[13]=b,t[14]=x):x=t[14];let S;t[15]!==l.whenToUseHeading||t[16]!==f.whenToUse?(S=f.whenToUse?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.whenToUseHeading}),(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:f.whenToUse})]}):null,t[15]=l.whenToUseHeading,t[16]=f.whenToUse,t[17]=S):S=t[17];let C;t[18]!==r||t[19]!==l?(C=(0,$.jsx)(Ht,{definition:r,labels:l}),t[18]=r,t[19]=l,t[20]=C):C=t[20];let w;t[21]!==r.inputSchema||t[22]!==l.inputsHeading?(w=r.inputSchema?(0,$.jsx)(Wt,{title:l.inputsHeading,schema:r.inputSchema}):null,t[21]=r.inputSchema,t[22]=l.inputsHeading,t[23]=w):w=t[23];let T;t[24]!==r.outputSchema||t[25]!==l.outputsHeading?(T=r.outputSchema?(0,$.jsx)(Wt,{title:l.outputsHeading,schema:r.outputSchema}):null,t[24]=r.outputSchema,t[25]=l.outputsHeading,t[26]=T):T=t[26];let E;t[27]!==r.phases||t[28]!==l.phasesHeading?(E=r.phases.length>0?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.phasesHeading}),(0,$.jsx)(`ol`,{className:`mt-2 space-y-2`,children:r.phases.map(Vt)})]}):null,t[27]=r.phases,t[28]=l.phasesHeading,t[29]=E):E=t[29];let D;t[30]!==l.scriptHeading||t[31]!==p?(D=p?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.scriptHeading}),(0,$.jsx)(`pre`,{className:`mt-2 max-h-64 overflow-auto rounded-xl border border-edge bg-surface-base/50 p-3 font-mono text-xs leading-5 text-fg-muted`,children:p})]}):null,t[30]=l.scriptHeading,t[31]=p,t[32]=D):D=t[32];let O;t[33]!==w||t[34]!==T||t[35]!==E||t[36]!==D||t[37]!==S||t[38]!==C?(O=(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-auto px-5 py-4`,children:[S,C,w,T,E,D]}),t[33]=w,t[34]=T,t[35]=E,t[36]=D,t[37]=S,t[38]=C,t[39]=O):O=t[39];let k;t[40]!==l.closeResult||t[41]!==o?(k=(0,$.jsx)(X,{variant:`secondary`,onClick:o,children:l.closeResult}),t[40]=l.closeResult,t[41]=o,t[42]=k):k=t[42];let A;t[43]!==l.runWorkflow||t[44]!==s?(A=(0,$.jsx)(X,{variant:`primary`,onClick:s,children:l.runWorkflow}),t[43]=l.runWorkflow,t[44]=s,t[45]=A):A=t[45];let j;t[46]!==k||t[47]!==A?(j=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[k,A]}),t[46]=k,t[47]=A,t[48]=j):j=t[48];let M;t[49]!==O||t[50]!==j||t[51]!==x?(M=(0,$.jsxs)(y,{children:[g,(0,$.jsxs)(h,{className:`fixed left-1/2 top-1/2 z-66 flex max-h-[min(85vh,44rem)] w-[min(100%-2rem,48rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[x,O,j]})]}),t[49]=O,t[50]=j,t[51]=x,t[52]=M):M=t[52];let N;return t[53]!==n||t[54]!==M||t[55]!==m?(N=(0,$.jsx)(_,{open:n,onOpenChange:m,children:M}),t[53]=n,t[54]=M,t[55]=m,t[56]=N):N=t[56],N}function Vt(e,t){return(0,$.jsxs)(`li`,{className:`rounded-xl border border-edge bg-surface-base/40 px-3 py-2`,children:[(0,$.jsxs)(`div`,{className:`text-sm font-medium text-fg`,children:[t+1,`. `,e.title]}),e.description?(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:e.description}):null]},e.id)}function Ht(e){let t=(0,Q.c)(39),{definition:n,labels:r}=e,i=n.permissions,a=n.resources,o;t[0]!==r.permissionsTools||t[1]!==i?(o=i?.tools?.length?[r.permissionsTools,i.tools.join(`, `)]:null,t[0]=r.permissionsTools,t[1]=i,t[2]=o):o=t[2];let s;t[3]!==r.networkDisabled||t[4]!==r.networkEnabled||t[5]!==r.permissionsNetwork||t[6]!==i?(s=i?.network==null?null:[r.permissionsNetwork,i.network?r.networkEnabled:r.networkDisabled],t[3]=r.networkDisabled,t[4]=r.networkEnabled,t[5]=r.permissionsNetwork,t[6]=i,t[7]=s):s=t[7];let c;t[8]!==r.permissionsFileSystem||t[9]!==i?(c=i?.fileSystem?[r.permissionsFileSystem,i.fileSystem]:null,t[8]=r.permissionsFileSystem,t[9]=i,t[10]=c):c=t[10];let l;t[11]!==r.permissionsApproval||t[12]!==i?.approvalRequired?(l=i?.approvalRequired?[r.permissionsApproval,r.permissionsApproval]:null,t[11]=r.permissionsApproval,t[12]=i?.approvalRequired,t[13]=l):l=t[13];let u;t[14]!==r.resourcesSkills||t[15]!==a?(u=a?.skills?.length?[r.resourcesSkills,a.skills.join(`, `)]:null,t[14]=r.resourcesSkills,t[15]=a,t[16]=u):u=t[16];let d;t[17]!==r.resourcesContextFiles||t[18]!==a?(d=a?.contextFiles?.length?[r.resourcesContextFiles,a.contextFiles.join(`, `)]:null,t[17]=r.resourcesContextFiles,t[18]=a,t[19]=d):d=t[19];let f;t[20]!==r.resourcesPromptTemplates||t[21]!==a?(f=a?.promptTemplates?.length?[r.resourcesPromptTemplates,a.promptTemplates.join(`, `)]:null,t[20]=r.resourcesPromptTemplates,t[21]=a,t[22]=f):f=t[22];let p;t[23]!==o||t[24]!==s||t[25]!==c||t[26]!==l||t[27]!==u||t[28]!==d||t[29]!==f?(p=[o,s,c,l,u,d,f].filter(Boolean),t[23]=o,t[24]=s,t[25]=c,t[26]=l,t[27]=u,t[28]=d,t[29]=f,t[30]=p):p=t[30];let m=p,h;t[31]===r.capabilitiesHeading?h=t[32]:(h=(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:r.capabilitiesHeading}),t[31]=r.capabilitiesHeading,t[32]=h);let g;t[33]!==r.capabilityNone||t[34]!==m?(g=m.length>0?(0,$.jsx)(`div`,{className:`mt-2 grid gap-2 sm:grid-cols-2`,children:m.map(Ut)}):(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:r.capabilityNone}),t[33]=r.capabilityNone,t[34]=m,t[35]=g):g=t[35];let _;return t[36]!==g||t[37]!==h?(_=(0,$.jsxs)(`section`,{children:[h,g]}),t[36]=g,t[37]=h,t[38]=_):_=t[38],_}function Ut(e){let[t,n]=e;return(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-base/40 px-3 py-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-medium text-fg-muted`,children:[(0,$.jsx)(k,{className:`size-3.5 text-fg-subtle`,"aria-hidden":!0}),t]}),(0,$.jsx)(`div`,{className:`mt-1 break-words text-sm text-fg`,children:n})]},`${t}:${n}`)}function Wt(e){let t=(0,Q.c)(16),{title:n,schema:r}=e,i;t[0]===r.properties?i=t[1]:(i=Object.keys(r.properties??{}),t[0]=r.properties,t[1]=i);let a=i,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(f,{className:`size-3.5`,"aria-hidden":!0}),t[2]=o):o=t[2];let s;t[3]===n?s=t[4]:(s=(0,$.jsxs)(`h3`,{className:`flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:[o,n]}),t[3]=n,t[4]=s);let c;t[5]===a?c=t[6]:(c=a.length>0?(0,$.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:a.map(Gt)}):null,t[5]=a,t[6]=c);let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(`summary`,{className:`cursor-pointer text-xs text-fg-subtle hover:text-fg-muted`,children:`JSON`}),t[7]=l):l=t[7];let u;t[8]===r?u=t[9]:(u=JSON.stringify(r,null,2),t[8]=r,t[9]=u);let d;t[10]===u?d=t[11]:(d=(0,$.jsxs)(`details`,{className:`mt-2`,children:[l,(0,$.jsx)(`pre`,{className:`mt-2 max-h-48 overflow-auto rounded-xl border border-edge bg-surface-base/50 p-3 font-mono text-xs leading-5 text-fg-muted`,children:u})]}),t[10]=u,t[11]=d);let p;return t[12]!==s||t[13]!==c||t[14]!==d?(p=(0,$.jsxs)(`section`,{children:[s,c,d]}),t[12]=s,t[13]=c,t[14]=d,t[15]=p):p=t[15],p}function Gt(e){return(0,$.jsx)(`span`,{className:`rounded-lg border border-edge-subtle bg-surface-base px-2 py-1 text-xs text-fg-muted`,children:e},e)}function Kt(e,t){let n=e.metadata.estimatedAgents;return n?n.min===n.max?J(t.agentScaleExact,{count:n.min}):J(t.agentScaleRange,{min:n.min,max:n.max}):null}function qt(e){let t=(0,Q.c)(81),{definition:n,language:r,labels:a,onPick:o,onDetail:s,onEdit:c}=e,l;t[0]!==n||t[1]!==r?(l=u(n,r),t[0]=n,t[1]=r,t[2]=l):l=t[2];let d=l,p;t[3]!==n||t[4]!==a?(p=Kt(n,a),t[3]=n,t[4]=a,t[5]=p):p=t[5];let m=p,h=n.metadata.source===`user`,g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=i(`group flex h-full flex-col rounded-xl border border-edge-subtle bg-surface-base p-4 text-left transition-colors`,`hover:border-accent/40 hover:bg-surface-hover`),t[6]=g):g=t[6];let _;t[7]!==n||t[8]!==s?(_=()=>s(n),t[7]=n,t[8]=s,t[9]=_):_=t[9];let v;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(v=i(`flex flex-1 flex-col text-left`,K.focusRingPanel),t[10]=v):v=t[10];let y=h?`bg-accent-soft text-accent-fg`:`bg-surface-hover text-fg-muted`,b;t[11]===y?b=t[12]:(b=i(`rounded-full px-2 py-0.5 text-[10px] font-medium`,y),t[11]=y,t[12]=b);let x=h?a.badgeUser:a.badgeBuiltin,S;t[13]!==b||t[14]!==x?(S=(0,$.jsx)(`span`,{className:b,children:x}),t[13]=b,t[14]=x,t[15]=S):S=t[15];let C;t[16]!==n.inputSchema||t[17]!==a.inputSchemaBadge?(C=n.inputSchema?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-surface-hover px-2 py-0.5 text-[10px] text-fg-subtle`,children:[(0,$.jsx)(f,{className:`size-2.5`,"aria-hidden":!0}),a.inputSchemaBadge]}):null,t[16]=n.inputSchema,t[17]=a.inputSchemaBadge,t[18]=C):C=t[18];let w;t[19]===n.metadata.tags?w=t[20]:(w=n.metadata.tags.slice(0,2).map(Jt),t[19]=n.metadata.tags,t[20]=w);let T;t[21]!==C||t[22]!==w||t[23]!==S?(T=(0,$.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center gap-1.5`,children:[S,C,w]}),t[21]=C,t[22]=w,t[23]=S,t[24]=T):T=t[24];let E;t[25]===n.title?E=t[26]:(E=(0,$.jsx)(`span`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-fg`,children:n.title}),t[25]=n.title,t[26]=E);let D;t[27]!==T||t[28]!==E?(D=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[T,E]}),t[27]=T,t[28]=E,t[29]=D):D=t[29];let O;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(`span`,{className:`flex size-8 shrink-0 items-center justify-center rounded-lg bg-accent-soft text-accent-fg opacity-80 transition-opacity group-hover:opacity-100`,children:(0,$.jsx)(oe,{className:`size-3.5`,"aria-hidden":!0})}),t[30]=O):O=t[30];let k;t[31]===D?k=t[32]:(k=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[D,O]}),t[31]=D,t[32]=k);let A;t[33]===d.description?A=t[34]:(A=d.description?(0,$.jsx)(`p`,{className:`mt-2 line-clamp-2 text-xs leading-5 text-fg-muted`,children:d.description}):null,t[33]=d.description,t[34]=A);let j;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,$.jsx)(Ce,{className:`size-3`,"aria-hidden":!0}),t[35]=j):j=t[35];let M;t[36]!==n.phases.length||t[37]!==a.phaseCount?(M=J(a.phaseCount,{count:n.phases.length}),t[36]=n.phases.length,t[37]=a.phaseCount,t[38]=M):M=t[38];let N;t[39]===M?N=t[40]:(N=(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[j,M]}),t[39]=M,t[40]=N);let P;t[41]===m?P=t[42]:(P=m?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,$.jsx)(Te,{className:`size-3`,"aria-hidden":!0}),m]}):null,t[41]=m,t[42]=P);let F;t[43]!==N||t[44]!==P?(F=(0,$.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center gap-3 pt-3 text-[11px] text-fg-subtle`,children:[N,P]}),t[43]=N,t[44]=P,t[45]=F):F=t[45];let I;t[46]!==k||t[47]!==A||t[48]!==F||t[49]!==_?(I=(0,$.jsxs)(`button`,{type:`button`,onClick:_,className:v,children:[k,A,F]}),t[46]=k,t[47]=A,t[48]=F,t[49]=_,t[50]=I):I=t[50];let L;t[51]!==n||t[52]!==o?(L=()=>o(n),t[51]=n,t[52]=o,t[53]=L):L=t[53];let ee;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(ee=(0,$.jsx)(R,{className:`size-3.5`,"aria-hidden":!0}),t[54]=ee):ee=t[54];let z;t[55]!==a.runWorkflow||t[56]!==L?(z=(0,$.jsxs)(X,{type:`button`,variant:`primary`,className:`h-8 flex-1 rounded-lg text-xs`,onClick:L,children:[ee,a.runWorkflow]}),t[55]=a.runWorkflow,t[56]=L,t[57]=z):z=t[57];let B;t[58]!==n||t[59]!==s?(B=()=>s(n),t[58]=n,t[59]=s,t[60]=B):B=t[60];let te;t[61]===Symbol.for(`react.memo_cache_sentinel`)?(te=(0,$.jsx)(oe,{className:`size-3.5`,"aria-hidden":!0}),t[61]=te):te=t[61];let V;t[62]!==a.viewDetails||t[63]!==B?(V=(0,$.jsxs)(X,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg text-xs`,onClick:B,children:[te,a.viewDetails]}),t[62]=a.viewDetails,t[63]=B,t[64]=V):V=t[64];let H;t[65]!==n||t[66]!==c?(H=()=>c(n),t[65]=n,t[66]=c,t[67]=H):H=t[67];let U;t[68]===h?U=t[69]:(U=h?(0,$.jsx)(Oe,{className:`size-3.5`,"aria-hidden":!0}):(0,$.jsx)(be,{className:`size-3.5`,"aria-hidden":!0}),t[68]=h,t[69]=U);let ne=h?a.editWorkflow:a.copyAndEditWorkflow,W;t[70]!==H||t[71]!==U||t[72]!==ne?(W=(0,$.jsxs)(X,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg text-xs`,onClick:H,children:[U,ne]}),t[70]=H,t[71]=U,t[72]=ne,t[73]=W):W=t[73];let re;t[74]!==z||t[75]!==V||t[76]!==W?(re=(0,$.jsxs)(`div`,{className:`mt-4 flex flex-wrap gap-2 border-t border-edge-subtle pt-3`,children:[z,V,W]}),t[74]=z,t[75]=V,t[76]=W,t[77]=re):re=t[77];let ie;return t[78]!==I||t[79]!==re?(ie=(0,$.jsxs)(`article`,{className:g,children:[I,re]}),t[78]=I,t[79]=re,t[80]=ie):ie=t[80],ie}function Jt(e){return(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-[10px] text-fg-subtle`,children:e},e)}function Yt(e,t){return e===`uncategorized`?t.categories.uncategorized:t.categories[e]}function Xt(e){let t=(0,Q.c)(11),{definitions:n,language:r,onPick:o,onDetail:s,onEdit:c}=e,l=a(r).workflows,[u,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)(`all`),m;t[0]!==f||t[1]!==n||t[2]!==u?(m=pe(n,u,f,`all`),t[0]=f,t[1]=n,t[2]=u,t[3]=m):m=t[3];let h=m,g;t[4]===h?g=t[5]:(g=Y(h),t[4]=h,t[5]=g);let _=g,v;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsx)(z,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[6]=v):v=t[6];let y;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>d(e.target.value),t[7]=y):y=t[7];let b=l.searchPlaceholder,x;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(x=i(`h-10 w-full rounded-xl border border-edge bg-surface-base py-2 pl-10 pr-3 text-sm text-fg`,`placeholder:text-fg-subtle`,K.focusRingPanel),t[8]=x):x=t[8];let S=h.length===0?(0,$.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center px-4 py-12 text-center`,children:[(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:l.noDefinitions}),(0,$.jsx)(`p`,{className:`mt-1 max-w-sm text-xs leading-5 text-fg-subtle`,children:l.noDefinitionsHint})]}):f===`all`?(0,$.jsx)(`div`,{className:`flex flex-col gap-6 pb-1`,children:_.map(e=>(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`mb-3 text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:Yt(e.category,l)}),(0,$.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3`,children:e.items.map(e=>(0,$.jsx)(qt,{definition:e,language:r,labels:l,onPick:o,onDetail:s,onEdit:c},e.id))})]},e.category))}):(0,$.jsx)(`div`,{className:`grid grid-cols-1 gap-3 pb-1 sm:grid-cols-2 xl:grid-cols-3`,children:h.map(e=>(0,$.jsx)(qt,{definition:e,language:r,labels:l,onPick:o,onDetail:s,onEdit:c},e.id))}),C;return t[9]===S?C=t[10]:(C=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:S}),t[9]=S,t[10]=C),(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-4`,children:[(0,$.jsxs)(`div`,{className:`relative`,children:[v,(0,$.jsx)(`input`,{value:u,onChange:y,placeholder:b,className:x})]}),(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":l.categoryFilterAria,children:V.map(e=>(0,$.jsx)(X,{type:`button`,variant:f===e?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>p(e),children:l.categories[e]},e))})]}),C]})}function Zt(e){let t=(0,Q.c)(32),{open:n,definitions:r,language:o,onClose:s,onPick:c,onDetail:l,onEdit:u}=e,d;t[0]===o?d=t[1]:(d=a(o),t[0]=o,t[1]=d);let f=d.workflows,p;t[2]===s?p=t[3]:(p=e=>!e&&s(),t[2]=s,t[3]=p);let m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(H,{className:`fixed inset-0 z-50 bg-scrim`}),t[4]=m):m=t[4];let g;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(g=i(`pointer-events-auto relative flex h-[min(90vh,840px)] w-full max-w-5xl flex-col`,`rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,K.focusRingPanel),t[5]=g):g=t[5];let v;t[6]===f.pickStartTitle?v=t[7]:(v=(0,$.jsx)(P,{className:`text-lg font-semibold text-fg`,children:f.pickStartTitle}),t[6]=f.pickStartTitle,t[7]=v);let b;t[8]===f.pickStartHint?b=t[9]:(b=(0,$.jsx)(Re,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:f.pickStartHint}),t[8]=f.pickStartHint,t[9]=b);let x;t[10]!==v||t[11]!==b?(x=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[v,b]}),t[10]=v,t[11]=b,t[12]=x):x=t[12];let S;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(ye,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),t[13]=S):S=t[13];let C;t[14]===f.pickStartClose?C=t[15]:(C=(0,$.jsx)(te,{asChild:!0,children:(0,$.jsx)(X,{variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":f.pickStartClose,children:S})}),t[14]=f.pickStartClose,t[15]=C);let w;t[16]!==x||t[17]!==C?(w=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-edge-subtle px-6 py-5`,children:[x,C]}),t[16]=x,t[17]=C,t[18]=w):w=t[18];let T;t[19]!==r||t[20]!==o||t[21]!==l||t[22]!==u||t[23]!==c?(T=(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col px-6 py-5`,children:(0,$.jsx)(Xt,{definitions:r,language:o,onPick:c,onDetail:l,onEdit:u})}),t[19]=r,t[20]=o,t[21]=l,t[22]=u,t[23]=c,t[24]=T):T=t[24];let E;t[25]!==w||t[26]!==T?(E=(0,$.jsxs)(y,{children:[m,(0,$.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4 pointer-events-none`,children:(0,$.jsxs)(h,{className:g,onOpenAutoFocus:Qt,children:[w,T]})})]}),t[25]=w,t[26]=T,t[27]=E):E=t[27];let D;return t[28]!==n||t[29]!==E||t[30]!==p?(D=(0,$.jsx)(_,{open:n,onOpenChange:p,children:E}),t[28]=n,t[29]=E,t[30]=p,t[31]=D):D=t[31],D}function Qt(e){return e.preventDefault()}function $t(e,t){return t.status[e]??e}function en(e,t){return t.phaseStatus[e]??e}function tn(e,t){let{run:n}=e;return n.status===`succeeded`?J(t.runSummarySucceeded,{agents:n.metrics.doneAgentCount,artifacts:n.metrics.artifactCount}):n.status===`failed`||n.status===`timeout`?n.error?.message??t.runSummaryFailedFallback:n.status===`cancelled`?t.runSummaryCancelled:J(t.runSummaryActive,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}function nn(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 rn(e){return le(e)}function an(e){return!e||typeof e!=`object`||!(`kind`in e)?`unknown`:e.kind===`chat`?`chat · ${e.sessionKey}`:e.kind===`webui`?e.sessionKey?`webui · ${e.sessionKey}`:`webui`:e.kind===`cron`?`cron · ${e.scheduleId}`:e.kind===`api`?e.requestId?`api · ${e.requestId}`:`api`:e.kind===`im`?`${e.channel} · ${e.chatId}`:String(e.kind)}function on({view:e,comparison:t,currentDefinition:n,loading:r,language:o,localeTag:s,onCancel:c,onRetry:l,onReplay:u,onOpenRunId:d,ownerAgentId:f,onClose:p}){let m=a(o).workflows,g=fe(o),v=T(),[C,w]=(0,Z.useState)(!0),[E,O]=(0,Z.useState)(`result`),[k,A]=(0,Z.useState)(!1),[j,M]=(0,Z.useState)(null),[N,F]=(0,Z.useState)(!1),[L,R]=(0,Z.useState)(null),[ee,z]=(0,Z.useState)(null),[,te]=(0,Z.useState)(0),V=e?.run.status,U=V?B.has(V):!1;(0,Z.useEffect)(()=>{e?.run.id&&(w(U||V===`failed`||V===`timeout`),O(`result`),M(null),R(null))},[e?.run.id,U,V,e?.run.metrics.errorAgentCount]),(0,Z.useEffect)(()=>{if(!U)return;let e=window.setInterval(()=>te(e=>e+1),1e3);return()=>window.clearInterval(e)},[U]);let ne=(0,Z.useMemo)(()=>e?ve(e):null,[e]),re=(0,Z.useMemo)(()=>ne?x(ne):{phases:[],unphased:null},[ne]),ie=(0,Z.useMemo)(()=>j==null||!ne?null:ne.agents.find(e=>e.id===j)??null,[j,ne]),ae=(0,Z.useCallback)(e=>{M(e.id)},[]),G=(0,Z.useMemo)(()=>e?Fe(e):[],[e]),K=e?_e(e.run.result):void 0,oe=K?yn(K):null,se=K?ue(K):``,ce=!!K,de=(0,Z.useCallback)(async()=>{ce&&await D(se)&&(F(!0),window.setTimeout(()=>F(!1),1500))},[ce,se]),pe=(0,Z.useCallback)(()=>{if(!ce||!e)return;let t=new Blob([se],{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)},[ce,se,e]),be=(0,Z.useCallback)(()=>{if(!e)return;let t=rn(e);t&&v(ze(t))},[v,e]),Se=(0,Z.useCallback)(async t=>{if(e){R(null),z(t.id);try{_n(await S(e.run.id,t.id,{ownerAgentId:f}),t.name||t.id)}catch(e){R(e instanceof Error?e.message:String(e))}finally{z(null)}}},[f,e]),Ce=(0,Z.useCallback)(t=>{if(!e||!t.prompt)return;let n=rn(e);if(!n){D(t.prompt);return}v(ze(n,t.prompt))},[v,e]),we=(0,Z.useCallback)(t=>{if(!e||t==null)return;let n=String(t),r=e.agents.findIndex(e=>String(e.id)===n);if(r<0)return;let i=Number.parseInt(n,10);M(Number.isFinite(i)?i:r+1)},[e]),Te=e?rn(e):null;if(r)return(0,$.jsx)(_,{open:!0,onOpenChange:e=>!e&&p(),children:(0,$.jsxs)(y,{children:[(0,$.jsx)(H,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),(0,$.jsxs)(h,{className:`fixed left-1/2 top-1/2 z-66 flex h-[min(85vh,44rem)] w-[min(100%-2rem,48rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-5 py-4`,children:[(0,$.jsx)(P,{className:`text-base font-semibold tracking-tight text-fg`,children:m.runSummaryTitle}),(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":m.pickStartClose,onClick:p,children:(0,$.jsx)(ye,{className:`size-5`,"aria-hidden":!0})})]}),(0,$.jsx)(`div`,{className:`p-5 text-sm text-fg-muted`,children:m.loading})]})]})});if(!e||!ne)return null;let{run:Y}=e,Ee=e.controls.canCancel&&U,De=U&&Y.startedAtMs!=null?he(Date.now()-Y.startedAtMs):he(Y.metrics.durationMs??void 0),Oe=tn(e,m),Ae=nn(e,m),je=Y.metadata,Ne=an(Y.source),Pe=e.controls.canRetry&&e.agents.some(e=>(e.status===`error`||e.status===`skipped`)&&e.prompt?.trim()),Ie=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())),Le=Y.goal?.trim()||Y.title,Re=G.length>0||!!Ae,Be=!!Te||Ee,Ve=e.controls.canRetry||Pe||Ie,Ue=ce,We=Be||Ve||Ue;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(_,{open:!0,onOpenChange:e=>!e&&p(),children:(0,$.jsxs)(y,{children:[(0,$.jsx)(H,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),(0,$.jsxs)(h,{className:`fixed left-1/2 top-1/2 z-66 flex h-[min(90vh,52rem)] w-[min(100%-2rem,64rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-5 py-4`,children:[(0,$.jsx)(P,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:Le}),(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":m.pickStartClose,onClick:p,children:(0,$.jsx)(ye,{className:`size-5`,"aria-hidden":!0})})]}),(0,$.jsxs)(`section`,{className:`min-h-0 flex-1 overflow-y-auto p-5`,children:[(0,$.jsxs)(`header`,{className:`rounded-2xl border border-edge-subtle bg-surface-base/60 p-4`,children:[(0,$.jsx)(`div`,{className:`flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between`,children:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(`h2`,{className:`text-lg font-semibold leading-7 text-fg`,children:Le}),(0,$.jsx)(`span`,{className:i(`rounded-full px-2 py-0.5 text-xs font-medium`,He(Y.status)),children:$t(Y.status,m)})]}),(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:[Y.title,` · `,Y.definitionId]}),(0,$.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:Oe}),Ae?(0,$.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-fg-subtle`,children:Ae}):null]})}),(0,$.jsxs)(`dl`,{className:`mt-4 grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,children:[(0,$.jsx)(On,{label:m.metrics.startedAt,value:ke(Y.startedAtMs??Y.createdAtMs,s)}),(0,$.jsx)(On,{label:m.metrics.duration,value:De}),(0,$.jsx)(On,{label:m.metrics.agents,value:J(m.agentProgress,{done:Y.metrics.doneAgentCount,total:Y.metrics.agentCount})}),(0,$.jsx)(On,{label:m.metrics.artifacts,value:String(Y.metrics.artifactCount)})]})]}),(0,$.jsx)(cn,{activeTab:E,onChange:O,labels:m,hasDiagnostics:Re,artifactCount:oe?.artifacts.length??e.artifacts.length}),E===`result`?(0,$.jsxs)(`section`,{className:`mt-5 space-y-4`,children:[ce?(0,$.jsx)(`div`,{className:`rounded-xl border border-edge bg-surface-base/50 p-3`,children:(0,$.jsx)(xe,{result:K,labels:g.result})}):(0,$.jsx)(`div`,{className:`rounded-xl border border-dashed border-edge p-4 text-sm text-fg-muted`,children:m.noResult}),We?(0,$.jsxs)(`section`,{className:`rounded-2xl border border-edge-subtle bg-surface-base/35 p-4`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:m.nextActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-3 grid gap-3 lg:grid-cols-3`,children:[Be?(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-xs font-medium text-fg-subtle`,children:m.primaryActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[Te?(0,$.jsxs)(X,{variant:`primary`,onClick:be,children:[(0,$.jsx)(ge,{className:`size-4`,"aria-hidden":!0}),m.continueInChat]}):null,Ee?(0,$.jsxs)(X,{variant:`secondary`,onClick:c,className:`text-red-600 dark:text-red-300`,children:[(0,$.jsx)(q,{className:`size-4`,"aria-hidden":!0}),m.cancel]}):null]})]}):null,Ve?(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-xs font-medium text-fg-subtle`,children:m.recoveryActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[Pe?(0,$.jsxs)(X,{variant:`secondary`,onClick:()=>u(`failed_agents`),children:[(0,$.jsx)(W,{className:`size-4`,"aria-hidden":!0}),m.replayFailedAgents]}):null,Ie?(0,$.jsxs)(X,{variant:`secondary`,onClick:()=>u(`failed_phases`),children:[(0,$.jsx)(W,{className:`size-4`,"aria-hidden":!0}),m.replayFailedPhases]}):null,e.controls.canRetry?(0,$.jsxs)(X,{variant:`secondary`,onClick:l,children:[(0,$.jsx)(W,{className:`size-4`,"aria-hidden":!0}),m.rerun]}):null]})]}):null,Ue?(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-xs font-medium text-fg-subtle`,children:m.resultActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[(0,$.jsxs)(X,{variant:`secondary`,onClick:de,children:[N?(0,$.jsx)(b,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(Me,{className:`size-4`,"aria-hidden":!0}),N?m.copied:m.copyResult]}),(0,$.jsxs)(X,{variant:`secondary`,onClick:pe,children:[(0,$.jsx)(me,{className:`size-4`,"aria-hidden":!0}),m.exportResult]})]})]}):null]})]}):null,(0,$.jsx)(dn,{view:e,comparison:t,labels:m,onOpenRunId:d})]}):null,E===`process`?(0,$.jsx)(ln,{snapshot:ne,rollup:re,view:e,labels:m,cardLabels:g,isActive:U,processExpanded:C,logsExpanded:k,drawerAgentId:j,durationText:De,onToggleProcess:()=>w(e=>!e),onToggleLogs:()=>A(e=>!e),onSelectAgent:ae}):null,E===`diagnostics`?(0,$.jsx)(sn,{diagnostics:G,labels:m,hint:Ae,onOpenAgent:we}):null,E===`artifacts`?(0,$.jsx)(gn,{outcome:oe,labels:m,downloadingArtifactId:ee,downloadError:L,onCopyText:e=>void D(e),onDownloadArtifact:e=>void Se(e),onStartFollowUp:Ce}):null,E===`debug`?(0,$.jsx)(bn,{agents:ne.agents,labels:m,metadataItems:[{label:m.metadataSession,value:je?.sessionKey??le(e)??`—`},{label:m.metadataSource,value:Ne},{label:m.metadataDefinition,value:`${je?.definition.version??Y.definitionVersion} · ${je?.definition.source??`unknown`}`},{label:m.metadataDefinitionHash,value:fn(je?.definition,n,m)},{label:m.metadataPermissions,value:pn(je?.definition)},{label:m.metadataRetryOf,value:je?.retryOfRunId??`—`}],defaultExpanded:!0}):null]})]})]})}),(0,$.jsx)(I,{open:j!=null&&ie!=null,agent:ie,snapshot:ne,sessionKey:null,ownerAgentId:f,onClose:()=>M(null),labels:g.drawer})]})}function sn(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)(Ee,{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:un(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)(X,{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 cn(e){let t=(0,Q.c)(22),{activeTab:n,onChange:r,labels:a,hasDiagnostics:o,artifactCount:s}=e,c;t[0]===a.resultTitle?c=t[1]:(c={id:`result`,label:a.resultTitle},t[0]=a.resultTitle,t[1]=c);let l;t[2]===a.process?l=t[3]:(l={id:`process`,label:a.process},t[2]=a.process,t[3]=l);let u=o?1:void 0,d;t[4]!==a.diagnosticsTitle||t[5]!==u?(d={id:`diagnostics`,label:a.diagnosticsTitle,count:u},t[4]=a.diagnosticsTitle,t[5]=u,t[6]=d):d=t[6];let f=s||void 0,p;t[7]!==a.outcomeArtifacts||t[8]!==f?(p={id:`artifacts`,label:a.outcomeArtifacts,count:f},t[7]=a.outcomeArtifacts,t[8]=f,t[9]=p):p=t[9];let m;t[10]===a.debugDetailsTitle?m=t[11]:(m={id:`debug`,label:a.debugDetailsTitle},t[10]=a.debugDetailsTitle,t[11]=m);let h;t[12]!==c||t[13]!==l||t[14]!==d||t[15]!==p||t[16]!==m?(h=[c,l,d,p,m],t[12]=c,t[13]=l,t[14]=d,t[15]=p,t[16]=m,t[17]=h):h=t[17];let g=h,_;return t[18]!==n||t[19]!==r||t[20]!==g?(_=(0,$.jsx)(`div`,{className:`mt-5 flex overflow-x-auto border-b border-edge pb-2`,children:(0,$.jsx)(`div`,{className:`-mx-1 flex gap-1 overflow-x-auto px-1 pb-1`,role:`tablist`,children:g.map(e=>(0,$.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":n===e.id,onClick:()=>r(e.id),className:i(`inline-flex shrink-0 items-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium`,K.focusRingPanel,K.press,n===e.id?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`),children:[e.label,e.count?(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-1.5 py-0.5 text-[10px] tabular-nums text-fg-subtle`,children:e.count}):null]},e.id))})}),t[18]=n,t[19]=r,t[20]=g,t[21]=_):_=t[21],_}function ln(e){let t=(0,Q.c)(36),{snapshot:n,rollup:r,view:a,labels:o,cardLabels:s,isActive:c,processExpanded:l,logsExpanded:u,drawerAgentId:d,durationText:f,onToggleProcess:p,onToggleLogs:m,onSelectAgent:h}=e,g;t[0]===o.process?g=t[1]:(g=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:o.process}),t[0]=o.process,t[1]=g);let _;t[2]!==o.agentProgress||t[3]!==a.run.metrics.agentCount||t[4]!==a.run.metrics.doneAgentCount?(_=J(o.agentProgress,{done:a.run.metrics.doneAgentCount,total:a.run.metrics.agentCount}),t[2]=o.agentProgress,t[3]=a.run.metrics.agentCount,t[4]=a.run.metrics.doneAgentCount,t[5]=_):_=t[5];let v;t[6]!==f||t[7]!==_?(v=(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:[_,` · `,f]}),t[6]=f,t[7]=_,t[8]=v):v=t[8];let y;t[9]!==g||t[10]!==v?(y=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[g,v]}),t[9]=g,t[10]=v,t[11]=y):y=t[11];let b=l?`rotate-180`:null,x;t[12]===b?x=t[13]:(x=i(`size-4 shrink-0 text-fg-subtle transition-transform`,b),t[12]=b,t[13]=x);let S;t[14]===x?S=t[15]:(S=(0,$.jsx)(U,{className:x,"aria-hidden":!0}),t[14]=x,t[15]=S);let C;t[16]!==p||t[17]!==l||t[18]!==y||t[19]!==S?(C=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-4 px-4 py-3 text-left`,onClick:p,"aria-expanded":l,children:[y,S]}),t[16]=p,t[17]=l,t[18]=y,t[19]=S,t[20]=C):C=t[20];let w;t[21]!==s||t[22]!==d||t[23]!==c||t[24]!==o||t[25]!==u||t[26]!==h||t[27]!==m||t[28]!==l||t[29]!==r||t[30]!==n||t[31]!==a.phases?(w=l?(0,$.jsxs)(`div`,{className:`border-t border-edge px-4 pb-4 pt-4`,children:[c?(0,$.jsx)(A,{snapshot:n,labels:s,logsExpanded:u,onToggleLogs:m,selectedAgentId:d,onSelectAgent:h}):(0,$.jsx)(O,{rollup:r,currentPhase:n.currentPhase,labels:s.phase,recentLogs:n.logs,recentLogsHeading:s.recentLogsHeading,showAllLogsLabel:s.showAllLogs,logsExpanded:u,onToggleLogs:m,selectedAgentId:d,onSelectAgent:h}),a.phases.length>0?(0,$.jsx)(`div`,{className:`mt-4 grid gap-2 sm:grid-cols-2`,children:a.phases.map(e=>(0,$.jsx)(`div`,{className:`rounded-xl border border-edge bg-surface-panel px-3 py-2`,children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:e.title}),(0,$.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:en(e.status,o)})]})},e.id))}):null]}):null,t[21]=s,t[22]=d,t[23]=c,t[24]=o,t[25]=u,t[26]=h,t[27]=m,t[28]=l,t[29]=r,t[30]=n,t[31]=a.phases,t[32]=w):w=t[32];let T;return t[33]!==C||t[34]!==w?(T=(0,$.jsxs)(`div`,{className:`mt-5 rounded-2xl border border-edge bg-surface-base/35`,children:[C,w]}),t[33]=C,t[34]=w,t[35]=T):T=t[35],T}function un(e,t){return e.kind===`run_error`?e.code?J(t.diagnosticsRunErrorWithCode,{code:e.code}):t.diagnosticsRunError:e.kind===`agent_error`?J(t.diagnosticsAgentError,{agent:e.agentLabel??String(e.agentId??`—`)}):e.kind===`step_error`?J(t.diagnosticsStepError,{agent:e.agentLabel??String(e.agentId??`—`),step:e.stepLabel??e.stepId??`—`}):J(t.diagnosticsAgentSkipped,{agent:e.agentLabel??String(e.agentId??`—`)})}function dn(e){let t=(0,Q.c)(36),{view:n,comparison:r,labels:i,onOpenRunId:a}=e,o=n.run.metadata?.replay;if(!o)return null;let s;t[0]===i.replayLineageTitle?s=t[1]:(s=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:i.replayLineageTitle}),t[0]=i.replayLineageTitle,t[1]=s);let c;t[2]!==i||t[3]!==o.scope||t[4]!==o.targetCount?(c=J(i.replayLineageSummary,{scope:hn(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)(kn,{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)(kn,{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)(On,{label:i.replayFixedAgents,value:String(r.fixedAgentIds.length)}),(0,$.jsx)(On,{label:i.replayStillFailingAgents,value:String(r.stillFailingAgentIds.length)}),(0,$.jsx)(On,{label:i.replayDurationDelta,value:mn(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)(X,{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 fn(e,t,n){if(!e?.contentHash)return n.definitionHashUnavailable;let r=e.contentHash.slice(0,8);return t?.contentHash?t.contentHash===e.contentHash?`${r} · ${n.definitionHashMatches}`:`${r} · ${n.definitionHashDrifted}`:`${r} · ${n.definitionHashCurrentUnknown}`}function pn(e){let t=e?.permissions;if(!t)return`—`;let n=[t.tools?.length?`tools:${t.tools.join(`,`)}`:null,t.network==null?null:`network:${t.network?`on`:`off`}`,t.fileSystem?`fs:${t.fileSystem}`:null,t.approvalRequired?`approval`:null].filter(Boolean);return n.length>0?n.join(` · `):`—`}function mn(e){return e==null?`—`:`${e>0?`+`:e<0?`-`:``}${he(Math.abs(e))}`}function hn(e,t){return e===`failed_phases`?t.replayScopeFailedPhases:t.replayScopeFailedAgents}function gn(e){let t=(0,Q.c)(20),{outcome:n,labels:r,downloadingArtifactId:i,downloadError:a,onCopyText:o,onDownloadArtifact:s,onStartFollowUp:c}=e;if(!n||!n.artifacts.length&&!n.followUps.length&&n.structuredOutput===void 0){let e;return t[0]===r.noArtifacts?e=t[1]:(e=(0,$.jsx)(`section`,{className:`mt-5 rounded-xl border border-dashed border-edge p-4 text-sm text-fg-muted`,children:r.noArtifacts}),t[0]=r.noArtifacts,t[1]=e),e}let l;t[2]!==a||t[3]!==i||t[4]!==r||t[5]!==s||t[6]!==n.artifacts?(l=n.artifacts.length>0?(0,$.jsxs)(vn,{title:r.outcomeArtifacts,children:[(0,$.jsx)(`ul`,{className:`space-y-2`,children:n.artifacts.map(e=>(0,$.jsxs)(`li`,{className:`min-w-0 rounded-lg bg-surface-base px-2.5 py-2`,children:[(0,$.jsx)(`div`,{className:`truncate text-sm font-medium text-fg`,title:e.title??e.name,children:e.title??e.name}),(0,$.jsx)(`div`,{className:`mt-0.5 text-xs text-fg-subtle`,children:e.mimeType}),(0,$.jsxs)(`button`,{type:`button`,className:`mt-1 inline-flex items-center gap-1 text-xs font-medium text-accent-fg hover:underline disabled:cursor-wait disabled:opacity-60`,disabled:i===e.id,onClick:()=>s(e),children:[(0,$.jsx)(me,{className:`size-3`,"aria-hidden":!0}),i===e.id?r.downloadingArtifact:r.downloadArtifact]})]},e.id))}),a?(0,$.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-rose-600 dark:text-rose-400`,children:a}):null]}):null,t[2]=a,t[3]=i,t[4]=r,t[5]=s,t[6]=n.artifacts,t[7]=l):l=t[7];let u;t[8]!==r||t[9]!==o||t[10]!==c||t[11]!==n.followUps?(u=n.followUps.length>0?(0,$.jsx)(vn,{title:r.outcomeFollowUps,children:(0,$.jsx)(`ul`,{className:`space-y-2`,children:n.followUps.map(e=>(0,$.jsxs)(`li`,{className:`rounded-lg bg-surface-base px-2.5 py-2`,children:[(0,$.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:e.title}),e.prompt?(0,$.jsxs)(`div`,{className:`mt-1 flex flex-wrap gap-2`,children:[(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent-fg hover:underline`,onClick:()=>c(e),children:r.startFollowUp}),(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-fg-subtle hover:text-fg`,onClick:()=>o(e.prompt??``),children:r.copyPrompt})]}):null]},e.id))})}):null,t[8]=r,t[9]=o,t[10]=c,t[11]=n.followUps,t[12]=u):u=t[12];let d;t[13]!==r||t[14]!==n.structuredOutput?(d=n.structuredOutput===void 0?null:(0,$.jsx)(vn,{title:r.outcomeStructuredOutput,children:(0,$.jsx)(`pre`,{className:`max-h-44 overflow-auto whitespace-pre-wrap break-words rounded-lg bg-surface-base p-2 font-mono text-xs leading-5 text-fg-muted`,children:ue(n.structuredOutput)})}),t[13]=r,t[14]=n.structuredOutput,t[15]=d):d=t[15];let f;return t[16]!==l||t[17]!==u||t[18]!==d?(f=(0,$.jsxs)(`div`,{className:`mt-5 grid gap-3 lg:grid-cols-3`,children:[l,u,d]}),t[16]=l,t[17]=u,t[18]=d,t[19]=f):f=t[19],f}function _n(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),URL.revokeObjectURL(n)}function vn(e){let t=(0,Q.c)(7),{title:n,children:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`div`,{className:`mt-2`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`section`,{className:`min-w-0 rounded-xl border border-edge-subtle bg-surface-base/35 p-3`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function yn(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e,n=Array.isArray(t.artifacts)?t.artifacts:[],r=Array.isArray(t.followUps)?t.followUps:[];return n.length===0&&r.length===0&&t.structuredOutput===void 0?null:{artifacts:n,followUps:r,structuredOutput:t.structuredOutput}}function bn(e){let t=(0,Q.c)(27),{agents:n,labels:r,metadataItems:a,defaultExpanded:o}=e,[s,c]=(0,Z.useState)(o),l,u;t[0]===o?(l=t[1],u=t[2]):(l=()=>{c(o)},u=[o],t[0]=o,t[1]=l,t[2]=u),(0,Z.useEffect)(l,u);let d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>c(Sn),t[3]=d):d=t[3];let f;t[4]===r.debugDetailsTitle?f=t[5]:(f=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.debugDetailsTitle}),t[4]=r.debugDetailsTitle,t[5]=f);let p;t[6]===r.debugDetailsHint?p=t[7]:(p=(0,$.jsx)(`p`,{className:`text-xs leading-5 text-fg-subtle`,children:r.debugDetailsHint}),t[6]=r.debugDetailsHint,t[7]=p);let m;t[8]!==f||t[9]!==p?(m=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[f,p]}),t[8]=f,t[9]=p,t[10]=m):m=t[10];let h=s?`rotate-180`:null,g;t[11]===h?g=t[12]:(g=i(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,h),t[11]=h,t[12]=g);let _;t[13]===g?_=t[14]:(_=(0,$.jsx)(U,{className:g,"aria-hidden":!0}),t[13]=g,t[14]=_);let v;t[15]!==s||t[16]!==m||t[17]!==_?(v=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-4 px-4 py-3 text-left`,onClick:d,"aria-expanded":s,children:[m,_]}),t[15]=s,t[16]=m,t[17]=_,t[18]=v):v=t[18];let y;t[19]!==n||t[20]!==s||t[21]!==r||t[22]!==a?(y=s?(0,$.jsxs)(`div`,{className:`border-t border-edge px-4 py-4`,children:[(0,$.jsx)(Cn,{agents:n,labels:r}),(0,$.jsx)(`div`,{className:`mt-4 grid gap-3 rounded-xl border border-edge-subtle bg-surface-panel/60 p-3 sm:grid-cols-2 lg:grid-cols-3`,children:a.map(xn)})]}):null,t[19]=n,t[20]=s,t[21]=r,t[22]=a,t[23]=y):y=t[23];let b;return t[24]!==v||t[25]!==y?(b=(0,$.jsxs)(`section`,{className:`mt-6 rounded-2xl border border-edge bg-surface-base/35`,children:[v,y]}),t[24]=v,t[25]=y,t[26]=b):b=t[26],b}function xn(e){return(0,$.jsx)(kn,{label:e.label,value:e.value},e.label)}function Sn(e){return!e}function Cn(e){let t=(0,Q.c)(15),{agents:n,labels:r}=e;if(n.length===0)return null;let a;t[0]===r.agentIoTitle?a=t[1]:(a=(0,$.jsx)(`h4`,{className:`text-sm font-semibold text-fg`,children:r.agentIoTitle}),t[0]=r.agentIoTitle,t[1]=a);let o;t[2]===r.agentIoHint?o=t[3]:(o=(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:r.agentIoHint}),t[2]=r.agentIoHint,t[3]=o);let s;if(t[4]!==n||t[5]!==r){let e;t[7]===r?e=t[8]:(e=e=>{let t=e.error||e.resultPreview||r.agentNoOutput;return(0,$.jsxs)(`article`,{className:`rounded-xl border border-edge-subtle bg-surface-panel p-3`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,$.jsx)(`div`,{className:`min-w-0 text-sm font-medium text-fg`,children:e.label}),(0,$.jsx)(`span`,{className:i(`rounded-full px-2 py-0.5 text-xs font-medium`,Dn(e.status)),children:r.agentStatus[e.status]??e.status})]}),(0,$.jsxs)(`div`,{className:`mt-3 grid gap-3 lg:grid-cols-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-wide text-fg-subtle`,children:r.agentInputHeading}),(0,$.jsx)(`pre`,{className:`mt-1 max-h-32 overflow-y-auto whitespace-pre-wrap wrap-break-word rounded-lg border border-edge-subtle bg-surface-base/50 p-2 font-mono text-xs leading-5 text-fg-muted`,children:e.prompt||`—`})]}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-wide text-fg-subtle`,children:r.agentOutputHeading}),(0,$.jsx)(`div`,{className:i(`mt-1 max-h-32 overflow-y-auto whitespace-pre-wrap wrap-break-word rounded-lg border border-edge-subtle bg-surface-base/50 p-2 text-xs leading-5`,e.error?`font-mono text-rose-600 dark:text-rose-400`:`text-fg-muted`),children:t})]})]}),(0,$.jsx)(wn,{agent:e,labels:r})]},e.id)},t[7]=r,t[8]=e),s=n.map(e),t[4]=n,t[5]=r,t[6]=s}else s=t[6];let c;t[9]===s?c=t[10]:(c=(0,$.jsx)(`div`,{className:`mt-3 grid gap-3`,children:s}),t[9]=s,t[10]=c);let l;return t[11]!==a||t[12]!==o||t[13]!==c?(l=(0,$.jsxs)(`section`,{children:[a,o,c]}),t[11]=a,t[12]=o,t[13]=c,t[14]=l):l=t[14],l}function wn(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(En),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(Tn)}),t[19]=m,t[20]=h),h}function Tn(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 En(e){return!!e.value}function Dn(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 On(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 kn(e){let t=(0,Q.c)(7),{label:n,value:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`div`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`div`,{className:`mt-1 truncate text-sm font-medium text-fg`,title:r,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}var An=`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`;function jn(e){return!!(e&&e.type===`object`&&e.properties&&!Array.isArray(e.properties))}function Mn({schema:e,value:t,onChange:n,labels:r}){let a=(0,Z.useMemo)(()=>Fn(e),[e]),[o,s]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(()=>JSON.stringify(t,null,2)),[u,d]=(0,Z.useState)(null);if(a.length===0)return null;let f=(e,r)=>{let i={...t,[e]:r};(r===``||r===void 0)&&delete i[e],n(i),o&&l(JSON.stringify(i,null,2))},p=e=>{l(e);try{let t=e.trim()?JSON.parse(e):{};if(!t||typeof t!=`object`||Array.isArray(t)){d(r.rawJsonInvalid);return}d(null),n(t)}catch{d(r.rawJsonInvalid)}};return(0,$.jsxs)(`section`,{className:`rounded-2xl border border-edge-subtle bg-surface-base/35 p-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.inputSchemaHeading}),(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent-fg hover:underline`,onClick:()=>{let e=!o;s(e),e&&(l(JSON.stringify(t,null,2)),d(null))},children:r.rawJson})]}),o?(0,$.jsxs)(`div`,{className:`mt-3`,children:[(0,$.jsx)(`textarea`,{value:c,onChange:e=>p(e.target.value),spellCheck:!1,className:i(An,`min-h-40 font-mono text-xs leading-5`)}),u?(0,$.jsx)(`p`,{className:`mt-1 text-xs text-red-600 dark:text-red-300`,children:u}):null]}):(0,$.jsx)(`div`,{className:`mt-3 grid gap-3`,children:a.map(e=>(0,$.jsx)(Nn,{field:e,value:t[e.key],labels:r,onChange:t=>f(e.key,t)},e.key))})]})}function Nn(e){let t=(0,Q.c)(18),{field:n,value:r,labels:a,onChange:o}=e,s=n.schema.title||n.key,c=typeof n.schema.description==`string`?n.schema.description:void 0,l=Array.isArray(n.schema.type)?n.schema.type[0]:n.schema.type,u;t[0]===n.schema.enum?u=t[1]:(u=Array.isArray(n.schema.enum)?n.schema.enum:[],t[0]=n.schema.enum,t[1]=u);let d=u,f=String(s),p=n.required?` *`:``,m;t[2]!==f||t[3]!==p?(m=(0,$.jsxs)(`span`,{className:`text-xs font-medium text-fg`,children:[f,p]}),t[2]=f,t[3]=p,t[4]=m):m=t[4];let h;t[5]===c?h=t[6]:(h=c?(0,$.jsx)(`p`,{className:`mt-0.5 text-xs leading-5 text-fg-subtle`,children:c}):null,t[5]=c,t[6]=h);let g;t[7]!==c||t[8]!==d||t[9]!==a||t[10]!==o||t[11]!==l||t[12]!==r?(g=d.length>0?(0,$.jsxs)(`select`,{value:r==null?``:String(r),onChange:e=>o(e.target.value),className:An,children:[(0,$.jsx)(`option`,{value:``}),d.map(Pn)]}):l===`boolean`?(0,$.jsxs)(`select`,{value:typeof r==`boolean`?String(r):``,onChange:e=>o(e.target.value===``?void 0:e.target.value===`true`),className:An,children:[(0,$.jsx)(`option`,{value:``}),(0,$.jsx)(`option`,{value:`true`,children:a.booleanTrue}),(0,$.jsx)(`option`,{value:`false`,children:a.booleanFalse})]}):l===`number`||l===`integer`?(0,$.jsx)(`input`,{type:`number`,value:typeof r==`number`||typeof r==`string`?String(r):``,onChange:e=>o(e.target.value===``?void 0:Number(e.target.value)),className:An}):(0,$.jsx)(`textarea`,{value:typeof r==`string`?r:r==null?``:String(r),onChange:e=>o(e.target.value),className:i(An,c&&c.length>80?`min-h-20 resize-y`:`min-h-10 resize-y`)}),t[7]=c,t[8]=d,t[9]=a,t[10]=o,t[11]=l,t[12]=r,t[13]=g):g=t[13];let _;return t[14]!==m||t[15]!==h||t[16]!==g?(_=(0,$.jsxs)(`label`,{className:`block`,children:[m,h,g]}),t[14]=m,t[15]=h,t[16]=g,t[17]=_):_=t[17],_}function Pn(e){return(0,$.jsx)(`option`,{value:String(e),children:String(e)},String(e))}function Fn(e){let t=e.properties??{},n=new Set(e.required??[]);return Object.entries(t).map(([e,t])=>({key:e,schema:t,required:n.has(e)}))}function In(e){let t=(0,Q.c)(12),{examples:n,labels:r,onSelect:i}=e;if(n.length===0)return null;let a;t[0]===r.examplePrompts?a=t[1]:(a=(0,$.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:r.examplePrompts}),t[0]=r.examplePrompts,t[1]=a);let o;if(t[2]!==n||t[3]!==i){let e;t[5]===i?e=t[6]:(e=e=>(0,$.jsx)(`button`,{type:`button`,onClick:()=>i(e),className:`rounded-lg border border-edge bg-surface-base/50 px-3 py-2 text-left text-xs text-fg-muted hover:bg-surface-hover`,children:e.text},`${e.field}:${e.text}`),t[5]=i,t[6]=e),o=n.map(e),t[2]=n,t[3]=i,t[4]=o}else o=t[4];let s;t[7]===o?s=t[8]:(s=(0,$.jsx)(`div`,{className:`mt-2 flex flex-col gap-1.5`,children:o}),t[7]=o,t[8]=s);let c;return t[9]!==a||t[10]!==s?(c=(0,$.jsxs)(`div`,{children:[a,s]}),t[9]=a,t[10]=s,t[11]=c):c=t[11],c}function Ln(e,t){let n=e.metadata.estimatedAgents;return n?n.min===n.max?J(t.agentScaleExact,{count:n.min}):J(t.agentScaleRange,{min:n.min,max:n.max}):J(t.agentScaleExact,{count:e.defaults.maxSubagents})}function Rn(e,t,n,r){let i=Object.values(t).map(e=>e.trim()).filter(Boolean),a=e.trim()||n;return a&&i.unshift(a),i.length===0?r.noInputSummary:i.join(` · `)}function zn(e){let t=(0,Q.c)(58),{open:n,definition:r,language:o,starting:s,onClose:c,onStart:l}=e,f=a(o).workflows,[p,m]=(0,Z.useState)(``),g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g={},t[0]=g):g=t[0];let[v,b]=(0,Z.useState)(g),x;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(x={},t[1]=x):x=t[1];let[S,C]=(0,Z.useState)(x),[w,T]=(0,Z.useState)(``),[E,D]=(0,Z.useState)(``),[O,k]=(0,Z.useState)(!1),A;t[2]!==r||t[3]!==o?(A=r?u(r,o):null,t[2]=r,t[3]=o,t[4]=A):A=t[4];let j=A,M;t[5]===r?M=t[6]:(M=r?Le[r.name]??[]:[],t[5]=r,t[6]=M);let N=M,F;t[7]===j?.examplePrompts?F=t[8]:(F=j?.examplePrompts??[],t[7]=j?.examplePrompts,t[8]=F);let I=F,L=r?.inputSchema,R;t[9]===L?R=t[10]:(R=jn(L),t[9]=L,t[10]=R);let ee=R,z=!ee&&N.length>0,B;t[11]!==w||t[12]!==r?.defaults?(B=w.trim()?Number(w):r?.defaults.concurrency,t[11]=w,t[12]=r?.defaults,t[13]=B):B=t[13];let te=B,V;t[14]!==r?.defaults||t[15]!==E?(V=E.trim()?Number(E):r?.defaults.maxSubagents,t[14]=r?.defaults,t[15]=E,t[16]=V):V=t[16];let ne=V,W=r&&j?ee&&Object.keys(S).length>0?Object.entries(S).map(Hn).join(` · `):Rn(p,v,j.description,f):f.noInputSummary,re;t[17]!==r||t[18]!==n?(re=()=>{!n||!r||(m(``),b({}),C({}),T(``),D(``),k(!1))},t[17]=r,t[18]=n,t[19]=re):re=t[19];let ie=r?.id,ae;if(t[20]!==n||t[21]!==ie?(ae=[n,ie],t[20]=n,t[21]=ie,t[22]=ae):ae=t[22],(0,Z.useEffect)(re,ae),!r||!j)return null;let G;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(G=e=>{Se(e,m,b)},t[23]=G):G=t[23];let K=G,oe;t[24]!==v||t[25]!==w||t[26]!==p||t[27]!==ee||t[28]!==j.description||t[29]!==E||t[30]!==l||t[31]!==S?(oe=()=>{let e=ee&&Object.keys(S).length>0?S:we(v);l({goal:p.trim()||j.description,input:e,concurrency:w.trim()?Number(w):void 0,maxSubagents:E.trim()?Number(E):void 0})},t[24]=v,t[25]=w,t[26]=p,t[27]=ee,t[28]=j.description,t[29]=E,t[30]=l,t[31]=S,t[32]=oe):oe=t[32];let se=oe,ce;t[33]===c?ce=t[34]:(ce=e=>!e&&c(),t[33]=c,t[34]=ce);let le;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(le=(0,$.jsx)(H,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[35]=le):le=t[35];let ue;t[36]===j.description?ue=t[37]:(ue=(0,$.jsx)(Re,{className:`mt-1 text-sm text-fg-muted`,children:j.description}),t[36]=j.description,t[37]=ue);let de;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(de=(0,$.jsx)(Ce,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[38]=de):de=t[38];let fe;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(fe=(0,$.jsx)(Te,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[39]=fe):fe=t[39];let pe;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(pe=(0,$.jsx)(d,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[40]=pe):pe=t[40];let me;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(me=e=>m(e.target.value),t[41]=me):me=t[41];let he;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(he=()=>k(Bn),t[42]=he):he=t[42];let ge=f.advancedSettings,_e=O&&`rotate-180`,q;t[43]===_e?q=t[44]:(q=i(`size-4 transition-transform`,_e),t[43]=_e,t[44]=q);let ve;t[45]===q?ve=t[46]:(ve=(0,$.jsx)(U,{className:q}),t[45]=q,t[46]=ve);let ye;t[47]!==f.cancelDialog||t[48]!==c||t[49]!==s?(ye=(0,$.jsx)(X,{variant:`secondary`,onClick:c,disabled:s,children:f.cancelDialog}),t[47]=f.cancelDialog,t[48]=c,t[49]=s,t[50]=ye):ye=t[50];let be=s?f.starting:f.start,xe;t[51]!==s||t[52]!==se||t[53]!==be?(xe=(0,$.jsx)(X,{variant:`primary`,onClick:se,disabled:s,children:be}),t[51]=s,t[52]=se,t[53]=be,t[54]=xe):xe=t[54];let Y;return t[55]!==ye||t[56]!==xe?(Y=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[ye,xe]}),t[55]=ye,t[56]=xe,t[57]=Y):Y=t[57],(0,$.jsx)(_,{open:n,onOpenChange:ce,children:(0,$.jsxs)(y,{children:[le,(0,$.jsxs)(h,{className:`fixed left-1/2 top-1/2 z-66 flex max-h-[min(85vh,40rem)] w-[min(100%-2rem,32rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[(0,$.jsxs)(P,{className:`text-base font-semibold text-fg`,children:[f.startTitle,` · `,r.title]}),ue]}),(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-auto px-5 py-4`,children:[(0,$.jsxs)(`section`,{className:`rounded-2xl border border-edge bg-surface-base/70 p-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:f.runPlanPreview}),(0,$.jsx)(`p`,{className:`mt-1 line-clamp-2 text-xs leading-5 text-fg-muted`,children:W})]}),(0,$.jsx)(`span`,{className:`shrink-0 rounded-full bg-accent-soft px-2 py-1 text-[11px] font-medium text-accent-fg`,children:f.readyToStart})]}),(0,$.jsxs)(`div`,{className:`mt-4 grid gap-2 text-xs text-fg-muted sm:grid-cols-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[de,(0,$.jsx)(`span`,{children:J(f.phaseCount,{count:r.phases.length})})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[fe,(0,$.jsx)(`span`,{children:Ln(r,f)})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[pe,(0,$.jsx)(`span`,{children:J(f.runLimitsSummary,{concurrency:te??r.defaults.concurrency,max:ne??r.defaults.maxSubagents})})]})]}),r.phases.length>0?(0,$.jsxs)(`div`,{className:`mt-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] font-medium uppercase tracking-wide text-fg-subtle`,children:[(0,$.jsx)(Ue,{className:`size-3.5`,"aria-hidden":!0}),f.startPlanPhases]}),(0,$.jsx)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5`,children:r.phases.map(Vn)})]}):null]}),ee&&r.inputSchema?(0,$.jsx)(Mn,{schema:r.inputSchema,value:S,onChange:C,labels:{inputSchemaHeading:f.inputSchemaHeading,rawJson:f.rawJson,rawJsonInvalid:f.rawJsonInvalid,booleanTrue:f.booleanTrue,booleanFalse:f.booleanFalse}}):null,!ee&&N.map(e=>(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsxs)(`span`,{className:`text-xs font-medium text-fg`,children:[Un(f,e.labelKey),e.required?` *`:``]}),e.multiline?(0,$.jsx)(`textarea`,{value:v[e.key]??``,onChange:t=>b(n=>({...n,[e.key]:t.target.value})),placeholder:Un(f,e.placeholderKey),className:`mt-1.5 min-h-20 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}):(0,$.jsx)(`input`,{value:v[e.key]??``,onChange:t=>b(n=>({...n,[e.key]:t.target.value})),placeholder:Un(f,e.placeholderKey),className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]},e.key)),z?(0,$.jsx)(In,{examples:I,labels:f,onSelect:K}):null,(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:f.goalLabel}),(0,$.jsx)(`textarea`,{value:p,onChange:me,placeholder:f.goalPlaceholder,className:`mt-1.5 min-h-24 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}),z?null:(0,$.jsx)(In,{examples:I,labels:f,onSelect:K}),(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between px-3 py-2.5 text-left text-sm text-fg`,onClick:he,children:[ge,ve]}),O?(0,$.jsxs)(`div`,{className:`grid gap-3 border-t border-edge px-3 pb-3 pt-3 sm:grid-cols-2`,children:[(0,$.jsx)(`input`,{value:w,onChange:e=>T(e.target.value),placeholder:J(f.concurrencyPlaceholder,{default:r.defaults.concurrency}),inputMode:`numeric`,className:`rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}),(0,$.jsx)(`input`,{value:E,onChange:e=>D(e.target.value),placeholder:J(f.maxSubagentsPlaceholder,{default:r.defaults.maxSubagents}),inputMode:`numeric`,className:`rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}):null]})]}),Y]})]})})}function Bn(e){return!e}function Vn(e,t){return(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[t>0?(0,$.jsx)(`span`,{className:`text-fg-subtle`,children:`→`}):null,(0,$.jsx)(`span`,{className:`rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1 text-[11px] text-fg-muted`,children:e.title})]},e.id)}function Hn(e){let[t,n]=e;return`${t}: ${String(n)}`}function Un(e,t){return e.args[t]??t}function Wn(e){let t=(0,Q.c)(30),{stats:n,language:r}=e,i,o,s;if(t[0]!==r||t[1]!==n){s=Symbol.for(`react.early_return_sentinel`);bb0:{if(i=a(r).workflows,!n||n.totalRuns===0){s=null;break bb0}o=n.topDefinitions[0]?J(i.statsTopWorkflow,{name:n.topDefinitions[0].definitionId,count:n.topDefinitions[0].count}):null}t[0]=r,t[1]=n,t[2]=i,t[3]=o,t[4]=s}else i=t[2],o=t[3],s=t[4];if(s!==Symbol.for(`react.early_return_sentinel`))return s;let c=o,l=i.statsTotalRuns,u=String(n.totalRuns),d;t[5]!==i.statsTotalRuns||t[6]!==u?(d=(0,$.jsx)(Gn,{label:l,value:u}),t[5]=i.statsTotalRuns,t[6]=u,t[7]=d):d=t[7];let f=i.statsActiveRuns,p=String(n.activeRuns),m;t[8]!==i.statsActiveRuns||t[9]!==p?(m=(0,$.jsx)(Gn,{label:f,value:p}),t[8]=i.statsActiveRuns,t[9]=p,t[10]=m):m=t[10];let h;t[11]!==n.succeededRuns||t[12]!==n.totalRuns?(h=n.totalRuns>0?`${Math.round(n.succeededRuns/n.totalRuns*100)}%`:`—`,t[11]=n.succeededRuns,t[12]=n.totalRuns,t[13]=h):h=t[13];let g;t[14]!==i.statsSuccessRate||t[15]!==h?(g=(0,$.jsx)(Gn,{label:i.statsSuccessRate,value:h}),t[14]=i.statsSuccessRate,t[15]=h,t[16]=g):g=t[16];let _;t[17]===n.averageDurationMs?_=t[18]:(_=n.averageDurationMs==null?`—`:he(n.averageDurationMs),t[17]=n.averageDurationMs,t[18]=_);let v;t[19]!==i.statsAvgDuration||t[20]!==_?(v=(0,$.jsx)(Gn,{label:i.statsAvgDuration,value:_}),t[19]=i.statsAvgDuration,t[20]=_,t[21]=v):v=t[21];let y;t[22]===c?y=t[23]:(y=c?(0,$.jsx)(`span`,{className:`min-w-0 truncate text-xs text-fg-muted`,children:c}):null,t[22]=c,t[23]=y);let b;return t[24]!==g||t[25]!==v||t[26]!==y||t[27]!==d||t[28]!==m?(b=(0,$.jsxs)(`section`,{className:`flex min-w-0 flex-wrap items-center gap-2 rounded-lg border border-edge bg-surface-panel/70 px-3 py-2`,children:[d,m,g,v,y]}),t[24]=g,t[25]=v,t[26]=y,t[27]=d,t[28]=m,t[29]=b):b=t[29],b}function Gn(e){let t=(0,Q.c)(7),{label:n,value:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`span`,{children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`span`,{className:`font-semibold tabular-nums text-fg`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-full border border-edge bg-surface-muted px-2.5 py-1 text-xs text-fg-muted`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function Kn(e){let t=(0,Q.c)(20),{vm:n}=e,{labels:r,loading:i,refreshAll:a,setManageOpen:o,setPickStartOpen:s}=n,c;t[0]===s?c=t[1]:(c=()=>s(!0),t[0]=s,t[1]=c);let l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(R,{className:`size-4`,"aria-hidden":!0}),t[2]=l):l=t[2];let u;t[3]!==r.boardStart||t[4]!==c?(u=(0,$.jsxs)(X,{variant:`primary`,className:`h-9 rounded-lg`,onClick:c,children:[l,r.boardStart]}),t[3]=r.boardStart,t[4]=c,t[5]=u):u=t[5];let d;t[6]===o?d=t[7]:(d=()=>o(!0),t[6]=o,t[7]=d);let f;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(G,{className:`size-4`,"aria-hidden":!0}),t[8]=f):f=t[8];let p;t[9]!==r.addWorkflow||t[10]!==d?(p=(0,$.jsxs)(X,{variant:`secondary`,className:`h-9 rounded-lg`,onClick:d,children:[f,r.addWorkflow]}),t[9]=r.addWorkflow,t[10]=d,t[11]=p):p=t[11];let m;t[12]!==r.refresh||t[13]!==i||t[14]!==a?(m=(0,$.jsx)(Ve,{className:`size-9 shrink-0 p-0`,loading:i,label:r.refresh,onClick:a}),t[12]=r.refresh,t[13]=i,t[14]=a,t[15]=m):m=t[15];let h;return t[16]!==u||t[17]!==p||t[18]!==m?(h=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[u,p,m]}),t[16]=u,t[17]=p,t[18]=m,t[19]=h):h=t[19],h}var qn=[`attention`,`running`,`queued`,`recent`];function Jn(e){return e.status===`failed`||e.status===`timeout`||e.status===`cancelled`?`attention`:e.status===`running`?`running`:e.status===`queued`?`queued`:e.status===`succeeded`?`recent`:null}function Yn(e){return e.completedAtMs??e.startedAtMs??e.createdAtMs}function Xn(e,t){let n=[...t];return e===`queued`?n.sort((e,t)=>e.createdAtMs-t.createdAtMs):n.sort((e,t)=>Yn(t)-Yn(e))}function Zn(e){let t=new Map(qn.map(e=>[e,[]]));for(let n of e){let e=Jn(n);e&&t.get(e)?.push(n)}for(let e of qn)t.set(e,Xn(e,t.get(e)??[]));return t}function Qn(e){let t=(0,Q.c)(205),{vm:n}=e,{language:r,localeTag:o,labels:s,hasToken:c,definitions:l,runs:u,searchQuery:d,setSearchQuery:f,ownerAgentId:p,agentOptions:m,setOwnerAgentId:h,workflowFilterId:g,setWorkflowFilterId:_,triggerFilter:v,setTriggerFilter:y,selectedRunId:b,selectedRunView:x,selectedRunComparison:S,selectedRunLoading:w,selectedRunError:T,openRunDetails:E,closeRunDetails:D,openRunDetailsById:O,openRunInChat:k,pickStartOpen:A,setPickStartOpen:M,startDefinition:N,setStartDefinition:P,detailDefinition:I,setDetailDefinition:L,manageOpen:R,setManageOpen:ee,workflowEditorDraft:B,openWorkflowEditor:te,actionError:V,actionFeedback:H,starting:U,savingWorkflow:ne,loading:W,error:re,stats:ie,submitStart:ae,cancelRun:G,retryRun:oe,replayRun:se,saveCustomWorkflow:ce,saveDraftAndStart:le}=n,ue=j(tr),de=j(er),[fe,pe]=(0,Z.useState)(`operations`),me;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(me=Date.now(),t[0]=me):me=t[0];let he=me,ge=Zn(tt(u,{searchQuery:d,workflowFilterId:g,triggerFilter:v})),_e;t[1]!==de||t[2]!==c||t[3]!==s.statsActiveRuns||t[4]!==s.statsTotalRuns||t[5]!==s.subtitleBoard||t[6]!==s.title||t[7]!==ue||t[8]!==ie||t[9]!==n?(_e=()=>{if(!c){de();return}return ue({startExtra:null,main:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:s.title}),(0,$.jsx)(`p`,{className:`truncate text-xs text-fg-muted`,children:ie?`${s.statsTotalRuns}: ${ie.totalRuns} · ${s.statsActiveRuns}: ${ie.activeRuns}`:s.subtitleBoard})]}),end:(0,$.jsx)(Kn,{vm:n})}),()=>de()},t[1]=de,t[2]=c,t[3]=s.statsActiveRuns,t[4]=s.statsTotalRuns,t[5]=s.subtitleBoard,t[6]=s.title,t[7]=ue,t[8]=ie,t[9]=n,t[10]=_e):_e=t[10];let q;if(t[11]!==de||t[12]!==c||t[13]!==s.statsActiveRuns||t[14]!==s.statsTotalRuns||t[15]!==s.subtitleBoard||t[16]!==s.title||t[17]!==W||t[18]!==ie||t[19]!==n?(q=[de,c,s.title,s.statsActiveRuns,s.statsTotalRuns,s.subtitleBoard,W,ie,n,n.refreshAll,n.setManageOpen,n.setSearchQuery],t[11]=de,t[12]=c,t[13]=s.statsActiveRuns,t[14]=s.statsTotalRuns,t[15]=s.subtitleBoard,t[16]=s.title,t[17]=W,t[18]=ie,t[19]=n,t[20]=q):q=t[20],(0,Z.useLayoutEffect)(_e,q),!c){let e;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(C,{className:`size-10 text-accent-fg`,"aria-hidden":!0}),t[21]=e):e=t[21];let n;t[22]===s.title?n=t[23]:(n=(0,$.jsx)(`h1`,{className:`mt-4 text-xl font-semibold text-fg`,children:s.title}),t[22]=s.title,t[23]=n);let r;t[24]===s.needToken?r=t[25]:(r=(0,$.jsx)(`p`,{className:`mt-2 max-w-md text-sm leading-6 text-fg-muted`,children:s.needToken}),t[24]=s.needToken,t[25]=r);let i;return t[26]!==n||t[27]!==r?(i=(0,$.jsx)(`main`,{className:`min-h-0 flex-1 overflow-auto bg-surface-base`,children:(0,$.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col items-center px-4 py-16 text-center sm:px-8`,children:[e,n,r]})}),t[26]=n,t[27]=r,t[28]=i):i=t[28],i}let J;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,$.jsx)(z,{className:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[29]=J):J=t[29];let ve;t[30]===f?ve=t[31]:(ve=e=>f(e.target.value),t[30]=f,t[31]=ve);let ye=s.searchPlaceholder,be;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(be=i(`h-9 w-full rounded-lg border border-edge bg-surface-panel py-2 pl-9 pr-3 text-sm text-fg shadow-surface`,`placeholder:text-fg-subtle`,K.focusRingPanel),t[32]=be):be=t[32];let xe;t[33]!==s.searchPlaceholder||t[34]!==d||t[35]!==ve?(xe=(0,$.jsxs)(`div`,{className:`relative min-w-48 flex-1 sm:max-w-xs`,children:[J,(0,$.jsx)(`input`,{value:d,onChange:ve,placeholder:ye,className:be})]}),t[33]=s.searchPlaceholder,t[34]=d,t[35]=ve,t[36]=xe):xe=t[36];let Se;t[37]!==m||t[38]!==r||t[39]!==p||t[40]!==h?(Se=m.length>1?(0,$.jsx)(`select`,{value:p??``,"aria-label":`Agent`,onChange:e=>h(e.target.value),className:i(`h-9 min-w-32 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,K.focusRingPanel),children:m.map(e=>(0,$.jsx)(`option`,{value:e.id,children:Ne(e,a(r).agentsSettings)},e.id))}):null,t[37]=m,t[38]=r,t[39]=p,t[40]=h,t[41]=Se):Se=t[41];let Ce=s.boardTriggerFilterAria,we;t[42]===y?we=t[43]:(we=e=>y(e.target.value),t[42]=y,t[43]=we);let Te;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(Te=i(`h-9 min-w-[7.5rem] rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,K.focusRingPanel),t[44]=Te):Te=t[44];let Y;t[45]===s.boardTriggerFilterAll?Y=t[46]:(Y=(0,$.jsx)(`option`,{value:`all`,children:s.boardTriggerFilterAll}),t[45]=s.boardTriggerFilterAll,t[46]=Y);let Ee;t[47]===s.boardTriggerFilterCron?Ee=t[48]:(Ee=(0,$.jsx)(`option`,{value:`cron`,children:s.boardTriggerFilterCron}),t[47]=s.boardTriggerFilterCron,t[48]=Ee);let De;t[49]===s.boardTriggerFilterWebui?De=t[50]:(De=(0,$.jsx)(`option`,{value:`webui`,children:s.boardTriggerFilterWebui}),t[49]=s.boardTriggerFilterWebui,t[50]=De);let X;t[51]===s.boardTriggerFilterChat?X=t[52]:(X=(0,$.jsx)(`option`,{value:`chat`,children:s.boardTriggerFilterChat}),t[51]=s.boardTriggerFilterChat,t[52]=X);let Oe;t[53]===s.boardTriggerFilterApi?Oe=t[54]:(Oe=(0,$.jsx)(`option`,{value:`api`,children:s.boardTriggerFilterApi}),t[53]=s.boardTriggerFilterApi,t[54]=Oe);let ke;t[55]!==s.boardTriggerFilterAria||t[56]!==we||t[57]!==Y||t[58]!==Ee||t[59]!==De||t[60]!==X||t[61]!==Oe||t[62]!==v?(ke=(0,$.jsxs)(`select`,{value:v,"aria-label":Ce,onChange:we,className:Te,children:[Y,Ee,De,X,Oe]}),t[55]=s.boardTriggerFilterAria,t[56]=we,t[57]=Y,t[58]=Ee,t[59]=De,t[60]=X,t[61]=Oe,t[62]=v,t[63]=ke):ke=t[63];let Ae=s.boardWorkflowFilterAria,je;t[64]===_?je=t[65]:(je=e=>_(e.target.value),t[64]=_,t[65]=je);let Me;t[66]===Symbol.for(`react.memo_cache_sentinel`)?(Me=i(`h-9 min-w-40 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,K.focusRingPanel),t[66]=Me):Me=t[66];let Pe;t[67]===s.boardWorkflowFilterAll?Pe=t[68]:(Pe=(0,$.jsx)(`option`,{value:``,children:s.boardWorkflowFilterAll}),t[67]=s.boardWorkflowFilterAll,t[68]=Pe);let Fe;t[69]===l?Fe=t[70]:(Fe=l.map($n),t[69]=l,t[70]=Fe);let Ie;t[71]!==s.boardWorkflowFilterAria||t[72]!==je||t[73]!==Pe||t[74]!==Fe||t[75]!==g?(Ie=(0,$.jsxs)(`select`,{value:g,"aria-label":Ae,onChange:je,className:Me,children:[Pe,Fe]}),t[71]=s.boardWorkflowFilterAria,t[72]=je,t[73]=Pe,t[74]=Fe,t[75]=g,t[76]=Ie):Ie=t[76];let Le=fe===`operations`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:text-fg`,Re;t[77]===Le?Re=t[78]:(Re=i(`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium transition-colors`,Le),t[77]=Le,t[78]=Re);let ze,Ve;t[79]===Symbol.for(`react.memo_cache_sentinel`)?(ze=()=>pe(`operations`),Ve=(0,$.jsx)(Be,{className:`size-3.5`,"aria-hidden":!0}),t[79]=ze,t[80]=Ve):(ze=t[79],Ve=t[80]);let He;t[81]!==s.viewModes.operations||t[82]!==Re?(He=(0,$.jsxs)(`button`,{type:`button`,className:Re,onClick:ze,children:[Ve,s.viewModes.operations]}),t[81]=s.viewModes.operations,t[82]=Re,t[83]=He):He=t[83];let Ue=fe===`board`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:text-fg`,We;t[84]===Ue?We=t[85]:(We=i(`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium transition-colors`,Ue),t[84]=Ue,t[85]=We);let Ge,Ke;t[86]===Symbol.for(`react.memo_cache_sentinel`)?(Ge=()=>pe(`board`),Ke=(0,$.jsx)(F,{className:`size-3.5`,"aria-hidden":!0}),t[86]=Ge,t[87]=Ke):(Ge=t[86],Ke=t[87]);let qe;t[88]!==s.viewModes.board||t[89]!==We?(qe=(0,$.jsxs)(`button`,{type:`button`,className:We,onClick:Ge,children:[Ke,s.viewModes.board]}),t[88]=s.viewModes.board,t[89]=We,t[90]=qe):qe=t[90];let Je;t[91]!==He||t[92]!==qe?(Je=(0,$.jsxs)(`div`,{className:`flex rounded-lg border border-edge bg-surface-muted p-0.5`,children:[He,qe]}),t[91]=He,t[92]=qe,t[93]=Je):Je=t[93];let Ye;t[94]!==xe||t[95]!==Se||t[96]!==ke||t[97]!==Ie||t[98]!==Je?(Ye=(0,$.jsxs)(`section`,{className:`mx-auto flex w-full max-w-app-main flex-wrap items-center gap-2 rounded-lg border border-edge bg-surface-panel/70 px-3 py-2`,children:[xe,Se,ke,Ie,Je]}),t[94]=xe,t[95]=Se,t[96]=ke,t[97]=Ie,t[98]=Je,t[99]=Ye):Ye=t[99];let Xe;t[100]===H?Xe=t[101]:(Xe=H?(0,$.jsx)(`div`,{className:`mx-auto w-full max-w-app-main rounded-xl border border-emerald-500/25 bg-emerald-500/10 px-3 py-2 text-sm text-emerald-800 dark:text-emerald-200`,children:H}):null,t[100]=H,t[101]=Xe);let Ze;t[102]!==V||t[103]!==re?(Ze=V??re?(0,$.jsx)(`div`,{className:`mx-auto w-full max-w-app-main rounded-xl border border-red-500/25 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:V??re}):null,t[102]=V,t[103]=re,t[104]=Ze):Ze=t[104];let Qe;t[105]!==r||t[106]!==ie?(Qe=(0,$.jsx)(`div`,{className:`mx-auto w-full max-w-app-main`,children:(0,$.jsx)(Wn,{stats:ie,language:r})}),t[105]=r,t[106]=ie,t[107]=Qe):Qe=t[107];let $e;t[108]===T?$e=t[109]:($e=T?(0,$.jsx)(`div`,{className:`mx-auto w-full max-w-app-main rounded-xl border border-amber-500/25 bg-amber-500/10 px-3 py-2 text-sm text-amber-800 dark:text-amber-200`,children:T}):null,t[108]=T,t[109]=$e);let et=fe===`operations`?(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto pb-3`,children:(0,$.jsx)(`div`,{className:`mx-auto grid w-full max-w-app-main gap-4`,children:qn.map(e=>{let t=ge.get(e)??[];return(0,$.jsxs)(`section`,{className:`rounded-lg border border-edge bg-surface-panel/60`,children:[(0,$.jsxs)(`header`,{className:`flex flex-wrap items-start justify-between gap-3 border-b border-edge-subtle px-4 py-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:s.operationSections[e].title}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:s.operationSections[e].description})]}),(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2.5 py-1 text-xs font-semibold tabular-nums text-fg-muted`,children:t.length})]}),(0,$.jsxs)(`div`,{className:`grid gap-2 p-2.5 md:grid-cols-2 xl:grid-cols-3`,children:[t.map(e=>(0,$.jsx)(ft,{run:e,language:r,localeTag:o,nowMs:he,selected:e.id===b,onOpen:E,onOpenChat:k,onCancel:e=>void G(e),onRetry:e=>void oe(e)},e.id)),!W&&t.length===0?(0,$.jsx)(`div`,{className:`flex min-h-24 items-center justify-center rounded-md border border-dashed border-edge bg-surface-panel/40 px-4 py-5 text-center text-xs text-fg-subtle md:col-span-2 xl:col-span-3`,children:s.operationSections[e].empty}):null]})]},e)})})}):(0,$.jsx)(`div`,{className:`mx-auto min-h-0 w-full max-w-app-main flex-1`,children:(0,$.jsx)(_t,{runs:u,language:r,localeTag:o,labels:{boardEmptyTitle:s.boardEmptyTitle,boardEmptyHint:s.boardEmptyHint,boardStart:s.boardStart,loading:s.loading},searchQuery:d,workflowFilterId:g,triggerFilter:v,selectedRunId:b,loading:W,onOpenRun:E,onOpenRunChat:k,onCancelRun:e=>void G(e),onRetryRun:e=>void oe(e),onStart:()=>M(!0)})}),nt;t[110]!==Ye||t[111]!==Xe||t[112]!==Ze||t[113]!==Qe||t[114]!==$e||t[115]!==et?(nt=(0,$.jsxs)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col gap-4 px-4 py-5 sm:px-6 2xl:px-8`,children:[Ye,Xe,Ze,Qe,$e,et]}),t[110]=Ye,t[111]=Xe,t[112]=Ze,t[113]=Qe,t[114]=$e,t[115]=et,t[116]=nt):nt=t[116];let rt;if(t[117]!==l||t[118]!==x?.run){let e;t[120]===x?.run?e=t[121]:(e=e=>e.id===x?.run.definitionId,t[120]=x?.run,t[121]=e),rt=l.find(e),t[117]=l,t[118]=x?.run,t[119]=rt}else rt=t[119];let it=!!b&&w,at;t[122]!==G||t[123]!==b?(at=()=>{b&&G(b)},t[122]=G,t[123]=b,t[124]=at):at=t[124];let ot;t[125]!==oe||t[126]!==b?(ot=()=>{b&&oe(b)},t[125]=oe,t[126]=b,t[127]=ot):ot=t[127];let st;t[128]!==se||t[129]!==b?(st=e=>{b&&se(b,e)},t[128]=se,t[129]=b,t[130]=st):st=t[130];let ct;t[131]!==D||t[132]!==r||t[133]!==o||t[134]!==O||t[135]!==p||t[136]!==S||t[137]!==x||t[138]!==rt||t[139]!==it||t[140]!==at||t[141]!==ot||t[142]!==st?(ct=(0,$.jsx)(on,{view:x,comparison:S,currentDefinition:rt,loading:it,language:r,localeTag:o,onCancel:at,onRetry:ot,onReplay:st,onOpenRunId:O,ownerAgentId:p,onClose:D}),t[131]=D,t[132]=r,t[133]=o,t[134]=O,t[135]=p,t[136]=S,t[137]=x,t[138]=rt,t[139]=it,t[140]=at,t[141]=ot,t[142]=st,t[143]=ct):ct=t[143];let lt;t[144]===M?lt=t[145]:(lt=()=>M(!1),t[144]=M,t[145]=lt);let ut;t[146]!==M||t[147]!==P?(ut=e=>{M(!1),P(e)},t[146]=M,t[147]=P,t[148]=ut):ut=t[148];let dt;t[149]!==L||t[150]!==M?(dt=e=>{M(!1),L(e)},t[149]=L,t[150]=M,t[151]=dt):dt=t[151];let pt;t[152]!==l||t[153]!==r||t[154]!==te||t[155]!==A||t[156]!==lt||t[157]!==ut||t[158]!==dt?(pt=(0,$.jsx)(Zt,{open:A,definitions:l,language:r,onClose:lt,onPick:ut,onDetail:dt,onEdit:te}),t[152]=l,t[153]=r,t[154]=te,t[155]=A,t[156]=lt,t[157]=ut,t[158]=dt,t[159]=pt):pt=t[159];let mt=N!=null,ht;t[160]===P?ht=t[161]:(ht=()=>P(null),t[160]=P,t[161]=ht);let gt;t[162]===ae?gt=t[163]:(gt=e=>void ae(e),t[162]=ae,t[163]=gt);let vt;t[164]!==r||t[165]!==N||t[166]!==U||t[167]!==mt||t[168]!==ht||t[169]!==gt?(vt=(0,$.jsx)(zn,{open:mt,definition:N,language:r,starting:U,onClose:ht,onStart:gt}),t[164]=r,t[165]=N,t[166]=U,t[167]=mt,t[168]=ht,t[169]=gt,t[170]=vt):vt=t[170];let yt=I!=null,bt;t[171]===L?bt=t[172]:(bt=()=>L(null),t[171]=L,t[172]=bt);let xt;t[173]!==I||t[174]!==L||t[175]!==P?(xt=()=>{I&&(L(null),P(I))},t[173]=I,t[174]=L,t[175]=P,t[176]=xt):xt=t[176];let Ct;t[177]!==I||t[178]!==r||t[179]!==yt||t[180]!==bt||t[181]!==xt?(Ct=(0,$.jsx)(Bt,{open:yt,definition:I,language:r,onClose:bt,onRun:xt}),t[177]=I,t[178]=r,t[179]=yt,t[180]=bt,t[181]=xt,t[182]=Ct):Ct=t[182];let wt;t[183]===B?wt=t[184]:(wt=B?{mode:B.mode,name:B.initialName,script:B.initialScript,sourceTitle:B.definition.title}:null,t[183]=B,t[184]=wt);let Tt;t[185]===ee?Tt=t[186]:(Tt=()=>ee(!1),t[185]=ee,t[186]=Tt);let Et;t[187]===ce?Et=t[188]:(Et=e=>ce(e),t[187]=ce,t[188]=Et);let Dt;t[189]!==r||t[190]!==R||t[191]!==p||t[192]!==le||t[193]!==ne||t[194]!==wt||t[195]!==Tt||t[196]!==Et?(Dt=(0,$.jsx)(St,{open:R,language:r,ownerAgentId:p,saving:ne,initialDraft:wt,onClose:Tt,onSave:Et,onSaveAndStart:le}),t[189]=r,t[190]=R,t[191]=p,t[192]=le,t[193]=ne,t[194]=wt,t[195]=Tt,t[196]=Et,t[197]=Dt):Dt=t[197];let Ot;return t[198]!==nt||t[199]!==ct||t[200]!==pt||t[201]!==vt||t[202]!==Ct||t[203]!==Dt?(Ot=(0,$.jsxs)(`main`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden bg-surface-base`,children:[nt,ct,pt,vt,Ct,Dt]}),t[198]=nt,t[199]=ct,t[200]=pt,t[201]=vt,t[202]=Ct,t[203]=Dt,t[204]=Ot):Ot=t[204],Ot}function $n(e){return(0,$.jsx)(`option`,{value:e.id,children:e.title},e.id)}function er(e){return e.clearPageHeader}function tr(e){return e.setPageHeader}function nr(){let e=o(e=>e.language),t=a(e).workflows,n=e===`zh`?`zh-CN`:`en-US`,r=s(e=>e.token),i=!!r,l=T(),[u,d]=se(),f=u.get(`q`)??``,p=u.get(`wf`)?.trim()??``,h=u.get(`trigger`)?.trim()||`all`,_=u.get(`run`)?.trim()??``,y=u.get(`agent`)?.trim()??``,[b,x]=(0,Z.useState)(null),[S,C]=(0,Z.useState)(!1),[D,O]=(0,Z.useState)(null),[k,A]=(0,Z.useState)(!1),[j,N]=(0,Z.useState)(null),[P,F]=(0,Z.useState)(null),[I,R]=(0,Z.useState)(null),[ee,z]=(0,Z.useState)(!1),[B,te]=(0,Z.useState)(!1),V=c(i?[`workflow-agents`,r]:null,De,{revalidateOnFocus:!1}),H=(0,Z.useMemo)(()=>{let e=V.data?.agents??[];return y&&e.some(e=>e.id===y)||y&&e.length===0?y:V.data?.defaultId??(y||void 0)},[V.data,y]),U=c(i?[`workflow-definitions`,r]:null,E,{revalidateOnFocus:!1}),W=c(i&&H?[`workflow-runs`,r,H]:null,()=>Ae(100,{ownerAgentId:H}),{revalidateOnFocus:!1,refreshInterval:e=>e?.length&&e.some(e=>e.status===`queued`||e.status===`running`)?3e3:0}),G=c(i&&H?[`workflow-stats`,r,H,p]:null,()=>ie(p,{ownerAgentId:H}),{revalidateOnFocus:!1});(0,Z.useEffect)(()=>{if(!I)return;let e=window.setTimeout(()=>R(null),4e3);return()=>window.clearTimeout(e)},[I]);let K=U.data??[],oe=V.data?.agents??[],le=W.data??[],ue=_||null,de=je(ue,{ownerAgentId:H}),fe=c(i&&H&&ue&&de.view?.run.metadata?.replay?[`workflow-run-comparison`,r,H,ue]:null,()=>ne(ue,{ownerAgentId:H}),{revalidateOnFocus:!1}),me=(0,Z.useMemo)(()=>pe(K,f,`all`,`all`),[K,f]),he=(0,Z.useCallback)(e=>{e&&N(null),A(e)},[]),ge=(0,Z.useCallback)(e=>{let t=new Set(K.map(e=>e.name)),n=`${e.name}_copy`;if(!t.has(n))return n;for(let e=2;e<100;e+=1){let r=`${n}_${e}`;if(!t.has(r))return r}return`${n}_${Date.now()}`},[K]),_e=(0,Z.useCallback)((e,n)=>{let r=e.runtime?.source??``;if(!r.trim()){F(t.editWorkflowSourceMissing);return}let i=n??(e.metadata.source===`user`?`edit`:`copy`),a=i===`edit`?e.name:ge(e);F(null),C(!1),N({mode:i,definition:e,initialName:a,initialScript:i===`copy`?rr(r,a):r}),A(!0)},[ge,t.editWorkflowSourceMissing]),q=(0,Z.useCallback)(e=>{d(t=>{let n=new URLSearchParams(t);return e(n,t),n},{replace:!0})},[d]);(0,Z.useEffect)(()=>{let e=V.data?.agents??[];!y||e.length===0||e.some(e=>e.id===y)||q(e=>{V.data?.defaultId?e.set(m,V.data.defaultId):e.delete(m),e.delete(`run`)})},[V.data,y,q]);let ve=(0,Z.useCallback)(e=>{q(t=>{let n=e.trim();n?t.set(`q`,n):t.delete(`q`)})},[q]),ye=(0,Z.useCallback)(e=>{q(t=>{let n=e.trim();n?t.set(m,n):t.delete(m),t.delete(`run`)})},[q]),be=(0,Z.useCallback)(e=>{q(t=>{let n=e.trim();n?t.set(`wf`,n):t.delete(`wf`)})},[q]),xe=(0,Z.useCallback)(e=>{q(t=>{let n=e.trim();n&&n!==`all`?t.set(M,n):t.delete(M)})},[q]),Se=(0,Z.useCallback)(e=>{q(t=>{H&&t.set(m,H),t.set(`run`,e.id)})},[H,q]),Ce=(0,Z.useCallback)(()=>{q(e=>{e.delete(`run`)})},[q]),we=(0,Z.useCallback)(e=>{q(t=>{H&&t.set(m,H),t.set(`run`,e)})},[H,q]),Te=(0,Z.useCallback)(e=>{let t=Je(e);t&&l(ze(t))},[l]);(0,Z.useEffect)(()=>{u.get(`tab`)&&q(e=>{e.delete(`tab`)})},[q,u]),(0,Z.useEffect)(()=>{let e=u.get(`def`),t=u.get(g)===`1`,n=u.get(v)===`1`;if(!e||!K.length)return;let r=K.find(t=>t.id===e||t.name===e);r&&(n?_e(r,`copy`):t?x(r):O(r),q(e=>{e.delete(`def`),e.delete(g),e.delete(v)}))},[K,_e,q,u]),(0,Z.useEffect)(()=>{let e=()=>{W.mutate(),G.mutate()};return window.addEventListener(`workflow-event-appended`,e),window.addEventListener(`workflow-run-updated`,e),window.addEventListener(`workflow-run-error`,e),()=>{window.removeEventListener(`workflow-event-appended`,e),window.removeEventListener(`workflow-run-updated`,e),window.removeEventListener(`workflow-run-error`,e)}},[W,G]);let Y=(0,Z.useCallback)(()=>{V.mutate(),U.mutate(),W.mutate(),G.mutate()},[V,U,W,G]),Ee=(0,Z.useCallback)(async e=>{if(b){z(!0),F(null);try{let n=await L({definitionId:b.id,goal:e.goal,input:e.input,agentId:H,concurrency:e.concurrency,maxSubagents:e.maxSubagents});x(null),await W.mutate(),await G.mutate(),R(t.startSuccess),q(e=>{H&&e.set(m,H),e.set(`run`,n.runId)})}catch(e){F(e instanceof Error?e.message:t.startFailed)}finally{z(!1)}}},[t.startFailed,t.startSuccess,H,q,W,b,G]),X=(0,Z.useCallback)(async e=>{try{await We(e,{ownerAgentId:H}),await W.mutate(),await G.mutate()}catch(e){let n=e instanceof Error?e.message:t.cancelFailed;if(/not active|already finished/i.test(n)){await W.mutate(),await G.mutate();return}F(n)}},[t.cancelFailed,H,W,G]),Oe=(0,Z.useCallback)(async e=>{try{let t=await ce(e,{ownerAgentId:H});await W.mutate(),await G.mutate(),q(e=>{H&&e.set(m,H),e.set(`run`,t.runId)})}catch(e){F(e instanceof Error?e.message:t.retryFailed)}},[t.retryFailed,H,q,W,G]),ke=(0,Z.useCallback)(async(e,n)=>{try{let t=await w(e,n,{ownerAgentId:H});await W.mutate(),await G.mutate(),q(e=>{H&&e.set(m,H),e.set(`run`,t.runId)})}catch(e){F(e instanceof Error?e.message:t.retryFailed)}},[t.retryFailed,H,q,W,G]),Me=(0,Z.useCallback)(async e=>{te(!0),F(null);try{let n=await ae(e.name,e.script);return A(!1),N(null),await U.mutate(),R(t.saveWorkflowSuccess),n}catch(e){F(e instanceof Error?e.message:t.saveWorkflowFailed)}finally{te(!1)}},[U,t.saveWorkflowFailed,t.saveWorkflowSuccess]),Ne=(0,Z.useCallback)(async e=>{te(!0),F(null);try{let n=await ae(e.name,e.script);await U.mutate();let r=await L({definitionId:n.id,goal:e.goal,input:{goal:e.goal},agentId:H});A(!1),N(null),await W.mutate(),await G.mutate(),R(t.startSuccess),q(e=>{H&&e.set(m,H),e.set(`run`,r.runId)})}catch(e){F(e instanceof Error?e.message:t.startFailed)}finally{te(!1)}},[U,t.startFailed,t.startSuccess,H,q,W,G]),Pe=(0,Z.useCallback)(async e=>{if(e.metadata.source===`user`&&window.confirm(J(t.deleteConfirm,{name:e.name}))){F(null);try{await re(e.id),await U.mutate(),R(t.deleteWorkflowSuccess)}catch(e){F(e instanceof Error?e.message:t.deleteWorkflowFailed)}}},[U,t]),Fe=V.isLoading||U.isLoading||W.isLoading,Ie=V.error?.message??U.error?.message??W.error?.message??null;return{language:e,localeTag:n,labels:t,hasToken:i,searchQuery:f,setSearchQuery:ve,ownerAgentId:H,agentOptions:oe,setOwnerAgentId:ye,workflowFilterId:p,setWorkflowFilterId:be,triggerFilter:h,setTriggerFilter:xe,definitions:K,filteredDefinitions:me,runs:le,selectedRunId:ue,selectedRunView:de.view,selectedRunComparison:fe.data,selectedRunLoading:de.loading,selectedRunError:de.error?.message??fe.error?.message??null,openRunDetails:Se,closeRunDetails:Ce,openRunDetailsById:we,openRunInChat:Te,pickStartOpen:S,setPickStartOpen:C,startDefinition:b,setStartDefinition:x,detailDefinition:D,setDetailDefinition:O,manageOpen:k,setManageOpen:he,workflowEditorDraft:j,openWorkflowEditor:_e,actionError:P,actionFeedback:I,starting:ee,savingWorkflow:B,loading:Fe,error:Ie,stats:G.data,refreshAll:Y,submitStart:Ee,cancelRun:X,retryRun:Oe,replayRun:ke,saveCustomWorkflow:Me,saveDraftAndStart:Ne,removeCustomWorkflow:Pe}}function rr(e,t){return e.replace(/(name\s*:\s*['"`])([^'"`]+)(['"`])/,(e,n,r,i)=>`${n}${t}${i}`)}function ir(){let e=(0,Q.c)(2),t=nr(),n;return e[0]===t?n=e[1]:(n=(0,$.jsx)(Qn,{vm:t}),e[0]=t,e[1]=n),n}export{ir as WorkflowsPage};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { type FailoverReason } from './reason.js';
|
|
2
|
-
export type { FailoverReason };
|
|
3
|
-
export declare class FailoverError extends Error {
|
|
4
|
-
readonly reason: FailoverReason;
|
|
5
|
-
readonly provider?: string;
|
|
6
|
-
readonly model?: string;
|
|
7
|
-
readonly status?: number;
|
|
8
|
-
readonly code?: string;
|
|
9
|
-
constructor(message: string, reason: FailoverReason, provider?: string, model?: string, status?: number, code?: string, cause?: unknown);
|
|
10
|
-
}
|
|
11
|
-
export declare function isFailoverError(err: unknown): err is FailoverError;
|
|
12
|
-
export declare function describeFailoverError(err: unknown): {
|
|
13
|
-
message: string;
|
|
14
|
-
reason: FailoverReason;
|
|
15
|
-
status: number;
|
|
16
|
-
code: string;
|
|
17
|
-
} | {
|
|
18
|
-
message: string;
|
|
19
|
-
reason: FailoverReason;
|
|
20
|
-
status?: undefined;
|
|
21
|
-
code?: undefined;
|
|
22
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { classifyFailoverReason } from "./reason.js";
|
|
2
|
-
//#region src/agent/fallback/error.ts
|
|
3
|
-
var FailoverError = class extends Error {
|
|
4
|
-
constructor(message, reason, provider, model, status, code, cause) {
|
|
5
|
-
super(message, { cause });
|
|
6
|
-
this.reason = reason;
|
|
7
|
-
this.provider = provider;
|
|
8
|
-
this.model = model;
|
|
9
|
-
this.status = status;
|
|
10
|
-
this.code = code;
|
|
11
|
-
this.name = "FailoverError";
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
function isFailoverError(err) {
|
|
15
|
-
return err instanceof FailoverError;
|
|
16
|
-
}
|
|
17
|
-
function describeFailoverError(err) {
|
|
18
|
-
if (isFailoverError(err)) return {
|
|
19
|
-
message: err.message,
|
|
20
|
-
reason: err.reason,
|
|
21
|
-
status: err.status,
|
|
22
|
-
code: err.code
|
|
23
|
-
};
|
|
24
|
-
return {
|
|
25
|
-
message: String(err),
|
|
26
|
-
reason: classifyFailoverReason(err)
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
//#endregion
|
|
30
|
-
export { FailoverError, describeFailoverError, isFailoverError };
|
|
31
|
-
|
|
32
|
-
//# sourceMappingURL=error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","names":[],"sources":["../../../../src/agent/fallback/error.ts"],"sourcesContent":["import { classifyFailoverReason, type FailoverReason } from './reason.js';\n\nexport type { FailoverReason };\n\nexport class FailoverError extends Error {\n constructor(\n message: string,\n readonly reason: FailoverReason,\n readonly provider?: string,\n readonly model?: string,\n readonly status?: number,\n readonly code?: string,\n cause?: unknown\n ) {\n super(message, { cause });\n this.name = 'FailoverError';\n }\n}\n\nexport function isFailoverError(err: unknown): err is FailoverError {\n return err instanceof FailoverError;\n}\n\nexport function describeFailoverError(err: unknown) {\n if (isFailoverError(err)) {\n return { message: err.message, reason: err.reason, status: err.status, code: err.code };\n }\n return { message: String(err), reason: classifyFailoverReason(err) };\n}\n"],"mappings":";;AAIA,IAAa,gBAAb,cAAmC,MAAM;CACvC,YACE,SACA,QACA,UACA,OACA,QACA,MACA,OACA;AACA,QAAM,SAAS,EAAE,OAAO,CAAC;AAPhB,OAAA,SAAA;AACA,OAAA,WAAA;AACA,OAAA,QAAA;AACA,OAAA,SAAA;AACA,OAAA,OAAA;AAIT,OAAK,OAAO;;;AAIhB,SAAgB,gBAAgB,KAAoC;AAClE,QAAO,eAAe;;AAGxB,SAAgB,sBAAsB,KAAc;AAClD,KAAI,gBAAgB,IAAI,CACtB,QAAO;EAAE,SAAS,IAAI;EAAS,QAAQ,IAAI;EAAQ,QAAQ,IAAI;EAAQ,MAAM,IAAI;EAAM;AAEzF,QAAO;EAAE,SAAS,OAAO,IAAI;EAAE,QAAQ,uBAAuB,IAAI;EAAE"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export type { FailoverReason } from './reason.js';
|
|
2
|
-
export { FailoverError, isFailoverError, describeFailoverError } from './error.js';
|
|
3
|
-
export type { ModelCandidate, FallbackAttempt } from './candidates.js';
|
|
4
|
-
export { resolveFallbackCandidates } from './candidates.js';
|
|
5
|
-
export { isProviderConfiguredSync as isProviderConfigured } from '../../providers/index.js';
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { init_providers, isProviderConfiguredSync } from "../../providers/index.js";
|
|
2
|
-
import { FailoverError, describeFailoverError, isFailoverError } from "./error.js";
|
|
3
|
-
import { resolveFallbackCandidates } from "./candidates.js";
|
|
4
|
-
//#region src/agent/fallback/index.ts
|
|
5
|
-
init_providers();
|
|
6
|
-
//#endregion
|
|
7
|
-
export { FailoverError, describeFailoverError, isFailoverError, isProviderConfiguredSync as isProviderConfigured, resolveFallbackCandidates };
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/agent/fallback/index.ts"],"sourcesContent":["export type { FailoverReason } from './reason.js';\n\nexport { FailoverError, isFailoverError, describeFailoverError } from './error.js';\n\nexport type { ModelCandidate, FallbackAttempt } from './candidates.js';\nexport { resolveFallbackCandidates } from './candidates.js';\nexport { isProviderConfiguredSync as isProviderConfigured } from '../../providers/index.js';\n"],"mappings":";;;;gBAM4F"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Ordered model candidates: one user turn with rollback on failure.
|
|
3
|
-
* Used by channel orchestrator, gateway webchat stream, and direct CLI-style turns.
|
|
4
|
-
*/
|
|
5
|
-
import type { Agent, AgentMessage } from '@earendil-works/pi-agent-core';
|
|
6
|
-
import type { Config } from '../../config/schema.js';
|
|
7
|
-
import type { ModelManager } from '../models/index.js';
|
|
8
|
-
import { resolveAgentTurnTimeoutMs } from './run-agent-turn-with-timeout.js';
|
|
9
|
-
export { resolveAgentTurnTimeoutMs };
|
|
10
|
-
type FallbackLog = {
|
|
11
|
-
info: (obj: Record<string, unknown>, msg: string) => void;
|
|
12
|
-
warn: (obj: Record<string, unknown>, msg: string) => void;
|
|
13
|
-
debug?: (obj: Record<string, unknown>, msg: string) => void;
|
|
14
|
-
};
|
|
15
|
-
export declare function runAgentTurnWithModelFallbacks(params: {
|
|
16
|
-
agent: Agent;
|
|
17
|
-
sessionKey: string;
|
|
18
|
-
modelManager: ModelManager;
|
|
19
|
-
userMessage: AgentMessage;
|
|
20
|
-
log: FallbackLog;
|
|
21
|
-
/** Before `prompt` adds the user message (e.g. background-review nudge counters). */
|
|
22
|
-
beforeUserPrompt?: () => void | Promise<void>;
|
|
23
|
-
/** After `prompt` adds the user message; before `waitForIdle`. */
|
|
24
|
-
afterUserPrompt?: () => Promise<void>;
|
|
25
|
-
/** Overrides {@link resolveAgentTurnTimeoutMs} when set. */
|
|
26
|
-
timeoutMs?: number;
|
|
27
|
-
/** Supplies the default turn limit. */
|
|
28
|
-
getConfig?: () => Config | undefined;
|
|
29
|
-
}): Promise<void>;
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { init_providers, resolveModel } from "../../providers/index.js";
|
|
2
|
-
import { resolveAgentTurnTimeoutMs, runAgentTurnWithTimeout } from "./run-agent-turn-with-timeout.js";
|
|
3
|
-
import { isAssistantTurnAborted, isAssistantTurnFailed, maybeRetryTurnAfterTransientLlmFailure } from "./llm-turn-retry.js";
|
|
4
|
-
//#region src/agent/orchestration/run-agent-turn-with-fallbacks.ts
|
|
5
|
-
init_providers();
|
|
6
|
-
async function runAgentTurnWithModelFallbacks(params) {
|
|
7
|
-
const { agent, sessionKey, modelManager, userMessage, log } = params;
|
|
8
|
-
const timeoutMs = params.timeoutMs ?? resolveAgentTurnTimeoutMs(params.getConfig?.());
|
|
9
|
-
const beforeUserPrompt = params.beforeUserPrompt ?? (async () => {});
|
|
10
|
-
const afterUserPrompt = params.afterUserPrompt ?? (async () => {});
|
|
11
|
-
const candidates = modelManager.getFallbackCandidatesForSession(sessionKey);
|
|
12
|
-
if (candidates.length === 0) throw new Error("No model candidates available. Configure agent manifest models and provider API keys.");
|
|
13
|
-
let lastError;
|
|
14
|
-
for (let i = 0; i < candidates.length; i++) {
|
|
15
|
-
const candidate = candidates[i];
|
|
16
|
-
const modelRef = `${candidate.provider}/${candidate.model}`;
|
|
17
|
-
let resolved;
|
|
18
|
-
try {
|
|
19
|
-
resolved = resolveModel(modelRef);
|
|
20
|
-
} catch (err) {
|
|
21
|
-
lastError = err;
|
|
22
|
-
log.warn({
|
|
23
|
-
err,
|
|
24
|
-
modelRef,
|
|
25
|
-
attempt: i + 1
|
|
26
|
-
}, "Skipping model candidate (resolve failed)");
|
|
27
|
-
continue;
|
|
28
|
-
}
|
|
29
|
-
const beforeLen = agent.state.messages.length;
|
|
30
|
-
try {
|
|
31
|
-
modelManager.applyResolvedModel(agent, resolved, modelRef);
|
|
32
|
-
log.info({
|
|
33
|
-
attempt: i + 1,
|
|
34
|
-
total: candidates.length,
|
|
35
|
-
provider: candidate.provider,
|
|
36
|
-
model: candidate.model
|
|
37
|
-
}, "Running agent turn");
|
|
38
|
-
const runTurn = async () => {
|
|
39
|
-
await beforeUserPrompt();
|
|
40
|
-
await agent.prompt(userMessage);
|
|
41
|
-
await afterUserPrompt();
|
|
42
|
-
await agent.waitForIdle();
|
|
43
|
-
await maybeRetryTurnAfterTransientLlmFailure(agent, {
|
|
44
|
-
sessionKey,
|
|
45
|
-
log
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
await runAgentTurnWithTimeout(agent, runTurn, timeoutMs);
|
|
49
|
-
if (isAssistantTurnAborted(agent)) return;
|
|
50
|
-
if (!isAssistantTurnFailed(agent)) return;
|
|
51
|
-
lastError = /* @__PURE__ */ new Error(`Assistant turn failed: ${modelRef}`);
|
|
52
|
-
log.warn({
|
|
53
|
-
sessionKey,
|
|
54
|
-
attempt: i + 1,
|
|
55
|
-
total: candidates.length,
|
|
56
|
-
modelRef
|
|
57
|
-
}, "Model turn failed after retries, trying fallback");
|
|
58
|
-
} catch (err) {
|
|
59
|
-
lastError = err;
|
|
60
|
-
if (err instanceof DOMException && err.name === "AbortError") throw err;
|
|
61
|
-
log.warn({
|
|
62
|
-
err,
|
|
63
|
-
sessionKey,
|
|
64
|
-
attempt: i + 1,
|
|
65
|
-
modelRef
|
|
66
|
-
}, "Model call threw, trying fallback");
|
|
67
|
-
}
|
|
68
|
-
agent.state.messages = agent.state.messages.slice(0, beforeLen);
|
|
69
|
-
}
|
|
70
|
-
if (lastError instanceof Error) throw lastError;
|
|
71
|
-
throw new Error(lastError != null ? String(lastError) : "All model candidates failed");
|
|
72
|
-
}
|
|
73
|
-
//#endregion
|
|
74
|
-
export { resolveAgentTurnTimeoutMs, runAgentTurnWithModelFallbacks };
|
|
75
|
-
|
|
76
|
-
//# sourceMappingURL=run-agent-turn-with-fallbacks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-agent-turn-with-fallbacks.js","names":[],"sources":["../../../../src/agent/orchestration/run-agent-turn-with-fallbacks.ts"],"sourcesContent":["/**\n * Ordered model candidates: one user turn with rollback on failure.\n * Used by channel orchestrator, gateway webchat stream, and direct CLI-style turns.\n */\n\nimport type { Agent, AgentMessage } from '@earendil-works/pi-agent-core';\nimport type { Model, Api } from '@earendil-works/pi-ai';\n\nimport type { Config } from '../../config/schema.js';\nimport { resolveModel } from '../../providers/index.js';\nimport type { ModelManager } from '../models/index.js';\nimport {\n isAssistantTurnAborted,\n isAssistantTurnFailed,\n maybeRetryTurnAfterTransientLlmFailure,\n} from './llm-turn-retry.js';\nimport { resolveAgentTurnTimeoutMs, runAgentTurnWithTimeout } from './run-agent-turn-with-timeout.js';\n\nexport { resolveAgentTurnTimeoutMs };\n\ntype FallbackLog = {\n info: (obj: Record<string, unknown>, msg: string) => void;\n warn: (obj: Record<string, unknown>, msg: string) => void;\n debug?: (obj: Record<string, unknown>, msg: string) => void;\n};\n\nexport async function runAgentTurnWithModelFallbacks(params: {\n agent: Agent;\n sessionKey: string;\n modelManager: ModelManager;\n userMessage: AgentMessage;\n log: FallbackLog;\n /** Before `prompt` adds the user message (e.g. background-review nudge counters). */\n beforeUserPrompt?: () => void | Promise<void>;\n /** After `prompt` adds the user message; before `waitForIdle`. */\n afterUserPrompt?: () => Promise<void>;\n /** Overrides {@link resolveAgentTurnTimeoutMs} when set. */\n timeoutMs?: number;\n /** Supplies the default turn limit. */\n getConfig?: () => Config | undefined;\n}): Promise<void> {\n const { agent, sessionKey, modelManager, userMessage, log } = params;\n const timeoutMs = params.timeoutMs ?? resolveAgentTurnTimeoutMs(params.getConfig?.());\n const beforeUserPrompt = params.beforeUserPrompt ?? (async () => {});\n const afterUserPrompt = params.afterUserPrompt ?? (async () => {});\n\n const candidates = modelManager.getFallbackCandidatesForSession(sessionKey);\n if (candidates.length === 0) {\n throw new Error(\n 'No model candidates available. Configure agent manifest models and provider API keys.',\n );\n }\n\n let lastError: unknown;\n\n for (let i = 0; i < candidates.length; i++) {\n const candidate = candidates[i];\n const modelRef = `${candidate.provider}/${candidate.model}`;\n\n let resolved: Model<Api>;\n try {\n resolved = resolveModel(modelRef);\n } catch (err) {\n lastError = err;\n log.warn({ err, modelRef, attempt: i + 1 }, 'Skipping model candidate (resolve failed)');\n continue;\n }\n\n const beforeLen = agent.state.messages.length;\n\n try {\n modelManager.applyResolvedModel(agent, resolved, modelRef);\n\n log.info(\n { attempt: i + 1, total: candidates.length, provider: candidate.provider, model: candidate.model },\n 'Running agent turn',\n );\n\n const runTurn = async () => {\n await beforeUserPrompt();\n await agent.prompt(userMessage);\n await afterUserPrompt();\n await agent.waitForIdle();\n await maybeRetryTurnAfterTransientLlmFailure(agent, { sessionKey, log });\n };\n\n await runAgentTurnWithTimeout(agent, runTurn, timeoutMs);\n\n if (isAssistantTurnAborted(agent)) {\n return;\n }\n\n if (!isAssistantTurnFailed(agent)) {\n return;\n }\n\n lastError = new Error(`Assistant turn failed: ${modelRef}`);\n log.warn(\n { sessionKey, attempt: i + 1, total: candidates.length, modelRef },\n 'Model turn failed after retries, trying fallback',\n );\n } catch (err) {\n lastError = err;\n if (err instanceof DOMException && err.name === 'AbortError') {\n throw err;\n }\n log.warn({ err, sessionKey, attempt: i + 1, modelRef }, 'Model call threw, trying fallback');\n }\n\n agent.state.messages = agent.state.messages.slice(0, beforeLen);\n }\n\n if (lastError instanceof Error) {\n throw lastError;\n }\n throw new Error(lastError != null ? String(lastError) : 'All model candidates failed');\n}\n"],"mappings":";;;;gBASwD;AAiBxD,eAAsB,+BAA+B,QAcnC;CAChB,MAAM,EAAE,OAAO,YAAY,cAAc,aAAa,QAAQ;CAC9D,MAAM,YAAY,OAAO,aAAa,0BAA0B,OAAO,aAAa,CAAC;CACrF,MAAM,mBAAmB,OAAO,qBAAqB,YAAY;CACjE,MAAM,kBAAkB,OAAO,oBAAoB,YAAY;CAE/D,MAAM,aAAa,aAAa,gCAAgC,WAAW;AAC3E,KAAI,WAAW,WAAW,EACxB,OAAM,IAAI,MACR,wFACD;CAGH,IAAI;AAEJ,MAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;EAC1C,MAAM,YAAY,WAAW;EAC7B,MAAM,WAAW,GAAG,UAAU,SAAS,GAAG,UAAU;EAEpD,IAAI;AACJ,MAAI;AACF,cAAW,aAAa,SAAS;WAC1B,KAAK;AACZ,eAAY;AACZ,OAAI,KAAK;IAAE;IAAK;IAAU,SAAS,IAAI;IAAG,EAAE,4CAA4C;AACxF;;EAGF,MAAM,YAAY,MAAM,MAAM,SAAS;AAEvC,MAAI;AACF,gBAAa,mBAAmB,OAAO,UAAU,SAAS;AAE1D,OAAI,KACF;IAAE,SAAS,IAAI;IAAG,OAAO,WAAW;IAAQ,UAAU,UAAU;IAAU,OAAO,UAAU;IAAO,EAClG,qBACD;GAED,MAAM,UAAU,YAAY;AAC1B,UAAM,kBAAkB;AACxB,UAAM,MAAM,OAAO,YAAY;AAC/B,UAAM,iBAAiB;AACvB,UAAM,MAAM,aAAa;AACzB,UAAM,uCAAuC,OAAO;KAAE;KAAY;KAAK,CAAC;;AAG1E,SAAM,wBAAwB,OAAO,SAAS,UAAU;AAExD,OAAI,uBAAuB,MAAM,CAC/B;AAGF,OAAI,CAAC,sBAAsB,MAAM,CAC/B;AAGF,+BAAY,IAAI,MAAM,0BAA0B,WAAW;AAC3D,OAAI,KACF;IAAE;IAAY,SAAS,IAAI;IAAG,OAAO,WAAW;IAAQ;IAAU,EAClE,mDACD;WACM,KAAK;AACZ,eAAY;AACZ,OAAI,eAAe,gBAAgB,IAAI,SAAS,aAC9C,OAAM;AAER,OAAI,KAAK;IAAE;IAAK;IAAY,SAAS,IAAI;IAAG;IAAU,EAAE,oCAAoC;;AAG9F,QAAM,MAAM,WAAW,MAAM,MAAM,SAAS,MAAM,GAAG,UAAU;;AAGjE,KAAI,qBAAqB,MACvB,OAAM;AAER,OAAM,IAAI,MAAM,aAAa,OAAO,OAAO,UAAU,GAAG,8BAA8B"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { Config } from '../../config/schema.js';
|
|
2
|
-
import type { CronService } from '../../cron/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Reconcile managed Dreaming cron jobs against the current effective config.
|
|
5
|
-
*/
|
|
6
|
-
export declare function reconcileManagedDreamingCronJobs(cron: CronService, effectiveConfig: Config | undefined): Promise<void>;
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { DREAMING_CRON_NAME, DREAMING_LIGHT_CRON_NAME, DREAMING_LIGHT_SWEEP_TOKEN, DREAMING_REM_CRON_NAME, DREAMING_REM_SWEEP_TOKEN, DREAMING_SWEEP_TOKEN } from "../memory/dreaming/constants.js";
|
|
2
|
-
import { resolveDreamingConfig } from "../memory/dreaming/config.js";
|
|
3
|
-
//#region src/agent/service/reconcile-dreaming-cron.ts
|
|
4
|
-
const DREAMING_SWEEP_TOKENS = new Set([
|
|
5
|
-
DREAMING_LIGHT_SWEEP_TOKEN,
|
|
6
|
-
DREAMING_SWEEP_TOKEN,
|
|
7
|
-
DREAMING_REM_SWEEP_TOKEN
|
|
8
|
-
]);
|
|
9
|
-
function dreamingSweepTokenFromJob(job) {
|
|
10
|
-
if (job.payload?.kind !== "agentTurn") return;
|
|
11
|
-
const msg = job.payload.message;
|
|
12
|
-
return typeof msg === "string" && DREAMING_SWEEP_TOKENS.has(msg) ? msg : void 0;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Reconcile managed Dreaming cron jobs against the current effective config.
|
|
16
|
-
*/
|
|
17
|
-
async function reconcileManagedDreamingCronJobs(cron, effectiveConfig) {
|
|
18
|
-
const dreaming = resolveDreamingConfig(effectiveConfig);
|
|
19
|
-
/** Match by sweep token — job names omit `[managed-by=…]`, so name-only matching never saw these jobs and re-added them every reconcile. */
|
|
20
|
-
const managed = (await cron.listJobs()).filter((job) => dreamingSweepTokenFromJob(job) !== void 0);
|
|
21
|
-
const phaseSpecs = [
|
|
22
|
-
{
|
|
23
|
-
cronName: DREAMING_LIGHT_CRON_NAME,
|
|
24
|
-
token: DREAMING_LIGHT_SWEEP_TOKEN,
|
|
25
|
-
schedule: dreaming.phases.light.cron,
|
|
26
|
-
phaseEnabled: dreaming.phases.light.enabled
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
cronName: DREAMING_CRON_NAME,
|
|
30
|
-
token: DREAMING_SWEEP_TOKEN,
|
|
31
|
-
schedule: dreaming.phases.deep.cron,
|
|
32
|
-
phaseEnabled: dreaming.phases.deep.enabled
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
cronName: DREAMING_REM_CRON_NAME,
|
|
36
|
-
token: DREAMING_REM_SWEEP_TOKEN,
|
|
37
|
-
schedule: dreaming.phases.rem.cron,
|
|
38
|
-
phaseEnabled: dreaming.phases.rem.enabled
|
|
39
|
-
}
|
|
40
|
-
];
|
|
41
|
-
if (!dreaming.enabled) {
|
|
42
|
-
for (const job of managed) await cron.removeJob(job.id).catch(() => {});
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
for (const spec of phaseSpecs) {
|
|
46
|
-
const phaseJobs = managed.filter((job) => dreamingSweepTokenFromJob(job) === spec.token);
|
|
47
|
-
if (!spec.phaseEnabled) {
|
|
48
|
-
for (const job of phaseJobs) await cron.removeJob(job.id).catch(() => {});
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
const desiredPayload = {
|
|
52
|
-
kind: "agentTurn",
|
|
53
|
-
message: spec.token
|
|
54
|
-
};
|
|
55
|
-
const desiredSchedule = {
|
|
56
|
-
kind: "cron",
|
|
57
|
-
expr: spec.schedule,
|
|
58
|
-
...dreaming.timezone ? { tz: dreaming.timezone } : {}
|
|
59
|
-
};
|
|
60
|
-
if (phaseJobs.length === 0) {
|
|
61
|
-
await cron.addJob(desiredSchedule, {
|
|
62
|
-
name: spec.cronName,
|
|
63
|
-
sessionTarget: "isolated",
|
|
64
|
-
payload: desiredPayload,
|
|
65
|
-
enabled: true
|
|
66
|
-
});
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
|
-
const primary = phaseJobs[0];
|
|
70
|
-
for (const dup of phaseJobs.slice(1)) await cron.removeJob(dup.id).catch(() => {});
|
|
71
|
-
const payloadMessage = primary.payload?.kind === "agentTurn" ? primary.payload.message : primary.payload?.text;
|
|
72
|
-
if (JSON.stringify(primary.schedule) !== JSON.stringify(desiredSchedule) || primary.sessionTarget !== "isolated" || payloadMessage !== spec.token || primary.enabled !== true || primary.name !== spec.cronName) await cron.updateJob(primary.id, {
|
|
73
|
-
schedule: desiredSchedule,
|
|
74
|
-
sessionTarget: "isolated",
|
|
75
|
-
name: spec.cronName,
|
|
76
|
-
payload: desiredPayload,
|
|
77
|
-
enabled: true
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
//#endregion
|
|
82
|
-
export { reconcileManagedDreamingCronJobs };
|
|
83
|
-
|
|
84
|
-
//# sourceMappingURL=reconcile-dreaming-cron.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-dreaming-cron.js","names":[],"sources":["../../../../src/agent/service/reconcile-dreaming-cron.ts"],"sourcesContent":["import type { Config } from '../../config/schema.js';\nimport type { CronService } from '../../cron/index.js';\nimport type { JobData } from '../../cron/types.js';\nimport {\n DREAMING_SWEEP_TOKEN,\n DREAMING_LIGHT_CRON_NAME,\n DREAMING_LIGHT_SWEEP_TOKEN,\n DREAMING_CRON_NAME,\n DREAMING_REM_CRON_NAME,\n DREAMING_REM_SWEEP_TOKEN,\n} from '../memory/dreaming/constants.js';\nimport { resolveDreamingConfig } from '../memory/dreaming/config.js';\n\nconst DREAMING_SWEEP_TOKENS = new Set<string>([\n DREAMING_LIGHT_SWEEP_TOKEN,\n DREAMING_SWEEP_TOKEN,\n DREAMING_REM_SWEEP_TOKEN,\n]);\n\nfunction dreamingSweepTokenFromJob(job: JobData): string | undefined {\n if (job.payload?.kind !== 'agentTurn') {\n return undefined;\n }\n const msg = job.payload.message;\n return typeof msg === 'string' && DREAMING_SWEEP_TOKENS.has(msg) ? msg : undefined;\n}\n\n/**\n * Reconcile managed Dreaming cron jobs against the current effective config.\n */\nexport async function reconcileManagedDreamingCronJobs(\n cron: CronService,\n effectiveConfig: Config | undefined,\n): Promise<void> {\n const dreaming = resolveDreamingConfig(effectiveConfig);\n const jobs = await cron.listJobs();\n /** Match by sweep token — job names omit `[managed-by=…]`, so name-only matching never saw these jobs and re-added them every reconcile. */\n const managed = jobs.filter((job) => dreamingSweepTokenFromJob(job) !== undefined);\n\n const phaseSpecs: Array<{\n cronName: string;\n token: string;\n schedule: string;\n phaseEnabled: boolean;\n }> = [\n {\n cronName: DREAMING_LIGHT_CRON_NAME,\n token: DREAMING_LIGHT_SWEEP_TOKEN,\n schedule: dreaming.phases.light.cron,\n phaseEnabled: dreaming.phases.light.enabled,\n },\n {\n cronName: DREAMING_CRON_NAME,\n token: DREAMING_SWEEP_TOKEN,\n schedule: dreaming.phases.deep.cron,\n phaseEnabled: dreaming.phases.deep.enabled,\n },\n {\n cronName: DREAMING_REM_CRON_NAME,\n token: DREAMING_REM_SWEEP_TOKEN,\n schedule: dreaming.phases.rem.cron,\n phaseEnabled: dreaming.phases.rem.enabled,\n },\n ];\n\n if (!dreaming.enabled) {\n for (const job of managed) {\n await cron.removeJob(job.id).catch(() => {});\n }\n return;\n }\n\n for (const spec of phaseSpecs) {\n const phaseJobs = managed.filter((job) => dreamingSweepTokenFromJob(job) === spec.token);\n\n if (!spec.phaseEnabled) {\n for (const job of phaseJobs) {\n await cron.removeJob(job.id).catch(() => {});\n }\n continue;\n }\n\n const desiredPayload = { kind: 'agentTurn' as const, message: spec.token };\n const desiredSchedule = {\n kind: 'cron' as const,\n expr: spec.schedule,\n ...(dreaming.timezone ? { tz: dreaming.timezone } : {}),\n };\n\n if (phaseJobs.length === 0) {\n await cron.addJob(desiredSchedule, {\n name: spec.cronName,\n sessionTarget: 'isolated' as const,\n payload: desiredPayload,\n enabled: true,\n } as any);\n continue;\n }\n\n const primary = phaseJobs[0]!;\n for (const dup of phaseJobs.slice(1)) {\n await cron.removeJob(dup.id).catch(() => {});\n }\n\n const payloadMessage =\n primary.payload?.kind === 'agentTurn'\n ? primary.payload.message\n : (primary.payload as any)?.text;\n const needsUpdate =\n JSON.stringify(primary.schedule) !== JSON.stringify(desiredSchedule) ||\n primary.sessionTarget !== 'isolated' ||\n payloadMessage !== spec.token ||\n primary.enabled !== true ||\n primary.name !== spec.cronName;\n\n if (needsUpdate) {\n await cron.updateJob(primary.id, {\n schedule: desiredSchedule,\n sessionTarget: 'isolated',\n name: spec.cronName,\n payload: desiredPayload,\n enabled: true,\n } as any);\n }\n }\n}\n"],"mappings":";;;AAaA,MAAM,wBAAwB,IAAI,IAAY;CAC5C;CACA;CACA;CACD,CAAC;AAEF,SAAS,0BAA0B,KAAkC;AACnE,KAAI,IAAI,SAAS,SAAS,YACxB;CAEF,MAAM,MAAM,IAAI,QAAQ;AACxB,QAAO,OAAO,QAAQ,YAAY,sBAAsB,IAAI,IAAI,GAAG,MAAM,KAAA;;;;;AAM3E,eAAsB,iCACpB,MACA,iBACe;CACf,MAAM,WAAW,sBAAsB,gBAAgB;;CAGvD,MAAM,WAAU,MAFG,KAAK,UAAU,EAEb,QAAQ,QAAQ,0BAA0B,IAAI,KAAK,KAAA,EAAU;CAElF,MAAM,aAKD;EACH;GACE,UAAU;GACV,OAAO;GACP,UAAU,SAAS,OAAO,MAAM;GAChC,cAAc,SAAS,OAAO,MAAM;GACrC;EACD;GACE,UAAU;GACV,OAAO;GACP,UAAU,SAAS,OAAO,KAAK;GAC/B,cAAc,SAAS,OAAO,KAAK;GACpC;EACD;GACE,UAAU;GACV,OAAO;GACP,UAAU,SAAS,OAAO,IAAI;GAC9B,cAAc,SAAS,OAAO,IAAI;GACnC;EACF;AAED,KAAI,CAAC,SAAS,SAAS;AACrB,OAAK,MAAM,OAAO,QAChB,OAAM,KAAK,UAAU,IAAI,GAAG,CAAC,YAAY,GAAG;AAE9C;;AAGF,MAAK,MAAM,QAAQ,YAAY;EAC7B,MAAM,YAAY,QAAQ,QAAQ,QAAQ,0BAA0B,IAAI,KAAK,KAAK,MAAM;AAExF,MAAI,CAAC,KAAK,cAAc;AACtB,QAAK,MAAM,OAAO,UAChB,OAAM,KAAK,UAAU,IAAI,GAAG,CAAC,YAAY,GAAG;AAE9C;;EAGF,MAAM,iBAAiB;GAAE,MAAM;GAAsB,SAAS,KAAK;GAAO;EAC1E,MAAM,kBAAkB;GACtB,MAAM;GACN,MAAM,KAAK;GACX,GAAI,SAAS,WAAW,EAAE,IAAI,SAAS,UAAU,GAAG,EAAE;GACvD;AAED,MAAI,UAAU,WAAW,GAAG;AAC1B,SAAM,KAAK,OAAO,iBAAiB;IACjC,MAAM,KAAK;IACX,eAAe;IACf,SAAS;IACT,SAAS;IACV,CAAQ;AACT;;EAGF,MAAM,UAAU,UAAU;AAC1B,OAAK,MAAM,OAAO,UAAU,MAAM,EAAE,CAClC,OAAM,KAAK,UAAU,IAAI,GAAG,CAAC,YAAY,GAAG;EAG9C,MAAM,iBACJ,QAAQ,SAAS,SAAS,cACtB,QAAQ,QAAQ,UACf,QAAQ,SAAiB;AAQhC,MANE,KAAK,UAAU,QAAQ,SAAS,KAAK,KAAK,UAAU,gBAAgB,IACpE,QAAQ,kBAAkB,cAC1B,mBAAmB,KAAK,SACxB,QAAQ,YAAY,QACpB,QAAQ,SAAS,KAAK,SAGtB,OAAM,KAAK,UAAU,QAAQ,IAAI;GAC/B,UAAU;GACV,eAAe;GACf,MAAM,KAAK;GACX,SAAS;GACT,SAAS;GACV,CAAQ"}
|