@xopcai/xopc 0.0.110 → 0.0.112
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -4
- package/README.zh-CN.md +46 -4
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
- package/dist/extensions/feishu/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
- package/dist/extensions/telegram/src/inbound-processor.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +1 -1
- package/dist/extensions/telegram/src/routing-integration.js +2 -2
- package/dist/extensions/telegram/src/update-offset-store.js +1 -1
- package/dist/extensions/telegram/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +2 -2
- package/dist/extensions/weixin/src/auth/accounts.js +1 -1
- package/dist/extensions/weixin/src/cdn/upload.js +1 -1
- package/dist/extensions/weixin/src/media/data-url.js +1 -1
- package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
- package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
- package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
- package/dist/extensions/weixin/src/plugin.js +1 -1
- package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
- package/dist/extensions/weixin/src/workflow-progress.js +1 -1
- package/dist/gateway/static/root/apple-touch-icon.png +0 -0
- package/dist/gateway/static/root/assets/Combination-BzaXOLd9.js +41 -0
- package/dist/gateway/static/root/assets/agent-avatar-dicebear-EhRp-ZMa.js +1 -0
- package/dist/gateway/static/root/assets/agent-browser-settings-page-H4foVCiS.js +6 -0
- package/dist/gateway/static/root/assets/agent-defaults-tabbed-page-DDNw2oNU.js +1 -0
- package/dist/gateway/static/root/assets/agents-E_X2kzS1.js +71 -0
- package/dist/gateway/static/root/assets/app-management-settings-panel-BIy7KEsM.js +1 -0
- package/dist/gateway/static/root/assets/appearance-settings-DGQG8NwA.js +1 -0
- package/dist/gateway/static/root/assets/apps-page-BZLvInLr.js +1 -0
- package/dist/gateway/static/root/assets/archive-plugin-uuQPupqx.js +1 -0
- package/dist/gateway/static/root/assets/attachment-load-DBkv0cAv.js +2 -0
- package/dist/gateway/static/root/assets/{attachment-preview-renderer-CybMSIoS.js → attachment-preview-renderer-DonnL2dL.js} +1 -1
- package/dist/gateway/static/root/assets/binary-plugins-DxxN_VAR.js +2 -0
- package/dist/gateway/static/root/assets/block-editor-CwnUlRmO.js +180 -0
- package/dist/gateway/static/root/assets/channels-settings-BHvUKlzw.js +1 -0
- package/dist/gateway/static/root/assets/cn-JdwAhgNB.js +1 -0
- package/dist/gateway/static/root/assets/code-editor-dZTY2dRW.js +1 -0
- package/dist/gateway/static/root/assets/config-api-BD-NcD5d.js +3 -0
- package/dist/gateway/static/root/assets/config-reload-event-Bjh2zoKp.js +1 -0
- package/dist/gateway/static/root/assets/connectors-settings-VBzXcEXL.js +2 -0
- package/dist/gateway/static/root/assets/cron-api-C5DoipZA.js +1 -0
- package/dist/gateway/static/root/assets/cron-dreaming-jobs-nCMWCf0p.js +1 -0
- package/dist/gateway/static/root/assets/cron-page-BLTpdm34.js +3 -0
- package/dist/gateway/static/root/assets/dist-By6Rh2ee.js +1 -0
- package/dist/gateway/static/root/assets/dist-CkobR7mk.js +1 -0
- package/dist/gateway/static/root/assets/dist-DokQNVMQ.js +1 -0
- package/dist/gateway/static/root/assets/dreaming-scene-BHMRVEUS.js +4585 -0
- package/dist/gateway/static/root/assets/dreaming-settings-DSVhXTPq.js +1 -0
- package/dist/gateway/static/root/assets/extension-debug-page-BDHA9o_e.js +1 -0
- package/dist/gateway/static/root/assets/{extension-page-W1wiG38F.js → extension-page-DmDLVSPE.js} +1 -1
- package/dist/gateway/static/root/assets/extension-settings-page-1124aHw_.js +1 -0
- package/dist/gateway/static/root/assets/fetch-DOe56Wmy.js +1 -0
- package/dist/gateway/static/root/assets/format-cron-label-BsotZDO5.js +2 -0
- package/dist/gateway/static/root/assets/format-interval-label-tsMSvBSR.js +1 -0
- package/dist/gateway/static/root/assets/gateway-config-api-CsD4FC9D.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-HQ8FBhY2.js +1 -0
- package/dist/gateway/static/root/assets/gateway-startup-retry-C1zg7pH3.js +1 -0
- package/dist/gateway/static/root/assets/goal-detail-page-BG3Onph0.js +1 -0
- package/dist/gateway/static/root/assets/goals-page-DgeKn8zL.js +2 -0
- package/dist/gateway/static/root/assets/goals-settings-B5nI6lgz.js +1 -0
- package/dist/gateway/static/root/assets/heartbeat-config-api-CIv42nJD.js +1 -0
- package/dist/gateway/static/root/assets/heartbeat-settings-DFcVuJ3M.js +1 -0
- package/dist/gateway/static/root/assets/html-workspace-editor-CQLWDiwE.js +1 -0
- package/dist/gateway/static/root/assets/index-5A_ZaABy.css +1 -0
- package/dist/gateway/static/root/assets/index-BTmbp2AU.js +121 -0
- package/dist/gateway/static/root/assets/interval-presets-DGP3S7OB.js +1 -0
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-fETaDYQP.js +1 -0
- package/dist/gateway/static/root/assets/locale-store-DjbfSsfA.js +1 -0
- package/dist/gateway/static/root/assets/logs-page-B1-b27lK.js +2 -0
- package/dist/gateway/static/root/assets/markdown-editor-AssmZFx4.js +2 -0
- package/dist/gateway/static/root/assets/markdown-split-CgeBJMOD.js +1 -0
- package/dist/gateway/static/root/assets/media-plugins-C30GzlV2.js +1 -0
- package/dist/gateway/static/root/assets/mermaid-render-BbqDc_LQ.js +134 -0
- package/dist/gateway/static/root/assets/messages-BUUfPaZ9.js +3 -0
- package/dist/gateway/static/root/assets/middleware-Pd0e8Igk.js +1 -0
- package/dist/gateway/static/root/assets/models-hub-panel-DPcTS1-u.js +2 -0
- package/dist/gateway/static/root/assets/note-detail-page-xeGb4owe.js +2 -0
- package/dist/gateway/static/root/assets/note-image-lightbox-t1g0qZYh.js +1 -0
- package/dist/gateway/static/root/assets/note-time-hm6JO_Wi.js +1 -0
- package/dist/gateway/static/root/assets/notes-page-C_TdnKBe.js +1 -0
- package/dist/gateway/static/root/assets/preview-open-alternatives-DeWp9x5g.js +1 -0
- package/dist/gateway/static/root/assets/remote-access-hub-BtkPmJIN.js +1 -0
- package/dist/gateway/static/root/assets/save-bar-controls-BOaAOJI3.js +1 -0
- package/dist/gateway/static/root/assets/schedule-field-BLWLKqgw.js +1 -0
- package/dist/gateway/static/root/assets/schema-form-plqRFYT8.js +1 -0
- package/dist/gateway/static/root/assets/sessions-page-DOUjxzJm.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-qK_bnTrw.js +1 -0
- package/dist/gateway/static/root/assets/settings-collapsible-section-BP5zRrDI.js +1 -0
- package/dist/gateway/static/root/assets/settings-form-section-Bv8MZplG.js +1 -0
- package/dist/gateway/static/root/assets/settings-page-DmDfE1ww.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-BEFwNcIZ.js +1 -0
- package/dist/gateway/static/root/assets/share-preview-page-4OX1YCgp.js +2 -0
- package/dist/gateway/static/root/assets/shares-settings-CbKmJZot.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-YdtnUHtK.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-DwW1IzQ0.js +2 -0
- package/dist/gateway/static/root/assets/system-settings-panel-CGy4f_s2.js +1 -0
- package/dist/gateway/static/root/assets/theme-store-CD2wtgZV.js +1 -0
- package/dist/gateway/static/root/assets/use-agent-defaults-form-BMuMvzl_.js +1 -0
- package/dist/gateway/static/root/assets/use-blob-object-url-D4BFuzZB.js +1 -0
- package/dist/gateway/static/root/assets/use-channel-catalog-CjGHnDvN.js +1 -0
- package/dist/gateway/static/root/assets/use-settings-tab-guard-BMMFa0oA.js +1 -0
- package/dist/gateway/static/root/assets/vendor-codemirror-CNP1wPe7.js +45 -0
- package/dist/gateway/static/root/assets/voice-api-key-field-DnRbhMNq.js +1 -0
- package/dist/gateway/static/root/assets/voice-player-store-D5vzWwls.js +1 -0
- package/dist/gateway/static/root/assets/{workflow-page.utils-EYg_xBQS.js → workflow-page.utils-tjGpRVnw.js} +1 -1
- package/dist/gateway/static/root/assets/workflows-page-DqqHKGj2.js +18 -0
- package/dist/gateway/static/root/favicon-16x16.png +0 -0
- package/dist/gateway/static/root/favicon-32x32.png +0 -0
- package/dist/gateway/static/root/favicon.ico +0 -0
- package/dist/gateway/static/root/favicon.svg +14 -12
- package/dist/gateway/static/root/index.html +18 -15
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +28 -2
- package/dist/src/agent/agent-manager.js +82 -11
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/agent-scope.js +1 -1
- package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
- package/dist/src/agent/context/workspace-seed.js +2 -2
- package/dist/src/agent/context/workspace-state.js +1 -1
- package/dist/src/agent/context/workspace.js +1 -1
- package/dist/src/agent/goals/checklist-judge.d.ts +5 -0
- package/dist/src/agent/goals/checklist-judge.js +26 -2
- package/dist/src/agent/goals/checklist-judge.js.map +1 -1
- package/dist/src/agent/goals/evaluate-turn.d.ts +5 -1
- package/dist/src/agent/goals/evaluate-turn.js +29 -3
- package/dist/src/agent/goals/evaluate-turn.js.map +1 -1
- package/dist/src/agent/goals/goal-locale.d.ts +0 -2
- package/dist/src/agent/goals/goal-locale.js +3 -16
- package/dist/src/agent/goals/goal-locale.js.map +1 -1
- package/dist/src/agent/goals/persistent-goal-service.d.ts +9 -0
- package/dist/src/agent/goals/persistent-goal-service.js +3 -2
- package/dist/src/agent/goals/persistent-goal-service.js.map +1 -1
- package/dist/src/agent/goals/post-turn.d.ts +7 -0
- package/dist/src/agent/goals/post-turn.js +70 -25
- package/dist/src/agent/goals/post-turn.js.map +1 -1
- package/dist/src/agent/goals/state.d.ts +0 -5
- package/dist/src/agent/goals/state.js +1 -96
- package/dist/src/agent/goals/state.js.map +1 -1
- package/dist/src/agent/image/load-image-media.js +2 -2
- package/dist/src/agent/ipc/inbox.js +3 -3
- package/dist/src/agent/ipc/socket.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
- package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
- package/dist/src/agent/mcp/mcp-transport.js +1 -1
- package/dist/src/agent/memory/builtin-memory-store.js +1 -1
- package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
- package/dist/src/agent/memory/dreaming/events.js +1 -1
- package/dist/src/agent/memory/dreaming/last-run.js +1 -1
- package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
- package/dist/src/agent/memory/dreaming/preview.js +1 -1
- package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
- package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
- package/dist/src/agent/memory/dreaming/utils.js +1 -1
- package/dist/src/agent/memory/memory-flush.js +1 -1
- package/dist/src/agent/memory/plugin-discovery.js +1 -1
- package/dist/src/agent/messaging/command-handler.d.ts +7 -0
- package/dist/src/agent/messaging/command-handler.js +11 -2
- package/dist/src/agent/messaging/command-handler.js.map +1 -1
- package/dist/src/agent/models/manager.js +1 -1
- package/dist/src/agent/prompt/memory/index.js +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
- package/dist/src/agent/reply/post-compaction-context.js +1 -1
- package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
- package/dist/src/agent/sandbox/path-policy.js +2 -2
- package/dist/src/agent/service/direct-turn-helpers.d.ts +2 -0
- package/dist/src/agent/service/direct-turn-helpers.js +3 -2
- package/dist/src/agent/service/direct-turn-helpers.js.map +1 -1
- package/dist/src/agent/service/process-direct-streaming.js +10 -1
- package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
- package/dist/src/agent/service/reconcile-dreaming-cron.js +8 -5
- package/dist/src/agent/service/reconcile-dreaming-cron.js.map +1 -1
- package/dist/src/agent/service.d.ts +2 -1
- package/dist/src/agent/service.js +30 -6
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/service.types.d.ts +12 -0
- package/dist/src/agent/session/session-config-service.d.ts +8 -0
- package/dist/src/agent/session/session-config-service.js +20 -0
- package/dist/src/agent/session/session-config-service.js.map +1 -1
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/config.js +2 -2
- package/dist/src/agent/skills/filesystem-watcher.d.ts +19 -0
- package/dist/src/agent/skills/filesystem-watcher.js +182 -0
- package/dist/src/agent/skills/filesystem-watcher.js.map +1 -0
- package/dist/src/agent/skills/hub-hash.js +2 -2
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +30 -36
- package/dist/src/agent/skills/hub-pull.js.map +1 -1
- package/dist/src/agent/skills/index.js +82 -38
- package/dist/src/agent/skills/index.js.map +1 -1
- package/dist/src/agent/skills/installer.js +2 -2
- package/dist/src/agent/skills/managed-store.d.ts +19 -0
- package/dist/src/agent/skills/managed-store.js +97 -38
- package/dist/src/agent/skills/managed-store.js.map +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- package/dist/src/agent/skills/skill-manager.d.ts +16 -6
- package/dist/src/agent/skills/skill-manager.js +79 -24
- package/dist/src/agent/skills/skill-manager.js.map +1 -1
- package/dist/src/agent/skills/skill-view-path.js +1 -1
- package/dist/src/agent/skills/test-framework.js +1 -1
- package/dist/src/agent/skills/types.d.ts +11 -0
- package/dist/src/agent/skills/watcher.js +1 -1
- package/dist/src/agent/starter-agents.js +1 -1
- package/dist/src/agent/tools/cronjob-tool.d.ts +8 -3
- package/dist/src/agent/tools/cronjob-tool.js +82 -24
- package/dist/src/agent/tools/cronjob-tool.js.map +1 -1
- package/dist/src/agent/tools/dreaming-tool.js +1 -1
- package/dist/src/agent/tools/edit.d.ts +2 -0
- package/dist/src/agent/tools/edit.js +10 -0
- package/dist/src/agent/tools/edit.js.map +1 -1
- package/dist/src/agent/tools/factory.js +17 -4
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/find.js +1 -1
- package/dist/src/agent/tools/goal-evidence-recorder.d.ts +6 -0
- package/dist/src/agent/tools/goal-evidence-recorder.js +34 -0
- package/dist/src/agent/tools/goal-evidence-recorder.js.map +1 -0
- package/dist/src/agent/tools/goal-tool.d.ts +19 -0
- package/dist/src/agent/tools/goal-tool.js +101 -0
- package/dist/src/agent/tools/goal-tool.js.map +1 -0
- package/dist/src/agent/tools/grep.js +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +1 -1
- package/dist/src/agent/tools/index.d.ts +1 -0
- package/dist/src/agent/tools/index.js +2 -1
- package/dist/src/agent/tools/shell.d.ts +2 -0
- package/dist/src/agent/tools/shell.js +17 -2
- package/dist/src/agent/tools/shell.js.map +1 -1
- package/dist/src/agent/tools/skill-manage-tool.js +1 -1
- package/dist/src/agent/tools/workflow-tool.d.ts +1 -0
- package/dist/src/agent/tools/workflow-tool.js +11 -3
- package/dist/src/agent/tools/workflow-tool.js.map +1 -1
- package/dist/src/agent/tools/write.d.ts +2 -0
- package/dist/src/agent/tools/write.js +11 -0
- package/dist/src/agent/tools/write.js.map +1 -1
- package/dist/src/agent/workflow/catalog.js +1 -1
- package/dist/src/agent/workspace-runtime/registry.d.ts +5 -0
- package/dist/src/agent/workspace-runtime/registry.js +7 -0
- package/dist/src/agent/workspace-runtime/registry.js.map +1 -1
- package/dist/src/ai-assist/text-assist.d.ts +39 -0
- package/dist/src/ai-assist/text-assist.js +234 -0
- package/dist/src/ai-assist/text-assist.js.map +1 -0
- package/dist/src/auth/credentials.js +2 -2
- package/dist/src/auth/profiles/store.js +2 -2
- package/dist/src/auth/sync-provider-auth.js +1 -1
- package/dist/src/browser/cache-dir-policy.js +1 -1
- package/dist/src/browser/cdp-local-launcher.js +2 -2
- package/dist/src/browser/providers/browser-ext-install.js +4 -4
- package/dist/src/browser/providers/cloakbrowser.js +5 -5
- package/dist/src/browser/providers/playwright-doctor.js +1 -1
- package/dist/src/browser/stealth.js +1 -1
- package/dist/src/channels/attachments/inbound-persist.d.ts +7 -0
- package/dist/src/channels/attachments/inbound-persist.js +20 -2
- package/dist/src/channels/attachments/inbound-persist.js.map +1 -1
- package/dist/src/channels/outbound/persist-store.js +1 -1
- package/dist/src/channels/pairing/allow-from-file.js +1 -1
- package/dist/src/channels/pairing/pairing-store.js +2 -2
- package/dist/src/chat-commands/agent-edit.js +2 -2
- package/dist/src/chat-commands/builtins/config.js +3 -3
- package/dist/src/chat-commands/builtins/goal.d.ts +1 -1
- package/dist/src/chat-commands/builtins/goal.js +55 -97
- package/dist/src/chat-commands/builtins/goal.js.map +1 -1
- package/dist/src/chat-commands/builtins/subgoal.d.ts +1 -1
- package/dist/src/chat-commands/builtins/subgoal.js +49 -108
- package/dist/src/chat-commands/builtins/subgoal.js.map +1 -1
- package/dist/src/chat-commands/builtins/system.js +11 -4
- package/dist/src/chat-commands/builtins/system.js.map +1 -1
- package/dist/src/chat-commands/builtins/workflow.js +132 -8
- package/dist/src/chat-commands/builtins/workflow.js.map +1 -1
- package/dist/src/chat-commands/context.d.ts +6 -0
- package/dist/src/chat-commands/context.js +12 -0
- package/dist/src/chat-commands/context.js.map +1 -1
- package/dist/src/chat-commands/types.d.ts +7 -0
- package/dist/src/cli/command-catalog.js +43 -0
- package/dist/src/cli/command-catalog.js.map +1 -1
- package/dist/src/cli/command-loaders.js +1 -0
- package/dist/src/cli/command-loaders.js.map +1 -1
- package/dist/src/cli/command-manifest.js +4 -0
- package/dist/src/cli/command-manifest.js.map +1 -1
- package/dist/src/cli/commands/config.js +1 -1
- package/dist/src/cli/commands/cron.js +55 -16
- package/dist/src/cli/commands/cron.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
- package/dist/src/cli/commands/doctor/checks/cron-health.js +2 -83
- package/dist/src/cli/commands/doctor/checks/cron-health.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
- package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
- package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
- package/dist/src/cli/commands/extension-create.js +1 -1
- package/dist/src/cli/commands/extension-dev.js +2 -2
- package/dist/src/cli/commands/extension-marketplace.js +2 -2
- package/dist/src/cli/commands/extension-pack.js +2 -2
- package/dist/src/cli/commands/extension.js +3 -3
- package/dist/src/cli/commands/gateway/logs.js +1 -1
- package/dist/src/cli/commands/goal.d.ts +4 -0
- package/dist/src/cli/commands/goal.js +213 -0
- package/dist/src/cli/commands/goal.js.map +1 -0
- package/dist/src/cli/commands/image.js +1 -1
- package/dist/src/cli/commands/init.js +2 -2
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard.js +11 -5
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/commands/skills-test.js +1 -1
- package/dist/src/cli/templates.js +1 -1
- package/dist/src/cli/utils/gateway-client.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +2 -2
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/agent-typed-models.js +1 -1
- package/dist/src/config/gateway-bind.js +1 -1
- package/dist/src/config/index.js +8 -8
- package/dist/src/config/loader.js +4 -4
- package/dist/src/config/models-json.js +2 -2
- package/dist/src/config/paths-state.js +1 -1
- package/dist/src/config/paths.js +1 -1
- package/dist/src/config/profile.js +1 -1
- package/dist/src/config/reload.js +1 -1
- package/dist/src/config/schema.d.ts +115 -2
- package/dist/src/config/schema.js +63 -7
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/config/web-patch.d.ts +14 -1
- package/dist/src/config/web-patch.js +45 -8
- package/dist/src/config/web-patch.js.map +1 -1
- package/dist/src/config/workspace-path.js +1 -1
- package/dist/src/cron/executor.d.ts +2 -0
- package/dist/src/cron/executor.js +126 -70
- package/dist/src/cron/executor.js.map +1 -1
- package/dist/src/cron/index.d.ts +1 -1
- package/dist/src/cron/index.js +3 -3
- package/dist/src/cron/job-content.js +1 -0
- package/dist/src/cron/job-content.js.map +1 -1
- package/dist/src/cron/run-log-store.d.ts +1 -0
- package/dist/src/cron/run-log-store.js +4 -2
- package/dist/src/cron/run-log-store.js.map +1 -1
- package/dist/src/cron/schedule.d.ts +10 -0
- package/dist/src/cron/schedule.js +85 -0
- package/dist/src/cron/schedule.js.map +1 -0
- package/dist/src/cron/service.d.ts +34 -77
- package/dist/src/cron/service.js +327 -264
- package/dist/src/cron/service.js.map +1 -1
- package/dist/src/cron/types.d.ts +97 -49
- package/dist/src/cron/validation.d.ts +374 -86
- package/dist/src/cron/validation.js +156 -129
- package/dist/src/cron/validation.js.map +1 -1
- package/dist/src/cron/workflow-run-completion.js +1 -1
- package/dist/src/daemon/constants.js +1 -1
- package/dist/src/daemon/install-plan.js +2 -2
- package/dist/src/daemon/launchd.js +2 -2
- package/dist/src/daemon/schtasks.js +2 -2
- package/dist/src/daemon/systemd.js +2 -2
- package/dist/src/extensions/bundle-mcp.js +1 -1
- package/dist/src/extensions/discover-extensions.js +2 -2
- package/dist/src/extensions/health.js +1 -1
- package/dist/src/extensions/install.js +2 -2
- package/dist/src/extensions/loader.js +2 -2
- package/dist/src/extensions/lockfile.js +3 -3
- package/dist/src/extensions/security.js +1 -1
- package/dist/src/extensions/update.js +2 -2
- package/dist/src/gateway/agents-admin.js +2 -2
- package/dist/src/gateway/chat-stream/mapper.d.ts +1 -0
- package/dist/src/gateway/chat-stream/mapper.js +6 -2
- package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
- package/dist/src/gateway/chat-stream/protocol.d.ts +2 -0
- package/dist/src/gateway/file-path-classifier.js +2 -2
- package/dist/src/gateway/hono/lib/config-payload.d.ts +14 -1
- package/dist/src/gateway/hono/lib/config-payload.js +1 -1
- package/dist/src/gateway/hono/lib/extension-store.js +2 -2
- package/dist/src/gateway/hono/lib/static-ui.js +2 -2
- package/dist/src/gateway/hono/oauth-async.js +1 -1
- package/dist/src/gateway/hono/routes/agents.js +1 -1
- package/dist/src/gateway/hono/routes/ai-assist.d.ts +3 -0
- package/dist/src/gateway/hono/routes/ai-assist.js +66 -0
- package/dist/src/gateway/hono/routes/ai-assist.js.map +1 -0
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
- package/dist/src/gateway/hono/routes/commands-skills.js +7 -0
- package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
- package/dist/src/gateway/hono/routes/cron.js +24 -5
- package/dist/src/gateway/hono/routes/cron.js.map +1 -1
- package/dist/src/gateway/hono/routes/dreaming.js +1 -1
- package/dist/src/gateway/hono/routes/goals.d.ts +1 -1
- package/dist/src/gateway/hono/routes/goals.js +670 -173
- package/dist/src/gateway/hono/routes/goals.js.map +1 -1
- package/dist/src/gateway/hono/routes/home.d.ts +5 -0
- package/dist/src/gateway/hono/routes/home.js +90 -3
- package/dist/src/gateway/hono/routes/home.js.map +1 -1
- package/dist/src/gateway/hono/routes/host-fs.js +2 -2
- package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/models.js +1 -1
- package/dist/src/gateway/hono/routes/notes.js +20 -14
- package/dist/src/gateway/hono/routes/notes.js.map +1 -1
- package/dist/src/gateway/hono/routes/shares.js +1 -1
- package/dist/src/gateway/hono/routes/workflows.js +8 -4
- package/dist/src/gateway/hono/routes/workflows.js.map +1 -1
- package/dist/src/gateway/hono/routes/workspace.js +2 -2
- package/dist/src/gateway/hono/sse.js.map +1 -1
- package/dist/src/gateway/lock.js +3 -3
- package/dist/src/gateway/ports.js +1 -1
- package/dist/src/gateway/service/agent-runner.d.ts +2 -0
- package/dist/src/gateway/service/agent-runner.js +8 -4
- package/dist/src/gateway/service/agent-runner.js.map +1 -1
- package/dist/src/gateway/service/config-coordinator.js +1 -1
- package/dist/src/gateway/service/marketplace-service.d.ts +22 -10
- package/dist/src/gateway/service/marketplace-service.js +46 -5
- package/dist/src/gateway/service/marketplace-service.js.map +1 -1
- package/dist/src/gateway/service/run-gateway-agent.d.ts +3 -0
- package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
- package/dist/src/gateway/service.d.ts +8 -0
- package/dist/src/gateway/service.js +79 -6
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/gateway/workspace-fs-file-list.js +1 -1
- package/dist/src/goals/goal-notifications.d.ts +29 -0
- package/dist/src/goals/goal-notifications.js +154 -0
- package/dist/src/goals/goal-notifications.js.map +1 -0
- package/dist/src/goals/goal-queue-store.d.ts +16 -0
- package/dist/src/goals/goal-queue-store.js +131 -0
- package/dist/src/goals/goal-queue-store.js.map +1 -0
- package/dist/src/goals/goal-queue-types.d.ts +31 -0
- package/dist/src/goals/goal-queue-types.js +1 -0
- package/dist/src/goals/goal-runner.d.ts +17 -0
- package/dist/src/goals/goal-runner.js +127 -0
- package/dist/src/goals/goal-runner.js.map +1 -0
- package/dist/src/goals/goal-service.d.ts +77 -0
- package/dist/src/goals/goal-service.js +261 -0
- package/dist/src/goals/goal-service.js.map +1 -0
- package/dist/src/goals/goal-store.d.ts +38 -0
- package/dist/src/goals/goal-store.js +404 -0
- package/dist/src/goals/goal-store.js.map +1 -0
- package/dist/src/goals/goal-workflow-judge.d.ts +13 -0
- package/dist/src/goals/goal-workflow-judge.js +147 -0
- package/dist/src/goals/goal-workflow-judge.js.map +1 -0
- package/dist/src/goals/index.d.ts +10 -0
- package/dist/src/goals/index.js +7 -0
- package/dist/src/goals/types.d.ts +119 -0
- package/dist/src/goals/types.js +1 -0
- package/dist/src/i18n/goals-bundle.js +1 -1
- package/dist/src/i18n/index.js +1 -1
- package/dist/src/i18n/share-tool-bundle.js +2 -2
- package/dist/src/infra/brew.js +1 -1
- package/dist/src/infra/package-json.js +1 -1
- package/dist/src/infra/package-update-steps.js +1 -1
- package/dist/src/infra/path-env.js +2 -2
- package/dist/src/infra/restart.js +1 -1
- package/dist/src/infra/stable-node-path.js +1 -1
- package/dist/src/infra/update-check.js +1 -1
- package/dist/src/infra/update-global.js +1 -1
- package/dist/src/infra/update-lock.js +2 -2
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/infra/update-runner.js +1 -1
- package/dist/src/infra/update-startup.js +1 -1
- package/dist/src/infra/write-file-atomic.js +2 -2
- package/dist/src/media/store.js +1 -1
- package/dist/src/notes/agent-context.js +1 -1
- package/dist/src/notes/service.js +1 -1
- package/dist/src/notes/store.js +2 -2
- package/dist/src/project-trust/trust-store.js +2 -2
- package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
- package/dist/src/providers/index.js +1 -1
- package/dist/src/providers/model-registry.js +4 -4
- package/dist/src/session/init-session-turn.js +2 -2
- package/dist/src/session/resolve-session.js +3 -3
- package/dist/src/session/session-title.js +2 -2
- package/dist/src/session/store.js +1 -1
- package/dist/src/share/share-auto.js +2 -2
- package/dist/src/share/share-store.js +3 -3
- package/dist/src/share/share-thumbnail.js +2 -2
- package/dist/src/share/share-zip.js +1 -1
- package/dist/src/share/site-share-store.js +3 -3
- package/dist/src/share/site-static-serve.js +1 -1
- package/dist/src/storage/sqlite/connection.js +1 -1
- package/dist/src/storage/sqlite/cron-job-repository.d.ts +6 -0
- package/dist/src/storage/sqlite/cron-job-repository.js +70 -0
- package/dist/src/storage/sqlite/cron-job-repository.js.map +1 -0
- package/dist/src/storage/sqlite/cron-run-repository.js +0 -1
- package/dist/src/storage/sqlite/cron-run-repository.js.map +1 -1
- package/dist/src/storage/sqlite/index.d.ts +1 -0
- package/dist/src/storage/sqlite/index.js +2 -1
- package/dist/src/storage/sqlite/memory-index-repository.js +2 -2
- package/dist/src/storage/sqlite/migrations/006_add_goals.sql +108 -0
- package/dist/src/storage/sqlite/migrations/007_goal_run_judge_schema.sql +4 -0
- package/dist/src/storage/sqlite/migrations/008_goal_queue_workflow_runs.sql +53 -0
- package/dist/src/storage/sqlite/migrations/009_cron_jobs.sql +24 -0
- package/dist/src/storage/sqlite/migrations/discover.js +1 -1
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +4 -4
- package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/schema.js +2 -2
- package/dist/src/storage/sqlite/schema.sql +188 -0
- package/dist/src/tui/clipboard-image.js +3 -3
- package/dist/src/tui/extension-host/load-extensions.js +1 -1
- package/dist/src/tui/theme-manager.js +1 -1
- package/dist/src/tui/tui-command-formatters.js +4 -4
- package/dist/src/tui/tui-commands.js +2 -2
- package/dist/src/tui/tui-keybindings-file.js +1 -1
- package/dist/src/tui/tui-scoped-models.js +2 -2
- package/dist/src/tui/tui-settings.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/tui/tui.js +6 -6
- package/dist/src/tunnel/frpc-binary.js +4 -4
- package/dist/src/tunnel/frpc-config.js +1 -1
- package/dist/src/tunnel/frpc-extract.js +1 -1
- package/dist/src/tunnel/tunnel-state.js +1 -1
- package/dist/src/utils/logger/audit.js +1 -1
- package/dist/src/utils/logger/log-store.js +1 -1
- package/dist/src/utils/logger/rotation.js +1 -1
- package/dist/src/utils/logger/stats.d.ts +1 -1
- package/dist/src/utils/logger/streams.js +1 -1
- package/dist/src/voice/tts/audio.js +1 -1
- package/dist/src/voice/tts/providers/edge-speech.js +2 -2
- package/dist/src/workflows/domain/run.d.ts +1 -0
- package/dist/src/workflows/domain/run.js.map +1 -1
- package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
- package/dist/src/workflows/engine/projector.js +23 -14
- package/dist/src/workflows/engine/projector.js.map +1 -1
- package/dist/src/workflows/engine/workflow-engine.d.ts +1 -0
- package/dist/src/workflows/engine/workflow-engine.js +36 -0
- package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
- package/dist/src/workflows/index.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.d.ts +1 -0
- package/dist/src/workflows/service/workflow-run-service.js +7 -3
- package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
- package/dist/src/workflows/service/workflow-run-service.types.d.ts +1 -0
- package/dist/src/workflows/service/workflow-session-bridge.js +8 -1
- package/dist/src/workflows/service/workflow-session-bridge.js.map +1 -1
- package/dist/src/workflows/store/event-store.js +1 -1
- package/dist/src/workflows/store/run-index-store.d.ts +8 -0
- package/dist/src/workflows/store/run-index-store.js +58 -0
- package/dist/src/workflows/store/run-index-store.js.map +1 -0
- package/dist/src/workflows/store/run-store.d.ts +2 -0
- package/dist/src/workflows/store/run-store.js +15 -22
- package/dist/src/workflows/store/run-store.js.map +1 -1
- package/package.json +10 -5
- package/dist/gateway/static/root/assets/Combination-HAlzriaz.js +0 -41
- package/dist/gateway/static/root/assets/agents-CFFioJCI.js +0 -78
- package/dist/gateway/static/root/assets/apps-page-BYDmkbzG.js +0 -1
- package/dist/gateway/static/root/assets/channels-settings-CsbDaMvd.js +0 -1
- package/dist/gateway/static/root/assets/circle-check-C23XjkUj.js +0 -1
- package/dist/gateway/static/root/assets/copy-Dv6d4Dvw.js +0 -1
- package/dist/gateway/static/root/assets/cron-page-Apk-7p4p.js +0 -1
- package/dist/gateway/static/root/assets/dist-DmGDgpy2.js +0 -1
- package/dist/gateway/static/root/assets/extension-debug-page-pxFC-tUa.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-COXSv6xP.js +0 -1
- package/dist/gateway/static/root/assets/fetch-CFdKBnE6.js +0 -1
- package/dist/gateway/static/root/assets/gateway-startup-retry-DdngdObI.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-config-api-DcmAMYmN.js +0 -1
- package/dist/gateway/static/root/assets/index-C_2yKRJX.js +0 -4845
- package/dist/gateway/static/root/assets/index-DI5_GsZt.css +0 -1
- package/dist/gateway/static/root/assets/logs-page-DvTWUOzd.js +0 -2
- package/dist/gateway/static/root/assets/note-detail-page-CZbdugWZ.js +0 -180
- package/dist/gateway/static/root/assets/note-time-RdyBZxj3.js +0 -1
- package/dist/gateway/static/root/assets/notes-page-mEAwy3e1.js +0 -1
- package/dist/gateway/static/root/assets/schema-form-DEvdni_r.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-BsgffzV4.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-t6v8Dwb8.js +0 -2
- package/dist/gateway/static/root/assets/settings-form-section-BoYYZmJG.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-ClIthYF8.js +0 -3
- package/dist/gateway/static/root/assets/share-preview-page-Dd9et7KD.js +0 -2
- package/dist/gateway/static/root/assets/skills-page-DEXtxyfQ.js +0 -2
- package/dist/gateway/static/root/assets/theme-store-BZozwAeK.js +0 -1
- package/dist/gateway/static/root/assets/url-DQRqHuL-.js +0 -3
- package/dist/gateway/static/root/assets/vendor-codemirror-DYoKfS8f.js +0 -45
- package/dist/gateway/static/root/assets/voice-api-key-field-CNrKzQrf.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-EMZkzJNN.js +0 -18
- package/dist/gateway/static/root/favicon-16.png +0 -0
- package/dist/gateway/static/root/favicon-32.png +0 -0
- package/dist/src/agent/goals/checklist-user.d.ts +0 -24
- package/dist/src/agent/goals/checklist-user.js +0 -92
- package/dist/src/agent/goals/checklist-user.js.map +0 -1
- package/dist/src/agent/goals/goal-run-store.d.ts +0 -19
- package/dist/src/agent/goals/goal-run-store.js +0 -138
- package/dist/src/agent/goals/goal-run-store.js.map +0 -1
- package/dist/src/agent/goals/goal-run-types.d.ts +0 -28
- package/dist/src/agent/goals/goal-run-types.js +0 -6
- package/dist/src/agent/goals/goal-run-types.js.map +0 -1
- package/dist/src/agent/goals/patch-from-user-action.d.ts +0 -20
- package/dist/src/agent/goals/patch-from-user-action.js +0 -103
- package/dist/src/agent/goals/patch-from-user-action.js.map +0 -1
- package/dist/src/cron/persistence.d.ts +0 -62
- package/dist/src/cron/persistence.js +0 -188
- package/dist/src/cron/persistence.js.map +0 -1
- /package/dist/gateway/static/root/assets/{note-detail-page-D4ZIVQbk.css → block-editor-D4ZIVQbk.css} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./url-DQRqHuL-.js";import{o as a}from"./vendor-swr-BIWyz7Rc.js";import{a as o,n as s}from"./fetch-CFdKBnE6.js";import{i as c,r as l}from"./gateway-startup-retry-DdngdObI.js";import{$r as u,J as d,Po as f,Z as p,Zo as m,di as h,do as g,fi as _,ja as v,pi as y,q as b,ta as x}from"./index-C_2yKRJX.js";var S=`/api/image/providers`;async function ee(){return(await s(i(`/api/image/providers`)))?.payload?.providers??[]}var C=e(t(),1),te=n();function w(){return{apiKey:``,region:``,baseUrl:``,imageBaseUrl:``}}function ne(e){return e?.apiKey?`••••••••••••`:``}function T(e,t){let n=(()=>{if(!e||typeof e!=`object`||!(`providersConfig`in e))return;let t=e.providersConfig;if(!(!t||typeof t!=`object`||Array.isArray(t)))return t})(),r={};for(let e of t){let t=n?.[e];r[e]={apiKey:ne(t),region:t?.region??``,baseUrl:t?.baseUrl??``,imageBaseUrl:t?.imageBaseUrl??``}}return r}function E(e,t,n){let r=e[n].trim();if(r!==t[n].trim())return r||null}function D(e,t){let n=e.trim(),r=t.trim();if(n!==r&&!(p(n)&&p(r)))return n||(r?null:void 0)}function O(e,t,n){let r={};for(let i of e){let e=t[i]??w(),a=n[i]??w();if(JSON.stringify(e)===JSON.stringify(a))continue;let o={},s=D(e.apiKey,a.apiKey);s!==void 0&&(o.apiKey=s);let c=E(e,a,`region`);c!==void 0&&(o.region=c);let l=E(e,a,`baseUrl`);l!==void 0&&(o.baseUrl=l);let u=E(e,a,`imageBaseUrl`);u!==void 0&&(o.imageBaseUrl=u),Object.keys(o).length>0&&(r[i]=o)}return r}async function k(e){let t=await s(i(`/api/image/providers/${encodeURIComponent(e)}/reveal-api-key`),{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!t.ok||!t.payload)throw Error(t.error?.message??`Reveal failed`);return t.payload}async function A(e){Object.keys(e).length!==0&&(await s(i(`/api/config`),{method:`PATCH`,body:JSON.stringify({providersConfig:e})}),await l())}var j=r();function re(e){let t=(0,te.c)(18),{providerId:n,value:r,onChange:i,labels:a,apiKeyLinks:o,apiKeyLinkLabels:s}=e,c;t[0]===n?c=t[1]:(c=()=>k(n).then(M),t[0]=n,t[1]=c);let l=c,f=`img-cred-key-${n}`,p;t[2]!==a.apiKeyLabel||t[3]!==f?(p=(0,j.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:f,children:a.apiKeyLabel}),t[2]=a.apiKeyLabel,t[3]=f,t[4]=p):p=t[4];let m;t[5]!==s||t[6]!==o?(m=o.length>0?(0,j.jsx)(`div`,{className:`flex flex-col gap-1`,children:o.map(e=>(0,j.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex w-fit items-center gap-1 text-xs font-medium text-accent-fg hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[d(e.kind,s),(0,j.jsx)(g,{className:`size-3`,"aria-hidden":!0})]},`${e.kind}-${e.href}`))}):null,t[5]=s,t[6]=o,t[7]=m):m=t[7];let h=`img-cred-key-${n}`,_;t[8]!==a||t[9]!==i||t[10]!==l||t[11]!==h||t[12]!==r?(_=(0,j.jsx)(u,{id:h,value:r,onChange:i,placeholder:a.optionalPlaceholder,labels:a,reveal:l,loadFailedLabel:a.loadFailed,maskedHelp:a.maskedHelp,notInConfigFile:a.notInConfigFile}),t[8]=a,t[9]=i,t[10]=l,t[11]=h,t[12]=r,t[13]=_):_=t[13];let v;return t[14]!==p||t[15]!==m||t[16]!==_?(v=(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[p,m,_]}),t[14]=p,t[15]=m,t[16]=_,t[17]=v):v=t[17],v}function M(e){return e.apiKey??null}function N(){return y(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,h)}function ie(){return y(N(),`appearance-none bg-[length:1rem] bg-[right_0.5rem_center] bg-no-repeat pr-9`)}var P=`__custom__`;function ae(e,t){if(!e.region.trim()&&!e.imageBaseUrl.trim())return``;let n=e.region.trim().toLowerCase();return t.some(e=>e.value===n)?n:P}function oe(e,t){let n=e.baseUrl.trim().replace(/\/+$/,``);if(!n)return``;let r=t.map(e=>e.value.replace(/\/+$/,``)).indexOf(n);return r>=0?t[r].value:P}function se(e,t,n){return t===`beijing`?e.dashscopeRegion_beijing:t===`singapore`?e.dashscopeRegion_singapore:t===`us`?e.dashscopeRegion_us:n}function ce(e,t){return t===`minimax`?e.minimaxClusterLabel:t===`fal`?e.falQueueBaseLabel:e.baseUrlLabel}function le(e,t){return t===`minimax`?e.minimaxClusterHint:t===`fal`?e.falQueueBaseHint:null}function ue(e,t){return JSON.stringify(e)!==JSON.stringify(t)}function de(e,t){return t===1?e.modelCountOne:e.modelCountMany.replace(`{count}`,String(t))}function fe(e){let t=(0,te.c)(76),{summaries:n,credDraft:r,credBaseline:i,credDirty:a,credSaving:o,credError:s,credSavedFlash:c,credNoopFlash:l,updateCredRow:u,onDiscardCredentials:d,onSaveCredentials:p,extensionIds:h,showExtensionLinks:S,showImageModelsLink:ee,hideActions:ne,language:T,apiKeyLinkLabels:E,messages:D}=e,O=ne===void 0?!1:ne,k;t[0]===n?k=t[1]:(k=n.some(_e),t[0]=n,t[1]=k);let A=k,M;t[2]===n?M=t[3]:(M=n.some(ge),t[2]=n,t[3]=M);let fe=M,[F,ve]=(0,C.useState)(he),[I,L]=(0,C.useState)(me),R;if(t[4]!==i||t[5]!==r||t[6]!==n){R=new Set;for(let e of n)ue(r[e.id]??w(),i[e.id]??w())&&R.add(e.id);t[4]=i,t[5]=r,t[6]=n,t[7]=R}else R=t[7];let z=R,B;t[8]!==z||t[9]!==I||t[10]!==F?(B=e=>I.has(e)?!1:F.has(e)?!0:z.has(e),t[8]=z,t[9]=I,t[10]=F,t[11]=B):B=t[11];let V=B,H;t[12]===V?H=t[13]:(H=e=>{if(V(e)){L(t=>new Set(t).add(e)),ve(t=>{let n=new Set(t);return n.delete(e),n});return}L(t=>{let n=new Set(t);return n.delete(e),n}),ve(t=>new Set(t).add(e))},t[12]=V,t[13]=H);let U=H;if(n.length===0)return null;let W;t[14]===D.credentialsIntro?W=t[15]:(W=(0,j.jsx)(`p`,{children:D.credentialsIntro}),t[14]=D.credentialsIntro,t[15]=W);let G;t[16]!==A||t[17]!==D.regionHint?(G=A?(0,j.jsx)(`p`,{className:`text-fg-subtle`,children:D.regionHint}):null,t[16]=A,t[17]=D.regionHint,t[18]=G):G=t[18];let K;t[19]!==fe||t[20]!==D.endpointPresetsHint?(K=fe?(0,j.jsx)(`p`,{className:`text-fg-subtle`,children:D.endpointPresetsHint}):null,t[19]=fe,t[20]=D.endpointPresetsHint,t[21]=K):K=t[21];let q;t[22]!==ee||t[23]!==D.imageModelsLinkTitle||t[24]!==D.openImageModelsPage?(q=ee?(0,j.jsx)(`p`,{children:(0,j.jsx)(m,{to:`/settings/credentials?tab=image-models`,className:`font-medium text-accent hover:underline`,title:D.imageModelsLinkTitle,children:D.openImageModelsPage})}):null,t[22]=ee,t[23]=D.imageModelsLinkTitle,t[24]=D.openImageModelsPage,t[25]=q):q=t[25];let J;t[26]!==W||t[27]!==G||t[28]!==K||t[29]!==q?(J=(0,j.jsxs)(`div`,{className:`flex flex-col gap-1 text-xs leading-relaxed text-fg-muted`,children:[W,G,K,q]}),t[26]=W,t[27]=G,t[28]=K,t[29]=q,t[30]=J):J=t[30];let Y;t[31]===s?Y=t[32]:(Y=s?(0,j.jsx)(`div`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:s}):null,t[31]=s,t[32]=Y);let X;t[33]!==a||t[34]!==l||t[35]!==c||t[36]!==o||t[37]!==O||t[38]!==d||t[39]!==p||t[40]!==D.credentialsNothingToSave||t[41]!==D.credentialsSaved||t[42]!==D.discardCredentials||t[43]!==D.saveCredentials||t[44]!==D.savingCredentials?(X=O?null:(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[c?(0,j.jsx)(`span`,{className:`text-sm text-fg-muted`,children:D.credentialsSaved}):null,l?(0,j.jsx)(`span`,{className:`text-sm text-fg-muted`,children:D.credentialsNothingToSave}):null,(0,j.jsx)(_,{type:`button`,variant:`secondary`,onClick:d,disabled:!a||o,children:D.discardCredentials}),(0,j.jsx)(_,{type:`button`,variant:`primary`,onClick:p,disabled:!a||o,children:o?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(v,{className:`size-3.5 animate-spin`}),(0,j.jsx)(`span`,{className:`ml-1.5`,children:D.savingCredentials})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(x,{className:`size-3.5`}),(0,j.jsx)(`span`,{className:`ml-1.5`,children:D.saveCredentials})]})})]}),t[33]=a,t[34]=l,t[35]=c,t[36]=o,t[37]=O,t[38]=d,t[39]=p,t[40]=D.credentialsNothingToSave,t[41]=D.credentialsSaved,t[42]=D.discardCredentials,t[43]=D.saveCredentials,t[44]=D.savingCredentials,t[45]=X):X=t[45];let Z;if(t[46]!==E||t[47]!==i||t[48]!==r||t[49]!==h||t[50]!==V||t[51]!==T||t[52]!==S||t[53]!==n||t[54]!==D||t[55]!==U||t[56]!==u){let e;t[58]!==E||t[59]!==i||t[60]!==r||t[61]!==h||t[62]!==V||t[63]!==T||t[64]!==S||t[65]!==D||t[66]!==U||t[67]!==u?(e=e=>{let t=r[e.id]??w(),n=e.ui,a=S&&h.has(e.id)?`/settings/ext/${encodeURIComponent(e.id)}`:null,o=ue(t,i[e.id]??w()),s=V(e.id),c=e.label??e.id,l=de(D,e.models.length);return(0,j.jsxs)(`section`,{className:y(`overflow-hidden rounded-xl border bg-surface-panel shadow-sm transition-colors dark:shadow-none`,o?`border-accent/50`:`border-edge`),children:[(0,j.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-3 px-4 py-3 text-left hover:bg-surface-hover/70`,"aria-expanded":s,"aria-controls":`img-provider-credentials-${e.id}`,onClick:()=>U(e.id),children:[(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,j.jsx)(`span`,{className:`truncate text-sm font-semibold text-fg`,children:c}),(0,j.jsx)(`span`,{className:`rounded-full bg-surface-subtle px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:e.id}),o?(0,j.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:D.unsavedChanges}):null,e.configured?(0,j.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:D.configured}):(0,j.jsx)(`span`,{className:`rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-700 dark:text-amber-300`,children:D.missingKey})]}),(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-xs text-fg-subtle`,children:[(0,j.jsx)(`span`,{children:l}),e.defaultModel?(0,j.jsxs)(`span`,{className:`min-w-0 truncate`,children:[(0,j.jsxs)(`span`,{className:`text-fg-muted`,children:[D.defaultModel,`:`]}),` `,e.id,`/`,e.defaultModel]}):null]})]}),(0,j.jsx)(f,{className:y(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,s?`rotate-180`:`rotate-0`),"aria-hidden":`true`}),(0,j.jsx)(`span`,{className:`sr-only`,children:s?D.collapseProvider:D.expandProvider})]}),s?(0,j.jsxs)(`div`,{id:`img-provider-credentials-${e.id}`,className:`border-t border-edge px-4 py-4`,children:[a?(0,j.jsxs)(m,{to:a,className:`mb-3 inline-flex items-center gap-1 text-xs font-medium text-accent hover:underline`,title:D.extensionSettingsLinkTitle,children:[(0,j.jsx)(g,{className:`size-3`}),D.openExtensionSettings]}):null,e.models.length>0?(0,j.jsxs)(`p`,{className:`mb-3 text-xs leading-relaxed text-fg-subtle`,children:[(0,j.jsxs)(`span`,{className:`text-fg-muted`,children:[D.modelsLabel,`:`]}),` `,e.models.map(t=>`${e.id}/${t}`).join(`, `)]}):null,(0,j.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,j.jsx)(re,{providerId:e.id,value:t.apiKey,onChange:t=>u(e.id,{apiKey:t}),apiKeyLinks:b(e.id,T),apiKeyLinkLabels:E,labels:{apiKeyLabel:D.apiKeyLabel,optionalPlaceholder:D.optionalPlaceholder,maskedHelp:D.apiKeyMaskedHelp,copy:D.apiKeyCopy,copied:D.apiKeyCopied,show:D.apiKeyShow,hide:D.apiKeyHide,notInConfigFile:D.apiKeyNotInConfigFile,loadFailed:D.apiKeyRevealFailed}}),n?.regions?.length?(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,j.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-region-preset-${e.id}`,children:D.regionLabel}),(0,j.jsxs)(`select`,{id:`img-cred-region-preset-${e.id}`,className:ie(),value:ae(t,n.regions),onChange:t=>{let r=t.target.value;if(r===``){u(e.id,{region:``,imageBaseUrl:``});return}if(r===P){u(e.id,{region:``,imageBaseUrl:``});return}let i=n.regions.find(e=>e.value===r);i&&u(e.id,{region:i.value,imageBaseUrl:i.imageBaseUrl})},children:[(0,j.jsx)(`option`,{value:``,children:D.regionPresetDefault}),n.regions.map(e=>(0,j.jsx)(`option`,{value:e.value,children:se(D,e.value,e.label)},e.value)),(0,j.jsx)(`option`,{value:P,children:D.regionPresetCustom})]}),ae(t,n.regions)===P?(0,j.jsxs)(`div`,{className:`mt-2 grid gap-2 sm:grid-cols-2`,children:[(0,j.jsx)(`input`,{type:`text`,className:N(),value:t.region,placeholder:`region`,onChange:t=>u(e.id,{region:t.target.value})}),(0,j.jsx)(`input`,{type:`url`,className:N(),value:t.imageBaseUrl,placeholder:D.imageBaseUrlLabel,onChange:t=>u(e.id,{imageBaseUrl:t.target.value})})]}):null]}):null,n?.baseUrlPresets?.length?(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,j.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-base-preset-${e.id}`,children:ce(D,n.baseUrlPresetKind)}),le(D,n.baseUrlPresetKind)?(0,j.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:le(D,n.baseUrlPresetKind)}):null,(0,j.jsxs)(`select`,{id:`img-cred-base-preset-${e.id}`,className:ie(),value:oe(t,n.baseUrlPresets),onChange:t=>{let n=t.target.value;if(n===``){u(e.id,{baseUrl:``});return}if(n===P){u(e.id,{baseUrl:``});return}u(e.id,{baseUrl:n.replace(/\/+$/,``)})},children:[(0,j.jsx)(`option`,{value:``,children:D.baseUrlPresetDefault}),n.baseUrlPresets.map(pe),(0,j.jsx)(`option`,{value:P,children:D.baseUrlPresetCustom})]}),oe(t,n.baseUrlPresets)===P?(0,j.jsx)(`input`,{type:`url`,className:y(N(),`mt-2`),value:t.baseUrl,placeholder:`https://…`,onChange:t=>u(e.id,{baseUrl:t.target.value})}):null]}):null,n?.regions?.length&&ae(t,n.regions)!==P?(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,j.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-imgbase-ro-${e.id}`,children:D.imageBaseUrlLabel}),(0,j.jsx)(`input`,{id:`img-cred-imgbase-ro-${e.id}`,type:`url`,readOnly:!0,className:y(N(),`cursor-not-allowed opacity-90`),value:t.imageBaseUrl,title:D.imageBaseUrlPresetHint}),(0,j.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:D.imageBaseUrlPresetHint})]}):null]})]}):null]},e.id)},t[58]=E,t[59]=i,t[60]=r,t[61]=h,t[62]=V,t[63]=T,t[64]=S,t[65]=D,t[66]=U,t[67]=u,t[68]=e):e=t[68],Z=n.map(e),t[46]=E,t[47]=i,t[48]=r,t[49]=h,t[50]=V,t[51]=T,t[52]=S,t[53]=n,t[54]=D,t[55]=U,t[56]=u,t[57]=Z}else Z=t[57];let Q;t[69]===Z?Q=t[70]:(Q=(0,j.jsx)(`div`,{className:`flex flex-col gap-4`,children:Z}),t[69]=Z,t[70]=Q);let $;return t[71]!==J||t[72]!==Y||t[73]!==X||t[74]!==Q?($=(0,j.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[J,Y,X,Q]}),t[71]=J,t[72]=Y,t[73]=X,t[74]=Q,t[75]=$):$=t[75],$}function pe(e){return(0,j.jsx)(`option`,{value:e.value,children:e.label},e.value)}function me(){return new Set}function he(){return new Set}function ge(e){return(e.ui?.baseUrlPresets?.length??0)>0}function _e(e){return(e.ui?.regions?.length??0)>0}function F(e){let t=c(o(e=>!!e.token)),n=t.data,r=(0,C.useMemo)(()=>e.map(e=>e.id),[e]),s=(0,C.useRef)(!1),[l,u]=(0,C.useState)(null),[d,f]=(0,C.useState)(!1),[p,m]=(0,C.useState)(null),[h,g]=(0,C.useState)(!1),[_,v]=(0,C.useState)(!1),y=(0,C.useMemo)(()=>T(n?.payload?.config,r),[n?.payload?.config,r]),b=l??y,x=y;return{gwSwr:t,credDraft:b,credBaseline:x,credDirty:(0,C.useMemo)(()=>JSON.stringify(b)!==JSON.stringify(x),[b,x]),credSaving:d,credError:p,credSavedFlash:h,credNoopFlash:_,updateCredRow:(0,C.useCallback)((e,t)=>{s.current=!0,u(n=>{let r=n??y,i=r[e]??w();return{...r,[e]:{...i,...t}}})},[y]),onDiscardCredentials:(0,C.useCallback)(()=>{s.current=!1,u(null),m(null),g(!1),v(!1)},[]),saveCredentials:(0,C.useCallback)(async e=>{let n=O(r,b,x);if(Object.keys(n).length===0){v(!0),window.setTimeout(()=>v(!1),2200);return}f(!0),m(null),g(!1);try{await A(n),await t.mutate?.(),a(i(S)),s.current=!1,u(null),g(!0),window.setTimeout(()=>g(!1),2e3)}catch(t){m(t instanceof Error?t.message:e)}finally{f(!1)}},[r,b,x,t])}}function ve(){return{enabled:!1,provider:`alibaba`,alibaba:{model:`paraformer-v2`},openai:{model:`whisper-1`},fallback:{enabled:!0,order:[`alibaba`,`openai`]}}}function I(){return{enabled:!1,provider:`openai`,trigger:`always`,maxTextLength:512,timeoutMs:6e4,alibaba:{model:`qwen-tts`,voice:`Cherry`},openai:{model:`tts-1`,voice:`alloy`},edge:{voice:`en-US-MichelleNeural`},minimax:{model:`speech-2.8-hd`,voice:`male-qn-qingse`},"tts-local-cli":{command:``,outputFormat:`wav`}}}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function R(e){return typeof e==`string`&&e.trim().length>0?e.trim():`alibaba`}function z(e,t,n){let r=L(e.providers)?e.providers:void 0,i=r&&L(r[t])?r[t]:void 0;return{...n,...i??{}}}function B(e){let t=ve();if(!L(e))return t;let n=R(e.provider),r=z(e,`alibaba`,t.alibaba??{}),i=z(e,`openai`,t.openai??{}),a=t.fallback??{enabled:!0,order:[`alibaba`,`openai`]};if(L(e.fallback)){let t=Array.isArray(e.fallback.order)?e.fallback.order.filter(e=>typeof e==`string`&&e.trim().length>0):a.order;a={enabled:typeof e.fallback.enabled==`boolean`?e.fallback.enabled:a.enabled,order:t.length?t:a.order}}let o=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,alibaba:r,openai:i,...o?{providers:o}:{},fallback:a}}function V(e){return typeof e==`string`&&e.trim().length>0?e.trim():`openai`}function H(e){let t=I();if(!L(e))return t;let n=V(e.provider),r=e.trigger===`off`||e.trigger===`always`||e.trigger===`inbound`||e.trigger===`tagged`?e.trigger:`always`,i=t[`tts-local-cli`]??{},a=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,trigger:r,maxTextLength:typeof e.maxTextLength==`number`&&Number.isFinite(e.maxTextLength)?e.maxTextLength:t.maxTextLength,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)?e.timeoutMs:t.timeoutMs,...a?{providers:a}:{},alibaba:z(e,`alibaba`,t.alibaba??{}),openai:z(e,`openai`,t.openai??{}),edge:z(e,`edge`,t.edge??{}),minimax:z(e,`minimax`,t.minimax??{}),"tts-local-cli":z(e,`tts-local-cli`,i)}}function U(e){let{alibaba:t,openai:n,providers:r,...i}=e,a={...r??{}};return t&&(a.alibaba={...a.alibaba??{},...t}),n&&(a.openai={...a.openai??{},...n}),{...i,...Object.keys(a).length>0?{providers:a}:{}}}function W(e){let{alibaba:t,openai:n,edge:r,minimax:i,"tts-local-cli":a,providers:o,...s}=e,c={...o??{}};return t&&(c.alibaba={...c.alibaba??{},...t}),n&&(c.openai={...c.openai??{},...n}),r&&(c.edge={...c.edge??{},...r}),i&&(c.minimax={...c.minimax??{},...i}),a&&(c[`tts-local-cli`]={...c[`tts-local-cli`]??{},...a}),{...s,...Object.keys(c).length>0?{providers:c}:{}}}function G(e){let t=L(e)?e:{};return{stt:B(t.stt),tts:H(t.tts)}}async function K(){return G((await s(i(`/api/config`))).payload?.config??{})}async function q(e){await s(i(`/api/config`),{method:`PATCH`,body:JSON.stringify({stt:U(e.stt),tts:W(e.tts)})}),l()}async function J(){let e=await s(i(`/api/voice/models`));if(!e.payload?.models)throw Error(`Missing voice models payload`);return e.payload.models}async function Y(){let e=await s(i(`/api/voice/providers`));if(!e.payload?.providers)throw Error(`Missing voice providers payload`);return e.payload}async function X(){let e=await s(i(`/api/voice/stt-providers`));if(!e.payload?.providers)throw Error(`Missing STT providers payload`);return e.payload}async function Z(e){let t=await s(i(`/api/voice/reveal-api-key`),{method:`POST`,body:JSON.stringify(e)});if(!t.payload)throw Error(`Missing reveal payload`);return t.payload}function Q(e){let t=(0,te.c)(15),{kind:n,providerId:r,fieldId:i,value:a,onChange:o,labels:s,placeholder:c,className:l}=e,d=c===void 0?`sk-...`:c,f;t[0]!==n||t[1]!==r?(f=()=>Z({kind:n,provider:r}).then($),t[0]=n,t[1]=r,t[2]=f):f=t[2];let p=f,m;t[3]===l?m=t[4]:(m=y(`flex min-w-0 flex-col gap-1.5`,l),t[3]=l,t[4]=m);let h;t[5]!==i||t[6]!==s||t[7]!==o||t[8]!==d||t[9]!==p||t[10]!==a?(h=(0,j.jsx)(u,{id:i,value:a,onChange:o,placeholder:d,labels:s,reveal:p,loadFailedLabel:s.loadFailed,maskedHelp:s.maskedHelp,notInConfigFile:s.notInConfigFile,inputClassName:`text-xs`}),t[5]=i,t[6]=s,t[7]=o,t[8]=d,t[9]=p,t[10]=a,t[11]=h):h=t[11];let g;return t[12]!==m||t[13]!==h?(g=(0,j.jsx)(`div`,{className:m,children:h}),t[12]=m,t[13]=h,t[14]=g):g=t[14],g}function $(e){return e.apiKey??null}export{X as a,F as c,S as d,K as i,fe as l,J as n,G as o,Y as r,q as s,Q as t,ee as u};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{i,o as a}from"./url-DQRqHuL-.js";import{i as o}from"./vendor-swr-BIWyz7Rc.js";import{t as s}from"./circle-check-C23XjkUj.js";import{t as c}from"./copy-Dv6d4Dvw.js";import{a as l}from"./fetch-CFdKBnE6.js";import{A as u,Ar as d,C as f,D as p,Do as m,Dr as h,E as g,Ea as _,Er as v,Fo as y,Gi as b,M as x,Nt as S,O as C,Or as w,Po as T,S as E,T as D,Ti as O,Tr as k,Ua as A,Ui as j,Vi as M,Vr as N,Zi as P,_ as ee,a as F,b as I,ba as te,bi as ne,d as L,ei as R,es as re,f as z,fa as B,fi as V,fo as H,g as U,h as W,hi as ie,i as ae,ia as G,ii as K,j as oe,ji as se,jr as ce,k as le,kr as q,m as ue,mo as de,ns as fe,o as pe,pi as J,r as me,ra as he,ro as ge,s as _e,u as ve,ua as ye,v as be,w as xe,x as Se,y as Ce,yo as we,zo as Te,zt as Ee}from"./index-C_2yKRJX.js";import{a as De,c as Oe,d as ke,f as Ae,h as Y,i as je,l as Me,m as Ne,n as Pe,o as Fe,p as Ie,r as Le,s as X,t as Re,u as ze}from"./workflow-page.utils-EYg_xBQS.js";var Z=e(t(),1),Q=n(),Be=[`queued`,`running`,`succeeded`,`attention`],Ve=10080*60*1e3,He=new Set([`failed`,`timeout`,`cancelled`]);function Ue(e){return e.metadata?.sessionKey?.trim()||null}function We(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function Ge(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 Ke(e,t=90){let n=e.metadata?.input?.goal?.trim()||(typeof e.metadata?.input?.payload==`string`?e.metadata.input.payload.trim():null)||Ge(e.metadata?.input?.payload,[`query`,`goal`,`prompt`,`input`,`message`])||Ge(e.metadata?.input?.variables,[`query`,`goal`,`prompt`,`input`,`message`]);return n?We(n,t):null}function qe(e,t=90){return Ke(e,t)??We(e.title?.trim()||e.definitionId,t)}function Je(e,t=44){return We(e.title?.trim()||e.definitionId,t)}function Ye(e,t){let n=t.trim().toLowerCase();return n?[Ke(e,500),e.title,e.definitionId,e.id].filter(Boolean).join(` `).toLowerCase().includes(n):!0}function Xe(e,t){let n=t.workflowFilterId.trim();return e.filter(e=>n&&e.definitionId!==n||!ze(e,t.triggerFilter??`all`)?!1:Ye(e,t.searchQuery))}function Ze(e){return e.completedAtMs??e.createdAtMs}function Qe(e,t){return t-Ze(e)<=Ve}function $e(e,t){return e.status===`queued`?`queued`:e.status===`running`?`running`:e.status===`succeeded`?Qe(e,t)?`succeeded`:null:He.has(e.status)?`attention`:null}function et(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)=>Ze(t)-Ze(e))}function tt(e,t){let n={queued:[],running:[],succeeded:[],attention:[]};for(let r of e){let e=$e(r,t);e&&n[e].push(r)}let r=et(`succeeded`,n.succeeded),i=r.length,a=r.slice(0,20),o=Math.max(0,i-20);return Be.map(e=>e===`succeeded`?{id:e,runs:a,totalInWindow:i,hiddenByCap:o}:{id:e,runs:et(e,n[e])})}var nt=new Map;function rt(e){let t=nt.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:`auto`}),nt.set(e,t)),t}function it(e,t,n){let r=Math.round((t-e)/1e3),i=rt(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 at(e){return e.status===`queued`||e.status===`running`}function ot(e){return e.status===`failed`||e.status===`timeout`||e.status===`cancelled`}var $=r(),st=(0,Z.memo)(function(e){let t=(0,Q.c)(65),{run:n,language:r,localeTag:i,nowMs:o,selected:s,onOpen:c,onOpenChat:l,onCancel:u,onRetry:d}=e,f=a(r).workflows,[p,m]=(0,Z.useState)(!1),h;t[0]===n?h=t[1]:(h=Ue(n),t[0]=n,t[1]=h);let g=!h,_;t[2]===n?_=t[3]:(_=at(n),t[2]=n,t[3]=_);let v=_,y=n.status===`running`||n.status===`queued`,b;t[4]!==n.metrics.agentCount||t[5]!==n.metrics.doneAgentCount?(b=n.metrics.agentCount>0?Math.round(n.metrics.doneAgentCount/n.metrics.agentCount*100):0,t[4]=n.metrics.agentCount,t[5]=n.metrics.doneAgentCount,t[6]=b):b=t[6];let x=b,S=n.metrics.errorAgentCount>0,C=n.startedAtMs??n.createdAtMs,w=je(v?o-C:n.metrics.durationMs),T=X(f.taskArtifacts,{count:n.metrics.artifactCount}),E;t[7]===n?E=t[8]:(E=qe(n),t[7]=n,t[8]=E);let D=E,k;t[9]===n?k=t[10]:(k=Je(n),t[9]=n,t[10]=k);let A=k,j;t[11]!==c||t[12]!==n?(j=()=>{c(n)},t[11]=c,t[12]=n,t[13]=j):j=t[13];let M=j,N;t[14]!==g||t[15]!==l||t[16]!==n?(N=()=>{g||l(n)},t[14]=g,t[15]=l,t[16]=n,t[17]=N):N=t[17];let P=N,ee=s?`border-accent/70 ring-1 ring-accent/30`:`border-edge`,F;t[18]===ee?F=t[19]:(F=J(`group relative overflow-hidden rounded-xl border bg-surface-panel p-3.5 transition-colors`,ee,`hover:border-edge-strong hover:bg-surface-hover/50`),t[18]=ee,t[19]=F);let I;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(I=J(`w-full text-left`,K.focusRingPanel),t[20]=I):I=t[20];let te;t[21]===D?te=t[22]:(te=(0,$.jsx)(`div`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-fg`,children:D}),t[21]=D,t[22]=te);let ne;t[23]===A?ne=t[24]:(ne=(0,$.jsx)(`div`,{className:`mt-1 truncate text-[11px] font-medium text-fg-muted`,children:A}),t[23]=A,t[24]=ne);let L;t[25]!==te||t[26]!==ne?(L=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[te,ne]}),t[25]=te,t[26]=ne,t[27]=L):L=t[27];let R;t[28]===n.status?R=t[29]:(R=J(`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold shadow-sm`,ke(n.status)),t[28]=n.status,t[29]=R);let re;t[30]!==i||t[31]!==o||t[32]!==C?(re=it(C,o,i),t[30]=i,t[31]=o,t[32]=C,t[33]=re):re=t[33];let z;t[34]===re?z=t[35]:(z=(0,$.jsx)(`span`,{children:re}),t[34]=re,t[35]=z);let B=w===`—`?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,$.jsx)(`span`,{children:X(f.taskElapsed,{duration:w})})]}),U;t[36]!==z||t[37]!==B?(U=(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5 text-[11px] text-fg-subtle`,children:[z,B]}),t[36]=z,t[37]=B,t[38]=U):U=t[38];let W=n.metrics.artifactCount>0?(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 font-medium text-fg-muted`,children:T}):null,ie=s?(0,$.jsx)(`span`,{className:`font-medium text-accent-fg`,children:f.taskOpenDetails}):null,ae;t[39]!==W||t[40]!==ie?(ae=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-subtle`,children:[W,ie]}),t[39]=W,t[40]=ie,t[41]=ae):ae=t[41];let G;t[42]===m?G=t[43]:(G=()=>m(lt),t[42]=m,t[43]=G);let oe;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(oe=(0,$.jsx)(H,{className:`size-4`,"aria-hidden":!0}),t[44]=oe):oe=t[44];let se;t[45]!==f.taskActionsAria||t[46]!==p||t[47]!==G?(se=(0,$.jsx)(V,{variant:`ghost`,className:`size-7 p-0 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,"aria-label":f.taskActionsAria,"aria-expanded":p,onClick:G,children:oe}),t[45]=f.taskActionsAria,t[46]=p,t[47]=G,t[48]=se):se=t[48];let ce;t[49]!==v||t[50]!==g||t[51]!==P||t[52]!==f.cancel||t[53]!==f.continueInChat||t[54]!==f.rerun||t[55]!==f.taskCloseMenu||t[56]!==p||t[57]!==u||t[58]!==d||t[59]!==n||t[60]!==m?(ce=p?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-10 cursor-default`,"aria-label":f.taskCloseMenu,onClick:()=>m(!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)(ct,{label:f.continueInChat,disabled:g,onClick:()=>{m(!1),P()}}),v?(0,$.jsx)(ct,{label:f.cancel,tone:`danger`,onClick:()=>{m(!1),u(n.id)}}):null,ot(n)?(0,$.jsx)(ct,{label:f.rerun,onClick:()=>{m(!1),d(n.id)}}):null]})]}):null,t[49]=v,t[50]=g,t[51]=P,t[52]=f.cancel,t[53]=f.continueInChat,t[54]=f.rerun,t[55]=f.taskCloseMenu,t[56]=p,t[57]=u,t[58]=d,t[59]=n,t[60]=m,t[61]=ce):ce=t[61];let le;return t[62]!==se||t[63]!==ce?(le=(0,$.jsxs)(`div`,{className:`absolute right-2 top-2`,children:[se,ce]}),t[62]=se,t[63]=ce,t[64]=le):le=t[64],(0,$.jsxs)(`div`,{className:F,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:M,"aria-label":`${f.taskOpenDetails}: ${D}`,"aria-current":s?`true`:void 0,className:I,children:[(0,$.jsxs)(`div`,{className:`pr-7`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-2`,children:[L,(0,$.jsx)(`span`,{className:R,children:f.status[n.status]??n.status})]}),U]}),y?(0,$.jsxs)(`div`,{className:`mt-2.5`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-fg-muted`,children:[(0,$.jsx)(`span`,{children:X(f.agentProgress,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}),(0,$.jsxs)(`span`,{children:[x,`%`]})]}),(0,$.jsx)(`div`,{className:`mt-1.5 h-1.5 overflow-hidden rounded-full bg-surface-hover`,children:(0,$.jsx)(`div`,{className:`h-full rounded-full bg-accent transition-all`,style:{width:`${x}%`}})})]}):null,ae,S?(0,$.jsxs)(`div`,{className:`mt-2 flex items-center gap-1 text-[11px] text-amber-700 dark:text-amber-300`,children:[(0,$.jsx)(O,{className:`size-3 shrink-0`,"aria-hidden":!0}),X(f.runRowErrorSummary,{count:n.metrics.errorAgentCount})]}):null]}),le]})});function ct(e){let t=(0,Q.c)(8),{label:n,disabled:r,tone:i,onClick:a}=e,o=r?`cursor-not-allowed text-fg-subtle`:`text-fg hover:bg-surface-hover`,s=i===`danger`&&!r&&`text-red-600 dark:text-red-300`,c;t[0]!==o||t[1]!==s?(c=J(`block w-full px-3 py-1.5 text-left text-xs`,o,s),t[0]=o,t[1]=s,t[2]=c):c=t[2];let l;return t[3]!==r||t[4]!==n||t[5]!==a||t[6]!==c?(l=(0,$.jsx)(`button`,{type:`button`,disabled:r,onClick:a,className:c,children:n}),t[3]=r,t[4]=n,t[5]=a,t[6]=c,t[7]=l):l=t[7],l}function lt(e){return!e}function ut(e,t){return t.boardColumns[e]}var dt=(0,Z.memo)(function(e){let t=(0,Q.c)(14),{column:n,language:r,localeTag:i,nowMs:o,selectedRunId:s,onOpenRun:c,onOpenRunChat:l,onCancelRun:u,onRetryRun:d}=e,f=a(r).workflows,[p,m]=(0,Z.useState)(!1),h=n.id===`succeeded`,g=h?5:n.runs.length,_;t[0]!==g||t[1]!==n.runs||t[2]!==p||t[3]!==h?(_=h&&!p?n.runs.slice(0,g):n.runs,t[0]=g,t[1]=n.runs,t[2]=p,t[3]=h,t[4]=_):_=t[4];let v=_,y=h&&n.runs.length>5&&!p,b=h&&p,x;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(x=J(`flex min-h-112 w-73 shrink-0 snap-center flex-col rounded-2xl border border-edge bg-surface-panel/40`),t[5]=x):x=t[5];let S;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(`span`,{className:`size-2 rounded-full bg-accent`,"aria-hidden":!0}),t[6]=S):S=t[6];let C;t[7]===n.runs.length?C=t[8]:(C=(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]=C);let w=v.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:f.boardColumnEmpty}):v.map(e=>(0,$.jsx)(st,{run:e,language:r,localeTag:i,nowMs:o,selected:e.id===s,onOpen:c,onOpenChat:l,onCancel:u,onRetry:d},e.id)),T=y?(0,$.jsx)(V,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>m(!0),children:X(f.boardExpandSucceeded,{count:Math.min(n.runs.length,n.totalInWindow??n.runs.length)})}):null,E=b?(0,$.jsx)(V,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>m(!1),children:f.boardCollapseSucceeded}):null,D=h&&(n.hiddenByCap??0)>0?(0,$.jsx)(`p`,{className:`px-1 text-center text-[11px] text-fg-subtle`,children:X(f.boardSucceededCapHint,{count:n.hiddenByCap??0})}):null,O;return t[9]!==w||t[10]!==T||t[11]!==E||t[12]!==D?(O=(0,$.jsxs)(`div`,{className:`flex flex-1 flex-col gap-3 p-2.5`,children:[w,T,E,D]}),t[9]=w,t[10]=T,t[11]=E,t[12]=D,t[13]=O):O=t[13],(0,$.jsxs)(`section`,{className:x,"aria-label":ut(n.id,f),children:[(0,$.jsxs)(`header`,{className:`sticky top-0 z-10 flex 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:[S,(0,$.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:ut(n.id,f)})]}),C]}),O]})}),ft=(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(pt),t[0]=n,t[1]=g);let _=g,[v,y]=(0,Z.useState)(mt),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=tt(Xe(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(ht,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)(V,{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:`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)(dt,{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 min-w-0 snap-x snap-mandatory gap-3 overflow-x-auto px-1 pb-2`,children:T}),t[43]=T,t[44]=E),E});function pt(e){return e.status===`queued`||e.status===`running`}function mt(){return Date.now()}function ht(e,t){return e+t.runs.length}var gt=`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 _t(e){let t=(0,Q.c)(44),{open:n,language:r,ownerAgentId:i,saving:o,onClose:s,onSave:c,onSaveAndStart:l}=e,u;t[0]===r?u=t[1]:(u=a(r),t[0]=r,t[1]=u);let f=u.workflows,[p,m]=(0,Z.useState)(`ai`),g,_;t[2]===n?(g=t[3],_=t[4]):(g=()=>{n&&m(`ai`)},_=[n],t[2]=n,t[3]=g,t[4]=_),(0,Z.useEffect)(g,_);let y;t[5]===s?y=t[6]:(y=e=>!e&&s(),t[5]=s,t[6]=y);let b;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(w,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[7]=b):b=t[7];let x;t[8]===f.createWorkflowTitle?x=t[9]:(x=(0,$.jsx)(ce,{className:`text-base font-semibold text-fg`,children:f.createWorkflowTitle}),t[8]=f.createWorkflowTitle,t[9]=x);let S;t[10]===f.createWorkflowHint?S=t[11]:(S=(0,$.jsx)(h,{className:`mt-1 text-sm text-fg-muted`,children:f.createWorkflowHint}),t[10]=f.createWorkflowHint,t[11]=S);let C=p===`ai`,T,E;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>m(`ai`),T=(0,$.jsx)(M,{className:`size-4`,"aria-hidden":!0}),t[12]=T,t[13]=E):(T=t[12],E=t[13]);let D;t[14]!==f.createWorkflowAiTab||t[15]!==C?(D=(0,$.jsx)(vt,{active:C,onClick:E,icon:T,children:f.createWorkflowAiTab}),t[14]=f.createWorkflowAiTab,t[15]=C,t[16]=D):D=t[16];let O=p===`manual`,k,A;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(k=()=>m(`manual`),A=(0,$.jsx)(we,{className:`size-4`,"aria-hidden":!0}),t[17]=k,t[18]=A):(k=t[17],A=t[18]);let j;t[19]!==f.createWorkflowManualTab||t[20]!==O?(j=(0,$.jsx)(vt,{active:O,onClick:k,icon:A,children:f.createWorkflowManualTab}),t[19]=f.createWorkflowManualTab,t[20]=O,t[21]=j):j=t[21];let N;t[22]!==D||t[23]!==j?(N=(0,$.jsxs)(`div`,{className:`mt-4 inline-flex rounded-xl border border-edge bg-surface-base p-1`,children:[D,j]}),t[22]=D,t[23]=j,t[24]=N):N=t[24];let P;t[25]!==N||t[26]!==x||t[27]!==S?(P=(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[x,S,N]}),t[25]=N,t[26]=x,t[27]=S,t[28]=P):P=t[28];let ee;t[29]!==r||t[30]!==p||t[31]!==s||t[32]!==c||t[33]!==l||t[34]!==i||t[35]!==o?(ee=p===`ai`?(0,$.jsx)(yt,{language:r,ownerAgentId:i,saving:o,onClose:s,onSave:c,onSaveAndStart:l}):(0,$.jsx)(bt,{language:r,saving:o,onClose:s,onSave:c}),t[29]=r,t[30]=p,t[31]=s,t[32]=c,t[33]=l,t[34]=i,t[35]=o,t[36]=ee):ee=t[36];let F;t[37]!==P||t[38]!==ee?(F=(0,$.jsxs)(q,{children:[b,(0,$.jsxs)(v,{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:[P,ee]})]}),t[37]=P,t[38]=ee,t[39]=F):F=t[39];let I;return t[40]!==n||t[41]!==F||t[42]!==y?(I=(0,$.jsx)(d,{open:n,onOpenChange:y,children:F}),t[40]=n,t[41]=F,t[42]=y,t[43]=I):I=t[43],I}function vt(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 yt({language:e,ownerAgentId:t,saving:n,onClose:r,onSave:i,onSaveAndStart:o}){let s=a(e).workflows,[c,l]=(0,Z.useState)(``),[u,d]=(0,Z.useState)(null),[f,p]=(0,Z.useState)(``),[m,h]=(0,Z.useState)(``),[g,_]=(0,Z.useState)({allowNetwork:!1,fileSystem:`read`,maxPhases:4,maxSubagents:8,outputFormat:`report`}),[v,y]=(0,Z.useState)(!1),[b,x]=(0,Z.useState)(null),S=(0,Z.useMemo)(()=>u?.validation.errors.map(e=>e.message)??[],[u]),C=(0,Z.useMemo)(()=>u?.lint.filter(e=>e.severity===`error`)??[],[u]),w=c.trim().length>0&&!v,T=!!(u&&f.trim()&&m.trim()&&u.validation.valid&&C.length===0&&!n),E=async n=>{if(c.trim()){y(!0),x(null);try{let r=await Se({prompt:c,agentId:t,language:e===`zh`?`zh`:`en`,mode:n,existingScript:n===`improve`?m:void 0,constraints:g});d(r),p(r.name),h(r.script)}catch(e){x(e instanceof Error?e.message:s.nlBuilderGenerateFailed)}finally{y(!1)}}},D=async()=>{T&&await i({name:f.trim(),script:m})&&r()},O=async()=>{T&&await o({name:f.trim(),script:m,goal:c.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:s.nlBuilderPromptLabel}),(0,$.jsx)(`textarea`,{value:c,onChange:e=>l(e.target.value),placeholder:s.nlBuilderPromptPlaceholder,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)(xt,{label:s.nlBuilderMaxPhases,value:g.maxPhases??4,min:1,max:8,onChange:e=>_(t=>({...t,maxPhases:e}))}),(0,$.jsx)(xt,{label:s.nlBuilderMaxAgents,value:g.maxSubagents??8,min:1,max:20,onChange:e=>_(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:!!g.allowNetwork,onChange:e=>_(t=>({...t,allowNetwork:e.target.checked}))}),s.nlBuilderAllowNetwork]}),(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:s.nlBuilderFilesystem}),(0,$.jsxs)(`select`,{value:g.fileSystem??`read`,onChange:e=>_(t=>({...t,fileSystem:e.target.value})),className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,children:[(0,$.jsx)(`option`,{value:`none`,children:`none`}),(0,$.jsx)(`option`,{value:`read`,children:`read`}),(0,$.jsx)(`option`,{value:`write`,children:`write`})]})]})]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsxs)(V,{variant:`primary`,disabled:!w,onClick:()=>void E(`create`),children:[(0,$.jsx)(M,{className:`size-4`,"aria-hidden":!0}),v?s.nlBuilderGenerating:s.nlBuilderGenerate]}),u?(0,$.jsxs)(V,{variant:`secondary`,disabled:!w,onClick:()=>void E(`improve`),children:[(0,$.jsx)(he,{className:`size-4`,"aria-hidden":!0}),s.nlBuilderImprove]}):null]}),b?(0,$.jsx)(Nt,{text:b}):null,u?(0,$.jsx)(wt,{draft:u,labels:s}):null]}),(0,$.jsxs)(`section`,{className:`min-w-0 space-y-3`,children:[(0,$.jsx)(St,{labels:s,name:f,setName:p}),(0,$.jsx)(Ct,{labels:s,script:m,setScript:h,minHeightClass:`min-h-96`}),u?(0,$.jsx)(Tt,{draft:u,labels:s,validationIssues:S}):null]})]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,$.jsx)(V,{variant:`secondary`,onClick:r,disabled:n||v,children:s.cancelDialog}),(0,$.jsx)(V,{variant:`secondary`,disabled:!T,onClick:()=>void D(),children:n?s.savingWorkflow:s.saveWorkflow}),(0,$.jsx)(V,{variant:`primary`,disabled:!T,onClick:()=>void O(),children:s.nlBuilderSaveAndStart})]})]})}function bt({language:e,saving:t,onClose:n,onSave:r}){let i=a(e).workflows,[o,s]=(0,Z.useState)(``),[c,l]=(0,Z.useState)(gt),[u,d]=(0,Z.useState)(!1),[f,p]=(0,Z.useState)(!1),[m,h]=(0,Z.useState)(null),[g,_]=(0,Z.useState)(null),v=o.trim(),y=!!(v&&c.trim());(0,Z.useEffect)(()=>{if(!y){p(!1),h(null),_(null);return}let e=!1,t=window.setTimeout(()=>{p(!0),h(null),x(v,c).then(t=>{e||_(t)}).catch(t=>{e||(_(null),h(t instanceof Error?t.message:i.validateWorkflowFailed))}).finally(()=>{e||p(!1)})},450);return()=>{e=!0,window.clearTimeout(t)}},[y,i.validateWorkflowFailed,c,v]);let b=(0,Z.useMemo)(()=>m?[m]:g?.errors.map(e=>e.message)??[],[m,g]),S=u||f||g!=null||m!=null,C=y&&!t&&!f&&g?.valid===!0,w=async()=>{if(d(!0),!(!y||t)){p(!0),h(null);try{let e=await x(v,c);if(_(e),!e.valid)return;await r({name:v,script:c})&&n()}catch(e){_(null),h(e instanceof Error?e.message:i.validateWorkflowFailed)}finally{p(!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)(St,{labels:i,name:o,setName:e=>{s(e),_(null),h(null)}}),(0,$.jsx)(Ct,{labels:i,script:c,setScript:e=>{l(e),_(null),h(null)},minHeightClass:`min-h-72`}),S?(0,$.jsx)(kt,{labels:i,validating:f,validationIssues:b,validationResult:g}):null]}),(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,$.jsx)(V,{variant:`secondary`,onClick:n,disabled:t,children:i.cancelDialog}),(0,$.jsx)(V,{variant:`primary`,disabled:!C,onClick:()=>void w(),children:t?i.savingWorkflow:i.saveWorkflow})]})]})}function xt(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 St(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 Ct(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 wt(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)(jt,{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)(jt,{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)(jt,{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 Tt(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(Ot),t[0]=n.validation.valid,t[1]=a,t[2]=o):o=t[2];let c=o,l=c?`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`,u;t[3]===c?u=t[4]:(u=c?(0,$.jsx)(s,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(O,{className:`size-4`,"aria-hidden":!0}),t[3]=c,t[4]=u);let d=c?r.validationPassed:r.nlBuilderReviewIssues,f;t[5]!==u||t[6]!==d?(f=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 font-medium`,children:[u,d]}),t[5]=u,t[6]=d,t[7]=f):f=t[7];let p;t[8]!==n.validation.definition?.phases||t[9]!==r.validationPreview||t[10]!==a||t[11]!==i?(p=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(Dt),a.map(Et)]}):(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]=p):p=t[12];let m;return t[13]!==l||t[14]!==f||t[15]!==p?(m=(0,$.jsxs)(`div`,{className:l,children:[f,p]}),t[13]=l,t[14]=f,t[15]=p,t[16]=m):m=t[16],m}function Et(e){return(0,$.jsx)(`li`,{children:e.message},`${e.code}:${e.message}`)}function Dt(e){return(0,$.jsx)(`li`,{children:e},e)}function Ot(e){return e.severity!==`error`}function kt(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(At)}):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 At(e){return(0,$.jsx)(`li`,{children:e},e)}function jt(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)(Te,{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(Mt),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 Mt(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 Nt(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 Pt(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 f=u,p=r.runtime?.source??``,m;t[5]===o?m=t[6]:(m=e=>!e&&o(),t[5]=o,t[6]=m);let g;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,$.jsx)(w,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[7]=g):g=t[7];let _;t[8]===r.title?_=t[9]:(_=(0,$.jsx)(ce,{className:`text-base font-semibold text-fg`,children:r.title}),t[8]=r.title,t[9]=_);let y;t[10]===f.description?y=t[11]:(y=(0,$.jsx)(h,{className:`mt-1 text-sm text-fg-muted`,children:f.description}),t[10]=f.description,t[11]=y);let b;t[12]!==_||t[13]!==y?(b=(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[_,y]}),t[12]=_,t[13]=y,t[14]=b):b=t[14];let x;t[15]!==l.whenToUseHeading||t[16]!==f.whenToUse?(x=f.whenToUse?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.whenToUseHeading}),(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:f.whenToUse})]}):null,t[15]=l.whenToUseHeading,t[16]=f.whenToUse,t[17]=x):x=t[17];let S;t[18]!==r||t[19]!==l?(S=(0,$.jsx)(It,{definition:r,labels:l}),t[18]=r,t[19]=l,t[20]=S):S=t[20];let C;t[21]!==r.inputSchema||t[22]!==l.inputsHeading?(C=r.inputSchema?(0,$.jsx)(Rt,{title:l.inputsHeading,schema:r.inputSchema}):null,t[21]=r.inputSchema,t[22]=l.inputsHeading,t[23]=C):C=t[23];let T;t[24]!==r.outputSchema||t[25]!==l.outputsHeading?(T=r.outputSchema?(0,$.jsx)(Rt,{title:l.outputsHeading,schema:r.outputSchema}):null,t[24]=r.outputSchema,t[25]=l.outputsHeading,t[26]=T):T=t[26];let E;t[27]!==r.phases||t[28]!==l.phasesHeading?(E=r.phases.length>0?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.phasesHeading}),(0,$.jsx)(`ol`,{className:`mt-2 space-y-2`,children:r.phases.map(Ft)})]}):null,t[27]=r.phases,t[28]=l.phasesHeading,t[29]=E):E=t[29];let D;t[30]!==l.scriptHeading||t[31]!==p?(D=p?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.scriptHeading}),(0,$.jsx)(`pre`,{className:`mt-2 max-h-64 overflow-auto rounded-xl border border-edge bg-surface-base/50 p-3 font-mono text-xs leading-5 text-fg-muted`,children:p})]}):null,t[30]=l.scriptHeading,t[31]=p,t[32]=D):D=t[32];let O;t[33]!==C||t[34]!==T||t[35]!==E||t[36]!==D||t[37]!==x||t[38]!==S?(O=(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-auto px-5 py-4`,children:[x,S,C,T,E,D]}),t[33]=C,t[34]=T,t[35]=E,t[36]=D,t[37]=x,t[38]=S,t[39]=O):O=t[39];let k;t[40]!==l.closeResult||t[41]!==o?(k=(0,$.jsx)(V,{variant:`secondary`,onClick:o,children:l.closeResult}),t[40]=l.closeResult,t[41]=o,t[42]=k):k=t[42];let A;t[43]!==l.runWorkflow||t[44]!==s?(A=(0,$.jsx)(V,{variant:`primary`,onClick:s,children:l.runWorkflow}),t[43]=l.runWorkflow,t[44]=s,t[45]=A):A=t[45];let j;t[46]!==k||t[47]!==A?(j=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[k,A]}),t[46]=k,t[47]=A,t[48]=j):j=t[48];let M;t[49]!==O||t[50]!==j||t[51]!==b?(M=(0,$.jsxs)(q,{children:[g,(0,$.jsxs)(v,{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:[b,O,j]})]}),t[49]=O,t[50]=j,t[51]=b,t[52]=M):M=t[52];let N;return t[53]!==n||t[54]!==M||t[55]!==m?(N=(0,$.jsx)(d,{open:n,onOpenChange:m,children:M}),t[53]=n,t[54]=M,t[55]=m,t[56]=N):N=t[56],N}function Ft(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 It(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(Lt)}):(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 Lt(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)(b,{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 Rt(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)(Te,{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(zt)}):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 zt(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 Bt(e,t){let n=e.metadata.estimatedAgents;return n?n.min===n.max?X(t.agentScaleExact,{count:n.min}):X(t.agentScaleRange,{min:n.min,max:n.max}):null}function Vt(e){let t=(0,Q.c)(50),{definition:n,language:r,labels:i,onPick:a}=e,o;t[0]!==n||t[1]!==r?(o=Y(n,r),t[0]=n,t[1]=r,t[2]=o):o=t[2];let s=o,c;t[3]!==n||t[4]!==i?(c=Bt(n,i),t[3]=n,t[4]=i,t[5]=c):c=t[5];let l=c,u=n.metadata.source===`user`,d;t[6]!==n||t[7]!==a?(d=()=>a(n),t[6]=n,t[7]=a,t[8]=d):d=t[8];let f;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(f=J(`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`,K.focusRingPanel),t[9]=f):f=t[9];let p=u?`bg-accent-soft text-accent-fg`:`bg-surface-hover text-fg-muted`,m;t[10]===p?m=t[11]:(m=J(`rounded-full px-2 py-0.5 text-[10px] font-medium`,p),t[10]=p,t[11]=m);let h=u?i.badgeUser:i.badgeBuiltin,g;t[12]!==m||t[13]!==h?(g=(0,$.jsx)(`span`,{className:m,children:h}),t[12]=m,t[13]=h,t[14]=g):g=t[14];let _;t[15]!==n.inputSchema||t[16]!==i.inputSchemaBadge?(_=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)(Te,{className:`size-2.5`,"aria-hidden":!0}),i.inputSchemaBadge]}):null,t[15]=n.inputSchema,t[16]=i.inputSchemaBadge,t[17]=_):_=t[17];let v;t[18]===n.metadata.tags?v=t[19]:(v=n.metadata.tags.slice(0,2).map(Ht),t[18]=n.metadata.tags,t[19]=v);let y;t[20]!==v||t[21]!==g||t[22]!==_?(y=(0,$.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center gap-1.5`,children:[g,_,v]}),t[20]=v,t[21]=g,t[22]=_,t[23]=y):y=t[23];let b;t[24]===n.title?b=t[25]:(b=(0,$.jsx)(`span`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-fg`,children:n.title}),t[24]=n.title,t[25]=b);let x;t[26]!==y||t[27]!==b?(x=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[y,b]}),t[26]=y,t[27]=b,t[28]=x):x=t[28];let S;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(S=(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)(B,{className:`size-3.5`,"aria-hidden":!0})}),t[29]=S):S=t[29];let C;t[30]===x?C=t[31]:(C=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[x,S]}),t[30]=x,t[31]=C);let w;t[32]===s.description?w=t[33]:(w=s.description?(0,$.jsx)(`p`,{className:`mt-2 line-clamp-2 text-xs leading-5 text-fg-muted`,children:s.description}):null,t[32]=s.description,t[33]=w);let T;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(A,{className:`size-3`,"aria-hidden":!0}),t[34]=T):T=t[34];let E;t[35]!==n.phases.length||t[36]!==i.phaseCount?(E=X(i.phaseCount,{count:n.phases.length}),t[35]=n.phases.length,t[36]=i.phaseCount,t[37]=E):E=t[37];let D;t[38]===E?D=t[39]:(D=(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[T,E]}),t[38]=E,t[39]=D);let O;t[40]===l?O=t[41]:(O=l?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,$.jsx)(ne,{className:`size-3`,"aria-hidden":!0}),l]}):null,t[40]=l,t[41]=O);let k;t[42]!==D||t[43]!==O?(k=(0,$.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center gap-3 pt-3 text-[11px] text-fg-subtle`,children:[D,O]}),t[42]=D,t[43]=O,t[44]=k):k=t[44];let j;return t[45]!==C||t[46]!==w||t[47]!==k||t[48]!==d?(j=(0,$.jsxs)(`button`,{type:`button`,onClick:d,className:f,children:[C,w,k]}),t[45]=C,t[46]=w,t[47]=k,t[48]=d,t[49]=j):j=t[49],j}function Ht(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 Ut(e,t){return e===`uncategorized`?t.categories.uncategorized:t.categories[e]}function Wt(e){let t=(0,Q.c)(11),{definitions:n,language:r,onPick:i}=e,o=a(r).workflows,[s,c]=(0,Z.useState)(``),[l,u]=(0,Z.useState)(`all`),d;t[0]!==l||t[1]!==n||t[2]!==s?(d=Le(n,s,l,`all`),t[0]=l,t[1]=n,t[2]=s,t[3]=d):d=t[3];let f=d,p;t[4]===f?p=t[5]:(p=Fe(f),t[4]=f,t[5]=p);let m=p,h;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(P,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[6]=h):h=t[6];let g;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(g=e=>c(e.target.value),t[7]=g):g=t[7];let _=o.searchPlaceholder,v;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(v=J(`h-10 w-full rounded-xl border border-edge bg-surface-base py-2 pl-10 pr-3 text-sm text-fg`,`placeholder:text-fg-subtle`,K.focusRingPanel),t[8]=v):v=t[8];let y=f.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:o.noDefinitions}),(0,$.jsx)(`p`,{className:`mt-1 max-w-sm text-xs leading-5 text-fg-subtle`,children:o.noDefinitionsHint})]}):l===`all`?(0,$.jsx)(`div`,{className:`flex flex-col gap-6 pb-1`,children:m.map(e=>(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`mb-3 text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:Ut(e.category,o)}),(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)(Vt,{definition:e,language:r,labels:o,onPick:i},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:f.map(e=>(0,$.jsx)(Vt,{definition:e,language:r,labels:o,onPick:i},e.id))}),b;return t[9]===y?b=t[10]:(b=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:y}),t[9]=y,t[10]=b),(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:[h,(0,$.jsx)(`input`,{value:s,onChange:g,placeholder:_,className:v})]}),(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":o.categoryFilterAria,children:_e.map(e=>(0,$.jsx)(V,{type:`button`,variant:l===e?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>u(e),children:o.categories[e]},e))})]}),b]})}function Gt(e){let t=(0,Q.c)(30),{open:n,definitions:r,language:i,onClose:o,onPick:s}=e,c;t[0]===i?c=t[1]:(c=a(i),t[0]=i,t[1]=c);let l=c.workflows,u;t[2]===o?u=t[3]:(u=e=>!e&&o(),t[2]=o,t[3]=u);let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(w,{className:`fixed inset-0 z-50 bg-scrim`}),t[4]=f):f=t[4];let p;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=J(`pointer-events-auto relative flex h-[min(90vh,840px)] w-full max-w-5xl flex-col`,`rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,K.focusRingPanel),t[5]=p):p=t[5];let m;t[6]===l.pickStartTitle?m=t[7]:(m=(0,$.jsx)(ce,{className:`text-lg font-semibold text-fg`,children:l.pickStartTitle}),t[6]=l.pickStartTitle,t[7]=m);let g;t[8]===l.pickStartHint?g=t[9]:(g=(0,$.jsx)(h,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:l.pickStartHint}),t[8]=l.pickStartHint,t[9]=g);let _;t[10]!==m||t[11]!==g?(_=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[m,g]}),t[10]=m,t[11]=g,t[12]=_):_=t[12];let y;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsx)(ie,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),t[13]=y):y=t[13];let b;t[14]===l.pickStartClose?b=t[15]:(b=(0,$.jsx)(k,{asChild:!0,children:(0,$.jsx)(V,{variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":l.pickStartClose,children:y})}),t[14]=l.pickStartClose,t[15]=b);let x;t[16]!==_||t[17]!==b?(x=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-edge-subtle px-6 py-5`,children:[_,b]}),t[16]=_,t[17]=b,t[18]=x):x=t[18];let S;t[19]!==r||t[20]!==i||t[21]!==s?(S=(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col px-6 py-5`,children:(0,$.jsx)(Wt,{definitions:r,language:i,onPick:s})}),t[19]=r,t[20]=i,t[21]=s,t[22]=S):S=t[22];let C;t[23]!==x||t[24]!==S?(C=(0,$.jsxs)(q,{children:[f,(0,$.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4 pointer-events-none`,children:(0,$.jsxs)(v,{className:p,onOpenAutoFocus:Kt,children:[x,S]})})]}),t[23]=x,t[24]=S,t[25]=C):C=t[25];let T;return t[26]!==n||t[27]!==C||t[28]!==u?(T=(0,$.jsx)(d,{open:n,onOpenChange:u,children:C}),t[26]=n,t[27]=C,t[28]=u,t[29]=T):T=t[29],T}function Kt(e){return e.preventDefault()}function qt(e,t){return t.status[e]??e}function Jt(e,t){return t.phaseStatus[e]??e}function Yt(e,t){let{run:n}=e;return n.status===`succeeded`?X(t.runSummarySucceeded,{agents:n.metrics.doneAgentCount,artifacts:n.metrics.artifactCount}):n.status===`failed`||n.status===`timeout`?n.error?.message??t.runSummaryFailedFallback:n.status===`cancelled`?t.runSummaryCancelled:X(t.runSummaryActive,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}function Xt(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 Zt(e){return Me(e)}function Qt(e){return!e||typeof e!=`object`||!(`kind`in e)?`unknown`:e.kind===`chat`?`chat · ${e.sessionKey}`:e.kind===`webui`?e.sessionKey?`webui · ${e.sessionKey}`:`webui`:e.kind===`cron`?`cron · ${e.scheduleId}`:e.kind===`api`?e.requestId?`api · ${e.requestId}`:`api`:e.kind===`im`?`${e.channel} · ${e.chatId}`:String(e.kind)}function $t({view:e,comparison:t,currentDefinition:n,loading:r,language:i,localeTag:o,onCancel:s,onRetry:l,onReplay:u,onOpenRunId:p,ownerAgentId:h,onClose:g}){let b=a(i).workflows,x=ue(i),S=re(),[C,E]=(0,Z.useState)(!0),[D,k]=(0,Z.useState)(!1),[A,j]=(0,Z.useState)(null),[N,P]=(0,Z.useState)(!1),[F,I]=(0,Z.useState)(null),[ne,L]=(0,Z.useState)(null),[,B]=(0,Z.useState)(0),H=e?.run.status,G=H?ae.has(H):!1;(0,Z.useEffect)(()=>{e?.run.id&&(E(G||H===`failed`||H===`timeout`||H===`succeeded`&&e.run.metrics.errorAgentCount>0),j(null),I(null))},[e?.run.id,G,H,e?.run.metrics.errorAgentCount]),(0,Z.useEffect)(()=>{if(!G)return;let e=window.setInterval(()=>B(e=>e+1),1e3);return()=>window.clearInterval(e)},[G]);let K=(0,Z.useMemo)(()=>e?z(e):null,[e]),oe=(0,Z.useMemo)(()=>K?Ce(K):{phases:[],unphased:null},[K]),se=(0,Z.useMemo)(()=>A==null||!K?null:K.agents.find(e=>e.id===A)??null,[A,K]),le=(0,Z.useCallback)(e=>{j(e.id)},[]),fe=e?dn(e.run.result):null,pe=(0,Z.useMemo)(()=>e?Pe(e):[],[e]),me=e?Oe(e.run.result):void 0,ge=Ae(me),_e=ge.trim().length>0,ve=(0,Z.useCallback)(async()=>{_e&&await R(ge)&&(P(!0),window.setTimeout(()=>P(!1),1500))},[_e,ge]),ye=(0,Z.useCallback)(()=>{if(!_e||!e)return;let t=new Blob([ge],{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)},[_e,ge,e]),xe=(0,Z.useCallback)(()=>{if(!e)return;let t=Zt(e);t&&S(Ie(t))},[S,e]),Se=(0,Z.useCallback)(async t=>{if(e){I(null),L(t.id);try{ln(await f(e.run.id,t.id,{ownerAgentId:h}),t.name||t.id)}catch(e){I(e instanceof Error?e.message:String(e))}finally{L(null)}}},[h,e]),we=(0,Z.useCallback)(t=>{if(!e||!t.prompt)return;let n=Zt(e);if(!n){R(t.prompt);return}S(Ie(n,t.prompt))},[S,e]),Te=(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);j(Number.isFinite(i)?i:r+1)},[e]),Ee=e?Zt(e):null;if(r)return(0,$.jsx)(d,{open:!0,onOpenChange:e=>!e&&g(),children:(0,$.jsxs)(q,{children:[(0,$.jsx)(w,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),(0,$.jsxs)(v,{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:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-5 py-4`,children:[(0,$.jsx)(ce,{className:`text-base font-semibold tracking-tight text-fg`,children:b.runSummaryTitle}),(0,$.jsx)(V,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":b.pickStartClose,onClick:g,children:(0,$.jsx)(ie,{className:`size-5`,"aria-hidden":!0})})]}),(0,$.jsx)(`div`,{className:`p-5 text-sm text-fg-muted`,children:b.loading})]})]})});if(!e||!K)return null;let{run:Y}=e,Ne=e.controls.canCancel&&G,Fe=G&&Y.startedAtMs!=null?je(Date.now()-Y.startedAtMs):je(Y.metrics.durationMs??void 0),Le=Yt(e,b),Re=Xt(e,b),ze=Y.metadata,Q=Qt(Y.source),Be=e.controls.canRetry&&e.agents.some(e=>(e.status===`error`||e.status===`skipped`)&&e.prompt?.trim()),Ve=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()));return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(d,{open:!0,onOpenChange:e=>!e&&g(),children:(0,$.jsxs)(q,{children:[(0,$.jsx)(w,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),(0,$.jsxs)(v,{className:`fixed left-1/2 top-1/2 z-66 flex max-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)(ce,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:Y.title}),(0,$.jsx)(V,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":b.pickStartClose,onClick:g,children:(0,$.jsx)(ie,{className:`size-5`,"aria-hidden":!0})})]}),(0,$.jsxs)(`section`,{className:`min-h-0 flex-1 overflow-y-auto p-5`,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 text-fg`,children:Y.title}),(0,$.jsx)(`span`,{className:J(`rounded-full px-2 py-0.5 text-xs font-medium`,ke(Y.status)),children:qt(Y.status,b)})]}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:Y.definitionId}),Y.goal?(0,$.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:Y.goal}):null]})}),(0,$.jsx)(`div`,{className:`mt-5 rounded-2xl border border-edge-subtle bg-surface-base/60 p-4`,children:(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,$.jsx)(`div`,{className:`rounded-xl bg-accent-soft p-2 text-accent-fg`,children:Y.status===`succeeded`?(0,$.jsx)(te,{className:`size-4`,"aria-hidden":!0}):Y.status===`failed`||Y.status===`timeout`?(0,$.jsx)(O,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(M,{className:`size-4`,"aria-hidden":!0})}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:b.runSummaryTitle}),(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:Le}),Re?(0,$.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-fg-subtle`,children:Re}):null]})]})}),(0,$.jsx)(en,{diagnostics:pe,labels:b,onOpenAgent:Te}),(0,$.jsx)(nn,{view:e,comparison:t,labels:b,onOpenRunId:p}),(0,$.jsxs)(`dl`,{className:`mt-5 grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,children:[(0,$.jsx)(vn,{label:b.metrics.startedAt,value:De(Y.startedAtMs??Y.createdAtMs,o)}),(0,$.jsx)(vn,{label:b.metrics.duration,value:Fe}),(0,$.jsx)(vn,{label:b.metrics.agents,value:X(b.agentProgress,{done:Y.metrics.doneAgentCount,total:Y.metrics.agentCount})}),(0,$.jsx)(vn,{label:b.metrics.artifacts,value:String(Y.metrics.artifactCount)})]}),(0,$.jsxs)(`div`,{className:`mt-5 flex flex-wrap gap-2`,children:[Ee?(0,$.jsxs)(V,{variant:`primary`,onClick:xe,children:[(0,$.jsx)(_,{className:`size-4`,"aria-hidden":!0}),b.continueInChat]}):null,Ne?(0,$.jsxs)(V,{variant:`secondary`,onClick:s,className:`text-red-600 dark:text-red-300`,children:[(0,$.jsx)(m,{className:`size-4`,"aria-hidden":!0}),b.cancel]}):null,e.controls.canRetry?(0,$.jsxs)(V,{variant:`secondary`,onClick:l,children:[(0,$.jsx)(he,{className:`size-4`,"aria-hidden":!0}),b.rerun]}):null,Be?(0,$.jsxs)(V,{variant:`secondary`,onClick:()=>u(`failed_agents`),children:[(0,$.jsx)(he,{className:`size-4`,"aria-hidden":!0}),b.replayFailedAgents]}):null,Ve?(0,$.jsxs)(V,{variant:`secondary`,onClick:()=>u(`failed_phases`),children:[(0,$.jsx)(he,{className:`size-4`,"aria-hidden":!0}),b.replayFailedPhases]}):null,_e?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(V,{variant:`secondary`,onClick:ve,children:[N?(0,$.jsx)(y,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(c,{className:`size-4`,"aria-hidden":!0}),N?b.copied:b.copyResult]}),(0,$.jsxs)(V,{variant:`secondary`,onClick:ye,children:[(0,$.jsx)(de,{className:`size-4`,"aria-hidden":!0}),b.exportResult]})]}):null]}),(0,$.jsxs)(`div`,{className:`mt-6`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:b.resultTitle}),_e?(0,$.jsx)(`div`,{className:`mt-3 rounded-xl border border-edge bg-surface-base/50 p-3`,children:(0,$.jsx)(W,{result:me,labels:x.result})}):(0,$.jsx)(`div`,{className:`mt-3 rounded-xl border border-dashed border-edge p-4 text-sm text-fg-muted`,children:b.noResult}),(0,$.jsx)(cn,{outcome:fe,labels:b,downloadingArtifactId:ne,downloadError:F,onCopyText:e=>void R(e),onDownloadArtifact:e=>void Se(e),onStartFollowUp:we})]}),(0,$.jsxs)(`div`,{className:`mt-6 rounded-2xl border border-edge bg-surface-base/35`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-4 px-4 py-3 text-left`,onClick:()=>E(e=>!e),"aria-expanded":C,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:b.process}),(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:[X(b.agentProgress,{done:Y.metrics.doneAgentCount,total:Y.metrics.agentCount}),` · `,Fe]})]}),(0,$.jsx)(T,{className:J(`size-4 shrink-0 text-fg-subtle transition-transform`,C?`rotate-180`:null),"aria-hidden":!0})]}),C?(0,$.jsxs)(`div`,{className:`border-t border-edge px-4 pb-4 pt-4`,children:[G?(0,$.jsx)(ee,{snapshot:K,labels:x,logsExpanded:D,onToggleLogs:()=>k(e=>!e),selectedAgentId:A,onSelectAgent:le}):(0,$.jsx)(U,{rollup:oe,currentPhase:K.currentPhase,labels:x.phase,recentLogs:K.logs,recentLogsHeading:x.recentLogsHeading,showAllLogsLabel:x.showAllLogs,logsExpanded:D,onToggleLogs:()=>k(e=>!e),selectedAgentId:A,onSelectAgent:le}),e.phases.length>0?(0,$.jsx)(`div`,{className:`mt-4 grid gap-2 sm:grid-cols-2`,children:e.phases.map(e=>(0,$.jsx)(`div`,{className:`rounded-xl border border-edge bg-surface-panel px-3 py-2`,children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:e.title}),(0,$.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:Jt(e.status,b)})]})},e.id))}):null]}):null]}),(0,$.jsx)(fn,{agents:K.agents,labels:b,defaultExpanded:Y.status===`failed`||Y.status===`timeout`||Y.metrics.errorAgentCount>0}),(0,$.jsxs)(`div`,{className:`mt-6 grid gap-3 rounded-2xl border border-edge-subtle bg-surface-base/35 p-4 sm:grid-cols-2 lg:grid-cols-4`,children:[(0,$.jsx)(yn,{label:b.metadataSession,value:ze?.sessionKey??Me(e)??`—`}),(0,$.jsx)(yn,{label:b.metadataSource,value:Q}),(0,$.jsx)(yn,{label:b.metadataDefinition,value:`${ze?.definition.version??Y.definitionVersion} · ${ze?.definition.source??`unknown`}`}),(0,$.jsx)(yn,{label:b.metadataDefinitionHash,value:rn(ze?.definition,n,b)}),(0,$.jsx)(yn,{label:b.metadataPermissions,value:an(ze?.definition)}),(0,$.jsx)(yn,{label:b.metadataRetryOf,value:ze?.retryOfRunId??`—`})]})]})]})]})}),(0,$.jsx)(be,{open:A!=null&&se!=null,agent:se,snapshot:K,sessionKey:null,ownerAgentId:h,pinnedAgentId:null,onPinAgent:()=>{},onClose:()=>j(null),labels:x.drawer})]})}function en(e){let t=(0,Q.c)(18),{diagnostics:n,labels:r,onOpenAgent:i}=e;if(n.length===0)return null;let a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsx)(`div`,{className:`rounded-xl bg-rose-500/10 p-2 text-rose-700 dark:text-rose-300`,children:(0,$.jsx)(O,{className:`size-4`,"aria-hidden":!0})}),t[0]=a):a=t[0];let o;t[1]===r.diagnosticsTitle?o=t[2]:(o=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.diagnosticsTitle}),t[1]=r.diagnosticsTitle,t[2]=o);let s;t[3]===r.diagnosticsHint?s=t[4]:(s=(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,children:r.diagnosticsHint}),t[3]=r.diagnosticsHint,t[4]=s);let c;if(t[5]!==n||t[6]!==r||t[7]!==i){let e;t[9]!==r||t[10]!==i?(e=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:tn(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)(V,{type:`button`,variant:`ghost`,className:`h-8 shrink-0 px-2 text-xs`,onClick:()=>i(e.agentId),children:r.openAgentDetails})]})},e.key),t[9]=r,t[10]=i,t[11]=e):e=t[11],c=n.slice(0,5).map(e),t[5]=n,t[6]=r,t[7]=i,t[8]=c}else c=t[8];let l;t[12]===c?l=t[13]:(l=(0,$.jsx)(`ul`,{className:`mt-3 space-y-2`,children:c}),t[12]=c,t[13]=l);let u;return t[14]!==o||t[15]!==s||t[16]!==l?(u=(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:[a,(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[o,s,l]})]})}),t[14]=o,t[15]=s,t[16]=l,t[17]=u):u=t[17],u}function tn(e,t){return e.kind===`run_error`?e.code?X(t.diagnosticsRunErrorWithCode,{code:e.code}):t.diagnosticsRunError:e.kind===`agent_error`?X(t.diagnosticsAgentError,{agent:e.agentLabel??String(e.agentId??`—`)}):e.kind===`step_error`?X(t.diagnosticsStepError,{agent:e.agentLabel??String(e.agentId??`—`),step:e.stepLabel??e.stepId??`—`}):X(t.diagnosticsAgentSkipped,{agent:e.agentLabel??String(e.agentId??`—`)})}function nn(e){let t=(0,Q.c)(36),{view:n,comparison:r,labels:i,onOpenRunId:a}=e,o=n.run.metadata?.replay;if(!o)return null;let s;t[0]===i.replayLineageTitle?s=t[1]:(s=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:i.replayLineageTitle}),t[0]=i.replayLineageTitle,t[1]=s);let c;t[2]!==i||t[3]!==o.scope||t[4]!==o.targetCount?(c=X(i.replayLineageSummary,{scope:sn(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)(yn,{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)(yn,{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)(vn,{label:i.replayFixedAgents,value:String(r.fixedAgentIds.length)}),(0,$.jsx)(vn,{label:i.replayStillFailingAgents,value:String(r.stillFailingAgentIds.length)}),(0,$.jsx)(vn,{label:i.replayDurationDelta,value:on(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)(V,{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 rn(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 an(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 on(e){return e==null?`—`:`${e>0?`+`:e<0?`-`:``}${je(Math.abs(e))}`}function sn(e,t){return e===`failed_phases`?t.replayScopeFailedPhases:t.replayScopeFailedAgents}function cn(e){let t=(0,Q.c)(18),{outcome:n,labels:r,downloadingArtifactId:i,downloadError:a,onCopyText:o,onDownloadArtifact:s,onStartFollowUp:c}=e;if(!n||!n.artifacts.length&&!n.followUps.length&&n.structuredOutput===void 0)return null;let l;t[0]!==a||t[1]!==i||t[2]!==r||t[3]!==s||t[4]!==n.artifacts?(l=n.artifacts.length>0?(0,$.jsxs)(un,{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)(de,{className:`size-3`,"aria-hidden":!0}),i===e.id?r.downloadingArtifact:r.downloadArtifact]})]},e.id))}),a?(0,$.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-rose-600 dark:text-rose-400`,children:a}):null]}):null,t[0]=a,t[1]=i,t[2]=r,t[3]=s,t[4]=n.artifacts,t[5]=l):l=t[5];let u;t[6]!==r||t[7]!==o||t[8]!==c||t[9]!==n.followUps?(u=n.followUps.length>0?(0,$.jsx)(un,{title:r.outcomeFollowUps,children:(0,$.jsx)(`ul`,{className:`space-y-2`,children:n.followUps.map(e=>(0,$.jsxs)(`li`,{className:`rounded-lg bg-surface-base px-2.5 py-2`,children:[(0,$.jsx)(`div`,{className:`text-sm font-medium text-fg`,children:e.title}),e.prompt?(0,$.jsxs)(`div`,{className:`mt-1 flex flex-wrap gap-2`,children:[(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent-fg hover:underline`,onClick:()=>c(e),children:r.startFollowUp}),(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-fg-subtle hover:text-fg`,onClick:()=>o(e.prompt??``),children:r.copyPrompt})]}):null]},e.id))})}):null,t[6]=r,t[7]=o,t[8]=c,t[9]=n.followUps,t[10]=u):u=t[10];let d;t[11]!==r||t[12]!==n.structuredOutput?(d=n.structuredOutput===void 0?null:(0,$.jsx)(un,{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:Ae(n.structuredOutput)})}),t[11]=r,t[12]=n.structuredOutput,t[13]=d):d=t[13];let f;return t[14]!==l||t[15]!==u||t[16]!==d?(f=(0,$.jsxs)(`div`,{className:`mt-3 grid gap-3 lg:grid-cols-3`,children:[l,u,d]}),t[14]=l,t[15]=u,t[16]=d,t[17]=f):f=t[17],f}function ln(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),URL.revokeObjectURL(n)}function un(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 dn(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 fn(e){let t=(0,Q.c)(26),{agents:n,labels:r,defaultExpanded:i}=e,[a,o]=(0,Z.useState)(i),s,c;if(t[0]===i?(s=t[1],c=t[2]):(s=()=>{o(i)},c=[i],t[0]=i,t[1]=s,t[2]=c),(0,Z.useEffect)(s,c),n.length===0)return null;let l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>o(pn),t[3]=l):l=t[3];let u;t[4]===r.agentIoTitle?u=t[5]:(u=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.agentIoTitle}),t[4]=r.agentIoTitle,t[5]=u);let d;t[6]===r.agentIoHint?d=t[7]:(d=(0,$.jsx)(`p`,{className:`text-xs leading-5 text-fg-subtle`,children:r.agentIoHint}),t[6]=r.agentIoHint,t[7]=d);let f;t[8]!==u||t[9]!==d?(f=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[u,d]}),t[8]=u,t[9]=d,t[10]=f):f=t[10];let p=a?`rotate-180`:null,m;t[11]===p?m=t[12]:(m=J(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,p),t[11]=p,t[12]=m);let h;t[13]===m?h=t[14]:(h=(0,$.jsx)(T,{className:m,"aria-hidden":!0}),t[13]=m,t[14]=h);let g;t[15]!==a||t[16]!==f||t[17]!==h?(g=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-4 px-4 py-3 text-left`,onClick:l,"aria-expanded":a,children:[f,h]}),t[15]=a,t[16]=f,t[17]=h,t[18]=g):g=t[18];let _;t[19]!==n||t[20]!==a||t[21]!==r?(_=a?(0,$.jsx)(`div`,{className:`grid gap-3 border-t border-edge px-4 py-4`,children:n.map(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:J(`rounded-full px-2 py-0.5 text-xs font-medium`,_n(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:J(`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)(mn,{agent:e,labels:r})]},e.id)})}):null,t[19]=n,t[20]=a,t[21]=r,t[22]=_):_=t[22];let v;return t[23]!==g||t[24]!==_?(v=(0,$.jsxs)(`section`,{className:`mt-6 rounded-2xl border border-edge bg-surface-base/35`,children:[g,_]}),t[23]=g,t[24]=_,t[25]=v):v=t[25],v}function pn(e){return!e}function mn(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(gn),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(hn)}),t[19]=m,t[20]=h),h}function hn(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 gn(e){return!!e.value}function _n(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 vn(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 yn(e){let t=(0,Q.c)(7),{label:n,value:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`div`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`div`,{className:`mt-1 truncate text-sm font-medium text-fg`,title:r,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}var bn=`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`;function xn(e){return!!(e&&e.type===`object`&&e.properties&&!Array.isArray(e.properties))}function Sn({schema:e,value:t,onChange:n,labels:r}){let i=(0,Z.useMemo)(()=>Tn(e),[e]),[a,o]=(0,Z.useState)(!1),[s,c]=(0,Z.useState)(()=>JSON.stringify(t,null,2)),[l,u]=(0,Z.useState)(null);if(i.length===0)return null;let d=(e,r)=>{let i={...t,[e]:r};(r===``||r===void 0)&&delete i[e],n(i),a&&c(JSON.stringify(i,null,2))},f=e=>{c(e);try{let t=e.trim()?JSON.parse(e):{};if(!t||typeof t!=`object`||Array.isArray(t)){u(r.rawJsonInvalid);return}u(null),n(t)}catch{u(r.rawJsonInvalid)}};return(0,$.jsxs)(`section`,{className:`rounded-2xl border border-edge-subtle bg-surface-base/35 p-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.inputSchemaHeading}),(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent-fg hover:underline`,onClick:()=>{let e=!a;o(e),e&&(c(JSON.stringify(t,null,2)),u(null))},children:r.rawJson})]}),a?(0,$.jsxs)(`div`,{className:`mt-3`,children:[(0,$.jsx)(`textarea`,{value:s,onChange:e=>f(e.target.value),spellCheck:!1,className:J(bn,`min-h-40 font-mono text-xs leading-5`)}),l?(0,$.jsx)(`p`,{className:`mt-1 text-xs text-red-600 dark:text-red-300`,children:l}):null]}):(0,$.jsx)(`div`,{className:`mt-3 grid gap-3`,children:i.map(e=>(0,$.jsx)(Cn,{field:e,value:t[e.key],labels:r,onChange:t=>d(e.key,t)},e.key))})]})}function Cn(e){let t=(0,Q.c)(18),{field:n,value:r,labels:i,onChange:a}=e,o=n.schema.title||n.key,s=typeof n.schema.description==`string`?n.schema.description:void 0,c=Array.isArray(n.schema.type)?n.schema.type[0]:n.schema.type,l;t[0]===n.schema.enum?l=t[1]:(l=Array.isArray(n.schema.enum)?n.schema.enum:[],t[0]=n.schema.enum,t[1]=l);let u=l,d=String(o),f=n.required?` *`:``,p;t[2]!==d||t[3]!==f?(p=(0,$.jsxs)(`span`,{className:`text-xs font-medium text-fg`,children:[d,f]}),t[2]=d,t[3]=f,t[4]=p):p=t[4];let m;t[5]===s?m=t[6]:(m=s?(0,$.jsx)(`p`,{className:`mt-0.5 text-xs leading-5 text-fg-subtle`,children:s}):null,t[5]=s,t[6]=m);let h;t[7]!==s||t[8]!==u||t[9]!==i||t[10]!==a||t[11]!==c||t[12]!==r?(h=u.length>0?(0,$.jsxs)(`select`,{value:r==null?``:String(r),onChange:e=>a(e.target.value),className:bn,children:[(0,$.jsx)(`option`,{value:``}),u.map(wn)]}):c===`boolean`?(0,$.jsxs)(`select`,{value:typeof r==`boolean`?String(r):``,onChange:e=>a(e.target.value===``?void 0:e.target.value===`true`),className:bn,children:[(0,$.jsx)(`option`,{value:``}),(0,$.jsx)(`option`,{value:`true`,children:i.booleanTrue}),(0,$.jsx)(`option`,{value:`false`,children:i.booleanFalse})]}):c===`number`||c===`integer`?(0,$.jsx)(`input`,{type:`number`,value:typeof r==`number`||typeof r==`string`?String(r):``,onChange:e=>a(e.target.value===``?void 0:Number(e.target.value)),className:bn}):(0,$.jsx)(`textarea`,{value:typeof r==`string`?r:r==null?``:String(r),onChange:e=>a(e.target.value),className:J(bn,s&&s.length>80?`min-h-20 resize-y`:`min-h-10 resize-y`)}),t[7]=s,t[8]=u,t[9]=i,t[10]=a,t[11]=c,t[12]=r,t[13]=h):h=t[13];let g;return t[14]!==p||t[15]!==m||t[16]!==h?(g=(0,$.jsxs)(`label`,{className:`block`,children:[p,m,h]}),t[14]=p,t[15]=m,t[16]=h,t[17]=g):g=t[17],g}function wn(e){return(0,$.jsx)(`option`,{value:String(e),children:String(e)},String(e))}function Tn(e){let t=e.properties??{},n=new Set(e.required??[]);return Object.entries(t).map(([e,t])=>({key:e,schema:t,required:n.has(e)}))}function En(e){let t=(0,Q.c)(12),{examples:n,labels:r,onSelect:i}=e;if(n.length===0)return null;let a;t[0]===r.examplePrompts?a=t[1]:(a=(0,$.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:r.examplePrompts}),t[0]=r.examplePrompts,t[1]=a);let o;if(t[2]!==n||t[3]!==i){let e;t[5]===i?e=t[6]:(e=e=>(0,$.jsx)(`button`,{type:`button`,onClick:()=>i(e),className:`rounded-lg border border-edge bg-surface-base/50 px-3 py-2 text-left text-xs text-fg-muted hover:bg-surface-hover`,children:e.text},`${e.field}:${e.text}`),t[5]=i,t[6]=e),o=n.map(e),t[2]=n,t[3]=i,t[4]=o}else o=t[4];let s;t[7]===o?s=t[8]:(s=(0,$.jsx)(`div`,{className:`mt-2 flex flex-col gap-1.5`,children:o}),t[7]=o,t[8]=s);let c;return t[9]!==a||t[10]!==s?(c=(0,$.jsxs)(`div`,{children:[a,s]}),t[9]=a,t[10]=s,t[11]=c):c=t[11],c}function Dn(e,t){let n=e.metadata.estimatedAgents;return n?n.min===n.max?X(t.agentScaleExact,{count:n.min}):X(t.agentScaleRange,{min:n.min,max:n.max}):X(t.agentScaleExact,{count:e.defaults.maxSubagents})}function On(e,t,n,r){let i=Object.values(t).map(e=>e.trim()).filter(Boolean),a=e.trim()||n;return a&&i.unshift(a),i.length===0?r.noInputSummary:i.join(` · `)}function kn(e){let t=(0,Q.c)(58),{open:n,definition:r,language:i,starting:o,onClose:s,onStart:c}=e,l=a(i).workflows,[u,f]=(0,Z.useState)(``),p;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p={},t[0]=p):p=t[0];let[m,g]=(0,Z.useState)(p),_;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(_={},t[1]=_):_=t[1];let[y,b]=(0,Z.useState)(_),[x,S]=(0,Z.useState)(``),[C,E]=(0,Z.useState)(``),[D,O]=(0,Z.useState)(!1),k;t[2]!==r||t[3]!==i?(k=r?Y(r,i):null,t[2]=r,t[3]=i,t[4]=k):k=t[4];let M=k,N;t[5]===r?N=t[6]:(N=r?pe[r.name]??[]:[],t[5]=r,t[6]=N);let P=N,ee;t[7]===M?.examplePrompts?ee=t[8]:(ee=M?.examplePrompts??[],t[7]=M?.examplePrompts,t[8]=ee);let F=ee,I=r?.inputSchema,te;t[9]===I?te=t[10]:(te=xn(I),t[9]=I,t[10]=te);let L=te,R=!L&&P.length>0,re;t[11]!==x||t[12]!==r?.defaults?(re=x.trim()?Number(x):r?.defaults.concurrency,t[11]=x,t[12]=r?.defaults,t[13]=re):re=t[13];let z=re,B;t[14]!==r?.defaults||t[15]!==C?(B=C.trim()?Number(C):r?.defaults.maxSubagents,t[14]=r?.defaults,t[15]=C,t[16]=B):B=t[16];let H=B,U=r&&M?L&&Object.keys(y).length>0?Object.entries(y).map(Mn).join(` · `):On(u,m,M.description,l):l.noInputSummary,W;t[17]!==r||t[18]!==n?(W=()=>{!n||!r||(f(``),g({}),b({}),S(``),E(``),O(!1))},t[17]=r,t[18]=n,t[19]=W):W=t[19];let ie=r?.id,ae;if(t[20]!==n||t[21]!==ie?(ae=[n,ie],t[20]=n,t[21]=ie,t[22]=ae):ae=t[22],(0,Z.useEffect)(W,ae),!r||!M)return null;let G;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(G=e=>{Ne(e,f,g)},t[23]=G):G=t[23];let K=G,oe;t[24]!==m||t[25]!==x||t[26]!==u||t[27]!==L||t[28]!==M.description||t[29]!==C||t[30]!==c||t[31]!==y?(oe=()=>{let e=L&&Object.keys(y).length>0?y:Re(m);c({goal:u.trim()||M.description,input:e,concurrency:x.trim()?Number(x):void 0,maxSubagents:C.trim()?Number(C):void 0})},t[24]=m,t[25]=x,t[26]=u,t[27]=L,t[28]=M.description,t[29]=C,t[30]=c,t[31]=y,t[32]=oe):oe=t[32];let le=oe,ue;t[33]===s?ue=t[34]:(ue=e=>!e&&s(),t[33]=s,t[34]=ue);let de;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(de=(0,$.jsx)(w,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[35]=de):de=t[35];let fe;t[36]===M.description?fe=t[37]:(fe=(0,$.jsx)(h,{className:`mt-1 text-sm text-fg-muted`,children:M.description}),t[36]=M.description,t[37]=fe);let me;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(me=(0,$.jsx)(A,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[38]=me):me=t[38];let he;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(he=(0,$.jsx)(ne,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[39]=he):he=t[39];let ge;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(ge=(0,$.jsx)(j,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[40]=ge):ge=t[40];let _e;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(_e=e=>f(e.target.value),t[41]=_e):_e=t[41];let ve;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(ve=()=>O(An),t[42]=ve):ve=t[42];let ye=l.advancedSettings,be=D&&`rotate-180`,xe;t[43]===be?xe=t[44]:(xe=J(`size-4 transition-transform`,be),t[43]=be,t[44]=xe);let Se;t[45]===xe?Se=t[46]:(Se=(0,$.jsx)(T,{className:xe}),t[45]=xe,t[46]=Se);let Ce;t[47]!==l.cancelDialog||t[48]!==s||t[49]!==o?(Ce=(0,$.jsx)(V,{variant:`secondary`,onClick:s,disabled:o,children:l.cancelDialog}),t[47]=l.cancelDialog,t[48]=s,t[49]=o,t[50]=Ce):Ce=t[50];let we=o?l.starting:l.start,Te;t[51]!==o||t[52]!==le||t[53]!==we?(Te=(0,$.jsx)(V,{variant:`primary`,onClick:le,disabled:o,children:we}),t[51]=o,t[52]=le,t[53]=we,t[54]=Te):Te=t[54];let Ee;return t[55]!==Ce||t[56]!==Te?(Ee=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[Ce,Te]}),t[55]=Ce,t[56]=Te,t[57]=Ee):Ee=t[57],(0,$.jsx)(d,{open:n,onOpenChange:ue,children:(0,$.jsxs)(q,{children:[de,(0,$.jsxs)(v,{className:`fixed left-1/2 top-1/2 z-66 flex max-h-[min(85vh,40rem)] w-[min(100%-2rem,32rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[(0,$.jsxs)(ce,{className:`text-base font-semibold text-fg`,children:[l.startTitle,` · `,r.title]}),fe]}),(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-auto px-5 py-4`,children:[(0,$.jsxs)(`section`,{className:`rounded-2xl border border-edge bg-surface-base/70 p-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:l.runPlanPreview}),(0,$.jsx)(`p`,{className:`mt-1 line-clamp-2 text-xs leading-5 text-fg-muted`,children:U})]}),(0,$.jsx)(`span`,{className:`shrink-0 rounded-full bg-accent-soft px-2 py-1 text-[11px] font-medium text-accent-fg`,children:l.readyToStart})]}),(0,$.jsxs)(`div`,{className:`mt-4 grid gap-2 text-xs text-fg-muted sm:grid-cols-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[me,(0,$.jsx)(`span`,{children:X(l.phaseCount,{count:r.phases.length})})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[he,(0,$.jsx)(`span`,{children:Dn(r,l)})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[ge,(0,$.jsx)(`span`,{children:X(l.runLimitsSummary,{concurrency:z??r.defaults.concurrency,max:H??r.defaults.maxSubagents})})]})]}),r.phases.length>0?(0,$.jsxs)(`div`,{className:`mt-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] font-medium uppercase tracking-wide text-fg-subtle`,children:[(0,$.jsx)(se,{className:`size-3.5`,"aria-hidden":!0}),l.startPlanPhases]}),(0,$.jsx)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5`,children:r.phases.map(jn)})]}):null]}),L&&r.inputSchema?(0,$.jsx)(Sn,{schema:r.inputSchema,value:y,onChange:b,labels:{inputSchemaHeading:l.inputSchemaHeading,rawJson:l.rawJson,rawJsonInvalid:l.rawJsonInvalid,booleanTrue:l.booleanTrue,booleanFalse:l.booleanFalse}}):null,!L&&P.map(e=>(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsxs)(`span`,{className:`text-xs font-medium text-fg`,children:[Nn(l,e.labelKey),e.required?` *`:``]}),e.multiline?(0,$.jsx)(`textarea`,{value:m[e.key]??``,onChange:t=>g(n=>({...n,[e.key]:t.target.value})),placeholder:Nn(l,e.placeholderKey),className:`mt-1.5 min-h-20 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}):(0,$.jsx)(`input`,{value:m[e.key]??``,onChange:t=>g(n=>({...n,[e.key]:t.target.value})),placeholder:Nn(l,e.placeholderKey),className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]},e.key)),R?(0,$.jsx)(En,{examples:F,labels:l,onSelect:K}):null,(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:l.goalLabel}),(0,$.jsx)(`textarea`,{value:u,onChange:_e,placeholder:l.goalPlaceholder,className:`mt-1.5 min-h-24 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}),R?null:(0,$.jsx)(En,{examples:F,labels:l,onSelect:K}),(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between px-3 py-2.5 text-left text-sm text-fg`,onClick:ve,children:[ye,Se]}),D?(0,$.jsxs)(`div`,{className:`grid gap-3 border-t border-edge px-3 pb-3 pt-3 sm:grid-cols-2`,children:[(0,$.jsx)(`input`,{value:x,onChange:e=>S(e.target.value),placeholder:X(l.concurrencyPlaceholder,{default:r.defaults.concurrency}),inputMode:`numeric`,className:`rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}),(0,$.jsx)(`input`,{value:C,onChange:e=>E(e.target.value),placeholder:X(l.maxSubagentsPlaceholder,{default:r.defaults.maxSubagents}),inputMode:`numeric`,className:`rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}):null]})]}),Ee]})]})})}function An(e){return!e}function jn(e,t){return(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[t>0?(0,$.jsx)(`span`,{className:`text-fg-subtle`,children:`→`}):null,(0,$.jsx)(`span`,{className:`rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1 text-[11px] text-fg-muted`,children:e.title})]},e.id)}function Mn(e){let[t,n]=e;return`${t}: ${String(n)}`}function Nn(e,t){return e.args[t]??t}function Pn(e){let t=(0,Q.c)(28),{stats:n,language:r}=e,i,o,s;if(t[0]!==r||t[1]!==n){s=Symbol.for(`react.early_return_sentinel`);bb0:{if(i=a(r).workflows,!n||n.totalRuns===0){s=null;break bb0}o=n.topDefinitions[0]?X(i.statsTopWorkflow,{name:n.topDefinitions[0].definitionId,count:n.topDefinitions[0].count}):null}t[0]=r,t[1]=n,t[2]=i,t[3]=o,t[4]=s}else i=t[2],o=t[3],s=t[4];if(s!==Symbol.for(`react.early_return_sentinel`))return s;let c=o,l=i.statsTotalRuns,u=String(n.totalRuns),d;t[5]!==i.statsTotalRuns||t[6]!==u?(d=(0,$.jsx)(Fn,{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)(Fn,{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)(Fn,{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?`—`:je(n.averageDurationMs),t[17]=n.averageDurationMs,t[18]=_);let v=c??void 0,y;t[19]!==i.statsAvgDuration||t[20]!==_||t[21]!==v?(y=(0,$.jsx)(Fn,{label:i.statsAvgDuration,value:_,hint:v}),t[19]=i.statsAvgDuration,t[20]=_,t[21]=v,t[22]=y):y=t[22];let b;return t[23]!==g||t[24]!==y||t[25]!==d||t[26]!==m?(b=(0,$.jsxs)(`section`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,children:[d,m,g,y]}),t[23]=g,t[24]=y,t[25]=d,t[26]=m,t[27]=b):b=t[27],b}function Fn(e){let t=(0,Q.c)(10),{label:n,value:r,hint:i}=e,a;t[0]===n?a=t[1]:(a=(0,$.jsx)(`div`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=(0,$.jsx)(`div`,{className:`mt-1 text-lg font-semibold tabular-nums text-fg`,children:r}),t[2]=r,t[3]=o);let s;t[4]===i?s=t[5]:(s=i?(0,$.jsx)(`div`,{className:`mt-1 truncate text-[11px] text-fg-muted`,children:i}):null,t[4]=i,t[5]=s);let c;return t[6]!==a||t[7]!==o||t[8]!==s?(c=(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-panel px-4 py-3`,children:[a,o,s]}),t[6]=a,t[7]=o,t[8]=s,t[9]=c):c=t[9],c}function In(e){let t=(0,Q.c)(27),{vm:n}=e,{labels:r,loading:i,searchQuery:a,setSearchQuery:o,refreshAll:s,setManageOpen:c}=n,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(P,{className:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[0]=l):l=t[0];let u;t[1]===o?u=t[2]:(u=e=>o(e.target.value),t[1]=o,t[2]=u);let d=r.searchPlaceholder,f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=J(`h-9 w-full rounded-lg border border-edge bg-surface-panel py-2 pl-9 pr-3 text-sm text-fg shadow-surface`,`placeholder:text-fg-subtle`,K.focusRingPanel),t[3]=f):f=t[3];let p;t[4]!==r.searchPlaceholder||t[5]!==a||t[6]!==u?(p=(0,$.jsxs)(`div`,{className:`relative min-w-[12rem] flex-1 sm:max-w-xs`,children:[l,(0,$.jsx)(`input`,{value:a,onChange:u,placeholder:d,className:f})]}),t[4]=r.searchPlaceholder,t[5]=a,t[6]=u,t[7]=p):p=t[7];let m;t[8]===c?m=t[9]:(m=()=>c(!0),t[8]=c,t[9]=m);let h;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(ye,{className:`size-4`,"aria-hidden":!0}),t[10]=h):h=t[10];let g;t[11]!==r.addWorkflow||t[12]!==m?(g=(0,$.jsxs)(V,{variant:`secondary`,onClick:m,children:[h,r.addWorkflow]}),t[11]=r.addWorkflow,t[12]=m,t[13]=g):g=t[13];let _=r.refresh,v=r.refresh,y=i&&`animate-spin`,b;t[14]===y?b=t[15]:(b=J(`size-4`,y),t[14]=y,t[15]=b);let x;t[16]===b?x=t[17]:(x=(0,$.jsx)(G,{className:b,strokeWidth:1.75,"aria-hidden":!0}),t[16]=b,t[17]=x);let S;t[18]!==r.refresh||t[19]!==i||t[20]!==s||t[21]!==x?(S=(0,$.jsx)(V,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,onClick:s,disabled:i,title:_,"aria-label":v,children:x}),t[18]=r.refresh,t[19]=i,t[20]=s,t[21]=x,t[22]=S):S=t[22];let C;return t[23]!==S||t[24]!==p||t[25]!==g?(C=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[p,g,S]}),t[23]=S,t[24]=p,t[25]=g,t[26]=C):C=t[26],C}function Ln(e){let t=(0,Q.c)(194),{vm:n}=e,{language:r,localeTag:i,labels:o,hasToken:s,definitions:c,runs:l,searchQuery:u,ownerAgentId:d,agentOptions:f,setOwnerAgentId:p,workflowFilterId:m,setWorkflowFilterId:h,triggerFilter:g,setTriggerFilter:_,selectedRunId:v,selectedRunView:y,selectedRunComparison:b,selectedRunLoading:x,selectedRunError:C,openRunDetails:w,closeRunDetails:T,openRunDetailsById:E,openRunInChat:D,pickStartOpen:O,setPickStartOpen:k,startDefinition:A,setStartDefinition:j,detailDefinition:M,setDetailDefinition:P,manageOpen:ee,setManageOpen:F,actionError:I,actionFeedback:te,starting:ne,savingWorkflow:L,loading:R,error:re,stats:z,submitStart:H,cancelRun:U,retryRun:W,replayRun:ie,saveCustomWorkflow:ae,saveDraftAndStart:G}=n,oe=N(Bn),se=N(zn),ce;t[0]!==se||t[1]!==s||t[2]!==o.title||t[3]!==oe||t[4]!==n?(ce=()=>{if(!s){se();return}return oe({startExtra:null,main:(0,$.jsx)(`div`,{className:`min-w-0`,children:(0,$.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:o.title})}),end:(0,$.jsx)(In,{vm:n})}),()=>se()},t[0]=se,t[1]=s,t[2]=o.title,t[3]=oe,t[4]=n,t[5]=ce):ce=t[5];let le;if(t[6]!==se||t[7]!==s||t[8]!==o.title||t[9]!==R||t[10]!==n?(le=[se,s,o.title,R,n,n.refreshAll,n.setManageOpen,n.setSearchQuery],t[6]=se,t[7]=s,t[8]=o.title,t[9]=R,t[10]=n,t[11]=le):le=t[11],(0,Z.useLayoutEffect)(ce,le),!s){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(ge,{className:`size-10 text-accent-fg`,"aria-hidden":!0}),t[12]=e):e=t[12];let n;t[13]===o.title?n=t[14]:(n=(0,$.jsx)(`h1`,{className:`mt-4 text-xl font-semibold text-fg`,children:o.title}),t[13]=o.title,t[14]=n);let r;t[15]===o.needToken?r=t[16]:(r=(0,$.jsx)(`p`,{className:`mt-2 max-w-md text-sm leading-6 text-fg-muted`,children:o.needToken}),t[15]=o.needToken,t[16]=r);let i;return t[17]!==n||t[18]!==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[17]=n,t[18]=r,t[19]=i):i=t[19],i}let q;t[20]!==f||t[21]!==r||t[22]!==d||t[23]!==p?(q=f.length>1?(0,$.jsx)(`select`,{value:d??``,"aria-label":`Agent`,onChange:e=>p(e.target.value),className:J(`h-9 min-w-36 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,K.focusRingPanel),children:f.map(e=>(0,$.jsx)(`option`,{value:e.id,children:S(e,a(r).agentsSettings)},e.id))}):null,t[20]=f,t[21]=r,t[22]=d,t[23]=p,t[24]=q):q=t[24];let ue=o.boardTriggerFilterAria,de;t[25]===_?de=t[26]:(de=e=>_(e.target.value),t[25]=_,t[26]=de);let fe;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(fe=J(`h-9 min-w-[7.5rem] rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,K.focusRingPanel),t[27]=fe):fe=t[27];let pe;t[28]===o.boardTriggerFilterAll?pe=t[29]:(pe=(0,$.jsx)(`option`,{value:`all`,children:o.boardTriggerFilterAll}),t[28]=o.boardTriggerFilterAll,t[29]=pe);let me;t[30]===o.boardTriggerFilterCron?me=t[31]:(me=(0,$.jsx)(`option`,{value:`cron`,children:o.boardTriggerFilterCron}),t[30]=o.boardTriggerFilterCron,t[31]=me);let he;t[32]===o.boardTriggerFilterWebui?he=t[33]:(he=(0,$.jsx)(`option`,{value:`webui`,children:o.boardTriggerFilterWebui}),t[32]=o.boardTriggerFilterWebui,t[33]=he);let _e;t[34]===o.boardTriggerFilterChat?_e=t[35]:(_e=(0,$.jsx)(`option`,{value:`chat`,children:o.boardTriggerFilterChat}),t[34]=o.boardTriggerFilterChat,t[35]=_e);let ve;t[36]===o.boardTriggerFilterApi?ve=t[37]:(ve=(0,$.jsx)(`option`,{value:`api`,children:o.boardTriggerFilterApi}),t[36]=o.boardTriggerFilterApi,t[37]=ve);let ye;t[38]!==o.boardTriggerFilterAria||t[39]!==_e||t[40]!==ve||t[41]!==de||t[42]!==pe||t[43]!==me||t[44]!==he||t[45]!==g?(ye=(0,$.jsxs)(`select`,{value:g,"aria-label":ue,onChange:de,className:fe,children:[pe,me,he,_e,ve]}),t[38]=o.boardTriggerFilterAria,t[39]=_e,t[40]=ve,t[41]=de,t[42]=pe,t[43]=me,t[44]=he,t[45]=g,t[46]=ye):ye=t[46];let be=o.boardWorkflowFilterAria,xe;t[47]===h?xe=t[48]:(xe=e=>h(e.target.value),t[47]=h,t[48]=xe);let Se;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(Se=J(`h-9 min-w-40 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,K.focusRingPanel),t[49]=Se):Se=t[49];let Ce;t[50]===o.boardWorkflowFilterAll?Ce=t[51]:(Ce=(0,$.jsx)(`option`,{value:``,children:o.boardWorkflowFilterAll}),t[50]=o.boardWorkflowFilterAll,t[51]=Ce);let we;t[52]===c?we=t[53]:(we=c.map(Rn),t[52]=c,t[53]=we);let Te;t[54]!==o.boardWorkflowFilterAria||t[55]!==xe||t[56]!==Ce||t[57]!==we||t[58]!==m?(Te=(0,$.jsxs)(`select`,{value:m,"aria-label":be,onChange:xe,className:Se,children:[Ce,we]}),t[54]=o.boardWorkflowFilterAria,t[55]=xe,t[56]=Ce,t[57]=we,t[58]=m,t[59]=Te):Te=t[59];let Ee;t[60]===k?Ee=t[61]:(Ee=()=>k(!0),t[60]=k,t[61]=Ee);let De;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(De=(0,$.jsx)(B,{className:`size-4`,"aria-hidden":!0}),t[62]=De):De=t[62];let Oe;t[63]!==o.boardStart||t[64]!==Ee?(Oe=(0,$.jsxs)(V,{variant:`primary`,onClick:Ee,children:[De,o.boardStart]}),t[63]=o.boardStart,t[64]=Ee,t[65]=Oe):Oe=t[65];let ke;t[66]!==ye||t[67]!==Te||t[68]!==Oe||t[69]!==q?(ke=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[q,ye,Te,Oe]}),t[66]=ye,t[67]=Te,t[68]=Oe,t[69]=q,t[70]=ke):ke=t[70];let Ae;t[71]===te?Ae=t[72]:(Ae=te?(0,$.jsx)(`div`,{className:`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:te}):null,t[71]=te,t[72]=Ae);let Y;t[73]!==I||t[74]!==re?(Y=I??re?(0,$.jsx)(`div`,{className:`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:I??re}):null,t[73]=I,t[74]=re,t[75]=Y):Y=t[75];let je;t[76]!==r||t[77]!==z?(je=(0,$.jsx)(Pn,{stats:z,language:r}),t[76]=r,t[77]=z,t[78]=je):je=t[78];let Me;t[79]===C?Me=t[80]:(Me=C?(0,$.jsx)(`div`,{className:`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:C}):null,t[79]=C,t[80]=Me);let Ne;t[81]!==o.boardEmptyHint||t[82]!==o.boardEmptyTitle||t[83]!==o.boardStart||t[84]!==o.loading?(Ne={boardEmptyTitle:o.boardEmptyTitle,boardEmptyHint:o.boardEmptyHint,boardStart:o.boardStart,loading:o.loading},t[81]=o.boardEmptyHint,t[82]=o.boardEmptyTitle,t[83]=o.boardStart,t[84]=o.loading,t[85]=Ne):Ne=t[85];let Pe;t[86]===U?Pe=t[87]:(Pe=e=>void U(e),t[86]=U,t[87]=Pe);let Fe;t[88]===W?Fe=t[89]:(Fe=e=>void W(e),t[88]=W,t[89]=Fe);let Ie;t[90]===k?Ie=t[91]:(Ie=()=>k(!0),t[90]=k,t[91]=Ie);let Le;t[92]!==r||t[93]!==R||t[94]!==i||t[95]!==w||t[96]!==D||t[97]!==l||t[98]!==u||t[99]!==v||t[100]!==Ne||t[101]!==Pe||t[102]!==Fe||t[103]!==Ie||t[104]!==g||t[105]!==m?(Le=(0,$.jsx)(`div`,{className:`min-w-0`,children:(0,$.jsx)(ft,{runs:l,language:r,localeTag:i,labels:Ne,searchQuery:u,workflowFilterId:m,triggerFilter:g,selectedRunId:v,loading:R,onOpenRun:w,onOpenRunChat:D,onCancelRun:Pe,onRetryRun:Fe,onStart:Ie})}),t[92]=r,t[93]=R,t[94]=i,t[95]=w,t[96]=D,t[97]=l,t[98]=u,t[99]=v,t[100]=Ne,t[101]=Pe,t[102]=Fe,t[103]=Ie,t[104]=g,t[105]=m,t[106]=Le):Le=t[106];let X;t[107]!==ke||t[108]!==Ae||t[109]!==Y||t[110]!==je||t[111]!==Me||t[112]!==Le?(X=(0,$.jsxs)(`div`,{className:`mx-auto flex w-full max-w-400 flex-col gap-5 px-4 py-6 lg:px-6`,children:[ke,Ae,Y,je,Me,Le]}),t[107]=ke,t[108]=Ae,t[109]=Y,t[110]=je,t[111]=Me,t[112]=Le,t[113]=X):X=t[113];let Re;if(t[114]!==c||t[115]!==y?.run){let e;t[117]===y?.run?e=t[118]:(e=e=>e.id===y?.run.definitionId,t[117]=y?.run,t[118]=e),Re=c.find(e),t[114]=c,t[115]=y?.run,t[116]=Re}else Re=t[116];let ze=!!v&&x,Be;t[119]!==U||t[120]!==v?(Be=()=>{v&&U(v)},t[119]=U,t[120]=v,t[121]=Be):Be=t[121];let Ve;t[122]!==W||t[123]!==v?(Ve=()=>{v&&W(v)},t[122]=W,t[123]=v,t[124]=Ve):Ve=t[124];let He;t[125]!==ie||t[126]!==v?(He=e=>{v&&ie(v,e)},t[125]=ie,t[126]=v,t[127]=He):He=t[127];let Ue;t[128]!==T||t[129]!==r||t[130]!==i||t[131]!==E||t[132]!==d||t[133]!==b||t[134]!==y||t[135]!==Re||t[136]!==ze||t[137]!==Be||t[138]!==Ve||t[139]!==He?(Ue=(0,$.jsx)($t,{view:y,comparison:b,currentDefinition:Re,loading:ze,language:r,localeTag:i,onCancel:Be,onRetry:Ve,onReplay:He,onOpenRunId:E,ownerAgentId:d,onClose:T}),t[128]=T,t[129]=r,t[130]=i,t[131]=E,t[132]=d,t[133]=b,t[134]=y,t[135]=Re,t[136]=ze,t[137]=Be,t[138]=Ve,t[139]=He,t[140]=Ue):Ue=t[140];let We;t[141]===k?We=t[142]:(We=()=>k(!1),t[141]=k,t[142]=We);let Ge;t[143]!==k||t[144]!==j?(Ge=e=>{k(!1),j(e)},t[143]=k,t[144]=j,t[145]=Ge):Ge=t[145];let Ke;t[146]!==c||t[147]!==r||t[148]!==O||t[149]!==We||t[150]!==Ge?(Ke=(0,$.jsx)(Gt,{open:O,definitions:c,language:r,onClose:We,onPick:Ge}),t[146]=c,t[147]=r,t[148]=O,t[149]=We,t[150]=Ge,t[151]=Ke):Ke=t[151];let qe=A!=null,Je;t[152]===j?Je=t[153]:(Je=()=>j(null),t[152]=j,t[153]=Je);let Ye;t[154]===H?Ye=t[155]:(Ye=e=>void H(e),t[154]=H,t[155]=Ye);let Xe;t[156]!==r||t[157]!==A||t[158]!==ne||t[159]!==qe||t[160]!==Je||t[161]!==Ye?(Xe=(0,$.jsx)(kn,{open:qe,definition:A,language:r,starting:ne,onClose:Je,onStart:Ye}),t[156]=r,t[157]=A,t[158]=ne,t[159]=qe,t[160]=Je,t[161]=Ye,t[162]=Xe):Xe=t[162];let Ze=M!=null,Qe;t[163]===P?Qe=t[164]:(Qe=()=>P(null),t[163]=P,t[164]=Qe);let $e;t[165]!==M||t[166]!==P||t[167]!==j?($e=()=>{M&&(P(null),j(M))},t[165]=M,t[166]=P,t[167]=j,t[168]=$e):$e=t[168];let et;t[169]!==M||t[170]!==r||t[171]!==Ze||t[172]!==Qe||t[173]!==$e?(et=(0,$.jsx)(Pt,{open:Ze,definition:M,language:r,onClose:Qe,onRun:$e}),t[169]=M,t[170]=r,t[171]=Ze,t[172]=Qe,t[173]=$e,t[174]=et):et=t[174];let tt;t[175]===F?tt=t[176]:(tt=()=>F(!1),t[175]=F,t[176]=tt);let nt;t[177]===ae?nt=t[178]:(nt=e=>ae(e),t[177]=ae,t[178]=nt);let rt;t[179]!==r||t[180]!==ee||t[181]!==d||t[182]!==G||t[183]!==L||t[184]!==tt||t[185]!==nt?(rt=(0,$.jsx)(_t,{open:ee,language:r,ownerAgentId:d,saving:L,onClose:tt,onSave:nt,onSaveAndStart:G}),t[179]=r,t[180]=ee,t[181]=d,t[182]=G,t[183]=L,t[184]=tt,t[185]=nt,t[186]=rt):rt=t[186];let it;return t[187]!==X||t[188]!==Ue||t[189]!==Ke||t[190]!==Xe||t[191]!==et||t[192]!==rt?(it=(0,$.jsxs)(`main`,{className:`min-h-0 flex-1 overflow-auto bg-surface-base`,children:[X,Ue,Ke,Xe,et,rt]}),t[187]=X,t[188]=Ue,t[189]=Ke,t[190]=Xe,t[191]=et,t[192]=rt,t[193]=it):it=t[193],it}function Rn(e){return(0,$.jsx)(`option`,{value:e.id,children:e.title},e.id)}function zn(e){return e.clearPageHeader}function Bn(e){return e.setPageHeader}function Vn(){let e=i(e=>e.language),t=a(e).workflows,n=e===`zh`?`zh-CN`:`en-US`,r=l(e=>e.token),s=!!r,c=re(),[d,f]=fe(),m=d.get(`q`)??``,h=d.get(`wf`)?.trim()??``,_=d.get(`trigger`)?.trim()||`all`,v=d.get(`run`)?.trim()??``,y=d.get(`agent`)?.trim()??``,[b,x]=(0,Z.useState)(null),[S,w]=(0,Z.useState)(!1),[T,O]=(0,Z.useState)(null),[k,A]=(0,Z.useState)(!1),[j,M]=(0,Z.useState)(null),[N,P]=(0,Z.useState)(null),[ee,te]=(0,Z.useState)(!1),[ne,R]=(0,Z.useState)(!1),z=o(s?[`workflow-agents`,r]:null,Ee,{revalidateOnFocus:!1}),B=(0,Z.useMemo)(()=>{let e=z.data?.agents??[];return y&&e.some(e=>e.id===y)||y&&e.length===0?y:z.data?.defaultId??(y||void 0)},[z.data,y]),V=o(s?[`workflow-definitions`,r]:null,g,{revalidateOnFocus:!1}),H=o(s&&B?[`workflow-runs`,r,B]:null,()=>p(100,{ownerAgentId:B}),{revalidateOnFocus:!1,refreshInterval:e=>e?.length&&e.some(e=>e.status===`queued`||e.status===`running`)?3e3:0}),U=o(s&&B?[`workflow-stats`,r,B,h]:null,()=>D(h,{ownerAgentId:B}),{revalidateOnFocus:!1});(0,Z.useEffect)(()=>{if(!N)return;let e=window.setTimeout(()=>P(null),4e3);return()=>window.clearTimeout(e)},[N]);let W=V.data??[],ie=z.data?.agents??[],ae=H.data??[],G=v||null,K=me(G,{ownerAgentId:B}),se=o(s&&B&&G&&K.view?.run.metadata?.replay?[`workflow-run-comparison`,r,B,G]:null,()=>xe(G,{ownerAgentId:B}),{revalidateOnFocus:!1}),ce=(0,Z.useMemo)(()=>Le(W,m,`all`,`all`),[W,m]),q=(0,Z.useCallback)(e=>{f(t=>{let n=new URLSearchParams(t);return e(n,t),n},{replace:!0})},[f]);(0,Z.useEffect)(()=>{let e=z.data?.agents??[];!y||e.length===0||e.some(e=>e.id===y)||q(e=>{z.data?.defaultId?e.set(F,z.data.defaultId):e.delete(F),e.delete(`run`)})},[z.data,y,q]);let ue=(0,Z.useCallback)(e=>{q(t=>{let n=e.trim();n?t.set(`q`,n):t.delete(`q`)})},[q]),de=(0,Z.useCallback)(e=>{q(t=>{let n=e.trim();n?t.set(F,n):t.delete(F),t.delete(`run`)})},[q]),pe=(0,Z.useCallback)(e=>{q(t=>{let n=e.trim();n?t.set(`wf`,n):t.delete(`wf`)})},[q]),J=(0,Z.useCallback)(e=>{q(t=>{let n=e.trim();n&&n!==`all`?t.set(L,n):t.delete(L)})},[q]),he=(0,Z.useCallback)(e=>{q(t=>{B&&t.set(F,B),t.set(`run`,e.id)})},[B,q]),ge=(0,Z.useCallback)(()=>{q(e=>{e.delete(`run`)})},[q]),_e=(0,Z.useCallback)(e=>{q(t=>{B&&t.set(F,B),t.set(`run`,e)})},[B,q]),ye=(0,Z.useCallback)(e=>{let t=Ue(e);t&&c(Ie(t))},[c]);(0,Z.useEffect)(()=>{d.get(`tab`)&&q(e=>{e.delete(`tab`)})},[q,d]),(0,Z.useEffect)(()=>{let e=d.get(`def`),t=d.get(ve)===`1`;if(!e||!W.length)return;let n=W.find(t=>t.id===e||t.name===e);n&&(t?x(n):O(n),q(e=>{e.delete(`def`),e.delete(ve)}))},[W,q,d]),(0,Z.useEffect)(()=>{let e=()=>{H.mutate(),U.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)}},[H,U]);let be=(0,Z.useCallback)(()=>{z.mutate(),V.mutate(),H.mutate(),U.mutate()},[z,V,H,U]),Se=(0,Z.useCallback)(async e=>{if(b){te(!0),M(null);try{let n=await oe({definitionId:b.id,goal:e.goal,input:e.input,agentId:B,concurrency:e.concurrency,maxSubagents:e.maxSubagents});x(null),await H.mutate(),await U.mutate(),P(t.startSuccess),q(e=>{B&&e.set(F,B),e.set(`run`,n.runId)})}catch(e){M(e instanceof Error?e.message:t.startFailed)}finally{te(!1)}}},[t.startFailed,t.startSuccess,B,q,H,b,U]),Ce=(0,Z.useCallback)(async e=>{try{await I(e,{ownerAgentId:B}),await H.mutate(),await U.mutate()}catch(e){let n=e instanceof Error?e.message:t.cancelFailed;if(/not active|already finished/i.test(n)){await H.mutate(),await U.mutate();return}M(n)}},[t.cancelFailed,B,H,U]),we=(0,Z.useCallback)(async e=>{try{let t=await le(e,{ownerAgentId:B});await H.mutate(),await U.mutate(),q(e=>{B&&e.set(F,B),e.set(`run`,t.runId)})}catch(e){M(e instanceof Error?e.message:t.retryFailed)}},[t.retryFailed,B,q,H,U]),Te=(0,Z.useCallback)(async(e,n)=>{try{let t=await C(e,n,{ownerAgentId:B});await H.mutate(),await U.mutate(),q(e=>{B&&e.set(F,B),e.set(`run`,t.runId)})}catch(e){M(e instanceof Error?e.message:t.retryFailed)}},[t.retryFailed,B,q,H,U]),De=(0,Z.useCallback)(async e=>{R(!0),M(null);try{let n=await u(e.name,e.script);return A(!1),await V.mutate(),P(t.saveWorkflowSuccess),n}catch(e){M(e instanceof Error?e.message:t.saveWorkflowFailed)}finally{R(!1)}},[V,t.saveWorkflowFailed,t.saveWorkflowSuccess]),Oe=(0,Z.useCallback)(async e=>{R(!0),M(null);try{let n=await u(e.name,e.script);await V.mutate();let r=await oe({definitionId:n.id,goal:e.goal,input:{goal:e.goal},agentId:B});A(!1),await H.mutate(),await U.mutate(),P(t.startSuccess),q(e=>{B&&e.set(F,B),e.set(`run`,r.runId)})}catch(e){M(e instanceof Error?e.message:t.startFailed)}finally{R(!1)}},[V,t.startFailed,t.startSuccess,B,q,H,U]),ke=(0,Z.useCallback)(async e=>{if(e.metadata.source===`user`&&window.confirm(X(t.deleteConfirm,{name:e.name}))){M(null);try{await E(e.id),await V.mutate(),P(t.deleteWorkflowSuccess)}catch(e){M(e instanceof Error?e.message:t.deleteWorkflowFailed)}}},[V,t]),Ae=z.isLoading||V.isLoading||H.isLoading,Y=z.error?.message??V.error?.message??H.error?.message??null;return{language:e,localeTag:n,labels:t,hasToken:s,searchQuery:m,setSearchQuery:ue,ownerAgentId:B,agentOptions:ie,setOwnerAgentId:de,workflowFilterId:h,setWorkflowFilterId:pe,triggerFilter:_,setTriggerFilter:J,definitions:W,filteredDefinitions:ce,runs:ae,selectedRunId:G,selectedRunView:K.view,selectedRunComparison:se.data,selectedRunLoading:K.loading,selectedRunError:K.error?.message??se.error?.message??null,openRunDetails:he,closeRunDetails:ge,openRunDetailsById:_e,openRunInChat:ye,pickStartOpen:S,setPickStartOpen:w,startDefinition:b,setStartDefinition:x,detailDefinition:T,setDetailDefinition:O,manageOpen:k,setManageOpen:A,actionError:j,actionFeedback:N,starting:ee,savingWorkflow:ne,loading:Ae,error:Y,stats:U.data,refreshAll:be,submitStart:Se,cancelRun:Ce,retryRun:we,replayRun:Te,saveCustomWorkflow:De,saveDraftAndStart:Oe,removeCustomWorkflow:ke}}function Hn(){let e=(0,Q.c)(2),t=Vn(),n;return e[0]===t?n=e[1]:(n=(0,$.jsx)(Ln,{vm:t}),e[0]=t,e[1]=n),n}export{Hn as WorkflowsPage};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { type ChecklistItemStatus } from './checklist-types.js';
|
|
2
|
-
export type ChecklistUserMutationResult = {
|
|
3
|
-
kind: 'updated';
|
|
4
|
-
customData: Record<string, unknown>;
|
|
5
|
-
} | {
|
|
6
|
-
kind: 'noop';
|
|
7
|
-
message: string;
|
|
8
|
-
} | {
|
|
9
|
-
kind: 'error';
|
|
10
|
-
error: string;
|
|
11
|
-
};
|
|
12
|
-
export declare function applyChecklistUserMutation(customData: Record<string, unknown> | undefined, op: {
|
|
13
|
-
type: 'add';
|
|
14
|
-
text: string;
|
|
15
|
-
} | {
|
|
16
|
-
type: 'remove';
|
|
17
|
-
index1Based: number;
|
|
18
|
-
} | {
|
|
19
|
-
type: 'mark';
|
|
20
|
-
index1Based: number;
|
|
21
|
-
status: ChecklistItemStatus;
|
|
22
|
-
} | {
|
|
23
|
-
type: 'reset';
|
|
24
|
-
}): ChecklistUserMutationResult;
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { CHECKLIST_ITEM_PENDING } from "./checklist-types.js";
|
|
2
|
-
import { PERSISTENT_GOAL_CUSTOM_KEY, mergeCustomDataPatch, readPersistentGoal, serializePersistentGoal } from "./state.js";
|
|
3
|
-
//#region src/agent/goals/checklist-user.ts
|
|
4
|
-
function baseCustom(customData) {
|
|
5
|
-
return { ...customData ?? {} };
|
|
6
|
-
}
|
|
7
|
-
function applyChecklistUserMutation(customData, op) {
|
|
8
|
-
const s = readPersistentGoal(customData);
|
|
9
|
-
if (!s || s.status === "cleared") return {
|
|
10
|
-
kind: "error",
|
|
11
|
-
error: "No active goal."
|
|
12
|
-
};
|
|
13
|
-
if (op.type === "reset") {
|
|
14
|
-
const next = {
|
|
15
|
-
...s,
|
|
16
|
-
checklist: [],
|
|
17
|
-
decomposed: false,
|
|
18
|
-
consecutiveParseFailures: 0
|
|
19
|
-
};
|
|
20
|
-
return {
|
|
21
|
-
kind: "updated",
|
|
22
|
-
customData: mergeCustomDataPatch(baseCustom(customData), { [PERSISTENT_GOAL_CUSTOM_KEY]: serializePersistentGoal(next) })
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
const list = [...s.checklist ?? []];
|
|
26
|
-
if (op.type === "add") {
|
|
27
|
-
const text = op.text.trim();
|
|
28
|
-
if (!text) return {
|
|
29
|
-
kind: "error",
|
|
30
|
-
error: "Empty checklist item."
|
|
31
|
-
};
|
|
32
|
-
const item = {
|
|
33
|
-
text,
|
|
34
|
-
status: CHECKLIST_ITEM_PENDING,
|
|
35
|
-
addedBy: "user",
|
|
36
|
-
addedAt: Date.now()
|
|
37
|
-
};
|
|
38
|
-
list.push(item);
|
|
39
|
-
const next = {
|
|
40
|
-
...s,
|
|
41
|
-
checklist: list
|
|
42
|
-
};
|
|
43
|
-
return {
|
|
44
|
-
kind: "updated",
|
|
45
|
-
customData: mergeCustomDataPatch(baseCustom(customData), { [PERSISTENT_GOAL_CUSTOM_KEY]: serializePersistentGoal(next) })
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
if (!list.length) return {
|
|
49
|
-
kind: "noop",
|
|
50
|
-
message: "Checklist is empty."
|
|
51
|
-
};
|
|
52
|
-
const idx = op.index1Based - 1;
|
|
53
|
-
if (idx < 0 || idx >= list.length) return {
|
|
54
|
-
kind: "error",
|
|
55
|
-
error: `Index out of range (1–${list.length}).`
|
|
56
|
-
};
|
|
57
|
-
if (op.type === "remove") {
|
|
58
|
-
list.splice(idx, 1);
|
|
59
|
-
const next = {
|
|
60
|
-
...s,
|
|
61
|
-
checklist: list
|
|
62
|
-
};
|
|
63
|
-
return {
|
|
64
|
-
kind: "updated",
|
|
65
|
-
customData: mergeCustomDataPatch(baseCustom(customData), { [PERSISTENT_GOAL_CUSTOM_KEY]: serializePersistentGoal(next) })
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
const st = op.status;
|
|
69
|
-
if (st !== "pending" && st !== "completed" && st !== "impossible") return {
|
|
70
|
-
kind: "error",
|
|
71
|
-
error: "Invalid status."
|
|
72
|
-
};
|
|
73
|
-
const item = { ...list[idx] };
|
|
74
|
-
item.status = st;
|
|
75
|
-
if (st === "completed" || st === "impossible") {
|
|
76
|
-
item.completedAt = Date.now();
|
|
77
|
-
if (!item.evidence) item.evidence = "marked by user";
|
|
78
|
-
} else item.completedAt = void 0;
|
|
79
|
-
list[idx] = item;
|
|
80
|
-
const next = {
|
|
81
|
-
...s,
|
|
82
|
-
checklist: list
|
|
83
|
-
};
|
|
84
|
-
return {
|
|
85
|
-
kind: "updated",
|
|
86
|
-
customData: mergeCustomDataPatch(baseCustom(customData), { [PERSISTENT_GOAL_CUSTOM_KEY]: serializePersistentGoal(next) })
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
//#endregion
|
|
90
|
-
export { applyChecklistUserMutation };
|
|
91
|
-
|
|
92
|
-
//# sourceMappingURL=checklist-user.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checklist-user.js","names":[],"sources":["../../../../src/agent/goals/checklist-user.ts"],"sourcesContent":["import {\n CHECKLIST_ITEM_COMPLETED,\n CHECKLIST_ITEM_IMPOSSIBLE,\n CHECKLIST_ITEM_PENDING,\n type ChecklistItemStatus,\n type GoalChecklistItem,\n} from './checklist-types.js';\nimport {\n mergeCustomDataPatch,\n readPersistentGoal,\n serializePersistentGoal,\n PERSISTENT_GOAL_CUSTOM_KEY,\n} from './state.js';\n\nexport type ChecklistUserMutationResult =\n | { kind: 'updated'; customData: Record<string, unknown> }\n | { kind: 'noop'; message: string }\n | { kind: 'error'; error: string };\n\nfunction baseCustom(customData: Record<string, unknown> | undefined): Record<string, unknown> {\n return { ...(customData ?? {}) };\n}\n\nexport function applyChecklistUserMutation(\n customData: Record<string, unknown> | undefined,\n op:\n | { type: 'add'; text: string }\n | { type: 'remove'; index1Based: number }\n | { type: 'mark'; index1Based: number; status: ChecklistItemStatus }\n | { type: 'reset' },\n): ChecklistUserMutationResult {\n const s = readPersistentGoal(customData);\n if (!s || s.status === 'cleared') {\n return { kind: 'error', error: 'No active goal.' };\n }\n\n if (op.type === 'reset') {\n const next = { ...s, checklist: [], decomposed: false, consecutiveParseFailures: 0 };\n return {\n kind: 'updated',\n customData: mergeCustomDataPatch(baseCustom(customData), {\n [PERSISTENT_GOAL_CUSTOM_KEY]: serializePersistentGoal(next),\n }),\n };\n }\n\n const list = [...(s.checklist ?? [])];\n\n if (op.type === 'add') {\n const text = op.text.trim();\n if (!text) return { kind: 'error', error: 'Empty checklist item.' };\n const item: GoalChecklistItem = {\n text,\n status: CHECKLIST_ITEM_PENDING,\n addedBy: 'user',\n addedAt: Date.now(),\n };\n list.push(item);\n const next = { ...s, checklist: list };\n return {\n kind: 'updated',\n customData: mergeCustomDataPatch(baseCustom(customData), {\n [PERSISTENT_GOAL_CUSTOM_KEY]: serializePersistentGoal(next),\n }),\n };\n }\n\n if (!list.length) {\n return { kind: 'noop', message: 'Checklist is empty.' };\n }\n\n const idx = op.index1Based - 1;\n if (idx < 0 || idx >= list.length) {\n return { kind: 'error', error: `Index out of range (1–${list.length}).` };\n }\n\n if (op.type === 'remove') {\n list.splice(idx, 1);\n const next = { ...s, checklist: list };\n return {\n kind: 'updated',\n customData: mergeCustomDataPatch(baseCustom(customData), {\n [PERSISTENT_GOAL_CUSTOM_KEY]: serializePersistentGoal(next),\n }),\n };\n }\n\n // mark\n const st = op.status;\n if (st !== CHECKLIST_ITEM_PENDING && st !== CHECKLIST_ITEM_COMPLETED && st !== CHECKLIST_ITEM_IMPOSSIBLE) {\n return { kind: 'error', error: 'Invalid status.' };\n }\n const item = { ...list[idx]! };\n item.status = st;\n if (st === CHECKLIST_ITEM_COMPLETED || st === CHECKLIST_ITEM_IMPOSSIBLE) {\n item.completedAt = Date.now();\n if (!item.evidence) item.evidence = 'marked by user';\n } else {\n item.completedAt = undefined;\n }\n list[idx] = item;\n const next = { ...s, checklist: list };\n return {\n kind: 'updated',\n customData: mergeCustomDataPatch(baseCustom(customData), {\n [PERSISTENT_GOAL_CUSTOM_KEY]: serializePersistentGoal(next),\n }),\n };\n}\n"],"mappings":";;;AAmBA,SAAS,WAAW,YAA0E;AAC5F,QAAO,EAAE,GAAI,cAAc,EAAE,EAAG;;AAGlC,SAAgB,2BACd,YACA,IAK6B;CAC7B,MAAM,IAAI,mBAAmB,WAAW;AACxC,KAAI,CAAC,KAAK,EAAE,WAAW,UACrB,QAAO;EAAE,MAAM;EAAS,OAAO;EAAmB;AAGpD,KAAI,GAAG,SAAS,SAAS;EACvB,MAAM,OAAO;GAAE,GAAG;GAAG,WAAW,EAAE;GAAE,YAAY;GAAO,0BAA0B;GAAG;AACpF,SAAO;GACL,MAAM;GACN,YAAY,qBAAqB,WAAW,WAAW,EAAE,GACtD,6BAA6B,wBAAwB,KAAK,EAC5D,CAAC;GACH;;CAGH,MAAM,OAAO,CAAC,GAAI,EAAE,aAAa,EAAE,CAAE;AAErC,KAAI,GAAG,SAAS,OAAO;EACrB,MAAM,OAAO,GAAG,KAAK,MAAM;AAC3B,MAAI,CAAC,KAAM,QAAO;GAAE,MAAM;GAAS,OAAO;GAAyB;EACnE,MAAM,OAA0B;GAC9B;GACA,QAAQ;GACR,SAAS;GACT,SAAS,KAAK,KAAK;GACpB;AACD,OAAK,KAAK,KAAK;EACf,MAAM,OAAO;GAAE,GAAG;GAAG,WAAW;GAAM;AACtC,SAAO;GACL,MAAM;GACN,YAAY,qBAAqB,WAAW,WAAW,EAAE,GACtD,6BAA6B,wBAAwB,KAAK,EAC5D,CAAC;GACH;;AAGH,KAAI,CAAC,KAAK,OACR,QAAO;EAAE,MAAM;EAAQ,SAAS;EAAuB;CAGzD,MAAM,MAAM,GAAG,cAAc;AAC7B,KAAI,MAAM,KAAK,OAAO,KAAK,OACzB,QAAO;EAAE,MAAM;EAAS,OAAO,yBAAyB,KAAK,OAAO;EAAK;AAG3E,KAAI,GAAG,SAAS,UAAU;AACxB,OAAK,OAAO,KAAK,EAAE;EACnB,MAAM,OAAO;GAAE,GAAG;GAAG,WAAW;GAAM;AACtC,SAAO;GACL,MAAM;GACN,YAAY,qBAAqB,WAAW,WAAW,EAAE,GACtD,6BAA6B,wBAAwB,KAAK,EAC5D,CAAC;GACH;;CAIH,MAAM,KAAK,GAAG;AACd,KAAI,OAAA,aAAiC,OAAA,eAAmC,OAAA,aACtE,QAAO;EAAE,MAAM;EAAS,OAAO;EAAmB;CAEpD,MAAM,OAAO,EAAE,GAAG,KAAK,MAAO;AAC9B,MAAK,SAAS;AACd,KAAI,OAAA,eAAmC,OAAA,cAAkC;AACvE,OAAK,cAAc,KAAK,KAAK;AAC7B,MAAI,CAAC,KAAK,SAAU,MAAK,WAAW;OAEpC,MAAK,cAAc,KAAA;AAErB,MAAK,OAAO;CACZ,MAAM,OAAO;EAAE,GAAG;EAAG,WAAW;EAAM;AACtC,QAAO;EACL,MAAM;EACN,YAAY,qBAAqB,WAAW,WAAW,EAAE,GACtD,6BAA6B,wBAAwB,KAAK,EAC5D,CAAC;EACH"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { Config } from '../../config/schema.js';
|
|
2
|
-
import type { GoalPostTurnDecision } from './evaluate-turn.js';
|
|
3
|
-
import type { GoalRunRecord } from './goal-run-types.js';
|
|
4
|
-
export declare function resolveGoalRunsFilePath(config: Config, sessionKey: string): string;
|
|
5
|
-
/**
|
|
6
|
-
* Append one run after persistent-goal post-turn evaluation (best-effort; logs on failure).
|
|
7
|
-
*/
|
|
8
|
-
export declare function appendGoalRun(opts: {
|
|
9
|
-
config: Config;
|
|
10
|
-
sessionKey: string;
|
|
11
|
-
decision: GoalPostTurnDecision;
|
|
12
|
-
assistantPlainText: string;
|
|
13
|
-
}): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
* List runs for a session (newest first). Missing or invalid file yields [].
|
|
16
|
-
*/
|
|
17
|
-
export declare function listGoalRuns(config: Config, sessionKey: string, opts?: {
|
|
18
|
-
limit?: number;
|
|
19
|
-
}): Promise<GoalRunRecord[]>;
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { init_agent_scope, resolveAgentHomeDir } from "../agent-scope.js";
|
|
2
|
-
import { extractProfileAgentId } from "../../config/agent-profile.js";
|
|
3
|
-
import { createLogger } from "../../utils/logger/index.js";
|
|
4
|
-
import { init_logger } from "../../utils/logger.js";
|
|
5
|
-
import { init_write_file_atomic, writeTextAtomic } from "../../infra/write-file-atomic.js";
|
|
6
|
-
import { checklistCounts } from "./checklist-types.js";
|
|
7
|
-
import "./goal-run-types.js";
|
|
8
|
-
import { join } from "node:path";
|
|
9
|
-
import { createHash, randomUUID } from "node:crypto";
|
|
10
|
-
import { readFile } from "node:fs/promises";
|
|
11
|
-
//#region src/agent/goals/goal-run-store.ts
|
|
12
|
-
init_agent_scope();
|
|
13
|
-
init_write_file_atomic();
|
|
14
|
-
init_logger();
|
|
15
|
-
const log = createLogger("GoalRunStore");
|
|
16
|
-
const MAX_REASON_CHARS = 4e3;
|
|
17
|
-
const MAX_GOAL_CHARS = 4e3;
|
|
18
|
-
const MAX_ASSISTANT_PREVIEW_CHARS = 2e3;
|
|
19
|
-
const MAX_RUNS_PER_FILE = 400;
|
|
20
|
-
function truncate(s, max) {
|
|
21
|
-
const t = s.trim();
|
|
22
|
-
if (t.length <= max) return t;
|
|
23
|
-
return `${t.slice(0, max - 1)}…`;
|
|
24
|
-
}
|
|
25
|
-
function resolveGoalRunsFilePath(config, sessionKey) {
|
|
26
|
-
return join(resolveAgentHomeDir(config, extractProfileAgentId(sessionKey, config)), "goal-runs", `${createHash("sha256").update(sessionKey, "utf8").digest("hex")}.json`);
|
|
27
|
-
}
|
|
28
|
-
function isGoalRunFileV1(x) {
|
|
29
|
-
if (!x || typeof x !== "object" || Array.isArray(x)) return false;
|
|
30
|
-
const o = x;
|
|
31
|
-
if (o.version !== 1) return false;
|
|
32
|
-
if (typeof o.sessionKey !== "string" || !o.sessionKey.trim()) return false;
|
|
33
|
-
if (!Array.isArray(o.runs)) return false;
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
function parseGoalRunFile(raw) {
|
|
37
|
-
try {
|
|
38
|
-
const parsed = JSON.parse(raw);
|
|
39
|
-
if (!isGoalRunFileV1(parsed)) return null;
|
|
40
|
-
return parsed;
|
|
41
|
-
} catch {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
function buildRecordFromDecision(sessionKey, decision, assistantPlainText) {
|
|
46
|
-
const ns = decision.newState;
|
|
47
|
-
if (!ns) return null;
|
|
48
|
-
const items = ns.checklist ?? [];
|
|
49
|
-
const progress = items.length > 0 ? (() => {
|
|
50
|
-
const c = checklistCounts(items);
|
|
51
|
-
return {
|
|
52
|
-
done: c.completed + c.impossible,
|
|
53
|
-
total: c.total
|
|
54
|
-
};
|
|
55
|
-
})() : void 0;
|
|
56
|
-
return {
|
|
57
|
-
id: randomUUID(),
|
|
58
|
-
at: Date.now(),
|
|
59
|
-
goalTitle: truncate(ns.goal, MAX_GOAL_CHARS),
|
|
60
|
-
turnsUsed: ns.turnsUsed,
|
|
61
|
-
maxTurns: ns.maxTurns,
|
|
62
|
-
verdict: decision.verdict,
|
|
63
|
-
statusAfter: ns.status,
|
|
64
|
-
...decision.reason.trim() ? { reason: truncate(decision.reason, MAX_REASON_CHARS) } : {},
|
|
65
|
-
willContinue: decision.shouldContinue,
|
|
66
|
-
...progress ? { checklistProgress: progress } : {},
|
|
67
|
-
...assistantPlainText.trim() ? { assistantPreview: truncate(assistantPlainText, MAX_ASSISTANT_PREVIEW_CHARS) } : {}
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Append one run after persistent-goal post-turn evaluation (best-effort; logs on failure).
|
|
72
|
-
*/
|
|
73
|
-
async function appendGoalRun(opts) {
|
|
74
|
-
const { config, sessionKey, decision, assistantPlainText } = opts;
|
|
75
|
-
const record = buildRecordFromDecision(sessionKey, decision, assistantPlainText);
|
|
76
|
-
if (!record) return;
|
|
77
|
-
const filePath = resolveGoalRunsFilePath(config, sessionKey);
|
|
78
|
-
let existing = {
|
|
79
|
-
version: 1,
|
|
80
|
-
sessionKey,
|
|
81
|
-
runs: []
|
|
82
|
-
};
|
|
83
|
-
try {
|
|
84
|
-
const parsed = parseGoalRunFile(await readFile(filePath, "utf8"));
|
|
85
|
-
if (parsed) {
|
|
86
|
-
if (parsed.sessionKey !== sessionKey) {
|
|
87
|
-
log.warn({
|
|
88
|
-
sessionKey,
|
|
89
|
-
filePath
|
|
90
|
-
}, "Goal run file sessionKey mismatch; refusing append");
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
existing = parsed;
|
|
94
|
-
}
|
|
95
|
-
} catch (err) {
|
|
96
|
-
if ((err && typeof err === "object" && "code" in err ? String(err.code) : "") !== "ENOENT") {
|
|
97
|
-
log.warn({
|
|
98
|
-
err,
|
|
99
|
-
sessionKey,
|
|
100
|
-
filePath
|
|
101
|
-
}, `Goal run read failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
const nextRuns = [...existing.runs, record];
|
|
106
|
-
const out = {
|
|
107
|
-
version: 1,
|
|
108
|
-
sessionKey,
|
|
109
|
-
runs: nextRuns.length > MAX_RUNS_PER_FILE ? nextRuns.slice(nextRuns.length - MAX_RUNS_PER_FILE) : nextRuns
|
|
110
|
-
};
|
|
111
|
-
await writeTextAtomic(filePath, `${JSON.stringify(out, null, 2)}\n`);
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* List runs for a session (newest first). Missing or invalid file yields [].
|
|
115
|
-
*/
|
|
116
|
-
async function listGoalRuns(config, sessionKey, opts) {
|
|
117
|
-
const limit = Math.min(500, Math.max(1, Math.floor(opts?.limit ?? 50)));
|
|
118
|
-
const filePath = resolveGoalRunsFilePath(config, sessionKey);
|
|
119
|
-
let raw;
|
|
120
|
-
try {
|
|
121
|
-
raw = await readFile(filePath, "utf8");
|
|
122
|
-
} catch (err) {
|
|
123
|
-
if ((err && typeof err === "object" && "code" in err ? String(err.code) : "") === "ENOENT") return [];
|
|
124
|
-
log.debug({
|
|
125
|
-
err,
|
|
126
|
-
sessionKey,
|
|
127
|
-
filePath
|
|
128
|
-
}, `Goal run list read failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
129
|
-
return [];
|
|
130
|
-
}
|
|
131
|
-
const parsed = parseGoalRunFile(raw);
|
|
132
|
-
if (!parsed || parsed.sessionKey !== sessionKey) return [];
|
|
133
|
-
return [...parsed.runs].reverse().slice(0, limit);
|
|
134
|
-
}
|
|
135
|
-
//#endregion
|
|
136
|
-
export { appendGoalRun, listGoalRuns, resolveGoalRunsFilePath };
|
|
137
|
-
|
|
138
|
-
//# sourceMappingURL=goal-run-store.js.map
|