@xopcai/xopc 0.0.119 → 0.0.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/dashscope/src/image-generation-provider.d.ts +6 -5
- package/dist/extensions/dashscope/src/image-generation-provider.js +40 -64
- package/dist/extensions/dashscope/src/image-generation-provider.js.map +1 -1
- package/dist/extensions/dashscope/src/index.d.ts +1 -1
- package/dist/extensions/dashscope/src/index.js +2 -2
- package/dist/extensions/dashscope/xopc.extension.json +3 -2
- package/dist/extensions/minimax/src/image-generation-provider.d.ts +7 -5
- package/dist/extensions/minimax/src/image-generation-provider.js +43 -37
- package/dist/extensions/minimax/src/image-generation-provider.js.map +1 -1
- package/dist/extensions/minimax/src/index.d.ts +1 -1
- package/dist/extensions/minimax/src/index.js +2 -2
- package/dist/extensions/minimax/xopc.extension.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/Combination-HAlzriaz.js +41 -0
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CU8J6zou.js → agent-avatar-dicebear-4AW4JgSU.js} +1 -1
- package/dist/gateway/static/root/assets/agents-2SVUUPlp.js +2 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-B9vfYoEr.js → app-management-settings-panel-CE6GkGU2.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-ClOzIO24.js → appearance-settings-BmaUjghw.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-DU0dz9Zo.js → apps-page-BWeQ1I49.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-BkVIgZzA.js → archive-plugin-CX4_KWut.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-CaCMWh1D.js → attachment-load-jf-PIIUU.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-suggestion-card-DhGDpKP3.js → automation-suggestion-card-BHk5rtJz.js} +1 -1
- package/dist/gateway/static/root/assets/automations-page-QHotl53D.js +1 -0
- package/dist/gateway/static/root/assets/{binary-plugins-B4TO_bsn.js → binary-plugins-DG9XQikd.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-DJRWwWNI.js → block-editor-Up_VIxLJ.js} +6 -6
- package/dist/gateway/static/root/assets/browser-settings-page-Cmwi6IIQ.js +8 -0
- package/dist/gateway/static/root/assets/{capability-presets-api-Befi89CL.js → capability-presets-api-CGM4OyMw.js} +1 -1
- package/dist/gateway/static/root/assets/{capability-presets-settings-panel-_G8eb2vJ.js → capability-presets-settings-panel-CzWt0LBb.js} +1 -1
- package/dist/gateway/static/root/assets/{channel-recipient-api-BNSuJb5f.js → channel-recipient-api-BEByL4_o.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-BOMCUe2J.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-C-Dexk_F.js +2 -0
- package/dist/gateway/static/root/assets/dist-Mys7eFJ5.js +1 -0
- package/dist/gateway/static/root/assets/dist-wO9a2_ID.js +1 -0
- package/dist/gateway/static/root/assets/dreaming-settings-WPEj8pir.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-DYh402XV.js → extension-debug-page-DZxa_j7-.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-Cr_TizrN.js → extension-page-CseziW53.js} +1 -1
- package/dist/gateway/static/root/assets/extension-settings-page-B_9J-xyo.js +1 -0
- package/dist/gateway/static/root/assets/{fetch-Y7AEX4H3.js → fetch-Cs4ck8zA.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-RbMmAOpX.js → gateway-config-api-Dl223a7r.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-DdzbtW9R.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-DiD_Tx4N.js → gateway-startup-retry-IvePwjFE.js} +1 -1
- package/dist/gateway/static/root/assets/goal-detail-page-Dxldogms.js +1 -0
- package/dist/gateway/static/root/assets/{goals-config-api-DqxVi0p5.js → goals-config-api-CUCP6yCl.js} +1 -1
- package/dist/gateway/static/root/assets/goals-page-DU5Nd6Xp.js +2 -0
- package/dist/gateway/static/root/assets/goals-settings-Dj87qPxv.js +1 -0
- package/dist/gateway/static/root/assets/heartbeat-settings-Cgm5JmwH.js +1 -0
- package/dist/gateway/static/root/assets/index-BU1pvxmS.js +191 -0
- package/dist/gateway/static/root/assets/index-l54WfSqe.css +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-Dvg53qnd.js → keyboard-shortcuts-settings-DJgYw0nB.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-DjbfSsfA.js → locale-store-Ba72bFmP.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-C10aS4XO.js +2 -0
- package/dist/gateway/static/root/assets/{markdown-split-CpHxbtWJ.js → markdown-split-gnQ_EiGo.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-SFPQRSxq.js → media-plugins-CQV-mgJn.js} +1 -1
- package/dist/gateway/static/root/assets/messages-C6Kc4Jhf.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-panel-B35CAfg6.js +2 -0
- package/dist/gateway/static/root/assets/note-detail-page-Brlwse8x.js +2 -0
- package/dist/gateway/static/root/assets/{note-image-lightbox-BUYURRgn.js → note-image-lightbox-BthwKjLA.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-BsIBSFyZ.js → notes-page-CoAwRc7L.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-BHz9iWYA.js → preview-open-alternatives-BPMXC-2u.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-B36RQ05h.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-CefkOlRg.js → save-bar-controls-BEHqwZjz.js} +1 -1
- package/dist/gateway/static/root/assets/schedule-field-CMY25m97.js +1 -0
- package/dist/gateway/static/root/assets/schema-form-CxjxsFfg.js +1 -0
- package/dist/gateway/static/root/assets/sessions-page-73THChnj.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-CR9VsY-R.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-BouO6JTi.js → settings-collapsible-section-s-kiLAxP.js} +1 -1
- package/dist/gateway/static/root/assets/settings-form-section-CIxIEYxU.js +1 -0
- package/dist/gateway/static/root/assets/settings-page-BJ1AhfKI.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-layout-BJ4Gsef5.js → settings-page-layout--6qT7ZJa.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-CrUjHPQo.js → setup-status-panel-C1TtS1vJ.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-BDy2btRN.js → share-preview-page-BZADSbS1.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-gqC8Rmhy.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-C9P-WYvS.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-CEpSvOhF.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-CRngrlnZ.js → system-settings-panel-Czjf0kLJ.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-CD2wtgZV.js → theme-store-Bt6vAkSB.js} +1 -1
- package/dist/gateway/static/root/assets/{typed-models-lib-BltBc0b-.js → typed-models-lib-Cmt8SYdI.js} +1 -1
- package/dist/gateway/static/root/assets/{use-channel-catalog-CjN-51e6.js → use-channel-catalog-DyM-ckEQ.js} +1 -1
- package/dist/gateway/static/root/assets/user-profile-settings-panel-BygLv8vm.js +1 -0
- package/dist/gateway/static/root/assets/{utils-B5M5-YvK.js → utils-CloW8coB.js} +1 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-BsoqJba6.js +1 -0
- package/dist/gateway/static/root/assets/{voice-player-store-B7ykUlHM.js → voice-player-store-DduWlJYV.js} +1 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-CcQeX6l5.js +3 -0
- package/dist/gateway/static/root/assets/workflows-page-CeA8A9Ef.js +18 -0
- package/dist/gateway/static/root/index.html +9 -10
- package/dist/package.js +1 -1
- package/dist/src/agent/context/workspace-templates/AGENTS.md +3 -2
- package/dist/src/agent/embedded/xopc-auth-storage.d.ts +1 -5
- package/dist/src/agent/embedded/xopc-auth-storage.js +2 -8
- package/dist/src/agent/embedded/xopc-auth-storage.js.map +1 -1
- package/dist/src/agent/embedded/xopc-tools-bridge.js +23 -0
- package/dist/src/agent/embedded/xopc-tools-bridge.js.map +1 -1
- package/dist/src/agent/goals/checklist-judge.js +1 -1
- package/dist/src/agent/goals/checklist-judge.js.map +1 -1
- package/dist/src/agent/goals/judge.js +1 -1
- package/dist/src/agent/goals/judge.js.map +1 -1
- package/dist/src/agent/image/tool-model-config.d.ts +2 -0
- package/dist/src/agent/image/tool-model-config.js +2 -2
- package/dist/src/agent/image/tool-model-config.js.map +1 -1
- package/dist/src/agent/image/understanding/pi-ai-provider.js +1 -1
- package/dist/src/agent/image/understanding/pi-ai-provider.js.map +1 -1
- package/dist/src/agent/memory/builtin-memory-store.d.ts +1 -1
- package/dist/src/agent/memory/builtin-memory-store.js +1 -1
- package/dist/src/agent/memory/builtin-memory-store.js.map +1 -1
- package/dist/src/agent/memory/builtin-provider.d.ts +2 -2
- package/dist/src/agent/memory/builtin-provider.js +2 -2
- package/dist/src/agent/memory/builtin-provider.js.map +1 -1
- package/dist/src/agent/memory/compaction.d.ts +1 -1
- package/dist/src/agent/memory/compaction.js +1 -1
- package/dist/src/agent/memory/compaction.js.map +1 -1
- package/dist/src/agent/memory/dreaming/light-sweep.d.ts +0 -7
- package/dist/src/agent/memory/dreaming/light-sweep.js +16 -277
- package/dist/src/agent/memory/dreaming/light-sweep.js.map +1 -1
- package/dist/src/agent/memory/dreaming/rem-patterns.d.ts +1 -1
- package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
- package/dist/src/agent/memory/dreaming/rem-patterns.js.map +1 -1
- package/dist/src/agent/memory/dreaming/short-term-store.d.ts +3 -3
- package/dist/src/agent/memory/dreaming/short-term-store.js +5 -5
- package/dist/src/agent/memory/dreaming/short-term-store.js.map +1 -1
- package/dist/src/agent/memory/dreaming/utils.d.ts +2 -2
- package/dist/src/agent/memory/dreaming/utils.js +2 -2
- package/dist/src/agent/memory/dreaming/utils.js.map +1 -1
- package/dist/src/agent/memory/index.d.ts +0 -2
- package/dist/src/agent/memory/index.js +1 -2
- package/dist/src/agent/middleware/self-verify.d.ts +3 -0
- package/dist/src/agent/middleware/self-verify.js +18 -0
- package/dist/src/agent/middleware/self-verify.js.map +1 -1
- package/dist/src/agent/orchestration/agent-event-handler.js +28 -3
- package/dist/src/agent/orchestration/agent-event-handler.js.map +1 -1
- package/dist/src/agent/prompt/sections/memory-skills.js +11 -10
- package/dist/src/agent/prompt/sections/memory-skills.js.map +1 -1
- package/dist/src/agent/prompt/sections/tooling.js +23 -7
- package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +1 -0
- package/dist/src/agent/prompt/service-prompt-builder.js.map +1 -1
- package/dist/src/agent/prompt/system-prompt.d.ts +1 -0
- package/dist/src/agent/prompt/system-prompt.js +13 -1
- package/dist/src/agent/prompt/system-prompt.js.map +1 -1
- package/dist/src/agent/reply/startup-context.js +6 -105
- package/dist/src/agent/reply/startup-context.js.map +1 -1
- package/dist/src/agent/sandbox/path-policy.js +30 -6
- package/dist/src/agent/sandbox/path-policy.js.map +1 -1
- package/dist/src/agent/service/btw-query.js +1 -1
- package/dist/src/agent/service/btw-query.js.map +1 -1
- package/dist/src/agent/service.d.ts +0 -3
- package/dist/src/agent/service.js +0 -41
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/starter-agents.js +16 -16
- package/dist/src/agent/starter-agents.js.map +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +12 -1
- package/dist/src/agent/tools/image-generate-tool.js.map +1 -1
- package/dist/src/agent/tools/memory-tool.js +2 -2
- package/dist/src/agent/tools/memory-tool.js.map +1 -1
- package/dist/src/agent/tools/session-search-tool.js +1 -1
- package/dist/src/agent/tools/session-search-tool.js.map +1 -1
- package/dist/src/agent/tools/web-extract.js +1 -1
- package/dist/src/agent/tools/web-extract.js.map +1 -1
- package/dist/src/agent-manifest/index.js +2 -2
- package/dist/src/agent-manifest/schema.d.ts +66 -0
- package/dist/src/agent-manifest/schema.js +28 -2
- package/dist/src/agent-manifest/schema.js.map +1 -1
- package/dist/src/automations/draft/automation-draft-service.js +1 -1
- package/dist/src/automations/draft/automation-draft-service.js.map +1 -1
- package/dist/src/cli/commands/agent.js +2 -2
- package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard/model.js +161 -11
- package/dist/src/cli/commands/onboard/model.js.map +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/profile.js +1 -1
- package/dist/src/cli/commands/tunnel.js +1 -1
- package/dist/src/cli/commands/update.js +1 -1
- package/dist/src/cli/extension-cli-register.js +1 -1
- package/dist/src/cli/templates.js +3 -2
- package/dist/src/cli/templates.js.map +1 -1
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/default-model.d.ts +11 -0
- package/dist/src/config/default-model.js +19 -0
- package/dist/src/config/default-model.js.map +1 -0
- package/dist/src/config/index.js +3 -3
- package/dist/src/config/schema.d.ts +73 -13
- package/dist/src/config/schema.js +59 -24
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/connectors/registries/smithery.js +10 -9
- package/dist/src/connectors/registries/smithery.js.map +1 -1
- package/dist/src/daemon/install-plan.js +2 -1
- package/dist/src/daemon/install-plan.js.map +1 -1
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/global-defaults-admin.js +6 -16
- package/dist/src/gateway/global-defaults-admin.js.map +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +24 -0
- package/dist/src/gateway/hono/routes/agents.js +1 -79
- package/dist/src/gateway/hono/routes/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +4 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js.map +1 -1
- package/dist/src/gateway/hono/routes/models.js +132 -14
- package/dist/src/gateway/hono/routes/models.js.map +1 -1
- package/dist/src/gateway/hono/routes/voice.js +1 -1
- package/dist/src/gateway/hono/routes/voice.js.map +1 -1
- package/dist/src/gateway/image-capabilities.d.ts +11 -1
- package/dist/src/gateway/image-capabilities.js +32 -43
- package/dist/src/gateway/image-capabilities.js.map +1 -1
- package/dist/src/gateway/run-loop.js +1 -1
- package/dist/src/gateway/workspace-editor-path.js +9 -1
- package/dist/src/gateway/workspace-editor-path.js.map +1 -1
- package/dist/src/generated/bundled-image-generation-providers.d.ts +4 -2
- package/dist/src/generated/bundled-image-generation-providers.js +6 -4
- package/dist/src/generated/bundled-image-generation-providers.js.map +1 -1
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/mcp/channel-bridge.js +1 -1
- package/dist/src/media/paths.js +3 -4
- package/dist/src/media/paths.js.map +1 -1
- package/dist/src/notes/service.js +1 -1
- package/dist/src/notes/service.js.map +1 -1
- package/dist/src/providers/domestic-presets.d.ts +615 -0
- package/dist/src/providers/domestic-presets.js +834 -0
- package/dist/src/providers/domestic-presets.js.map +1 -0
- package/dist/src/providers/env-keys.js +29 -5
- package/dist/src/providers/env-keys.js.map +1 -1
- package/dist/src/providers/extension-stream-bridge.js +1 -1
- package/dist/src/providers/extension-stream-bridge.js.map +1 -1
- package/dist/src/providers/index.d.ts +5 -5
- package/dist/src/providers/index.js +101 -21
- package/dist/src/providers/index.js.map +1 -1
- package/dist/src/providers/model-discovery.d.ts +17 -0
- package/dist/src/providers/model-discovery.js +61 -0
- package/dist/src/providers/model-discovery.js.map +1 -0
- package/dist/src/providers/model-registry.d.ts +1 -1
- package/dist/src/providers/model-registry.js +1 -1
- package/dist/src/providers/model-registry.js.map +1 -1
- package/dist/src/providers/presentation.js +185 -14
- package/dist/src/providers/presentation.js.map +1 -1
- package/dist/src/session/session-title.js +1 -1
- package/dist/src/session/session-title.js.map +1 -1
- package/dist/src/storage/sqlite/row-mappers.js +3 -1
- package/dist/src/storage/sqlite/row-mappers.js.map +1 -1
- package/dist/src/tui/backends/embedded-backend.js +1 -2
- package/dist/src/tui/backends/embedded-backend.js.map +1 -1
- package/dist/src/tui/xopc-tui-keybindings.d.ts +1 -1
- package/dist/src/voice/tts/summarize.js +1 -1
- package/dist/src/voice/tts/summarize.js.map +1 -1
- package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
- package/dist/src/workflows/draft/workflow-draft-service.js.map +1 -1
- package/package.json +6 -6
- package/dist/gateway/static/root/assets/Combination-BzaXOLd9.js +0 -41
- package/dist/gateway/static/root/assets/agents-B0hkpLhP.js +0 -2
- package/dist/gateway/static/root/assets/automations-page-CTedroVo.js +0 -1
- package/dist/gateway/static/root/assets/browser-settings-page-FCDwOOBK.js +0 -8
- package/dist/gateway/static/root/assets/channels-settings-C3d5JBJX.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-yaUNvt5u.js +0 -2
- package/dist/gateway/static/root/assets/dist-By6Rh2ee.js +0 -1
- package/dist/gateway/static/root/assets/dist-CkobR7mk.js +0 -1
- package/dist/gateway/static/root/assets/dist-DokQNVMQ.js +0 -1
- package/dist/gateway/static/root/assets/dreaming-settings-DNrdg1Ve.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-BU1KoKRj.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-C79wkXef.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-9paXuHdo.js +0 -1
- package/dist/gateway/static/root/assets/goals-page-CS0R-Af2.js +0 -2
- package/dist/gateway/static/root/assets/goals-settings-CSuzZ8Ae.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-DXPaYJm3.js +0 -1
- package/dist/gateway/static/root/assets/index-BoKafJIZ.js +0 -191
- package/dist/gateway/static/root/assets/index-CArhCcYn.css +0 -1
- package/dist/gateway/static/root/assets/logs-page-DLXPcksQ.js +0 -2
- package/dist/gateway/static/root/assets/messages-CrDHEbss.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-panel-BDF2iyRk.js +0 -2
- package/dist/gateway/static/root/assets/note-detail-page-CSb_hwig.js +0 -2
- package/dist/gateway/static/root/assets/remote-access-hub-CwzSovcS.js +0 -1
- package/dist/gateway/static/root/assets/schedule-field-CmTRoOcE.js +0 -1
- package/dist/gateway/static/root/assets/schema-form-FMKv1vGu.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-PHmX-NmA.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BRAeKJN4.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-D-4lBl6X.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-KKrbFjy8.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-B18OBmH5.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-C28-2uKQ.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-Bm2ebkwl.js +0 -2
- package/dist/gateway/static/root/assets/user-profile-settings-panel-DJ1dKwZy.js +0 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-CeEevm7z.js +0 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-C4PzUQjB.js +0 -3
- package/dist/gateway/static/root/assets/workflows-page-BL84_-Ky.js +0 -18
- package/dist/src/agent/memory/memory-flush.d.ts +0 -27
- package/dist/src/agent/memory/memory-flush.js +0 -124
- package/dist/src/agent/memory/memory-flush.js.map +0 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-BQ_8x0bT.js";import{t as a}from"./messages-C6Kc4Jhf.js";import{n as o}from"./locale-store-Ba72bFmP.js";import{c as s}from"./fetch-Cs4ck8zA.js";import{i as c}from"./vendor-swr-BIWyz7Rc.js";import{$ as l,$o as u,A as d,Aa as f,B as p,Ba as m,C as h,Cs as g,D as _,E as v,F as y,Fa as b,G as x,Gi as S,Gs as C,Hi as w,I as T,In as E,J as D,Ji as O,K as k,Ki as ee,L as A,M as j,Ms as M,N,O as P,Oa as F,Oo as te,Os as I,Q as L,R as ne,Ro as R,S as z,Sa as re,So as B,T as V,Ts as H,Ui as U,Vr as W,Vs as G,W as K,Wi as q,Xs as ie,Y as ae,Yi as oe,Z as se,Zs as ce,_ as le,_c as ue,b as J,ec as de,eo as fe,es as pe,et as me,g as he,h as ge,ho as Y,i as _e,ia as ve,io as ye,it as be,j as xe,kn as Se,ks as Ce,l as we,oa as Te,p as Ee,ps as X,q as De,qi as Oe,qo as ke,r as Ae,rt as je,tt as Me,uo as Ne,v as Pe,va as Fe,w as Ie,wo as Le,x as Re,xs as ze,y as Be,yc as Ve,z as He}from"./index-BU1pvxmS.js";import{t as Ue}from"./automation-suggestion-card-BHk5rtJz.js";import{n as We,t as Ge}from"./workflow-run-setup-panel-CcQeX6l5.js";var Z=e(t(),1),Q=n(),Ke=[`queued`,`running`,`succeeded`,`attention`],qe=10080*60*1e3,Je=new Set([`failed`,`timeout`,`cancelled`]);function Ye(e){return e.metadata?.sessionKey?.trim()||null}function Xe(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function Ze(e,t){if(!e||typeof e!=`object`)return null;let n=e;for(let e of t){let t=n[e];if(typeof t==`string`&&t.trim())return t.trim()}return null}function Qe(e,t=90){let n=e.metadata?.input?.goal?.trim()||(typeof e.metadata?.input?.payload==`string`?e.metadata.input.payload.trim():null)||Ze(e.metadata?.input?.payload,[`query`,`goal`,`prompt`,`input`,`message`])||Ze(e.metadata?.input?.variables,[`query`,`goal`,`prompt`,`input`,`message`]);return n?Xe(n,t):null}function $e(e,t=90){return Qe(e,t)??Xe(e.title?.trim()||e.definitionId,t)}function et(e,t=44){return Xe(e.title?.trim()||e.definitionId,t)}function tt(e,t){let n=t.trim().toLowerCase();return n?[Qe(e,500),e.title,e.definitionId,e.id].filter(Boolean).join(` `).toLowerCase().includes(n):!0}function nt(e,t){let n=t.workflowFilterId.trim();return e.filter(e=>n&&e.definitionId!==n||!h(e,t.triggerFilter??`all`)?!1:tt(e,t.searchQuery))}function rt(e){return e.completedAtMs??e.createdAtMs}function it(e,t){return t-rt(e)<=qe}function at(e,t){return e.status===`queued`?`queued`:e.status===`running`?`running`:e.status===`succeeded`?it(e,t)?`succeeded`:null:Je.has(e.status)?`attention`:null}function ot(e,t){let n=[...t];return e===`queued`?n.sort((e,t)=>e.createdAtMs-t.createdAtMs):e===`running`?n.sort((e,t)=>(t.startedAtMs??t.createdAtMs)-(e.startedAtMs??e.createdAtMs)):n.sort((e,t)=>rt(t)-rt(e))}function st(e,t){let n={queued:[],running:[],succeeded:[],attention:[]};for(let r of e){let e=at(r,t);e&&n[e].push(r)}let r=ot(`succeeded`,n.succeeded),i=r.length,a=r.slice(0,20),o=Math.max(0,i-20);return Ke.map(e=>e===`succeeded`?{id:e,runs:a,totalInWindow:i,hiddenByCap:o}:{id:e,runs:ot(e,n[e])})}var ct=new Map;function lt(e){let t=ct.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:`auto`}),ct.set(e,t)),t}function ut(e,t,n){let r=Math.round((t-e)/1e3),i=lt(n);if(r<60)return i.format(-r,`second`);let a=Math.round(r/60);if(a<60)return i.format(-a,`minute`);let o=Math.round(a/60);if(o<48)return i.format(-o,`hour`);let s=Math.round(o/24);return i.format(-s,`day`)}function dt(e){return e.status===`queued`||e.status===`running`}function ft(e){return e.status===`failed`||e.status===`timeout`||e.status===`cancelled`}var $=r(),pt=(0,Z.memo)(function(e){let t=(0,Q.c)(65),{run:n,language:r,localeTag:o,nowMs:s,selected:c,onOpen:l,onOpenChat:u,onCancel:d,onRetry:f}=e,p=a(r).workflows,[h,_]=(0,Z.useState)(!1),v;t[0]===n?v=t[1]:(v=Ye(n),t[0]=n,t[1]=v);let y=!v,b;t[2]===n?b=t[3]:(b=dt(n),t[2]=n,t[3]=b);let x=b,S=n.status===`running`||n.status===`queued`,C;t[4]!==n.metrics.agentCount||t[5]!==n.metrics.doneAgentCount?(C=n.metrics.agentCount>0?Math.round(n.metrics.doneAgentCount/n.metrics.agentCount*100):0,t[4]=n.metrics.agentCount,t[5]=n.metrics.doneAgentCount,t[6]=C):C=t[6];let w=C,T=n.metrics.errorAgentCount>0,E=n.startedAtMs??n.createdAtMs,D=le(x?s-E:n.metrics.durationMs),O=J(p.taskArtifacts,{count:n.metrics.artifactCount}),k;t[7]===n?k=t[8]:(k=$e(n),t[7]=n,t[8]=k);let ee=k,A;t[9]===n?A=t[10]:(A=et(n),t[9]=n,t[10]=A);let j=A,M;t[11]!==l||t[12]!==n?(M=()=>{l(n)},t[11]=l,t[12]=n,t[13]=M):M=t[13];let N=M,P;t[14]!==y||t[15]!==u||t[16]!==n?(P=()=>{y||u(n)},t[14]=y,t[15]=u,t[16]=n,t[17]=P):P=t[17];let te=P,I=c?`border-accent/70 ring-1 ring-accent/30`:`border-edge`,L;t[18]===I?L=t[19]:(L=i(`group relative overflow-hidden rounded-xl border bg-surface-panel p-3.5 transition-colors`,I,`hover:border-edge-strong hover:bg-surface-hover/50`),t[18]=I,t[19]=L);let ne;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(ne=i(`w-full text-left`,re.focusRingPanel),t[20]=ne):ne=t[20];let R;t[21]===ee?R=t[22]:(R=(0,$.jsx)(`div`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-fg`,children:ee}),t[21]=ee,t[22]=R);let z;t[23]===j?z=t[24]:(z=(0,$.jsx)(`div`,{className:`mt-1 truncate text-[11px] font-medium text-fg-muted`,children:j}),t[23]=j,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 V;t[28]===n.status?V=t[29]:(V=i(`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold shadow-sm`,Ie(n.status)),t[28]=n.status,t[29]=V);let H;t[30]!==o||t[31]!==s||t[32]!==E?(H=ut(E,s,o),t[30]=o,t[31]=s,t[32]=E,t[33]=H):H=t[33];let U;t[34]===H?U=t[35]:(U=(0,$.jsx)(`span`,{children:H}),t[34]=H,t[35]=U);let W=D===`—`?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,$.jsx)(`span`,{children:J(p.taskElapsed,{duration:D})})]}),G;t[36]!==U||t[37]!==W?(G=(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5 text-[11px] text-fg-subtle`,children:[U,W]}),t[36]=U,t[37]=W,t[38]=G):G=t[38];let K=n.metrics.artifactCount>0?(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 font-medium text-fg-muted`,children:O}):null,q=c?(0,$.jsx)(`span`,{className:`font-medium text-accent-fg`,children:p.taskOpenDetails}):null,ie;t[39]!==K||t[40]!==q?(ie=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-subtle`,children:[K,q]}),t[39]=K,t[40]=q,t[41]=ie):ie=t[41];let ae;t[42]===_?ae=t[43]:(ae=()=>_(ht),t[42]=_,t[43]=ae);let oe;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(oe=(0,$.jsx)(g,{className:`size-4`,"aria-hidden":!0}),t[44]=oe):oe=t[44];let se;t[45]!==p.taskActionsAria||t[46]!==h||t[47]!==ae?(se=(0,$.jsx)(F,{variant:`ghost`,className:`size-7 p-0 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,"aria-label":p.taskActionsAria,"aria-expanded":h,onClick:ae,children:oe}),t[45]=p.taskActionsAria,t[46]=h,t[47]=ae,t[48]=se):se=t[48];let ce;t[49]!==x||t[50]!==y||t[51]!==te||t[52]!==p.cancel||t[53]!==p.continueInChat||t[54]!==p.rerun||t[55]!==p.taskCloseMenu||t[56]!==h||t[57]!==d||t[58]!==f||t[59]!==n||t[60]!==_?(ce=h?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-10 cursor-default`,"aria-label":p.taskCloseMenu,onClick:()=>_(!1)}),(0,$.jsxs)(`div`,{className:`absolute right-0 z-20 mt-1 min-w-36 rounded-lg border border-edge bg-surface-panel py-1 shadow-surface`,children:[(0,$.jsx)(mt,{label:p.continueInChat,disabled:y,onClick:()=>{_(!1),te()}}),x?(0,$.jsx)(mt,{label:p.cancel,tone:`danger`,onClick:()=>{_(!1),d(n.id)}}):null,ft(n)?(0,$.jsx)(mt,{label:p.rerun,onClick:()=>{_(!1),f(n.id)}}):null]})]}):null,t[49]=x,t[50]=y,t[51]=te,t[52]=p.cancel,t[53]=p.continueInChat,t[54]=p.rerun,t[55]=p.taskCloseMenu,t[56]=h,t[57]=d,t[58]=f,t[59]=n,t[60]=_,t[61]=ce):ce=t[61];let ue;return t[62]!==se||t[63]!==ce?(ue=(0,$.jsxs)(`div`,{className:`absolute right-2 top-2`,children:[se,ce]}),t[62]=se,t[63]=ce,t[64]=ue):ue=t[64],(0,$.jsxs)(`div`,{className:L,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:N,"aria-label":`${p.taskOpenDetails}: ${ee}`,"aria-current":c?`true`:void 0,className:ne,children:[(0,$.jsxs)(`div`,{className:`pr-7`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-2`,children:[B,(0,$.jsx)(`span`,{className:V,children:p.status[n.status]??n.status})]}),G]}),S?(0,$.jsxs)(`div`,{className:`mt-2.5`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-fg-muted`,children:[(0,$.jsx)(`span`,{children:J(p.agentProgress,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}),(0,$.jsxs)(`span`,{children:[w,`%`]})]}),(0,$.jsx)(`div`,{className:`mt-1.5 h-1.5 overflow-hidden rounded-full bg-surface-hover`,children:(0,$.jsx)(`div`,{className:`h-full rounded-full bg-accent transition-all`,style:{width:`${w}%`}})})]}):null,ie,T?(0,$.jsxs)(`div`,{className:`mt-2 flex items-center gap-1 text-[11px] text-amber-700 dark:text-amber-300`,children:[(0,$.jsx)(m,{className:`size-3 shrink-0`,"aria-hidden":!0}),J(p.runRowErrorSummary,{count:n.metrics.errorAgentCount})]}):null]}),ue]})});function mt(e){let t=(0,Q.c)(8),{label:n,disabled:r,tone:a,onClick:o}=e,s=r?`cursor-not-allowed text-fg-subtle`:`text-fg hover:bg-surface-hover`,c=a===`danger`&&!r&&`text-red-600 dark:text-red-300`,l;t[0]!==s||t[1]!==c?(l=i(`block w-full px-3 py-1.5 text-left text-xs`,s,c),t[0]=s,t[1]=c,t[2]=l):l=t[2];let u;return t[3]!==r||t[4]!==n||t[5]!==o||t[6]!==l?(u=(0,$.jsx)(`button`,{type:`button`,disabled:r,onClick:o,className:l,children:n}),t[3]=r,t[4]=n,t[5]=o,t[6]=l,t[7]=u):u=t[7],u}function ht(e){return!e}function gt(e,t){return t.boardColumns[e]}var _t=(0,Z.memo)(function(e){let t=(0,Q.c)(14),{column:n,language:r,localeTag:o,nowMs:s,selectedRunId:c,onOpenRun:l,onOpenRunChat:u,onCancelRun:d,onRetryRun: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)(pt,{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)(F,{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)(F,{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":gt(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:gt(n.id,p)})]}),w]}),k]})}),vt=(0,Z.memo)(function(e){let t=(0,Q.c)(45),{runs:n,language:r,localeTag:i,labels:a,searchQuery:o,workflowFilterId:s,triggerFilter:c,selectedRunId:l,loading:u,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m,onStart:h}=e,g;t[0]===n?g=t[1]:(g=n.some(yt),t[0]=n,t[1]=g);let _=g,[v,y]=(0,Z.useState)(bt),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=st(nt(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(xt,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)(F,{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)(_t,{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 yt(e){return e.status===`queued`||e.status===`running`}function bt(){return Date.now()}function xt(e,t){return e+t.runs.length}var St=`export const meta = {
|
|
2
|
+
name: 'my_workflow',
|
|
3
|
+
description: 'Describe what this workflow does.',
|
|
4
|
+
whenToUse: 'When the user asks for ...',
|
|
5
|
+
examplePrompts: [
|
|
6
|
+
{ field: 'goal', text: 'Example goal for this workflow' },
|
|
7
|
+
],
|
|
8
|
+
tags: ['custom'],
|
|
9
|
+
estimatedAgents: { min: 2, max: 4 },
|
|
10
|
+
phases: [{ title: 'Step 1' }, { title: 'Synthesize' }],
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
phase('Step 1')
|
|
14
|
+
const first = await agent('Do the first step.', { label: 'step 1' })
|
|
15
|
+
|
|
16
|
+
phase('Synthesize')
|
|
17
|
+
return await agent('Summarize:\\n\\n' + first, { label: 'synthesis' })
|
|
18
|
+
`;function Ct(e){let t=(0,Q.c)(48),{open:n,language:r,ownerAgentId:i,saving:o,initialDraft:s,onClose:c,onSave:l,onSaveAndStart:u}=e,d;t[0]===r?d=t[1]:(d=a(r),t[0]=r,t[1]=d);let f=d.workflows,[p,m]=(0,Z.useState)(`ai`),[h,g]=(0,Z.useState)(``),[_,v]=(0,Z.useState)(``),y=s?.mode===`edit`,b=y?f.editWorkflowTitle:f.createWorkflowTitle,x=y?f.editWorkflowHint:s?.mode===`copy`?f.createWorkflowHintFromCopy:f.createWorkflowHint,C,w;t[2]!==s||t[3]!==n?(C=()=>{n&&(m(s?`manual`:`ai`),g(s?.name??``),v(s?.script??``))},w=[s,n],t[2]=s,t[3]=n,t[4]=C,t[5]=w):(C=t[4],w=t[5]),(0,Z.useEffect)(C,w);let T;t[6]===c?T=t[7]:(T=e=>!e&&c(),t[6]=c,t[7]=T);let E;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,$.jsx)(S,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[8]=E):E=t[8];let D;t[9]===b?D=t[10]:(D=(0,$.jsx)(O,{className:`text-base font-semibold text-fg`,children:b}),t[9]=b,t[10]=D);let k;t[11]===x?k=t[12]:(k=(0,$.jsx)(q,{className:`mt-1 text-sm text-fg-muted`,children:x}),t[11]=x,t[12]=k);let A=p===`ai`,j,N;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(N=()=>m(`ai`),j=(0,$.jsx)(fe,{className:`size-4`,"aria-hidden":!0}),t[13]=j,t[14]=N):(j=t[13],N=t[14]);let P;t[15]!==f.createWorkflowAiTab||t[16]!==A?(P=(0,$.jsx)(wt,{active:A,onClick:N,icon:j,children:f.createWorkflowAiTab}),t[15]=f.createWorkflowAiTab,t[16]=A,t[17]=P):P=t[17];let F=p===`manual`,te,I;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(te=()=>m(`manual`),I=(0,$.jsx)(M,{className:`size-4`,"aria-hidden":!0}),t[18]=te,t[19]=I):(te=t[18],I=t[19]);let L;t[20]!==f.createWorkflowManualTab||t[21]!==F?(L=(0,$.jsx)(wt,{active:F,onClick:te,icon:I,children:f.createWorkflowManualTab}),t[20]=f.createWorkflowManualTab,t[21]=F,t[22]=L):L=t[22];let ne;t[23]!==P||t[24]!==L?(ne=(0,$.jsxs)(`div`,{className:`mt-4 inline-flex rounded-xl border border-edge bg-surface-base p-1`,children:[P,L]}),t[23]=P,t[24]=L,t[25]=ne):ne=t[25];let R;t[26]!==ne||t[27]!==D||t[28]!==k?(R=(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[D,k,ne]}),t[26]=ne,t[27]=D,t[28]=k,t[29]=R):R=t[29];let z;t[30]!==s||t[31]!==r||t[32]!==p||t[33]!==c||t[34]!==l||t[35]!==u||t[36]!==i||t[37]!==o||t[38]!==h||t[39]!==_?(z=p===`ai`?(0,$.jsx)(Tt,{language:r,ownerAgentId:i,saving:o,initialDraft:s,name:h,setName:g,script:_,setScript:v,onClose:c,onSave:l,onSaveAndStart:u}):(0,$.jsx)(Et,{language:r,saving:o,initialDraft:s,name:h,setName:g,script:_,setScript:v,onClose:c,onSave:l}),t[30]=s,t[31]=r,t[32]=p,t[33]=c,t[34]=l,t[35]=u,t[36]=i,t[37]=o,t[38]=h,t[39]=_,t[40]=z):z=t[40];let re;t[41]!==R||t[42]!==z?(re=(0,$.jsxs)(ee,{children:[E,(0,$.jsxs)(U,{className:`fixed left-1/2 top-1/2 z-66 flex h-[min(92vh,52rem)] w-[min(100%-2rem,72rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[R,z]})]}),t[41]=R,t[42]=z,t[43]=re):re=t[43];let B;return t[44]!==n||t[45]!==re||t[46]!==T?(B=(0,$.jsx)(Oe,{open:n,onOpenChange:T,children:re}),t[44]=n,t[45]=re,t[46]=T,t[47]=B):B=t[47],B}function wt(e){let t=(0,Q.c)(5),{active:n,onClick:r,icon:i,children:a}=e,o=n?`inline-flex h-8 items-center gap-2 rounded-lg bg-surface-panel px-3 text-sm font-medium text-fg shadow-surface`:`inline-flex h-8 items-center gap-2 rounded-lg px-3 text-sm font-medium text-fg-muted hover:text-fg`,s;return t[0]!==a||t[1]!==i||t[2]!==r||t[3]!==o?(s=(0,$.jsxs)(`button`,{type:`button`,onClick:r,className:o,children:[i,a]}),t[0]=a,t[1]=i,t[2]=r,t[3]=o,t[4]=s):s=t[4],s}function Tt({language:e,ownerAgentId:t,saving:n,initialDraft:r,name:i,setName:o,script:s,setScript:c,onClose:l,onSave:u,onSaveAndStart:d}){let f=a(e).workflows,[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(null),[_,v]=(0,Z.useState)({allowNetwork:!1,fileSystem:`read`,maxPhases:4,maxSubagents:8,outputFormat:`report`}),[y,b]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(null),w=(0,Z.useMemo)(()=>h?.validation.errors.map(e=>e.message)??[],[h]),T=(0,Z.useMemo)(()=>h?.lint.filter(e=>e.severity===`error`)??[],[h]),E=p.trim().length>0&&!y,D=!!(h&&i.trim()&&s.trim()&&h.validation.valid&&T.length===0&&!n),O=s.trim().length>0,k=O?f.nlBuilderEditPromptLabel:f.nlBuilderPromptLabel,ee=O?f.nlBuilderEditPromptPlaceholder:f.nlBuilderPromptPlaceholder,A=O?`improve`:`create`,j=async n=>{if(p.trim()){b(!0),C(null);try{let r=await x({prompt:p,agentId:t,language:e===`zh`?`zh`:`en`,mode:n,existingScript:n===`improve`?s:void 0,constraints:_});g(r),o(r.name),c(r.script)}catch(e){C(e instanceof Error?e.message:f.nlBuilderGenerateFailed)}finally{b(!1)}}},M=async()=>{D&&await u({name:i.trim(),script:s})&&l()},N=async()=>{D&&await d({name:i.trim(),script:s,goal:p.trim()})};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-4 overflow-auto px-5 py-4 lg:grid-cols-[minmax(18rem,0.9fr)_minmax(24rem,1.4fr)]`,children:[(0,$.jsxs)(`section`,{className:`space-y-3`,children:[(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:k}),(0,$.jsx)(`textarea`,{value:p,onChange:e=>m(e.target.value),placeholder:ee,className:`mt-1.5 min-h-36 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm leading-6 text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}),(0,$.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,$.jsx)(Dt,{label:f.nlBuilderMaxPhases,value:_.maxPhases??4,min:1,max:8,onChange:e=>v(t=>({...t,maxPhases:e}))}),(0,$.jsx)(Dt,{label:f.nlBuilderMaxAgents,value:_.maxSubagents??8,min:1,max:20,onChange:e=>v(t=>({...t,maxSubagents:e}))})]}),(0,$.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,$.jsxs)(`label`,{className:`flex items-center gap-2 rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg-muted`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:!!_.allowNetwork,onChange:e=>v(t=>({...t,allowNetwork:e.target.checked}))}),f.nlBuilderAllowNetwork]}),(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:f.nlBuilderFilesystem}),(0,$.jsxs)(ve,{value:_.fileSystem??`read`,onChange:e=>v(t=>({...t,fileSystem:e.target.value})),className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,children:[(0,$.jsx)(Te,{value:`none`,children:`none`}),(0,$.jsx)(Te,{value:`read`,children:`read`}),(0,$.jsx)(Te,{value:`write`,children:`write`})]})]})]}),(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,$.jsxs)(F,{variant:`primary`,disabled:!E,onClick:()=>void j(A),children:[(0,$.jsx)(fe,{className:`size-4`,"aria-hidden":!0}),y?f.nlBuilderGenerating:O?f.nlBuilderRewriteExisting:f.nlBuilderGenerate]})}),S?(0,$.jsx)(Bt,{text:S}):null,h?(0,$.jsx)(jt,{draft:h,labels:f}):null]}),(0,$.jsxs)(`section`,{className:`min-w-0 space-y-3`,children:[(0,$.jsx)(kt,{initialDraft:r,labels:f}),(0,$.jsx)(Ot,{labels:f,name:i,setName:o}),(0,$.jsx)(At,{labels:f,script:s,setScript:c,minHeightClass:`min-h-96`}),h?(0,$.jsx)(Mt,{draft:h,labels:f,validationIssues:w}):null]})]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,$.jsx)(F,{variant:`secondary`,onClick:l,disabled:n||y,children:f.cancelDialog}),(0,$.jsx)(F,{variant:`secondary`,disabled:!D,onClick:()=>void M(),children:n?f.savingWorkflow:f.saveWorkflow}),(0,$.jsx)(F,{variant:`primary`,disabled:!D,onClick:()=>void N(),children:f.nlBuilderSaveAndStart})]})]})}function Et({language:e,saving:t,initialDraft:n,name:r,setName:i,script:o,setScript:s,onClose:c,onSave:l}){let u=a(e).workflows,[d,f]=(0,Z.useState)(!1),[p,m]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(null),[_,v]=(0,Z.useState)(null),y=r.trim(),b=!!(y&&o.trim());(0,Z.useEffect)(()=>{if(!b){m(!1),g(null),v(null);return}let e=!1,t=window.setTimeout(()=>{m(!0),g(null),be(y,o).then(t=>{e||v(t)}).catch(t=>{e||(v(null),g(t instanceof Error?t.message:u.validateWorkflowFailed))}).finally(()=>{e||m(!1)})},450);return()=>{e=!0,window.clearTimeout(t)}},[b,u.validateWorkflowFailed,o,y]);let x=(0,Z.useMemo)(()=>h?[h]:_?.errors.map(e=>e.message)??[],[h,_]),S=d||p||_!=null||h!=null,C=b&&!t&&!p&&_?.valid===!0;(0,Z.useEffect)(()=>{!n&&!o.trim()&&s(St),f(!1),m(!1),g(null),v(null)},[n,o,s]);let w=async()=>{if(f(!0),!(!b||t)){m(!0),g(null);try{let e=await be(y,o);if(v(e),!e.valid)return;await l({name:y,script:o})&&c()}catch(e){v(null),g(e instanceof Error?e.message:u.validateWorkflowFailed)}finally{m(!1)}}};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-3 overflow-auto px-5 py-4`,children:[(0,$.jsx)(kt,{initialDraft:n,labels:u}),(0,$.jsx)(Ot,{labels:u,name:r,setName:e=>{i(e),v(null),g(null)}}),(0,$.jsx)(At,{labels:u,script:o,setScript:e=>{s(e),v(null),g(null)},minHeightClass:`min-h-72`}),S?(0,$.jsx)(It,{labels:u,validating:p,validationIssues:x,validationResult:_}):null]}),(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,$.jsx)(F,{variant:`secondary`,onClick:c,disabled:t,children:u.cancelDialog}),(0,$.jsx)(F,{variant:`primary`,disabled:!C,onClick:()=>void w(),children:t?u.savingWorkflow:u.saveWorkflow})]})]})}function Dt(e){let t=(0,Q.c)(12),{label:n,value:r,min:i,max:a,onChange:o}=e,s;t[0]===n?s=t[1]:(s=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:n}),t[0]=n,t[1]=s);let c;t[2]===o?c=t[3]:(c=e=>o(Number(e.target.value)||void 0),t[2]=o,t[3]=c);let l;t[4]!==a||t[5]!==i||t[6]!==c||t[7]!==r?(l=(0,$.jsx)(`input`,{type:`number`,min:i,max:a,value:r,onChange:c,className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`}),t[4]=a,t[5]=i,t[6]=c,t[7]=r,t[8]=l):l=t[8];let u;return t[9]!==s||t[10]!==l?(u=(0,$.jsxs)(`label`,{className:`block`,children:[s,l]}),t[9]=s,t[10]=l,t[11]=u):u=t[11],u}function Ot(e){let t=(0,Q.c)(11),{labels:n,name:r,setName:i}=e,a;t[0]===n.workflowNameLabel?a=t[1]:(a=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:n.workflowNameLabel}),t[0]=n.workflowNameLabel,t[1]=a);let o;t[2]===i?o=t[3]:(o=e=>i(e.target.value),t[2]=i,t[3]=o);let s;t[4]!==n.workflowNamePlaceholder||t[5]!==r||t[6]!==o?(s=(0,$.jsx)(`input`,{value:r,onChange:o,placeholder:n.workflowNamePlaceholder,className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 font-mono text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}),t[4]=n.workflowNamePlaceholder,t[5]=r,t[6]=o,t[7]=s):s=t[7];let c;return t[8]!==a||t[9]!==s?(c=(0,$.jsxs)(`label`,{className:`block`,children:[a,s]}),t[8]=a,t[9]=s,t[10]=c):c=t[10],c}function kt(e){let t=(0,Q.c)(7),{initialDraft:n,labels:r}=e;if(!n)return null;let i;t[0]!==n.mode||t[1]!==n.sourceTitle||t[2]!==r.copyWorkflowNotice||t[3]!==r.editWorkflowNotice?(i=n.mode===`copy`?r.copyWorkflowNotice.replace(`{{title}}`,n.sourceTitle):r.editWorkflowNotice.replace(`{{title}}`,n.sourceTitle),t[0]=n.mode,t[1]=n.sourceTitle,t[2]=r.copyWorkflowNotice,t[3]=r.editWorkflowNotice,t[4]=i):i=t[4];let a=i,o;return t[5]===a?o=t[6]:(o=(0,$.jsx)(`div`,{className:`rounded-xl border border-accent/20 bg-accent-soft/60 px-3 py-2 text-sm leading-6 text-accent-fg`,children:a}),t[5]=a,t[6]=o),o}function At(e){let t=(0,Q.c)(11),{labels:n,script:r,setScript:i,minHeightClass:a}=e,o;t[0]===n.workflowScriptLabel?o=t[1]:(o=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:n.workflowScriptLabel}),t[0]=n.workflowScriptLabel,t[1]=o);let s;t[2]===i?s=t[3]:(s=e=>i(e.target.value),t[2]=i,t[3]=s);let c=`mt-1.5 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 font-mono text-xs leading-5 text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/20 ${a}`,l;t[4]!==r||t[5]!==s||t[6]!==c?(l=(0,$.jsx)(`textarea`,{value:r,onChange:s,spellCheck:!1,className:c}),t[4]=r,t[5]=s,t[6]=c,t[7]=l):l=t[7];let u;return t[8]!==o||t[9]!==l?(u=(0,$.jsxs)(`label`,{className:`block`,children:[o,l]}),t[8]=o,t[9]=l,t[10]=u):u=t[10],u}function jt(e){let t=(0,Q.c)(23),{draft:n,labels:r}=e,i=n.manifest.title??n.name,a;t[0]===i?a=t[1]:(a=(0,$.jsx)(`div`,{className:`text-sm font-semibold text-fg`,children:i}),t[0]=i,t[1]=a);let o;t[2]===n.explanation?o=t[3]:(o=(0,$.jsx)(`p`,{className:`text-xs leading-5 text-fg-muted`,children:n.explanation}),t[2]=n.explanation,t[3]=o);let s;t[4]!==n.repairAttempts||t[5]!==r.nlBuilderAutoRepaired?(s=n.repairAttempts>0?(0,$.jsx)(`div`,{className:`text-xs font-medium text-accent-fg`,children:r.nlBuilderAutoRepaired.replace(`{count}`,String(n.repairAttempts))}):null,t[4]=n.repairAttempts,t[5]=r.nlBuilderAutoRepaired,t[6]=s):s=t[6];let c;t[7]!==n.permissionsSummary||t[8]!==r.nlBuilderPermissions?(c=(0,$.jsx)(Rt,{title:r.nlBuilderPermissions,items:n.permissionsSummary}),t[7]=n.permissionsSummary,t[8]=r.nlBuilderPermissions,t[9]=c):c=t[9];let l;t[10]!==n.assumptions||t[11]!==r.nlBuilderAssumptions?(l=(0,$.jsx)(Rt,{title:r.nlBuilderAssumptions,items:n.assumptions}),t[10]=n.assumptions,t[11]=r.nlBuilderAssumptions,t[12]=l):l=t[12];let u;t[13]!==n.risks||t[14]!==r.nlBuilderRisks?(u=(0,$.jsx)(Rt,{title:r.nlBuilderRisks,items:n.risks}),t[13]=n.risks,t[14]=r.nlBuilderRisks,t[15]=u):u=t[15];let d;return t[16]!==a||t[17]!==o||t[18]!==s||t[19]!==c||t[20]!==l||t[21]!==u?(d=(0,$.jsxs)(`div`,{className:`space-y-2 rounded-xl border border-edge bg-surface-base/50 p-3`,children:[a,o,s,c,l,u]}),t[16]=a,t[17]=o,t[18]=s,t[19]=c,t[20]=l,t[21]=u,t[22]=d):d=t[22],d}function Mt(e){let t=(0,Q.c)(17),{draft:n,labels:r,validationIssues:i}=e,a=n.lint,o;t[0]!==n.validation.valid||t[1]!==a?(o=n.validation.valid&&a.every(Ft),t[0]=n.validation.valid,t[1]=a,t[2]=o):o=t[2];let s=o,c=s?`rounded-xl border border-emerald-500/30 bg-emerald-500/10 p-3 text-sm text-emerald-800 dark:text-emerald-200`:`rounded-xl border border-amber-500/30 bg-amber-500/10 p-3 text-sm text-amber-800 dark:text-amber-200`,l;t[3]===s?l=t[4]:(l=s?(0,$.jsx)(C,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(m,{className:`size-4`,"aria-hidden":!0}),t[3]=s,t[4]=l);let u=s?r.validationPassed:r.nlBuilderReviewIssues,d;t[5]!==l||t[6]!==u?(d=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 font-medium`,children:[l,u]}),t[5]=l,t[6]=u,t[7]=d):d=t[7];let f;t[8]!==n.validation.definition?.phases||t[9]!==r.validationPreview||t[10]!==a||t[11]!==i?(f=i.length>0||a.length>0?(0,$.jsxs)(`ul`,{className:`mt-2 list-disc space-y-1 pl-5 text-xs leading-5`,children:[i.map(Pt),a.map(Nt)]}):(0,$.jsx)(`p`,{className:`mt-1 text-xs opacity-80`,children:r.validationPreview.replace(`{{phaseCount}}`,String(n.validation.definition?.phases.length??0))}),t[8]=n.validation.definition?.phases,t[9]=r.validationPreview,t[10]=a,t[11]=i,t[12]=f):f=t[12];let p;return t[13]!==c||t[14]!==d||t[15]!==f?(p=(0,$.jsxs)(`div`,{className:c,children:[d,f]}),t[13]=c,t[14]=d,t[15]=f,t[16]=p):p=t[16],p}function Nt(e){return(0,$.jsx)(`li`,{children:e.message},`${e.code}:${e.message}`)}function Pt(e){return(0,$.jsx)(`li`,{children:e},e)}function Ft(e){return e.severity!==`error`}function It(e){let t=(0,Q.c)(10),{labels:n,validating:r,validationIssues:i,validationResult:a}=e,o=i.length>0?`rounded-xl border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-200`:`rounded-xl border border-emerald-500/30 bg-emerald-500/10 px-3 py-2 text-sm text-emerald-700 dark:text-emerald-200`,s=r?n.validatingWorkflow:i.length>0?n.validationFailed:n.validationPassed,c;t[0]===s?c=t[1]:(c=(0,$.jsx)(`div`,{className:`font-medium`,children:s}),t[0]=s,t[1]=c);let l;t[2]!==n.validationPreview||t[3]!==i||t[4]!==a?(l=i.length>0?(0,$.jsx)(`ul`,{className:`mt-1 list-disc space-y-1 pl-5`,children:i.map(Lt)}):a?.definition?(0,$.jsx)(`div`,{className:`mt-1 text-xs opacity-80`,children:n.validationPreview.replace(`{{phaseCount}}`,String(a.definition.phases.length))}):null,t[2]=n.validationPreview,t[3]=i,t[4]=a,t[5]=l):l=t[5];let u;return t[6]!==o||t[7]!==c||t[8]!==l?(u=(0,$.jsxs)(`div`,{className:o,role:`status`,children:[c,l]}),t[6]=o,t[7]=c,t[8]=l,t[9]=u):u=t[9],u}function Lt(e){return(0,$.jsx)(`li`,{children:e},e)}function Rt(e){let t=(0,Q.c)(10),{title:n,items:r}=e;if(!r.length)return null;let i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(de,{className:`size-3`,"aria-hidden":!0}),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,$.jsxs)(`div`,{className:`mb-1 flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wide text-fg-subtle`,children:[i,n]}),t[1]=n,t[2]=a);let o;t[3]===r?o=t[4]:(o=r.slice(0,5).map(zt),t[3]=r,t[4]=o);let s;t[5]===o?s=t[6]:(s=(0,$.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:o}),t[5]=o,t[6]=s);let c;return t[7]!==a||t[8]!==s?(c=(0,$.jsxs)(`div`,{children:[a,s]}),t[7]=a,t[8]=s,t[9]=c):c=t[9],c}function zt(e){return(0,$.jsx)(`span`,{className:`rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1 text-[11px] text-fg-muted`,children:e},e)}function Bt(e){let t=(0,Q.c)(2),{text:n}=e,r;return t[0]===n?r=t[1]:(r=(0,$.jsx)(`div`,{className:`rounded-xl border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-200`,children:n}),t[0]=n,t[1]=r),r}function Vt(e){let t=(0,Q.c)(57),{open:n,definition:r,language:i,onClose:o,onRun:s}=e,c;t[0]===i?c=t[1]:(c=a(i),t[0]=i,t[1]=c);let l=c.workflows;if(!r)return null;let u;t[2]!==r||t[3]!==i?(u=y(r,i),t[2]=r,t[3]=i,t[4]=u):u=t[4];let d=u,f=r.runtime?.source??``,p;t[5]===o?p=t[6]:(p=e=>!e&&o(),t[5]=o,t[6]=p);let m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(S,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[7]=m):m=t[7];let h;t[8]===r.title?h=t[9]:(h=(0,$.jsx)(O,{className:`text-base font-semibold text-fg`,children:r.title}),t[8]=r.title,t[9]=h);let g;t[10]===d.description?g=t[11]:(g=(0,$.jsx)(q,{className:`mt-1 text-sm text-fg-muted`,children:d.description}),t[10]=d.description,t[11]=g);let _;t[12]!==h||t[13]!==g?(_=(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[h,g]}),t[12]=h,t[13]=g,t[14]=_):_=t[14];let v;t[15]!==l.whenToUseHeading||t[16]!==d.whenToUse?(v=d.whenToUse?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.whenToUseHeading}),(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:d.whenToUse})]}):null,t[15]=l.whenToUseHeading,t[16]=d.whenToUse,t[17]=v):v=t[17];let b;t[18]!==r||t[19]!==l?(b=(0,$.jsx)(Ut,{definition:r,labels:l}),t[18]=r,t[19]=l,t[20]=b):b=t[20];let x;t[21]!==r.inputSchema||t[22]!==l.inputsHeading?(x=r.inputSchema?(0,$.jsx)(Gt,{title:l.inputsHeading,schema:r.inputSchema}):null,t[21]=r.inputSchema,t[22]=l.inputsHeading,t[23]=x):x=t[23];let C;t[24]!==r.outputSchema||t[25]!==l.outputsHeading?(C=r.outputSchema?(0,$.jsx)(Gt,{title:l.outputsHeading,schema:r.outputSchema}):null,t[24]=r.outputSchema,t[25]=l.outputsHeading,t[26]=C):C=t[26];let w;t[27]!==r.phases||t[28]!==l.phasesHeading?(w=r.phases.length>0?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.phasesHeading}),(0,$.jsx)(`ol`,{className:`mt-2 space-y-2`,children:r.phases.map(Ht)})]}):null,t[27]=r.phases,t[28]=l.phasesHeading,t[29]=w):w=t[29];let T;t[30]!==l.scriptHeading||t[31]!==f?(T=f?(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:f})]}):null,t[30]=l.scriptHeading,t[31]=f,t[32]=T):T=t[32];let E;t[33]!==x||t[34]!==C||t[35]!==w||t[36]!==T||t[37]!==v||t[38]!==b?(E=(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-auto px-5 py-4`,children:[v,b,x,C,w,T]}),t[33]=x,t[34]=C,t[35]=w,t[36]=T,t[37]=v,t[38]=b,t[39]=E):E=t[39];let D;t[40]!==l.closeResult||t[41]!==o?(D=(0,$.jsx)(F,{variant:`secondary`,onClick:o,children:l.closeResult}),t[40]=l.closeResult,t[41]=o,t[42]=D):D=t[42];let k;t[43]!==l.runWorkflow||t[44]!==s?(k=(0,$.jsx)(F,{variant:`primary`,onClick:s,children:l.runWorkflow}),t[43]=l.runWorkflow,t[44]=s,t[45]=k):k=t[45];let A;t[46]!==D||t[47]!==k?(A=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[D,k]}),t[46]=D,t[47]=k,t[48]=A):A=t[48];let j;t[49]!==E||t[50]!==A||t[51]!==_?(j=(0,$.jsxs)(ee,{children:[m,(0,$.jsxs)(U,{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:[_,E,A]})]}),t[49]=E,t[50]=A,t[51]=_,t[52]=j):j=t[52];let M;return t[53]!==n||t[54]!==j||t[55]!==p?(M=(0,$.jsx)(Oe,{open:n,onOpenChange:p,children:j}),t[53]=n,t[54]=j,t[55]=p,t[56]=M):M=t[56],M}function Ht(e,t){return(0,$.jsxs)(`li`,{className:`rounded-xl border border-edge bg-surface-base/40 px-3 py-2`,children:[(0,$.jsxs)(`div`,{className:`text-sm font-medium text-fg`,children:[t+1,`. `,e.title]}),e.description?(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:e.description}):null]},e.id)}function Ut(e){let t=(0,Q.c)(39),{definition:n,labels:r}=e,i=n.permissions,a=n.resources,o;t[0]!==r.permissionsTools||t[1]!==i?(o=i?.tools?.length?[r.permissionsTools,i.tools.join(`, `)]:null,t[0]=r.permissionsTools,t[1]=i,t[2]=o):o=t[2];let s;t[3]!==r.networkDisabled||t[4]!==r.networkEnabled||t[5]!==r.permissionsNetwork||t[6]!==i?(s=i?.network==null?null:[r.permissionsNetwork,i.network?r.networkEnabled:r.networkDisabled],t[3]=r.networkDisabled,t[4]=r.networkEnabled,t[5]=r.permissionsNetwork,t[6]=i,t[7]=s):s=t[7];let c;t[8]!==r.permissionsFileSystem||t[9]!==i?(c=i?.fileSystem?[r.permissionsFileSystem,i.fileSystem]:null,t[8]=r.permissionsFileSystem,t[9]=i,t[10]=c):c=t[10];let l;t[11]!==r.permissionsApproval||t[12]!==i?.approvalRequired?(l=i?.approvalRequired?[r.permissionsApproval,r.permissionsApproval]:null,t[11]=r.permissionsApproval,t[12]=i?.approvalRequired,t[13]=l):l=t[13];let u;t[14]!==r.resourcesSkills||t[15]!==a?(u=a?.skills?.length?[r.resourcesSkills,a.skills.join(`, `)]:null,t[14]=r.resourcesSkills,t[15]=a,t[16]=u):u=t[16];let d;t[17]!==r.resourcesContextFiles||t[18]!==a?(d=a?.contextFiles?.length?[r.resourcesContextFiles,a.contextFiles.join(`, `)]:null,t[17]=r.resourcesContextFiles,t[18]=a,t[19]=d):d=t[19];let f;t[20]!==r.resourcesPromptTemplates||t[21]!==a?(f=a?.promptTemplates?.length?[r.resourcesPromptTemplates,a.promptTemplates.join(`, `)]:null,t[20]=r.resourcesPromptTemplates,t[21]=a,t[22]=f):f=t[22];let p;t[23]!==o||t[24]!==s||t[25]!==c||t[26]!==l||t[27]!==u||t[28]!==d||t[29]!==f?(p=[o,s,c,l,u,d,f].filter(Boolean),t[23]=o,t[24]=s,t[25]=c,t[26]=l,t[27]=u,t[28]=d,t[29]=f,t[30]=p):p=t[30];let m=p,h;t[31]===r.capabilitiesHeading?h=t[32]:(h=(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:r.capabilitiesHeading}),t[31]=r.capabilitiesHeading,t[32]=h);let g;t[33]!==r.capabilityNone||t[34]!==m?(g=m.length>0?(0,$.jsx)(`div`,{className:`mt-2 grid gap-2 sm:grid-cols-2`,children:m.map(Wt)}):(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:r.capabilityNone}),t[33]=r.capabilityNone,t[34]=m,t[35]=g):g=t[35];let _;return t[36]!==g||t[37]!==h?(_=(0,$.jsxs)(`section`,{children:[h,g]}),t[36]=g,t[37]=h,t[38]=_):_=t[38],_}function Wt(e){let[t,n]=e;return(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-base/40 px-3 py-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-medium text-fg-muted`,children:[(0,$.jsx)(ye,{className:`size-3.5 text-fg-subtle`,"aria-hidden":!0}),t]}),(0,$.jsx)(`div`,{className:`mt-1 break-words text-sm text-fg`,children:n})]},`${t}:${n}`)}function Gt(e){let t=(0,Q.c)(16),{title:n,schema:r}=e,i;t[0]===r.properties?i=t[1]:(i=Object.keys(r.properties??{}),t[0]=r.properties,t[1]=i);let a=i,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(de,{className:`size-3.5`,"aria-hidden":!0}),t[2]=o):o=t[2];let s;t[3]===n?s=t[4]:(s=(0,$.jsxs)(`h3`,{className:`flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:[o,n]}),t[3]=n,t[4]=s);let c;t[5]===a?c=t[6]:(c=a.length>0?(0,$.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:a.map(Kt)}):null,t[5]=a,t[6]=c);let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(`summary`,{className:`cursor-pointer text-xs text-fg-subtle hover:text-fg-muted`,children:`JSON`}),t[7]=l):l=t[7];let u;t[8]===r?u=t[9]:(u=JSON.stringify(r,null,2),t[8]=r,t[9]=u);let d;t[10]===u?d=t[11]:(d=(0,$.jsxs)(`details`,{className:`mt-2`,children:[l,(0,$.jsx)(`pre`,{className:`mt-2 max-h-48 overflow-auto rounded-xl border border-edge bg-surface-base/50 p-3 font-mono text-xs leading-5 text-fg-muted`,children:u})]}),t[10]=u,t[11]=d);let f;return t[12]!==s||t[13]!==c||t[14]!==d?(f=(0,$.jsxs)(`section`,{children:[s,c,d]}),t[12]=s,t[13]=c,t[14]=d,t[15]=f):f=t[15],f}function Kt(e){return(0,$.jsx)(`span`,{className:`rounded-lg border border-edge-subtle bg-surface-base px-2 py-1 text-xs text-fg-muted`,children:e},e)}function qt(e,t){let n=e.metadata.estimatedAgents;return n?n.min===n.max?J(t.agentScaleExact,{count:n.min}):J(t.agentScaleRange,{min:n.min,max:n.max}):null}function Jt(e){let t=(0,Q.c)(81),{definition:n,language:r,labels:a,onPick:o,onDetail:s,onEdit:c}=e,l;t[0]!==n||t[1]!==r?(l=y(n,r),t[0]=n,t[1]=r,t[2]=l):l=t[2];let u=l,d;t[3]!==n||t[4]!==a?(d=qt(n,a),t[3]=n,t[4]=a,t[5]=d):d=t[5];let f=d,p=n.metadata.source===`user`,m;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(m=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]=m):m=t[6];let h;t[7]!==n||t[8]!==s?(h=()=>s(n),t[7]=n,t[8]=s,t[9]=h):h=t[9];let g;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(g=i(`flex flex-1 flex-col text-left`,re.focusRingPanel),t[10]=g):g=t[10];let _=p?`bg-accent-soft text-accent-fg`:`bg-surface-hover text-fg-muted`,v;t[11]===_?v=t[12]:(v=i(`rounded-full px-2 py-0.5 text-[10px] font-medium`,_),t[11]=_,t[12]=v);let x=p?a.badgeUser:a.badgeBuiltin,S;t[13]!==v||t[14]!==x?(S=(0,$.jsx)(`span`,{className:v,children:x}),t[13]=v,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)(de,{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(Yt),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)(ze,{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 ee;t[33]===u.description?ee=t[34]:(ee=u.description?(0,$.jsx)(`p`,{className:`mt-2 line-clamp-2 text-xs leading-5 text-fg-muted`,children:u.description}):null,t[33]=u.description,t[34]=ee);let A;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(pe,{className:`size-3`,"aria-hidden":!0}),t[35]=A):A=t[35];let j;t[36]!==n.phases.length||t[37]!==a.phaseCount?(j=J(a.phaseCount,{count:n.phases.length}),t[36]=n.phases.length,t[37]=a.phaseCount,t[38]=j):j=t[38];let M;t[39]===j?M=t[40]:(M=(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[A,j]}),t[39]=j,t[40]=M);let N;t[41]===f?N=t[42]:(N=f?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,$.jsx)(b,{className:`size-3`,"aria-hidden":!0}),f]}):null,t[41]=f,t[42]=N);let P;t[43]!==M||t[44]!==N?(P=(0,$.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center gap-3 pt-3 text-[11px] text-fg-subtle`,children:[M,N]}),t[43]=M,t[44]=N,t[45]=P):P=t[45];let I;t[46]!==k||t[47]!==ee||t[48]!==P||t[49]!==h?(I=(0,$.jsxs)(`button`,{type:`button`,onClick:h,className:g,children:[k,ee,P]}),t[46]=k,t[47]=ee,t[48]=P,t[49]=h,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 ne;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(ne=(0,$.jsx)(Le,{className:`size-3.5`,"aria-hidden":!0}),t[54]=ne):ne=t[54];let R;t[55]!==a.runWorkflow||t[56]!==L?(R=(0,$.jsxs)(F,{type:`button`,variant:`primary`,className:`h-8 flex-1 rounded-lg text-xs`,onClick:L,children:[ne,a.runWorkflow]}),t[55]=a.runWorkflow,t[56]=L,t[57]=R):R=t[57];let z;t[58]!==n||t[59]!==s?(z=()=>s(n),t[58]=n,t[59]=s,t[60]=z):z=t[60];let B;t[61]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,$.jsx)(ze,{className:`size-3.5`,"aria-hidden":!0}),t[61]=B):B=t[61];let V;t[62]!==a.viewDetails||t[63]!==z?(V=(0,$.jsxs)(F,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg text-xs`,onClick:z,children:[B,a.viewDetails]}),t[62]=a.viewDetails,t[63]=z,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]===p?U=t[69]:(U=p?(0,$.jsx)(te,{className:`size-3.5`,"aria-hidden":!0}):(0,$.jsx)(Ce,{className:`size-3.5`,"aria-hidden":!0}),t[68]=p,t[69]=U);let W=p?a.editWorkflow:a.copyAndEditWorkflow,G;t[70]!==H||t[71]!==U||t[72]!==W?(G=(0,$.jsxs)(F,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg text-xs`,onClick:H,children:[U,W]}),t[70]=H,t[71]=U,t[72]=W,t[73]=G):G=t[73];let K;t[74]!==R||t[75]!==V||t[76]!==G?(K=(0,$.jsxs)(`div`,{className:`mt-4 flex flex-wrap gap-2 border-t border-edge-subtle pt-3`,children:[R,V,G]}),t[74]=R,t[75]=V,t[76]=G,t[77]=K):K=t[77];let q;return t[78]!==I||t[79]!==K?(q=(0,$.jsxs)(`article`,{className:m,children:[I,K]}),t[78]=I,t[79]=K,t[80]=q):q=t[80],q}function Yt(e){return(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-[10px] text-fg-subtle`,children:e},e)}function Xt(e,t){return e===`uncategorized`?t.categories.uncategorized:t.categories[e]}function Zt(e){let t=(0,Q.c)(11),{definitions:n,language:r,onPick:o,onDetail:s,onEdit:c}=e,l=a(r).workflows,[u,f]=(0,Z.useState)(``),[p,m]=(0,Z.useState)(`all`),h;t[0]!==p||t[1]!==n||t[2]!==u?(h=he(n,u,p,`all`),t[0]=p,t[1]=n,t[2]=u,t[3]=h):h=t[3];let g=h,_;t[4]===g?_=t[5]:(_=Be(g),t[4]=g,t[5]=_);let v=_,y;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsx)(Ne,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[6]=y):y=t[6];let b;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>f(e.target.value),t[7]=b):b=t[7];let x=l.searchPlaceholder,S;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(S=i(`h-10 w-full rounded-xl border border-edge bg-surface-base py-2 pl-10 pr-3 text-sm text-fg`,`placeholder:text-fg-subtle`,re.focusRingPanel),t[8]=S):S=t[8];let C=g.length===0?(0,$.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center px-4 py-12 text-center`,children:[(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:l.noDefinitions}),(0,$.jsx)(`p`,{className:`mt-1 max-w-sm text-xs leading-5 text-fg-subtle`,children:l.noDefinitionsHint})]}):p===`all`?(0,$.jsx)(`div`,{className:`flex flex-col gap-6 pb-1`,children:v.map(e=>(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`mb-3 text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:Xt(e.category,l)}),(0,$.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3`,children:e.items.map(e=>(0,$.jsx)(Jt,{definition:e,language:r,labels:l,onPick:o,onDetail:s,onEdit:c},e.id))})]},e.category))}):(0,$.jsx)(`div`,{className:`grid grid-cols-1 gap-3 pb-1 sm:grid-cols-2 xl:grid-cols-3`,children:g.map(e=>(0,$.jsx)(Jt,{definition:e,language:r,labels:l,onPick:o,onDetail:s,onEdit:c},e.id))}),w;return t[9]===C?w=t[10]:(w=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:C}),t[9]=C,t[10]=w),(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-4`,children:[(0,$.jsxs)(`div`,{className:`relative`,children:[y,(0,$.jsx)(`input`,{value:u,onChange:b,placeholder:x,className:S})]}),(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":l.categoryFilterAria,children:d.map(e=>(0,$.jsx)(F,{type:`button`,variant:p===e?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>m(e),children:l.categories[e]},e))})]}),w]})}function Qt(e){let t=(0,Q.c)(32),{open:n,definitions:r,language:o,onClose:s,onPick:c,onDetail:l,onEdit:u}=e,d;t[0]===o?d=t[1]:(d=a(o),t[0]=o,t[1]=d);let p=d.workflows,m;t[2]===s?m=t[3]:(m=e=>!e&&s(),t[2]=s,t[3]=m);let h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(S,{className:`fixed inset-0 z-50 bg-scrim`}),t[4]=h):h=t[4];let g;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(g=i(`pointer-events-auto relative flex h-[min(90vh,840px)] w-full max-w-5xl flex-col`,`rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,re.focusRingPanel),t[5]=g):g=t[5];let _;t[6]===p.pickStartTitle?_=t[7]:(_=(0,$.jsx)(O,{className:`text-lg font-semibold text-fg`,children:p.pickStartTitle}),t[6]=p.pickStartTitle,t[7]=_);let v;t[8]===p.pickStartHint?v=t[9]:(v=(0,$.jsx)(q,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:p.pickStartHint}),t[8]=p.pickStartHint,t[9]=v);let y;t[10]!==_||t[11]!==v?(y=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[_,v]}),t[10]=_,t[11]=v,t[12]=y):y=t[12];let b;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(f,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),t[13]=b):b=t[13];let x;t[14]===p.pickStartClose?x=t[15]:(x=(0,$.jsx)(w,{asChild:!0,children:(0,$.jsx)(F,{variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":p.pickStartClose,children:b})}),t[14]=p.pickStartClose,t[15]=x);let C;t[16]!==y||t[17]!==x?(C=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-edge-subtle px-6 py-5`,children:[y,x]}),t[16]=y,t[17]=x,t[18]=C):C=t[18];let 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)(Zt,{definitions:r,language:o,onPick:c,onDetail:l,onEdit:u})}),t[19]=r,t[20]=o,t[21]=l,t[22]=u,t[23]=c,t[24]=T):T=t[24];let E;t[25]!==C||t[26]!==T?(E=(0,$.jsxs)(ee,{children:[h,(0,$.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4 pointer-events-none`,children:(0,$.jsxs)(U,{className:g,onOpenAutoFocus:$t,children:[C,T]})})]}),t[25]=C,t[26]=T,t[27]=E):E=t[27];let D;return t[28]!==n||t[29]!==E||t[30]!==m?(D=(0,$.jsx)(Oe,{open:n,onOpenChange:m,children:E}),t[28]=n,t[29]=E,t[30]=m,t[31]=D):D=t[31],D}function $t(e){return e.preventDefault()}function en(e,t){return t.status[e]??e}function tn(e,t){return t.phaseStatus[e]??e}function nn(e,t){let{run:n}=e;return n.status===`succeeded`?J(t.runSummarySucceeded,{agents:n.metrics.doneAgentCount,artifacts:n.metrics.artifactCount}):n.status===`failed`||n.status===`timeout`?n.error?.message??t.runSummaryFailedFallback:n.status===`cancelled`?t.runSummaryCancelled:J(t.runSummaryActive,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}function rn(e,t){let{run:n}=e;return n.status===`failed`?t.diagnosticFailedHint:n.status===`timeout`?t.diagnosticTimeoutHint:n.status===`cancelled`?t.diagnosticCancelledHint:n.status===`succeeded`&&n.metrics.errorAgentCount>0?t.diagnosticPartialHint:null}function an(e){return z(e)}function on(e){return!e||typeof e!=`object`||!(`kind`in e)?`unknown`:e.kind===`chat`?`chat · ${e.sessionKey}`:e.kind===`webui`?e.sessionKey?`webui · ${e.sessionKey}`:`webui`:e.kind===`automation`?`automation · ${e.automationId}`:e.kind===`api`?e.requestId?`api · ${e.requestId}`:`api`:e.kind===`im`?`${e.channel} · ${e.chatId}`:String(e.kind)}function sn({view:e,comparison:t,currentDefinition:n,loading:r,language:o,localeTag:s,onCancel:c,onRetry:l,onReplay:u,onOpenRunId:d,ownerAgentId:m,onClose:h}){let g=a(o).workflows,y=a(o).automations.suggestions,b=Ee(o),x=ue(),[C,w]=(0,Z.useState)(!0),[E,D]=(0,Z.useState)(`result`),[k,A]=(0,Z.useState)(!1),[j,M]=(0,Z.useState)(null),[N,P]=(0,Z.useState)(!1),[te,L]=(0,Z.useState)(null),[ne,re]=(0,Z.useState)(null),[,B]=(0,Z.useState)(0),W=e?.run.status,K=W?_.has(W):!1;(0,Z.useEffect)(()=>{e?.run.id&&(w(K||W===`failed`||W===`timeout`),D(`result`),M(null),L(null))},[e?.run.id,K,W,e?.run.metrics.errorAgentCount]),(0,Z.useEffect)(()=>{if(!K)return;let e=window.setInterval(()=>B(e=>e+1),1e3);return()=>window.clearInterval(e)},[K]);let q=(0,Z.useMemo)(()=>e?we(e):null,[e]),ie=(0,Z.useMemo)(()=>q?p(q):{phases:[],unphased:null},[q]),ae=(0,Z.useMemo)(()=>j==null||!q?null:q.agents.find(e=>e.id===j)??null,[j,q]),oe=(0,Z.useCallback)(e=>{M(e.id)},[]),se=(0,Z.useMemo)(()=>e?ge(e):[],[e]),de=e?Re(e.run.result):void 0,fe=de?bn(de):null,pe=de?V(de):``,me=!!de,he=(0,Z.useCallback)(async()=>{me&&await Fe(pe)&&(P(!0),window.setTimeout(()=>P(!1),1500))},[me,pe]),ve=(0,Z.useCallback)(()=>{if(!me||!e)return;let t=new Blob([pe],{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)},[me,pe,e]),ye=(0,Z.useCallback)(()=>{if(!e)return;let t=an(e);t&&x(v(t))},[x,e]),be=(0,Z.useCallback)(async t=>{if(e){L(null),re(t.id);try{vn(await De(e.run.id,t.id,{ownerAgentId:m}),t.name||t.id)}catch(e){L(e instanceof Error?e.message:String(e))}finally{re(null)}}},[m,e]),xe=(0,Z.useCallback)(t=>{if(!e||!t.prompt)return;let n=an(e);if(!n){Fe(t.prompt);return}x(v(n,t.prompt))},[x,e]),Se=(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]),Ce=e?an(e):null,Te=W===`failed`;if(r)return(0,$.jsx)(Oe,{open:!0,onOpenChange:e=>!e&&h(),children:(0,$.jsxs)(ee,{children:[(0,$.jsx)(S,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),(0,$.jsxs)(U,{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)(O,{className:`text-base font-semibold tracking-tight text-fg`,children:g.runSummaryTitle}),(0,$.jsx)(F,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":g.pickStartClose,onClick:h,children:(0,$.jsx)(f,{className:`size-5`,"aria-hidden":!0})})]}),(0,$.jsx)(`div`,{className:`p-5 text-sm text-fg-muted`,children:g.loading})]})]})});if(!e||!q)return null;let{run:X}=e,ke=e.controls.canCancel&&K,Ae=K&&X.startedAtMs!=null?le(Date.now()-X.startedAtMs):le(X.metrics.durationMs??void 0),je=nn(e,g),Me=rn(e,g),Ne=X.metadata,Le=on(X.source),ze=e.controls.canRetry&&e.agents.some(e=>(e.status===`error`||e.status===`skipped`)&&e.prompt?.trim()),Be=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())),Ve=X.goal?.trim()||X.title,We=se.length>0||!!Me,Ge=!!Ce||ke,Q=e.controls.canRetry||ze||Be,Ke=me,qe=Ge||Q||Ke;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Oe,{open:!0,onOpenChange:e=>!e&&h(),children:(0,$.jsxs)(ee,{children:[(0,$.jsx)(S,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),(0,$.jsxs)(U,{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)(O,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:Ve}),(0,$.jsx)(F,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":g.pickStartClose,onClick:h,children:(0,$.jsx)(f,{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:Ve}),(0,$.jsx)(`span`,{className:i(`rounded-full px-2 py-0.5 text-xs font-medium`,Ie(X.status)),children:en(X.status,g)})]}),(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:[X.title,` · `,X.definitionId]}),(0,$.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:je}),Me?(0,$.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-fg-subtle`,children:Me}):null]})}),(0,$.jsxs)(`dl`,{className:`mt-4 grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,children:[(0,$.jsx)(kn,{label:g.metrics.startedAt,value:Pe(X.startedAtMs??X.createdAtMs,s)}),(0,$.jsx)(kn,{label:g.metrics.duration,value:Ae}),(0,$.jsx)(kn,{label:g.metrics.agents,value:J(g.agentProgress,{done:X.metrics.doneAgentCount,total:X.metrics.agentCount})}),(0,$.jsx)(kn,{label:g.metrics.artifacts,value:String(X.metrics.artifactCount)})]})]}),(0,$.jsx)(_e,{eventType:`workflow.run.completed`,source:`workflows`,payloadKey:`runId`,payloadValue:X.id,className:`mt-4`}),Te?(0,$.jsx)(Ue,{title:y.workflowFailedTitle,description:y.workflowFailedDescription,prompt:J(y.workflowFailedPrompt,{runId:X.id,definitionId:X.definitionId}),coverage:{eventType:`workflow.run.completed`,source:`workflows`,eventPayload:{runId:X.id,status:`failed`}},className:`mt-4`}):null,(0,$.jsx)(ln,{activeTab:E,onChange:D,labels:g,hasDiagnostics:We,artifactCount:fe?.artifacts.length??e.artifacts.length}),E===`result`?(0,$.jsxs)(`section`,{className:`mt-5 space-y-4`,children:[me?(0,$.jsx)(`div`,{className:`rounded-xl border border-edge bg-surface-base/50 p-3`,children:(0,$.jsx)(T,{result:de,labels:b.result})}):(0,$.jsx)(`div`,{className:`rounded-xl border border-dashed border-edge p-4 text-sm text-fg-muted`,children:g.noResult}),qe?(0,$.jsxs)(`section`,{className:`rounded-2xl border border-edge-subtle bg-surface-base/35 p-4`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:g.nextActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-3 grid gap-3 lg:grid-cols-3`,children:[Ge?(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-xs font-medium text-fg-subtle`,children:g.primaryActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[Ce?(0,$.jsxs)(F,{variant:`primary`,onClick:ye,children:[(0,$.jsx)(R,{className:`size-4`,"aria-hidden":!0}),g.continueInChat]}):null,ke?(0,$.jsxs)(F,{variant:`secondary`,onClick:c,className:`text-red-600 dark:text-red-300`,children:[(0,$.jsx)(G,{className:`size-4`,"aria-hidden":!0}),g.cancel]}):null]})]}):null,Q?(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-xs font-medium text-fg-subtle`,children:g.recoveryActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[ze?(0,$.jsxs)(F,{variant:`secondary`,onClick:()=>u(`failed_agents`),children:[(0,$.jsx)(Y,{className:`size-4`,"aria-hidden":!0}),g.replayFailedAgents]}):null,Be?(0,$.jsxs)(F,{variant:`secondary`,onClick:()=>u(`failed_phases`),children:[(0,$.jsx)(Y,{className:`size-4`,"aria-hidden":!0}),g.replayFailedPhases]}):null,e.controls.canRetry?(0,$.jsxs)(F,{variant:`secondary`,onClick:l,children:[(0,$.jsx)(Y,{className:`size-4`,"aria-hidden":!0}),g.rerun]}):null]})]}):null,Ke?(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-xs font-medium text-fg-subtle`,children:g.resultActionsTitle}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:[(0,$.jsxs)(F,{variant:`secondary`,onClick:he,children:[N?(0,$.jsx)(ce,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(I,{className:`size-4`,"aria-hidden":!0}),N?g.copied:g.copyResult]}),(0,$.jsxs)(F,{variant:`secondary`,onClick:ve,children:[(0,$.jsx)(H,{className:`size-4`,"aria-hidden":!0}),g.exportResult]})]})]}):null]})]}):null,(0,$.jsx)(fn,{view:e,comparison:t,labels:g,onOpenRunId:d})]}):null,E===`process`?(0,$.jsx)(un,{snapshot:q,rollup:ie,view:e,labels:g,cardLabels:b,isActive:K,processExpanded:C,logsExpanded:k,drawerAgentId:j,durationText:Ae,onToggleProcess:()=>w(e=>!e),onToggleLogs:()=>A(e=>!e),onSelectAgent:oe}):null,E===`diagnostics`?(0,$.jsx)(cn,{diagnostics:se,labels:g,hint:Me,onOpenAgent:Se}):null,E===`artifacts`?(0,$.jsx)(_n,{outcome:fe,labels:g,downloadingArtifactId:ne,downloadError:te,onCopyText:e=>void Fe(e),onDownloadArtifact:e=>void be(e),onStartFollowUp:xe}):null,E===`debug`?(0,$.jsx)(xn,{agents:q.agents,labels:g,metadataItems:[{label:g.metadataSession,value:Ne?.sessionKey??z(e)??`—`},{label:g.metadataSource,value:Le},{label:g.metadataDefinition,value:`${Ne?.definition.version??X.definitionVersion} · ${Ne?.definition.source??`unknown`}`},{label:g.metadataDefinitionHash,value:pn(Ne?.definition,n,g)},{label:g.metadataPermissions,value:mn(Ne?.definition)},{label:g.metadataRetryOf,value:Ne?.retryOfRunId??`—`}],defaultExpanded:!0}):null]})]})]})}),(0,$.jsx)(He,{open:j!=null&&ae!=null,agent:ae,snapshot:q,sessionKey:null,ownerAgentId:m,onClose:()=>M(null),labels:b.drawer})]})}function cn(e){let t=(0,Q.c)(13),{diagnostics:n,labels:r,hint:i,onOpenAgent:a}=e;if(n.length===0&&!i)return null;let o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(`div`,{className:`rounded-xl bg-rose-500/10 p-2 text-rose-700 dark:text-rose-300`,children:(0,$.jsx)(m,{className:`size-4`,"aria-hidden":!0})}),t[0]=o):o=t[0];let s;t[1]===r.reliabilityTitle?s=t[2]:(s=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.reliabilityTitle}),t[1]=r.reliabilityTitle,t[2]=s);let c=i??r.reliabilityHint,l;t[3]===c?l=t[4]:(l=(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:c}),t[3]=c,t[4]=l);let u;t[5]!==n||t[6]!==r||t[7]!==a?(u=n.length>0?(0,$.jsx)(`ul`,{className:`mt-3 space-y-2`,children:n.slice(0,5).map(e=>(0,$.jsx)(`li`,{className:`rounded-xl border border-edge-subtle bg-surface-panel px-3 py-2`,children:(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:dn(e,r)}),e.message?(0,$.jsx)(`div`,{className:`mt-0.5 text-xs leading-5 text-fg-muted`,children:e.message}):null,e.detail?(0,$.jsx)(`div`,{className:`mt-0.5 line-clamp-2 text-xs leading-5 text-fg-subtle`,children:e.detail}):null]}),e.agentId==null?null:(0,$.jsx)(F,{type:`button`,variant:`ghost`,className:`h-8 shrink-0 px-2 text-xs`,onClick:()=>a(e.agentId),children:r.openAgentDetails})]})},e.key))}):null,t[5]=n,t[6]=r,t[7]=a,t[8]=u):u=t[8];let d;return t[9]!==s||t[10]!==l||t[11]!==u?(d=(0,$.jsx)(`section`,{className:`mt-5 rounded-2xl border border-rose-500/20 bg-rose-500/5 p-4`,children:(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[o,(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[s,l,u]})]})}),t[9]=s,t[10]=l,t[11]=u,t[12]=d):d=t[12],d}function ln(e){let t=(0,Q.c)(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`,re.focusRingPanel,re.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 un(e){let t=(0,Q.c)(36),{snapshot:n,rollup:r,view:a,labels:o,cardLabels:s,isActive:c,processExpanded:l,logsExpanded:u,drawerAgentId:d,durationText:f,onToggleProcess:p,onToggleLogs:m,onSelectAgent:h}=e,g;t[0]===o.process?g=t[1]:(g=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:o.process}),t[0]=o.process,t[1]=g);let _;t[2]!==o.agentProgress||t[3]!==a.run.metrics.agentCount||t[4]!==a.run.metrics.doneAgentCount?(_=J(o.agentProgress,{done:a.run.metrics.doneAgentCount,total:a.run.metrics.agentCount}),t[2]=o.agentProgress,t[3]=a.run.metrics.agentCount,t[4]=a.run.metrics.doneAgentCount,t[5]=_):_=t[5];let v;t[6]!==f||t[7]!==_?(v=(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:[_,` · `,f]}),t[6]=f,t[7]=_,t[8]=v):v=t[8];let y;t[9]!==g||t[10]!==v?(y=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[g,v]}),t[9]=g,t[10]=v,t[11]=y):y=t[11];let b=l?`rotate-180`:null,x;t[12]===b?x=t[13]:(x=i(`size-4 shrink-0 text-fg-subtle transition-transform`,b),t[12]=b,t[13]=x);let S;t[14]===x?S=t[15]:(S=(0,$.jsx)(ie,{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)(ne,{snapshot:n,labels:s,logsExpanded:u,onToggleLogs:m,selectedAgentId:d,onSelectAgent:h}):(0,$.jsx)(A,{rollup:r,currentPhase:n.currentPhase,labels:s.phase,recentLogs:n.logs,recentLogsHeading:s.recentLogsHeading,showAllLogsLabel:s.showAllLogs,logsExpanded:u,onToggleLogs:m,selectedAgentId:d,onSelectAgent:h}),a.phases.length>0?(0,$.jsx)(`div`,{className:`mt-4 grid gap-2 sm:grid-cols-2`,children:a.phases.map(e=>(0,$.jsx)(`div`,{className:`rounded-xl border border-edge bg-surface-panel px-3 py-2`,children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:e.title}),(0,$.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:tn(e.status,o)})]})},e.id))}):null]}):null,t[21]=s,t[22]=d,t[23]=c,t[24]=o,t[25]=u,t[26]=h,t[27]=m,t[28]=l,t[29]=r,t[30]=n,t[31]=a.phases,t[32]=w):w=t[32];let T;return t[33]!==C||t[34]!==w?(T=(0,$.jsxs)(`div`,{className:`mt-5 rounded-2xl border border-edge bg-surface-base/35`,children:[C,w]}),t[33]=C,t[34]=w,t[35]=T):T=t[35],T}function dn(e,t){return e.kind===`run_error`?e.code?J(t.diagnosticsRunErrorWithCode,{code:e.code}):t.diagnosticsRunError:e.kind===`agent_error`?J(t.diagnosticsAgentError,{agent:e.agentLabel??String(e.agentId??`—`)}):e.kind===`step_error`?J(t.diagnosticsStepError,{agent:e.agentLabel??String(e.agentId??`—`),step:e.stepLabel??e.stepId??`—`}):J(t.diagnosticsAgentSkipped,{agent:e.agentLabel??String(e.agentId??`—`)})}function fn(e){let t=(0,Q.c)(36),{view:n,comparison:r,labels:i,onOpenRunId:a}=e,o=n.run.metadata?.replay;if(!o)return null;let s;t[0]===i.replayLineageTitle?s=t[1]:(s=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:i.replayLineageTitle}),t[0]=i.replayLineageTitle,t[1]=s);let c;t[2]!==i||t[3]!==o.scope||t[4]!==o.targetCount?(c=J(i.replayLineageSummary,{scope:gn(o.scope,i),count:o.targetCount}),t[2]=i,t[3]=o.scope,t[4]=o.targetCount,t[5]=c):c=t[5];let l;t[6]===c?l=t[7]:(l=(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:c}),t[6]=c,t[7]=l);let u;t[8]!==i.replaySourceRun||t[9]!==o.sourceRunId?(u=(0,$.jsx)(An,{label:i.replaySourceRun,value:o.sourceRunId}),t[8]=i.replaySourceRun,t[9]=o.sourceRunId,t[10]=u):u=t[10];let d=i.replayTargetAgents,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)(An,{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)(kn,{label:i.replayFixedAgents,value:String(r.fixedAgentIds.length)}),(0,$.jsx)(kn,{label:i.replayStillFailingAgents,value:String(r.stillFailingAgentIds.length)}),(0,$.jsx)(kn,{label:i.replayDurationDelta,value:hn(r.durationDeltaMs)})]}):null,t[19]=r,t[20]=i.replayDurationDelta,t[21]=i.replayFixedAgents,t[22]=i.replayStillFailingAgents,t[23]=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)(F,{type:`button`,variant:`secondary`,className:`shrink-0`,onClick:()=>a(o.sourceRunId),children:i.replayOpenSource}):null,t[29]=i.replayOpenSource,t[30]=a,t[31]=o.sourceRunId,t[32]=_):_=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 pn(e,t,n){if(!e?.contentHash)return n.definitionHashUnavailable;let r=e.contentHash.slice(0,8);return t?.contentHash?t.contentHash===e.contentHash?`${r} · ${n.definitionHashMatches}`:`${r} · ${n.definitionHashDrifted}`:`${r} · ${n.definitionHashCurrentUnknown}`}function mn(e){let t=e?.permissions;if(!t)return`—`;let n=[t.tools?.length?`tools:${t.tools.join(`,`)}`:null,t.network==null?null:`network:${t.network?`on`:`off`}`,t.fileSystem?`fs:${t.fileSystem}`:null,t.approvalRequired?`approval`:null].filter(Boolean);return n.length>0?n.join(` · `):`—`}function hn(e){return e==null?`—`:`${e>0?`+`:e<0?`-`:``}${le(Math.abs(e))}`}function gn(e,t){return e===`failed_phases`?t.replayScopeFailedPhases:t.replayScopeFailedAgents}function _n(e){let t=(0,Q.c)(20),{outcome:n,labels:r,downloadingArtifactId:i,downloadError:a,onCopyText:o,onDownloadArtifact:s,onStartFollowUp:c}=e;if(!n||!n.artifacts.length&&!n.followUps.length&&n.structuredOutput===void 0){let e;return t[0]===r.noArtifacts?e=t[1]:(e=(0,$.jsx)(`section`,{className:`mt-5 rounded-xl border border-dashed border-edge p-4 text-sm text-fg-muted`,children:r.noArtifacts}),t[0]=r.noArtifacts,t[1]=e),e}let l;t[2]!==a||t[3]!==i||t[4]!==r||t[5]!==s||t[6]!==n.artifacts?(l=n.artifacts.length>0?(0,$.jsxs)(yn,{title:r.outcomeArtifacts,children:[(0,$.jsx)(`ul`,{className:`space-y-2`,children:n.artifacts.map(e=>(0,$.jsxs)(`li`,{className:`min-w-0 rounded-lg bg-surface-base px-2.5 py-2`,children:[(0,$.jsx)(`div`,{className:`truncate text-sm font-medium text-fg`,title:e.title??e.name,children:e.title??e.name}),(0,$.jsx)(`div`,{className:`mt-0.5 text-xs text-fg-subtle`,children:e.mimeType}),(0,$.jsxs)(`button`,{type:`button`,className:`mt-1 inline-flex items-center gap-1 text-xs font-medium text-accent-fg hover:underline disabled:cursor-wait disabled:opacity-60`,disabled:i===e.id,onClick:()=>s(e),children:[(0,$.jsx)(H,{className:`size-3`,"aria-hidden":!0}),i===e.id?r.downloadingArtifact:r.downloadArtifact]})]},e.id))}),a?(0,$.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-rose-600 dark:text-rose-400`,children:a}):null]}):null,t[2]=a,t[3]=i,t[4]=r,t[5]=s,t[6]=n.artifacts,t[7]=l):l=t[7];let u;t[8]!==r||t[9]!==o||t[10]!==c||t[11]!==n.followUps?(u=n.followUps.length>0?(0,$.jsx)(yn,{title:r.outcomeFollowUps,children:(0,$.jsx)(`ul`,{className:`space-y-2`,children:n.followUps.map(e=>(0,$.jsxs)(`li`,{className:`rounded-lg bg-surface-base px-2.5 py-2`,children:[(0,$.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:e.title}),e.prompt?(0,$.jsxs)(`div`,{className:`mt-1 flex flex-wrap gap-2`,children:[(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent-fg hover:underline`,onClick:()=>c(e),children:r.startFollowUp}),(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-fg-subtle hover:text-fg`,onClick:()=>o(e.prompt??``),children:r.copyPrompt})]}):null]},e.id))})}):null,t[8]=r,t[9]=o,t[10]=c,t[11]=n.followUps,t[12]=u):u=t[12];let d;t[13]!==r||t[14]!==n.structuredOutput?(d=n.structuredOutput===void 0?null:(0,$.jsx)(yn,{title:r.outcomeStructuredOutput,children:(0,$.jsx)(`pre`,{className:`max-h-44 overflow-auto whitespace-pre-wrap break-words rounded-lg bg-surface-base p-2 font-mono text-xs leading-5 text-fg-muted`,children:V(n.structuredOutput)})}),t[13]=r,t[14]=n.structuredOutput,t[15]=d):d=t[15];let f;return t[16]!==l||t[17]!==u||t[18]!==d?(f=(0,$.jsxs)(`div`,{className:`mt-5 grid gap-3 lg:grid-cols-3`,children:[l,u,d]}),t[16]=l,t[17]=u,t[18]=d,t[19]=f):f=t[19],f}function vn(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),URL.revokeObjectURL(n)}function yn(e){let t=(0,Q.c)(7),{title:n,children:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`h4`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`div`,{className:`mt-2`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`section`,{className:`min-w-0 rounded-xl border border-edge-subtle bg-surface-base/35 p-3`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function bn(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e,n=Array.isArray(t.artifacts)?t.artifacts:[],r=Array.isArray(t.followUps)?t.followUps:[];return n.length===0&&r.length===0&&t.structuredOutput===void 0?null:{artifacts:n,followUps:r,structuredOutput:t.structuredOutput}}function xn(e){let t=(0,Q.c)(27),{agents:n,labels:r,metadataItems:a,defaultExpanded:o}=e,[s,c]=(0,Z.useState)(o),l,u;t[0]===o?(l=t[1],u=t[2]):(l=()=>{c(o)},u=[o],t[0]=o,t[1]=l,t[2]=u),(0,Z.useEffect)(l,u);let d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>c(Cn),t[3]=d):d=t[3];let f;t[4]===r.debugDetailsTitle?f=t[5]:(f=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.debugDetailsTitle}),t[4]=r.debugDetailsTitle,t[5]=f);let p;t[6]===r.debugDetailsHint?p=t[7]:(p=(0,$.jsx)(`p`,{className:`text-xs leading-5 text-fg-subtle`,children:r.debugDetailsHint}),t[6]=r.debugDetailsHint,t[7]=p);let m;t[8]!==f||t[9]!==p?(m=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[f,p]}),t[8]=f,t[9]=p,t[10]=m):m=t[10];let h=s?`rotate-180`:null,g;t[11]===h?g=t[12]:(g=i(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,h),t[11]=h,t[12]=g);let _;t[13]===g?_=t[14]:(_=(0,$.jsx)(ie,{className:g,"aria-hidden":!0}),t[13]=g,t[14]=_);let v;t[15]!==s||t[16]!==m||t[17]!==_?(v=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-4 px-4 py-3 text-left`,onClick:d,"aria-expanded":s,children:[m,_]}),t[15]=s,t[16]=m,t[17]=_,t[18]=v):v=t[18];let y;t[19]!==n||t[20]!==s||t[21]!==r||t[22]!==a?(y=s?(0,$.jsxs)(`div`,{className:`border-t border-edge px-4 py-4`,children:[(0,$.jsx)(wn,{agents:n,labels:r}),(0,$.jsx)(`div`,{className:`mt-4 grid gap-3 rounded-xl border border-edge-subtle bg-surface-panel/60 p-3 sm:grid-cols-2 lg:grid-cols-3`,children:a.map(Sn)})]}):null,t[19]=n,t[20]=s,t[21]=r,t[22]=a,t[23]=y):y=t[23];let b;return t[24]!==v||t[25]!==y?(b=(0,$.jsxs)(`section`,{className:`mt-6 rounded-2xl border border-edge bg-surface-base/35`,children:[v,y]}),t[24]=v,t[25]=y,t[26]=b):b=t[26],b}function Sn(e){return(0,$.jsx)(An,{label:e.label,value:e.value},e.label)}function Cn(e){return!e}function wn(e){let t=(0,Q.c)(15),{agents:n,labels:r}=e;if(n.length===0)return null;let a;t[0]===r.agentIoTitle?a=t[1]:(a=(0,$.jsx)(`h4`,{className:`text-sm font-semibold text-fg`,children:r.agentIoTitle}),t[0]=r.agentIoTitle,t[1]=a);let o;t[2]===r.agentIoHint?o=t[3]:(o=(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:r.agentIoHint}),t[2]=r.agentIoHint,t[3]=o);let s;if(t[4]!==n||t[5]!==r){let e;t[7]===r?e=t[8]:(e=e=>{let t=e.error||e.resultPreview||r.agentNoOutput;return(0,$.jsxs)(`article`,{className:`rounded-xl border border-edge-subtle bg-surface-panel p-3`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,$.jsx)(`div`,{className:`min-w-0 text-sm font-medium text-fg`,children:e.label}),(0,$.jsx)(`span`,{className:i(`rounded-full px-2 py-0.5 text-xs font-medium`,On(e.status)),children:r.agentStatus[e.status]??e.status})]}),(0,$.jsxs)(`div`,{className:`mt-3 grid gap-3 lg:grid-cols-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-wide text-fg-subtle`,children:r.agentInputHeading}),(0,$.jsx)(`pre`,{className:`mt-1 max-h-32 overflow-y-auto whitespace-pre-wrap wrap-break-word rounded-lg border border-edge-subtle bg-surface-base/50 p-2 font-mono text-xs leading-5 text-fg-muted`,children:e.prompt||`—`})]}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-wide text-fg-subtle`,children:r.agentOutputHeading}),(0,$.jsx)(`div`,{className:i(`mt-1 max-h-32 overflow-y-auto whitespace-pre-wrap wrap-break-word rounded-lg border border-edge-subtle bg-surface-base/50 p-2 text-xs leading-5`,e.error?`font-mono text-rose-600 dark:text-rose-400`:`text-fg-muted`),children:t})]})]}),(0,$.jsx)(Tn,{agent:e,labels:r})]},e.id)},t[7]=r,t[8]=e),s=n.map(e),t[4]=n,t[5]=r,t[6]=s}else s=t[6];let c;t[9]===s?c=t[10]:(c=(0,$.jsx)(`div`,{className:`mt-3 grid gap-3`,children:s}),t[9]=s,t[10]=c);let l;return t[11]!==a||t[12]!==o||t[13]!==c?(l=(0,$.jsxs)(`section`,{children:[a,o,c]}),t[11]=a,t[12]=o,t[13]=c,t[14]=l):l=t[14],l}function Tn(e){let t=(0,Q.c)(21),{agent:n,labels:r}=e,i=n.invocation;if(!i)return null;let a=i.resolvedModelRef??i.modelRef,o;t[0]!==r.agentInvocationModel||t[1]!==a?(o={label:r.agentInvocationModel,value:a},t[0]=r.agentInvocationModel,t[1]=a,t[2]=o):o=t[2];let s;t[3]===i.toolset?s=t[4]:(s=i.toolset?.join(`, `),t[3]=i.toolset,t[4]=s);let c;t[5]!==r.agentInvocationTools||t[6]!==s?(c={label:r.agentInvocationTools,value:s},t[5]=r.agentInvocationTools,t[6]=s,t[7]=c):c=t[7];let l=i.maxIterations==null?void 0:String(i.maxIterations),u;t[8]!==r.agentInvocationIterations||t[9]!==l?(u={label:r.agentInvocationIterations,value:l},t[8]=r.agentInvocationIterations,t[9]=l,t[10]=u):u=t[10];let d=i.schema?r.agentInvocationSchemaPresent:void 0,f;t[11]!==r.agentInvocationSchema||t[12]!==d?(f={label:r.agentInvocationSchema,value:d},t[11]=r.agentInvocationSchema,t[12]=d,t[13]=f):f=t[13];let p;t[14]!==o||t[15]!==c||t[16]!==u||t[17]!==f?(p=[o,c,u,f].filter(Dn),t[14]=o,t[15]=c,t[16]=u,t[17]=f,t[18]=p):p=t[18];let m=p;if(m.length===0)return null;let h;return t[19]===m?h=t[20]:(h=(0,$.jsx)(`dl`,{className:`mt-3 grid gap-2 border-t border-edge-subtle pt-3 text-xs sm:grid-cols-2 lg:grid-cols-4`,children:m.map(En)}),t[19]=m,t[20]=h),h}function En(e){return(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`dt`,{className:`text-fg-subtle`,children:e.label}),(0,$.jsx)(`dd`,{className:`mt-0.5 truncate font-medium text-fg-muted`,title:e.value,children:e.value})]},e.label)}function Dn(e){return!!e.value}function On(e){return e===`done`?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:e===`error`?`bg-rose-500/10 text-rose-700 dark:text-rose-300`:e===`running`?`bg-accent-soft text-accent-fg`:`bg-surface-hover text-fg-subtle`}function kn(e){let t=(0,Q.c)(7),{label:n,value:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`dt`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`dd`,{className:`mt-1 text-sm font-semibold text-fg`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-base/40 p-3`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function An(e){let t=(0,Q.c)(7),{label:n,value:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`div`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`div`,{className:`mt-1 truncate text-sm font-medium text-fg`,title:r,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function jn(e){let t=(0,Q.c)(58),{open:n,definition:r,language:i,starting:o,onClose:s,onStart:c}=e,l;t[0]===i?l=t[1]:(l=a(i),t[0]=i,t[1]=l);let u=l.workflows,d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d={goal:``,argValues:{},schemaInput:{},concurrency:``,maxSubagents:``},t[2]=d):d=t[2];let[f,p]=(0,Z.useState)(d),m;t[3]!==r||t[4]!==i?(m=r?y(r,i):null,t[3]=r,t[4]=i,t[5]=m):m=t[5];let h=m,g;t[6]!==r||t[7]!==n?(g=()=>{!n||!r||p({goal:``,argValues:{},schemaInput:{},concurrency:``,maxSubagents:``})},t[6]=r,t[7]=n,t[8]=g):g=t[8];let _=r?.id,v;if(t[9]!==n||t[10]!==_?(v=[n,_],t[9]=n,t[10]=_,t[11]=v):v=t[11],(0,Z.useEffect)(g,v),!r||!h)return null;let b;t[12]!==r||t[13]!==f||t[14]!==h.description||t[15]!==c?(b=()=>{let e=We(r,f);c({goal:f.goal.trim()||h.description,input:e,concurrency:f.concurrency.trim()?Number(f.concurrency):void 0,maxSubagents:f.maxSubagents.trim()?Number(f.maxSubagents):void 0})},t[12]=r,t[13]=f,t[14]=h.description,t[15]=c,t[16]=b):b=t[16];let x=b,C;t[17]===s?C=t[18]:(C=e=>!e&&s(),t[17]=s,t[18]=C);let w;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(S,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[19]=w):w=t[19];let T;t[20]!==r.title||t[21]!==u.startTitle?(T=(0,$.jsxs)(O,{className:`text-base font-semibold text-fg`,children:[u.startTitle,` · `,r.title]}),t[20]=r.title,t[21]=u.startTitle,t[22]=T):T=t[22];let E;t[23]===h.description?E=t[24]:(E=(0,$.jsx)(q,{className:`mt-1 text-sm text-fg-muted`,children:h.description}),t[23]=h.description,t[24]=E);let D;t[25]!==T||t[26]!==E?(D=(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[T,E]}),t[25]=T,t[26]=E,t[27]=D):D=t[27];let k;t[28]!==r.id||t[29]!==r.name||t[30]!==r.title||t[31]!==h.description?(k={context:{surface:`workflow-start`,workflowId:r.id,workflowName:r.name,workflowTitle:r.title,workflowDescription:h.description}},t[28]=r.id,t[29]=r.name,t[30]=r.title,t[31]=h.description,t[32]=k):k=t[32];let A;t[33]!==r||t[34]!==f||t[35]!==u.readyToStart||t[36]!==i||t[37]!==k?(A=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-auto px-5 py-4`,children:(0,$.jsx)(Ge,{definition:r,language:i,value:f,onChange:p,mode:`manual`,badgeLabel:u.readyToStart,aiAssist:k})}),t[33]=r,t[34]=f,t[35]=u.readyToStart,t[36]=i,t[37]=k,t[38]=A):A=t[38];let j;t[39]!==u.cancelDialog||t[40]!==s||t[41]!==o?(j=(0,$.jsx)(F,{variant:`secondary`,onClick:s,disabled:o,children:u.cancelDialog}),t[39]=u.cancelDialog,t[40]=s,t[41]=o,t[42]=j):j=t[42];let M=o?u.starting:u.start,N;t[43]!==o||t[44]!==x||t[45]!==M?(N=(0,$.jsx)(F,{variant:`primary`,onClick:x,disabled:o,children:M}),t[43]=o,t[44]=x,t[45]=M,t[46]=N):N=t[46];let P;t[47]!==j||t[48]!==N?(P=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[j,N]}),t[47]=j,t[48]=N,t[49]=P):P=t[49];let te;t[50]!==D||t[51]!==A||t[52]!==P?(te=(0,$.jsxs)(ee,{children:[w,(0,$.jsxs)(U,{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:[D,A,P]})]}),t[50]=D,t[51]=A,t[52]=P,t[53]=te):te=t[53];let I;return t[54]!==n||t[55]!==te||t[56]!==C?(I=(0,$.jsx)(Oe,{open:n,onOpenChange:C,children:te}),t[54]=n,t[55]=te,t[56]=C,t[57]=I):I=t[57],I}function Mn(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)(Nn,{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)(Nn,{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)(Nn,{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?`—`:le(n.averageDurationMs),t[17]=n.averageDurationMs,t[18]=_);let v;t[19]!==i.statsAvgDuration||t[20]!==_?(v=(0,$.jsx)(Nn,{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 Nn(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 Pn(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)(Le,{className:`size-4`,"aria-hidden":!0}),t[2]=l):l=t[2];let u;t[3]!==r.boardStart||t[4]!==c?(u=(0,$.jsxs)(F,{variant:`primary`,className:`h-9 rounded-lg`,onClick:c,children:[l,r.boardStart]}),t[3]=r.boardStart,t[4]=c,t[5]=u):u=t[5];let d;t[6]===o?d=t[7]:(d=()=>o(!0),t[6]=o,t[7]=d);let f;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(B,{className:`size-4`,"aria-hidden":!0}),t[8]=f):f=t[8];let p;t[9]!==r.addWorkflow||t[10]!==d?(p=(0,$.jsxs)(F,{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)(W,{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 Fn=[`attention`,`running`,`queued`,`recent`];function In(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 Ln(e){return e.completedAtMs??e.startedAtMs??e.createdAtMs}function Rn(e,t){let n=[...t];return e===`queued`?n.sort((e,t)=>e.createdAtMs-t.createdAtMs):n.sort((e,t)=>Ln(t)-Ln(e))}function zn(e){let t=new Map(Fn.map(e=>[e,[]]));for(let n of e){let e=In(n);e&&t.get(e)?.push(n)}for(let e of Fn)t.set(e,Rn(e,t.get(e)??[]));return t}function Bn(e){let t=(0,Q.c)(205),{vm:n}=e,{language:r,localeTag:o,labels:s,hasToken:c,definitions:l,runs:d,searchQuery:f,setSearchQuery:p,ownerAgentId:m,agentOptions:h,setOwnerAgentId:g,workflowFilterId:_,setWorkflowFilterId:v,triggerFilter:y,setTriggerFilter:b,selectedRunId:x,selectedRunView:S,selectedRunComparison:C,selectedRunLoading:w,selectedRunError:T,openRunDetails:E,closeRunDetails:D,openRunDetailsById:O,openRunInChat:k,pickStartOpen:ee,setPickStartOpen:A,startDefinition:j,setStartDefinition:M,detailDefinition:N,setDetailDefinition:P,manageOpen:F,setManageOpen:te,workflowEditorDraft:I,openWorkflowEditor:L,actionError:ne,actionFeedback:R,starting:z,savingWorkflow:B,loading:V,error:H,stats:U,submitStart:W,cancelRun:G,retryRun:K,replayRun:q,saveCustomWorkflow:ie,saveDraftAndStart:ae}=n,se=oe(Un),ce=oe(Hn),[le,ue]=(0,Z.useState)(`operations`),J;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(J=Date.now(),t[0]=J):J=t[0];let de=J,fe=zn(nt(d,{searchQuery:f,workflowFilterId:_,triggerFilter:y})),pe;t[1]!==ce||t[2]!==c||t[3]!==s.statsActiveRuns||t[4]!==s.statsTotalRuns||t[5]!==s.subtitleBoard||t[6]!==s.title||t[7]!==se||t[8]!==U||t[9]!==n?(pe=()=>{if(!c){ce();return}return se({startExtra:null,main:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:s.title}),(0,$.jsx)(`p`,{className:`truncate text-xs text-fg-muted`,children:U?`${s.statsTotalRuns}: ${U.totalRuns} · ${s.statsActiveRuns}: ${U.activeRuns}`:s.subtitleBoard})]}),end:(0,$.jsx)(Pn,{vm:n})}),()=>ce()},t[1]=ce,t[2]=c,t[3]=s.statsActiveRuns,t[4]=s.statsTotalRuns,t[5]=s.subtitleBoard,t[6]=s.title,t[7]=se,t[8]=U,t[9]=n,t[10]=pe):pe=t[10];let me;if(t[11]!==ce||t[12]!==c||t[13]!==s.statsActiveRuns||t[14]!==s.statsTotalRuns||t[15]!==s.subtitleBoard||t[16]!==s.title||t[17]!==V||t[18]!==U||t[19]!==n?(me=[ce,c,s.title,s.statsActiveRuns,s.statsTotalRuns,s.subtitleBoard,V,U,n,n.refreshAll,n.setManageOpen,n.setSearchQuery],t[11]=ce,t[12]=c,t[13]=s.statsActiveRuns,t[14]=s.statsTotalRuns,t[15]=s.subtitleBoard,t[16]=s.title,t[17]=V,t[18]=U,t[19]=n,t[20]=me):me=t[20],(0,Z.useLayoutEffect)(pe,me),!c){let e;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(X,{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 he;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(he=(0,$.jsx)(Ne,{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]=he):he=t[29];let ge;t[30]===p?ge=t[31]:(ge=e=>p(e.target.value),t[30]=p,t[31]=ge);let Y=s.searchPlaceholder,_e;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(_e=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`,re.focusRingPanel),t[32]=_e):_e=t[32];let ye;t[33]!==s.searchPlaceholder||t[34]!==f||t[35]!==ge?(ye=(0,$.jsxs)(`div`,{className:`relative min-w-48 flex-1 sm:max-w-xs`,children:[he,(0,$.jsx)(`input`,{value:f,onChange:ge,placeholder:Y,className:_e})]}),t[33]=s.searchPlaceholder,t[34]=f,t[35]=ge,t[36]=ye):ye=t[36];let be;t[37]!==h||t[38]!==r||t[39]!==m||t[40]!==g?(be=h.length>1?(0,$.jsx)(ve,{value:m??``,"aria-label":`Agent`,onChange:e=>g(e.target.value),className:i(`h-9 min-w-32 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,re.focusRingPanel),children:h.map(e=>(0,$.jsx)(Te,{value:e.id,children:Se(e,a(r).agentsSettings)},e.id))}):null,t[37]=h,t[38]=r,t[39]=m,t[40]=g,t[41]=be):be=t[41];let xe=s.boardTriggerFilterAria,Ce;t[42]===b?Ce=t[43]:(Ce=e=>b(e.target.value),t[42]=b,t[43]=Ce);let we;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(we=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`,re.focusRingPanel),t[44]=we):we=t[44];let Ee;t[45]===s.boardTriggerFilterAll?Ee=t[46]:(Ee=(0,$.jsx)(Te,{value:`all`,children:s.boardTriggerFilterAll}),t[45]=s.boardTriggerFilterAll,t[46]=Ee);let De;t[47]===s.boardTriggerFilterAutomation?De=t[48]:(De=(0,$.jsx)(Te,{value:`automation`,children:s.boardTriggerFilterAutomation}),t[47]=s.boardTriggerFilterAutomation,t[48]=De);let Oe;t[49]===s.boardTriggerFilterWebui?Oe=t[50]:(Oe=(0,$.jsx)(Te,{value:`webui`,children:s.boardTriggerFilterWebui}),t[49]=s.boardTriggerFilterWebui,t[50]=Oe);let Ae;t[51]===s.boardTriggerFilterChat?Ae=t[52]:(Ae=(0,$.jsx)(Te,{value:`chat`,children:s.boardTriggerFilterChat}),t[51]=s.boardTriggerFilterChat,t[52]=Ae);let je;t[53]===s.boardTriggerFilterApi?je=t[54]:(je=(0,$.jsx)(Te,{value:`api`,children:s.boardTriggerFilterApi}),t[53]=s.boardTriggerFilterApi,t[54]=je);let Me;t[55]!==s.boardTriggerFilterAria||t[56]!==Ce||t[57]!==Ee||t[58]!==De||t[59]!==Oe||t[60]!==Ae||t[61]!==je||t[62]!==y?(Me=(0,$.jsxs)(ve,{value:y,"aria-label":xe,onChange:Ce,className:we,children:[Ee,De,Oe,Ae,je]}),t[55]=s.boardTriggerFilterAria,t[56]=Ce,t[57]=Ee,t[58]=De,t[59]=Oe,t[60]=Ae,t[61]=je,t[62]=y,t[63]=Me):Me=t[63];let Pe=s.boardWorkflowFilterAria,Fe;t[64]===v?Fe=t[65]:(Fe=e=>v(e.target.value),t[64]=v,t[65]=Fe);let Ie;t[66]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=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`,re.focusRingPanel),t[66]=Ie):Ie=t[66];let Le;t[67]===s.boardWorkflowFilterAll?Le=t[68]:(Le=(0,$.jsx)(Te,{value:``,children:s.boardWorkflowFilterAll}),t[67]=s.boardWorkflowFilterAll,t[68]=Le);let Re;t[69]===l?Re=t[70]:(Re=l.map(Vn),t[69]=l,t[70]=Re);let ze;t[71]!==s.boardWorkflowFilterAria||t[72]!==Fe||t[73]!==Le||t[74]!==Re||t[75]!==_?(ze=(0,$.jsxs)(ve,{value:_,"aria-label":Pe,onChange:Fe,className:Ie,children:[Le,Re]}),t[71]=s.boardWorkflowFilterAria,t[72]=Fe,t[73]=Le,t[74]=Re,t[75]=_,t[76]=ze):ze=t[76];let Be=le===`operations`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:text-fg`,Ve;t[77]===Be?Ve=t[78]:(Ve=i(`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium transition-colors`,Be),t[77]=Be,t[78]=Ve);let He,Ue;t[79]===Symbol.for(`react.memo_cache_sentinel`)?(He=()=>ue(`operations`),Ue=(0,$.jsx)(ke,{className:`size-3.5`,"aria-hidden":!0}),t[79]=He,t[80]=Ue):(He=t[79],Ue=t[80]);let We;t[81]!==s.viewModes.operations||t[82]!==Ve?(We=(0,$.jsxs)(`button`,{type:`button`,className:Ve,onClick:He,children:[Ue,s.viewModes.operations]}),t[81]=s.viewModes.operations,t[82]=Ve,t[83]=We):We=t[83];let Ge=le===`board`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:text-fg`,Ke;t[84]===Ge?Ke=t[85]:(Ke=i(`inline-flex h-8 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium transition-colors`,Ge),t[84]=Ge,t[85]=Ke);let qe,Je;t[86]===Symbol.for(`react.memo_cache_sentinel`)?(qe=()=>ue(`board`),Je=(0,$.jsx)(u,{className:`size-3.5`,"aria-hidden":!0}),t[86]=qe,t[87]=Je):(qe=t[86],Je=t[87]);let Ye;t[88]!==s.viewModes.board||t[89]!==Ke?(Ye=(0,$.jsxs)(`button`,{type:`button`,className:Ke,onClick:qe,children:[Je,s.viewModes.board]}),t[88]=s.viewModes.board,t[89]=Ke,t[90]=Ye):Ye=t[90];let Xe;t[91]!==We||t[92]!==Ye?(Xe=(0,$.jsxs)(`div`,{className:`flex rounded-lg border border-edge bg-surface-muted p-0.5`,children:[We,Ye]}),t[91]=We,t[92]=Ye,t[93]=Xe):Xe=t[93];let Ze;t[94]!==ye||t[95]!==be||t[96]!==Me||t[97]!==ze||t[98]!==Xe?(Ze=(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:[ye,be,Me,ze,Xe]}),t[94]=ye,t[95]=be,t[96]=Me,t[97]=ze,t[98]=Xe,t[99]=Ze):Ze=t[99];let Qe;t[100]===R?Qe=t[101]:(Qe=R?(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:R}):null,t[100]=R,t[101]=Qe);let $e;t[102]!==ne||t[103]!==H?($e=ne??H?(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:ne??H}):null,t[102]=ne,t[103]=H,t[104]=$e):$e=t[104];let et;t[105]!==r||t[106]!==U?(et=(0,$.jsx)(`div`,{className:`mx-auto w-full max-w-app-main`,children:(0,$.jsx)(Mn,{stats:U,language:r})}),t[105]=r,t[106]=U,t[107]=et):et=t[107];let tt;t[108]===T?tt=t[109]:(tt=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]=tt);let rt=le===`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:Fn.map(e=>{let t=fe.get(e)??[];return(0,$.jsxs)(`section`,{className:`rounded-lg border border-edge bg-surface-panel/60`,children:[(0,$.jsxs)(`header`,{className:`flex flex-wrap items-start justify-between gap-3 border-b border-edge-subtle px-4 py-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:s.operationSections[e].title}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:s.operationSections[e].description})]}),(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2.5 py-1 text-xs font-semibold tabular-nums text-fg-muted`,children:t.length})]}),(0,$.jsxs)(`div`,{className:`grid gap-2 p-2.5 md:grid-cols-2 xl:grid-cols-3`,children:[t.map(e=>(0,$.jsx)(pt,{run:e,language:r,localeTag:o,nowMs:de,selected:e.id===x,onOpen:E,onOpenChat:k,onCancel:e=>void G(e),onRetry:e=>void K(e)},e.id)),!V&&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)(vt,{runs:d,language:r,localeTag:o,labels:{boardEmptyTitle:s.boardEmptyTitle,boardEmptyHint:s.boardEmptyHint,boardStart:s.boardStart,loading:s.loading},searchQuery:f,workflowFilterId:_,triggerFilter:y,selectedRunId:x,loading:V,onOpenRun:E,onOpenRunChat:k,onCancelRun:e=>void G(e),onRetryRun:e=>void K(e),onStart:()=>A(!0)})}),it;t[110]!==Ze||t[111]!==Qe||t[112]!==$e||t[113]!==et||t[114]!==tt||t[115]!==rt?(it=(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:[Ze,Qe,$e,et,tt,rt]}),t[110]=Ze,t[111]=Qe,t[112]=$e,t[113]=et,t[114]=tt,t[115]=rt,t[116]=it):it=t[116];let at;if(t[117]!==l||t[118]!==S?.run){let e;t[120]===S?.run?e=t[121]:(e=e=>e.id===S?.run.definitionId,t[120]=S?.run,t[121]=e),at=l.find(e),t[117]=l,t[118]=S?.run,t[119]=at}else at=t[119];let ot=!!x&&w,st;t[122]!==G||t[123]!==x?(st=()=>{x&&G(x)},t[122]=G,t[123]=x,t[124]=st):st=t[124];let ct;t[125]!==K||t[126]!==x?(ct=()=>{x&&K(x)},t[125]=K,t[126]=x,t[127]=ct):ct=t[127];let lt;t[128]!==q||t[129]!==x?(lt=e=>{x&&q(x,e)},t[128]=q,t[129]=x,t[130]=lt):lt=t[130];let ut;t[131]!==D||t[132]!==r||t[133]!==o||t[134]!==O||t[135]!==m||t[136]!==C||t[137]!==S||t[138]!==at||t[139]!==ot||t[140]!==st||t[141]!==ct||t[142]!==lt?(ut=(0,$.jsx)(sn,{view:S,comparison:C,currentDefinition:at,loading:ot,language:r,localeTag:o,onCancel:st,onRetry:ct,onReplay:lt,onOpenRunId:O,ownerAgentId:m,onClose:D}),t[131]=D,t[132]=r,t[133]=o,t[134]=O,t[135]=m,t[136]=C,t[137]=S,t[138]=at,t[139]=ot,t[140]=st,t[141]=ct,t[142]=lt,t[143]=ut):ut=t[143];let dt;t[144]===A?dt=t[145]:(dt=()=>A(!1),t[144]=A,t[145]=dt);let ft;t[146]!==A||t[147]!==M?(ft=e=>{A(!1),M(e)},t[146]=A,t[147]=M,t[148]=ft):ft=t[148];let mt;t[149]!==P||t[150]!==A?(mt=e=>{A(!1),P(e)},t[149]=P,t[150]=A,t[151]=mt):mt=t[151];let ht;t[152]!==l||t[153]!==r||t[154]!==L||t[155]!==ee||t[156]!==dt||t[157]!==ft||t[158]!==mt?(ht=(0,$.jsx)(Qt,{open:ee,definitions:l,language:r,onClose:dt,onPick:ft,onDetail:mt,onEdit:L}),t[152]=l,t[153]=r,t[154]=L,t[155]=ee,t[156]=dt,t[157]=ft,t[158]=mt,t[159]=ht):ht=t[159];let gt=j!=null,_t;t[160]===M?_t=t[161]:(_t=()=>M(null),t[160]=M,t[161]=_t);let yt;t[162]===W?yt=t[163]:(yt=e=>void W(e),t[162]=W,t[163]=yt);let bt;t[164]!==r||t[165]!==j||t[166]!==z||t[167]!==gt||t[168]!==_t||t[169]!==yt?(bt=(0,$.jsx)(jn,{open:gt,definition:j,language:r,starting:z,onClose:_t,onStart:yt}),t[164]=r,t[165]=j,t[166]=z,t[167]=gt,t[168]=_t,t[169]=yt,t[170]=bt):bt=t[170];let xt=N!=null,St;t[171]===P?St=t[172]:(St=()=>P(null),t[171]=P,t[172]=St);let wt;t[173]!==N||t[174]!==P||t[175]!==M?(wt=()=>{N&&(P(null),M(N))},t[173]=N,t[174]=P,t[175]=M,t[176]=wt):wt=t[176];let Tt;t[177]!==N||t[178]!==r||t[179]!==xt||t[180]!==St||t[181]!==wt?(Tt=(0,$.jsx)(Vt,{open:xt,definition:N,language:r,onClose:St,onRun:wt}),t[177]=N,t[178]=r,t[179]=xt,t[180]=St,t[181]=wt,t[182]=Tt):Tt=t[182];let Et;t[183]===I?Et=t[184]:(Et=I?{mode:I.mode,name:I.initialName,script:I.initialScript,sourceTitle:I.definition.title}:null,t[183]=I,t[184]=Et);let Dt;t[185]===te?Dt=t[186]:(Dt=()=>te(!1),t[185]=te,t[186]=Dt);let Ot;t[187]===ie?Ot=t[188]:(Ot=e=>ie(e),t[187]=ie,t[188]=Ot);let kt;t[189]!==r||t[190]!==F||t[191]!==m||t[192]!==ae||t[193]!==B||t[194]!==Et||t[195]!==Dt||t[196]!==Ot?(kt=(0,$.jsx)(Ct,{open:F,language:r,ownerAgentId:m,saving:B,initialDraft:Et,onClose:Dt,onSave:Ot,onSaveAndStart:ae}),t[189]=r,t[190]=F,t[191]=m,t[192]=ae,t[193]=B,t[194]=Et,t[195]=Dt,t[196]=Ot,t[197]=kt):kt=t[197];let At;return t[198]!==it||t[199]!==ut||t[200]!==ht||t[201]!==bt||t[202]!==Tt||t[203]!==kt?(At=(0,$.jsxs)(`main`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden bg-surface-base`,children:[it,ut,ht,bt,Tt,kt]}),t[198]=it,t[199]=ut,t[200]=ht,t[201]=bt,t[202]=Tt,t[203]=kt,t[204]=At):At=t[204],At}function Vn(e){return(0,$.jsx)(Te,{value:e.id,children:e.title},e.id)}function Hn(e){return e.clearPageHeader}function Un(e){return e.setPageHeader}function Wn(){let e=o(e=>e.language),t=a(e).workflows,n=e===`zh`?`zh-CN`:`en-US`,r=s(e=>e.token),i=!!r,u=ue(),[d,f]=Ve(),p=d.get(`q`)??``,m=d.get(`wf`)?.trim()??``,h=d.get(`trigger`)?.trim()||`all`,g=d.get(`run`)?.trim()??``,_=d.get(`agent`)?.trim()??``,[y,b]=(0,Z.useState)(null),[x,S]=(0,Z.useState)(!1),[C,w]=(0,Z.useState)(null),[T,O]=(0,Z.useState)(!1),[ee,A]=(0,Z.useState)(null),[M,F]=(0,Z.useState)(null),[te,I]=(0,Z.useState)(null),[ne,R]=(0,Z.useState)(!1),[z,re]=(0,Z.useState)(!1),B=c(i?[`workflow-agents`,r]:null,E,{revalidateOnFocus:!1}),V=(0,Z.useMemo)(()=>{let e=B.data?.agents??[];return _&&e.some(e=>e.id===_)||_&&e.length===0?_:B.data?.defaultId??(_||void 0)},[B.data,_]),H=c(i?[`workflow-definitions`,r]:null,se,{revalidateOnFocus:!1}),U=c(i&&V?[`workflow-runs`,r,V]:null,()=>L(100,{ownerAgentId:V}),{revalidateOnFocus:!1,refreshInterval:e=>e?.length&&e.some(e=>e.status===`queued`||e.status===`running`)?3e3:0}),W=c(i&&V?[`workflow-stats`,r,V,m]:null,()=>ae(m,{ownerAgentId:V}),{revalidateOnFocus:!1});(0,Z.useEffect)(()=>{if(!te)return;let e=window.setTimeout(()=>I(null),4e3);return()=>window.clearTimeout(e)},[te]);let G=H.data??[],q=B.data?.agents??[],ie=U.data??[],oe=g||null,ce=Ae(oe,{ownerAgentId:V}),le=c(i&&V&&oe&&ce.view?.run.metadata?.replay?[`workflow-run-comparison`,r,V,oe]:null,()=>D(oe,{ownerAgentId:V}),{revalidateOnFocus:!1}),de=(0,Z.useMemo)(()=>he(G,p,`all`,`all`),[G,p]),fe=(0,Z.useCallback)(e=>{e&&A(null),O(e)},[]),pe=(0,Z.useCallback)(e=>{let t=new Set(G.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()}`},[G]),ge=(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:pe(e);F(null),S(!1),A({mode:i,definition:e,initialName:a,initialScript:i===`copy`?Gn(r,a):r}),O(!0)},[pe,t.editWorkflowSourceMissing]),Y=(0,Z.useCallback)(e=>{f(t=>{let n=new URLSearchParams(t);return e(n,t),n},{replace:!0})},[f]);(0,Z.useEffect)(()=>{let e=B.data?.agents??[];!_||e.length===0||e.some(e=>e.id===_)||Y(e=>{B.data?.defaultId?e.set(P,B.data.defaultId):e.delete(P),e.delete(`run`)})},[B.data,_,Y]);let _e=(0,Z.useCallback)(e=>{Y(t=>{let n=e.trim();n?t.set(`q`,n):t.delete(`q`)})},[Y]),ve=(0,Z.useCallback)(e=>{Y(t=>{let n=e.trim();n?t.set(P,n):t.delete(P),t.delete(`run`)})},[Y]),ye=(0,Z.useCallback)(e=>{Y(t=>{let n=e.trim();n?t.set(`wf`,n):t.delete(`wf`)})},[Y]),be=(0,Z.useCallback)(e=>{Y(t=>{let n=e.trim();n&&n!==`all`?t.set(N,n):t.delete(N)})},[Y]),Se=(0,Z.useCallback)(e=>{Y(t=>{V&&t.set(P,V),t.set(`run`,e.id)})},[V,Y]),Ce=(0,Z.useCallback)(()=>{Y(e=>{e.delete(`run`)})},[Y]),we=(0,Z.useCallback)(e=>{Y(t=>{V&&t.set(P,V),t.set(`run`,e)})},[V,Y]),Te=(0,Z.useCallback)(e=>{let t=Ye(e);t&&u(v(t))},[u]);(0,Z.useEffect)(()=>{d.get(`tab`)&&Y(e=>{e.delete(`tab`)})},[Y,d]),(0,Z.useEffect)(()=>{let e=d.get(`def`),t=d.get(j)===`1`,n=d.get(xe)===`1`;if(!e||!G.length)return;let r=G.find(t=>t.id===e||t.name===e);r&&(n?ge(r,`copy`):t?b(r):w(r),Y(e=>{e.delete(`def`),e.delete(j),e.delete(xe)}))},[G,ge,Y,d]),(0,Z.useEffect)(()=>{let e=()=>{U.mutate(),W.mutate()};return window.addEventListener(`workflow-event-appended`,e),window.addEventListener(`workflow-run-updated`,e),window.addEventListener(`workflow-run-error`,e),()=>{window.removeEventListener(`workflow-event-appended`,e),window.removeEventListener(`workflow-run-updated`,e),window.removeEventListener(`workflow-run-error`,e)}},[U,W]);let Ee=(0,Z.useCallback)(()=>{B.mutate(),H.mutate(),U.mutate(),W.mutate()},[B,H,U,W]),X=(0,Z.useCallback)(async e=>{if(y){R(!0),F(null);try{let n=await je({definitionId:y.id,goal:e.goal,input:e.input,agentId:V,concurrency:e.concurrency,maxSubagents:e.maxSubagents});b(null),await U.mutate(),await W.mutate(),I(t.startSuccess),Y(e=>{V&&e.set(P,V),e.set(`run`,n.runId)})}catch(e){F(e instanceof Error?e.message:t.startFailed)}finally{R(!1)}}},[t.startFailed,t.startSuccess,V,Y,U,y,W]),De=(0,Z.useCallback)(async e=>{try{await K(e,{ownerAgentId:V}),await U.mutate(),await W.mutate()}catch(e){let n=e instanceof Error?e.message:t.cancelFailed;if(/not active|already finished/i.test(n)){await U.mutate(),await W.mutate();return}F(n)}},[t.cancelFailed,V,U,W]),Oe=(0,Z.useCallback)(async e=>{try{let t=await me(e,{ownerAgentId:V});await U.mutate(),await W.mutate(),Y(e=>{V&&e.set(P,V),e.set(`run`,t.runId)})}catch(e){F(e instanceof Error?e.message:t.retryFailed)}},[t.retryFailed,V,Y,U,W]),ke=(0,Z.useCallback)(async(e,n)=>{try{let t=await l(e,n,{ownerAgentId:V});await U.mutate(),await W.mutate(),Y(e=>{V&&e.set(P,V),e.set(`run`,t.runId)})}catch(e){F(e instanceof Error?e.message:t.retryFailed)}},[t.retryFailed,V,Y,U,W]),Ne=(0,Z.useCallback)(async e=>{re(!0),F(null);try{let n=await Me(e.name,e.script);return O(!1),A(null),await H.mutate(),I(t.saveWorkflowSuccess),n}catch(e){F(e instanceof Error?e.message:t.saveWorkflowFailed)}finally{re(!1)}},[H,t.saveWorkflowFailed,t.saveWorkflowSuccess]),Pe=(0,Z.useCallback)(async e=>{re(!0),F(null);try{let n=await Me(e.name,e.script);await H.mutate();let r=await je({definitionId:n.id,goal:e.goal,input:{goal:e.goal},agentId:V});O(!1),A(null),await U.mutate(),await W.mutate(),I(t.startSuccess),Y(e=>{V&&e.set(P,V),e.set(`run`,r.runId)})}catch(e){F(e instanceof Error?e.message:t.startFailed)}finally{re(!1)}},[H,t.startFailed,t.startSuccess,V,Y,U,W]),Fe=(0,Z.useCallback)(async e=>{if(e.metadata.source===`user`&&window.confirm(J(t.deleteConfirm,{name:e.name}))){F(null);try{await k(e.id),await H.mutate(),I(t.deleteWorkflowSuccess)}catch(e){F(e instanceof Error?e.message:t.deleteWorkflowFailed)}}},[H,t]),Ie=B.isLoading||H.isLoading||U.isLoading,Le=B.error?.message??H.error?.message??U.error?.message??null;return{language:e,localeTag:n,labels:t,hasToken:i,searchQuery:p,setSearchQuery:_e,ownerAgentId:V,agentOptions:q,setOwnerAgentId:ve,workflowFilterId:m,setWorkflowFilterId:ye,triggerFilter:h,setTriggerFilter:be,definitions:G,filteredDefinitions:de,runs:ie,selectedRunId:oe,selectedRunView:ce.view,selectedRunComparison:le.data,selectedRunLoading:ce.loading,selectedRunError:ce.error?.message??le.error?.message??null,openRunDetails:Se,closeRunDetails:Ce,openRunDetailsById:we,openRunInChat:Te,pickStartOpen:x,setPickStartOpen:S,startDefinition:y,setStartDefinition:b,detailDefinition:C,setDetailDefinition:w,manageOpen:T,setManageOpen:fe,workflowEditorDraft:ee,openWorkflowEditor:ge,actionError:M,actionFeedback:te,starting:ne,savingWorkflow:z,loading:Ie,error:Le,stats:W.data,refreshAll:Ee,submitStart:X,cancelRun:De,retryRun:Oe,replayRun:ke,saveCustomWorkflow:Ne,saveDraftAndStart:Pe,removeCustomWorkflow:Fe}}function Gn(e,t){return e.replace(/(name\s*:\s*['"`])([^'"`]+)(['"`])/,(e,n,r,i)=>`${n}${t}${i}`)}function Kn(){let e=(0,Q.c)(2),t=Wn(),n;return e[0]===t?n=e[1]:(n=(0,$.jsx)(Bn,{vm:t}),e[0]=t,e[1]=n),n}export{Kn as WorkflowsPage};
|
|
@@ -10,24 +10,23 @@
|
|
|
10
10
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.pngv=20260623-2" />
|
|
11
11
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=20260623-2" />
|
|
12
12
|
<title>xopc</title>
|
|
13
|
-
<script type="module" crossorigin src="/assets/index-
|
|
13
|
+
<script type="module" crossorigin src="/assets/index-BU1pvxmS.js"></script>
|
|
14
14
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-zJ_50EbN.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-BOUWij0V.js">
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
18
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
19
|
-
<link rel="modulepreload" crossorigin href="/assets/dist-CkobR7mk.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/Combination-HAlzriaz.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/dist-Mys7eFJ5.js">
|
|
20
19
|
<link rel="modulepreload" crossorigin href="/assets/cn-BQ_8x0bT.js">
|
|
21
20
|
<link rel="modulepreload" crossorigin href="/assets/vendor-swr-BIWyz7Rc.js">
|
|
22
21
|
<link rel="modulepreload" crossorigin href="/assets/middleware-Pd0e8Igk.js">
|
|
23
|
-
<link rel="modulepreload" crossorigin href="/assets/locale-store-
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/locale-store-Ba72bFmP.js">
|
|
24
23
|
<link rel="modulepreload" crossorigin href="/assets/config-reload-event-Bjh2zoKp.js">
|
|
25
|
-
<link rel="modulepreload" crossorigin href="/assets/messages-
|
|
26
|
-
<link rel="modulepreload" crossorigin href="/assets/fetch-
|
|
27
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-
|
|
24
|
+
<link rel="modulepreload" crossorigin href="/assets/messages-C6Kc4Jhf.js">
|
|
25
|
+
<link rel="modulepreload" crossorigin href="/assets/fetch-Cs4ck8zA.js">
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-IvePwjFE.js">
|
|
28
27
|
<link rel="modulepreload" crossorigin href="/assets/toast-z0toXu32.js">
|
|
29
|
-
<link rel="modulepreload" crossorigin href="/assets/theme-store-
|
|
30
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
28
|
+
<link rel="modulepreload" crossorigin href="/assets/theme-store-Bt6vAkSB.js">
|
|
29
|
+
<link rel="stylesheet" crossorigin href="/assets/index-l54WfSqe.css">
|
|
31
30
|
</head>
|
|
32
31
|
<body>
|
|
33
32
|
<div id="root"></div>
|
package/dist/package.js
CHANGED
|
@@ -21,8 +21,9 @@ Do not manually reread startup files unless:
|
|
|
21
21
|
|
|
22
22
|
## Memory
|
|
23
23
|
|
|
24
|
-
- Use
|
|
25
|
-
- Use
|
|
24
|
+
- Use runtime memory tools for recall.
|
|
25
|
+
- Use curated memory for durable facts and preferences when available.
|
|
26
|
+
- Cite only memory sources that a tool actually returns.
|
|
26
27
|
- Keep memory concise, factual, and useful.
|
|
27
28
|
- Do not store secrets unless the user explicitly asks and the storage location is appropriate.
|
|
28
29
|
|
|
@@ -6,14 +6,10 @@ import { AuthStorage } from '@earendil-works/pi-coding-agent';
|
|
|
6
6
|
export declare function resolveXopcProviderApiKey(providerId: string): string | undefined;
|
|
7
7
|
/**
|
|
8
8
|
* pi-coding-agent {@link createAgentSession} defaults to `~/.pi/agent/auth.json` and env.
|
|
9
|
-
* Gateway / webchat turns
|
|
9
|
+
* Gateway / webchat turns inject xopc credentials through {@link applyXopcProviderApiKey}.
|
|
10
10
|
*/
|
|
11
11
|
export declare function createEmbeddedAuthStorage(): AuthStorage;
|
|
12
12
|
/**
|
|
13
|
-
* pi-coding-agent's {@link ModelRegistry.getApiKeyAndHeaders} reads the auth storage with
|
|
14
|
-
* `includeFallback: false`, so {@link createEmbeddedAuthStorage}'s fallback resolver alone
|
|
15
|
-
* never fires for xopc-managed providers (e.g. `local-qwen` in xopc's `models.json`).
|
|
16
|
-
*
|
|
17
13
|
* Inject the resolved key as a runtime override (highest-priority, in-memory only) before
|
|
18
14
|
* the session starts so request-time auth resolution finds it.
|
|
19
15
|
*/
|
|
@@ -13,18 +13,12 @@ function resolveXopcProviderApiKey(providerId) {
|
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* pi-coding-agent {@link createAgentSession} defaults to `~/.pi/agent/auth.json` and env.
|
|
16
|
-
* Gateway / webchat turns
|
|
16
|
+
* Gateway / webchat turns inject xopc credentials through {@link applyXopcProviderApiKey}.
|
|
17
17
|
*/
|
|
18
18
|
function createEmbeddedAuthStorage() {
|
|
19
|
-
|
|
20
|
-
auth.setFallbackResolver(resolveXopcProviderApiKey);
|
|
21
|
-
return auth;
|
|
19
|
+
return AuthStorage.create();
|
|
22
20
|
}
|
|
23
21
|
/**
|
|
24
|
-
* pi-coding-agent's {@link ModelRegistry.getApiKeyAndHeaders} reads the auth storage with
|
|
25
|
-
* `includeFallback: false`, so {@link createEmbeddedAuthStorage}'s fallback resolver alone
|
|
26
|
-
* never fires for xopc-managed providers (e.g. `local-qwen` in xopc's `models.json`).
|
|
27
|
-
*
|
|
28
22
|
* Inject the resolved key as a runtime override (highest-priority, in-memory only) before
|
|
29
23
|
* the session starts so request-time auth resolution finds it.
|
|
30
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xopc-auth-storage.js","names":[],"sources":["../../../../src/agent/embedded/xopc-auth-storage.ts"],"sourcesContent":["import { AuthStorage } from '@earendil-works/pi-coding-agent';\n\nimport { resolveProviderApiKeySync } from '../../auth/sync-provider-auth.js';\nimport { getApiKeySync } from '../../providers/index.js';\n\n/**\n * Resolve API keys the same way as {@link AgentManager} / gateway settings:\n * auth-profiles (agent + global), OAuth files, models.json, then env.\n */\nexport function resolveXopcProviderApiKey(providerId: string): string | undefined {\n return resolveProviderApiKeySync(providerId) ?? getApiKeySync(providerId);\n}\n\n/**\n * pi-coding-agent {@link createAgentSession} defaults to `~/.pi/agent/auth.json` and env.\n * Gateway / webchat turns
|
|
1
|
+
{"version":3,"file":"xopc-auth-storage.js","names":[],"sources":["../../../../src/agent/embedded/xopc-auth-storage.ts"],"sourcesContent":["import { AuthStorage } from '@earendil-works/pi-coding-agent';\n\nimport { resolveProviderApiKeySync } from '../../auth/sync-provider-auth.js';\nimport { getApiKeySync } from '../../providers/index.js';\n\n/**\n * Resolve API keys the same way as {@link AgentManager} / gateway settings:\n * auth-profiles (agent + global), OAuth files, models.json, then env.\n */\nexport function resolveXopcProviderApiKey(providerId: string): string | undefined {\n return resolveProviderApiKeySync(providerId) ?? getApiKeySync(providerId);\n}\n\n/**\n * pi-coding-agent {@link createAgentSession} defaults to `~/.pi/agent/auth.json` and env.\n * Gateway / webchat turns inject xopc credentials through {@link applyXopcProviderApiKey}.\n */\nexport function createEmbeddedAuthStorage(): AuthStorage {\n return AuthStorage.create();\n}\n\n/**\n * Inject the resolved key as a runtime override (highest-priority, in-memory only) before\n * the session starts so request-time auth resolution finds it.\n */\nexport function applyXopcProviderApiKey(auth: AuthStorage, providerId: string): void {\n const key = resolveXopcProviderApiKey(providerId);\n if (key && key !== 'extension-managed') {\n auth.setRuntimeApiKey(providerId, key);\n }\n}\n"],"mappings":";;;;yBAE6E;gBACpB;;;;;AAMzD,SAAgB,0BAA0B,YAAwC;AAChF,QAAO,0BAA0B,WAAW,IAAI,cAAc,WAAW;;;;;;AAO3E,SAAgB,4BAAyC;AACvD,QAAO,YAAY,QAAQ;;;;;;AAO7B,SAAgB,wBAAwB,MAAmB,YAA0B;CACnF,MAAM,MAAM,0BAA0B,WAAW;AACjD,KAAI,OAAO,QAAQ,oBACjB,MAAK,iBAAiB,YAAY,IAAI"}
|
|
@@ -1,11 +1,34 @@
|
|
|
1
1
|
//#region src/agent/embedded/xopc-tools-bridge.ts
|
|
2
|
+
const TOOL_PROMPT_HINTS = {
|
|
3
|
+
read_file: {
|
|
4
|
+
promptSnippet: "Read targeted file contents",
|
|
5
|
+
promptGuidelines: ["Use read_file to inspect source files before editing."]
|
|
6
|
+
},
|
|
7
|
+
edit_file: {
|
|
8
|
+
promptSnippet: "Make precise, minimal edits to existing files",
|
|
9
|
+
promptGuidelines: ["Use edit_file for small source changes instead of rewriting whole files."]
|
|
10
|
+
},
|
|
11
|
+
write_file: {
|
|
12
|
+
promptSnippet: "Create new files or intentional complete rewrites",
|
|
13
|
+
promptGuidelines: ["Use write_file only for new files or deliberate full-file rewrites."]
|
|
14
|
+
},
|
|
15
|
+
shell: {
|
|
16
|
+
promptSnippet: "Run tests, type checks, builds, package scripts, and safe inspection commands",
|
|
17
|
+
promptGuidelines: ["Use shell for verification and safe inspection, not routine file editing."]
|
|
18
|
+
},
|
|
19
|
+
grep: { promptSnippet: "Search file contents for literals, errors, config values, and docs" },
|
|
20
|
+
find: { promptSnippet: "Find files by glob pattern" }
|
|
21
|
+
};
|
|
2
22
|
/** Map xopc {@link AgentTool} instances to pi-coding-agent {@link ToolDefinition}s for `createAgentSession`. */
|
|
3
23
|
function xopcToolsToDefinitions(tools) {
|
|
4
24
|
return tools.map((tool) => {
|
|
25
|
+
const promptHints = TOOL_PROMPT_HINTS[tool.name];
|
|
5
26
|
return {
|
|
6
27
|
name: tool.name,
|
|
7
28
|
label: tool.label ?? tool.name,
|
|
8
29
|
description: tool.description ?? tool.name,
|
|
30
|
+
...promptHints?.promptSnippet ? { promptSnippet: promptHints.promptSnippet } : {},
|
|
31
|
+
...promptHints?.promptGuidelines ? { promptGuidelines: promptHints.promptGuidelines } : {},
|
|
9
32
|
parameters: tool.parameters,
|
|
10
33
|
async execute(toolCallId, params, signal, onUpdate) {
|
|
11
34
|
return tool.execute(toolCallId, params, signal, onUpdate);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xopc-tools-bridge.js","names":[],"sources":["../../../../src/agent/embedded/xopc-tools-bridge.ts"],"sourcesContent":["import type { AgentTool } from '@earendil-works/pi-agent-core';\nimport type { ToolDefinition } from '@earendil-works/pi-coding-agent';\n\n/** Map xopc {@link AgentTool} instances to pi-coding-agent {@link ToolDefinition}s for `createAgentSession`. */\nexport function xopcToolsToDefinitions(tools: AgentTool[]): ToolDefinition[] {\n return tools.map((tool) => {\n const def = {\n name: tool.name,\n label: tool.label ?? tool.name,\n description: tool.description ?? tool.name,\n parameters: tool.parameters,\n async execute(\n toolCallId: string,\n params: unknown,\n signal: AbortSignal | undefined,\n onUpdate: unknown,\n ) {\n return (tool as { execute: (...a: never[]) => unknown }).execute(\n toolCallId as never,\n params as never,\n signal as never,\n onUpdate as never,\n ) as never;\n },\n };\n return def as unknown as ToolDefinition;\n });\n}\n"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"xopc-tools-bridge.js","names":[],"sources":["../../../../src/agent/embedded/xopc-tools-bridge.ts"],"sourcesContent":["import type { AgentTool } from '@earendil-works/pi-agent-core';\nimport type { ToolDefinition } from '@earendil-works/pi-coding-agent';\n\nconst TOOL_PROMPT_HINTS: Record<string, { promptSnippet?: string; promptGuidelines?: string[] }> = {\n read_file: {\n promptSnippet: 'Read targeted file contents',\n promptGuidelines: ['Use read_file to inspect source files before editing.'],\n },\n edit_file: {\n promptSnippet: 'Make precise, minimal edits to existing files',\n promptGuidelines: ['Use edit_file for small source changes instead of rewriting whole files.'],\n },\n write_file: {\n promptSnippet: 'Create new files or intentional complete rewrites',\n promptGuidelines: ['Use write_file only for new files or deliberate full-file rewrites.'],\n },\n shell: {\n promptSnippet: 'Run tests, type checks, builds, package scripts, and safe inspection commands',\n promptGuidelines: ['Use shell for verification and safe inspection, not routine file editing.'],\n },\n grep: {\n promptSnippet: 'Search file contents for literals, errors, config values, and docs',\n },\n find: {\n promptSnippet: 'Find files by glob pattern',\n },\n};\n\n/** Map xopc {@link AgentTool} instances to pi-coding-agent {@link ToolDefinition}s for `createAgentSession`. */\nexport function xopcToolsToDefinitions(tools: AgentTool[]): ToolDefinition[] {\n return tools.map((tool) => {\n const promptHints = TOOL_PROMPT_HINTS[tool.name];\n const def = {\n name: tool.name,\n label: tool.label ?? tool.name,\n description: tool.description ?? tool.name,\n ...(promptHints?.promptSnippet ? { promptSnippet: promptHints.promptSnippet } : {}),\n ...(promptHints?.promptGuidelines ? { promptGuidelines: promptHints.promptGuidelines } : {}),\n parameters: tool.parameters,\n async execute(\n toolCallId: string,\n params: unknown,\n signal: AbortSignal | undefined,\n onUpdate: unknown,\n ) {\n return (tool as { execute: (...a: never[]) => unknown }).execute(\n toolCallId as never,\n params as never,\n signal as never,\n onUpdate as never,\n ) as never;\n },\n };\n return def as unknown as ToolDefinition;\n });\n}\n"],"mappings":";AAGA,MAAM,oBAA6F;CACjG,WAAW;EACT,eAAe;EACf,kBAAkB,CAAC,wDAAwD;EAC5E;CACD,WAAW;EACT,eAAe;EACf,kBAAkB,CAAC,2EAA2E;EAC/F;CACD,YAAY;EACV,eAAe;EACf,kBAAkB,CAAC,sEAAsE;EAC1F;CACD,OAAO;EACL,eAAe;EACf,kBAAkB,CAAC,4EAA4E;EAChG;CACD,MAAM,EACJ,eAAe,sEAChB;CACD,MAAM,EACJ,eAAe,8BAChB;CACF;;AAGD,SAAgB,uBAAuB,OAAsC;AAC3E,QAAO,MAAM,KAAK,SAAS;EACzB,MAAM,cAAc,kBAAkB,KAAK;AAsB3C,SAAO;GApBL,MAAM,KAAK;GACX,OAAO,KAAK,SAAS,KAAK;GAC1B,aAAa,KAAK,eAAe,KAAK;GACtC,GAAI,aAAa,gBAAgB,EAAE,eAAe,YAAY,eAAe,GAAG,EAAE;GAClF,GAAI,aAAa,mBAAmB,EAAE,kBAAkB,YAAY,kBAAkB,GAAG,EAAE;GAC3F,YAAY,KAAK;GACjB,MAAM,QACJ,YACA,QACA,QACA,UACA;AACA,WAAQ,KAAiD,QACvD,YACA,QACA,QACA,SACD;;GAGK;GACV"}
|
|
@@ -2,7 +2,7 @@ import { init_providers, resolveModel } from "../../providers/index.js";
|
|
|
2
2
|
import { JUDGE_REASON_EN } from "../../i18n/goals-bundle.js";
|
|
3
3
|
import { goalUiLocaleOrFallback, judgeReasonText, judgeResponseLanguageNote, localizeJudgeReasonText } from "./goal-locale.js";
|
|
4
4
|
import { DEFAULT_JUDGE_TIMEOUT_MS, extractAssistantText, getAssistantMessageErrorReason, resolveGoalJudgeApiKey, stripCodeFences, truncateGoalText } from "./judge.js";
|
|
5
|
-
import { complete } from "@earendil-works/pi-ai";
|
|
5
|
+
import { complete } from "@earendil-works/pi-ai/compat";
|
|
6
6
|
//#region src/agent/goals/checklist-judge.ts
|
|
7
7
|
init_providers();
|
|
8
8
|
const GOAL_TRUNC = 4e3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checklist-judge.js","names":[],"sources":["../../../../src/agent/goals/checklist-judge.ts"],"sourcesContent":["import type { UserMessage } from '@earendil-works/pi-ai';\nimport { complete } from '@earendil-works/pi-ai';\n\nimport { resolveModel } from '../../providers/index.js';\n\nimport {\n DEFAULT_JUDGE_TIMEOUT_MS,\n extractAssistantText,\n getAssistantMessageErrorReason,\n resolveGoalJudgeApiKey,\n stripCodeFences,\n truncateGoalText,\n} from './judge.js';\nimport type { GoalUiLocale } from './goal-locale.js';\nimport {\n goalUiLocaleOrFallback,\n judgeReasonText,\n judgeResponseLanguageNote,\n JUDGE_REASON_EN,\n localizeJudgeReasonText,\n} from './goal-locale.js';\n\nconst GOAL_TRUNC = 4000;\nconst RESPONSE_SNIPPET = 4000;\nconst HISTORY_TRUNC = 24_000;\n\nconst DECOMPOSE_SYSTEM = (\n 'You break a user goal into an EXTREMELY detailed checklist of concrete, verifiable completion criteria. ' +\n 'Bias toward more items. Each item is one factual statement about finished work.\\n\\n' +\n 'If existing acceptance criteria are provided, return only missing supplemental criteria. ' +\n 'Do not repeat, rewrite, or replace existing criteria.\\n\\n' +\n 'Reply ONLY with a single JSON object on one line:\\n' +\n '{\"items\":[{\"text\":\"...\"},...]}\\n' +\n 'Use at least 3 items when the goal warrants it.'\n);\n\nconst DECOMPOSE_USER = 'Goal:\\n{goal}\\n\\nReturn JSON only.';\n\nconst EVALUATE_CHECKLIST_SYSTEM = (\n 'You evaluate an autonomous agent\\'s progress on a goal with a numbered checklist.\\n' +\n 'For each pending item, decide if evidence in the agent snippet and/or history excerpt shows it is satisfied.\\n' +\n 'Flip pending→completed only with clear evidence; pending→impossible only if truly unachievable here.\\n' +\n 'Do not regress completed/impossible items — omit them from updates.\\n\\n' +\n 'Reply ONLY with one JSON object on one line:\\n' +\n '{\"verdict\":\"continue|done|blocked|needs_input\",\"confidence\":0.0,\"reason\":\"...\",' +\n '\"nextAction\":\"...\",\"missingEvidence\":[\"...\"],\"userQuestion\":\"...\",' +\n '\"updates\":[{\"index\":1,\"status\":\"completed|impossible\",\"evidence\":\"short citation\"}],' +\n '\"new_items\":[{\"text\":\"...\"}]}\\n' +\n 'Use verdict=done only when all checklist criteria are complete/impossible. ' +\n 'Use needs_input when the next step requires user input. Use blocked when external progress is impossible.'\n);\n\nfunction extractJsonObject(raw: string): Record<string, unknown> | null {\n if (!raw?.trim()) return null;\n const text = stripCodeFences(raw);\n try {\n const data = JSON.parse(text) as unknown;\n return data && typeof data === 'object' && !Array.isArray(data) ? (data as Record<string, unknown>) : null;\n } catch {\n const start = text.indexOf('{');\n const end = text.lastIndexOf('}');\n if (start === -1 || end <= start) return null;\n try {\n const data = JSON.parse(text.slice(start, end + 1)) as unknown;\n return data && typeof data === 'object' && !Array.isArray(data) ? (data as Record<string, unknown>) : null;\n } catch {\n return null;\n }\n }\n}\n\nexport type DecomposeChecklistResult = {\n items: { text: string }[];\n parseFailed: boolean;\n errorReason?: string;\n};\n\nexport async function decomposeGoalChecklist(opts: {\n goal: string;\n existingChecklist?: string;\n judgeModelRef: string;\n signal?: AbortSignal;\n judgeTimeoutMs?: number;\n uiLocale?: GoalUiLocale;\n}): Promise<DecomposeChecklistResult> {\n const locale = goalUiLocaleOrFallback(opts.uiLocale);\n const goal = opts.goal.trim();\n if (!goal)\n return { items: [], parseFailed: false, errorReason: judgeReasonText('empty_goal', locale) };\n\n let model: ReturnType<typeof resolveModel>;\n try {\n model = resolveModel(opts.judgeModelRef);\n } catch {\n return {\n items: [],\n parseFailed: false,\n errorReason: judgeReasonText('judge_model_not_configured', locale),\n };\n }\n\n const timeoutMs =\n typeof opts.judgeTimeoutMs === 'number' && Number.isFinite(opts.judgeTimeoutMs)\n ? Math.max(5_000, Math.min(120_000, Math.floor(opts.judgeTimeoutMs)))\n : DEFAULT_JUDGE_TIMEOUT_MS;\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n const merged = opts.signal ? AbortSignal.any([opts.signal, controller.signal]) : controller.signal;\n\n try {\n const existingChecklist = opts.existingChecklist?.trim();\n const decomposeUser = DECOMPOSE_USER.replace('{goal}', truncateGoalText(goal, GOAL_TRUNC)) +\n (existingChecklist\n ? `\\n\\nExisting acceptance criteria:\\n${truncateGoalText(existingChecklist, GOAL_TRUNC)}\\n\\nReturn only missing supplemental criteria as JSON.`\n : '');\n const user: UserMessage = {\n role: 'user',\n content:\n `${DECOMPOSE_SYSTEM}\\n\\n${decomposeUser}` +\n judgeResponseLanguageNote(locale),\n timestamp: Date.now(),\n };\n const apiKey = await resolveGoalJudgeApiKey(model);\n const result = await complete(\n model,\n { messages: [user] },\n { apiKey, maxTokens: 2000, temperature: 0, signal: merged },\n );\n const errorReason = getAssistantMessageErrorReason(result);\n if (errorReason) {\n return {\n items: [],\n parseFailed: false,\n errorReason: judgeReasonText('decompose_call_failed', locale),\n };\n }\n\n const text = extractAssistantText(result.content);\n const data = extractJsonObject(text);\n if (!data)\n return {\n items: [],\n parseFailed: true,\n errorReason: judgeReasonText('decompose_reply_not_json', locale),\n };\n const rawItems = data.items ?? data.checklist;\n if (!Array.isArray(rawItems))\n return {\n items: [],\n parseFailed: true,\n errorReason: judgeReasonText('missing_items_array', locale),\n };\n const items: { text: string }[] = [];\n for (const row of rawItems) {\n if (typeof row === 'string') {\n const t = row.trim();\n if (t) items.push({ text: t });\n } else if (row && typeof row === 'object' && !Array.isArray(row)) {\n const t = String((row as { text?: string }).text ?? '').trim();\n if (t) items.push({ text: t });\n }\n }\n if (!items.length)\n return { items: [], parseFailed: true, errorReason: judgeReasonText('empty_checklist', locale) };\n return { items, parseFailed: false };\n } catch {\n return {\n items: [],\n parseFailed: false,\n errorReason: judgeReasonText('decompose_call_failed', locale),\n };\n } finally {\n clearTimeout(timer);\n }\n}\n\nexport type ChecklistJudgeUpdate = {\n index: number;\n status: 'completed' | 'impossible';\n evidence?: string | null;\n};\n\nexport type ChecklistEvaluateParsed = {\n verdict: 'continue' | 'done' | 'blocked' | 'needs_input';\n confidence: number;\n updates: ChecklistJudgeUpdate[];\n newItems: { text: string }[];\n reason: string;\n nextAction?: string;\n missingEvidence?: string[];\n userQuestion?: string;\n};\n\nexport type EvaluateChecklistResult = {\n parsed: ChecklistEvaluateParsed;\n parseFailed: boolean;\n};\n\nexport async function evaluateGoalChecklistJudge(opts: {\n goal: string;\n numberedChecklist: string;\n lastResponse: string;\n historyExcerpt: string;\n goalContextExcerpt?: string;\n judgeModelRef: string;\n signal?: AbortSignal;\n judgeTimeoutMs?: number;\n uiLocale?: GoalUiLocale;\n}): Promise<EvaluateChecklistResult> {\n const locale = goalUiLocaleOrFallback(opts.uiLocale);\n let model: ReturnType<typeof resolveModel>;\n try {\n model = resolveModel(opts.judgeModelRef);\n } catch {\n return {\n parsed: {\n verdict: 'continue',\n confidence: 0,\n updates: [],\n newItems: [],\n reason: judgeReasonText('judge_model_not_configured', locale),\n },\n parseFailed: false,\n };\n }\n\n const userBody =\n `Goal:\\n${truncateGoalText(opts.goal, 2000)}\\n\\n` +\n `Current checklist (1-based indices):\\n${opts.numberedChecklist}\\n\\n` +\n `Original goal context and attachments:\\n${truncateGoalText(opts.goalContextExcerpt ?? '', 4000) || '(none)'}\\n\\n` +\n `Agent's most recent response (snippet):\\n${truncateGoalText(opts.lastResponse, RESPONSE_SNIPPET)}\\n\\n` +\n `Recent conversation excerpt (JSON or text, may be truncated):\\n` +\n `${truncateGoalText(opts.historyExcerpt, HISTORY_TRUNC) || '(none)'}`;\n\n const timeoutMs =\n typeof opts.judgeTimeoutMs === 'number' && Number.isFinite(opts.judgeTimeoutMs)\n ? Math.max(5_000, Math.min(120_000, Math.floor(opts.judgeTimeoutMs)))\n : DEFAULT_JUDGE_TIMEOUT_MS;\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n const merged = opts.signal ? AbortSignal.any([opts.signal, controller.signal]) : controller.signal;\n\n try {\n const user: UserMessage = {\n role: 'user',\n content: `${EVALUATE_CHECKLIST_SYSTEM}\\n\\n${userBody}` + judgeResponseLanguageNote(locale),\n timestamp: Date.now(),\n };\n const apiKey = await resolveGoalJudgeApiKey(model);\n const result = await complete(\n model,\n { messages: [user] },\n { apiKey, maxTokens: 1500, temperature: 0, signal: merged },\n );\n const errorReason = getAssistantMessageErrorReason(result);\n if (errorReason) {\n return {\n parsed: {\n verdict: 'continue',\n confidence: 0,\n updates: [],\n newItems: [],\n reason: judgeReasonText('judge_call_failed', locale),\n },\n parseFailed: false,\n };\n }\n\n const text = extractAssistantText(result.content);\n const data = extractJsonObject(text);\n if (!data) {\n return {\n parsed: {\n verdict: 'continue',\n confidence: 0,\n updates: [],\n newItems: [],\n reason: judgeReasonText('judge_reply_not_json', locale),\n },\n parseFailed: true,\n };\n }\n const updatesRaw = data.updates;\n const newRaw = data.new_items ?? data.newItems;\n const verdictRaw = String(data.verdict ?? '').trim().toLowerCase();\n const verdict =\n verdictRaw === 'done' || verdictRaw === 'blocked' || verdictRaw === 'needs_input'\n ? verdictRaw\n : 'continue';\n const confidenceRaw = Number(data.confidence);\n const confidence = Number.isFinite(confidenceRaw) ? Math.max(0, Math.min(1, confidenceRaw)) : 0;\n const nextAction = typeof data.nextAction === 'string' ? data.nextAction.trim() : undefined;\n const userQuestion = typeof data.userQuestion === 'string' ? data.userQuestion.trim() : undefined;\n const missingEvidenceRaw = data.missingEvidence ?? data.missing_evidence;\n const trimmed = typeof data.reason === 'string' ? data.reason.trim() : '';\n const inner = trimmed || JUDGE_REASON_EN.no_reason_provided;\n const reason = localizeJudgeReasonText(inner, locale);\n const updates: ChecklistJudgeUpdate[] = [];\n if (Array.isArray(updatesRaw)) {\n for (const u of updatesRaw) {\n if (!u || typeof u !== 'object' || Array.isArray(u)) continue;\n const rec = u as Record<string, unknown>;\n const idx1 = Number(rec.index);\n if (!Number.isFinite(idx1)) continue;\n const idx0 = Math.floor(idx1) - 1;\n const st = String(rec.status ?? '').trim().toLowerCase();\n if (st !== 'completed' && st !== 'impossible') continue;\n const evidence = typeof rec.evidence === 'string' ? rec.evidence : null;\n updates.push({ index: idx0, status: st, evidence });\n }\n }\n const newItems: { text: string }[] = [];\n if (Array.isArray(newRaw)) {\n for (const row of newRaw) {\n if (typeof row === 'string') {\n const t = row.trim();\n if (t) newItems.push({ text: t });\n } else if (row && typeof row === 'object' && !Array.isArray(row)) {\n const t = String((row as { text?: string }).text ?? '').trim();\n if (t) newItems.push({ text: t });\n }\n }\n }\n const missingEvidence: string[] = [];\n if (Array.isArray(missingEvidenceRaw)) {\n for (const item of missingEvidenceRaw) {\n if (typeof item === 'string' && item.trim()) missingEvidence.push(item.trim());\n }\n }\n return {\n parsed: {\n verdict,\n confidence,\n updates,\n newItems,\n reason: reason || judgeReasonText('no_reason_provided', locale),\n ...(nextAction ? { nextAction } : {}),\n ...(missingEvidence.length ? { missingEvidence } : {}),\n ...(userQuestion ? { userQuestion } : {}),\n },\n parseFailed: false,\n };\n } catch {\n return {\n parsed: {\n verdict: 'continue',\n confidence: 0,\n updates: [],\n newItems: [],\n reason: judgeReasonText('judge_call_failed', locale),\n },\n parseFailed: false,\n };\n } finally {\n clearTimeout(timer);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checklist-judge.js","names":[],"sources":["../../../../src/agent/goals/checklist-judge.ts"],"sourcesContent":["import type { UserMessage } from '@earendil-works/pi-ai';\nimport { complete } from '@earendil-works/pi-ai/compat';\n\nimport { resolveModel } from '../../providers/index.js';\n\nimport {\n DEFAULT_JUDGE_TIMEOUT_MS,\n extractAssistantText,\n getAssistantMessageErrorReason,\n resolveGoalJudgeApiKey,\n stripCodeFences,\n truncateGoalText,\n} from './judge.js';\nimport type { GoalUiLocale } from './goal-locale.js';\nimport {\n goalUiLocaleOrFallback,\n judgeReasonText,\n judgeResponseLanguageNote,\n JUDGE_REASON_EN,\n localizeJudgeReasonText,\n} from './goal-locale.js';\n\nconst GOAL_TRUNC = 4000;\nconst RESPONSE_SNIPPET = 4000;\nconst HISTORY_TRUNC = 24_000;\n\nconst DECOMPOSE_SYSTEM = (\n 'You break a user goal into an EXTREMELY detailed checklist of concrete, verifiable completion criteria. ' +\n 'Bias toward more items. Each item is one factual statement about finished work.\\n\\n' +\n 'If existing acceptance criteria are provided, return only missing supplemental criteria. ' +\n 'Do not repeat, rewrite, or replace existing criteria.\\n\\n' +\n 'Reply ONLY with a single JSON object on one line:\\n' +\n '{\"items\":[{\"text\":\"...\"},...]}\\n' +\n 'Use at least 3 items when the goal warrants it.'\n);\n\nconst DECOMPOSE_USER = 'Goal:\\n{goal}\\n\\nReturn JSON only.';\n\nconst EVALUATE_CHECKLIST_SYSTEM = (\n 'You evaluate an autonomous agent\\'s progress on a goal with a numbered checklist.\\n' +\n 'For each pending item, decide if evidence in the agent snippet and/or history excerpt shows it is satisfied.\\n' +\n 'Flip pending→completed only with clear evidence; pending→impossible only if truly unachievable here.\\n' +\n 'Do not regress completed/impossible items — omit them from updates.\\n\\n' +\n 'Reply ONLY with one JSON object on one line:\\n' +\n '{\"verdict\":\"continue|done|blocked|needs_input\",\"confidence\":0.0,\"reason\":\"...\",' +\n '\"nextAction\":\"...\",\"missingEvidence\":[\"...\"],\"userQuestion\":\"...\",' +\n '\"updates\":[{\"index\":1,\"status\":\"completed|impossible\",\"evidence\":\"short citation\"}],' +\n '\"new_items\":[{\"text\":\"...\"}]}\\n' +\n 'Use verdict=done only when all checklist criteria are complete/impossible. ' +\n 'Use needs_input when the next step requires user input. Use blocked when external progress is impossible.'\n);\n\nfunction extractJsonObject(raw: string): Record<string, unknown> | null {\n if (!raw?.trim()) return null;\n const text = stripCodeFences(raw);\n try {\n const data = JSON.parse(text) as unknown;\n return data && typeof data === 'object' && !Array.isArray(data) ? (data as Record<string, unknown>) : null;\n } catch {\n const start = text.indexOf('{');\n const end = text.lastIndexOf('}');\n if (start === -1 || end <= start) return null;\n try {\n const data = JSON.parse(text.slice(start, end + 1)) as unknown;\n return data && typeof data === 'object' && !Array.isArray(data) ? (data as Record<string, unknown>) : null;\n } catch {\n return null;\n }\n }\n}\n\nexport type DecomposeChecklistResult = {\n items: { text: string }[];\n parseFailed: boolean;\n errorReason?: string;\n};\n\nexport async function decomposeGoalChecklist(opts: {\n goal: string;\n existingChecklist?: string;\n judgeModelRef: string;\n signal?: AbortSignal;\n judgeTimeoutMs?: number;\n uiLocale?: GoalUiLocale;\n}): Promise<DecomposeChecklistResult> {\n const locale = goalUiLocaleOrFallback(opts.uiLocale);\n const goal = opts.goal.trim();\n if (!goal)\n return { items: [], parseFailed: false, errorReason: judgeReasonText('empty_goal', locale) };\n\n let model: ReturnType<typeof resolveModel>;\n try {\n model = resolveModel(opts.judgeModelRef);\n } catch {\n return {\n items: [],\n parseFailed: false,\n errorReason: judgeReasonText('judge_model_not_configured', locale),\n };\n }\n\n const timeoutMs =\n typeof opts.judgeTimeoutMs === 'number' && Number.isFinite(opts.judgeTimeoutMs)\n ? Math.max(5_000, Math.min(120_000, Math.floor(opts.judgeTimeoutMs)))\n : DEFAULT_JUDGE_TIMEOUT_MS;\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n const merged = opts.signal ? AbortSignal.any([opts.signal, controller.signal]) : controller.signal;\n\n try {\n const existingChecklist = opts.existingChecklist?.trim();\n const decomposeUser = DECOMPOSE_USER.replace('{goal}', truncateGoalText(goal, GOAL_TRUNC)) +\n (existingChecklist\n ? `\\n\\nExisting acceptance criteria:\\n${truncateGoalText(existingChecklist, GOAL_TRUNC)}\\n\\nReturn only missing supplemental criteria as JSON.`\n : '');\n const user: UserMessage = {\n role: 'user',\n content:\n `${DECOMPOSE_SYSTEM}\\n\\n${decomposeUser}` +\n judgeResponseLanguageNote(locale),\n timestamp: Date.now(),\n };\n const apiKey = await resolveGoalJudgeApiKey(model);\n const result = await complete(\n model,\n { messages: [user] },\n { apiKey, maxTokens: 2000, temperature: 0, signal: merged },\n );\n const errorReason = getAssistantMessageErrorReason(result);\n if (errorReason) {\n return {\n items: [],\n parseFailed: false,\n errorReason: judgeReasonText('decompose_call_failed', locale),\n };\n }\n\n const text = extractAssistantText(result.content);\n const data = extractJsonObject(text);\n if (!data)\n return {\n items: [],\n parseFailed: true,\n errorReason: judgeReasonText('decompose_reply_not_json', locale),\n };\n const rawItems = data.items ?? data.checklist;\n if (!Array.isArray(rawItems))\n return {\n items: [],\n parseFailed: true,\n errorReason: judgeReasonText('missing_items_array', locale),\n };\n const items: { text: string }[] = [];\n for (const row of rawItems) {\n if (typeof row === 'string') {\n const t = row.trim();\n if (t) items.push({ text: t });\n } else if (row && typeof row === 'object' && !Array.isArray(row)) {\n const t = String((row as { text?: string }).text ?? '').trim();\n if (t) items.push({ text: t });\n }\n }\n if (!items.length)\n return { items: [], parseFailed: true, errorReason: judgeReasonText('empty_checklist', locale) };\n return { items, parseFailed: false };\n } catch {\n return {\n items: [],\n parseFailed: false,\n errorReason: judgeReasonText('decompose_call_failed', locale),\n };\n } finally {\n clearTimeout(timer);\n }\n}\n\nexport type ChecklistJudgeUpdate = {\n index: number;\n status: 'completed' | 'impossible';\n evidence?: string | null;\n};\n\nexport type ChecklistEvaluateParsed = {\n verdict: 'continue' | 'done' | 'blocked' | 'needs_input';\n confidence: number;\n updates: ChecklistJudgeUpdate[];\n newItems: { text: string }[];\n reason: string;\n nextAction?: string;\n missingEvidence?: string[];\n userQuestion?: string;\n};\n\nexport type EvaluateChecklistResult = {\n parsed: ChecklistEvaluateParsed;\n parseFailed: boolean;\n};\n\nexport async function evaluateGoalChecklistJudge(opts: {\n goal: string;\n numberedChecklist: string;\n lastResponse: string;\n historyExcerpt: string;\n goalContextExcerpt?: string;\n judgeModelRef: string;\n signal?: AbortSignal;\n judgeTimeoutMs?: number;\n uiLocale?: GoalUiLocale;\n}): Promise<EvaluateChecklistResult> {\n const locale = goalUiLocaleOrFallback(opts.uiLocale);\n let model: ReturnType<typeof resolveModel>;\n try {\n model = resolveModel(opts.judgeModelRef);\n } catch {\n return {\n parsed: {\n verdict: 'continue',\n confidence: 0,\n updates: [],\n newItems: [],\n reason: judgeReasonText('judge_model_not_configured', locale),\n },\n parseFailed: false,\n };\n }\n\n const userBody =\n `Goal:\\n${truncateGoalText(opts.goal, 2000)}\\n\\n` +\n `Current checklist (1-based indices):\\n${opts.numberedChecklist}\\n\\n` +\n `Original goal context and attachments:\\n${truncateGoalText(opts.goalContextExcerpt ?? '', 4000) || '(none)'}\\n\\n` +\n `Agent's most recent response (snippet):\\n${truncateGoalText(opts.lastResponse, RESPONSE_SNIPPET)}\\n\\n` +\n `Recent conversation excerpt (JSON or text, may be truncated):\\n` +\n `${truncateGoalText(opts.historyExcerpt, HISTORY_TRUNC) || '(none)'}`;\n\n const timeoutMs =\n typeof opts.judgeTimeoutMs === 'number' && Number.isFinite(opts.judgeTimeoutMs)\n ? Math.max(5_000, Math.min(120_000, Math.floor(opts.judgeTimeoutMs)))\n : DEFAULT_JUDGE_TIMEOUT_MS;\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n const merged = opts.signal ? AbortSignal.any([opts.signal, controller.signal]) : controller.signal;\n\n try {\n const user: UserMessage = {\n role: 'user',\n content: `${EVALUATE_CHECKLIST_SYSTEM}\\n\\n${userBody}` + judgeResponseLanguageNote(locale),\n timestamp: Date.now(),\n };\n const apiKey = await resolveGoalJudgeApiKey(model);\n const result = await complete(\n model,\n { messages: [user] },\n { apiKey, maxTokens: 1500, temperature: 0, signal: merged },\n );\n const errorReason = getAssistantMessageErrorReason(result);\n if (errorReason) {\n return {\n parsed: {\n verdict: 'continue',\n confidence: 0,\n updates: [],\n newItems: [],\n reason: judgeReasonText('judge_call_failed', locale),\n },\n parseFailed: false,\n };\n }\n\n const text = extractAssistantText(result.content);\n const data = extractJsonObject(text);\n if (!data) {\n return {\n parsed: {\n verdict: 'continue',\n confidence: 0,\n updates: [],\n newItems: [],\n reason: judgeReasonText('judge_reply_not_json', locale),\n },\n parseFailed: true,\n };\n }\n const updatesRaw = data.updates;\n const newRaw = data.new_items ?? data.newItems;\n const verdictRaw = String(data.verdict ?? '').trim().toLowerCase();\n const verdict =\n verdictRaw === 'done' || verdictRaw === 'blocked' || verdictRaw === 'needs_input'\n ? verdictRaw\n : 'continue';\n const confidenceRaw = Number(data.confidence);\n const confidence = Number.isFinite(confidenceRaw) ? Math.max(0, Math.min(1, confidenceRaw)) : 0;\n const nextAction = typeof data.nextAction === 'string' ? data.nextAction.trim() : undefined;\n const userQuestion = typeof data.userQuestion === 'string' ? data.userQuestion.trim() : undefined;\n const missingEvidenceRaw = data.missingEvidence ?? data.missing_evidence;\n const trimmed = typeof data.reason === 'string' ? data.reason.trim() : '';\n const inner = trimmed || JUDGE_REASON_EN.no_reason_provided;\n const reason = localizeJudgeReasonText(inner, locale);\n const updates: ChecklistJudgeUpdate[] = [];\n if (Array.isArray(updatesRaw)) {\n for (const u of updatesRaw) {\n if (!u || typeof u !== 'object' || Array.isArray(u)) continue;\n const rec = u as Record<string, unknown>;\n const idx1 = Number(rec.index);\n if (!Number.isFinite(idx1)) continue;\n const idx0 = Math.floor(idx1) - 1;\n const st = String(rec.status ?? '').trim().toLowerCase();\n if (st !== 'completed' && st !== 'impossible') continue;\n const evidence = typeof rec.evidence === 'string' ? rec.evidence : null;\n updates.push({ index: idx0, status: st, evidence });\n }\n }\n const newItems: { text: string }[] = [];\n if (Array.isArray(newRaw)) {\n for (const row of newRaw) {\n if (typeof row === 'string') {\n const t = row.trim();\n if (t) newItems.push({ text: t });\n } else if (row && typeof row === 'object' && !Array.isArray(row)) {\n const t = String((row as { text?: string }).text ?? '').trim();\n if (t) newItems.push({ text: t });\n }\n }\n }\n const missingEvidence: string[] = [];\n if (Array.isArray(missingEvidenceRaw)) {\n for (const item of missingEvidenceRaw) {\n if (typeof item === 'string' && item.trim()) missingEvidence.push(item.trim());\n }\n }\n return {\n parsed: {\n verdict,\n confidence,\n updates,\n newItems,\n reason: reason || judgeReasonText('no_reason_provided', locale),\n ...(nextAction ? { nextAction } : {}),\n ...(missingEvidence.length ? { missingEvidence } : {}),\n ...(userQuestion ? { userQuestion } : {}),\n },\n parseFailed: false,\n };\n } catch {\n return {\n parsed: {\n verdict: 'continue',\n confidence: 0,\n updates: [],\n newItems: [],\n reason: judgeReasonText('judge_call_failed', locale),\n },\n parseFailed: false,\n };\n } finally {\n clearTimeout(timer);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getApiKey, init_providers, resolveModel } from "../../providers/index.js";
|
|
2
2
|
import { JUDGE_REASON_EN } from "../../i18n/goals-bundle.js";
|
|
3
3
|
import { goalUiLocaleOrFallback, judgeFreeformBuiltinMessages, judgeResponseLanguageNote, localizeJudgeReasonText } from "./goal-locale.js";
|
|
4
|
-
import { complete } from "@earendil-works/pi-ai";
|
|
4
|
+
import { complete } from "@earendil-works/pi-ai/compat";
|
|
5
5
|
//#region src/agent/goals/judge.ts
|
|
6
6
|
init_providers();
|
|
7
7
|
const JUDGE_RESPONSE_SNIPPET_CHARS = 4e3;
|