cli-jaw 2.17.62 → 2.17.63
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.ja.md +17 -17
- package/README.ko.md +17 -17
- package/README.md +17 -17
- package/README.zh-CN.md +17 -17
- package/dist/bin/commands/tui/input-handler.js +19 -0
- package/dist/bin/commands/tui/input-handler.js.map +1 -1
- package/dist/bin/commands/tui/overlays.js +8 -4
- package/dist/bin/commands/tui/overlays.js.map +1 -1
- package/dist/bin/star-prompt.js +1 -1
- package/dist/bin/star-prompt.js.map +1 -1
- package/dist/server.js +14 -1
- package/dist/server.js.map +1 -1
- package/dist/src/agent/claude-runtime-pool.js +2 -1
- package/dist/src/agent/claude-runtime-pool.js.map +1 -1
- package/dist/src/agent/claude-runtime-run.js +28 -7
- package/dist/src/agent/claude-runtime-run.js.map +1 -1
- package/dist/src/agent/lifecycle-handler.js +34 -6
- package/dist/src/agent/lifecycle-handler.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-events.js +136 -9
- package/dist/src/agent/runtime/claude-sdk-events.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-history-loader.js +24 -0
- package/dist/src/agent/runtime/claude-sdk-history-loader.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-hooks.js +10 -4
- package/dist/src/agent/runtime/claude-sdk-hooks.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-messages.js +25 -2
- package/dist/src/agent/runtime/claude-sdk-messages.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-options.js +36 -3
- package/dist/src/agent/runtime/claude-sdk-options.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-permissions.js +32 -9
- package/dist/src/agent/runtime/claude-sdk-permissions.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-session.js +165 -17
- package/dist/src/agent/runtime/claude-sdk-session.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-version.js +8 -0
- package/dist/src/agent/runtime/claude-sdk-version.js.map +1 -0
- package/dist/src/agent/spawn/backend-codex-app.js +619 -0
- package/dist/src/agent/spawn/backend-codex-app.js.map +1 -0
- package/dist/src/agent/spawn/backend-context.js +2 -0
- package/dist/src/agent/spawn/backend-context.js.map +1 -0
- package/dist/src/agent/spawn/backend-copilot.js +385 -0
- package/dist/src/agent/spawn/backend-copilot.js.map +1 -0
- package/dist/src/agent/spawn/backend-native-acp.js +379 -0
- package/dist/src/agent/spawn/backend-native-acp.js.map +1 -0
- package/dist/src/agent/spawn/backend-pi.js +565 -0
- package/dist/src/agent/spawn/backend-pi.js.map +1 -0
- package/dist/src/agent/spawn/types.js +2 -0
- package/dist/src/agent/spawn/types.js.map +1 -0
- package/dist/src/agent/spawn.js +44 -1858
- package/dist/src/agent/spawn.js.map +1 -1
- package/dist/src/cli/claude-default-model-boot.js +36 -0
- package/dist/src/cli/claude-default-model-boot.js.map +1 -0
- package/dist/src/cli/claude-model-discovery.js +13 -1
- package/dist/src/cli/claude-model-discovery.js.map +1 -1
- package/dist/src/cli/claude-models.js +7 -1
- package/dist/src/cli/claude-models.js.map +1 -1
- package/dist/src/cli/commands.js +5 -15
- package/dist/src/cli/commands.js.map +1 -1
- package/dist/src/cli/tui/composer.js +3 -3
- package/dist/src/cli/tui/composer.js.map +1 -1
- package/dist/src/cli/tui/skill-mention.js +15 -0
- package/dist/src/cli/tui/skill-mention.js.map +1 -0
- package/dist/src/code-mode/manager.js +174 -9
- package/dist/src/code-mode/manager.js.map +1 -1
- package/dist/src/code-mode/providers/catalog.js +5 -3
- package/dist/src/code-mode/providers/catalog.js.map +1 -1
- package/dist/src/code-mode/providers/claude-history.js +132 -0
- package/dist/src/code-mode/providers/claude-history.js.map +1 -0
- package/dist/src/code-mode/providers/claude.js +74 -7
- package/dist/src/code-mode/providers/claude.js.map +1 -1
- package/dist/src/code-mode/providers/codex-app.js +7 -1
- package/dist/src/code-mode/providers/codex-app.js.map +1 -1
- package/dist/src/code-mode/session.js +158 -11
- package/dist/src/code-mode/session.js.map +1 -1
- package/dist/src/code-mode/store.js +416 -28
- package/dist/src/code-mode/store.js.map +1 -1
- package/dist/src/command-contract/catalog.js +3 -22
- package/dist/src/command-contract/catalog.js.map +1 -1
- package/dist/src/core/codex-config.js +3 -62
- package/dist/src/core/codex-config.js.map +1 -1
- package/dist/src/core/config.js +116 -14
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/runtime-settings.js +20 -10
- package/dist/src/core/runtime-settings.js.map +1 -1
- package/dist/src/core/settings-watch.js +1 -0
- package/dist/src/core/settings-watch.js.map +1 -1
- package/dist/src/core/skill-mentions.js +83 -0
- package/dist/src/core/skill-mentions.js.map +1 -0
- package/dist/src/manager/registry.js +5 -1
- package/dist/src/manager/registry.js.map +1 -1
- package/dist/src/manager/routes/desktop-status.js +1 -1
- package/dist/src/manager/routes/desktop-status.js.map +1 -1
- package/dist/src/orchestrator/pipeline.js +11 -1
- package/dist/src/orchestrator/pipeline.js.map +1 -1
- package/dist/src/prompt/builder.js +10 -4
- package/dist/src/prompt/builder.js.map +1 -1
- package/dist/src/prompt/templates/a1-system.md +1 -1
- package/dist/src/routes/code-native.js +51 -3
- package/dist/src/routes/code-native.js.map +1 -1
- package/dist/src/routes/settings.js +1 -4
- package/dist/src/routes/settings.js.map +1 -1
- package/dist/src/routes/skills.js +7 -0
- package/dist/src/routes/skills.js.map +1 -1
- package/dist/src/shared/skill-mention.js +61 -0
- package/dist/src/shared/skill-mention.js.map +1 -0
- package/dist/src/shared/tool-input.js +137 -0
- package/dist/src/shared/tool-input.js.map +1 -0
- package/package.json +7 -5
- package/public/css/activity.css +83 -20
- package/public/css/layout.css +2 -2
- package/public/css/sidebar.css +18 -0
- package/public/css/variables.css +23 -2
- package/public/dist/.vite/manifest.json +302 -334
- package/public/dist/assets/Activity-DPLlOJ46.js +1 -0
- package/public/dist/assets/AdvancedExport-BgOgGvc5.js +1 -0
- package/public/dist/assets/Agent-O_U8ny90.js +1 -0
- package/public/dist/assets/Browser-m6VynQXV.js +1 -0
- package/public/dist/assets/BrowserPanel-Bb-Bge6B.js +3 -0
- package/public/dist/assets/ChannelEnablementControl-BSuKQhTW.js +85 -0
- package/public/dist/assets/ChannelSetupEntry-DHLoZEzJ.js +1 -0
- package/public/dist/assets/ChannelsDiscord-B-G8vsYy.js +1 -0
- package/public/dist/assets/ChannelsSlack-oPuh922z.js +1 -0
- package/public/dist/assets/ChannelsTelegram-PmTv43KQ.js +1 -0
- package/public/dist/assets/CodeCanvas-CVbdp0S-.js +3 -0
- package/public/dist/assets/DashboardMeta-BqEiJrvr.js +1 -0
- package/public/dist/assets/DesignPanel-BOb-HMbl.js +2 -0
- package/public/dist/assets/{Developer-BdKPcw8Z.js → Developer-CbySB7_Z.js} +1 -1
- package/public/dist/assets/{DiffPanel-DtJuvU5y.js → DiffPanel-D9Cch5FG.js} +1 -1
- package/public/dist/assets/Display-C0Zdamcb.js +1 -0
- package/public/dist/assets/Display-DU4_76cS.js +1 -0
- package/public/dist/assets/DocPanel-DvtFw8AP.js +1 -0
- package/public/dist/assets/{Embedding-DvdTj1BF.js → Embedding-CCFMOB_2.js} +1 -1
- package/public/dist/assets/Employees-BanvF58d.js +1 -0
- package/public/dist/assets/FolderPanel-CJvwRwIV.js +3 -0
- package/public/dist/assets/Heartbeat-uyi_MpUd.js +1 -0
- package/public/dist/assets/InlineWarn-Cq4z28F3.js +1 -0
- package/public/dist/assets/MarkdownRenderer-Cc3DeHvm.js +1 -0
- package/public/dist/assets/{MarkdownRenderer-DhonsAPC.js → MarkdownRenderer-DzN66XVb.js} +1 -1
- package/public/dist/assets/Mcp-rjPoL_Zo.js +4 -0
- package/public/dist/assets/Memory-C9I33pIi.js +1 -0
- package/public/dist/assets/{MilkdownWysiwygEditor-D6JaLDE4.js → MilkdownWysiwygEditor-xObhviw7.js} +1 -1
- package/public/dist/assets/ModelProvider-fiUktMaO.js +1 -0
- package/public/dist/assets/Network-CuqFrOvR.js +1 -0
- package/public/dist/assets/NotesGraphWorkspace-DO9LtVGF.js +1 -0
- package/public/dist/assets/PanelLayoutProvider-DRZ4QkBC.js +1 -0
- package/public/dist/assets/Permissions-BltXiZnz.js +1 -0
- package/public/dist/assets/{Permissions-BwiMEoTV.js → Permissions-DcCbFMIq.js} +1 -1
- package/public/dist/assets/Profile-DUL7-RE_.js +1 -0
- package/public/dist/assets/Prompts-C9vY8ivQ.js +1 -0
- package/public/dist/assets/SpeechKeys-BJ8V7U5E.js +1 -0
- package/public/dist/assets/TelegramHub-DtyjLGFR.js +1 -0
- package/public/dist/assets/{TerminalPanel-Bu9i-P2f.js → TerminalPanel-c1xhiy53.js} +1 -1
- package/public/dist/assets/app-BjKzqXCv.css +1 -0
- package/public/dist/assets/app-CZwx0V6K.js +59 -0
- package/public/dist/assets/bgtask-badge-CnVkcp3c.js +1 -0
- package/public/dist/assets/{bgtask-badge-DfiHuzxT.js → bgtask-badge-Cp26S8Uq.js} +1 -1
- package/public/dist/assets/client-platform-WO8m6kPQ.js +1 -0
- package/public/dist/assets/{employees-BQaJNp-u.js → employees-CsvI0_5V.js} +1 -1
- package/public/dist/assets/error-normalize-clOi-AAA.js +1 -0
- package/public/dist/assets/fields-CicOWY-X.js +1 -0
- package/public/dist/assets/iframe-renderer-DWx9v2Iz.js +1 -0
- package/public/dist/assets/iframe-renderer-DmHYOI1A.js +142 -0
- package/public/dist/assets/{react-C_pPTFsM.js → jsx-runtime-CkEUZM6i.js} +1 -1
- package/public/dist/assets/manager-CCXm5Yfe.js +5 -0
- package/public/dist/assets/manager-D9rhKFKc.css +1 -0
- package/public/dist/assets/manager-shortcuts-Cqmr0mEq.js +1 -0
- package/public/dist/assets/{memory-EG1B51up.js → memory-C6qtAMdJ.js} +1 -1
- package/public/dist/assets/memory-PPofQPeB.js +1 -0
- package/public/dist/assets/message-history-DcjBuubA.js +4 -0
- package/public/dist/assets/message-history-bw4qF01Z.js +1 -0
- package/public/dist/assets/page-shell-DfinU3mb.js +1 -0
- package/public/dist/assets/react-dom-URBLzV3w.js +1 -0
- package/public/dist/assets/{render-Dp07lZAJ.js → render-DfYro-fG.js} +1 -1
- package/public/dist/assets/{settings-jlI4X-zt.js → settings-CvsLWlJn.js} +38 -30
- package/public/dist/assets/settings-DMiQe469.js +1 -0
- package/public/dist/assets/settings-DgAlohx9.js +1 -0
- package/public/dist/assets/settings-core-BH7J_Rbm.js +1 -0
- package/public/dist/assets/{settings-core-B5Uf_lWY.js → settings-core-pnpw-eZv.js} +1 -1
- package/public/dist/assets/{settings-embedding-BfWzWKMM.js → settings-embedding-BRW0WZvh.js} +3 -3
- package/public/dist/assets/{settings-embedding-DhEdT86W.css → settings-embedding-CUQ8Is3y.css} +1 -1
- package/public/dist/assets/settings-types-CYKy0xz4.js +1 -0
- package/public/dist/assets/shared-D1begqvi.js +1 -0
- package/public/dist/assets/{sidebar-BUemG2ZN.js → sidebar-C_80w4iY.js} +3 -3
- package/public/dist/assets/{skills-CKUcEN9m.js → skills-D_2adqge.js} +1 -1
- package/public/dist/assets/skills-DeNVAVgt.js +1 -0
- package/public/dist/assets/{slash-commands-D34GgHFX.js → slash-commands-B_Hq5RkC.js} +2 -2
- package/public/dist/assets/slash-commands-Cj5qoRWc.js +1 -0
- package/public/dist/assets/tool-input-DI7uu8Ah.js +2 -0
- package/public/dist/assets/{trace-drawer-DBmK-5F_.js → trace-drawer-B6XuPodh.js} +1 -1
- package/public/dist/assets/ui-BbR_fFiK.js +1 -0
- package/public/dist/assets/{ui-vm2iuLcS.js → ui-D8xzm7DN.js} +1 -1
- package/public/dist/index.html +11 -3
- package/public/dist/manager/index.html +3 -3
- package/public/dist/settings/index.html +2 -2
- package/public/index.html +9 -1
- package/public/js/features/activity-history.ts +50 -21
- package/public/js/features/activity-rows.ts +158 -10
- package/public/js/features/activity-view.ts +5 -5
- package/public/js/features/chat.ts +2 -0
- package/public/js/features/employees.ts +1 -0
- package/public/js/features/resize-guard.ts +39 -0
- package/public/js/features/settings-cli-status.ts +49 -17
- package/public/js/features/settings-types.ts +39 -1
- package/public/js/features/skill-mentions.ts +143 -0
- package/public/js/main.ts +15 -0
- package/public/js/virtual-scroll.ts +67 -1
- package/public/locales/en.json +2 -0
- package/public/locales/ja.json +2 -0
- package/public/locales/ko.json +2 -0
- package/public/locales/zh.json +2 -0
- package/public/manager/src/AppChrome.tsx +2 -0
- package/public/manager/src/InstancePreview.tsx +1 -1
- package/public/manager/src/SidebarRailRouter.tsx +3 -1
- package/public/manager/src/browser-panel/BrowserPanel.tsx +47 -12
- package/public/manager/src/browser-panel/browser-address-state.ts +11 -0
- package/public/manager/src/client-platform.ts +18 -0
- package/public/manager/src/code/CodeCanvas.tsx +4 -2
- package/public/manager/src/code/CodeComposer.tsx +22 -10
- package/public/manager/src/code/CodeDraftEmptyState.tsx +64 -0
- package/public/manager/src/code/CodeSessionList.tsx +154 -40
- package/public/manager/src/code/CodeTranscript.tsx +104 -16
- package/public/manager/src/code/CodeWorkbench.tsx +21 -11
- package/public/manager/src/code/CodeWorkspaceHeader.tsx +5 -10
- package/public/manager/src/code/ComposerFooter.tsx +9 -1
- package/public/manager/src/code/code-composer.css +1 -1
- package/public/manager/src/code/code-controller-draft-storage.ts +16 -8
- package/public/manager/src/code/code-controller-drafts.ts +33 -6
- package/public/manager/src/code/code-controller-runtime.ts +189 -17
- package/public/manager/src/code/code-controller-types.ts +19 -1
- package/public/manager/src/code/code-recent-workspaces.ts +25 -0
- package/public/manager/src/code/code-session-client.ts +19 -1
- package/public/manager/src/code/code-session-sidebar.css +38 -0
- package/public/manager/src/code/code-session-state.ts +2 -0
- package/public/manager/src/code/code-types.ts +47 -0
- package/public/manager/src/code/code-workbench.css +36 -1
- package/public/manager/src/code/code.css +171 -7
- package/public/manager/src/code/session-order.ts +80 -0
- package/public/manager/src/code/tool-summary.ts +45 -11
- package/public/manager/src/folder-panel/folder-shortcuts.ts +5 -9
- package/public/manager/src/hooks/useCommandPalette.ts +3 -7
- package/public/manager/src/main.tsx +1 -0
- package/public/manager/src/manager-components.css +25 -23
- package/public/manager/src/manager-dashboard-reminders.css +2 -2
- package/public/manager/src/manager-layout.css +1 -1
- package/public/manager/src/manager-shortcut-runner.ts +9 -2
- package/public/manager/src/manager-shortcuts.ts +83 -21
- package/public/manager/src/panels/desktop-bridge.ts +4 -1
- package/public/manager/src/panels/panels.css +9 -0
- package/public/manager/src/preview.ts +19 -4
- package/public/manager/src/settings/pages/AdvancedExport.tsx +28 -30
- package/public/manager/src/settings/pages/Browser.tsx +45 -47
- package/public/manager/src/settings/pages/ChannelsDiscord.tsx +51 -26
- package/public/manager/src/settings/pages/ChannelsSlack.tsx +59 -17
- package/public/manager/src/settings/pages/ChannelsTelegram.tsx +51 -26
- package/public/manager/src/settings/pages/Display.tsx +2 -1
- package/public/manager/src/settings/pages/Employees.tsx +3 -3
- package/public/manager/src/settings/pages/Mcp.tsx +220 -200
- package/public/manager/src/settings/pages/Memory.tsx +35 -41
- package/public/manager/src/settings/pages/ModelProvider.tsx +23 -98
- package/public/manager/src/settings/pages/Network.tsx +5 -4
- package/public/manager/src/settings/pages/Permissions.tsx +38 -16
- package/public/manager/src/settings/pages/Prompts.tsx +12 -9
- package/public/manager/src/settings/pages/SpeechKeys.tsx +132 -139
- package/public/manager/src/settings/pages/TelegramHub.tsx +67 -20
- package/public/manager/src/settings/pages/components/AvatarCard.tsx +9 -8
- package/public/manager/src/settings/pages/components/ChannelSetupEntry.tsx +2 -2
- package/public/manager/src/settings/pages/components/EmployeeRow.tsx +6 -12
- package/public/manager/src/settings/pages/components/HealthBadge.tsx +11 -6
- package/public/manager/src/settings/pages/components/HeartbeatJobRow.tsx +35 -16
- package/public/manager/src/settings/pages/components/HeartbeatJobsSection.tsx +11 -11
- package/public/manager/src/settings/pages/components/HeartbeatMarkdownSection.tsx +7 -7
- package/public/manager/src/settings/pages/components/InlineWarn.tsx +4 -9
- package/public/manager/src/settings/pages/components/McpServerCard.tsx +39 -27
- package/public/manager/src/settings/pages/components/MemoryRow.tsx +21 -16
- package/public/manager/src/settings/pages/components/PerCliRow.tsx +122 -121
- package/public/manager/src/settings/pages/components/PiProfileDialog.tsx +9 -6
- package/public/manager/src/settings/pages/components/SlackSetup.tsx +8 -8
- package/public/manager/src/settings/pages/components/TransportStatusChips.tsx +14 -10
- package/public/manager/src/settings/pages/components/agent/AgentEmployeesSection.tsx +26 -26
- package/public/manager/src/settings/pages/components/agent/PermissionQuickSection.tsx +5 -5
- package/public/manager/src/settings/pages/components/agent/RuntimeEmployeeRow.tsx +14 -11
- package/public/manager/src/settings/pages/components/agent/RuntimeHeader.tsx +1 -3
- package/public/manager/src/settings/pages/components/agent/agent-meta.ts +0 -2
- package/public/manager/src/settings/pages/components/runtime-transport-field.tsx +2 -2
- package/public/manager/src/settings/pages/manager/Activity.tsx +6 -2
- package/public/manager/src/settings/pages/manager/Display.tsx +3 -8
- package/public/manager/src/settings/pages/manager/shared.tsx +44 -33
- package/public/manager/src/settings/pages/page-shell.tsx +66 -0
- package/public/manager/src/settings-agent.css +185 -36
- package/public/manager/src/settings-standalone.tsx +1 -0
- package/public/manager/src/settings-surface.css +96 -0
- package/public/manager/src/types.ts +1 -0
- package/scripts/ci/install-ripgrep.sh +35 -0
- package/scripts/collect-fresh-install-evidence.sh +2 -2
- package/scripts/install-risk-gate.mjs +2 -3
- package/scripts/install-wsl.sh +1 -1
- package/scripts/install.ps1 +1 -1
- package/scripts/install.sh +1 -1
- package/scripts/release-1.6.0.sh +1 -1
- package/scripts/release-gates.mjs +48 -13
- package/scripts/release-preview.sh +2 -2
- package/scripts/restack-pr.sh +88 -0
- package/scripts/verify-electron-update-metadata.mjs +1 -1
- package/scripts/windows-support-contract.json +1 -1
- package/public/dist/assets/Activity-BUrp73Re.js +0 -1
- package/public/dist/assets/AdvancedExport-B7h_ZvBu.js +0 -1
- package/public/dist/assets/Agent-DnbZJP7b.js +0 -1
- package/public/dist/assets/Browser-CiBoK5Qx.js +0 -1
- package/public/dist/assets/BrowserPanel-SZAUc9T2.js +0 -3
- package/public/dist/assets/ChannelEnablementControl-Dl0uYx38.js +0 -85
- package/public/dist/assets/ChannelSetupEntry-DxtOrN01.js +0 -1
- package/public/dist/assets/ChannelsDiscord-BEGGwd_3.js +0 -1
- package/public/dist/assets/ChannelsSlack-BryC2Ahr.js +0 -1
- package/public/dist/assets/ChannelsTelegram-CGSpaImJ.js +0 -1
- package/public/dist/assets/CodeCanvas-DpkFi5Au.js +0 -2
- package/public/dist/assets/DashboardMeta-Dh-tasbY.js +0 -1
- package/public/dist/assets/DesignPanel-NLNK9wCo.js +0 -2
- package/public/dist/assets/Display-BHGFX3O0.js +0 -1
- package/public/dist/assets/Display-BW-_pKRf.js +0 -1
- package/public/dist/assets/DocPanel-BM41cYpS.js +0 -1
- package/public/dist/assets/Employees-BuFw6-fT.js +0 -1
- package/public/dist/assets/FolderPanel-C-eQT3Yq.js +0 -3
- package/public/dist/assets/Heartbeat-CIVtKWNc.js +0 -1
- package/public/dist/assets/InlineWarn-DIMbcbzk.js +0 -1
- package/public/dist/assets/MarkdownRenderer-DyVx6DxM.js +0 -1
- package/public/dist/assets/Mcp-uKjor7vh.js +0 -4
- package/public/dist/assets/Memory-BSDIXT0B.js +0 -1
- package/public/dist/assets/ModelProvider-DMh2tXUx.js +0 -1
- package/public/dist/assets/Network-4Pa6JkhK.js +0 -1
- package/public/dist/assets/NotesGraphWorkspace-CgdC-fM6.js +0 -1
- package/public/dist/assets/PanelLayoutProvider-mn8sI0h-.js +0 -1
- package/public/dist/assets/Permissions-CodIW-Yd.js +0 -1
- package/public/dist/assets/Profile-DPqrYA44.js +0 -1
- package/public/dist/assets/Prompts-CvAx7QqR.js +0 -1
- package/public/dist/assets/SpeechKeys-CVBCqoBn.js +0 -1
- package/public/dist/assets/TelegramHub-4zKwpk0P.js +0 -1
- package/public/dist/assets/app-ByMfeXp-.js +0 -55
- package/public/dist/assets/app-DAJWqs33.css +0 -1
- package/public/dist/assets/bgtask-badge-Ch88fnhf.js +0 -1
- package/public/dist/assets/error-normalize-CL69Bl7z.js +0 -1
- package/public/dist/assets/fields-mlGpofqQ.js +0 -1
- package/public/dist/assets/iframe-renderer-Bj1JolO8.js +0 -142
- package/public/dist/assets/iframe-renderer-DWnvUSrx.js +0 -1
- package/public/dist/assets/jsx-runtime-NZYk81nU.js +0 -1
- package/public/dist/assets/manager-Bi_xw7TW.js +0 -5
- package/public/dist/assets/manager-BnQHAKk6.css +0 -1
- package/public/dist/assets/manager-shortcuts-BDOzd8zm.js +0 -1
- package/public/dist/assets/memory-Bk_cb3sw.js +0 -1
- package/public/dist/assets/message-history-D2vniu04.js +0 -4
- package/public/dist/assets/message-history-GAtF_wbZ.js +0 -1
- package/public/dist/assets/page-shell-BeGD0rRQ.js +0 -1
- package/public/dist/assets/react-dom-DyUOYpVL.js +0 -1
- package/public/dist/assets/settings-W4KG9ivu.js +0 -1
- package/public/dist/assets/settings-WVGhtneN.js +0 -1
- package/public/dist/assets/settings-client-CmwRsVd1.js +0 -1
- package/public/dist/assets/settings-core-CgKGnMA5.js +0 -1
- package/public/dist/assets/settings-types-D3cd6SWy.js +0 -1
- package/public/dist/assets/shared-CiNP20HB.js +0 -1
- package/public/dist/assets/skills-Co7Mr-qP.js +0 -1
- package/public/dist/assets/slash-commands-BEr-vmIr.js +0 -1
- package/public/dist/assets/ui-TUyJsMUf.js +0 -1
- package/public/manager/src/settings/pages/components/EngineSubsection.tsx +0 -25
package/public/dist/assets/{settings-embedding-DhEdT86W.css → settings-embedding-CUQ8Is3y.css}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--jp-gray-50:oklch(98.5% 0 0);--jp-gray-100:oklch(96.7% .001 286.375);--jp-gray-200:oklch(92% .004 286.32);--jp-gray-300:oklch(87.1% .006 286.286);--jp-gray-400:oklch(70.5% .015 286.067);--jp-gray-500:oklch(55.2% .016 285.938);--jp-gray-600:oklch(44.2% .017 285.786);--jp-gray-700:oklch(37% .013 285.805);--jp-gray-800:oklch(27.4% .006 286.033);--jp-gray-900:oklch(21% .006 285.885);--jp-blue-100:#dbe7ff;--jp-blue-300:#8fb8f7;--jp-blue-400:#62a8f5;--jp-blue-500:#3884ff;--jp-blue-600:#1f6feb;--jp-blue-700:#155bbb;--jp-green-400:oklch(76.5% .177 163.223);--jp-green-600:oklch(59.6% .145 163.225);--jp-amber-400:oklch(82.8% .189 84.429);--jp-amber-600:oklch(66.6% .179 58.318);--jp-red-400:oklch(70.4% .191 22.216);--jp-red-600:oklch(57.7% .245 27.325);--jp-slate-400:oklch(70.5% .015 286.067);--jp-slate-500:oklch(55.2% .016 285.938);--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.625rem;--radius-xl:.875rem;--control-radius:.5rem;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "Pretendard", "Noto Sans CJK SC", "Noto Sans CJK JP", "Noto Sans KR", sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--motion-fast:.12s;--motion-base:.18s;--workspace-topbar-height:44px;--scrollbar-size:6px;--scrollbar-radius:3px}:root,:root[data-theme=dark]{color-scheme:dark;--bg-base:#0a0a0a;--bg-panel:#111;--bg-raised:#ffffff0a;--bg-elevated:#111;--border-subtle:#ffffff14;--border-strong:#ffffff1a;--text-primary:#f1f3f7;--text-secondary:#a3a3a3;--text-dim:#818181;--accent:oklch(57.1% .21 264);--accent-soft:color-mix(in srgb, var(--accent) 12%, transparent);--selection-bg:color-mix(in srgb, var(--accent) 40%, transparent);--status-running:oklch(69.6% .17 162.48);--status-success:oklch(69.6% .17 162.48);--status-warn:oklch(76.9% .188 70.08);--status-error:#fb414a;--status-idle:#7f7f89;--shadow-panel:inset 0 1px #ffffff0a, 0 24px 72px -20px #000000e6;--shadow-elevated:0 1px 2px color-mix(in srgb, var(--text-primary) 12%, transparent);--scrim-overlay:color-mix(in srgb, var(--bg-base) 64%, transparent);--surface-base:var(--bg-base);--surface-panel:var(--bg-panel);--surface-raised:var(--bg-raised);--surface-overlay:var(--bg-elevated);--surface-canvas:var(--bg-base);--ink-primary:var(--text-primary);--ink-secondary:var(--text-secondary);--ink-muted:var(--text-dim);--ink-on-accent:#fff;--ring:var(--accent);--button-bg:#111;--button-bg-hover:#ffffff0a;--button-border-hover:#ffffff1a;--row-bg:#000;--row-bg-hover:#ffffff0a;--canvas-deep:#000;--canvas-mid:#111;--canvas-soft:#ffffff0a;--shell-tint:color-mix(in srgb, var(--accent) 6%, transparent);--error-border:color-mix(in srgb, var(--status-error) 16%, transparent);--error-text:var(--jp-red-400);--lifecycle-border:color-mix(in srgb, var(--accent) 30%, transparent);--lifecycle-text:color-mix(in srgb, var(--accent) 60%, white);--highlight-bg:color-mix(in srgb, var(--accent) 12%, transparent);--highlight-border:#ffffff1a;--placeholder-ink:var(--text-dim);--segment-track:#ffffff08;--segment-border:#ffffff14;--segment-hover:#ffffff0a;--segment-active:#000;--segment-active-ink:#f1f3f7;--link-border:#ffffff14;--link-bg-hover:#ffffff0a;--link-border-hover:#ffffff1a;--link-ink:#a3a3a3;--inset-glow:#ffffff08;--rail-top:#000;--rail-bottom:#000;--canvas-panel:#111;--canvas-base:#000;--danger-soft:color-mix(in srgb, var(--status-error) 16%, transparent);--accent-primary:var(--accent);--surface-secondary:var(--surface-raised);--text-tertiary:var(--text-dim);--text-danger:var(--error-text);--sidebar-row-hover:#f1f3f714;--sidebar-row-active:#f1f3f71c;--sidebar-row-selected:#f1f3f712;--sidebar-row-working:#38bdf8;--sidebar-row-attention:var(--jp-amber-400);--sidebar-row-error:var(--jp-red-400);--sidebar-row-ready:var(--text-dim);--sidebar-border:#ffffff14;--sidebar-control-surface:#0a0a0a;--focus-ring:2px solid color-mix(in srgb, var(--ring) 50%, transparent);--scrollbar-thumb:#ffffff14;--scrollbar-thumb-hover:#ffffff1f}:root[data-theme=light]{color-scheme:light;--bg-base:oklch(99.2% 0 0);--bg-panel:#fff;--bg-raised:var(--jp-gray-50);--bg-elevated:#fff;--border-subtle:var(--jp-gray-200);--border-strong:var(--jp-gray-300);--text-primary:var(--jp-gray-800);--text-secondary:var(--jp-gray-600);--text-dim:var(--jp-gray-500);--accent:oklch(48.8% .217 264);--accent-soft:color-mix(in srgb, var(--accent) 8%, transparent);--selection-bg:color-mix(in srgb, var(--accent) 30%, transparent);--status-running:var(--jp-green-600);--status-success:var(--jp-green-600);--status-warn:var(--jp-amber-600);--status-error:var(--jp-red-600);--status-idle:var(--jp-slate-500);--shadow-panel:0 24px 64px -24px #0000002e;--shadow-elevated:0 1px 2px color-mix(in srgb, var(--text-primary) 12%, transparent);--scrim-overlay:color-mix(in srgb, var(--bg-base) 60%, transparent);--surface-base:var(--bg-base);--surface-panel:var(--bg-panel);--surface-raised:var(--bg-raised);--surface-overlay:var(--bg-elevated);--surface-canvas:var(--bg-base);--ink-primary:var(--text-primary);--ink-secondary:var(--text-secondary);--ink-muted:var(--text-dim);--ink-on-accent:#fff;--ring:var(--accent);--button-bg:#fff;--button-bg-hover:var(--jp-gray-100);--button-border-hover:var(--jp-gray-400);--row-bg:#fff;--row-bg-hover:oklch(99.2% 0 0);--canvas-deep:var(--jp-gray-50);--canvas-mid:#fff;--canvas-soft:var(--jp-gray-100);--shell-tint:color-mix(in srgb, var(--accent) 6%, transparent);--error-border:color-mix(in srgb, var(--status-error) 8%, transparent);--error-text:oklch(50.5% .213 27.518);--lifecycle-border:color-mix(in srgb, var(--accent) 25%, transparent);--lifecycle-text:var(--accent);--highlight-bg:var(--jp-gray-100);--highlight-border:var(--jp-gray-300);--placeholder-ink:var(--jp-gray-500);--segment-track:var(--jp-gray-50);--segment-border:var(--jp-gray-200);--segment-hover:oklch(99.2% 0 0);--segment-active:#fff;--segment-active-ink:var(--jp-gray-800);--link-border:var(--jp-gray-200);--link-bg-hover:oklch(99.2% 0 0);--link-border-hover:var(--jp-gray-300);--link-ink:var(--jp-gray-600);--inset-glow:#00000005;--rail-top:#fff;--rail-bottom:oklch(99.2% 0 0);--canvas-panel:#fff;--canvas-base:oklch(99.2% 0 0);--danger-soft:color-mix(in srgb, var(--status-error) 8%, transparent);--accent-primary:var(--accent);--surface-secondary:var(--surface-raised);--text-tertiary:var(--text-dim);--text-danger:var(--error-text);--sidebar-row-hover:oklch(99.2% 0 0);--sidebar-row-active:#fff;--sidebar-row-selected:#fff;--sidebar-row-working:#0284c7;--sidebar-row-attention:var(--jp-amber-600);--sidebar-row-error:var(--jp-red-600);--sidebar-row-ready:var(--text-dim);--sidebar-border:var(--border-subtle);--sidebar-control-surface:var(--jp-gray-100);--focus-ring:2px solid color-mix(in srgb, var(--ring) 50%, transparent);--scrollbar-thumb:#d9d9d9;--scrollbar-thumb-hover:#bfbfbf}@media (prefers-color-scheme:light){:root[data-theme=auto]{color-scheme:light;--bg-base:oklch(99.2% 0 0);--bg-panel:#fff;--bg-raised:var(--jp-gray-50);--bg-elevated:#fff;--border-subtle:var(--jp-gray-200);--border-strong:var(--jp-gray-300);--text-primary:var(--jp-gray-800);--text-secondary:var(--jp-gray-600);--text-dim:var(--jp-gray-500);--accent:oklch(48.8% .217 264);--accent-soft:color-mix(in srgb, var(--accent) 8%, transparent);--selection-bg:color-mix(in srgb, var(--accent) 30%, transparent);--status-running:var(--jp-green-600);--status-success:var(--jp-green-600);--status-warn:var(--jp-amber-600);--status-error:var(--jp-red-600);--status-idle:var(--jp-slate-500);--shadow-panel:0 24px 64px -24px #0000002e;--shadow-elevated:0 1px 2px color-mix(in srgb, var(--text-primary) 12%, transparent);--scrim-overlay:color-mix(in srgb, var(--bg-base) 60%, transparent);--surface-base:var(--bg-base);--surface-panel:var(--bg-panel);--surface-raised:var(--bg-raised);--surface-overlay:var(--bg-elevated);--surface-canvas:var(--bg-base);--ink-primary:var(--text-primary);--ink-secondary:var(--text-secondary);--ink-muted:var(--text-dim);--ink-on-accent:#fff;--ring:var(--accent);--button-bg:#fff;--button-bg-hover:var(--jp-gray-100);--button-border-hover:var(--jp-gray-400);--row-bg:#fff;--row-bg-hover:oklch(99.2% 0 0);--canvas-deep:var(--jp-gray-50);--canvas-mid:#fff;--canvas-soft:var(--jp-gray-100);--shell-tint:color-mix(in srgb, var(--accent) 6%, transparent);--error-border:color-mix(in srgb, var(--status-error) 8%, transparent);--error-text:oklch(50.5% .213 27.518);--lifecycle-border:color-mix(in srgb, var(--accent) 25%, transparent);--lifecycle-text:var(--accent);--highlight-bg:var(--jp-gray-100);--highlight-border:var(--jp-gray-300);--placeholder-ink:var(--jp-gray-500);--segment-track:var(--jp-gray-50);--segment-border:var(--jp-gray-200);--segment-hover:oklch(99.2% 0 0);--segment-active:#fff;--segment-active-ink:var(--jp-gray-800);--link-border:var(--jp-gray-200);--link-bg-hover:oklch(99.2% 0 0);--link-border-hover:var(--jp-gray-300);--link-ink:var(--jp-gray-600);--inset-glow:#00000005;--rail-top:#fff;--rail-bottom:oklch(99.2% 0 0);--canvas-panel:#fff;--canvas-base:oklch(99.2% 0 0);--danger-soft:color-mix(in srgb, var(--status-error) 8%, transparent);--accent-primary:var(--accent);--surface-secondary:var(--surface-raised);--text-tertiary:var(--text-dim);--text-danger:var(--error-text);--sidebar-row-hover:oklch(99.2% 0 0);--sidebar-row-active:#fff;--sidebar-row-selected:#fff;--sidebar-row-working:#0284c7;--sidebar-row-attention:var(--jp-amber-600);--sidebar-row-error:var(--jp-red-600);--sidebar-row-ready:var(--text-dim);--sidebar-border:var(--border-subtle);--sidebar-control-surface:var(--jp-gray-100);--focus-ring:2px solid color-mix(in srgb, var(--ring) 50%, transparent);--scrollbar-thumb:#d9d9d9;--scrollbar-thumb-hover:#bfbfbf}}:root[data-cli-jaw-desktop=true]{--workspace-topbar-height:52px}:root{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary)}html{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}html::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}html::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--scrollbar-radius)}html::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}*{box-sizing:border-box}body{background:radial-gradient(circle at 12% 0%, var(--shell-tint), transparent 32rem), var(--bg-base);min-width:320px;height:100%;color:var(--text-primary);transition:background-color var(--motion-base) ease, color var(--motion-base) ease;margin:0;overflow:hidden}#manager-root{height:100dvh;overflow:hidden}button,input,select{font:inherit}button,.open-link{border:1px solid var(--border-strong);background:var(--button-bg);min-height:30px;color:var(--text-primary);border-radius:var(--control-radius);transition:background var(--motion-base) ease, border-color var(--motion-base) ease, transform var(--motion-fast) ease;justify-content:center;align-items:center;padding:5px 10px;font-size:12px;text-decoration:none;display:inline-flex}button:hover:not(:disabled),.open-link:hover{background:var(--button-bg-hover);border-color:var(--button-border-hover)}button:active:not(:disabled),.open-link:active{transform:translateY(1px)}button:disabled,.open-link[aria-disabled=true]{cursor:not-allowed;opacity:.5;pointer-events:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:var(--focus-ring);outline-offset:2px}:lang(zh),:lang(ja){letter-spacing:0}:lang(zh) p,:lang(ja) p,:lang(ko) p{line-height:1.55}:lang(zh) :is(h1,h2,h3,h4,h5,h6),:lang(ja) :is(h1,h2,h3,h4,h5,h6),:lang(ko) :is(h1,h2,h3,h4,h5,h6){font-weight:max(500, var(--heading-weight,600))}.dashboard-settings-sidebar{min-height:100%;padding:14px 12px}.dashboard-settings-sidebar-header{gap:2px;margin-bottom:12px;display:grid}.dashboard-settings-sidebar-header strong{font-size:18px}.dashboard-settings-sidebar-list{gap:8px;display:grid}.dashboard-settings-sidebar-button{text-align:left;background:0 0;border-color:#0000;justify-items:start;gap:3px;min-height:54px;display:grid}.dashboard-settings-sidebar-button.is-active{border-color:var(--accent);background:var(--canvas-mid)}.dashboard-settings-sidebar-button small{color:var(--text-dim);font-size:11px}.dashboard-settings-workspace{min-width:0;height:100%;padding:18px;overflow:auto}.dashboard-settings-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.dashboard-settings-header h2,.dashboard-settings-section h3{margin:0}.dashboard-settings-section{gap:14px;max-width:780px;display:grid}.dashboard-settings-section header p{color:var(--text-dim);margin:4px 0 0}.dashboard-settings-field-list{gap:8px;display:grid}.dashboard-settings-row{background:0 0;border:0;border-radius:0;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:14px;padding:12px 0;display:grid}.dashboard-settings-row-main{min-width:0}.dashboard-settings-row-heading{color:var(--text-strong);flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;font-weight:650;line-height:1.25;display:flex}.dashboard-settings-row-scope{border:1px solid var(--border-subtle);color:var(--text-dim);border-radius:999px;padding:2px 7px;font-size:11px;font-weight:600;line-height:1.2}.dashboard-settings-row-description{color:var(--text-dim);margin:5px 0 0;font-size:13px;line-height:1.35}.dashboard-settings-row-control{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.dashboard-settings-toggle{width:20px;height:20px;margin:0}.dashboard-settings-select,.dashboard-settings-shortcut-input{border:1px solid var(--border-subtle);background:var(--canvas);min-width:150px;max-width:100%;color:var(--text-strong);font:inherit;border-radius:8px;padding:7px 30px 7px 10px}.dashboard-settings-shortcut-input{text-align:center;width:120px;min-width:120px;padding-right:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.dashboard-settings-save-state{min-width:52px;color:var(--text-dim);font-size:12px;line-height:1.2}.dashboard-settings-save-state.is-error{color:var(--text-danger,#c83232)}.dashboard-settings-status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.dashboard-settings-status-grid>div{border:1px solid var(--border-subtle);background:var(--canvas-mid);border-radius:8px;align-content:center;gap:6px;min-height:72px;padding:10px;display:grid}.dashboard-settings-status-grid span{color:var(--text-dim);font-size:11px}.dashboard-settings-status-grid strong{font-size:24px}.dashboard-settings-status-grid p{color:var(--text-dim);grid-column:1/-1;margin:0}@media (width<=767px){.dashboard-settings-workspace{padding:12px}.dashboard-settings-status-grid{grid-template-columns:1fr}.dashboard-settings-row{grid-template-columns:1fr;gap:10px}.dashboard-settings-row-control{justify-content:flex-start}.dashboard-settings-select,.dashboard-settings-shortcut-input{min-width:min(220px,100%)}}.dashboard-settings-workspace:has(.settings-shell-host){flex-direction:column;min-height:0;padding:0;display:flex;overflow:hidden}.dashboard-settings-workspace>.settings-shell-host{flex:1}.settings-full-page{--motion-fast:.12s;min-width:0;height:100%;min-height:0}.settings-shell-host{--settings-bg:var(--bg,var(--surface-base));--settings-card:var(--surface-2,var(--surface-raised));--settings-border:var(--border-alpha,var(--border-subtle));--settings-hover:var(--surface-3,var(--surface-raised));--motion-fast:.12s;min-width:0;height:100%;min-height:0;container:settings/inline-size}.settings-shell{grid-template-columns:264px minmax(0,1fr);gap:0;height:100%;min-height:0;padding:8px 8px 8px 0;display:grid}.settings-page{scrollbar-gutter:stable;border:1px solid var(--settings-border);background:var(--settings-bg);border-radius:12px;min-width:0;min-height:0;scroll-padding-bottom:80px;position:relative;overflow:auto}.settings-page-main{width:100%;max-width:896px;margin-inline:auto;padding:32px 32px 40px}.settings-page-heading{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:32px;display:flex}.settings-page-heading h2{letter-spacing:-.025em;text-wrap:balance;margin:0;font-size:24px;font-weight:600;line-height:1.25}.settings-page-badge{background:var(--settings-card);color:var(--text-secondary);border-radius:6px;padding:4px 10px;font-size:13px;font-weight:500}.settings-page-form{flex-direction:column;gap:32px;width:100%;margin:0;display:flex}.settings-section,.settings-shell .dashboard-settings-section{box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0}.settings-section-header{margin-bottom:12px}.settings-section-header :is(h2,h3),.settings-shell .dashboard-settings-section>header h3{text-wrap:balance;margin:0;font-size:16px;font-weight:600;line-height:1.5}.settings-section-hint,.settings-shell .dashboard-settings-section>header p{color:var(--text-secondary);margin:4px 0 0;font-size:13px;line-height:24px}.settings-sidebar{scrollbar-gutter:stable;flex-direction:column;gap:16px;min-width:0;padding:8px 16px 24px 8px;display:flex;overflow:auto}.settings-back{width:100%;min-height:40px;color:var(--text-secondary);background:0 0;border:0;border-radius:12px;flex-shrink:0;justify-content:flex-start;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.settings-sidebar-search{padding:0 2px}.settings-sidebar-search input{box-sizing:border-box;background:var(--settings-card);width:100%;min-width:0;color:var(--text-primary);border:1px solid var(--settings-border);border-radius:8px;padding:7px 8px;font-size:12px}.settings-sidebar>section{flex-direction:column;gap:16px;display:flex}.settings-scope-label{clip-path:inset(50%);width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.settings-sidebar-group-header{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin:0;padding:0 10px 4px;font-size:11px;font-weight:500;line-height:16px}.settings-sidebar-group-items{flex-direction:column;gap:2px;display:flex}.settings-sidebar-item{width:100%;height:32px;min-height:32px;color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;justify-content:flex-start;align-items:center;gap:8px;padding:0 10px;font-size:13px;display:flex}.settings-nav-icon,.settings-back>span:first-child{flex:0 0 16px;width:16px;height:16px;display:inline-flex}.settings-nav-icon svg,.settings-back svg{stroke-width:1.8px;width:16px;height:16px}.settings-nav-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.settings-sidebar-item:hover,.settings-sidebar-item.is-active,.settings-back:hover{background:var(--settings-hover);color:var(--text-primary)}.settings-sidebar-item.is-active{font-weight:500}.settings-standalone,.settings-standalone body,#settings-root{min-width:0;height:100%;margin:0}.settings-standalone body{background:var(--surface-panel);color:var(--text-primary);font-family:var(--font-sans);display:block;overflow:hidden}@container settings (width>=1024px){.settings-page-heading h2{font-size:30px}}@container settings (width<=719px){.settings-page-main{padding:24px 16px 40px}}@media (width<=1023px){.settings-shell{grid-template-columns:40px minmax(0,1fr);padding-left:4px}.settings-sidebar{scrollbar-gutter:auto;gap:16px;padding:4px 4px 16px 0}.settings-sidebar :is(.settings-nav-label,.settings-sidebar-group-header){clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.settings-sidebar-search{display:none}.settings-sidebar-item,.settings-back{justify-content:center;padding:0}}@media (prefers-reduced-motion:no-preference){.settings-full-page{animation:settingsEnter var(--motion-fast,.12s) ease}}@keyframes settingsEnter{0%{opacity:0}to{opacity:1}}.settings-loading,.settings-placeholder{color:var(--text-secondary);padding:8px 0;font-size:12px}.settings-error{color:#ff8a8a;background:#ff50500f;border:1px solid #ff505040;border-radius:6px;padding:10px 12px;font-size:12px}.settings-readonly-grid{grid-template-columns:96px 1fr;gap:6px 12px;margin:0;font-size:12px;display:grid}.settings-readonly-grid dt{color:var(--text-secondary)}.settings-readonly-grid dd{color:var(--text-primary);margin:0}.settings-action-row,.settings-save-bar{background:var(--surface-base);border-top:1px solid var(--border-subtle);z-index:2;border-radius:6px 6px 0 0;justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;padding:10px 12px;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 12px #00000014}.settings-save-bar-status{color:var(--text-secondary);margin-right:auto;font-size:11px}.settings-save-bar-error{color:var(--text-danger,#c83232);margin-right:auto;font-size:11px}.settings-toast{background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-subtle);z-index:3;border-radius:6px;align-self:flex-end;align-items:center;gap:8px;max-width:360px;margin-top:8px;margin-left:auto;padding:8px 12px;font-size:12px;display:inline-flex;position:sticky;bottom:70px;box-shadow:0 4px 12px #00000029}.settings-toast-ok{border-color:#32c86e80}.settings-toast-err{color:var(--text-danger,#c83232);border-color:#ff505080}.settings-toast-dismiss{color:inherit;cursor:pointer;background:0 0;border:0;font-size:16px;line-height:1}.settings-action{border:1px solid var(--border-subtle);background:var(--surface-raised);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:12px}.settings-action-save{border-color:var(--border-strong);background:var(--text-primary);color:var(--surface-base)}.settings-field{flex-direction:column;gap:4px;margin-bottom:12px;font-size:12px;display:flex}.settings-field-label{color:var(--text-secondary)}.settings-field-error{color:var(--error-text)}.settings-field-row{gap:6px;display:flex}.settings-chiplist-row{border:1px solid var(--border-subtle);border-radius:6px;flex-wrap:wrap;gap:4px;padding:4px;display:flex}.settings-chiplist-row input{min-width:80px;color:var(--text-primary);font:inherit;background:0 0;border:0;flex:1}.settings-chip{background:var(--surface-raised);color:var(--text-primary);border-radius:12px;align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.settings-chip-remove{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;font-size:14px;line-height:1}.settings-section-body{flex-direction:column;gap:0;display:flex}.settings-action-error,.settings-savebar-error{color:var(--text-danger,#c83232);margin-right:8px;font-size:11px}.settings-action-secondary{background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-subtle);cursor:pointer;border-radius:6px;padding:5px 10px}.settings-avatar-card{border:1px dashed var(--border-subtle);border-radius:8px;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:12px;padding:8px;display:grid}.settings-avatar-preview{background:var(--surface-raised);border-radius:50%;place-items:center;width:64px;height:64px;display:grid;overflow:hidden}.settings-avatar-preview img{object-fit:cover;width:100%;height:100%}.settings-avatar-preview img.settings-avatar-mascot{object-fit:contain;width:80%;height:80%}.settings-avatar-placeholder{font-size:28px}.settings-avatar-controls{flex-direction:column;gap:6px;display:flex}.settings-avatar-buttons{gap:6px;display:flex}.settings-percli-row{border-bottom:1px solid var(--border-subtle);padding-bottom:10px}.settings-percli-row:last-child{border-bottom:0;padding-bottom:0}.settings-percli-title{margin:0 0 6px;font-size:12px;font-weight:600}.settings-percli-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.settings-percli-grid--pi{grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);align-items:start}.settings-percli-grid--pi>*{min-width:0}.settings-percli-grid--pi .settings-percli-note{overflow-wrap:anywhere}.settings-percli-grid--pi>.settings-action{justify-self:start;max-width:100%}.settings-percli-note{color:var(--text-secondary);margin:4px 0 0;font-size:11px;line-height:1.35}.settings-percli-note--effort{margin-bottom:2px}.settings-overrides-table{border-collapse:collapse;width:100%;font-size:12px}.settings-overrides-table th,.settings-overrides-table td{text-align:left;border-bottom:1px solid var(--border-subtle);padding:4px 6px}.settings-overrides-actions{align-items:center;gap:8px;margin-top:8px;display:flex}.settings-empty{color:var(--text-secondary);margin:0;font-size:11px}.settings-shell .dashboard-settings-section{width:100%;max-width:896px;margin-inline:auto}.settings-sidebar-group,.settings-page :is(.settings-section,.settings-section-body,.settings-field-row){min-width:0}.settings-page .settings-percli-grid{grid-template-columns:minmax(0,1fr)}.settings-page .settings-overrides-table{display:block;overflow:auto}.settings-save-bar{flex-wrap:wrap}:root[data-theme=light] .settings-shell-host{--settings-card:var(--surface-panel)}@media (prefers-color-scheme:light){:root[data-theme=auto] .settings-shell-host{--settings-card:var(--surface-panel)}}.settings-field{position:relative}.settings-field-label{color:var(--text-secondary);font-size:12px;font-weight:600}.settings-field input:not([type=checkbox]):not([type=radio]):not([type=file]),.settings-field textarea,.settings-field-select>select,.settings-select-trigger{border:1px solid var(--border-subtle);background:var(--surface-raised);width:100%;min-height:38px;color:var(--text-primary);box-shadow:none;border-radius:7px;transition:border-color .15s,box-shadow .15s,background .15s}.settings-field input:not([type=checkbox]):not([type=radio]):not([type=file]),.settings-field textarea,.settings-field-select>select{padding:8px 10px}.settings-field input:not([type=checkbox]):not([type=radio]):not([type=file]):hover:not(:disabled),.settings-field textarea:hover:not(:disabled),.settings-field-select>select:hover:not(:disabled),.settings-select-trigger:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-base)}.settings-field input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,.settings-field textarea:focus,.settings-field-select>select:focus,.settings-select-trigger:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--ring) 18%, transparent), inset 0 1px 0 #ffffff8c}.settings-field input:disabled,.settings-field textarea:disabled,.settings-select-trigger:disabled{cursor:not-allowed;opacity:.56}.settings-field-select{max-width:100%}.settings-select-trigger{text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px 8px 12px;display:flex}.settings-select-trigger.is-open{border-color:var(--ring);border-bottom-right-radius:5px;border-bottom-left-radius:5px}.settings-select-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-select-caret{opacity:.7;border-bottom:1.8px solid;border-right:1.8px solid;flex:none;width:8px;height:8px;transition:transform .15s,opacity .15s;transform:translateY(-2px)rotate(45deg)}.settings-select-trigger.is-open .settings-select-caret{opacity:1;transform:translateY(2px)rotate(225deg)}.settings-select-menu{z-index:12;border:1px solid var(--border-strong);background:var(--surface-base);border-radius:8px;width:min(100%,560px);max-height:240px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;overflow:auto;box-shadow:0 18px 40px #0f172a24,0 2px 8px #0f172a14}.settings-select-option{width:100%;min-height:32px;color:var(--text-primary);background:0 0;border:0;border-radius:5px;justify-content:space-between;padding:7px 9px}.settings-select-option.is-active,.settings-select-option:hover{background:var(--surface-raised)}.settings-select-option.is-selected{color:var(--accent-strong,var(--text-primary));font-weight:600}.settings-select-divider{border:0;border-top:1px solid var(--border-subtle,var(--border-strong));margin:4px 8px}.settings-select-more{width:100%;min-height:28px;color:var(--text-secondary,var(--text-primary));cursor:pointer;text-align:left;opacity:.7;background:0 0;border:0;border-radius:5px;padding:5px 9px;font-size:.85em}.settings-select-more:hover{background:var(--surface-raised);opacity:1}.settings-pi-modal{z-index:70;background:var(--scrim-overlay);color:var(--text-primary);flex-direction:column;padding:16px;display:flex;position:fixed;inset:0;overflow:auto}.settings-pi-modal>.settings-memory-modal-card{background:var(--surface-overlay);border:1px solid var(--border-strong);border-radius:var(--radius-lg);flex-shrink:0;width:min(560px,100%);min-width:0;margin:auto;padding:20px}.settings-pi-modal .settings-memory-modal-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.settings-pi-modal h3{overflow-wrap:anywhere;margin:0}.settings-pi-modal .settings-page-form,.settings-pi-modal .settings-field{min-width:0}.settings-pi-modal .settings-field{--border-subtle:var(--text-secondary);--border-strong:var(--text-secondary)}.settings-pi-modal .settings-field-error{color:var(--error-text)}@media (width<=720px){.settings-field-select,.settings-select-menu{width:100%;max-width:none}}.settings-shell .settings-field,.settings-shell .dashboard-settings-row{border:0;border-top:1px solid var(--settings-border);box-shadow:none;background:0 0;border-radius:0;grid-template-columns:minmax(0,1fr) 192px;align-items:center;gap:4px 24px;margin:0;padding:12px 16px;display:grid}.settings-shell .settings-field-label,.settings-shell .dashboard-settings-row-heading{color:var(--text-primary);grid-area:1/1;font-size:14px;font-weight:500}.settings-shell .settings-field-hint,.settings-shell .settings-field-description,.settings-shell .dashboard-settings-row-description{color:var(--text-secondary);grid-area:2/1;font-size:13px;line-height:24px}.settings-shell .settings-field>:is(input,select,textarea,button,.settings-field-row,.settings-chiplist-row,.settings-active-channel-options){grid-area:1/2/span 2;min-width:0}.settings-shell .settings-field-error{grid-column:1/-1}.settings-shell .settings-select-menu{width:min(100%,560px);left:auto;right:0}.settings-shell .settings-field :is(input:not([type=checkbox]),textarea),.settings-shell .settings-select-trigger{background:var(--surface-raised);box-shadow:none}.settings-shell :focus-visible{outline:var(--focus-ring);outline-offset:2px}@container (width<=719px){.settings-shell .settings-field,.settings-shell .dashboard-settings-row{grid-template-columns:minmax(0,1fr);row-gap:12px}.settings-shell .settings-field>:is(input,select,textarea,button,.settings-field-row,.settings-chiplist-row,.settings-active-channel-options){grid-area:auto/1}.settings-shell .settings-field-description{grid-row:auto}}@media (prefers-reduced-motion:reduce){.settings-shell,.settings-shell *,.settings-shell :before,.settings-shell :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.settings-shell .dashboard-settings-row-main{min-width:0}.settings-shell .dashboard-settings-row-control{grid-column:2;min-width:0}.settings-shell .dashboard-settings-row-control>*{max-width:100%}.settings-shell .settings-field-row input{min-width:0}.settings-shell .settings-field :is(input,textarea){box-sizing:border-box}.settings-slack-setup{width:min(560px,92vw);max-height:85dvh;color:var(--text-primary);background:var(--surface-base);border:1px solid var(--border-subtle);padding:24px;overflow:auto}.settings-slack-setup::backdrop{background:#00000080}.settings-slack-setup fieldset{border:0;gap:12px;padding:0;display:grid}.settings-slack-fields{border:0;gap:48px;min-width:0;margin:0;padding:0;display:grid}.settings-slack-setup label{gap:8px;display:grid}.settings-slack-setup input{min-width:0;max-width:100%}@container (width<=719px){.settings-shell .dashboard-settings-row-control{grid-column:1;justify-content:flex-start}}.settings-shell .settings-active-channel-options{flex-wrap:wrap;gap:12px;display:flex}.settings-shell .settings-radio{align-items:center;gap:6px;display:inline-flex}.settings-shell input:is([type=checkbox],[type=radio]){justify-self:start;width:16px;height:16px;min-height:0;margin:0}.settings-shell fieldset.settings-field{min-width:0}.settings-shell fieldset.settings-field>legend{margin-bottom:8px}.settings-shell :is(.settings-section-body,.dashboard-settings-field-list){border:1px solid var(--settings-border);background:var(--settings-card);border-radius:12px;gap:0}.settings-shell :is(.settings-section-body,.dashboard-settings-field-list)>:first-child{border-top:0;border-top-left-radius:12px;border-top-right-radius:12px}.settings-shell :is(.settings-section-body,.dashboard-settings-field-list)>:last-child{border-bottom-right-radius:12px;border-bottom-left-radius:12px}.settings-page-form>.settings-field{border:1px solid var(--settings-border);background:var(--settings-card);border-radius:12px}.settings-shell .dashboard-settings-section{flex-direction:column;gap:12px;display:flex}.settings-shell .dashboard-settings-row-control{justify-content:flex-end}.settings-shell .settings-field>:is(input,select,textarea,button){max-width:100%}.settings-shell .settings-field>select{border:1px solid var(--settings-border);background:var(--settings-card);width:100%;min-height:32px;color:var(--text-primary);border-radius:8px}.settings-shell .settings-field :is(input:not([type=checkbox]):not([type=radio]),textarea),.settings-shell .settings-select-trigger{border-radius:8px;min-height:32px;padding:6px 10px}@container settings (width>=1200px){.settings-shell .settings-field,.settings-shell .dashboard-settings-row{grid-template-columns:minmax(0,1fr) 280px}}.settings-shell .settings-agent-runtime-grid{flex-direction:column;align-items:stretch;gap:0;display:flex}.settings-shell .settings-agent-runtime-grid>.settings-field:first-child{border-top:0}.settings-shell .settings-agent-note{padding:0 16px 12px}.settings-page-heading,.settings-section-header{color:var(--text-primary)}.settings-shell .settings-field>:is(.settings-field-label,.settings-field-hint,.settings-field-description){overflow-wrap:anywhere;min-width:0}.settings-agent-runtime-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px 12px;display:grid}.settings-agent-note{color:var(--text-secondary);margin:0;font-size:12px}.settings-agent-flush summary{cursor:pointer;color:var(--text-primary);justify-content:space-between;align-items:center;gap:12px;font-size:12px;font-weight:600;display:flex}.settings-agent-flush summary code{color:var(--text-secondary);font-size:11px;font-weight:500}.settings-agent-flush[open] summary{margin-bottom:12px}.settings-runtime-employee-summary{color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;display:flex}.settings-runtime-employee-summary span{border:1px solid var(--border-subtle);background:var(--surface-raised);border-radius:999px;padding:2px 6px}.settings-runtime-employee-summary strong{color:var(--text-danger,#c83232);font-size:11px;font-weight:600}.settings-runtime-employee-list{flex-direction:column;gap:10px;display:flex}.settings-runtime-employee-row{border:1px solid var(--border-subtle);border-radius:8px;margin:0;padding:10px}.settings-runtime-employee-row legend{color:var(--text-primary);align-items:center;gap:8px;padding:0 4px;font-size:12px;font-weight:600;display:flex}.settings-runtime-employee-row legend span{color:var(--text-secondary);text-transform:uppercase;font-size:10px;font-weight:500}.settings-runtime-employee-grid{grid-template-columns:minmax(120px,1fr) minmax(100px,.8fr) minmax(160px,1.2fr) minmax(120px,1fr);align-items:end;gap:10px;display:grid}.settings-runtime-employee-footer{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:10px;margin-top:4px;font-size:11px;display:flex}@media (width<=900px){.settings-agent-runtime-grid,.settings-runtime-employee-grid{grid-template-columns:minmax(0,1fr)}}.settings-shell .settings-runtime-employee-grid{align-items:start;min-width:0}.settings-shell .settings-runtime-employee-grid>.settings-field{border:0;grid-template-columns:minmax(0,1fr);gap:6px;min-width:0;padding:0}.settings-shell .settings-runtime-employee-grid>.settings-field>:is(.settings-field-label,.settings-field-error,input,button){grid-area:auto/1}@container settings (width<=900px){.settings-shell .settings-runtime-employee-grid{grid-template-columns:minmax(0,1fr)}}.embed-stepper{gap:4px;padding:10px 0 16px;display:flex;overflow-x:auto}.embed-step{color:var(--text-secondary);border:1px solid var(--border-subtle);background:0 0;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.embed-step.is-done{color:var(--text-primary);background:#32c86e0f;border-color:#32c86e80}.embed-step.is-active{color:var(--text-primary);border-color:var(--border-strong);background:var(--surface-raised);font-weight:600}.embed-step-badge{background:var(--surface-raised);width:20px;height:20px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.embed-step.is-done .embed-step-badge{color:var(--status-running);background:#32c86e26}.embed-step.is-active .embed-step-badge{background:var(--text-primary);color:var(--surface-base)}.embed-progress{flex-direction:column;gap:6px;display:flex}.embed-progress-bar{background:var(--surface-raised);border-radius:3px;height:6px;overflow:hidden}.embed-progress-fill{background:var(--text-primary);border-radius:3px;height:100%;transition:width .3s}.embed-status-grid{grid-template-columns:80px 1fr;gap:4px 12px;margin:0;font-size:12px;display:grid}.embed-status-grid dt{color:var(--text-secondary)}.embed-status-grid dd{color:var(--text-primary);margin:0}.dashboard-embed-section{flex-direction:column;gap:16px;display:flex}.dashboard-embed-fieldset{border:1px solid var(--border-subtle);border-radius:8px;margin:0;padding:12px 16px}.dashboard-embed-fieldset legend{color:var(--text-primary);padding:0 4px;font-size:13px;font-weight:600}.dashboard-embed-fieldset legend small{color:var(--text-secondary);margin-left:6px;font-weight:400}.dashboard-embed-field{flex-direction:column;gap:4px;margin:8px 0;display:flex}.dashboard-embed-field label{color:var(--text-secondary);font-size:12px}.dashboard-embed-field select,.dashboard-embed-field input{border:1px solid var(--border-subtle);background:var(--surface-base);color:var(--text-primary);border-radius:4px;padding:6px 8px;font-size:13px}.dashboard-embed-btn{border:1px solid var(--border-subtle);background:var(--surface-raised);color:var(--text-primary);cursor:pointer;border-radius:4px;margin-top:8px;padding:6px 14px;font-size:12px}.dashboard-embed-btn:disabled{opacity:.4;cursor:default}.dashboard-embed-ok{color:var(--status-running);margin:6px 0 0;font-size:12px}.dashboard-embed-err{color:var(--error-text);margin:6px 0 0;font-size:12px}
|
|
1
|
+
:root{--jp-gray-50:oklch(98.5% 0 0);--jp-gray-100:oklch(96.7% .001 286.375);--jp-gray-200:oklch(92% .004 286.32);--jp-gray-300:oklch(87.1% .006 286.286);--jp-gray-400:oklch(70.5% .015 286.067);--jp-gray-500:oklch(55.2% .016 285.938);--jp-gray-600:oklch(44.2% .017 285.786);--jp-gray-700:oklch(37% .013 285.805);--jp-gray-800:oklch(27.4% .006 286.033);--jp-gray-900:oklch(21% .006 285.885);--jp-blue-100:#dbe7ff;--jp-blue-300:#8fb8f7;--jp-blue-400:#62a8f5;--jp-blue-500:#3884ff;--jp-blue-600:#1f6feb;--jp-blue-700:#155bbb;--jp-green-400:oklch(76.5% .177 163.223);--jp-green-600:oklch(59.6% .145 163.225);--jp-amber-400:oklch(82.8% .189 84.429);--jp-amber-600:oklch(66.6% .179 58.318);--jp-red-400:oklch(70.4% .191 22.216);--jp-red-600:oklch(57.7% .245 27.325);--jp-slate-400:oklch(70.5% .015 286.067);--jp-slate-500:oklch(55.2% .016 285.938);--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.625rem;--radius-xl:.875rem;--control-radius:.5rem;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "Pretendard", "Noto Sans CJK SC", "Noto Sans CJK JP", "Noto Sans KR", sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--motion-fast:.12s;--motion-base:.18s;--workspace-topbar-height:44px;--scrollbar-size:6px;--scrollbar-radius:3px}:root,:root[data-theme=dark]{color-scheme:dark;--bg-base:#0a0a0a;--bg-panel:#111;--bg-raised:#ffffff0a;--bg-elevated:#111;--border-subtle:#ffffff14;--border-strong:#ffffff1a;--text-primary:#f1f3f7;--text-secondary:#a3a3a3;--text-dim:#818181;--accent:oklch(57.1% .21 264);--accent-soft:color-mix(in srgb, var(--accent) 12%, transparent);--selection-bg:color-mix(in srgb, var(--accent) 40%, transparent);--status-running:oklch(69.6% .17 162.48);--status-success:oklch(69.6% .17 162.48);--status-warn:oklch(76.9% .188 70.08);--status-error:#fb414a;--status-idle:#7f7f89;--shadow-panel:inset 0 1px #ffffff0a, 0 24px 72px -20px #000000e6;--shadow-elevated:0 1px 2px color-mix(in srgb, var(--text-primary) 12%, transparent);--scrim-overlay:color-mix(in srgb, var(--bg-base) 64%, transparent);--surface-base:var(--bg-base);--surface-panel:var(--bg-panel);--surface-raised:var(--bg-raised);--surface-overlay:var(--bg-elevated);--surface-canvas:var(--bg-base);--ink-primary:var(--text-primary);--ink-secondary:var(--text-secondary);--ink-muted:var(--text-dim);--ink-on-accent:#fff;--ring:var(--accent);--button-bg:#111;--button-bg-hover:#ffffff0a;--button-border-hover:#ffffff1a;--row-bg:#000;--row-bg-hover:#ffffff0a;--canvas-deep:#000;--canvas-mid:#111;--canvas-soft:#ffffff0a;--shell-tint:color-mix(in srgb, var(--accent) 6%, transparent);--error-border:color-mix(in srgb, var(--status-error) 16%, transparent);--error-text:var(--jp-red-400);--lifecycle-border:color-mix(in srgb, var(--accent) 30%, transparent);--lifecycle-text:color-mix(in srgb, var(--accent) 60%, white);--highlight-bg:color-mix(in srgb, var(--accent) 12%, transparent);--highlight-border:#ffffff1a;--placeholder-ink:var(--text-dim);--segment-track:#ffffff08;--segment-border:#ffffff14;--segment-hover:#ffffff0a;--segment-active:#000;--segment-active-ink:#f1f3f7;--link-border:#ffffff14;--link-bg-hover:#ffffff0a;--link-border-hover:#ffffff1a;--link-ink:#a3a3a3;--inset-glow:#ffffff08;--rail-top:#000;--rail-bottom:#000;--canvas-panel:#111;--canvas-base:#000;--danger-soft:color-mix(in srgb, var(--status-error) 16%, transparent);--accent-primary:var(--accent);--surface-secondary:var(--surface-raised);--text-tertiary:var(--text-dim);--text-danger:var(--error-text);--sidebar-row-hover:#f1f3f714;--sidebar-row-active:#f1f3f71c;--sidebar-row-selected:#f1f3f712;--sidebar-row-working:#38bdf8;--sidebar-row-attention:var(--jp-amber-400);--sidebar-row-error:var(--jp-red-400);--sidebar-row-ready:var(--text-dim);--sidebar-border:#ffffff14;--sidebar-control-surface:#0a0a0a;--focus-ring:2px solid color-mix(in srgb, var(--ring) 50%, transparent);--scrollbar-thumb:#ffffff14;--scrollbar-thumb-hover:#ffffff1f}:root[data-theme=light]{color-scheme:light;--bg-base:oklch(99.2% 0 0);--bg-panel:#fff;--bg-raised:var(--jp-gray-50);--bg-elevated:#fff;--border-subtle:var(--jp-gray-200);--border-strong:var(--jp-gray-300);--text-primary:var(--jp-gray-800);--text-secondary:var(--jp-gray-600);--text-dim:var(--jp-gray-500);--accent:oklch(48.8% .217 264);--accent-soft:color-mix(in srgb, var(--accent) 8%, transparent);--selection-bg:color-mix(in srgb, var(--accent) 30%, transparent);--status-running:var(--jp-green-600);--status-success:var(--jp-green-600);--status-warn:var(--jp-amber-600);--status-error:var(--jp-red-600);--status-idle:var(--jp-slate-500);--shadow-panel:0 24px 64px -24px #0000002e;--shadow-elevated:0 1px 2px color-mix(in srgb, var(--text-primary) 12%, transparent);--scrim-overlay:color-mix(in srgb, var(--bg-base) 60%, transparent);--surface-base:var(--bg-base);--surface-panel:var(--bg-panel);--surface-raised:var(--bg-raised);--surface-overlay:var(--bg-elevated);--surface-canvas:var(--bg-base);--ink-primary:var(--text-primary);--ink-secondary:var(--text-secondary);--ink-muted:var(--text-dim);--ink-on-accent:#fff;--ring:var(--accent);--button-bg:#fff;--button-bg-hover:var(--jp-gray-100);--button-border-hover:var(--jp-gray-400);--row-bg:#fff;--row-bg-hover:oklch(99.2% 0 0);--canvas-deep:var(--jp-gray-50);--canvas-mid:#fff;--canvas-soft:var(--jp-gray-100);--shell-tint:color-mix(in srgb, var(--accent) 6%, transparent);--error-border:color-mix(in srgb, var(--status-error) 8%, transparent);--error-text:oklch(50.5% .213 27.518);--lifecycle-border:color-mix(in srgb, var(--accent) 25%, transparent);--lifecycle-text:var(--accent);--highlight-bg:var(--jp-gray-100);--highlight-border:var(--jp-gray-300);--placeholder-ink:var(--jp-gray-500);--segment-track:var(--jp-gray-50);--segment-border:var(--jp-gray-200);--segment-hover:oklch(99.2% 0 0);--segment-active:#fff;--segment-active-ink:var(--jp-gray-800);--link-border:var(--jp-gray-200);--link-bg-hover:oklch(99.2% 0 0);--link-border-hover:var(--jp-gray-300);--link-ink:var(--jp-gray-600);--inset-glow:#00000005;--rail-top:#fff;--rail-bottom:oklch(99.2% 0 0);--canvas-panel:#fff;--canvas-base:oklch(99.2% 0 0);--danger-soft:color-mix(in srgb, var(--status-error) 8%, transparent);--accent-primary:var(--accent);--surface-secondary:var(--surface-raised);--text-tertiary:var(--text-dim);--text-danger:var(--error-text);--sidebar-row-hover:oklch(99.2% 0 0);--sidebar-row-active:#fff;--sidebar-row-selected:#fff;--sidebar-row-working:#0284c7;--sidebar-row-attention:var(--jp-amber-600);--sidebar-row-error:var(--jp-red-600);--sidebar-row-ready:var(--text-dim);--sidebar-border:var(--border-subtle);--sidebar-control-surface:var(--jp-gray-100);--focus-ring:2px solid color-mix(in srgb, var(--ring) 50%, transparent);--scrollbar-thumb:#d9d9d9;--scrollbar-thumb-hover:#bfbfbf}@media (prefers-color-scheme:light){:root[data-theme=auto]{color-scheme:light;--bg-base:oklch(99.2% 0 0);--bg-panel:#fff;--bg-raised:var(--jp-gray-50);--bg-elevated:#fff;--border-subtle:var(--jp-gray-200);--border-strong:var(--jp-gray-300);--text-primary:var(--jp-gray-800);--text-secondary:var(--jp-gray-600);--text-dim:var(--jp-gray-500);--accent:oklch(48.8% .217 264);--accent-soft:color-mix(in srgb, var(--accent) 8%, transparent);--selection-bg:color-mix(in srgb, var(--accent) 30%, transparent);--status-running:var(--jp-green-600);--status-success:var(--jp-green-600);--status-warn:var(--jp-amber-600);--status-error:var(--jp-red-600);--status-idle:var(--jp-slate-500);--shadow-panel:0 24px 64px -24px #0000002e;--shadow-elevated:0 1px 2px color-mix(in srgb, var(--text-primary) 12%, transparent);--scrim-overlay:color-mix(in srgb, var(--bg-base) 60%, transparent);--surface-base:var(--bg-base);--surface-panel:var(--bg-panel);--surface-raised:var(--bg-raised);--surface-overlay:var(--bg-elevated);--surface-canvas:var(--bg-base);--ink-primary:var(--text-primary);--ink-secondary:var(--text-secondary);--ink-muted:var(--text-dim);--ink-on-accent:#fff;--ring:var(--accent);--button-bg:#fff;--button-bg-hover:var(--jp-gray-100);--button-border-hover:var(--jp-gray-400);--row-bg:#fff;--row-bg-hover:oklch(99.2% 0 0);--canvas-deep:var(--jp-gray-50);--canvas-mid:#fff;--canvas-soft:var(--jp-gray-100);--shell-tint:color-mix(in srgb, var(--accent) 6%, transparent);--error-border:color-mix(in srgb, var(--status-error) 8%, transparent);--error-text:oklch(50.5% .213 27.518);--lifecycle-border:color-mix(in srgb, var(--accent) 25%, transparent);--lifecycle-text:var(--accent);--highlight-bg:var(--jp-gray-100);--highlight-border:var(--jp-gray-300);--placeholder-ink:var(--jp-gray-500);--segment-track:var(--jp-gray-50);--segment-border:var(--jp-gray-200);--segment-hover:oklch(99.2% 0 0);--segment-active:#fff;--segment-active-ink:var(--jp-gray-800);--link-border:var(--jp-gray-200);--link-bg-hover:oklch(99.2% 0 0);--link-border-hover:var(--jp-gray-300);--link-ink:var(--jp-gray-600);--inset-glow:#00000005;--rail-top:#fff;--rail-bottom:oklch(99.2% 0 0);--canvas-panel:#fff;--canvas-base:oklch(99.2% 0 0);--danger-soft:color-mix(in srgb, var(--status-error) 8%, transparent);--accent-primary:var(--accent);--surface-secondary:var(--surface-raised);--text-tertiary:var(--text-dim);--text-danger:var(--error-text);--sidebar-row-hover:oklch(99.2% 0 0);--sidebar-row-active:#fff;--sidebar-row-selected:#fff;--sidebar-row-working:#0284c7;--sidebar-row-attention:var(--jp-amber-600);--sidebar-row-error:var(--jp-red-600);--sidebar-row-ready:var(--text-dim);--sidebar-border:var(--border-subtle);--sidebar-control-surface:var(--jp-gray-100);--focus-ring:2px solid color-mix(in srgb, var(--ring) 50%, transparent);--scrollbar-thumb:#d9d9d9;--scrollbar-thumb-hover:#bfbfbf}}:root[data-cli-jaw-desktop=true]{--workspace-topbar-height:52px}:root{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary)}html{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}html::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}html::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--scrollbar-radius)}html::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}*{box-sizing:border-box}body{background:radial-gradient(circle at 12% 0%, var(--shell-tint), transparent 32rem), var(--bg-base);min-width:320px;height:100%;color:var(--text-primary);transition:background-color var(--motion-base) ease, color var(--motion-base) ease;margin:0;overflow:hidden}#manager-root{height:100dvh;overflow:hidden}button,input,select{font:inherit}button,.open-link{border:1px solid var(--border-strong);background:var(--button-bg);min-height:30px;color:var(--text-primary);border-radius:var(--control-radius);transition:background var(--motion-base) ease, border-color var(--motion-base) ease, transform var(--motion-fast) ease;justify-content:center;align-items:center;padding:5px 10px;font-size:12px;text-decoration:none;display:inline-flex}button:hover:not(:disabled),.open-link:hover{background:var(--button-bg-hover);border-color:var(--button-border-hover)}button:active:not(:disabled),.open-link:active{transform:translateY(1px)}button:disabled,.open-link[aria-disabled=true]{cursor:not-allowed;opacity:.5;pointer-events:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:var(--focus-ring);outline-offset:2px}:lang(zh),:lang(ja){letter-spacing:0}:lang(zh) p,:lang(ja) p,:lang(ko) p{line-height:1.55}:lang(zh) :is(h1,h2,h3,h4,h5,h6),:lang(ja) :is(h1,h2,h3,h4,h5,h6),:lang(ko) :is(h1,h2,h3,h4,h5,h6){font-weight:max(500, var(--heading-weight,600))}.dashboard-settings-sidebar{min-height:100%;padding:14px 12px}.dashboard-settings-sidebar-header{gap:2px;margin-bottom:12px;display:grid}.dashboard-settings-sidebar-header strong{font-size:18px}.dashboard-settings-sidebar-list{gap:8px;display:grid}.dashboard-settings-sidebar-button{text-align:left;background:0 0;border-color:#0000;justify-items:start;gap:3px;min-height:54px;display:grid}.dashboard-settings-sidebar-button.is-active{border-color:var(--accent);background:var(--canvas-mid)}.dashboard-settings-sidebar-button small{color:var(--text-dim);font-size:11px}.dashboard-settings-workspace{min-width:0;height:100%;padding:18px;overflow:auto}.dashboard-settings-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.dashboard-settings-header h2,.dashboard-settings-section h3{margin:0}.dashboard-settings-section{gap:14px;max-width:780px;display:grid}.dashboard-settings-section header p{color:var(--text-dim);margin:4px 0 0}.dashboard-settings-field-list{gap:8px;display:grid}.dashboard-settings-row{background:0 0;border:0;border-radius:0;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:14px;padding:12px 0;display:grid}.dashboard-settings-row-main{min-width:0}.dashboard-settings-row-heading{color:var(--text-strong);flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;font-weight:650;line-height:1.25;display:flex}.dashboard-settings-row-scope{border:1px solid var(--border-subtle);color:var(--text-dim);border-radius:999px;padding:2px 7px;font-size:11px;font-weight:600;line-height:1.2}.dashboard-settings-row-description{color:var(--text-dim);margin:5px 0 0;font-size:13px;line-height:1.35}.dashboard-settings-row-control{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.dashboard-settings-toggle{width:20px;height:20px;margin:0}.dashboard-settings-select,.dashboard-settings-shortcut-input{border:1px solid var(--border-subtle);background:var(--canvas);min-width:150px;max-width:100%;color:var(--text-strong);font:inherit;border-radius:8px;padding:7px 30px 7px 10px}.dashboard-settings-shortcut-input{text-align:center;width:120px;min-width:120px;padding-right:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.dashboard-settings-save-state{min-width:52px;color:var(--text-dim);font-size:12px;line-height:1.2}.dashboard-settings-save-state.is-error{color:var(--text-danger,#c83232)}.dashboard-settings-status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.dashboard-settings-status-grid>div{border:1px solid var(--border-subtle);background:var(--canvas-mid);border-radius:8px;align-content:center;gap:6px;min-height:72px;padding:10px;display:grid}.dashboard-settings-status-grid span{color:var(--text-dim);font-size:11px}.dashboard-settings-status-grid strong{font-size:24px}.dashboard-settings-status-grid p{color:var(--text-dim);grid-column:1/-1;margin:0}@media (width<=767px){.dashboard-settings-workspace{padding:12px}.dashboard-settings-status-grid{grid-template-columns:1fr}.dashboard-settings-row{grid-template-columns:1fr;gap:10px}.dashboard-settings-row-control{justify-content:flex-start}.dashboard-settings-select,.dashboard-settings-shortcut-input{min-width:min(220px,100%)}}.dashboard-settings-workspace:has(.settings-shell-host){flex-direction:column;min-height:0;padding:0;display:flex;overflow:hidden}.dashboard-settings-workspace>.settings-shell-host{flex:1}.settings-full-page{--motion-fast:.12s;min-width:0;height:100%;min-height:0}.settings-shell-host{--settings-bg:var(--bg,var(--surface-base));--settings-card:var(--surface-2,var(--surface-raised));--settings-border:var(--border-alpha,var(--border-subtle));--settings-hover:var(--surface-3,var(--surface-raised));--motion-fast:.12s;min-width:0;height:100%;min-height:0;container:settings/inline-size}.settings-shell{grid-template-columns:264px minmax(0,1fr);gap:0;height:100%;min-height:0;padding:8px 8px 8px 0;display:grid}.settings-page{scrollbar-gutter:stable;border:1px solid var(--settings-border);background:var(--settings-bg);border-radius:12px;min-width:0;min-height:0;scroll-padding-bottom:80px;position:relative;overflow:auto}.settings-page-main{width:100%;max-width:896px;margin-inline:auto;padding:32px 32px 40px}.settings-page-heading{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:32px;display:flex}.settings-page-heading h2{letter-spacing:-.025em;text-wrap:balance;margin:0;font-size:24px;font-weight:600;line-height:1.25}.settings-page-badge{background:var(--settings-card);color:var(--text-secondary);border-radius:6px;padding:4px 10px;font-size:13px;font-weight:500}.settings-page-form{flex-direction:column;gap:32px;width:100%;margin:0;display:flex}.settings-section,.settings-shell .dashboard-settings-section{box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0}.settings-section-header{margin-bottom:12px}.settings-section-header :is(h2,h3),.settings-shell .dashboard-settings-section>header h3{text-wrap:balance;margin:0;font-size:16px;font-weight:600;line-height:1.5}.settings-section-hint,.settings-shell .dashboard-settings-section>header p{color:var(--text-secondary);margin:4px 0 0;font-size:13px;line-height:24px}.settings-sidebar{scrollbar-gutter:stable;flex-direction:column;gap:16px;min-width:0;padding:8px 16px 24px 8px;display:flex;overflow:auto}.settings-back{width:100%;min-height:40px;color:var(--text-secondary);background:0 0;border:0;border-radius:12px;flex-shrink:0;justify-content:flex-start;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.settings-sidebar-search{padding:0 2px}.settings-sidebar-search input{box-sizing:border-box;background:var(--settings-card);width:100%;min-width:0;color:var(--text-primary);border:1px solid var(--settings-border);border-radius:8px;padding:7px 8px;font-size:12px}.settings-sidebar>section{flex-direction:column;gap:16px;display:flex}.settings-scope-label{clip-path:inset(50%);width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.settings-sidebar-group-header{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin:0;padding:0 10px 4px;font-size:11px;font-weight:500;line-height:16px}.settings-sidebar-group-items{flex-direction:column;gap:2px;display:flex}.settings-sidebar-item{width:100%;height:32px;min-height:32px;color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;justify-content:flex-start;align-items:center;gap:8px;padding:0 10px;font-size:13px;display:flex}.settings-nav-icon,.settings-back>span:first-child{flex:0 0 16px;width:16px;height:16px;display:inline-flex}.settings-nav-icon svg,.settings-back svg{stroke-width:1.8px;width:16px;height:16px}.settings-nav-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.settings-sidebar-item:hover,.settings-sidebar-item.is-active,.settings-back:hover{background:var(--settings-hover);color:var(--text-primary)}.settings-sidebar-item.is-active{font-weight:500}.settings-standalone,.settings-standalone body,#settings-root{min-width:0;height:100%;margin:0}.settings-standalone body{background:var(--surface-panel);color:var(--text-primary);font-family:var(--font-sans);display:block;overflow:hidden}@container settings (width>=1024px){.settings-page-heading h2{font-size:30px}}@container settings (width<=719px){.settings-page-main{padding:24px 16px 40px}}@media (width<=1023px){.settings-shell{grid-template-columns:40px minmax(0,1fr);padding-left:4px}.settings-sidebar{scrollbar-gutter:auto;gap:16px;padding:4px 4px 16px 0}.settings-sidebar :is(.settings-nav-label,.settings-sidebar-group-header){clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.settings-sidebar-search{display:none}.settings-sidebar-item,.settings-back{justify-content:center;padding:0}}@media (prefers-reduced-motion:no-preference){.settings-full-page{animation:settingsEnter var(--motion-fast,.12s) ease}}@keyframes settingsEnter{0%{opacity:0}to{opacity:1}}.settings-loading,.settings-placeholder{color:var(--text-secondary);padding:8px 0;font-size:12px}.settings-error{color:#ff8a8a;background:#ff50500f;border:1px solid #ff505040;border-radius:6px;padding:10px 12px;font-size:12px}.settings-readonly-grid{grid-template-columns:96px 1fr;gap:6px 12px;margin:0;font-size:12px;display:grid}.settings-readonly-grid dt{color:var(--text-secondary)}.settings-readonly-grid dd{color:var(--text-primary);margin:0}.settings-action-row,.settings-save-bar{background:var(--surface-base);border-top:1px solid var(--border-subtle);z-index:2;border-radius:6px 6px 0 0;justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;padding:10px 12px;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 12px #00000014}.settings-save-bar-status{color:var(--text-secondary);margin-right:auto;font-size:11px}.settings-save-bar-error{color:var(--text-danger,#c83232);margin-right:auto;font-size:11px}.settings-toast{background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-subtle);z-index:3;border-radius:6px;align-self:flex-end;align-items:center;gap:8px;max-width:360px;margin-top:8px;margin-left:auto;padding:8px 12px;font-size:12px;display:inline-flex;position:sticky;bottom:70px;box-shadow:0 4px 12px #00000029}.settings-toast-ok{border-color:#32c86e80}.settings-toast-err{color:var(--text-danger,#c83232);border-color:#ff505080}.settings-toast-dismiss{color:inherit;cursor:pointer;background:0 0;border:0;font-size:16px;line-height:1}.settings-action{border:1px solid var(--border-subtle);background:var(--surface-raised);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:12px}.settings-action-save{border-color:var(--border-strong);background:var(--text-primary);color:var(--surface-base)}.settings-field{flex-direction:column;gap:4px;margin-bottom:12px;font-size:12px;display:flex}.settings-field-label{color:var(--text-secondary)}.settings-field-error{color:var(--error-text)}.settings-field-row{gap:6px;display:flex}.settings-chiplist-row{border:1px solid var(--border-subtle);border-radius:6px;flex-wrap:wrap;gap:4px;padding:4px;display:flex}.settings-chiplist-row input{min-width:80px;color:var(--text-primary);font:inherit;background:0 0;border:0;flex:1}.settings-chip{background:var(--surface-raised);color:var(--text-primary);border-radius:12px;align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.settings-chip-remove{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;font-size:14px;line-height:1}.settings-section-body{flex-direction:column;gap:0;display:flex}.settings-action-error,.settings-savebar-error{color:var(--text-danger,#c83232);margin-right:8px;font-size:11px}.settings-action-secondary{background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-subtle);cursor:pointer;border-radius:6px;padding:5px 10px}.settings-avatar-card{border:1px dashed var(--border-subtle);border-radius:8px;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:12px;padding:8px;display:grid}.settings-avatar-preview{background:var(--surface-raised);border-radius:50%;place-items:center;width:64px;height:64px;display:grid;overflow:hidden}.settings-avatar-preview img{object-fit:cover;width:100%;height:100%}.settings-avatar-preview img.settings-avatar-mascot{object-fit:contain;width:80%;height:80%}.settings-avatar-placeholder{font-size:28px}.settings-avatar-controls{flex-direction:column;gap:6px;display:flex}.settings-avatar-buttons{gap:6px;display:flex}.settings-percli-row{border-bottom:1px solid var(--border-subtle);padding-bottom:10px}.settings-percli-row:last-child{border-bottom:0;padding-bottom:0}.settings-percli-title{margin:0 0 6px;font-size:12px;font-weight:600}.settings-percli-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.settings-percli-grid--pi{grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);align-items:start}.settings-percli-grid--pi>*{min-width:0}.settings-percli-grid--pi .settings-percli-note{overflow-wrap:anywhere}.settings-percli-grid--pi>.settings-action{justify-self:start;max-width:100%}.settings-percli-note{color:var(--text-secondary);margin:4px 0 0;font-size:11px;line-height:1.35}.settings-percli-note--effort{margin-bottom:2px}.settings-overrides-table{border-collapse:collapse;width:100%;font-size:12px}.settings-overrides-table th,.settings-overrides-table td{text-align:left;border-bottom:1px solid var(--border-subtle);padding:4px 6px}.settings-overrides-actions{align-items:center;gap:8px;margin-top:8px;display:flex}.settings-empty{color:var(--text-secondary);margin:0;font-size:11px}.settings-shell .dashboard-settings-section{width:100%;max-width:896px;margin-inline:auto}.settings-sidebar-group,.settings-page :is(.settings-section,.settings-section-body,.settings-field-row){min-width:0}.settings-page .settings-percli-grid{grid-template-columns:minmax(0,1fr)}.settings-page .settings-overrides-table{display:block;overflow:auto}.settings-save-bar{flex-wrap:wrap}:root[data-theme=light] .settings-shell-host{--settings-card:var(--surface-panel)}@media (prefers-color-scheme:light){:root[data-theme=auto] .settings-shell-host{--settings-card:var(--surface-panel)}}.settings-field{position:relative}.settings-field-label{color:var(--text-secondary);font-size:12px;font-weight:600}.settings-field input:not([type=checkbox]):not([type=radio]):not([type=file]),.settings-field textarea,.settings-field-select>select,.settings-select-trigger{border:1px solid var(--border-subtle);background:var(--surface-raised);width:100%;min-height:38px;color:var(--text-primary);box-shadow:none;border-radius:7px;transition:border-color .15s,box-shadow .15s,background .15s}.settings-field input:not([type=checkbox]):not([type=radio]):not([type=file]),.settings-field textarea,.settings-field-select>select{padding:8px 10px}.settings-field input:not([type=checkbox]):not([type=radio]):not([type=file]):hover:not(:disabled),.settings-field textarea:hover:not(:disabled),.settings-field-select>select:hover:not(:disabled),.settings-select-trigger:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-base)}.settings-field input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,.settings-field textarea:focus,.settings-field-select>select:focus,.settings-select-trigger:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--ring) 18%, transparent), inset 0 1px 0 #ffffff8c}.settings-field input:disabled,.settings-field textarea:disabled,.settings-select-trigger:disabled{cursor:not-allowed;opacity:.56}.settings-field-select{max-width:100%}.settings-select-trigger{text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px 8px 12px;display:flex}.settings-select-trigger.is-open{border-color:var(--ring);border-bottom-right-radius:5px;border-bottom-left-radius:5px}.settings-select-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-select-caret{opacity:.7;border-bottom:1.8px solid;border-right:1.8px solid;flex:none;width:8px;height:8px;transition:transform .15s,opacity .15s;transform:translateY(-2px)rotate(45deg)}.settings-select-trigger.is-open .settings-select-caret{opacity:1;transform:translateY(2px)rotate(225deg)}.settings-select-menu{z-index:12;border:1px solid var(--border-strong);background:var(--surface-base);border-radius:8px;width:min(100%,560px);max-height:240px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;overflow:auto;box-shadow:0 18px 40px #0f172a24,0 2px 8px #0f172a14}.settings-select-option{width:100%;min-height:32px;color:var(--text-primary);background:0 0;border:0;border-radius:5px;justify-content:space-between;padding:7px 9px}.settings-select-option.is-active,.settings-select-option:hover{background:var(--surface-raised)}.settings-select-option.is-selected{color:var(--accent-strong,var(--text-primary));font-weight:600}.settings-select-divider{border:0;border-top:1px solid var(--border-subtle,var(--border-strong));margin:4px 8px}.settings-select-more{width:100%;min-height:28px;color:var(--text-secondary,var(--text-primary));cursor:pointer;text-align:left;opacity:.7;background:0 0;border:0;border-radius:5px;padding:5px 9px;font-size:.85em}.settings-select-more:hover{background:var(--surface-raised);opacity:1}.settings-pi-modal{z-index:70;background:var(--scrim-overlay);color:var(--text-primary);flex-direction:column;padding:16px;display:flex;position:fixed;inset:0;overflow:auto}.settings-pi-modal>.settings-memory-modal-card{background:var(--surface-overlay);border:1px solid var(--border-strong);border-radius:var(--radius-lg);flex-shrink:0;width:min(560px,100%);min-width:0;margin:auto;padding:20px}.settings-pi-modal .settings-memory-modal-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.settings-pi-modal h3{overflow-wrap:anywhere;margin:0}.settings-pi-modal .settings-page-form,.settings-pi-modal .settings-field{min-width:0}.settings-pi-modal .settings-field{--border-subtle:var(--text-secondary);--border-strong:var(--text-secondary)}.settings-pi-modal .settings-field-error{color:var(--error-text)}@media (width<=720px){.settings-field-select,.settings-select-menu{width:100%;max-width:none}}.settings-shell .settings-field,.settings-shell .dashboard-settings-row{border:0;border-top:1px solid var(--settings-border);box-shadow:none;background:0 0;border-radius:0;grid-template-columns:minmax(0,1fr) 192px;align-items:center;gap:4px 24px;margin:0;padding:12px 16px;display:grid}.settings-shell .settings-field-label,.settings-shell .dashboard-settings-row-heading{color:var(--text-primary);grid-area:1/1;font-size:14px;font-weight:500}.settings-shell .settings-field-hint,.settings-shell .settings-field-description,.settings-shell .dashboard-settings-row-description{color:var(--text-secondary);grid-area:2/1;font-size:13px;line-height:24px}.settings-shell .settings-field>:is(input,select,textarea,button,.settings-field-row,.settings-chiplist-row,.settings-active-channel-options){grid-area:1/2/span 2;min-width:0}.settings-shell .settings-field-error{grid-column:1/-1}.settings-shell .settings-select-menu{width:min(100%,560px);left:auto;right:0}.settings-shell .settings-field :is(input:not([type=checkbox]),textarea),.settings-shell .settings-select-trigger{background:var(--surface-raised);box-shadow:none}.settings-shell :focus-visible{outline:var(--focus-ring);outline-offset:2px}@container (width<=719px){.settings-shell .settings-field,.settings-shell .dashboard-settings-row{grid-template-columns:minmax(0,1fr);row-gap:12px}.settings-shell .settings-field>:is(input,select,textarea,button,.settings-field-row,.settings-chiplist-row,.settings-active-channel-options){grid-area:auto/1}.settings-shell .settings-field-description{grid-row:auto}}@media (prefers-reduced-motion:reduce){.settings-shell,.settings-shell *,.settings-shell :before,.settings-shell :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.settings-shell .dashboard-settings-row-main{min-width:0}.settings-shell .dashboard-settings-row-control{grid-column:2;min-width:0}.settings-shell .dashboard-settings-row-control>*{max-width:100%}.settings-shell .settings-field-row input{min-width:0}.settings-shell .settings-field :is(input,textarea){box-sizing:border-box}.settings-slack-setup{width:min(560px,92vw);max-height:85dvh;color:var(--text-primary);background:var(--surface-base);border:1px solid var(--border-subtle);padding:24px;overflow:auto}.settings-slack-setup::backdrop{background:#00000080}.settings-slack-setup fieldset{border:0;gap:12px;padding:0;display:grid}.settings-slack-fields{border:0;gap:48px;min-width:0;margin:0;padding:0;display:grid}.settings-slack-setup label{gap:8px;display:grid}.settings-slack-setup input{min-width:0;max-width:100%}@container (width<=719px){.settings-shell .dashboard-settings-row-control{grid-column:1;justify-content:flex-start}}.settings-shell .settings-active-channel-options{flex-wrap:wrap;gap:12px;display:flex}.settings-shell .settings-radio{align-items:center;gap:6px;display:inline-flex}.settings-shell input:is([type=checkbox],[type=radio]){justify-self:start;width:16px;height:16px;min-height:0;margin:0}.settings-shell fieldset.settings-field{min-width:0}.settings-shell fieldset.settings-field>legend{margin-bottom:8px}.settings-shell :is(.settings-section-body,.dashboard-settings-field-list){border:1px solid var(--settings-border);background:var(--settings-card);border-radius:12px;gap:0}.settings-shell :is(.settings-section-body,.dashboard-settings-field-list)>:first-child{border-top:0;border-top-left-radius:12px;border-top-right-radius:12px}.settings-shell :is(.settings-section-body,.dashboard-settings-field-list)>:last-child{border-bottom-right-radius:12px;border-bottom-left-radius:12px}.settings-page-form>.settings-field{border:1px solid var(--settings-border);background:var(--settings-card);border-radius:12px}.settings-shell .dashboard-settings-section{flex-direction:column;gap:12px;display:flex}.settings-shell .dashboard-settings-row-control{justify-content:flex-end}.settings-shell .settings-field>:is(input,select,textarea,button){max-width:100%}.settings-shell .settings-field>select{border:1px solid var(--settings-border);background:var(--settings-card);width:100%;min-height:32px;color:var(--text-primary);border-radius:8px}.settings-shell .settings-field :is(input:not([type=checkbox]):not([type=radio]),textarea),.settings-shell .settings-select-trigger{border-radius:8px;min-height:32px;padding:6px 10px}@container settings (width>=1200px){.settings-shell .settings-field,.settings-shell .dashboard-settings-row{grid-template-columns:minmax(0,1fr) 280px}}.settings-shell .settings-agent-runtime-grid{flex-direction:column;align-items:stretch;gap:0;display:flex}.settings-shell .settings-agent-runtime-grid>.settings-field:first-child{border-top:0}.settings-shell .settings-agent-note{padding:0 16px 12px}.settings-page-heading,.settings-section-header{color:var(--text-primary)}.settings-shell .settings-field>:is(.settings-field-label,.settings-field-hint,.settings-field-description){overflow-wrap:anywhere;min-width:0}.settings-agent-runtime-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px 12px;display:grid}.settings-agent-note{color:var(--text-secondary);margin:0;font-size:12px}.settings-agent-flush summary{cursor:pointer;color:var(--text-primary);align-items:center;gap:12px;font-size:12px;font-weight:600;display:flex}.settings-agent-flush summary code{color:var(--text-secondary);font-size:11px;font-weight:500}.settings-agent-flush[open] summary{margin-bottom:12px}.settings-shell .settings-agent-flush{min-width:0}.settings-shell .settings-agent-flush summary{justify-content:flex-start;padding:12px 16px;font-size:14px;font-weight:500;list-style:none}.settings-shell .settings-agent-flush summary::-webkit-details-marker{display:none}.settings-shell .settings-agent-flush summary:before{content:"";opacity:.7;border-bottom:1.8px solid;border-right:1.8px solid;flex:none;width:8px;height:8px;transition:transform .15s,opacity .15s;transform:translateY(-1px)rotate(-45deg)}.settings-shell .settings-agent-flush[open] summary{margin-bottom:0}.settings-shell .settings-agent-flush[open] summary:before{transform:translateY(2px)rotate(45deg)}.settings-shell .settings-agent-flush summary:hover:before{opacity:1}.settings-shell .settings-agent-flush summary code{margin-left:auto;font-size:13px;font-weight:400}.settings-shell .settings-agent-flush>.settings-field-error{margin:0;padding:0 16px 12px;display:block}.settings-shell .settings-inline-notice{border:1px solid var(--settings-border);background:var(--settings-card);color:var(--text-secondary);border-radius:12px;padding:12px 16px;font-size:13px;line-height:20px}.settings-shell .settings-inline-notice>strong{color:var(--text-primary);margin-bottom:4px;font-weight:600;display:block}.settings-shell .settings-inline-notice>p{margin:0}.settings-shell .settings-inline-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.settings-shell .settings-inline-notice>.settings-field-error{margin-top:8px;display:block}.settings-shell .settings-percli-row{border-bottom:0;border-top:1px solid var(--settings-border);min-width:0;padding-bottom:0}.settings-shell .settings-percli-grid{flex-direction:column;align-items:stretch;gap:0;min-width:0;display:flex}.settings-shell .settings-percli-grid>.settings-action{align-self:flex-start;margin:0 16px 12px}.settings-shell .settings-percli-title{color:var(--text-primary);margin:0;font-size:13px;font-weight:600}.settings-shell .settings-percli-note{margin:0;padding:0 16px 10px;font-size:12px;line-height:18px}.settings-shell .settings-percli-note--effort{margin-bottom:0}.settings-shell .settings-percli-row>.settings-field-error,.settings-shell .settings-percli-grid>.settings-field-error{margin:0;padding:0 16px 10px;display:block}.settings-shell .settings-engine-subsection{border-top:1px solid var(--settings-border);min-width:0}.settings-shell .settings-engine-subsection-head{color:var(--text-primary);flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:10px 16px;font-size:13px;font-weight:600;display:flex}.settings-shell .settings-engine-subsection-hint{color:var(--text-secondary);margin:0;padding:0 16px 8px;font-size:12px}.settings-shell .settings-runtime-employee-row{border:0;border-top:1px solid var(--settings-border);border-radius:0;min-width:0;margin:0;padding:0}.settings-shell .settings-runtime-employee-head{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:10px 16px;font-size:12px;display:flex}.settings-shell .settings-runtime-employee-name{color:var(--text-primary);font-size:13px;font-weight:600}.settings-runtime-employee-summary{color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;display:flex}.settings-runtime-employee-summary span{border:1px solid var(--border-subtle);background:var(--surface-raised);border-radius:999px;padding:2px 6px}.settings-runtime-employee-summary strong{color:var(--text-danger,#c83232);font-size:11px;font-weight:600}.settings-runtime-employee-grid{grid-template-columns:minmax(120px,1fr) minmax(100px,.8fr) minmax(160px,1.2fr) minmax(120px,1fr);align-items:end;gap:10px;display:grid}@media (width<=900px){.settings-agent-runtime-grid,.settings-runtime-employee-grid{grid-template-columns:minmax(0,1fr)}}.settings-shell .settings-runtime-employee-grid{align-items:start;min-width:0;padding:0 16px}.settings-shell .settings-runtime-employee-grid>.settings-field{border:0;grid-template-columns:minmax(0,1fr);gap:6px;min-width:0;padding:0}.settings-shell .settings-runtime-employee-grid>.settings-field>:is(.settings-field-label,.settings-field-error,input,button){grid-area:auto/1}@container settings (width<=900px){.settings-shell .settings-runtime-employee-grid{grid-template-columns:minmax(0,1fr)}}.settings-shell .settings-section-body>:is(.settings-kv,.settings-card-actions,.settings-card-toolbar,.settings-card-note){border-top:1px solid var(--settings-border)}.settings-shell .settings-section-body>:is(.settings-kv,.settings-card-actions,.settings-card-toolbar,.settings-card-note):first-child{border-top:0}.settings-kv{flex-direction:column;margin:0;display:flex}.settings-kv-row{grid-template-columns:minmax(120px,1fr) minmax(0,2fr);align-items:baseline;column-gap:24px;padding:12px 16px;font-size:14px;display:grid}.settings-kv-row+.settings-kv-row{border-top:1px solid var(--settings-border)}.settings-kv-row dt{color:var(--text-primary);font-weight:500}.settings-kv-row dd{min-width:0;color:var(--text-secondary);overflow-wrap:anywhere;text-align:right;margin:0}.settings-kv-mono{font-family:var(--font-mono,ui-monospace, monospace);font-size:13px}.settings-status{background:var(--settings-hover);color:var(--text-secondary);border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:12px;font-weight:500;line-height:20px;display:inline-flex}.settings-status-dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.settings-status-ok{color:var(--success-text,#1f9d55);background:color-mix(in srgb, var(--success-text,#1f9d55) 12%, transparent)}.settings-status-warn{color:var(--warning-text,#b7791f);background:color-mix(in srgb, var(--warning-text,#b7791f) 12%, transparent)}.settings-status-error{color:var(--error-text,#c83232);background:color-mix(in srgb, var(--error-text,#c83232) 12%, transparent)}.settings-card-actions{flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 16px;display:flex}.settings-card-actions-status{min-width:0;color:var(--text-secondary);flex:auto;font-size:13px}.settings-card-actions-buttons{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.settings-card-toolbar{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;font-size:12px;display:flex}.settings-card-note{color:var(--text-secondary);margin:0;padding:12px 16px;font-size:13px;line-height:20px}.settings-card-note-error{color:var(--error-text,#c83232)}.settings-card-note-warn{color:var(--warning-text,#b7791f)}.settings-card-actions .settings-action{border-radius:8px;min-height:32px;padding:6px 12px;font-size:13px;font-weight:500}.settings-card-actions .settings-action:disabled{cursor:not-allowed;opacity:.5}.settings-card-actions .settings-action:not(:disabled):hover{background:var(--settings-hover)}.settings-card-actions .settings-action-save:not(:disabled):hover{background:var(--text-primary);opacity:.88}.settings-shell .settings-action-danger{color:var(--error-text,#c83232)}.settings-card-actions-buttons>.settings-field-hint{text-align:right;flex-basis:100%}.settings-card-scroll{padding:0 16px 12px;overflow-x:auto}@container settings (width<=719px){.settings-kv-row{grid-template-columns:minmax(0,1fr);row-gap:4px}.settings-kv-row dd{text-align:left}.settings-card-actions-buttons{margin-left:0}}.settings-shell .settings-card-group>.settings-card-actions{border-top:1px solid var(--settings-border)}.settings-shell .settings-section-body>.settings-card-group:first-child>.settings-card-actions:first-child{border-top:0}.settings-card-toolbar .settings-action[aria-pressed=true]{background:var(--settings-hover);border-color:var(--text-primary);color:var(--text-primary)}.settings-shell .settings-mono-input{font-family:var(--font-mono,ui-monospace, monospace)}.settings-shell .settings-memory-modal-body{font-family:var(--font-mono,ui-monospace, monospace);white-space:pre-wrap;overflow-wrap:anywhere;max-height:60vh;margin:0;font-size:12px;overflow:auto}.embed-stepper{gap:4px;padding:10px 0 16px;display:flex;overflow-x:auto}.embed-step{color:var(--text-secondary);border:1px solid var(--border-subtle);background:0 0;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.embed-step.is-done{color:var(--text-primary);background:#32c86e0f;border-color:#32c86e80}.embed-step.is-active{color:var(--text-primary);border-color:var(--border-strong);background:var(--surface-raised);font-weight:600}.embed-step-badge{background:var(--surface-raised);width:20px;height:20px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.embed-step.is-done .embed-step-badge{color:var(--status-running);background:#32c86e26}.embed-step.is-active .embed-step-badge{background:var(--text-primary);color:var(--surface-base)}.embed-progress{flex-direction:column;gap:6px;display:flex}.embed-progress-bar{background:var(--surface-raised);border-radius:3px;height:6px;overflow:hidden}.embed-progress-fill{background:var(--text-primary);border-radius:3px;height:100%;transition:width .3s}.embed-status-grid{grid-template-columns:80px 1fr;gap:4px 12px;margin:0;font-size:12px;display:grid}.embed-status-grid dt{color:var(--text-secondary)}.embed-status-grid dd{color:var(--text-primary);margin:0}.dashboard-embed-section{flex-direction:column;gap:16px;display:flex}.dashboard-embed-fieldset{border:1px solid var(--border-subtle);border-radius:8px;margin:0;padding:12px 16px}.dashboard-embed-fieldset legend{color:var(--text-primary);padding:0 4px;font-size:13px;font-weight:600}.dashboard-embed-fieldset legend small{color:var(--text-secondary);margin-left:6px;font-weight:400}.dashboard-embed-field{flex-direction:column;gap:4px;margin:8px 0;display:flex}.dashboard-embed-field label{color:var(--text-secondary);font-size:12px}.dashboard-embed-field select,.dashboard-embed-field input{border:1px solid var(--border-subtle);background:var(--surface-base);color:var(--text-primary);border-radius:4px;padding:6px 8px;font-size:13px}.dashboard-embed-btn{border:1px solid var(--border-subtle);background:var(--surface-raised);color:var(--text-primary);cursor:pointer;border-radius:4px;margin-top:8px;padding:6px 14px;font-size:12px}.dashboard-embed-btn:disabled{opacity:.4;cursor:default}.dashboard-embed-ok{color:var(--status-running);margin:6px 0 0;font-size:12px}.dashboard-embed-err{color:var(--error-text);margin:6px 0 0;font-size:12px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e){if(e.precision===`binary`)return{percent:null,text:e.status===`exhausted`?`Exhausted`:`Available`};let t=Math.max(0,Math.min(100,Math.round(e.percent)));return{percent:t,text:`${t}%`}}function t(e){return e.probeState===`checking`?`checking`:e.probeState===`unknown`?`unknown`:e.probeState===`failing`?`probe-failing`:e.binaryInstalled===!0&&e.capabilityReady===!1?`capability-failed`:e.probeState===`stale`?`stale`:e.available===!0&&e.capabilityReady!==!1?`ready`:`unavailable`}function n(e,n){let r=t(e);return r===`checking`||r===`unknown`?!0:r===`probe-failing`?e.available==null||e.available===!0&&e.capabilityReady!==!1&&e.authenticated!==!1:r===`unavailable`||r===`capability-failed`||e.available!==!0||e.capabilityReady===!1?!1:e.authenticated!==!1&&n?.authenticated!==!1}function r(e,t){for(let[r,i]of e)if(n(i,t?.[r]))return!0;return!1}function i(e){return e.probeState===`checking`?{kind:`checking`,message:`Checking status`,allowRemediation:!1}:e.probeState===`unknown`?{kind:`unknown`,message:`Probe unavailable${e.probeError?`: ${e.probeError}`:``}`,allowRemediation:!1}:e.probeState===`failing`?{kind:`failing`,message:`Status check failed (retrying)${e.probeError?`: ${e.probeError}`:``}`,allowRemediation:!1}:{kind:`none`,message:null,allowRemediation:!0}}function a(e){return e>=200&&e<300||e===409}function o(e){let t=e.lastStartFailure?.code;return t?{code:t,message:`Native runtime failed to start: ${t}`}:null}export{n as a,r as i,i as n,e as o,o as r,a as s,t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-CkEUZM6i.js";import{a as t,l as n,o as r}from"./page-shell-DfinU3mb.js";var i=e(),a=[{value:`ko`,label:`한국어 (ko)`},{value:`en`,label:`English (en)`},{value:`zh`,label:`中文 (zh)`},{value:`ja`,label:`日本語 (ja)`}];function o(e){return a.find(t=>t.value===e)?.value??`ko`}var s={ko:{ariaLabel:`대시보드 설정`,eyebrow:`매니저 환경설정`,title:`대시보드 설정`,displayTitle:`인스턴스 목록 표시`,displayDescription:`이 설정은 왼쪽 인스턴스 목록과 저장된 매니저 UI 환경설정에만 적용됩니다.`,activityTitle:`미리보기와 활동`,activityDescription:`최근 작업 제목은 각 인스턴스 서버의 endpoint 버전에 따라 달라집니다.`,embeddingTitle:`임베딩 검색`,embeddingDescription:`벡터 임베딩 provider를 설정하고 메모리 인덱스를 관리합니다.`,fields:{activity:{label:`최근 작업 미리보기`,scope:`왼쪽 인스턴스 목록`,description:`요약 endpoint를 지원하는 인스턴스에서 최신 user 또는 assistant 메시지를 정리한 한 줄을 표시합니다.`},rename:{label:`이름 변경 컨트롤`,scope:`왼쪽 인스턴스 목록`,description:`대시보드 전용 인스턴스 이름을 편집하는 연필 버튼을 표시합니다.`},runtime:{label:`런타임 줄`,scope:`왼쪽 인스턴스 목록`,description:`각 인스턴스 이름 아래에 codex / gpt-5.5 같은 CLI와 모델 정보를 표시합니다.`},actions:{label:`확장 행 액션`,scope:`선택된 인스턴스 행`,description:`선택된 인스턴스 행에 Preview, Open, Start, Stop, Restart 버튼을 표시합니다.`},language:{label:`언어`,scope:`전체 Jaw UI`,description:`i18n을 지원하는 매니저 대시보드 화면에 사용할 언어를 저장합니다.`},shortcuts:{label:`전역 단축키`,scope:`Manager dashboard`,description:`입력창과 에디터 바깥에서만 작동하는 Manager 이동 단축키를 켭니다. Meta는 macOS에서 ⌘, Windows·Linux에서 Ctrl이고, Windows 키는 Win으로 적습니다.`},shortcutFocusInstances:{label:`인스턴스 목록`,scope:`단축키`,description:`Instances workspace로 이동합니다.`},shortcutFocusActiveSession:{label:`활성 세션`,scope:`단축키`,description:`선택된 인스턴스의 Preview 탭으로 이동합니다.`},shortcutFocusNotes:{label:`노트`,scope:`단축키`,description:`Notes workspace로 이동합니다.`},shortcutPreviousInstance:{label:`이전 인스턴스`,scope:`단축키`,description:`현재 필터 목록에서 이전 인스턴스를 선택합니다.`},shortcutToggleInstanceSettings:{label:`인스턴스 설정`,scope:`단축키`,description:`설정 패널을 열거나 닫습니다. 미리보기 iframe 안에서는 작동하지 않습니다.`},shortcutNextInstance:{label:`다음 인스턴스`,scope:`단축키`,description:`현재 필터 목록에서 다음 인스턴스를 선택합니다.`},shortcutResetSidebarWidth:{label:`사이드바 폭 리셋`,scope:`단축키`,description:`기본 300으로 되돌리고 'jaw.sidebarWidth' 키를 지운다.`},shortcutJumpInstance:{label:`인스턴스 점프`,scope:`단축키`,description:`렌더된 사이드바 행 1–9로 이동합니다. Meta+1–3는 탭 전환에 남아 있어 Alt를 씁니다.`},shortcutToggleBottomPanel:{label:`하단 패널`,scope:`단축키`,description:`하단 패널(터미널·활동)을 열거나 닫습니다.`},shortcutToggleRightPanel:{label:`오른쪽 사이드바`,scope:`단축키`,description:`오른쪽 패널을 열거나 닫고, 비어 있으면 파일 패널을 만듭니다.`},shortcutToggleLeftSidebar:{label:`왼쪽 사이드바`,scope:`단축키`,description:`왼쪽 인스턴스 사이드바를 접거나 펼칩니다.`},shortcutFocusTerminal:{label:`터미널 표시`,scope:`단축키`,description:`하단 터미널 탭을 열고 활성 터미널에 포커스합니다.`},shortcutNewTerminalSession:{label:`새 터미널 세션`,scope:`단축키`,description:`터미널 탭을 열고 새 셸 세션을 시작합니다.`},shortcutNewCodeSession:{label:`새 Code 세션`,scope:`단축키`,description:`Code 모드 사이드바에서 새 세션 초안을 시작합니다.`},shortcutTerminalNewTab:{label:`새 터미널 탭`,scope:`단축키`,description:`새 터미널 세션을 엽니다.`},shortcutTerminalClear:{label:`터미널 지우기`,scope:`단축키`,description:`포커스된 터미널 버퍼를 지웁니다.`},shortcutOpenDiff:{label:`Diff 패널`,scope:`단축키`,description:`오른쪽 diff 패널을 열거나 포커스합니다.`},shortcutOpenFolderTree:{label:`폴더 패널`,scope:`단축키`,description:`오른쪽 파일 트리 패널을 열거나 포커스합니다.`},shortcutCloseFocusedTab:{label:`포커스된 탭 닫기`,scope:`단축키`,description:`브라우저, 터미널, 패널 중 포커스된 탭을 닫습니다.`},shortcutSwitchTab1:{label:`Overview 탭`,scope:`단축키`,description:`인스턴스 Overview 탭으로 전환합니다.`},shortcutSwitchTab2:{label:`Preview 탭`,scope:`단축키`,description:`인스턴스 Preview 탭으로 전환합니다.`},shortcutSwitchTab3:{label:`Logs 탭`,scope:`단축키`,description:`인스턴스 Logs 탭으로 전환합니다.`},shortcutPreviousTab:{label:`이전 탭`,scope:`단축키`,description:`이전 인스턴스 상세 탭으로 전환합니다.`},shortcutNextTab:{label:`다음 탭`,scope:`단축키`,description:`다음 인스턴스 상세 탭으로 전환합니다.`},shortcutBrowserReload:{label:`새로고침`,scope:`단축키`,description:`포커스 위치에 따라 브라우저, 프리뷰, 앱 창을 새로고침합니다.`},shortcutBrowserHardReload:{label:`강력 새로고침`,scope:`단축키`,description:`캐시를 무시하고 다시 로드합니다.`},shortcutBrowserFocusUrl:{label:`URL 바 포커스`,scope:`단축키`,description:`브라우저 패널의 주소창에 포커스합니다.`},shortcutBrowserBack:{label:`브라우저 뒤로`,scope:`단축키`,description:`브라우저 패널에서 이전 페이지로 이동합니다.`},shortcutBrowserForward:{label:`브라우저 앞으로`,scope:`단축키`,description:`브라우저 패널에서 다음 페이지로 이동합니다.`}},support:{ariaLabel:`작업 제목 출처 준비 상태`,ready:`준비됨`,legacy:`레거시 endpoint`,offline:`오프라인`,empty:`현재 표시할 인스턴스가 없습니다.`,restart:`최근 작업 제목을 사용하려면 레거시 인스턴스를 재시작하세요.`}},en:{ariaLabel:`Dashboard settings`,eyebrow:`Manager preferences`,title:`Dashboard settings`,displayTitle:`Instance list display`,displayDescription:`These controls only affect the left instance list and saved manager UI preferences.`,activityTitle:`Preview & activity`,activityDescription:`Latest activity titles depend on each instance server endpoint version.`,embeddingTitle:`Embedding search`,embeddingDescription:`Configure a vector embedding provider and manage the memory index.`,fields:{activity:{label:`Recent activity preview`,scope:`Left instance list`,description:`Show one cleaned line from the latest user or assistant message when the instance supports the summary endpoint.`},rename:{label:`Rename control`,scope:`Left instance list`,description:`Show the pencil button for editing the dashboard-only instance label.`},runtime:{label:`Runtime line`,scope:`Left instance list`,description:`Show CLI and model text, for example codex / gpt-5.5, under each instance label.`},actions:{label:`Expanded row actions`,scope:`Selected instance row`,description:`Show Preview, Open, Start, Stop, and Restart buttons on the selected instance row.`},language:{label:`Language`,scope:`Global Jaw UI`,description:`Sets the saved manager dashboard locale for i18n-aware surfaces.`},shortcuts:{label:`Global shortcuts`,scope:`Manager dashboard`,description:`Enable Manager navigation shortcuts outside inputs and editors. Meta means ⌘ on macOS and Ctrl on Windows/Linux; write Win for the Windows key.`},shortcutFocusInstances:{label:`Instance list`,scope:`Shortcut`,description:`Move to the Instances workspace.`},shortcutFocusActiveSession:{label:`Active session`,scope:`Shortcut`,description:`Move to the selected instance Preview tab.`},shortcutFocusNotes:{label:`Notes`,scope:`Shortcut`,description:`Move to the Notes workspace.`},shortcutPreviousInstance:{label:`Previous instance`,scope:`Shortcut`,description:`Select the previous instance in the current filtered list.`},shortcutToggleInstanceSettings:{label:`Instance settings`,scope:`Shortcut`,description:`Open or close the settings panel in the Manager document; unavailable inside the preview iframe.`},shortcutNextInstance:{label:`Next instance`,scope:`Shortcut`,description:`Select the next instance in the current filtered list.`},shortcutResetSidebarWidth:{label:`Reset sidebar width`,scope:`Shortcut`,description:`Restore the default 300px width and delete the 'jaw.sidebarWidth' key.`},shortcutJumpInstance:{label:`Jump to instance`,scope:`Shortcut`,description:`Jump to rendered sidebar rows 1–9. Meta+1–3 stay on tab switching, so these use Alt.`},shortcutToggleBottomPanel:{label:`Bottom panel`,scope:`Shortcut`,description:`Open or close the bottom panel (terminal and activity).`},shortcutToggleRightPanel:{label:`Right sidebar`,scope:`Shortcut`,description:`Open or close the right panel; creates a files panel when empty.`},shortcutToggleLeftSidebar:{label:`Left sidebar`,scope:`Shortcut`,description:`Collapse or expand the left instance sidebar.`},shortcutFocusTerminal:{label:`Reveal terminal`,scope:`Shortcut`,description:`Open the bottom terminal tab and focus the active terminal.`},shortcutNewTerminalSession:{label:`New terminal session`,scope:`Shortcut`,description:`Open the terminal tab and start a new shell session.`},shortcutNewCodeSession:{label:`New Code session`,scope:`Shortcut`,description:`Start a new session draft in Code mode.`},shortcutTerminalNewTab:{label:`New terminal tab`,scope:`Shortcut`,description:`Open a new terminal session.`},shortcutTerminalClear:{label:`Clear terminal`,scope:`Shortcut`,description:`Clear the focused terminal buffer.`},shortcutOpenDiff:{label:`Diff panel`,scope:`Shortcut`,description:`Open or focus the right diff panel.`},shortcutOpenFolderTree:{label:`Folder panel`,scope:`Shortcut`,description:`Open or focus the right file tree panel.`},shortcutCloseFocusedTab:{label:`Close focused tab`,scope:`Shortcut`,description:`Close the focused browser, terminal, or panel tab.`},shortcutSwitchTab1:{label:`Overview tab`,scope:`Shortcut`,description:`Switch to the instance Overview tab.`},shortcutSwitchTab2:{label:`Preview tab`,scope:`Shortcut`,description:`Switch to the instance Preview tab.`},shortcutSwitchTab3:{label:`Logs tab`,scope:`Shortcut`,description:`Switch to the instance Logs tab.`},shortcutPreviousTab:{label:`Previous tab`,scope:`Shortcut`,description:`Switch to the previous instance detail tab.`},shortcutNextTab:{label:`Next tab`,scope:`Shortcut`,description:`Switch to the next instance detail tab.`},shortcutBrowserReload:{label:`Reload`,scope:`Shortcut`,description:`Reload the browser, preview, or app window depending on focus.`},shortcutBrowserHardReload:{label:`Hard reload`,scope:`Shortcut`,description:`Reload bypassing the cache.`},shortcutBrowserFocusUrl:{label:`Focus URL bar`,scope:`Shortcut`,description:`Focus the address field in the browser panel.`},shortcutBrowserBack:{label:`Browser back`,scope:`Shortcut`,description:`Navigate back in the browser panel.`},shortcutBrowserForward:{label:`Browser forward`,scope:`Shortcut`,description:`Navigate forward in the browser panel.`}},support:{ariaLabel:`Activity title source readiness`,ready:`Ready`,legacy:`Legacy endpoint`,offline:`Offline`,empty:`No instances are currently visible.`,restart:`Restart legacy instances to enable latest activity titles.`}},zh:{ariaLabel:`仪表盘设置`,eyebrow:`管理器偏好`,title:`仪表盘设置`,displayTitle:`实例列表显示`,displayDescription:`这些设置只影响左侧实例列表与已保存的管理器界面偏好。`,activityTitle:`预览与活动`,activityDescription:`最近活动标题取决于各实例服务器的 endpoint 版本。`,embeddingTitle:`嵌入搜索`,embeddingDescription:`向量嵌入 Provider 设置与内存索引管理。`,fields:{activity:{label:`最近活动预览`,scope:`左侧实例列表`,description:`当实例支持摘要 endpoint 时,显示最近一条 user 或 assistant 消息整理后的单行内容。`},rename:{label:`重命名控件`,scope:`左侧实例列表`,description:`显示用于编辑仪表盘内实例标签的铅笔按钮。`},runtime:{label:`运行时信息行`,scope:`左侧实例列表`,description:`在每个实例标签下方显示 CLI 与模型信息,例如 codex / gpt-5.5。`},actions:{label:`展开行操作`,scope:`已选中的实例行`,description:`在已选中的实例行上显示 Preview、Open、Start、Stop、Restart 按钮。`},language:{label:`语言`,scope:`整个 Jaw 界面`,description:`为支持 i18n 的管理器仪表盘界面设置已保存的语言。`},shortcuts:{label:`全局快捷键`,scope:`Manager dashboard`,description:`在输入框和编辑器外启用 Manager 导航快捷键。Meta 在 macOS 上是 ⌘,在 Windows/Linux 上是 Ctrl;Windows 键请写作 Win。`},shortcutFocusInstances:{label:`实例列表`,scope:`快捷键`,description:`切换到 Instances 工作区。`},shortcutFocusActiveSession:{label:`活动会话`,scope:`快捷键`,description:`切换到已选实例的 Preview 标签。`},shortcutFocusNotes:{label:`Notes`,scope:`快捷键`,description:`切换到 Notes 工作区。`},shortcutPreviousInstance:{label:`上一个实例`,scope:`快捷键`,description:`选择当前筛选列表中的上一个实例。`},shortcutToggleInstanceSettings:{label:`实例设置`,scope:`快捷键`,description:`打开或关闭设置面板;在预览 iframe 内不可用。`},shortcutNextInstance:{label:`下一个实例`,scope:`快捷键`,description:`选择当前筛选列表中的下一个实例。`},shortcutResetSidebarWidth:{label:`重置侧边栏宽度`,scope:`快捷键`,description:`恢复默认 300px 宽度并删除 'jaw.sidebarWidth' 键。`},shortcutJumpInstance:{label:`跳转到实例`,scope:`快捷键`,description:`跳转到已渲染的侧边栏第 1–9 行。Meta+1–3 仍用于切换标签,因此这里使用 Alt。`},shortcutToggleBottomPanel:{label:`底部面板`,scope:`快捷键`,description:`打开或关闭底部面板(终端与活动)。`},shortcutToggleRightPanel:{label:`右侧栏`,scope:`快捷键`,description:`打开或关闭右侧面板;为空时创建文件面板。`},shortcutToggleLeftSidebar:{label:`左侧栏`,scope:`快捷键`,description:`折叠或展开左侧实例侧栏。`},shortcutFocusTerminal:{label:`显示终端`,scope:`快捷键`,description:`打开底部终端标签并聚焦活动终端。`},shortcutNewTerminalSession:{label:`新终端会话`,scope:`快捷键`,description:`打开终端标签并启动新的 Shell 会话。`},shortcutNewCodeSession:{label:`新 Code 会话`,scope:`快捷键`,description:`在 Code 模式侧边栏中开始新的会话草稿。`},shortcutTerminalNewTab:{label:`新终端标签`,scope:`快捷键`,description:`打开新的终端会话。`},shortcutTerminalClear:{label:`清空终端`,scope:`快捷键`,description:`清空当前聚焦的终端缓冲区。`},shortcutOpenDiff:{label:`Diff 面板`,scope:`快捷键`,description:`打开或聚焦右侧 diff 面板。`},shortcutOpenFolderTree:{label:`文件夹面板`,scope:`快捷键`,description:`打开或聚焦右侧文件树面板。`},shortcutCloseFocusedTab:{label:`关闭焦点标签`,scope:`快捷键`,description:`关闭当前聚焦的浏览器、终端或面板标签。`},shortcutSwitchTab1:{label:`Overview 标签`,scope:`快捷键`,description:`切换到实例 Overview 标签。`},shortcutSwitchTab2:{label:`Preview 标签`,scope:`快捷键`,description:`切换到实例 Preview 标签。`},shortcutSwitchTab3:{label:`Logs 标签`,scope:`快捷键`,description:`切换到实例 Logs 标签。`},shortcutPreviousTab:{label:`上一个标签`,scope:`快捷键`,description:`切换到上一个实例详情标签。`},shortcutNextTab:{label:`下一个标签`,scope:`快捷键`,description:`切换到下一个实例详情标签。`},shortcutBrowserReload:{label:`重新加载`,scope:`快捷键`,description:`根据焦点位置重新加载浏览器、预览或应用窗口。`},shortcutBrowserHardReload:{label:`强制重新加载`,scope:`快捷键`,description:`忽略缓存重新加载。`},shortcutBrowserFocusUrl:{label:`聚焦 URL 栏`,scope:`快捷键`,description:`聚焦浏览器面板的地址栏。`},shortcutBrowserBack:{label:`浏览器后退`,scope:`快捷键`,description:`在浏览器面板中后退一页。`},shortcutBrowserForward:{label:`浏览器前进`,scope:`快捷键`,description:`在浏览器面板中前进一页。`}},support:{ariaLabel:`活动标题来源就绪状态`,ready:`就绪`,legacy:`旧版 endpoint`,offline:`离线`,empty:`当前没有可显示的实例。`,restart:`请重启旧版实例以启用最近活动标题。`}},ja:{ariaLabel:`ダッシュボード設定`,eyebrow:`マネージャー環境設定`,title:`ダッシュボード設定`,displayTitle:`インスタンス一覧の表示`,displayDescription:`これらの設定は左側のインスタンス一覧と保存済みのマネージャー UI 設定にのみ反映されます。`,activityTitle:`プレビューとアクティビティ`,activityDescription:`最近のアクティビティタイトルは各インスタンスサーバーの endpoint バージョンによって変わります。`,embeddingTitle:`エンベディング検索`,embeddingDescription:`ベクトルエンベディング Provider の設定とメモリインデックスの管理。`,fields:{activity:{label:`最近のアクティビティのプレビュー`,scope:`左側のインスタンス一覧`,description:`サマリ endpoint をサポートするインスタンスでは、直近の user または assistant メッセージを整形した 1 行を表示します。`},rename:{label:`名前変更コントロール`,scope:`左側のインスタンス一覧`,description:`ダッシュボード専用のインスタンス表示名を編集する鉛筆ボタンを表示します。`},runtime:{label:`ランタイム行`,scope:`左側のインスタンス一覧`,description:`各インスタンス名の下に codex / gpt-5.5 のような CLI とモデル情報を表示します。`},actions:{label:`展開行アクション`,scope:`選択中のインスタンス行`,description:`選択中のインスタンス行に Preview、Open、Start、Stop、Restart のボタンを表示します。`},language:{label:`言語`,scope:`Jaw UI 全体`,description:`i18n 対応のマネージャーダッシュボード画面で使用する言語を保存します。`},shortcuts:{label:`グローバルショートカット`,scope:`Manager dashboard`,description:`入力欄とエディタ外で Manager ナビゲーションショートカットを有効にします。Meta は macOS では ⌘、Windows/Linux では Ctrl です。Windows キーは Win と書きます。`},shortcutFocusInstances:{label:`インスタンス一覧`,scope:`ショートカット`,description:`Instances ワークスペースへ移動します。`},shortcutFocusActiveSession:{label:`アクティブセッション`,scope:`ショートカット`,description:`選択中インスタンスの Preview タブへ移動します。`},shortcutFocusNotes:{label:`Notes`,scope:`ショートカット`,description:`Notes ワークスペースへ移動します。`},shortcutPreviousInstance:{label:`前のインスタンス`,scope:`ショートカット`,description:`現在のフィルタ一覧で前のインスタンスを選択します。`},shortcutToggleInstanceSettings:{label:`インスタンス設定`,scope:`ショートカット`,description:`設定パネルを開閉します。プレビュー iframe 内では使えません。`},shortcutNextInstance:{label:`次のインスタンス`,scope:`ショートカット`,description:`現在のフィルタ一覧で次のインスタンスを選択します。`},shortcutResetSidebarWidth:{label:`サイドバー幅をリセット`,scope:`ショートカット`,description:`既定の 300px に戻し、'jaw.sidebarWidth' キーを削除します。`},shortcutJumpInstance:{label:`インスタンスへジャンプ`,scope:`ショートカット`,description:`描画済みサイドバー行 1–9 へ移動します。Meta+1–3 はタブ切替のままなので Alt を使います。`},shortcutToggleBottomPanel:{label:`ボトムパネル`,scope:`ショートカット`,description:`ボトムパネル(ターミナル・アクティビティ)を開閉します。`},shortcutToggleRightPanel:{label:`右サイドバー`,scope:`ショートカット`,description:`右パネルを開閉し、空の場合はファイルパネルを作成します。`},shortcutToggleLeftSidebar:{label:`左サイドバー`,scope:`ショートカット`,description:`左のインスタンスサイドバーを折りたたみ/展開します。`},shortcutFocusTerminal:{label:`ターミナルを表示`,scope:`ショートカット`,description:`ボトムのターミナルタブを開き、アクティブなターミナルにフォーカスします。`},shortcutNewTerminalSession:{label:`新しいターミナルセッション`,scope:`ショートカット`,description:`ターミナルタブを開き、新しいシェルセッションを開始します。`},shortcutNewCodeSession:{label:`新しい Code セッション`,scope:`ショートカット`,description:`Code モードのサイドバーで新しいセッションの下書きを開始します。`},shortcutTerminalNewTab:{label:`新しいターミナルタブ`,scope:`ショートカット`,description:`新しいターミナルセッションを開きます。`},shortcutTerminalClear:{label:`ターミナルをクリア`,scope:`ショートカット`,description:`フォーカス中のターミナルバッファをクリアします。`},shortcutOpenDiff:{label:`Diff パネル`,scope:`ショートカット`,description:`右の diff パネルを開くかフォーカスします。`},shortcutOpenFolderTree:{label:`フォルダーパネル`,scope:`ショートカット`,description:`右のファイルツリーパネルを開くかフォーカスします。`},shortcutCloseFocusedTab:{label:`フォーカス中のタブを閉じる`,scope:`ショートカット`,description:`フォーカスされているブラウザ、ターミナル、パネルのタブを閉じます。`},shortcutSwitchTab1:{label:`Overview タブ`,scope:`ショートカット`,description:`インスタンスの Overview タブに切り替えます。`},shortcutSwitchTab2:{label:`Preview タブ`,scope:`ショートカット`,description:`インスタンスの Preview タブに切り替えます。`},shortcutSwitchTab3:{label:`Logs タブ`,scope:`ショートカット`,description:`インスタンスの Logs タブに切り替えます。`},shortcutPreviousTab:{label:`前のタブ`,scope:`ショートカット`,description:`前のインスタンス詳細タブに切り替えます。`},shortcutNextTab:{label:`次のタブ`,scope:`ショートカット`,description:`次のインスタンス詳細タブに切り替えます。`},shortcutBrowserReload:{label:`再読み込み`,scope:`ショートカット`,description:`フォーカス位置に応じてブラウザ、プレビュー、アプリウィンドウを再読み込みします。`},shortcutBrowserHardReload:{label:`強制再読み込み`,scope:`ショートカット`,description:`キャッシュを無視して再読み込みします。`},shortcutBrowserFocusUrl:{label:`URL バーにフォーカス`,scope:`ショートカット`,description:`ブラウザパネルのアドレスバーにフォーカスします。`},shortcutBrowserBack:{label:`ブラウザの戻る`,scope:`ショートカット`,description:`ブラウザパネルで前のページに戻ります。`},shortcutBrowserForward:{label:`ブラウザの進む`,scope:`ショートカット`,description:`ブラウザパネルで次のページに進みます。`}},support:{ariaLabel:`アクティビティタイトル取得元の準備状態`,ready:`準備完了`,legacy:`旧 endpoint`,offline:`オフライン`,empty:`現在表示できるインスタンスはありません。`,restart:`最新のアクティビティタイトルを使うには、旧バージョンのインスタンスを再起動してください。`}}};function c(e){return(0,i.jsxs)(`label`,{className:`settings-field`,htmlFor:e.id,children:[(0,i.jsx)(`span`,{className:`settings-field-label`,children:e.label}),e.children,(0,i.jsxs)(`span`,{className:`settings-field-description`,children:[(0,i.jsx)(`span`,{className:`dashboard-settings-row-scope`,children:e.scope}),` `,e.description]})]})}function l(e){return(0,i.jsx)(c,{id:e.id,label:e.label,scope:e.scope,description:e.description,children:(0,i.jsx)(`input`,{id:e.id,type:`checkbox`,checked:e.value,onChange:t=>e.onChange(t.currentTarget.checked)})})}function u(e){return(0,i.jsx)(c,{id:e.id,label:e.label,scope:e.scope,description:e.description,children:(0,i.jsx)(`select`,{id:e.id,value:e.value,onChange:t=>e.onChange(o(t.currentTarget.value)),children:e.options.map(e=>(0,i.jsx)(`option`,{value:e.value,children:e.label},e.value))})})}function d(e){return(0,i.jsx)(c,{id:`dashboard-shortcut-${e.action}`,label:e.label,scope:e.scope,description:e.description,children:(0,i.jsx)(`input`,{id:`dashboard-shortcut-${e.action}`,type:`text`,className:`dashboard-settings-shortcut-input`,value:e.value,"aria-label":`${e.label} shortcut`,placeholder:`Alt+I`,onChange:t=>e.onChange(e.action,t.currentTarget.value)})})}var f={toggleInstanceSettings:`shortcutToggleInstanceSettings`,focusInstances:`shortcutFocusInstances`,focusActiveSession:`shortcutFocusActiveSession`,focusNotes:`shortcutFocusNotes`,previousInstance:`shortcutPreviousInstance`,nextInstance:`shortcutNextInstance`,toggleBottomPanel:`shortcutToggleBottomPanel`,toggleRightPanel:`shortcutToggleRightPanel`,toggleLeftSidebar:`shortcutToggleLeftSidebar`,focusTerminal:`shortcutFocusTerminal`,newTerminalSession:`shortcutNewTerminalSession`,newCodeSession:`shortcutNewCodeSession`,terminalNewTab:`shortcutTerminalNewTab`,terminalClear:`shortcutTerminalClear`,openDiff:`shortcutOpenDiff`,openFolderTree:`shortcutOpenFolderTree`,closeFocusedTab:`shortcutCloseFocusedTab`,switchTab1:`shortcutSwitchTab1`,switchTab2:`shortcutSwitchTab2`,switchTab3:`shortcutSwitchTab3`,previousTab:`shortcutPreviousTab`,nextTab:`shortcutNextTab`,browserReload:`shortcutBrowserReload`,browserHardReload:`shortcutBrowserHardReload`,browserFocusUrl:`shortcutBrowserFocusUrl`,browserBack:`shortcutBrowserBack`,browserForward:`shortcutBrowserForward`,resetSidebarWidth:`shortcutResetSidebarWidth`,jumpInstance1:`shortcutJumpInstance`,jumpInstance2:`shortcutJumpInstance`,jumpInstance3:`shortcutJumpInstance`,jumpInstance4:`shortcutJumpInstance`,jumpInstance5:`shortcutJumpInstance`,jumpInstance6:`shortcutJumpInstance`,jumpInstance7:`shortcutJumpInstance`,jumpInstance8:`shortcutJumpInstance`,jumpInstance9:`shortcutJumpInstance`};function p(e){return f[e]}function m({support:e,locale:a}){let o=e.ready+e.legacy+e.offline,c=s[a].support;return(0,i.jsxs)(`div`,{role:`group`,"aria-label":c.ariaLabel,children:[(0,i.jsx)(t,{items:[{label:c.ready,value:(0,i.jsx)(n,{tone:`ok`,children:e.ready})},{label:c.legacy,value:(0,i.jsx)(n,{tone:`warn`,children:e.legacy})},{label:c.offline,value:(0,i.jsx)(n,{tone:`neutral`,children:e.offline})}]}),(0,i.jsx)(r,{children:o===0?c.empty:c.restart})]})}export{a,p as c,d as i,u as n,m as o,l as r,o as s,s as t};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-render-DSSkXCir.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./state-Dl-xxPoS.js";import{i as t,t as n}from"./api-CUtiCd2-.js";import{n as r,t as i}from"./bounded-api-DdpT93LB.js";import{t as a}from"./preload-helper-CfbQpVni.js";import{O as o,P as s,f as c,g as l,j as u,n as d}from"./render-
|
|
2
|
+
import{t as e}from"./state-Dl-xxPoS.js";import{i as t,t as n}from"./api-CUtiCd2-.js";import{n as r,t as i}from"./bounded-api-DdpT93LB.js";import{t as a}from"./preload-helper-CfbQpVni.js";import{O as o,P as s,f as c,g as l,j as u,n as d}from"./render-DfYro-fG.js";import{t as f}from"./icons-CVkqyECl.js";import{t as p}from"./copy-text-DjgetgoZ.js";import{_ as m,g as h,p as g}from"./iframe-renderer-DmHYOI1A.js";import{A as _,C as v,D as y,E as b,F as x,H as S,I as C,M as w,N as T,O as ee,S as te,T as ne,U as E,_ as re,b as ie,d as D,f as ae,g as O,h as k,j as oe,k as se,m as ce,p as le,u as ue,v as de,w as A,x as j,y as M}from"./message-history-DcjBuubA.js";import{n as N}from"./presentation-DWHWElFr.js";import{a as P,d as fe,f as F,i as pe,l as I,n as me,r as he,s as ge,t as _e,u as ve}from"./ui-D8xzm7DN.js";var L=null,ye=0,be=[],xe=2e3,Se=3e4,Ce=1.5,we=null,Te=4e4,Ee=1e4,De=0,Oe=!1,ke=null,Ae=null;function je(e){Ae=e}function Me(){let e=null;try{e=Ae?.()??null}catch{e=null}return e?`&scope=${encodeURIComponent(e)}`:``}function Ne(){ke||=setInterval(()=>{L&&Fe&&Oe&&(Date.now()-De<=Te||(console.warn(`[sse] stalled channel (no ping in`,Te,`ms) — forcing reconnect`),L.close(),L=null,Fe=!1,Ve?.(),Ye(Pe)))},Ee)}var Pe=``,Fe=!1,Ie=!1,Le=!1,Re=!1,ze=!1,Be=null,Ve=null,He=null;function Ue(e){Be=e}function We(e){Ve=e}function Ge(e){He=e}function Ke(e,t,n){let r={topic:e,event:t,handler:n};return be.push(r),()=>{let e=be.indexOf(r);e>=0&&be.splice(e,1)}}function qe(e,t,n){for(let r of be)if((r.topic===`*`||r.topic===e)&&(r.event===null||r.event===t))try{r.handler(n)}catch(e){console.warn(`[sse] handler error:`,e.message)}}function Je(){Ie||we||(we=setTimeout(()=>{we=null,Ye(Pe)},xe),xe=Math.min(xe*Ce,Se))}function Ye(e){Pe=e,Ie=!1,we&&=(clearTimeout(we),null),L&&L.close();let t=`${n}/api/events?lang=${encodeURIComponent(e)}`+Me()+(ye?`&lastEventId=${ye}`:``);Re=!1,ze=!1,L=new EventSource(t),Ne(),L.onopen=()=>{xe=2e3,Fe=!0,Le=!0,Re=!0,De=Date.now(),Be?.()},L.onerror=()=>{if(L?.close(),L=null,!Re&&!Le&&He){ze||(ze=!0,He());return}Fe&&(Fe=!1,Ve?.()),Je()},L.onmessage=e=>{ye=parseInt(e.lastEventId||`0`,10)||ye;let t;try{t=JSON.parse(e.data)}catch{console.warn(`[sse] malformed message:`,e.data);return}if(!t||typeof t!=`object`||typeof t.topic!=`string`||typeof t.event!=`string`){console.warn(`[sse] invalid message shape:`,t);return}if(De=Date.now(),t.topic===`system`&&t.event===`ping`){Oe=!0;return}qe(t.topic,t.event,t)}}var Xe=3e3,R=new Map,z=[],Ze=(e,t)=>`${e}:${t}`;function Qe(e=[]){let t=document.getElementById(`pendingQueue`);if(t){if(z=e.slice(),!e.length){it(new Set),t.classList.remove(`visible`),t.innerHTML=``;return}t.classList.add(`visible`),t.innerHTML=`
|
|
3
3
|
<div class="pending-queue-header">
|
|
4
4
|
<span class="pending-queue-title">${f.hourglass} <span data-i18n="queue.pendingTitle">${o(s(`queue.pendingTitle`))}</span> <span class="pending-queue-count">${e.length}</span></span>
|
|
5
5
|
</div>
|
|
@@ -12,7 +12,7 @@ import{t as e}from"./state-Dl-xxPoS.js";import{i as t,t as n}from"./api-CUtiCd2-
|
|
|
12
12
|
<button class="pending-row-btn pending-row-copy" data-pending-action="copy" title="${i}" aria-label="${i}"><span class="pending-btn-content">${f.copy}</span></button>
|
|
13
13
|
<button class="pending-row-btn pending-row-steer" data-pending-action="steer" data-i18n-title="queue.steer" title="${a}" aria-label="${a}"><span class="pending-arm-fill" aria-hidden="true"></span><span class="pending-btn-content"><span class="pending-steer-arrow" aria-hidden="true">↳</span><span class="pending-steer-label">${a}</span></span></button>
|
|
14
14
|
<button class="pending-row-btn pending-row-delete" data-pending-action="delete" data-i18n-title="queue.delete" title="${c}" aria-label="${c}"><span class="pending-arm-fill" aria-hidden="true"></span><span class="pending-btn-content">${f.trash}</span></button>
|
|
15
|
-
</div>`}function et(e,t){let n=document.querySelector(`.pending-row[data-pending-id="${CSS.escape(e)}"]`);return n?n.querySelector(`[data-pending-action="${t}"]`):null}function tt(e,t){let n=et(e,t);if(!n)return;n.classList.add(`armed`),n.setAttribute(`title`,s(`queue.cancelArm`));let r=n.querySelector(`.pending-arm-fill`);r&&(r.style.animation=`none`,r.offsetWidth,r.style.animation=``)}function nt(e,t){let n=et(e,t);n&&(n.classList.remove(`armed`),n.setAttribute(`title`,s(t===`steer`?`queue.steer`:`queue.delete`)))}function rt(){for(let e of R.values()){let t=et(e.id,e.action);t&&(t.classList.add(`armed`),t.setAttribute(`title`,s(`queue.cancelArm`)))}}function it(e){for(let[t,n]of R)e.has(n.id)||(clearTimeout(n.timerId),R.delete(t))}function at(e,n){let r=Ze(e,n),i=setTimeout(()=>st(e,n),Xe);R.set(r,{id:e,action:n,timerId:i}),tt(e,n),n===`steer`&&t(`/api/orchestrate/queue/${encodeURIComponent(e)}/hold`,`POST`,{}).catch(()=>{})}function ot(e,n){let r=Ze(e,n),i=R.get(r);i&&(clearTimeout(i.timerId),R.delete(r),nt(e,n),n===`steer`&&t(`/api/orchestrate/queue/${encodeURIComponent(e)}/hold`,`DELETE`,{}).catch(()=>{}))}async function st(e,n){R.delete(Ze(e,n));let r=n===`steer`?`/api/orchestrate/queue/${encodeURIComponent(e)}/steer`:`/api/orchestrate/queue/${encodeURIComponent(e)}`,i=n===`steer`?`POST`:`DELETE`;if(n===`steer`&&x(`running`),await t(r,i,{})==null){z=z.filter(t=>t.id!==e),Qe(z),n===`steer`&&Z(`steer-fire-miss`).catch(()=>{});return}z=z.filter(t=>t.id!==e),Qe(z)}function ct(e,t){if(R.has(Ze(e,t))){ot(e,t);return}at(e,t)}function lt(){let e=document.getElementById(`pendingQueue`);e&&e.addEventListener(`click`,async e=>{let t=e.target?.closest(`[data-pending-action]`);if(!t)return;let n=t.closest(`.pending-row`)?.dataset.pendingId;if(!n)return;let r=t.dataset.pendingAction;if(r===`copy`){let e=z.find(e=>e.id===n);if(e?.prompt&&(await p(e.prompt)).ok){let e=t.querySelector(`.pending-btn-content`);e&&(e.innerHTML=f.checkSimple,setTimeout(()=>{e.innerHTML=f.copy},600))}return}ct(n,r===`steer`?`steer`:`delete`)})}var ut=800,dt=64,ft=`CLI-JAW`,pt=`/icons/favicon-32.png`,mt=`#22d3ee`,ht=!1,B=0,gt=ft,V=null,_t=``,vt=!1,yt=0,bt=null;function xt(){return navigator}function St(){return document.visibilityState!==`visible`||!document.hasFocus()}function Ct(e){return e-yt<ut}function wt(){if(V)return V;let e=document.querySelector(`link[rel~="icon"]`);if(e)return V=e,_t=e.href||e.getAttribute(`href`)||``,e;let t=document.createElement(`link`);return t.rel=`icon`,document.head.appendChild(t),V=t,vt=!0,t}function Tt(){if(bt)return;let e=new Image;e.addEventListener(`load`,()=>{B>0&&kt()}),e.src=pt,bt=e}function Et(e){let t=document.createElement(`canvas`);t.width=dt,t.height=dt;let n=t.getContext(`2d`);return n?(n.clearRect(0,0,dt,dt),bt&&bt.complete&&bt.naturalWidth>0?n.drawImage(bt,2,6,52,52):(n.beginPath(),n.arc(28,32,26,0,Math.PI*2),n.fillStyle=mt,n.fill()),n.beginPath(),n.arc(50,15,e>1?12:9,0,Math.PI*2),n.fillStyle=`#ff335f`,n.fill(),n.lineWidth=4,n.strokeStyle=`#ffffff`,n.stroke(),e>1&&(n.fillStyle=`#ffffff`,n.font=`bold 15px sans-serif`,n.textAlign=`center`,n.textBaseline=`middle`,n.fillText(String(Math.min(e,9)),50,16)),t.toDataURL(`image/png`)):_t}async function Dt(e){let t=xt();if(typeof t.setAppBadge==`function`)try{await t.setAppBadge(e)}catch{}}async function Ot(){let e=xt();if(typeof e.clearAppBadge==`function`)try{await e.clearAppBadge()}catch{}}function kt(){document.title=`(${B}) ${gt}`;let e=wt();e&&(e.href=Et(B)),Dt(B)}function At(){document.title=gt}function jt(){if(V){if(vt){V.remove(),V=null,vt=!1;return}V.href=_t}}function Mt(){ht||(ht=!0,gt=document.title||ft,wt(),Tt(),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&Pt()}),window.addEventListener(`focus`,()=>Pt()))}function Nt(){if(!ht||!St())return;let e=Date.now();Ct(e)||(yt=e,B+=1,kt())}function Pt(){ht&&B!==0&&(B=0,yt=0,At(),jt(),Ot())}function Ft(e,t){return!e||!t||e===`all`||e===t}function It(e){let t=N(e);return!t||e.version!==1?null:{version:1,...t}}var Lt=6291456,Rt=e=>typeof e==`object`&&!!e&&!Array.isArray(e),H=e=>typeof e==`string`&&e.length>0&&e.length<=240;function zt(e){let{runId:t,sessionId:n,scope:r,turnId:i,requestId:a,requestType:o,expiresAt:s}=e;if(!H(t)||!H(n)||!H(r)||!H(i)||!H(a)||o!==`approval`&&o!==`question`||typeof s!=`number`||!Number.isSafeInteger(s))return null;let c=de(e.view);return c?{runId:t,sessionId:n,scope:r,turnId:i,requestId:a,requestType:o,expiresAt:s,view:c}:null}function Bt(e){return JSON.stringify([e.runId,e.sessionId,e.scope,e.turnId,e.requestId,e.requestType,e.view])}function Vt(e){let t=e.view.fields;return t.length>0&&(e.requestType===`approval`?t.length===1&&!t[0].multiSelect&&!t[0].allowFreeform&&t[0].options.length>0:t.every(e=>e.options.length>0||e.allowFreeform))}function Ht(e,t,n={}){let a={...t},o=e.ownerDocument,s=o.createElement(`section`);s.className=`native-requests`,s.hidden=!0,s.setAttribute(`aria-label`,`Live runtime requests`);let c=o.createElement(`p`);c.className=`native-request-status`;let l=o.createElement(`p`);l.className=`native-request-announcer`,l.setAttribute(`role`,`status`),l.setAttribute(`aria-live`,`polite`),l.setAttribute(`aria-atomic`,`true`);let u=o.createElement(`h2`);u.className=`native-request-title`;let d=o.createElement(`p`);d.className=`native-request-context`;let f=o.createElement(`div`);f.className=`native-request-controls`;let p=de(`Refresh requests`,()=>{n.onRefresh?n.onRefresh():F()});s.append(u,d,c,f,p);let m=[...e.children].find(e=>e.classList.contains(`chat-input-area`));e.insertBefore(l,m??null),e.insertBefore(s,m??null);let h=null,g=null,_=null,v,y=0,b=0,x=!1,S=!1,C=!1,w=!1,T=n.health??`healthy`,ee=0,te=!1,ne=!1,E=()=>!x&&(n.isCurrent?.()??!0),re=0,ie=null,D=null,ae=!1,O=null,k=o.defaultView,oe=()=>{ae=!0,++re,D=null},se=()=>{ae=!1},ce=e=>{s.contains(e.target)||(++re,D=null)};o.addEventListener(`focusin`,ce),k?.addEventListener(`blur`,oe),k?.addEventListener(`focus`,se);function le(){return ae?null:s.contains(o.activeElement)?re:C&&o.activeElement===o.body?ie:null}function ue(t=!0){if(D===null)return;if(ae||D!==re){D=null;return}let n=s.isConnected&&!s.hidden?f.querySelector(`input:not(:disabled), textarea:not(:disabled), button:not(:disabled)[aria-disabled="false"]`)??p:e.querySelector(`#chatInput`)??o.getElementById(`chatInput`);n?.isConnected&&!n.hasAttribute(`disabled`)&&n.focus({preventScroll:!0}),t&&!C&&(D=null)}function de(e,t){let n=o.createElement(`button`);return n.type=`button`,n.textContent=e,n.addEventListener(`click`,t),n}function A(e,t=!1){t&&(O=e);let n=(T===`healthy`?``:T===`unknown`?`Live request updates not connected. `:`Connection lost. Live request updates unavailable. `)+(te&&T!==`healthy`?`Manually refreshed; updates remain unavailable. `:``)+e;c.textContent!==n&&(c.textContent=n);let r=T===`healthy`&&e===`No pending runtime requests.`?O??e:n;l.textContent!==r&&(l.textContent=r)}function j(){f.querySelectorAll(`button`).forEach(e=>{let t=w||C||!S;e.disabled=w||C||!S&&o.activeElement!==e,e.setAttribute(`aria-disabled`,String(t))}),f.querySelectorAll(`input, textarea`).forEach(e=>{e.disabled=C}),s.setAttribute(`aria-busy`,String(C))}function M(e=le()){D=e,clearTimeout(v),v=void 0,h=null,S=!1,b++,u.textContent=``,d.textContent=``,f.replaceChildren(),ue(!1)}function N(){clearTimeout(v),h&&!w&&(v=setTimeout(()=>{if(E()){if(h&&h.expiresAt>Date.now()){N();return}M(),A(T===`healthy`?`Request expired. Checking pending requests.`:`Request expired. Refresh requests to check what is pending.`,!0),F(`auto`)}},Math.min(2147483647,Math.max(0,h.expiresAt-Date.now()))))}function P(e){u.textContent=e.view.title,d.textContent=`Execution scope: ${e.scope} · Run: ${e.runId}`;let t=e.view.fields;if(!Vt(e))return;let n=b,r=e=>{b===n&&fe(e)},i=o.createElement(`form`);i.noValidate=!0;let a=[];for(let[n,s]of t.entries()){let t=o.createElement(`fieldset`),c=o.createElement(`legend`);c.textContent=s.label,t.append(c);let l=[];for(let i of s.options)if(e.requestType===`approval`)t.append(de(i.label,()=>r({optionId:i.id})));else{let e=o.createElement(`label`),r=o.createElement(`input`);r.type=s.multiSelect?`checkbox`:`radio`,r.name=`native-question-${n}`,r.value=i.id,e.append(r,o.createTextNode(i.label)),t.append(e),l.push({id:i.id,input:r})}let u=null;if(e.requestType===`question`&&s.allowFreeform){!s.multiSelect&&l.length&&t.append(de(`Clear selection`,()=>{l.forEach(e=>{e.input.checked=!1})}));let e=o.createElement(`label`);e.append(o.createTextNode(`Other answer`)),u=o.createElement(`textarea`),u.maxLength=2e3,e.append(u),t.append(e)}if(e.requestType===`question`){let e=o.createElement(`p`);e.textContent=s.multiSelect?`Choose at least one answer.`:`Choose exactly one answer.`,t.append(e)}a.push({field:s,choices:l,text:u}),i.append(t)}if(e.requestType===`question`){let e=o.createElement(`button`);e.type=`submit`,e.textContent=`Submit answers`,i.append(e)}i.addEventListener(`submit`,t=>{if(t.preventDefault(),e.requestType!==`question`||!E()||w||C||!S||b!==n)return;let i=0,o=[];for(let{field:e,choices:t,text:n}of a){let r=t.filter(e=>e.input.checked).map(e=>e.id),a=n?.value??``,s=a.length>0,c=r.length+(s&&a.trim()?1:0);if(s&&(!e.allowFreeform||!a.trim()||a.length>2e3)||(e.multiSelect?c<1||r.length>e.options.length:c!==1)){A(`Answer every question. Choose one answer for single-choice questions; other answers must be nonblank and at most 2,000 characters.`);return}i+=a.length,o.push([e.id,{selected:r,...s?{text:a}:{}}])}if(i>8e3){A(`Keep all other answers within 8,000 characters in total.`);return}r({answers:Object.fromEntries(o)})}),i.append(de(`Cancel request`,()=>r({optionId:null}))),f.append(i)}async function fe(e){let t=h;if(!E()||w||C||!S||!t)return;if(t.expiresAt<=Date.now()){M(),A(`Request expired.`,!0),await F(`auto`);return}ie=le();let n=ie;C=!0,S=!1;let a=b,o=ee;++y,g?.abort();let s=new AbortController;_=s,O=null,j(),A(`Sending response.`);let c=`optionId`in e&&e.optionId===null?`Request cancelled.`:`Response accepted.`,l=!1;try{let n=await r(`/api/runtime/requests/`+encodeURIComponent(t.requestId),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({runId:t.runId,sessionId:t.sessionId,scope:t.scope,turnId:t.turnId,response:e})},s.signal,65536);if(!Rt(n)||n.ok!==!0||!Rt(n.data)||n.data.accepted!==!0)throw Error(`unconfirmed`);l=!0}catch(e){c=e instanceof i&&e.status===409?`Request expired or was already answered. Pending requests refreshed.`:`Response could not be confirmed. Check pending requests before trying again.`}finally{_===s&&(_=null),C=!1}if(!E())return;if(w||o!==ee){j();return}if(b!==a){j(),ue();return}l?M(n):S=!1,j(),A(c,!0);let u=y+1;await F(`auto`),!x&&!w&&S&&y===u&&!l&&h&&Bt(h)===Bt(t)&&A(c)}async function F(e=`manual`){if(!E()||e===`auto`&&T!==`healthy`)return;let t=++y;g?.abort();let n=new AbortController;g=n,S=!1,j(),!h&&!ne&&(s.hidden=!1,A(`Loading pending requests.`));try{if(!H(a.sessionId)||!H(a.scope))throw Error(`invalid_identity`);let i=await r(`/api/runtime/requests?sessionId=`+encodeURIComponent(a.sessionId),{method:`GET`},n.signal,Lt);if(!E()||t!==y||n.signal.aborted)return;if(!Rt(i)||i.ok!==!0||!Rt(i.data))throw Error(`invalid_list`);let o=i.data.requests;if(!Array.isArray(o)||o.length>128)throw Error(`invalid_list`);let c=new Set,l=null,u=null,d=!1;for(let e of o){if(!Rt(e)){d=!0;continue}if(H(e.requestId)){if(c.has(e.requestId))throw Error(`duplicate_request`);c.add(e.requestId)}if(e.sessionId!==a.sessionId)continue;let t=zt(e);if(!t){d=!0;continue}t.expiresAt<=Date.now()||(l??=t,h&&Bt(h)===Bt(t)&&(u=t))}let f=u??l;h&&!u&&A(h.expiresAt<=Date.now()?`Request expired.`:`Request is no longer pending.`,!0),u||M(),h=f,S=!0,w=!1,ne=!0,te=e===`manual`,s.hidden=!h&&!d&&T===`healthy`,h?(u||(O=null),A(Vt(h)?(O?O+` `:``)+`Runtime is waiting for your response.`:`This request cannot be answered here. Refresh requests or use Stop.`),u||P(h),N()):A(d?`This request cannot be displayed safely. Refresh requests or use Stop.`:`No pending runtime requests.`),j(),ue()}catch{if(!E()||t!==y||n.signal.aborted)return;s.hidden=!1,j(),A(`Pending requests could not be loaded. Refresh requests to retry.`)}finally{g===n&&(g=null)}}function pe(e){x||(T=e,te=!1,++ee,w=!0,S=!1,++y,g?.abort(),g=null,clearTimeout(v),v=void 0,s.hidden=!1,j(),A(`Your draft is kept. Refresh requests to check what is pending.`))}return T!==`healthy`&&pe(T),n.autoStart!==!1&&F(`auto`),{refresh:F,setStreamHealth:pe,suspend(){pe(`unavailable`)},dispose(){x||(x=!0,++y,g?.abort(),_?.abort(),M(),s.remove(),l.remove(),ue(),o.removeEventListener(`focusin`,ce),k?.removeEventListener(`blur`,oe),k?.removeEventListener(`focus`,se))}}}function Ut(t){let n=`unknown`,r=0,i=0,a=null,o=``,s=null,c=null,u=!1,d=null,f=()=>l(`/api/orchestrate/snapshot`),p=e=>a?.sessionId===e.sessionId&&a.scope===e.scope;function m(e){let n=t.host();if(n&&!s){if(!c){let e=n.ownerDocument;c=e.createElement(`section`),c.className=`native-requests`,c.setAttribute(`aria-label`,`Live runtime requests`);let t=e.createElement(`p`);t.className=`native-request-status`,t.setAttribute(`role`,`status`);let r=e.createElement(`button`);r.type=`button`,r.textContent=`Refresh requests`,r.addEventListener(`click`,()=>{_()}),c.append(t,r);let i=[...n.children].find(e=>e.classList.contains(`chat-input-area`));n.insertBefore(c,i??null)}c.querySelector(`p`).textContent=e}}function h(){s?.dispose(),s=null,a=null,e.activityIdentity=null}function g(){if(u||n!==`healthy`||!s||d?.epoch===r&&d.path===o&&(!d.panel||d.panel===s))return;u=!0;let e=r;queueMicrotask(()=>{u=!1,e===r&&n===`healthy`&&o===f()&&s?.refresh(`auto`)})}async function _(){if(d?.epoch===r&&d.path===f()&&d.panel===s)return;let e={epoch:r,path:f(),panel:s};d=e;try{(!s||o!==f())&&await t.refreshSnapshot(),e.epoch===r&&e.path===f()&&o===e.path&&(!e.panel||e.panel===s)&&await s?.refresh(`manual`)}catch{m(`Request identity could not be loaded. Refresh requests to retry.`)}finally{d===e&&(d=null)}}function v(e){n=e,++r,s?.setStreamHealth(e),m(e===`healthy`?`Loading request identity.`:`Live request updates unavailable. Refresh requests to check pending requests manually.`)}return{channelChanged(){v(`unknown`)},unavailable(){v(`unavailable`)},sseOpened(){v(`healthy`)},invalidateIdentity(){++r,++i,h(),m(`Request identity changed. Refresh requests to check this conversation.`)},beginSnapshot(){let l=f();o&&o!==l&&h();let u=r,d=++i,v=()=>u===r&&d===i&&l===f();return{path:l,isCurrent:v,accept(r){if(!v())return;let i=N(r);if(!i){h(),m(`Request identity unavailable. Refresh requests to retry.`);return}if(!p(i)){h(),a=i,o=l;let e=t.host();e&&(c?.remove(),c=null,s=Ht(e,i,{health:n,autoStart:!1,onRefresh:()=>{_()},isCurrent:()=>a===i&&o===f()}))}e.activityIdentity=i,g()},fail(){v()&&(h(),m(`Request identity could not be loaded. Refresh requests to retry.`))}}},event(e,t){if(n!==`healthy`||!a||o!==f())return;let r=e===`agent_runtime_requests_changed`?It(t):null,i=e===`agent_runtime`?re(t):null,s=typeof t==`object`&&!!t&&t.sseReplay===!0;(r&&p(r)||i&&p(i)&&(i.kind===`request`||i.kind===`request-settled`||i.kind===`turn-end`&&!s))&&g()},dispose(){++r,++i,h(),c?.remove(),c=null}}}j({currentMessage:()=>e.currentAgentDiv,useMessage:t=>{e.currentAgentDiv=t},createMessage:Wt,reconcileMessage:(e,t)=>m().reconcileMessage(e,t),replaceAnswer:fe,evicted:ae,closeTrace:()=>{a(()=>import(`./trace-drawer-DBmK-5F_.js`).then(e=>e.closeTraceDrawer()),__vite__mapDeps([0])).catch(e=>console.warn(`[activity] trace close unavailable`,e))},inspectTrace:(e,t)=>{a(()=>import(`./trace-drawer-DBmK-5F_.js`).then(n=>n.openTraceDrawer(e,void 0,t)),__vite__mapDeps([0])).catch(e=>console.warn(`[activity] trace unavailable`,e))}});function Wt(){return he(),S(`agent`,``)}var U=Ut({host:()=>document.querySelector(`.chat-area`),refreshSnapshot:()=>Z(`native-request-retry`,{hydrateRun:!0})}),W=[`I`,`P`,`A`,`B`,`C`],G=null;function Gt(e,t,n){let r=W.indexOf(n);if(r<0)return;let i=e.getBoundingClientRect(),a=t.offsetWidth||36,o=document.getElementById(`dot-${n}`);if(!o)return;let s=W[r+1],c=s?document.getElementById(`dot-${s}`):null;if(c){let e=o.getBoundingClientRect(),n=c.getBoundingClientRect(),r=(e.right+n.left)/2;t.style.transform=`translateX(${r-i.left-a/2}px)`}else{let e=o.getBoundingClientRect();t.style.transform=`translateX(${e.left-i.left+e.width/2-a/2}px)`}}var Kt={},qt=8,Jt=64,K=null,q=0,Yt=[],Xt=new Map;function Zt(e){return e!==null&&(Yt.includes(e)||A(e)||!!v(e)?.answerSource)}function Qt(e){let t=Number(e);return Number.isFinite(t)&&t>0?Math.floor(t):null}function $t(e,t){if(e&&t!=null)for(t>(Xt.get(e)||0)&&Xt.set(e,t);Xt.size>Jt;){let e=null;for(let t of Xt.keys())if(t!==K){e=t;break}if(!e)break;Xt.delete(e)}}function en(e){let t=new Map;for(let n of e?.toolLog||[]){let e=typeof n?.traceRunId==`string`&&n.traceRunId?n.traceRunId:null,r=Qt(n?.traceSeq);e&&r!=null&&r>(t.get(e)||0)&&t.set(e,r)}return t}function tn(e,t,n){return!n||!e||t==null?!1:t<=(Xt.get(e)||0)}function nn(e){++J;let t=e??K;K=null,q=0,t&&!Yt.includes(t)&&(Yt.push(t),Yt.length>qt&&Yt.shift())}function rn(e){e&&e!==K&&(++J,K=e,q=0)}function an(e){if(e?.running){typeof e.traceRunId==`string`&&e.traceRunId&&(K=e.traceRunId),q=typeof e.textLen==`number`?e.textLen:(e.text||``).length;for(let[t,n]of en(e))$t(t,n)}}var on=``,J=0,Y=!1,sn=!1,cn=0,ln=[],un=!1;function X(){Y=!1,_(!1),k(!1),K&&te(K)}function dn(){ie(),ln=[],cn=0,un=!1}function fn(t,n=`Activity preview is unavailable at its retention limit. The final answer will still appear here.`){let r=e.currentAgentDiv;if((!r||r.dataset.traceRunId!==t)&&(r=Wt(),e.currentAgentDiv=r,r.dataset.traceRunId=t),!r.querySelector(`.activity-unavailable`)){let e=r.ownerDocument.createElement(`p`);e.className=`activity-unavailable`,e.setAttribute(`role`,`status`),e.textContent=n,r.querySelector(`.agent-body`)?.prepend(e)}rn(t)}function pn(e){let t=new TextEncoder().encode(JSON.stringify(e)).length;if(ln.length>=256||cn+t>1048576){ln=[],cn=0,un=!0;return}ln.push(e),cn+=t}function mn(t){let n=e.activityIdentity;if(!Y||!n){pn({gap:t});return}t.sessionId===n.sessionId&&t.scope===n.scope&&(v(t.runId)?te(t.runId):K===t.runId&&e.currentAgentDiv&&fn(t.runId,`Activity is incomplete. Runtime updates were not recorded; the final answer remains available separately.`))}function hn(t,n=!1){let r=e.activityIdentity;if(!Y||!r){pn({event:t,replay:n});return}if(t.sessionId!==r.sessionId||t.scope!==r.scope)return;let i=v(t.runId);if(i&&i.model.identity.turnId!==t.turnId)return;let a=Zt(t.runId);if(a&&!i||!i&&K&&K!==t.runId&&(t.kind!==`turn-start`||n))return;let o;try{o=ne(t,!K||K===t.runId)??(t.kind===`turn-end`&&i?.model.end?.seq===t.seq?i:null)}catch(e){if(!(e instanceof M))throw e;!n&&(!K||K===t.runId||t.kind===`turn-start`)&&fn(t.runId);return}if(o){if(++J,un&&te(t.runId),t.kind!==`turn-end`){!a&&!n&&rn(t.runId);return}a||K&&K!==t.runId||e.currentAgentDiv!==o.message||(o.answerSource=`canonical`,nn(t.runId),P(t.finalText,void 0,t.finalText===null?`absent`:`present`,t.runId,o.cacheScope,t.sessionId),Nt())}}function gn(t){if(t.isEmployee===!0)return;let n=typeof t.traceRunId==`string`&&t.traceRunId?t.traceRunId:null,r=t.runtimeFinality===`present`||t.runtimeFinality===`absent`?t.runtimeFinality:void 0;if(!n&&!r&&(t.error===!0||K&&v(K))){typeof t.text==`string`&&t.text&&E(o(t.text),`tool-activity`);return}let i=n?v(n):void 0,a=!!i&&r!==`absent`&&typeof t.text==`string`;if(Zt(n)){if(a&&n)ee(n,t.text);else if(!i&&n&&r!==`absent`&&typeof t.text==`string`){let r=N(t);r&&r.sessionId===e.activityIdentity?.sessionId&&se({...r,runId:n,text:t.text})}return}if(n&&K&&n!==K)return;w(n,t.runtimeStatus??(t.error===!0?`error`:void 0)),i&&(i.answerSource=`compatibility`),nn(n);let s=t.type===`agent_done`?t.toolLog:void 0;i&&n?(P(r===`absent`?null:t.text||``,s,r??(a?`present`:void 0),n,i.cacheScope,i.model.identity.sessionId),r===`absent`&&typeof t.text==`string`&&t.text&&E(o(t.text.slice(0,500)),`activity-diagnostic`)):P(t.text||``,s,r),Nt()}function _n(t){let n=e.currentAgentDiv,r=v(t.runId);if(n&&K===t.runId&&e.activityIdentity?.sessionId===t.sessionId&&n===t.message&&n.dataset.traceRunId===t.runId&&!Zt(t.runId)&&!(r&&(r.model.identity.sessionId!==t.sessionId||r.model.identity.scope!==t.scope||t.turnId!==void 0&&r.model.identity.turnId!==t.turnId))){if(w(t.runId,t.status),nn(t.runId),n.dataset.activitySaved===`true`){r&&(r.answerSource=`saved`),delete n.dataset.activityRecovering,he(),x(`idle`);return}r?r.answerSource=t.answer.kind===`saved`?`saved`:`unavailable`:t.answer.kind!==`saved`&&e.activityIdentity&&T({runId:t.runId,sessionId:t.sessionId,scope:e.activityIdentity.scope,message:n,cacheScope:t.cacheScope}),P(t.answer.kind===`saved`?t.answer.message.content:null,void 0,t.answer.kind===`saved`?`present`:`absent`,t.runId,t.cacheScope,t.sessionId),Nt()}}function vn(){ce(e.activityIdentity,{terminal:_n,refreshIdentity:()=>Z(`history-identity`,{hydrateRun:!0})}),k(Y)}function yn(){let t=ln;ln=[],cn=0;for(let e of t)`event`in e?hn(e.event,e.replay):mn(e.gap);un&&K&&e.currentAgentDiv&&!v(K)&&fn(K,`Activity is incomplete. Updates were dropped while reconnecting; the final answer remains available separately.`),un=!1}var bn=0,xn=null,Sn=0,Cn=!1,wn=0,Tn=750,En=750;async function Dn(t={}){let n=U.beginSnapshot(),i=J,o;try{o=await r(n.path,{method:`GET`},new AbortController().signal,16777216)}catch(e){throw n.isCurrent()&&X(),n.fail(),e}if(!n.isCurrent())return;n.accept(o?.activityIdentity),Y=sn&&e.activityIdentity!==null,oe(e.activityIdentity),_(Y),vn(),on=String(o.orc.scope||``),Hn(o.orc.state),Pn(o.orc.ctx||null),Nn(o.heartbeat||{pending:0,deferredPending:0}),Mn(o.workers),C(o.runtime.queuePending),me(o.queued||[]),Qe(o.queued||[]);let s=Zt(o.activeRun?.traceRunId??null),c=i===J;t.hydrateRun&&c&&!s&&(ge(o.activeRun),an(o.activeRun),o.activeRun?.running&&o.activeRun.traceRunId&&e.currentAgentDiv&&(e.currentAgentDiv.dataset.traceRunId=o.activeRun.traceRunId,e.activityIdentity&&(e.currentAgentDiv.dataset.messageSessionId=e.activityIdentity.sessionId),y(o.activeRun.traceRunId,e.currentAgentDiv))),Bn(),c&&(o.runtime.busy&&!s?x(`running`):I()||x(`idle`)),Y&&yn();let l=document.getElementById(`chatMessages`);l&&le(l),Y&&t.hydrateRun&&e.currentAgentDiv&&K&&(c||v(K)?.degraded)&&D(e.currentAgentDiv,K,!0),a(()=>import(`./employees-BQaJNp-u.js`).then(e=>{typeof e.renderEmployees==`function`&&e.renderEmployees()}),__vite__mapDeps([0]))}function Z(e=`manual`,t={}){let n=Date.now();return t.hydrateRun?Dn(t):xn||(n-Sn<Tn?Promise.resolve():(Sn=n,xn=Dn(t).catch(t=>{throw console.warn(`[ws] orchestrate snapshot sync failed (${e})`,t),t}).finally(()=>{xn=null}),xn))}function On(e){return e===`iframe-visible`||e===`pageshow`||e===`discard`||e===`visibilitychange`}function kn(e){h(e),a(()=>import(`./ui-TUyJsMUf.js`).then(async t=>{if(On(e)&&bn>0)try{await t.loadMessages(),bn=Date.now()}catch(t){console.warn(`[ws] restore loadMessages failed (${e})`,t)}await Z(e,{hydrateRun:!0})}),__vite__mapDeps([0])).catch(()=>{}).finally(()=>{g(e)})}function Q(e){let t=Date.now();!On(e)&&t-wn<En||(wn=t,kn(e))}function An(e){let t=Array.isArray(e.changedKeys)?e.changedKeys:[];if(t.includes(`presentation`)&&a(()=>import(`./presentation-preference-BYEPPRPg.js`).then(e=>e.refreshPresentationSettings()),[]).catch(e=>console.warn(`[ws] presentation refresh failed`,e)),t.includes(`multiSession`)){window.location.reload();return}t.includes(`workingDir`)||t.includes(`projectDirs`)?a(()=>import(`./ui-TUyJsMUf.js`).then(async e=>{try{await e.loadMessages(),bn=Date.now()}catch(e){console.warn(`[ws] settings scope loadMessages failed`,e)}await Z(`settings_change`).catch(()=>{}).finally(()=>e.reconcileChatBottomAfterRestore(`settings_change`))}),__vite__mapDeps([0])):Z(`settings_change`).catch(()=>{}),a(()=>import(`./settings-core-CgKGnMA5.js`).then(t=>t.refreshHeaderFromSettingsChange(e)),__vite__mapDeps([0])).catch(()=>{})}function jn(){Cn||(Cn=!0,window.addEventListener(`focus`,()=>{Q(`focus`)}),window.addEventListener(`pageshow`,e=>{e.persisted&&Q(`pageshow`)}),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&Q(`visibilitychange`)}),document.addEventListener(`resume`,()=>{Q(`resume`)}),`wasDiscarded`in document&&document.wasDiscarded&&Q(`discard`),window.addEventListener(`message`,e=>{e.data?.type===`jaw-preview-visibility`&&e.data.visible&&Q(`iframe-visible`)}))}function Mn(e){for(let e of Object.keys(Kt))delete Kt[e];for(let t of e)t.state===`running`&&t.phase&&(Kt[t.agentId]={phase:t.phase,phaseLabel:t.phaseLabel||``})}function Nn(t){let n={pending:Number(t?.pending||0),deferredPending:Number(t?.deferredPending||0),...t?.reason?{reason:t.reason}:{},...t?.policy?{policy:t.policy}:{},...t?.jobId?{jobId:t.jobId}:{},...t?.jobName?{jobName:t.jobName}:{}};e.heartbeatRuntime=n;let r=document.getElementById(`pabcHeartbeatStatus`);if(r){if(n.reason===`pabcd_active`&&n.deferredPending>0){let e=n.jobName?`: ${n.jobName}`:``;r.textContent=`heartbeat deferred (${n.deferredPending})${e}`,r.hidden=!1}else r.textContent=``,r.hidden=!0}}function Pn(t){e.orcTaskAnchor=String(t?.taskAnchor||``).trim(),e.orcResolvedSelection=t?.resolvedSelection||null;let n=document.getElementById(`pabcTaskAnchor`);n&&(e.orcTaskAnchor?(n.textContent=`anchor: ${e.orcResolvedSelection?.index?`${e.orcResolvedSelection.index}. `:``}${e.orcTaskAnchor}`,n.hidden=!1):(n.textContent=``,n.hidden=!0),Rn(t?.interview||null))}var Fn=(()=>{try{return localStorage.getItem(`jaw:interviewCollapsed`)===`1`}catch{return!1}})();function In(e){Fn=e;try{localStorage.setItem(`jaw:interviewCollapsed`,e?`1`:`0`)}catch{}let t=document.getElementById(`interviewPanel`);if(!t)return;t.classList.toggle(`collapsed`,e);let n=t.querySelector(`.iv-toggle`);n&&n.setAttribute(`aria-expanded`,String(!e))}function Ln(e){let t=e=>{switch(e){case`max`:return 1;case`xhigh`:return .8;case`high`:return .6;case`medium`:return .4;default:return .2}},n=e=>{switch(e){case`max`:return`#2196f3`;case`xhigh`:return`#4caf50`;case`high`:return`#8bc34a`;case`medium`:return`#ff9800`;default:return`#f44336`}},r=[t(e.goal),t(e.constraint),t(e.success),t(e.ontology)],i=1-r.reduce((e,t)=>e+t,0)/r.length,a=Object.values(e).every(e=>e===`max`)||i<=.2?`🟢 Ready`:i<=.4?`🟡 Almost`:`🔴 Needs work`,o=(e,r)=>{let i=t(r);return`<div style="display:flex;align-items:center;gap:6px;font-size:12px">
|
|
15
|
+
</div>`}function et(e,t){let n=document.querySelector(`.pending-row[data-pending-id="${CSS.escape(e)}"]`);return n?n.querySelector(`[data-pending-action="${t}"]`):null}function tt(e,t){let n=et(e,t);if(!n)return;n.classList.add(`armed`),n.setAttribute(`title`,s(`queue.cancelArm`));let r=n.querySelector(`.pending-arm-fill`);r&&(r.style.animation=`none`,r.offsetWidth,r.style.animation=``)}function nt(e,t){let n=et(e,t);n&&(n.classList.remove(`armed`),n.setAttribute(`title`,s(t===`steer`?`queue.steer`:`queue.delete`)))}function rt(){for(let e of R.values()){let t=et(e.id,e.action);t&&(t.classList.add(`armed`),t.setAttribute(`title`,s(`queue.cancelArm`)))}}function it(e){for(let[t,n]of R)e.has(n.id)||(clearTimeout(n.timerId),R.delete(t))}function at(e,n){let r=Ze(e,n),i=setTimeout(()=>st(e,n),Xe);R.set(r,{id:e,action:n,timerId:i}),tt(e,n),n===`steer`&&t(`/api/orchestrate/queue/${encodeURIComponent(e)}/hold`,`POST`,{}).catch(()=>{})}function ot(e,n){let r=Ze(e,n),i=R.get(r);i&&(clearTimeout(i.timerId),R.delete(r),nt(e,n),n===`steer`&&t(`/api/orchestrate/queue/${encodeURIComponent(e)}/hold`,`DELETE`,{}).catch(()=>{}))}async function st(e,n){R.delete(Ze(e,n));let r=n===`steer`?`/api/orchestrate/queue/${encodeURIComponent(e)}/steer`:`/api/orchestrate/queue/${encodeURIComponent(e)}`,i=n===`steer`?`POST`:`DELETE`;if(n===`steer`&&x(`running`),await t(r,i,{})==null){z=z.filter(t=>t.id!==e),Qe(z),n===`steer`&&Z(`steer-fire-miss`).catch(()=>{});return}z=z.filter(t=>t.id!==e),Qe(z)}function ct(e,t){if(R.has(Ze(e,t))){ot(e,t);return}at(e,t)}function lt(){let e=document.getElementById(`pendingQueue`);e&&e.addEventListener(`click`,async e=>{let t=e.target?.closest(`[data-pending-action]`);if(!t)return;let n=t.closest(`.pending-row`)?.dataset.pendingId;if(!n)return;let r=t.dataset.pendingAction;if(r===`copy`){let e=z.find(e=>e.id===n);if(e?.prompt&&(await p(e.prompt)).ok){let e=t.querySelector(`.pending-btn-content`);e&&(e.innerHTML=f.checkSimple,setTimeout(()=>{e.innerHTML=f.copy},600))}return}ct(n,r===`steer`?`steer`:`delete`)})}var ut=800,dt=64,ft=`CLI-JAW`,pt=`/icons/favicon-32.png`,mt=`#22d3ee`,ht=!1,B=0,gt=ft,V=null,_t=``,vt=!1,yt=0,bt=null;function xt(){return navigator}function St(){return document.visibilityState!==`visible`||!document.hasFocus()}function Ct(e){return e-yt<ut}function wt(){if(V)return V;let e=document.querySelector(`link[rel~="icon"]`);if(e)return V=e,_t=e.href||e.getAttribute(`href`)||``,e;let t=document.createElement(`link`);return t.rel=`icon`,document.head.appendChild(t),V=t,vt=!0,t}function Tt(){if(bt)return;let e=new Image;e.addEventListener(`load`,()=>{B>0&&kt()}),e.src=pt,bt=e}function Et(e){let t=document.createElement(`canvas`);t.width=dt,t.height=dt;let n=t.getContext(`2d`);return n?(n.clearRect(0,0,dt,dt),bt&&bt.complete&&bt.naturalWidth>0?n.drawImage(bt,2,6,52,52):(n.beginPath(),n.arc(28,32,26,0,Math.PI*2),n.fillStyle=mt,n.fill()),n.beginPath(),n.arc(50,15,e>1?12:9,0,Math.PI*2),n.fillStyle=`#ff335f`,n.fill(),n.lineWidth=4,n.strokeStyle=`#ffffff`,n.stroke(),e>1&&(n.fillStyle=`#ffffff`,n.font=`bold 15px sans-serif`,n.textAlign=`center`,n.textBaseline=`middle`,n.fillText(String(Math.min(e,9)),50,16)),t.toDataURL(`image/png`)):_t}async function Dt(e){let t=xt();if(typeof t.setAppBadge==`function`)try{await t.setAppBadge(e)}catch{}}async function Ot(){let e=xt();if(typeof e.clearAppBadge==`function`)try{await e.clearAppBadge()}catch{}}function kt(){document.title=`(${B}) ${gt}`;let e=wt();e&&(e.href=Et(B)),Dt(B)}function At(){document.title=gt}function jt(){if(V){if(vt){V.remove(),V=null,vt=!1;return}V.href=_t}}function Mt(){ht||(ht=!0,gt=document.title||ft,wt(),Tt(),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&Pt()}),window.addEventListener(`focus`,()=>Pt()))}function Nt(){if(!ht||!St())return;let e=Date.now();Ct(e)||(yt=e,B+=1,kt())}function Pt(){ht&&B!==0&&(B=0,yt=0,At(),jt(),Ot())}function Ft(e,t){return!e||!t||e===`all`||e===t}function It(e){let t=N(e);return!t||e.version!==1?null:{version:1,...t}}var Lt=6291456,Rt=e=>typeof e==`object`&&!!e&&!Array.isArray(e),H=e=>typeof e==`string`&&e.length>0&&e.length<=240;function zt(e){let{runId:t,sessionId:n,scope:r,turnId:i,requestId:a,requestType:o,expiresAt:s}=e;if(!H(t)||!H(n)||!H(r)||!H(i)||!H(a)||o!==`approval`&&o!==`question`||typeof s!=`number`||!Number.isSafeInteger(s))return null;let c=de(e.view);return c?{runId:t,sessionId:n,scope:r,turnId:i,requestId:a,requestType:o,expiresAt:s,view:c}:null}function Bt(e){return JSON.stringify([e.runId,e.sessionId,e.scope,e.turnId,e.requestId,e.requestType,e.view])}function Vt(e){let t=e.view.fields;return t.length>0&&(e.requestType===`approval`?t.length===1&&!t[0].multiSelect&&!t[0].allowFreeform&&t[0].options.length>0:t.every(e=>e.options.length>0||e.allowFreeform))}function Ht(e,t,n={}){let a={...t},o=e.ownerDocument,s=o.createElement(`section`);s.className=`native-requests`,s.hidden=!0,s.setAttribute(`aria-label`,`Live runtime requests`);let c=o.createElement(`p`);c.className=`native-request-status`;let l=o.createElement(`p`);l.className=`native-request-announcer`,l.setAttribute(`role`,`status`),l.setAttribute(`aria-live`,`polite`),l.setAttribute(`aria-atomic`,`true`);let u=o.createElement(`h2`);u.className=`native-request-title`;let d=o.createElement(`p`);d.className=`native-request-context`;let f=o.createElement(`div`);f.className=`native-request-controls`;let p=de(`Refresh requests`,()=>{n.onRefresh?n.onRefresh():F()});s.append(u,d,c,f,p);let m=[...e.children].find(e=>e.classList.contains(`chat-input-area`));e.insertBefore(l,m??null),e.insertBefore(s,m??null);let h=null,g=null,_=null,v,y=0,b=0,x=!1,S=!1,C=!1,w=!1,T=n.health??`healthy`,ee=0,te=!1,ne=!1,E=()=>!x&&(n.isCurrent?.()??!0),re=0,ie=null,D=null,ae=!1,O=null,k=o.defaultView,oe=()=>{ae=!0,++re,D=null},se=()=>{ae=!1},ce=e=>{s.contains(e.target)||(++re,D=null)};o.addEventListener(`focusin`,ce),k?.addEventListener(`blur`,oe),k?.addEventListener(`focus`,se);function le(){return ae?null:s.contains(o.activeElement)?re:C&&o.activeElement===o.body?ie:null}function ue(t=!0){if(D===null)return;if(ae||D!==re){D=null;return}let n=s.isConnected&&!s.hidden?f.querySelector(`input:not(:disabled), textarea:not(:disabled), button:not(:disabled)[aria-disabled="false"]`)??p:e.querySelector(`#chatInput`)??o.getElementById(`chatInput`);n?.isConnected&&!n.hasAttribute(`disabled`)&&n.focus({preventScroll:!0}),t&&!C&&(D=null)}function de(e,t){let n=o.createElement(`button`);return n.type=`button`,n.textContent=e,n.addEventListener(`click`,t),n}function A(e,t=!1){t&&(O=e);let n=(T===`healthy`?``:T===`unknown`?`Live request updates not connected. `:`Connection lost. Live request updates unavailable. `)+(te&&T!==`healthy`?`Manually refreshed; updates remain unavailable. `:``)+e;c.textContent!==n&&(c.textContent=n);let r=T===`healthy`&&e===`No pending runtime requests.`?O??e:n;l.textContent!==r&&(l.textContent=r)}function j(){f.querySelectorAll(`button`).forEach(e=>{let t=w||C||!S;e.disabled=w||C||!S&&o.activeElement!==e,e.setAttribute(`aria-disabled`,String(t))}),f.querySelectorAll(`input, textarea`).forEach(e=>{e.disabled=C}),s.setAttribute(`aria-busy`,String(C))}function M(e=le()){D=e,clearTimeout(v),v=void 0,h=null,S=!1,b++,u.textContent=``,d.textContent=``,f.replaceChildren(),ue(!1)}function N(){clearTimeout(v),h&&!w&&(v=setTimeout(()=>{if(E()){if(h&&h.expiresAt>Date.now()){N();return}M(),A(T===`healthy`?`Request expired. Checking pending requests.`:`Request expired. Refresh requests to check what is pending.`,!0),F(`auto`)}},Math.min(2147483647,Math.max(0,h.expiresAt-Date.now()))))}function P(e){u.textContent=e.view.title,d.textContent=`Execution scope: ${e.scope} · Run: ${e.runId}`;let t=e.view.fields;if(!Vt(e))return;let n=b,r=e=>{b===n&&fe(e)},i=o.createElement(`form`);i.noValidate=!0;let a=[];for(let[n,s]of t.entries()){let t=o.createElement(`fieldset`),c=o.createElement(`legend`);c.textContent=s.label,t.append(c);let l=[];for(let i of s.options)if(e.requestType===`approval`)t.append(de(i.label,()=>r({optionId:i.id})));else{let e=o.createElement(`label`),r=o.createElement(`input`);r.type=s.multiSelect?`checkbox`:`radio`,r.name=`native-question-${n}`,r.value=i.id,e.append(r,o.createTextNode(i.label)),t.append(e),l.push({id:i.id,input:r})}let u=null;if(e.requestType===`question`&&s.allowFreeform){!s.multiSelect&&l.length&&t.append(de(`Clear selection`,()=>{l.forEach(e=>{e.input.checked=!1})}));let e=o.createElement(`label`);e.append(o.createTextNode(`Other answer`)),u=o.createElement(`textarea`),u.maxLength=2e3,e.append(u),t.append(e)}if(e.requestType===`question`){let e=o.createElement(`p`);e.textContent=s.multiSelect?`Choose at least one answer.`:`Choose exactly one answer.`,t.append(e)}a.push({field:s,choices:l,text:u}),i.append(t)}if(e.requestType===`question`){let e=o.createElement(`button`);e.type=`submit`,e.textContent=`Submit answers`,i.append(e)}i.addEventListener(`submit`,t=>{if(t.preventDefault(),e.requestType!==`question`||!E()||w||C||!S||b!==n)return;let i=0,o=[];for(let{field:e,choices:t,text:n}of a){let r=t.filter(e=>e.input.checked).map(e=>e.id),a=n?.value??``,s=a.length>0,c=r.length+(s&&a.trim()?1:0);if(s&&(!e.allowFreeform||!a.trim()||a.length>2e3)||(e.multiSelect?c<1||r.length>e.options.length:c!==1)){A(`Answer every question. Choose one answer for single-choice questions; other answers must be nonblank and at most 2,000 characters.`);return}i+=a.length,o.push([e.id,{selected:r,...s?{text:a}:{}}])}if(i>8e3){A(`Keep all other answers within 8,000 characters in total.`);return}r({answers:Object.fromEntries(o)})}),i.append(de(`Cancel request`,()=>r({optionId:null}))),f.append(i)}async function fe(e){let t=h;if(!E()||w||C||!S||!t)return;if(t.expiresAt<=Date.now()){M(),A(`Request expired.`,!0),await F(`auto`);return}ie=le();let n=ie;C=!0,S=!1;let a=b,o=ee;++y,g?.abort();let s=new AbortController;_=s,O=null,j(),A(`Sending response.`);let c=`optionId`in e&&e.optionId===null?`Request cancelled.`:`Response accepted.`,l=!1;try{let n=await r(`/api/runtime/requests/`+encodeURIComponent(t.requestId),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({runId:t.runId,sessionId:t.sessionId,scope:t.scope,turnId:t.turnId,response:e})},s.signal,65536);if(!Rt(n)||n.ok!==!0||!Rt(n.data)||n.data.accepted!==!0)throw Error(`unconfirmed`);l=!0}catch(e){c=e instanceof i&&e.status===409?`Request expired or was already answered. Pending requests refreshed.`:`Response could not be confirmed. Check pending requests before trying again.`}finally{_===s&&(_=null),C=!1}if(!E())return;if(w||o!==ee){j();return}if(b!==a){j(),ue();return}l?M(n):S=!1,j(),A(c,!0);let u=y+1;await F(`auto`),!x&&!w&&S&&y===u&&!l&&h&&Bt(h)===Bt(t)&&A(c)}async function F(e=`manual`){if(!E()||e===`auto`&&T!==`healthy`)return;let t=++y;g?.abort();let n=new AbortController;g=n,S=!1,j(),!h&&!ne&&(s.hidden=!1,A(`Loading pending requests.`));try{if(!H(a.sessionId)||!H(a.scope))throw Error(`invalid_identity`);let i=await r(`/api/runtime/requests?sessionId=`+encodeURIComponent(a.sessionId),{method:`GET`},n.signal,Lt);if(!E()||t!==y||n.signal.aborted)return;if(!Rt(i)||i.ok!==!0||!Rt(i.data))throw Error(`invalid_list`);let o=i.data.requests;if(!Array.isArray(o)||o.length>128)throw Error(`invalid_list`);let c=new Set,l=null,u=null,d=!1;for(let e of o){if(!Rt(e)){d=!0;continue}if(H(e.requestId)){if(c.has(e.requestId))throw Error(`duplicate_request`);c.add(e.requestId)}if(e.sessionId!==a.sessionId)continue;let t=zt(e);if(!t){d=!0;continue}t.expiresAt<=Date.now()||(l??=t,h&&Bt(h)===Bt(t)&&(u=t))}let f=u??l;h&&!u&&A(h.expiresAt<=Date.now()?`Request expired.`:`Request is no longer pending.`,!0),u||M(),h=f,S=!0,w=!1,ne=!0,te=e===`manual`,s.hidden=!h&&!d&&T===`healthy`,h?(u||(O=null),A(Vt(h)?(O?O+` `:``)+`Runtime is waiting for your response.`:`This request cannot be answered here. Refresh requests or use Stop.`),u||P(h),N()):A(d?`This request cannot be displayed safely. Refresh requests or use Stop.`:`No pending runtime requests.`),j(),ue()}catch{if(!E()||t!==y||n.signal.aborted)return;s.hidden=!1,j(),A(`Pending requests could not be loaded. Refresh requests to retry.`)}finally{g===n&&(g=null)}}function pe(e){x||(T=e,te=!1,++ee,w=!0,S=!1,++y,g?.abort(),g=null,clearTimeout(v),v=void 0,s.hidden=!1,j(),A(`Your draft is kept. Refresh requests to check what is pending.`))}return T!==`healthy`&&pe(T),n.autoStart!==!1&&F(`auto`),{refresh:F,setStreamHealth:pe,suspend(){pe(`unavailable`)},dispose(){x||(x=!0,++y,g?.abort(),_?.abort(),M(),s.remove(),l.remove(),ue(),o.removeEventListener(`focusin`,ce),k?.removeEventListener(`blur`,oe),k?.removeEventListener(`focus`,se))}}}function Ut(t){let n=`unknown`,r=0,i=0,a=null,o=``,s=null,c=null,u=!1,d=null,f=()=>l(`/api/orchestrate/snapshot`),p=e=>a?.sessionId===e.sessionId&&a.scope===e.scope;function m(e){let n=t.host();if(n&&!s){if(!c){let e=n.ownerDocument;c=e.createElement(`section`),c.className=`native-requests`,c.setAttribute(`aria-label`,`Live runtime requests`);let t=e.createElement(`p`);t.className=`native-request-status`,t.setAttribute(`role`,`status`);let r=e.createElement(`button`);r.type=`button`,r.textContent=`Refresh requests`,r.addEventListener(`click`,()=>{_()}),c.append(t,r);let i=[...n.children].find(e=>e.classList.contains(`chat-input-area`));n.insertBefore(c,i??null)}c.querySelector(`p`).textContent=e}}function h(){s?.dispose(),s=null,a=null,e.activityIdentity=null}function g(){if(u||n!==`healthy`||!s||d?.epoch===r&&d.path===o&&(!d.panel||d.panel===s))return;u=!0;let e=r;queueMicrotask(()=>{u=!1,e===r&&n===`healthy`&&o===f()&&s?.refresh(`auto`)})}async function _(){if(d?.epoch===r&&d.path===f()&&d.panel===s)return;let e={epoch:r,path:f(),panel:s};d=e;try{(!s||o!==f())&&await t.refreshSnapshot(),e.epoch===r&&e.path===f()&&o===e.path&&(!e.panel||e.panel===s)&&await s?.refresh(`manual`)}catch{m(`Request identity could not be loaded. Refresh requests to retry.`)}finally{d===e&&(d=null)}}function v(e){n=e,++r,s?.setStreamHealth(e),m(e===`healthy`?`Loading request identity.`:`Live request updates unavailable. Refresh requests to check pending requests manually.`)}return{channelChanged(){v(`unknown`)},unavailable(){v(`unavailable`)},sseOpened(){v(`healthy`)},invalidateIdentity(){++r,++i,h(),m(`Request identity changed. Refresh requests to check this conversation.`)},beginSnapshot(){let l=f();o&&o!==l&&h();let u=r,d=++i,v=()=>u===r&&d===i&&l===f();return{path:l,isCurrent:v,accept(r){if(!v())return;let i=N(r);if(!i){h(),m(`Request identity unavailable. Refresh requests to retry.`);return}if(!p(i)){h(),a=i,o=l;let e=t.host();e&&(c?.remove(),c=null,s=Ht(e,i,{health:n,autoStart:!1,onRefresh:()=>{_()},isCurrent:()=>a===i&&o===f()}))}e.activityIdentity=i,g()},fail(){v()&&(h(),m(`Request identity could not be loaded. Refresh requests to retry.`))}}},event(e,t){if(n!==`healthy`||!a||o!==f())return;let r=e===`agent_runtime_requests_changed`?It(t):null,i=e===`agent_runtime`?re(t):null,s=typeof t==`object`&&!!t&&t.sseReplay===!0;(r&&p(r)||i&&p(i)&&(i.kind===`request`||i.kind===`request-settled`||i.kind===`turn-end`&&!s))&&g()},dispose(){++r,++i,h(),c?.remove(),c=null}}}j({currentMessage:()=>e.currentAgentDiv,useMessage:t=>{e.currentAgentDiv=t},createMessage:Wt,reconcileMessage:(e,t)=>m().reconcileMessage(e,t),replaceAnswer:fe,evicted:ae,closeTrace:()=>{a(()=>import(`./trace-drawer-B6XuPodh.js`).then(e=>e.closeTraceDrawer()),__vite__mapDeps([0])).catch(e=>console.warn(`[activity] trace close unavailable`,e))},inspectTrace:(e,t)=>{a(()=>import(`./trace-drawer-B6XuPodh.js`).then(n=>n.openTraceDrawer(e,void 0,t)),__vite__mapDeps([0])).catch(e=>console.warn(`[activity] trace unavailable`,e))}});function Wt(){return he(),S(`agent`,``)}var U=Ut({host:()=>document.querySelector(`.chat-area`),refreshSnapshot:()=>Z(`native-request-retry`,{hydrateRun:!0})}),W=[`I`,`P`,`A`,`B`,`C`],G=null;function Gt(e,t,n){let r=W.indexOf(n);if(r<0)return;let i=e.getBoundingClientRect(),a=t.offsetWidth||36,o=document.getElementById(`dot-${n}`);if(!o)return;let s=W[r+1],c=s?document.getElementById(`dot-${s}`):null;if(c){let e=o.getBoundingClientRect(),n=c.getBoundingClientRect(),r=(e.right+n.left)/2;t.style.transform=`translateX(${r-i.left-a/2}px)`}else{let e=o.getBoundingClientRect();t.style.transform=`translateX(${e.left-i.left+e.width/2-a/2}px)`}}var Kt={},qt=8,Jt=64,K=null,q=0,Yt=[],Xt=new Map;function Zt(e){return e!==null&&(Yt.includes(e)||A(e)||!!v(e)?.answerSource)}function Qt(e){let t=Number(e);return Number.isFinite(t)&&t>0?Math.floor(t):null}function $t(e,t){if(e&&t!=null)for(t>(Xt.get(e)||0)&&Xt.set(e,t);Xt.size>Jt;){let e=null;for(let t of Xt.keys())if(t!==K){e=t;break}if(!e)break;Xt.delete(e)}}function en(e){let t=new Map;for(let n of e?.toolLog||[]){let e=typeof n?.traceRunId==`string`&&n.traceRunId?n.traceRunId:null,r=Qt(n?.traceSeq);e&&r!=null&&r>(t.get(e)||0)&&t.set(e,r)}return t}function tn(e,t,n){return!n||!e||t==null?!1:t<=(Xt.get(e)||0)}function nn(e){++J;let t=e??K;K=null,q=0,t&&!Yt.includes(t)&&(Yt.push(t),Yt.length>qt&&Yt.shift())}function rn(e){e&&e!==K&&(++J,K=e,q=0)}function an(e){if(e?.running){typeof e.traceRunId==`string`&&e.traceRunId&&(K=e.traceRunId),q=typeof e.textLen==`number`?e.textLen:(e.text||``).length;for(let[t,n]of en(e))$t(t,n)}}var on=``,J=0,Y=!1,sn=!1,cn=0,ln=[],un=!1;function X(){Y=!1,_(!1),k(!1),K&&te(K)}function dn(){ie(),ln=[],cn=0,un=!1}function fn(t,n=`Activity preview is unavailable at its retention limit. The final answer will still appear here.`){let r=e.currentAgentDiv;if((!r||r.dataset.traceRunId!==t)&&(r=Wt(),e.currentAgentDiv=r,r.dataset.traceRunId=t),!r.querySelector(`.activity-unavailable`)){let e=r.ownerDocument.createElement(`p`);e.className=`activity-unavailable`,e.setAttribute(`role`,`status`),e.textContent=n,r.querySelector(`.agent-body`)?.prepend(e)}rn(t)}function pn(e){let t=new TextEncoder().encode(JSON.stringify(e)).length;if(ln.length>=256||cn+t>1048576){ln=[],cn=0,un=!0;return}ln.push(e),cn+=t}function mn(t){let n=e.activityIdentity;if(!Y||!n){pn({gap:t});return}t.sessionId===n.sessionId&&t.scope===n.scope&&(v(t.runId)?te(t.runId):K===t.runId&&e.currentAgentDiv&&fn(t.runId,`Activity is incomplete. Runtime updates were not recorded; the final answer remains available separately.`))}function hn(t,n=!1){let r=e.activityIdentity;if(!Y||!r){pn({event:t,replay:n});return}if(t.sessionId!==r.sessionId||t.scope!==r.scope)return;let i=v(t.runId);if(i&&i.model.identity.turnId!==t.turnId)return;let a=Zt(t.runId);if(a&&!i||!i&&K&&K!==t.runId&&(t.kind!==`turn-start`||n))return;let o;try{o=ne(t,!K||K===t.runId)??(t.kind===`turn-end`&&i?.model.end?.seq===t.seq?i:null)}catch(e){if(!(e instanceof M))throw e;!n&&(!K||K===t.runId||t.kind===`turn-start`)&&fn(t.runId);return}if(o){if(++J,un&&te(t.runId),t.kind!==`turn-end`){!a&&!n&&rn(t.runId);return}a||K&&K!==t.runId||e.currentAgentDiv!==o.message||(o.answerSource=`canonical`,nn(t.runId),P(t.finalText,void 0,t.finalText===null?`absent`:`present`,t.runId,o.cacheScope,t.sessionId),Nt())}}function gn(t){if(t.isEmployee===!0)return;let n=typeof t.traceRunId==`string`&&t.traceRunId?t.traceRunId:null,r=t.runtimeFinality===`present`||t.runtimeFinality===`absent`?t.runtimeFinality:void 0;if(!n&&!r&&(t.error===!0||K&&v(K))){typeof t.text==`string`&&t.text&&E(o(t.text),`tool-activity`);return}let i=n?v(n):void 0,a=!!i&&r!==`absent`&&typeof t.text==`string`;if(Zt(n)){if(a&&n)ee(n,t.text);else if(!i&&n&&r!==`absent`&&typeof t.text==`string`){let r=N(t);r&&r.sessionId===e.activityIdentity?.sessionId&&se({...r,runId:n,text:t.text})}return}if(n&&K&&n!==K)return;w(n,t.runtimeStatus??(t.error===!0?`error`:void 0)),i&&(i.answerSource=`compatibility`),nn(n);let s=t.type===`agent_done`?t.toolLog:void 0;i&&n?(P(r===`absent`?null:t.text||``,s,r??(a?`present`:void 0),n,i.cacheScope,i.model.identity.sessionId),r===`absent`&&typeof t.text==`string`&&t.text&&E(o(t.text.slice(0,500)),`activity-diagnostic`)):P(t.text||``,s,r),Nt()}function _n(t){let n=e.currentAgentDiv,r=v(t.runId);if(n&&K===t.runId&&e.activityIdentity?.sessionId===t.sessionId&&n===t.message&&n.dataset.traceRunId===t.runId&&!Zt(t.runId)&&!(r&&(r.model.identity.sessionId!==t.sessionId||r.model.identity.scope!==t.scope||t.turnId!==void 0&&r.model.identity.turnId!==t.turnId))){if(w(t.runId,t.status),nn(t.runId),n.dataset.activitySaved===`true`){r&&(r.answerSource=`saved`),delete n.dataset.activityRecovering,he(),x(`idle`);return}r?r.answerSource=t.answer.kind===`saved`?`saved`:`unavailable`:t.answer.kind!==`saved`&&e.activityIdentity&&T({runId:t.runId,sessionId:t.sessionId,scope:e.activityIdentity.scope,message:n,cacheScope:t.cacheScope}),P(t.answer.kind===`saved`?t.answer.message.content:null,void 0,t.answer.kind===`saved`?`present`:`absent`,t.runId,t.cacheScope,t.sessionId),Nt()}}function vn(){ce(e.activityIdentity,{terminal:_n,refreshIdentity:()=>Z(`history-identity`,{hydrateRun:!0})}),k(Y)}function yn(){let t=ln;ln=[],cn=0;for(let e of t)`event`in e?hn(e.event,e.replay):mn(e.gap);un&&K&&e.currentAgentDiv&&!v(K)&&fn(K,`Activity is incomplete. Updates were dropped while reconnecting; the final answer remains available separately.`),un=!1}var bn=0,xn=null,Sn=0,Cn=!1,wn=0,Tn=750,En=750;async function Dn(t={}){let n=U.beginSnapshot(),i=J,o;try{o=await r(n.path,{method:`GET`},new AbortController().signal,16777216)}catch(e){throw n.isCurrent()&&X(),n.fail(),e}if(!n.isCurrent())return;n.accept(o?.activityIdentity),Y=sn&&e.activityIdentity!==null,oe(e.activityIdentity),_(Y),vn(),on=String(o.orc.scope||``),Hn(o.orc.state),Pn(o.orc.ctx||null),Nn(o.heartbeat||{pending:0,deferredPending:0}),Mn(o.workers),C(o.runtime.queuePending),me(o.queued||[]),Qe(o.queued||[]);let s=Zt(o.activeRun?.traceRunId??null),c=i===J;t.hydrateRun&&c&&!s&&(ge(o.activeRun),an(o.activeRun),o.activeRun?.running&&o.activeRun.traceRunId&&e.currentAgentDiv&&(e.currentAgentDiv.dataset.traceRunId=o.activeRun.traceRunId,e.activityIdentity&&(e.currentAgentDiv.dataset.messageSessionId=e.activityIdentity.sessionId),y(o.activeRun.traceRunId,e.currentAgentDiv))),Bn(),c&&(o.runtime.busy&&!s?x(`running`):I()||x(`idle`)),Y&&yn();let l=document.getElementById(`chatMessages`);l&&le(l),Y&&t.hydrateRun&&e.currentAgentDiv&&K&&(c||v(K)?.degraded)&&D(e.currentAgentDiv,K,!0),a(()=>import(`./employees-CsvI0_5V.js`).then(e=>{typeof e.renderEmployees==`function`&&e.renderEmployees()}),__vite__mapDeps([0]))}function Z(e=`manual`,t={}){let n=Date.now();return t.hydrateRun?Dn(t):xn||(n-Sn<Tn?Promise.resolve():(Sn=n,xn=Dn(t).catch(t=>{throw console.warn(`[ws] orchestrate snapshot sync failed (${e})`,t),t}).finally(()=>{xn=null}),xn))}function On(e){return e===`iframe-visible`||e===`pageshow`||e===`discard`||e===`visibilitychange`}function kn(e){h(e),a(()=>import(`./ui-BbR_fFiK.js`).then(async t=>{if(On(e)&&bn>0)try{await t.loadMessages(),bn=Date.now()}catch(t){console.warn(`[ws] restore loadMessages failed (${e})`,t)}await Z(e,{hydrateRun:!0})}),__vite__mapDeps([0])).catch(()=>{}).finally(()=>{g(e)})}function Q(e){let t=Date.now();!On(e)&&t-wn<En||(wn=t,kn(e))}function An(e){let t=Array.isArray(e.changedKeys)?e.changedKeys:[];if(t.includes(`presentation`)&&a(()=>import(`./presentation-preference-BYEPPRPg.js`).then(e=>e.refreshPresentationSettings()),[]).catch(e=>console.warn(`[ws] presentation refresh failed`,e)),t.includes(`multiSession`)){window.location.reload();return}t.includes(`workingDir`)||t.includes(`projectDirs`)?a(()=>import(`./ui-BbR_fFiK.js`).then(async e=>{try{await e.loadMessages(),bn=Date.now()}catch(e){console.warn(`[ws] settings scope loadMessages failed`,e)}await Z(`settings_change`).catch(()=>{}).finally(()=>e.reconcileChatBottomAfterRestore(`settings_change`))}),__vite__mapDeps([0])):Z(`settings_change`).catch(()=>{}),a(()=>import(`./settings-core-BH7J_Rbm.js`).then(t=>t.refreshHeaderFromSettingsChange(e)),__vite__mapDeps([0])).catch(()=>{})}function jn(){Cn||(Cn=!0,window.addEventListener(`focus`,()=>{Q(`focus`)}),window.addEventListener(`pageshow`,e=>{e.persisted&&Q(`pageshow`)}),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&Q(`visibilitychange`)}),document.addEventListener(`resume`,()=>{Q(`resume`)}),`wasDiscarded`in document&&document.wasDiscarded&&Q(`discard`),window.addEventListener(`message`,e=>{e.data?.type===`jaw-preview-visibility`&&e.data.visible&&Q(`iframe-visible`)}))}function Mn(e){for(let e of Object.keys(Kt))delete Kt[e];for(let t of e)t.state===`running`&&t.phase&&(Kt[t.agentId]={phase:t.phase,phaseLabel:t.phaseLabel||``})}function Nn(t){let n={pending:Number(t?.pending||0),deferredPending:Number(t?.deferredPending||0),...t?.reason?{reason:t.reason}:{},...t?.policy?{policy:t.policy}:{},...t?.jobId?{jobId:t.jobId}:{},...t?.jobName?{jobName:t.jobName}:{}};e.heartbeatRuntime=n;let r=document.getElementById(`pabcHeartbeatStatus`);if(r){if(n.reason===`pabcd_active`&&n.deferredPending>0){let e=n.jobName?`: ${n.jobName}`:``;r.textContent=`heartbeat deferred (${n.deferredPending})${e}`,r.hidden=!1}else r.textContent=``,r.hidden=!0}}function Pn(t){e.orcTaskAnchor=String(t?.taskAnchor||``).trim(),e.orcResolvedSelection=t?.resolvedSelection||null;let n=document.getElementById(`pabcTaskAnchor`);n&&(e.orcTaskAnchor?(n.textContent=`anchor: ${e.orcResolvedSelection?.index?`${e.orcResolvedSelection.index}. `:``}${e.orcTaskAnchor}`,n.hidden=!1):(n.textContent=``,n.hidden=!0),Rn(t?.interview||null))}var Fn=(()=>{try{return localStorage.getItem(`jaw:interviewCollapsed`)===`1`}catch{return!1}})();function In(e){Fn=e;try{localStorage.setItem(`jaw:interviewCollapsed`,e?`1`:`0`)}catch{}let t=document.getElementById(`interviewPanel`);if(!t)return;t.classList.toggle(`collapsed`,e);let n=t.querySelector(`.iv-toggle`);n&&n.setAttribute(`aria-expanded`,String(!e))}function Ln(e){let t=e=>{switch(e){case`max`:return 1;case`xhigh`:return .8;case`high`:return .6;case`medium`:return .4;default:return .2}},n=e=>{switch(e){case`max`:return`#2196f3`;case`xhigh`:return`#4caf50`;case`high`:return`#8bc34a`;case`medium`:return`#ff9800`;default:return`#f44336`}},r=[t(e.goal),t(e.constraint),t(e.success),t(e.ontology)],i=1-r.reduce((e,t)=>e+t,0)/r.length,a=Object.values(e).every(e=>e===`max`)||i<=.2?`🟢 Ready`:i<=.4?`🟡 Almost`:`🔴 Needs work`,o=(e,r)=>{let i=t(r);return`<div style="display:flex;align-items:center;gap:6px;font-size:12px">
|
|
16
16
|
<span style="width:70px;color:var(--text-secondary)">${e}</span>
|
|
17
17
|
<div style="flex:1;height:5px;background:var(--bg-tertiary);border-radius:3px">
|
|
18
18
|
<div style="width:${i*100}%;height:100%;background:${n(r)};border-radius:3px;transition:width .3s"></div>
|
|
@@ -46,4 +46,4 @@ import{t as e}from"./state-Dl-xxPoS.js";import{i as t,t as n}from"./api-CUtiCd2-
|
|
|
46
46
|
</div>`};n.innerHTML=`<div style="font-size:11px;font-weight:600;margin-bottom:4px;color:var(--text-secondary)">Build Budget</div>
|
|
47
47
|
${r(`Workers`,e.spent.workerDispatches,e.maxWorkerDispatches)}
|
|
48
48
|
${r(`Self-heal`,e.spent.selfHealRetries,e.maxSelfHealRetries)}
|
|
49
|
-
${r(`Verify`,e.spent.verificationRounds,e.maxVerificationRounds)}`}async function Bn(){try{let t=await fetch(`${n}/api/goal`);if(!t.ok)return;let r=await t.json();r.goal?e.activeGoal={id:r.goal.id,objective:r.goal.objective,status:r.goal.status,createdAt:r.goal.createdAt,updatedAt:r.goal.updatedAt,lastCheckpointSummary:r.goal.lastCheckpoint?.summary,nextAction:r.goal.lastCheckpoint?.nextAction}:e.activeGoal=null,Vn()}catch{}}function Vn(){let t=document.getElementById(`goalCockpit`);if(!t)return;let n=e.activeGoal;if(!n||n.status===`complete`||n.status===`cancelled`){t.hidden=!0,t.innerHTML=``;return}t.hidden=!1,t.replaceChildren();let r=n.status===`paused`?`paused`:n.status===`blocked`?`blocked`:`active`,i=document.createElement(`span`);i.className=`goal-objective`,i.title=n.objective,i.textContent=n.objective;let a=document.createElement(`span`);if(a.className=`goal-status goal-status--${r}`,a.textContent=n.status,t.append(i,a),n.nextAction){let e=document.createElement(`span`);e.className=`goal-next`,e.textContent=n.nextAction,t.append(e)}}function Hn(t,n){let r=new Set([`IDLE`,`I`,`P`,`A`,`B`,`C`,`D`]).has(t)?t:`IDLE`;if(e.orcState=r,r===`IDLE`||r===`D`)document.body.removeAttribute(`data-orc-state`),document.body.style.removeProperty(`--orc-glow`);else{document.body.setAttribute(`data-orc-state`,r);let e=`--orc-glow-${r}`,t=getComputedStyle(document.documentElement).getPropertyValue(e).trim();document.body.style.setProperty(`--orc-glow`,t)}document.body.classList.add(`orc-pulse`),setTimeout(()=>document.body.classList.remove(`orc-pulse`),700);let i=document.getElementById(`orcStateBadge`);i&&(i.textContent={IDLE:``,I:`INTERVIEW`,P:`PLAN`,A:`AUDIT`,B:`BUILD`,C:`CHECK`,D:`DONE`}[r],i.style.display=r===`IDLE`?`none`:`inline-block`);let a=document.getElementById(`pabcRoadmap`),o=document.getElementById(`sharkRunner`),s=document.getElementById(`pabcBrand`);if(a&&o){if(!a.dataset.resizeObserved){a.dataset.resizeObserved=`1`,new ResizeObserver(()=>{G&&o.classList.contains(`running`)&&Gt(a,o,G)}).observe(a);let e=0;window.addEventListener(`resize`,()=>{cancelAnimationFrame(e),e=requestAnimationFrame(()=>{G&&o.classList.contains(`running`)&&Gt(a,o,G)})})}if(r===`IDLE`)a.classList.remove(`visible`,`shimmer-out`),o.classList.remove(`running`),G=null;else if(r===`D`){W.forEach(e=>{let t=document.getElementById(`dot-${e}`);t&&(t.className=`pabc-dot done`,t.setAttribute(`data-phase`,e))});for(let e=0;e<W.length;e++){let t=document.getElementById(`pabc-conn-${e}`);t&&(t.className=`pabc-connector done`)}o.classList.remove(`running`),G=null,a.classList.add(`shimmer-out`),setTimeout(()=>a.classList.remove(`visible`,`shimmer-out`),1e3)}else{a.classList.remove(`shimmer-out`),a.classList.add(`visible`),o.classList.add(`running`);let e=W.indexOf(r);W.forEach((t,n)=>{let r=document.getElementById(`dot-${t}`);r&&(r.className=`pabc-dot ${n<e?`done`:n===e?`active`:`future`}`,r.setAttribute(`data-phase`,t))});for(let t=0;t<W.length;t++){let n=document.getElementById(`pabc-conn-${t}`);n&&(n.className=`pabc-connector ${t<e?`done`:``}`)}G=r,requestAnimationFrame(()=>Gt(a,o,r))}s&&n&&(s.textContent=n)}}var Un=!1,Wn=Promise.resolve(),Gn=0;function Kn(){sn=!1,X(),U.channelChanged(),jn(),Un||(Un=!0,ar()),rr(),Ye(u())}var qn=Kn;function Jn(e){sn=e===`sse`,X(),e===`sse`&&U.sseOpened(),console.log(`[${e}] connected`),tr=2e3,Qn();let t=Date.now()-bn<1e4;Wn=a(()=>import(`./ui-TUyJsMUf.js`).then(async n=>{if(n.cleanupToolActivity(),!t)try{await n.loadMessages(),bn=Date.now()}catch(t){console.error(`[${e}] loadMessages failed`,t)}await Z(`reconnect`,{hydrateRun:!0}).catch(()=>{}).finally(()=>n.reconcileChatBottomAfterRestore(`reconnect`)),a(()=>import(`./memory-Bk_cb3sw.js`).then(e=>e.refreshMemorySidebar()),__vite__mapDeps([0])).catch(()=>{}),a(()=>import(`./bgtask-badge-Ch88fnhf.js`).then(e=>e.refreshBgtaskBadge()),__vite__mapDeps([0])).catch(()=>{})}),__vite__mapDeps([0]))}function Yn(){X(),un=!0,h(`replay_gap`),Wn=a(()=>import(`./ui-TUyJsMUf.js`).then(async e=>{try{await e.loadMessages(),bn=Date.now()}catch(e){console.error(`[sse] replay gap loadMessages failed`,e)}await Z(`replay_gap`,{hydrateRun:!0}).catch(()=>{}).finally(()=>e.reconcileChatBottomAfterRestore(`replay_gap`))}),__vite__mapDeps([0]))}var Xn=8e3,Zn=null;function Qn(){Zn!==null&&(window.clearTimeout(Zn),Zn=null)}function $n(){sn=!1,X(),U.unavailable(),console.log(`[channel] disconnected`),he(),Zn===null&&(Zn=window.setTimeout(()=>{Zn=null,x(`idle`),E(`${f.exec} ${s(`ws.disconnected`)}`,`tool-activity`)},Xn))}var $=null,er=!1,tr=2e3,nr=3e4;function rr(){if($){er=!0;try{$.close()}catch{}$=null}}function ir(){if($)return;console.warn(`[channel] /api/events unavailable — falling back to legacy WebSocket`);let e=`ws://${location.host}`,t=new WebSocket(`${e}${n}/?lang=${u()}`);$=t,er=!1,t.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{console.warn(`[ws] malformed message:`,e.data);return}if(!t||typeof t!=`object`||typeof t.type!=`string`){console.warn(`[ws] invalid message shape:`,t);return}or(t)};let r=!1;t.onopen=()=>{r=!0,tr=2e3,Jn(`ws`)},t.onclose=()=>{if($===t&&($=null),er){er=!1;return}if(r){$n(),setTimeout(Kn,2e3);return}tr=Math.min(tr*2,nr),setTimeout(Kn,tr)}}function ar(){Ke(`widget`,`widget_updated`,e=>{let t=e.chatId,n=e.widgetId;typeof t==`string`&&typeof n==`string`&&a(()=>import(`./iframe-renderer-DWnvUSrx.js`).then(e=>e.refreshFileWidget(t,n)),__vite__mapDeps([0])).catch(e=>console.warn(`[widget] refresh failed:`,e.message))}),Ke(`*`,null,e=>{U.event(String(e.event),e),or({...e,type:e.event})}),Ue(()=>Jn(`sse`)),We(()=>$n()),Ge(()=>{sn=!1,X(),U.unavailable(),ir()})}function or(t){if(t.type===`agent_runtime`){let e=re(t);e&&hn(e,t.sseReplay===!0);return}if(t.type===`agent_runtime_gap`){let e=t,n=N(e);n&&typeof e.runId==`string`&&e.runId.length>0&&e.runId.length<=240&&mn({...n,runId:e.runId});return}if(t.type===`agent_tool`){if(I())return;let e=typeof t.traceRunId==`string`&&t.traceRunId?t.traceRunId:null,n=Qt(t.traceSeq);if(Zt(e)||tn(e,n,t.sseReplay===!0))return;++J,t.isEmployee!==!0&&rn(e);let r=t.toolType===`thinking`?`thinking`:t.toolType===`search`?`search`:t.toolType===`subagent`?`subagent`:`tool`;F({id:`step-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,type:r,icon:t.icon||f.tool,rawIcon:t.rawIcon||t.icon||``,label:t.label||``,isEmployee:t.isEmployee===!0,detail:t.detail||``,stepRef:t.stepRef||``,traceRunId:t.traceRunId||``,traceSeq:t.traceSeq,detailAvailable:t.detailAvailable,detailBytes:t.detailBytes,rawRetentionStatus:t.rawRetentionStatus,status:t.status||`running`,startTime:typeof t.startedAt==`number`&&t.startedAt>0?t.startedAt:Date.now()},typeof t.startedAt==`number`&&t.startedAt>0?t.startedAt:void 0),$t(e,n)}else if(t.type===`agent_output`||t.type===`agent_chunk`){if(I())return;let e=typeof t.traceRunId==`string`&&t.traceRunId?t.traceRunId:null;if(Zt(e))return;rn(e);let n=t.text||``;if(e&&typeof t.textLen==`number`){if(t.textLen<=q){t.sseReplay!==!0&&t.textLen<q&&(console.warn(`[ws] live agent_output behind applied cursor — resync (${t.textLen} < ${q})`),q=t.textLen);return}let e=t.textLen-q;e<n.length&&(n=n.slice(-e)),q=t.textLen}++J,_e(n)}else if(t.type===`agent_status`){if(!t.running&&I())return;t.running&&I()&&pe(),++J,t.running===void 0?x(t.status||`idle`):x(t.running?`running`:`idle`),t.agentId&&t.phase&&(Kt[t.agentId]={phase:t.phase,phaseLabel:t.phaseLabel||``},a(()=>import(`./employees-BQaJNp-u.js`).then(e=>e.loadEmployees()),__vite__mapDeps([0])))}else if(t.type===`bgtask_update`)a(()=>import(`./bgtask-badge-Ch88fnhf.js`).then(e=>e.applyBgtaskUpdate(t)),__vite__mapDeps([0])).catch(()=>{});else if(t.type===`queue_update`)C(t.pending||0),Array.isArray(t.queued)&&Qe(t.queued),Z(`queue_update`).catch(()=>{});else if(t.type===`agent_retry`){let e=Number(t.delay??0),n=t.reason,r=o(String(n||`429`));E(s(e>0?`ws.retry`:`ws.retryNow`,{cli:o(t.cli||``),reason:r,delay:e}),`tool-activity`)}else if(t.type===`agent_fallback`)E(s(`ws.fallback`,{from:o(t.from||``),to:o(t.to||``)}),`tool-activity`);else if(t.type===`agent_smoke`)E(`${f.warning} ${o(t.cli||`agent`)}: smoke response detected — auto-continuing`,`tool-activity`);else if(t.type===`goal_done`)e.activeGoal=null,Vn(),E(`🎯 Goal completed${t.source===`ai_output`?` (detected from AI output)`:``}`,`tool-activity`);else if(t.type===`goal_cancel`)e.activeGoal=null,Vn(),E(`🎯 Goal cancelled`,`tool-activity`);else if(t.type===`schedule_wakeup`)E(`⏰ Wakeup scheduled in ${t.delaySeconds}s — ${o(String(t.reason||``))}`,`tool-activity`);else if(t.type===`goal_continuation_limit`)E(`⚠️ Goal continuation limit reached (${t.attempts} attempts)`,`tool-activity`);else if(t.type===`goal_continuation`)E(`🎯 Active goal — auto-continuing`,`tool-activity`);else if(t.type===`agent_done`){if(t.steered===!0){let e=N(t);e&&t.traceRunId&&b({...e,runId:t.traceRunId})}t.steered||I()||gn(t)}else if(t.type===`orchestrate_done`)gn(t);else if(t.type===`clear`){++J,ue(),dn(),oe(e.activityIdentity),d(),he(),m().clear();let t=document.getElementById(`chatMessages`);t&&(t.innerHTML=``),vn(),O(e.activityIdentity?.sessionId??null,new Set),a(()=>import(`./idb-cache-CFBnPfHz.js`).then(e=>e.clearScopedCache()),[]).catch(()=>{})}else if(t.type===`session_reset`)E(`${f.refresh} Session reset — history preserved`,`tool-activity`);else if(t.type===`agent_added`||t.type===`agent_updated`||t.type===`agent_deleted`)a(()=>import(`./employees-BQaJNp-u.js`).then(e=>e.loadEmployees()),__vite__mapDeps([0]));else if(t.type===`heartbeat_pending`){let e={pending:t.pending||0,deferredPending:t.deferredPending||0};t.reason!==void 0&&(e.reason=t.reason),t.policy!==void 0&&(e.policy=t.policy),t.jobId!==void 0&&(e.jobId=t.jobId),t.jobName!==void 0&&(e.jobName=t.jobName),Nn(e)}else if(t.type===`orc_state`)sr(t);else if(t.type===`memory_status`)a(()=>import(`./memory-Bk_cb3sw.js`).then(e=>e.refreshMemorySidebar()),__vite__mapDeps([0]));else if(t.type===`steer_started`){let e=N(t);if(e&&t.traceRunId&&b({...e,runId:t.traceRunId}),t.mode===`native-input`||t.mode===`cancel-reprompt`||K&&v(K))return;ve(),nn(null),P(``),x(`steering`)}else if(t.type===`new_message`&&(t.source===`telegram`||t.source===`discord`||t.source===`slack`||t.source===`bgtask`||t.source===`cli`||t.source===`goal`||t.external===!0||t.fromQueue===!0)){let e=t.role===`assistant`?`agent`:t.role||`user`,n=t.content||``,r=t.cli;a(()=>import(`./message-history-GAtF_wbZ.js`).then(i=>{if(i.historyReloadInFlight()){i.loadMessages().then(()=>i.loadMessages()).catch(e=>console.warn(`[ws] new_message reload after in-flight failed`,e));return}S(e,n,r,{...t.steered===void 0?{}:{steered:t.steered}})}),__vite__mapDeps([0]))}else t.type===`system_notice`?E(`ℹ️ ${o(t.text||``)}`,`tool-activity`):t.type===`replay_gap`?Yn():t.type===`worker_stalled`?E(`⚠️ Worker stalled: ${o(t.employeeName||t.agentId||``)}`,`tool-activity`):t.type===`steer_context_lost`?E(`⚠️ 이전 턴의 진행 내용을 살리지 못했습니다 — 새 턴은 그 맥락 없이 시작합니다.`,`tool-activity`):t.type===`worker_disconnected`?E(`🔌 Worker disconnected: ${o(t.agentId||``)} (exit ${o(String(t.exitCode??`?`))})`,`tool-activity`):t.type===`worker_timeout`?E(`⏱️ Worker timed out: ${o(t.employeeName||t.agentId||``)}`,`tool-activity`):t.type===`alert_escalation`?E(o(t.message||``),`tool-activity`):t.type===`schedule_wakeup_failed`?E(`⚠️ Wakeup failed — ${o(String(t.reason||``))}: ${o(String(t.error||``))}`,`tool-activity`):t.type===`goal_continuation_failed`?E(`⚠️ Goal continuation failed: ${o(String(t.error||``))}`,`tool-activity`):t.type===`settings_change`?An(t):t.type===`session_list`?c(t):(t.type===`session_switched`||t.type===`session_created`)&&(ue(),X(),dn(),U.invalidateIdentity(),window.location.reload())}function sr(e){let t=++Gn;Wn.then(()=>{t===Gn&&Ft(e.scope,on)&&(Hn(typeof e.state==`string`?e.state:`IDLE`,e.title),Pn({taskAnchor:e.taskAnchor||null,resolvedSelection:e.resolvedSelection||null,interview:e.interview||null}),zn(e.buildBudget||null,typeof e.state==`string`?e.state:`IDLE`))})}function cr(e){return Kt[e]||null}var lr=`sidebarState`,ur=900,dr=768;function fr(){return window.innerWidth<=dr}function pr(){document.body.classList.remove(`left-expanded`,`right-expanded`)}function mr(e){let t=`${e}-expanded`,n=e===`left`?`right-expanded`:`left-expanded`,r=!document.body.classList.contains(t);document.body.classList.remove(n),document.body.classList.toggle(t,r)}function hr(){let e={};try{e=JSON.parse(localStorage.getItem(lr)||`{}`)}catch{}e.left&&document.body.classList.add(`left-collapsed`),e.right&&document.body.classList.add(`right-collapsed`);let t=fr();document.getElementById(`toggleLeft`)?.addEventListener(`click`,_r),document.getElementById(`toggleRight`)?.addEventListener(`click`,vr),window.addEventListener(`resize`,()=>{let e=fr();if(window.innerWidth>ur){pr();let e={};try{e=JSON.parse(localStorage.getItem(lr)||`{}`)}catch{}document.body.classList.toggle(`left-collapsed`,!!e.left),document.body.classList.toggle(`right-collapsed`,!!e.right)}else document.body.classList.remove(`left-collapsed`,`right-collapsed`),e!==t&&pr();t=e,xr()}),window.innerWidth<=ur&&(document.body.classList.remove(`left-collapsed`,`right-collapsed`),fr()&&pr()),xr()}function gr(){return window.innerWidth<=ur}function _r(){gr()?mr(`left`):document.body.classList.toggle(`left-collapsed`),Sr(),xr()}function vr(){gr()?mr(`right`):document.body.classList.toggle(`right-collapsed`),br()&&document.getElementById(`tabAgents`)?.classList.contains(`active`)&&a(()=>import(`./employees-BQaJNp-u.js`).then(e=>e.loadEmployees(!0)),__vite__mapDeps([0])),Sr(),xr()}function yr(){return gr()?document.body.classList.contains(`left-expanded`):!document.body.classList.contains(`left-collapsed`)}function br(){return gr()?document.body.classList.contains(`right-expanded`):!document.body.classList.contains(`right-collapsed`)}function xr(){let e=document.getElementById(`toggleLeft`),t=document.getElementById(`toggleRight`);e&&(e.innerHTML=yr()?f.chevronLeft:f.chevronRight),t&&(t.innerHTML=br()?f.chevronRight:f.chevronLeft)}function Sr(){localStorage.setItem(lr,JSON.stringify({left:document.body.classList.contains(`left-collapsed`),right:document.body.classList.contains(`right-collapsed`)}))}export{Kn as a,Z as c,lt as d,je as f,vr as i,Pt as l,br as n,cr as o,_r as r,qn as s,hr as t,Mt as u};
|
|
49
|
+
${r(`Verify`,e.spent.verificationRounds,e.maxVerificationRounds)}`}async function Bn(){try{let t=await fetch(`${n}/api/goal`);if(!t.ok)return;let r=await t.json();r.goal?e.activeGoal={id:r.goal.id,objective:r.goal.objective,status:r.goal.status,createdAt:r.goal.createdAt,updatedAt:r.goal.updatedAt,lastCheckpointSummary:r.goal.lastCheckpoint?.summary,nextAction:r.goal.lastCheckpoint?.nextAction}:e.activeGoal=null,Vn()}catch{}}function Vn(){let t=document.getElementById(`goalCockpit`);if(!t)return;let n=e.activeGoal;if(!n||n.status===`complete`||n.status===`cancelled`){t.hidden=!0,t.innerHTML=``;return}t.hidden=!1,t.replaceChildren();let r=n.status===`paused`?`paused`:n.status===`blocked`?`blocked`:`active`,i=document.createElement(`span`);i.className=`goal-objective`,i.title=n.objective,i.textContent=n.objective;let a=document.createElement(`span`);if(a.className=`goal-status goal-status--${r}`,a.textContent=n.status,t.append(i,a),n.nextAction){let e=document.createElement(`span`);e.className=`goal-next`,e.textContent=n.nextAction,t.append(e)}}function Hn(t,n){let r=new Set([`IDLE`,`I`,`P`,`A`,`B`,`C`,`D`]).has(t)?t:`IDLE`;if(e.orcState=r,r===`IDLE`||r===`D`)document.body.removeAttribute(`data-orc-state`),document.body.style.removeProperty(`--orc-glow`);else{document.body.setAttribute(`data-orc-state`,r);let e=`--orc-glow-${r}`,t=getComputedStyle(document.documentElement).getPropertyValue(e).trim();document.body.style.setProperty(`--orc-glow`,t)}document.body.classList.add(`orc-pulse`),setTimeout(()=>document.body.classList.remove(`orc-pulse`),700);let i=document.getElementById(`orcStateBadge`);i&&(i.textContent={IDLE:``,I:`INTERVIEW`,P:`PLAN`,A:`AUDIT`,B:`BUILD`,C:`CHECK`,D:`DONE`}[r],i.style.display=r===`IDLE`?`none`:`inline-block`);let a=document.getElementById(`pabcRoadmap`),o=document.getElementById(`sharkRunner`),s=document.getElementById(`pabcBrand`);if(a&&o){if(!a.dataset.resizeObserved){a.dataset.resizeObserved=`1`,new ResizeObserver(()=>{G&&o.classList.contains(`running`)&&Gt(a,o,G)}).observe(a);let e=0;window.addEventListener(`resize`,()=>{cancelAnimationFrame(e),e=requestAnimationFrame(()=>{G&&o.classList.contains(`running`)&&Gt(a,o,G)})})}if(r===`IDLE`)a.classList.remove(`visible`,`shimmer-out`),o.classList.remove(`running`),G=null;else if(r===`D`){W.forEach(e=>{let t=document.getElementById(`dot-${e}`);t&&(t.className=`pabc-dot done`,t.setAttribute(`data-phase`,e))});for(let e=0;e<W.length;e++){let t=document.getElementById(`pabc-conn-${e}`);t&&(t.className=`pabc-connector done`)}o.classList.remove(`running`),G=null,a.classList.add(`shimmer-out`),setTimeout(()=>a.classList.remove(`visible`,`shimmer-out`),1e3)}else{a.classList.remove(`shimmer-out`),a.classList.add(`visible`),o.classList.add(`running`);let e=W.indexOf(r);W.forEach((t,n)=>{let r=document.getElementById(`dot-${t}`);r&&(r.className=`pabc-dot ${n<e?`done`:n===e?`active`:`future`}`,r.setAttribute(`data-phase`,t))});for(let t=0;t<W.length;t++){let n=document.getElementById(`pabc-conn-${t}`);n&&(n.className=`pabc-connector ${t<e?`done`:``}`)}G=r,requestAnimationFrame(()=>Gt(a,o,r))}s&&n&&(s.textContent=n)}}var Un=!1,Wn=Promise.resolve(),Gn=0;function Kn(){sn=!1,X(),U.channelChanged(),jn(),Un||(Un=!0,ar()),rr(),Ye(u())}var qn=Kn;function Jn(e){sn=e===`sse`,X(),e===`sse`&&U.sseOpened(),console.log(`[${e}] connected`),tr=2e3,Qn();let t=Date.now()-bn<1e4;Wn=a(()=>import(`./ui-BbR_fFiK.js`).then(async n=>{if(n.cleanupToolActivity(),!t)try{await n.loadMessages(),bn=Date.now()}catch(t){console.error(`[${e}] loadMessages failed`,t)}await Z(`reconnect`,{hydrateRun:!0}).catch(()=>{}).finally(()=>n.reconcileChatBottomAfterRestore(`reconnect`)),a(()=>import(`./memory-PPofQPeB.js`).then(e=>e.refreshMemorySidebar()),__vite__mapDeps([0])).catch(()=>{}),a(()=>import(`./bgtask-badge-CnVkcp3c.js`).then(e=>e.refreshBgtaskBadge()),__vite__mapDeps([0])).catch(()=>{})}),__vite__mapDeps([0]))}function Yn(){X(),un=!0,h(`replay_gap`),Wn=a(()=>import(`./ui-BbR_fFiK.js`).then(async e=>{try{await e.loadMessages(),bn=Date.now()}catch(e){console.error(`[sse] replay gap loadMessages failed`,e)}await Z(`replay_gap`,{hydrateRun:!0}).catch(()=>{}).finally(()=>e.reconcileChatBottomAfterRestore(`replay_gap`))}),__vite__mapDeps([0]))}var Xn=8e3,Zn=null;function Qn(){Zn!==null&&(window.clearTimeout(Zn),Zn=null)}function $n(){sn=!1,X(),U.unavailable(),console.log(`[channel] disconnected`),he(),Zn===null&&(Zn=window.setTimeout(()=>{Zn=null,x(`idle`),E(`${f.exec} ${s(`ws.disconnected`)}`,`tool-activity`)},Xn))}var $=null,er=!1,tr=2e3,nr=3e4;function rr(){if($){er=!0;try{$.close()}catch{}$=null}}function ir(){if($)return;console.warn(`[channel] /api/events unavailable — falling back to legacy WebSocket`);let e=`ws://${location.host}`,t=new WebSocket(`${e}${n}/?lang=${u()}`);$=t,er=!1,t.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch{console.warn(`[ws] malformed message:`,e.data);return}if(!t||typeof t!=`object`||typeof t.type!=`string`){console.warn(`[ws] invalid message shape:`,t);return}or(t)};let r=!1;t.onopen=()=>{r=!0,tr=2e3,Jn(`ws`)},t.onclose=()=>{if($===t&&($=null),er){er=!1;return}if(r){$n(),setTimeout(Kn,2e3);return}tr=Math.min(tr*2,nr),setTimeout(Kn,tr)}}function ar(){Ke(`widget`,`widget_updated`,e=>{let t=e.chatId,n=e.widgetId;typeof t==`string`&&typeof n==`string`&&a(()=>import(`./iframe-renderer-DWx9v2Iz.js`).then(e=>e.refreshFileWidget(t,n)),__vite__mapDeps([0])).catch(e=>console.warn(`[widget] refresh failed:`,e.message))}),Ke(`*`,null,e=>{U.event(String(e.event),e),or({...e,type:e.event})}),Ue(()=>Jn(`sse`)),We(()=>$n()),Ge(()=>{sn=!1,X(),U.unavailable(),ir()})}function or(t){if(t.type===`agent_runtime`){let e=re(t);e&&hn(e,t.sseReplay===!0);return}if(t.type===`agent_runtime_gap`){let e=t,n=N(e);n&&typeof e.runId==`string`&&e.runId.length>0&&e.runId.length<=240&&mn({...n,runId:e.runId});return}if(t.type===`agent_tool`){if(I())return;let e=typeof t.traceRunId==`string`&&t.traceRunId?t.traceRunId:null,n=Qt(t.traceSeq);if(Zt(e)||tn(e,n,t.sseReplay===!0))return;++J,t.isEmployee!==!0&&rn(e);let r=t.toolType===`thinking`?`thinking`:t.toolType===`search`?`search`:t.toolType===`subagent`?`subagent`:`tool`;F({id:`step-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,type:r,icon:t.icon||f.tool,rawIcon:t.rawIcon||t.icon||``,label:t.label||``,isEmployee:t.isEmployee===!0,detail:t.detail||``,stepRef:t.stepRef||``,traceRunId:t.traceRunId||``,traceSeq:t.traceSeq,detailAvailable:t.detailAvailable,detailBytes:t.detailBytes,rawRetentionStatus:t.rawRetentionStatus,status:t.status||`running`,startTime:typeof t.startedAt==`number`&&t.startedAt>0?t.startedAt:Date.now()},typeof t.startedAt==`number`&&t.startedAt>0?t.startedAt:void 0),$t(e,n)}else if(t.type===`agent_output`||t.type===`agent_chunk`){if(I())return;let e=typeof t.traceRunId==`string`&&t.traceRunId?t.traceRunId:null;if(Zt(e))return;rn(e);let n=t.text||``;if(e&&typeof t.textLen==`number`){if(t.textLen<=q){t.sseReplay!==!0&&t.textLen<q&&(console.warn(`[ws] live agent_output behind applied cursor — resync (${t.textLen} < ${q})`),q=t.textLen);return}let e=t.textLen-q;e<n.length&&(n=n.slice(-e)),q=t.textLen}++J,_e(n)}else if(t.type===`agent_status`){if(!t.running&&I())return;t.running&&I()&&pe(),++J,t.running===void 0?x(t.status||`idle`):x(t.running?`running`:`idle`),t.agentId&&t.phase&&(Kt[t.agentId]={phase:t.phase,phaseLabel:t.phaseLabel||``},a(()=>import(`./employees-CsvI0_5V.js`).then(e=>e.loadEmployees()),__vite__mapDeps([0])))}else if(t.type===`bgtask_update`)a(()=>import(`./bgtask-badge-CnVkcp3c.js`).then(e=>e.applyBgtaskUpdate(t)),__vite__mapDeps([0])).catch(()=>{});else if(t.type===`queue_update`)C(t.pending||0),Array.isArray(t.queued)&&Qe(t.queued),Z(`queue_update`).catch(()=>{});else if(t.type===`agent_retry`){let e=Number(t.delay??0),n=t.reason,r=o(String(n||`429`));E(s(e>0?`ws.retry`:`ws.retryNow`,{cli:o(t.cli||``),reason:r,delay:e}),`tool-activity`)}else if(t.type===`agent_fallback`)E(s(`ws.fallback`,{from:o(t.from||``),to:o(t.to||``)}),`tool-activity`);else if(t.type===`agent_smoke`)E(`${f.warning} ${o(t.cli||`agent`)}: smoke response detected — auto-continuing`,`tool-activity`);else if(t.type===`goal_done`)e.activeGoal=null,Vn(),E(`🎯 Goal completed${t.source===`ai_output`?` (detected from AI output)`:``}`,`tool-activity`);else if(t.type===`goal_cancel`)e.activeGoal=null,Vn(),E(`🎯 Goal cancelled`,`tool-activity`);else if(t.type===`schedule_wakeup`)E(`⏰ Wakeup scheduled in ${t.delaySeconds}s — ${o(String(t.reason||``))}`,`tool-activity`);else if(t.type===`goal_continuation_limit`)E(`⚠️ Goal continuation limit reached (${t.attempts} attempts)`,`tool-activity`);else if(t.type===`goal_continuation`)E(`🎯 Active goal — auto-continuing`,`tool-activity`);else if(t.type===`agent_done`){if(t.steered===!0){let e=N(t);e&&t.traceRunId&&b({...e,runId:t.traceRunId})}t.steered||I()||gn(t)}else if(t.type===`orchestrate_done`)gn(t);else if(t.type===`clear`){++J,ue(),dn(),oe(e.activityIdentity),d(),he(),m().clear();let t=document.getElementById(`chatMessages`);t&&(t.innerHTML=``),vn(),O(e.activityIdentity?.sessionId??null,new Set),a(()=>import(`./idb-cache-CFBnPfHz.js`).then(e=>e.clearScopedCache()),[]).catch(()=>{})}else if(t.type===`session_reset`)E(`${f.refresh} Session reset — history preserved`,`tool-activity`);else if(t.type===`agent_added`||t.type===`agent_updated`||t.type===`agent_deleted`)a(()=>import(`./employees-CsvI0_5V.js`).then(e=>e.loadEmployees()),__vite__mapDeps([0]));else if(t.type===`heartbeat_pending`){let e={pending:t.pending||0,deferredPending:t.deferredPending||0};t.reason!==void 0&&(e.reason=t.reason),t.policy!==void 0&&(e.policy=t.policy),t.jobId!==void 0&&(e.jobId=t.jobId),t.jobName!==void 0&&(e.jobName=t.jobName),Nn(e)}else if(t.type===`orc_state`)sr(t);else if(t.type===`memory_status`)a(()=>import(`./memory-PPofQPeB.js`).then(e=>e.refreshMemorySidebar()),__vite__mapDeps([0]));else if(t.type===`steer_started`){let e=N(t);if(e&&t.traceRunId&&b({...e,runId:t.traceRunId}),t.mode===`native-input`||t.mode===`cancel-reprompt`||K&&v(K))return;ve(),nn(null),P(``),x(`steering`)}else if(t.type===`new_message`&&(t.source===`telegram`||t.source===`discord`||t.source===`slack`||t.source===`bgtask`||t.source===`cli`||t.source===`goal`||t.external===!0||t.fromQueue===!0)){let e=t.role===`assistant`?`agent`:t.role||`user`,n=t.content||``,r=t.cli;a(()=>import(`./message-history-bw4qF01Z.js`).then(i=>{if(i.historyReloadInFlight()){i.loadMessages().then(()=>i.loadMessages()).catch(e=>console.warn(`[ws] new_message reload after in-flight failed`,e));return}S(e,n,r,{...t.steered===void 0?{}:{steered:t.steered}})}),__vite__mapDeps([0]))}else t.type===`system_notice`?E(`ℹ️ ${o(t.text||``)}`,`tool-activity`):t.type===`replay_gap`?Yn():t.type===`worker_stalled`?E(`⚠️ Worker stalled: ${o(t.employeeName||t.agentId||``)}`,`tool-activity`):t.type===`steer_context_lost`?E(`⚠️ 이전 턴의 진행 내용을 살리지 못했습니다 — 새 턴은 그 맥락 없이 시작합니다.`,`tool-activity`):t.type===`worker_disconnected`?E(`🔌 Worker disconnected: ${o(t.agentId||``)} (exit ${o(String(t.exitCode??`?`))})`,`tool-activity`):t.type===`worker_timeout`?E(`⏱️ Worker timed out: ${o(t.employeeName||t.agentId||``)}`,`tool-activity`):t.type===`alert_escalation`?E(o(t.message||``),`tool-activity`):t.type===`schedule_wakeup_failed`?E(`⚠️ Wakeup failed — ${o(String(t.reason||``))}: ${o(String(t.error||``))}`,`tool-activity`):t.type===`goal_continuation_failed`?E(`⚠️ Goal continuation failed: ${o(String(t.error||``))}`,`tool-activity`):t.type===`settings_change`?An(t):t.type===`session_list`?c(t):(t.type===`session_switched`||t.type===`session_created`)&&(ue(),X(),dn(),U.invalidateIdentity(),window.location.reload())}function sr(e){let t=++Gn;Wn.then(()=>{t===Gn&&Ft(e.scope,on)&&(Hn(typeof e.state==`string`?e.state:`IDLE`,e.title),Pn({taskAnchor:e.taskAnchor||null,resolvedSelection:e.resolvedSelection||null,interview:e.interview||null}),zn(e.buildBudget||null,typeof e.state==`string`?e.state:`IDLE`))})}function cr(e){return Kt[e]||null}var lr=`sidebarState`,ur=900,dr=768;function fr(){return window.innerWidth<=dr}function pr(){document.body.classList.remove(`left-expanded`,`right-expanded`)}function mr(e){let t=`${e}-expanded`,n=e===`left`?`right-expanded`:`left-expanded`,r=!document.body.classList.contains(t);document.body.classList.remove(n),document.body.classList.toggle(t,r)}function hr(){let e={};try{e=JSON.parse(localStorage.getItem(lr)||`{}`)}catch{}e.left&&document.body.classList.add(`left-collapsed`),e.right&&document.body.classList.add(`right-collapsed`);let t=fr();document.getElementById(`toggleLeft`)?.addEventListener(`click`,_r),document.getElementById(`toggleRight`)?.addEventListener(`click`,vr),window.addEventListener(`resize`,()=>{let e=fr();if(window.innerWidth>ur){pr();let e={};try{e=JSON.parse(localStorage.getItem(lr)||`{}`)}catch{}document.body.classList.toggle(`left-collapsed`,!!e.left),document.body.classList.toggle(`right-collapsed`,!!e.right)}else document.body.classList.remove(`left-collapsed`,`right-collapsed`),e!==t&&pr();t=e,xr()}),window.innerWidth<=ur&&(document.body.classList.remove(`left-collapsed`,`right-collapsed`),fr()&&pr()),xr()}function gr(){return window.innerWidth<=ur}function _r(){gr()?mr(`left`):document.body.classList.toggle(`left-collapsed`),Sr(),xr()}function vr(){gr()?mr(`right`):document.body.classList.toggle(`right-collapsed`),br()&&document.getElementById(`tabAgents`)?.classList.contains(`active`)&&a(()=>import(`./employees-CsvI0_5V.js`).then(e=>e.loadEmployees(!0)),__vite__mapDeps([0])),Sr(),xr()}function yr(){return gr()?document.body.classList.contains(`left-expanded`):!document.body.classList.contains(`left-collapsed`)}function br(){return gr()?document.body.classList.contains(`right-expanded`):!document.body.classList.contains(`right-collapsed`)}function xr(){let e=document.getElementById(`toggleLeft`),t=document.getElementById(`toggleRight`);e&&(e.innerHTML=yr()?f.chevronLeft:f.chevronRight),t&&(t.innerHTML=br()?f.chevronRight:f.chevronLeft)}function Sr(){localStorage.setItem(lr,JSON.stringify({left:document.body.classList.contains(`left-collapsed`),right:document.body.classList.contains(`right-collapsed`)}))}export{Kn as a,Z as c,lt as d,je as f,vr as i,Pt as l,br as n,cr as o,_r as r,qn as s,hr as t,Mt as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./state-Dl-xxPoS.js";import{i as t}from"./api-CUtiCd2-.js";import{A as n,O as r,P as i}from"./render-
|
|
1
|
+
import{t as e}from"./state-Dl-xxPoS.js";import{i as t}from"./api-CUtiCd2-.js";import{A as n,O as r,P as i}from"./render-DfYro-fG.js";import{a,t as o}from"./icons-CVkqyECl.js";var s=[`productivity`,`communication`,`devtools`,`ai-media`,`utility`,`smarthome`,`automation`];function c(e,t){return!t||[e.id,e.name,e.description,e.category,e.requires?.env?.join(` `),e.requires?.bins?.join(` `),e.install].filter(Boolean).join(` `).toLowerCase().includes(t)}async function l(){try{let t=await n(`/api/skills`);e.allSkills=await t.json(),u()}catch{let e=document.getElementById(`skillsList`);e&&(e.innerHTML=`<div style="color:var(--text-dim);font-size:11px">${i(`skill.loadFail`)}</div>`)}}function u(){let t=document.getElementById(`skillsList`),n=document.getElementById(`skillsCount`);if(!t||!n)return;let l=e.allSkills,u=l;e.currentSkillFilter===`installed`?u=l.filter(e=>e.enabled):e.currentSkillFilter===`other`?u=l.filter(e=>!s.includes(e.category||``)):e.currentSkillFilter!==`all`&&(u=l.filter(t=>t.category===e.currentSkillFilter));let d=e.currentSkillSearch.trim().toLowerCase();u=u.filter(e=>c(e,d));let f=l.filter(e=>e.enabled).length;if(n.textContent=d?i(`skill.countFiltered`,{shown:u.length,active:f,total:l.length}):i(`skill.count`,{active:f,total:l.length}),!u.length){t.innerHTML=`<div class="skill-empty">${r(i(`skill.search.empty`))}</div>`;return}t.innerHTML=u.map(e=>{let t=[];return e.requires?.env&&t.push(`${o.key} `+e.requires.env.map(e=>r(e)).join(`, `)),e.requires?.bins&&t.push(`${o.settings} `+e.requires.bins.map(e=>r(e)).join(`, `)),e.install&&t.push(r(e.install)),`
|
|
2
2
|
<div class="skill-card ${e.enabled?`enabled`:``}">
|
|
3
3
|
<div class="skill-card-header">
|
|
4
4
|
<span class="skill-emoji">${e.emoji?a(e.emoji):o.tool}</span>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./skills-D_2adqge.js";export{e as loadSkills};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./api-CUtiCd2-.js";import{O as t,P as n}from"./render-
|
|
1
|
+
import{n as e}from"./api-CUtiCd2-.js";import{O as t,P as n}from"./render-DfYro-fG.js";import{t as r}from"./locale-B9w_kUtW.js";var i={activeCli:o(`activeCli`,2,1,2,2,1,3),model:o(`model`,2,1,1,2,1,2),effort:o(`effort`,2,1,1),permissions:o(`permissions`,2,1,1),flushAgent:o(`flushAgent`,2,1,1,2,1,3),employees:o(`employees`,3,3,2,4,1,2),skills:o(`skills`,2,1,1,4,1,3),activeChannel:o(`activeChannel`,2,1,1),telegram:{...o(`telegram`,2,1,2,8),docLinks:[{url:`https://t.me/BotFather`,labelKey:`help.telegram.link.botfather`},{url:`https://core.telegram.org/bots/tutorial`,labelKey:`help.telegram.link.docs`}]},discord:{...o(`discord`,2,1,2,9),docLinks:[{url:`https://discord.com/developers/applications`,labelKey:`help.discord.link.portal`},{url:`https://discord.com/developers/docs/getting-started`,labelKey:`help.discord.link.docs`}]},slack:{...o(`slack`,2,1,2,9),docLinks:[{url:`https://api.slack.com/apps`,labelKey:`help.slack.link.portal`},{url:`https://docs.slack.dev/apis/events-api/using-socket-mode/`,labelKey:`help.slack.link.docs`}]},fallbackOrder:o(`fallbackOrder`,2,1,1,2,1,3),mcp:o(`mcp`,2,1,1,4,1,5),memory:o(`memory`,2,1,2,4,1,2),stt:o(`stt`,2,1,1),promptTemplates:o(`promptTemplates`,2,1,1),chatInput:o(`chatInput`,3,2,2),orchestration:o(`orchestration`,3,2,2,8,1,8),attachments:o(`attachments`,3,2,2),diagrams:o(`diagrams`,3,2,2),keyboardShortcuts:o(`keyboardShortcuts`,3,2,2,3,2,3),session:o(`session`,3,1,2,8,1,9),cliTools:o(`cliTools`,3,1,2,6,1,9),agentControl:o(`agentControl`,3,1,2,6,1,6),goals:o(`goals`,3,1,2,10,1,25)};function a(e){return typeof e==`string`&&Object.prototype.hasOwnProperty.call(i,e)}function o(e,t,n,r,i=2,a=1,o=0){return{titleKey:`help.${e}.title`,introKey:`help.${e}.intro`,effectKey:`help.${e}.effect`,useWhenKeys:s(`help.${e}.use`,t),howToKeys:s(`help.${e}.howTo`,i),exampleKeys:s(`help.${e}.example`,a),avoidWhenKeys:s(`help.${e}.avoid`,n),relatedKeys:s(`help.${e}.related`,r),...o>0?{subcmdKeys:s(`help.${e}.subcmd`,o)}:{}}}function s(e,t){return Array.from({length:t},(t,n)=>`${e}.${n+1}`)}var c=!1,l=null,u=null,d=null,f=null,p=null,m=!1;function h(){c||(c=!0,document.addEventListener(`click`,v),document.addEventListener(`keydown`,y,!0))}function g(e,t=null,n=[e]){if(!i[e]){console.warn(`[help-dialog] unknown topic:`,e);return}b(),p=t,x(e,T(n,e)),l?.classList.add(`open`),l?.setAttribute(`aria-hidden`,`false`),m=!0,requestAnimationFrame(()=>f?.focus())}function _(){if(!m)return;l?.classList.remove(`open`),l?.setAttribute(`aria-hidden`,`true`),m=!1;let e=p;p=null,e?.focus()}function v(e){let t=e.target?.closest(`[data-help-topic]`);if(!t)return;let n=t.getAttribute(`data-help-topic`);if(!a(n)){console.warn(`[help-dialog] invalid topic:`,n);return}e.preventDefault(),g(n,t,w(t.getAttribute(`data-help-topics`),n))}function y(e){m&&e.key===`Escape`&&(e.preventDefault(),e.stopImmediatePropagation(),_())}function b(){if(l&&u&&d&&f)return;l=document.createElement(`div`),l.id=`helpDialog`,l.className=`modal-overlay help-dialog-overlay`,l.setAttribute(`role`,`presentation`),l.setAttribute(`aria-hidden`,`true`),l.addEventListener(`click`,e=>{e.target===l&&_()});let e=document.createElement(`div`);e.className=`modal-box help-dialog-box`,e.setAttribute(`role`,`dialog`),e.setAttribute(`aria-modal`,`true`),e.setAttribute(`aria-labelledby`,`helpDialogTitle`),e.addEventListener(`click`,e=>e.stopPropagation());let t=document.createElement(`div`);t.className=`modal-header help-dialog-header`,u=document.createElement(`span`),u.id=`helpDialogTitle`,f=document.createElement(`button`),f.type=`button`,f.className=`btn-modal-close help-dialog-close`,f.setAttribute(`aria-label`,n(`help.close`)),f.textContent=`x`,f.addEventListener(`click`,()=>_()),d=document.createElement(`div`),d.className=`help-dialog-body`;let r=document.createElement(`div`);r.className=`modal-footer help-dialog-footer`;let i=document.createElement(`button`);i.type=`button`,i.className=`btn-save help-dialog-done`,i.textContent=n(`help.close`),i.addEventListener(`click`,()=>_()),t.append(u,f),r.append(i),e.append(t,d,r),l.append(e),document.body.append(l)}function x(e,t=[e]){if(!u||!d||!f)return;let r=i[e];u.textContent=n(r.titleKey),f.setAttribute(`aria-label`,n(`help.close`)),d.replaceChildren();let a=document.createElement(`div`);if(a.className=`help-dialog-content`,S(a,r),t.length<=1){d.append(a);return}let o=document.createElement(`div`);o.className=`help-dialog-layout`,o.append(C(t,e),a),d.append(o)}function S(e,t){t.docLinks?.length&&E(e,t.docLinks),D(e,n(`help.section.what`),n(t.introKey)),D(e,n(`help.section.effect`),n(t.effectKey),`help-effect-text`),O(e,n(`help.section.useWhen`),t.useWhenKeys),A(e,n(`help.section.howTo`),t.howToKeys),O(e,n(`help.section.example`),t.exampleKeys,!1,`help-example-list`),t.avoidWhenKeys?.length&&O(e,n(`help.section.avoidWhen`),t.avoidWhenKeys),t.subcmdKeys?.length&&j(e,n(`help.section.commands`),t.subcmdKeys),t.relatedKeys?.length&&O(e,n(`help.section.related`),t.relatedKeys,!0)}function C(e,t){let r=document.createElement(`nav`);r.className=`help-dialog-nav`,r.setAttribute(`aria-label`,n(`help.section.related`));for(let a of e){let o=i[a],s=document.createElement(`button`);s.type=`button`,s.className=`help-dialog-nav-item`,s.textContent=n(o.titleKey),a===t&&(s.classList.add(`active`),s.setAttribute(`aria-current`,`page`)),s.addEventListener(`click`,()=>x(a,e)),r.append(s)}return r}function w(e,t){return T(e?.split(/[\s,]+/).filter(Boolean)??[],t)}function T(e,t){let n=[];for(let t of e)a(t)&&!n.includes(t)&&n.push(t);return n.includes(t)||n.unshift(t),n}function E(e,t){let r=document.createElement(`section`);r.className=`help-dialog-section help-doc-links`;let i=document.createElement(`nav`);i.className=`help-doc-links-nav`;for(let e of t){let t=document.createElement(`a`);t.href=e.url,t.target=`_blank`,t.rel=`noopener noreferrer`,t.className=`help-doc-link`,t.textContent=n(e.labelKey);let r=document.createElement(`span`);r.className=`help-doc-link-icon`,r.textContent=`↗`,t.append(r),i.append(t)}r.append(i),e.append(r)}function D(e,t,n,r){let i=k(t),a=document.createElement(`p`);r&&(a.className=r),a.textContent=n,i.append(a),e.append(i)}function O(e,t,r,i=!1,a){let o=k(t),s=document.createElement(`ul`);s.className=a??(i?`help-related-list`:`help-dialog-list`);for(let e of r){let t=document.createElement(`li`);t.textContent=n(e),s.append(t)}o.append(s),e.append(o)}function k(e){let t=document.createElement(`section`);t.className=`help-dialog-section`;let n=document.createElement(`h3`);return n.textContent=e,t.append(n),t}function A(e,t,r){let i=k(t),a=document.createElement(`ol`);a.className=`help-dialog-list help-howto-list`;for(let e of r){let t=document.createElement(`li`);t.textContent=n(e),a.append(t)}i.append(a),e.append(i)}function j(e,t,r){let i=k(t),a=document.createElement(`dl`);a.className=`help-subcmd-list`;for(let e of r){let t=n(e),r=t.indexOf(` — `),i=r>=0?t.slice(0,r):t,o=r>=0?t.slice(r+3):``,s=document.createElement(`dt`);s.className=`help-subcmd-cmd`;let c=document.createElement(`code`);c.textContent=i,s.append(c);let l=document.createElement(`dd`);l.className=`help-subcmd-desc`,l.textContent=o,a.append(s,l)}i.append(a),e.append(i)}var M={mcp:`mcp`,memory:`memory`,model:`model`,effort:`effort`,cli:`activeCli`,skill:`skills`,employee:`employees`,orchestrate:`orchestration`,pabcd:`orchestration`,flush:`flushAgent`,fallback:`fallbackOrder`,prompt:`promptTemplates`,browser:`mcp`,status:`activeCli`,steer:`chatInput`,clear:`session`,compact:`session`,reset:`session`,purge:`session`,new:`session`,switch:`session`,sw:`session`,sessions:`session`,ss:`session`,version:`cliTools`,project:`cliTools`,proj:`cliTools`,ide:`cliTools`,file:`cliTools`,forward:`agentControl`,thought:`agentControl`,goal:`goals`,goalplan:`goals`,gd:`goals`,plan:`goals`,interview:`goals`,deliberate:`goals`,planaudit:`goals`,review:`goals`,search:`mcp`,team:`goals`,task:`goals`,help:`keyboardShortcuts`,h:`keyboardShortcuts`,commands:`keyboardShortcuts`,cmd:`keyboardShortcuts`,fork:`session`,quit:`session`,q:`session`,exit:`session`,telegram:`telegram`,discord:`discord`,slack:`slack`,stt:`stt`,attachments:`attachments`,diagrams:`diagrams`};function N(e){let t=e.replace(/^\//,``).trim().split(/\s+/);if(t.length<2||t[t.length-1].toLowerCase()!==`info`)return!1;let n=M[t[0].toLowerCase()];return n?(g(n),!0):!1}var P=[],F=[],I=-1,L=!1,R=null;function z(e){let t=String(e||``).slice(1).trim().split(/\s+/)[0]||``;return t.includes(`/`)||t.includes(`\\`)}var B=()=>document.getElementById(`cmdDropdown`),V=()=>document.getElementById(`chatInput`);function H(e){let t=String(e||``).toLowerCase();return P.filter(e=>`/${e.name}`.startsWith(t))}function U(e){let t=e.workflow?.workflowArgs||[];return t.length?t.map(e=>e.required?`<${e.name}>`:`[${e.name}]`).join(` `):e.args||``}function W(e){let n=e.workflow;return n?`<span class="cmd-meta">
|
|
2
2
|
<span class="cmd-chip">${t(n.phase)}</span>
|
|
3
3
|
<span class="cmd-chip cmd-risk-${t(n.risk)}">${t(n.risk)}</span>
|
|
4
4
|
<span class="cmd-chip">${t(n.output)}</span>
|
|
@@ -17,4 +17,4 @@ import{n as e}from"./api-CUtiCd2-.js";import{O as t,P as n}from"./render-Dp07lZA
|
|
|
17
17
|
${i?`<span class="cmd-args">${t(i)}</span>`:``}
|
|
18
18
|
${o}
|
|
19
19
|
</div>`}).join(``),G(),r.setAttribute(`aria-activedescendant`,I>=0?`cmd-item-${I}`:``);let i=e.querySelector(`.selected`);i&&i.scrollIntoView({block:`nearest`})}function q(e){let t=F[I],n=V();if(!t||!n){Y();return}if(Y(),t.args||!e){n.value=`/${t.name} `,n.focus(),n.selectionStart=n.selectionEnd=n.value.length;return}n.value=`/${t.name}`,n.dispatchEvent(new Event(`cmd-execute`,{bubbles:!0}))}async function J(){try{let t=r(),n=`/api/commands?interface=web&locale=${encodeURIComponent(t)}`;P=await e(n,{headers:{"Accept-Language":t}})||[]}catch(e){console.warn(`[slash-commands] loadCommands failed:`,e.message),P=[]}}function Y(){let e=B();R&&=(clearTimeout(R),null),e&&(e.classList.remove(`visible`),R=setTimeout(()=>{e.classList.contains(`visible`)||(e.style.display=`none`,e.innerHTML=``)},150)),L=!1,I=-1,F=[];let t=V();t&&(t.setAttribute(`aria-expanded`,`false`),t.setAttribute(`aria-activedescendant`,``))}function X(e){let t=String(e||``);if(!t.startsWith(`/`)||t.includes(` `)||t.includes(`
|
|
20
|
-
`)||z(t)){Y();return}F=H(t),I=F.length?0:-1,K()}function Z(e){return L?F.length?e.key===`ArrowDown`?(e.preventDefault(),I=Math.min(F.length-1,I+1),K(),!0):e.key===`ArrowUp`?(e.preventDefault(),I=Math.max(0,I-1),K(),!0):e.key===`Tab`?(e.preventDefault(),q(!1),!0):e.key===`Enter`&&!e.shiftKey&&!e.isComposing?(e.preventDefault(),q(!0),!0):e.key===`Escape`&&(e.preventDefault(),Y(),!0):e.key===`Escape`&&(e.preventDefault(),Y(),!0):(e.key===`ArrowDown`||e.key===`ArrowUp`)&&!e.isComposing&&(X(V()?.value||``),L?(I=e.key===`ArrowUp`?F.length-1:0,K(),e.preventDefault(),!0):!1)}function Q(e){let t=e.target,n=t.closest(`.cmd-info-btn`);if(n){e.preventDefault(),e.stopPropagation();let t=M[n.getAttribute(`data-cmd-info`)||``];t&&a(t)&&(Y(),g(t));return}let r=t.closest(`.cmd-item`);if(!r)return;let i=parseInt(r.dataset.index||`-1`,10);Number.isNaN(i)||i<0||(I=Math.min(i,F.length-1),q(!0))}function $(e){if(!L)return;let t=B(),n=V();if(!t||!n)return;let r=e.target;!t.contains(r)&&r!==n&&Y()}export{
|
|
20
|
+
`)||z(t)){Y();return}F=H(t),I=F.length?0:-1,K()}function Z(e){return L?F.length?e.key===`ArrowDown`?(e.preventDefault(),I=Math.min(F.length-1,I+1),K(),!0):e.key===`ArrowUp`?(e.preventDefault(),I=Math.max(0,I-1),K(),!0):e.key===`Tab`?(e.preventDefault(),q(!1),!0):e.key===`Enter`&&!e.shiftKey&&!e.isComposing?(e.preventDefault(),q(!0),!0):e.key===`Escape`&&(e.preventDefault(),Y(),!0):e.key===`Escape`&&(e.preventDefault(),Y(),!0):(e.key===`ArrowDown`||e.key===`ArrowUp`)&&!e.isComposing&&(X(V()?.value||``),L?(I=e.key===`ArrowUp`?F.length-1:0,K(),e.preventDefault(),!0):!1)}function Q(e){let t=e.target,n=t.closest(`.cmd-info-btn`);if(n){e.preventDefault(),e.stopPropagation();let t=M[n.getAttribute(`data-cmd-info`)||``];t&&a(t)&&(Y(),g(t));return}let r=t.closest(`.cmd-item`);if(!r)return;let i=parseInt(r.dataset.index||`-1`,10);Number.isNaN(i)||i<0||(I=Math.min(i,F.length-1),q(!0))}function $(e){if(!L)return;let t=B(),n=V();if(!t||!n)return;let r=e.target;!t.contains(r)&&r!==n&&Y()}function ee(){return L}export{ee as a,N as c,$ as i,h as l,Q as n,J as o,Z as r,X as s,Y as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./slash-commands-B_Hq5RkC.js";export{e as loadCommands};
|