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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./state-Dl-xxPoS.js";import{i as t,n,r}from"./api-CUtiCd2-.js";import{n as i,o as a}from"./sidebar-
|
|
1
|
+
import{t as e}from"./state-Dl-xxPoS.js";import{i as t,n,r}from"./api-CUtiCd2-.js";import{n as i,o as a}from"./sidebar-C_80w4iY.js";import{O as o,P as s}from"./render-DfYro-fG.js";import{t as c}from"./icons-CVkqyECl.js";import{i as l,r as u,t as d}from"./constants-DmZ9Rjym.js";var f={"React/Vue 기반 UI 컴포넌트 개발, 스타일링":`frontend`,"API 서버, DB 스키마, 비즈니스 로직 구현":`backend`,"프론트엔드와 백엔드 모두 담당":`frontend`,"CI/CD, Docker, 인프라 자동화":`backend`,"테스트 작성, 버그 재현, 품질 관리":`custom`,"데이터 파이프라인, ETL, 분석 쿼리":`data`,"API 문서화, README, 가이드 작성":`docs`,"UI/UX 구현, CSS, 컴포넌트 개발":`frontend`,"API, DB, 서버 로직 구현":`backend`,"데이터 파이프라인, 분석, ML":`data`,"문서화, README, API docs":`docs`,"UI/UX, CSS, components":`frontend`,"API, DB, server logic":`backend`,"Data pipeline, analysis, ML":`data`,"Documentation, README, API docs":`docs`},p={1:`var(--phase-1)`,2:`var(--phase-2)`,3:`var(--phase-3)`,4:`var(--phase-4)`,5:`var(--phase-5)`};function m(e,t){return(t||``).trim()||`default`}function h(e,t){if(e===`claude`){if(t.includes(`claude-opus-5-5`))return`claude-opus-5-5`;if(t.includes(`claude-opus-4-8`))return`claude-opus-4-8`;if(t.includes(`opus`))return`opus`}return t[0]||`default`}async function g(t=!1){if(!t&&!i())return;let r=await n(`/api/employees`);e.employees=r||[],_()}function _(){let t=document.getElementById(`employeesList`);if(!t)return;let n=e.employees;if(n.length===0){t.innerHTML=`<div style="color:var(--text-dim);font-size:11px;padding:4px 0">${s(`emp.addPrompt`)}</div>`;return}let r=l();t.innerHTML=n.map(e=>{let t=e.source===`static`,n=d[e.cli]||[],i=m(e.cli,e.model),l=f[e.role||``],h=l?u.find(e=>e.value===l):u.find(t=>t.prompt===e.role),g=h?h.value:e.role?`custom`:`frontend`,_=g===`custom`,v=a(e.id),y=v?.phase||e.phase,b=v?.phaseLabel||e.phaseLabel,x=y?`<span style="background:${p[y]||`#888`};color:var(--text-on-accent);padding:1px 6px;border-radius:9px;font-size:9px">${o(b||`P`+y)}</span>`:``,S=t?`<span style="background:var(--surface);color:var(--accent);padding:1px 6px;border-radius:9px;font-size:9px;letter-spacing:0.3px">BUILT-IN</span>`:``,C=t?`border-left:2px solid var(--accent);`:``,w=t?`<span style="flex:1;color:var(--text);font-size:12px;font-weight:600">${o(e.name||`Agent`)}</span>`:`<input style="flex:1;background:none;border:none;color:var(--text);font-size:12px;font-weight:600;font-family:inherit;outline:none" value="${o(e.name||`Agent`)}" data-emp-name="${o(e.id)}">`,T=t?``:`<button style="background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px" data-emp-delete="${o(e.id)}" title="${s(`emp.delete`)}">${c.close}</button>`,E=t?`<select disabled title="CLI fixed for built-in employee"><option>${o(e.cli)}</option></select>`:`<select data-emp-cli="${o(e.id)}">${r.map(t=>`<option${e.cli===t?` selected`:``}>${o(t)}</option>`).join(``)}</select>`,D=t?`<div style="font-size:11px;color:var(--text-dim);padding:4px 0">${o(e.role||``)}</div>`:`<select data-emp-role="${o(e.id)}">${u.map(e=>`<option value="${e.value}"${g===e.value?` selected`:``}>${e.label}</option>`).join(``)}</select>
|
|
2
2
|
<textarea data-emp-custom="${o(e.id)}" style="display:${_?`block`:`none`};margin-top:4px;width:100%;height:40px;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:4px 6px;border-radius:4px;font-size:10px;font-family:inherit;resize:vertical" placeholder="${s(`emp.customRole`)}">${_?o(e.role||``):``}</textarea>`;return`
|
|
3
3
|
<div class="settings-group" style="margin-bottom:8px;padding:8px 10px;${C}">
|
|
4
4
|
<div style="display:flex;align-items:center;gap:6px;margin-bottom:6px">
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as e}from"./page-shell-DfinU3mb.js";function t(t){if(t instanceof e){let e=t.detail.trim(),n=`${t.method} ${t.path} → ${t.status}`;return t.status===401||t.status===403?`${n}: instance requires auth.`:t.status>=500||t.status===0?`${n}: instance unreachable.`:e?`${n}: ${e}`:n}return t instanceof Error?t.message||`Unknown error`:String(t)}export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-CkEUZM6i.js";var r=n();function i({id:e,label:t,value:n,onChange:i,placeholder:a,disabled:o,error:s}){return(0,r.jsxs)(`label`,{className:`settings-field settings-field-text`,htmlFor:e,children:[(0,r.jsx)(`span`,{className:`settings-field-label`,children:t}),(0,r.jsx)(`input`,{id:e,type:`text`,value:n,placeholder:a,disabled:o,onChange:e=>i(e.target.value),"aria-invalid":!!s}),s?(0,r.jsx)(`span`,{className:`settings-field-error`,children:s}):null]})}var a=e(t(),1);function o({id:e,label:t,value:n,onChange:i,placeholder:o,disabled:s,error:c,masked:l=!0}){let[u,d]=(0,a.useState)(!l);return(0,r.jsxs)(`label`,{className:`settings-field settings-field-secret`,htmlFor:e,children:[(0,r.jsx)(`span`,{className:`settings-field-label`,children:t}),(0,r.jsxs)(`span`,{className:`settings-field-row`,children:[(0,r.jsx)(`input`,{id:e,type:u?`text`:`password`,value:n,placeholder:o,disabled:s,onChange:e=>i(e.target.value),"aria-invalid":!!c,autoComplete:`off`,spellCheck:!1}),(0,r.jsx)(`button`,{type:`button`,className:`settings-field-reveal`,onClick:()=>d(e=>!e),disabled:s,"aria-pressed":u,children:u?`Hide`:`Show`})]}),c?(0,r.jsx)(`span`,{className:`settings-field-error`,children:c}):null]})}function s({id:e,label:t,value:n,onChange:i,disabled:a,description:o}){return(0,r.jsxs)(`label`,{className:`settings-field settings-field-toggle`,htmlFor:e,children:[(0,r.jsx)(`span`,{className:`settings-field-label`,children:t}),(0,r.jsx)(`input`,{id:e,type:`checkbox`,checked:n,disabled:a,onChange:e=>i(e.target.checked)}),o?(0,r.jsx)(`span`,{className:`settings-field-description`,children:o}):null]})}function c({id:e,label:t,value:n,options:i,onChange:o,disabled:s,error:c,collapsedAfter:l,missingValueLabel:u}){let[d,f]=(0,a.useState)(!1),[p,m]=(0,a.useState)(0),[h,g]=(0,a.useState)(!1),_=(0,a.useRef)(null),v=l!=null&&l<i.length&&i.findIndex(e=>e.value===n)>=l,y=(0,a.useMemo)(()=>l==null||h||v?i:i.slice(0,l),[i,l,h,v]),b=l!=null&&l<i.length,x=h||v,S=y.findIndex(e=>e.value===n),C=(0,a.useMemo)(()=>i.find(e=>e.value===n)||(u?{value:n,label:u}:i[0]),[i,n,u]),w=`${e}-label`,T=`${e}-listbox`;(0,a.useEffect)(()=>{let e=e=>{_.current?.contains(e.target)||f(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,a.useEffect)(()=>{d||g(!1)},[d]),(0,a.useEffect)(()=>{S>=0&&m(S)},[S]);let E=e=>{o(e.value),f(!1)},D=e=>{y.length!==0&&m(t=>(t+e+y.length)%y.length)};return(0,r.jsxs)(`div`,{className:`settings-field settings-field-select`,ref:_,onKeyDown:e=>{e.key===`Escape`&&d&&(e.preventDefault(),e.stopPropagation(),f(!1),_.current?.querySelector(`[role="combobox"]`)?.focus())},children:[(0,r.jsx)(`span`,{className:`settings-field-label`,id:w,children:t}),(0,r.jsxs)(`button`,{id:e,type:`button`,className:`settings-select-trigger${d?` is-open`:``}`,disabled:s||i.length===0,role:`combobox`,"aria-label":`${t}: ${C?.label||`(none)`}`,"aria-haspopup":`listbox`,"aria-expanded":d,"aria-controls":T,"aria-invalid":!!c,onClick:()=>{m(S>=0?S:0),f(e=>!e)},onKeyDown:e=>{if(e.key===`ArrowDown`){e.preventDefault(),d||f(!0),D(1);return}if(e.key===`ArrowUp`){e.preventDefault(),d||f(!0),D(-1);return}if(e.key===`Home`){e.preventDefault(),m(0);return}if(e.key===`End`){e.preventDefault(),m(Math.max(0,y.length-1));return}if(e.key===`Enter`||e.key===` `){e.preventDefault(),d&&y[p]?E(y[p]):f(!0);return}},children:[(0,r.jsx)(`span`,{className:`settings-select-value`,children:C?.label||`(none)`}),(0,r.jsx)(`span`,{className:`settings-select-caret`,"aria-hidden":`true`})]}),d?(0,r.jsxs)(`div`,{className:`settings-select-menu`,id:T,role:`listbox`,"aria-labelledby":w,children:[y.map((e,t)=>(0,r.jsxs)(a.Fragment,{children:[b&&t===l?(0,r.jsx)(`hr`,{className:`settings-select-divider`}):null,(0,r.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":e.value===n,className:`settings-select-option${t===p?` is-active`:``}${e.value===n?` is-selected`:``}`,onMouseEnter:()=>m(t),onClick:()=>E(e),children:[(0,r.jsx)(`span`,{children:e.label}),e.value===n?(0,r.jsx)(`span`,{"aria-hidden":`true`,children:`✓`}):null]})]},e.value)),b&&!x?(0,r.jsx)(`button`,{type:`button`,className:`settings-select-more`,onClick:e=>{e.stopPropagation(),_.current?.querySelector(`[role="combobox"]`)?.focus(),g(!0)},children:`더 보기 ▸`}):null]}):null,c?(0,r.jsx)(`span`,{className:`settings-field-error`,children:c}):null]})}function l({id:e,label:t,value:n,onChange:i,min:a,max:o,step:s,disabled:c,error:l}){return(0,r.jsxs)(`label`,{className:`settings-field settings-field-number`,htmlFor:e,children:[(0,r.jsx)(`span`,{className:`settings-field-label`,children:t}),(0,r.jsx)(`input`,{id:e,type:`number`,value:Number.isFinite(n)?n:0,min:a,max:o,step:s,disabled:c,"aria-invalid":!!l,onChange:e=>{let t=Number(e.target.value);i(Number.isFinite(t)?t:0)}}),l?(0,r.jsx)(`span`,{className:`settings-field-error`,children:l}):null]})}function u({id:e,label:t,value:n,onChange:i,placeholder:o,disabled:s,error:c}){let[l,u]=(0,a.useState)(``),d=()=>{let e=l.trim();if(e){if(n.includes(e)){u(``);return}i([...n,e]),u(``)}},f=e=>{i(n.filter(t=>t!==e))};return(0,r.jsxs)(`div`,{className:`settings-field settings-field-chiplist`,"aria-invalid":!!c,children:[(0,r.jsx)(`label`,{className:`settings-field-label`,htmlFor:e,children:t}),(0,r.jsxs)(`div`,{className:`settings-chiplist-row`,children:[n.map(e=>(0,r.jsxs)(`span`,{className:`settings-chip`,children:[e,(0,r.jsx)(`button`,{type:`button`,className:`settings-chip-remove`,disabled:s,onClick:()=>f(e),"aria-label":`Remove ${e}`,children:`×`})]},e)),(0,r.jsx)(`input`,{id:e,type:`text`,value:l,placeholder:o,disabled:s,onChange:e=>u(e.target.value),onKeyDown:e=>{if(e.key===`Enter`||e.key===`,`)e.preventDefault(),d();else if(e.key===`Backspace`&&l===``&&n.length>0){let e=n[n.length-1];e!==void 0&&f(e)}},onBlur:d})]}),c?(0,r.jsx)(`span`,{className:`settings-field-error`,children:c}):null]})}function d({id:e,label:t,value:n,onChange:i,disabled:o,rows:s=8}){let[c,l]=(0,a.useState)(()=>f(n)),[u,d]=(0,a.useState)(null);(0,a.useEffect)(()=>{l(f(n)),d(null)},[n]);let p=e=>{if(l(e),e.trim()===``){d(null),i(null,!0);return}try{let t=JSON.parse(e);d(null),i(t,!0)}catch(t){let n=t instanceof Error?t.message:`Invalid JSON`;d(n),i(e,!1)}};return(0,r.jsxs)(`label`,{className:`settings-field settings-field-json`,htmlFor:e,children:[(0,r.jsx)(`span`,{className:`settings-field-label`,children:t}),(0,r.jsx)(`textarea`,{id:e,value:c,rows:s,disabled:o,spellCheck:!1,"aria-invalid":!!u,onChange:e=>p(e.target.value)}),u?(0,r.jsx)(`span`,{className:`settings-field-error`,children:u}):null]})}function f(e){if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return``}}export{s as a,c as i,u as n,o,l as r,i as s,d as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./iframe-renderer-DmHYOI1A.js";export{e as refreshFileWidget};
|
|
@@ -0,0 +1,142 @@
|
|
|
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{a as e,t}from"./api-CUtiCd2-.js";import{n}from"./bounded-api-DdpT93LB.js";import{t as r}from"./preload-helper-CfbQpVni.js";import{O as i,T as a,g as o}from"./render-DfYro-fG.js";import{t as s}from"./icons-CVkqyECl.js";import{t as c}from"./copy-text-DjgetgoZ.js";import{a as l,i as u,n as ee,t as d}from"./esm-Q6VOkDbn.js";import{n as f}from"./presentation-DWHWElFr.js";function p(){let e=globalThis.crypto;if(typeof e?.randomUUID==`function`)return e.randomUUID();if(typeof e?.getRandomValues!=`function`)return`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)});let t=new Uint8Array(16);e.getRandomValues(t),t[6]=t[6]&15|64,t[8]=t[8]&63|128;let n=Array.from(t,e=>e.toString(16).padStart(2,`0`)).join(``);return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`}var te=/^(?:(?:\/[^\s]+\/)?(?:bash|zsh|sh))\s+-lc\s+([\s\S]+)$/;function ne(e){let t=e.trim();if(t.length<2)return t;let n=t[0];if(n!==`'`&&n!==`"`)return t;let r=t[t.length-1]===n?t.slice(1,-1):t.slice(1);return n===`'`?r.replace(/'\\''/g,`'`):r.replace(/\\"/g,`"`).replace(/\\`/g,"`").replace(/\\\$/g,`$`).replace(/\\\\/g,`\\`)}function re(e){let t=String(e||``).trim();if(!t)return``;let n=t.match(te);return n&&ne(n[1]||``)||t}function m(e){return re(e)}function h(e){let t=String(e||``);if(!t.trim())return``;let n=t.split(/\r?\n/),r=n[0]||``,i=r.match(/^(\s*\$\s*)([\s\S]+)$/);if(i){let e=m(i[2]||``);return n[0]=`${i[1]}${e}`,n.join(`
|
|
3
|
+
`)}let a=m(r);return a===r.trim()?t:(n[0]=a,n.join(`
|
|
4
|
+
`))}var g=null,_=null,v=new WeakMap,y=160,ie=3e3,ae=1e3,oe=80,se=24,ce=24,le=0,ue=null,b=new Map,x=new Map,de=0,fe=0,pe=0,me=0;function he(e){return e.startedAt??e.steps[0]?.startTime??null}function ge(){let e=_;if(!e||e.collapsed||e.steps.length===0){S();return}let t=e._durationEl??=e.element.querySelector(`.process-duration`);if(!t)return;let n=he(e);if(n===null)return;let r=Math.round((Date.now()-n)/1e3);t.textContent=r>0?`${r}s`:``}function _e(e){g&&_===e||(S(),_=e,g=setInterval(ge,3e3))}function S(){g&&=(clearInterval(g),null),_=null}function ve(e){let t={};for(let n of e){let e=n.type===`thinking`?`${s.thinking} Thinking`:n.type===`search`?`${s.search} Search`:n.type===`subagent`?`${s.robot} Subagent`:`${s.tool} Tool`;t[e]=(t[e]||0)+1}return Object.entries(t).map(([e,t])=>t>1?`${e}×${t}`:e).join(` + `)}function C(e,t=120){let n=e.replace(/\s+/g,` `).trim();return n?n.length>t?`${n.slice(0,t-1)}…`:n:``}function ye(e){if(e.length<=ie)return{detail:e,truncated:!1};let t=`\n[detail truncated: kept ${ie} of ${e.length} chars]`;return{detail:`${e.slice(0,Math.max(0,ie-t.length))}${t}`,truncated:!0}}function w(e){return b.get(e)?.detail||``}function be(e){return e.type===`tool`?{...e,label:m(e.label||``),detail:h(e.detail||``),detailPreview:e.detailPreview?h(e.detailPreview):e.detailPreview}:e}function T(e){let t=be(e),n=h(w(t.id))||t.detail||``,r=ye(n),i=t.detailPreview||C(n,y);return n&&b.set(t.id,{detail:r.detail,originalLength:n.length,truncated:r.truncated}),x.set(t.id,{id:t.id,type:t.type,icon:t.icon,rawIcon:t.rawIcon,label:t.label,isEmployee:t.isEmployee,stepRef:t.stepRef,traceRunId:t.traceRunId,traceSeq:t.traceSeq,detailAvailable:t.detailAvailable,detailBytes:t.detailBytes,rawRetentionStatus:t.rawRetentionStatus,status:t.status,startTime:t.startTime,preview:i,detailLength:n.length,detailTruncated:r.truncated}),{...t,detail:i,detailPreview:i,detailLength:n.length,detailTruncated:r.truncated}}function xe(e,t){let n=t||``,r=w(e),i=r&&n?`${r}\n${n}`:n||r,a=ye(i);i&&b.set(e,{detail:a.detail,originalLength:i.length,truncated:a.truncated});let o=x.get(e);return o&&(o.preview=C(i,y),o.detailLength=i.length,o.detailTruncated=a.truncated),o?.preview||C(i,y)}function Se(e,t){let n=t||w(e),r=ye(n);n&&b.set(e,{detail:r.detail,originalLength:n.length,truncated:r.truncated});let i=C(n,y),a=x.get(e);return a&&(a.preview=i,a.detailLength=n.length,a.detailTruncated=r.truncated),i}function Ce(e){let t=T(e);x.set(e.id,{id:t.id,type:t.type,icon:t.icon,rawIcon:t.rawIcon,label:t.label,isEmployee:t.isEmployee,stepRef:t.stepRef,traceRunId:t.traceRunId,traceSeq:t.traceSeq,detailAvailable:t.detailAvailable,detailBytes:t.detailBytes,rawRetentionStatus:t.rawRetentionStatus,status:t.status,startTime:t.startTime,preview:t.detailPreview||t.detail||``,detailLength:t.detailLength||0,detailTruncated:!!t.detailTruncated})}function we(e){e.element.dataset.processStepIds=e.steps.map(e=>e.id).join(` `)}function Te(e,t=!1){let n=new Set;return t||e.length<=oe?(e.forEach((e,t)=>n.add(t)),n):(e.forEach((t,r)=>{(r<se||r>=e.length-ce||t.status===`running`||t.status===`error`)&&n.add(r)}),n)}function Ee(e){let t=e||s.tool;return t.trim().startsWith(`<svg`)?t:i(t)}function E(e){let t=`process-step-dot ${e.status}`,n=`process-step-badge ${e.type}`,r=e.type.toUpperCase(),a=i(e.label||e.icon||``),o=e.isEmployee?`<span class="process-step-origin" aria-label="Employee tool">(E)</span>`:``,c=Ee(e.icon),l=e.detailPreview||e.detail||``,u=`process-detail-${e.id}`,ee=e.detailAvailable&&e.traceRunId&&e.traceSeq?`<span class="process-step-trace" role="button" tabindex="0" title="Open full trace" aria-label="Open full trace" data-trace-run-id="${i(e.traceRunId)}" data-trace-seq="${String(e.traceSeq)}">Trace</span>`:``,d=C(l,e.type===`thinking`?120:80),f=d?`<span class="process-step-snippet">${i(d)}</span>`:``;return`<div class="process-step process-step-expandable"
|
|
5
|
+
data-step-id="${e.id}"
|
|
6
|
+
data-type="${i(e.type)}"
|
|
7
|
+
data-status="${i(e.status)}"
|
|
8
|
+
data-is-employee="${e.isEmployee?`true`:``}"
|
|
9
|
+
data-step-ref="${i(e.stepRef||``)}"
|
|
10
|
+
data-trace-run-id="${i(e.traceRunId||``)}"
|
|
11
|
+
data-trace-seq="${String(e.traceSeq||``)}"
|
|
12
|
+
data-start-time="${String(e.startTime||Date.now())}">
|
|
13
|
+
<button class="process-step-toggle" aria-expanded="false" aria-controls="${u}">
|
|
14
|
+
<span class="${t}"></span>
|
|
15
|
+
<span class="process-step-icon" aria-hidden="true">${c}</span>
|
|
16
|
+
<span class="${n}">${r}</span>
|
|
17
|
+
<span class="process-step-main">
|
|
18
|
+
${o}
|
|
19
|
+
<span class="process-step-label">${a}</span>
|
|
20
|
+
${f}
|
|
21
|
+
</span>
|
|
22
|
+
${ee}
|
|
23
|
+
<span class="process-step-chevron">${s.chevronRight}</span>
|
|
24
|
+
</button>
|
|
25
|
+
<div class="process-step-details collapsed" id="${u}">
|
|
26
|
+
<pre class="process-step-full" data-detail-lazy="true"${(e.detailLength||0)>0?` data-had-detail="true"`:``}></pre>
|
|
27
|
+
</div>
|
|
28
|
+
</div>`}function De(e){return`<button type="button" class="process-step process-step-omitted" data-expand-steps data-omitted-count="${e}">
|
|
29
|
+
<span class="process-step-snippet">Show ${e} hidden tool step${e===1?``:`s`}</span>
|
|
30
|
+
</button>`}function D(e,t=!1){let n=Te(e,t),r=0,i=[];for(let t=0;t<e.length;t++){let a=e[t];a&&(n.has(t)?(r>0&&(i.push(De(r)),r=0),i.push(E(a))):r++)}return r>0&&i.push(De(r)),i.join(``)}function Oe(e=``,t=!1){return`<div class="process-block${t?` collapsed`:``}">
|
|
31
|
+
<button class="process-summary" aria-expanded="${t?`false`:`true`}">
|
|
32
|
+
<span class="process-dot ${t?`done`:`running`}"></span>
|
|
33
|
+
<span class="process-summary-text">${e}</span>
|
|
34
|
+
<span class="process-duration"></span>
|
|
35
|
+
<span class="process-chevron">${t?s.chevronRight:s.chevronDown}</span>
|
|
36
|
+
</button>
|
|
37
|
+
<div class="process-details">
|
|
38
|
+
<div class="process-steps-inner"></div>
|
|
39
|
+
</div>
|
|
40
|
+
</div>`}function ke(e){let t=e.closest(`.process-step`),n=t?.querySelector(`.process-step-details`),r=n?.querySelector(`.process-step-full`),i=e.querySelector(`.process-step-chevron`);if(!t||!n)return;let a=n.classList.contains(`collapsed`);a&&r?.dataset.detailLazy===`true`?(r.textContent=w(t.dataset.stepId||``)||x.get(t.dataset.stepId||``)?.preview||(r.dataset.hadDetail===`true`?`(detail released to save memory — scroll this message back into view to reload)`:``),delete r.dataset.detailLazy):!a&&r&&r.textContent&&r.textContent.length>ae&&(r.textContent=``,r.dataset.detailLazy=`true`),n.classList.toggle(`collapsed`,!a),t.classList.toggle(`expanded`,a),e.setAttribute(`aria-expanded`,a?`true`:`false`),i&&(i.innerHTML=a?s.chevronDown:s.chevronRight)}function Ae(e,t){let n=window.__jawProcessBlockLayoutMutation;if(typeof n==`function`){n(e,t);return}t()}function O(e){return e.getAttribute(`aria-disabled`)!==`true`&&!e.matches(`:disabled`)}function je(e){e.dataset.processBlockBound!==`1`&&(e.addEventListener(`click`,e=>{let t=e.target;if(!t)return;let i=t.closest(`.process-step-trace`);if(i){if(e.preventDefault(),e.stopPropagation(),!O(i))return;let t=i.dataset.traceRunId||``,a=Number(i.dataset.traceSeq||0),s=++le,c=o(`/api/orchestrate/snapshot`);ue?.abort();let l=new AbortController;ue=l;let u=n(c,{},l.signal,16777216);Promise.all([r(()=>import(`./trace-drawer-B6XuPodh.js`),__vite__mapDeps([0])),u]).then(([e,n])=>{if(s!==le||!i.isConnected||!O(i)||c!==o(`/api/orchestrate/snapshot`))return;let r=f(n&&typeof n==`object`&&!Array.isArray(n)?n.activityIdentity:null);return e.openTraceDrawer(t,a,r?.sessionId??null)}).catch(e=>console.warn(`[trace-drawer] open failed:`,e));return}let a=t.closest(`[data-expand-steps]`);if(a){e.preventDefault();let t=a.closest(`.process-block`);if(!t)return;let n=v.get(t);if(!n){let e=He(t);if(e.length===0)return;n={element:t,steps:e,collapsed:t.classList.contains(`collapsed`)},v.set(t,n)}let r=n;Ae(t,()=>{r.expandedSteps=!0;let e=r.element.querySelector(`.process-steps-inner`);e&&(e.innerHTML=D(r.steps,!0))});return}let c=t.closest(`.process-step-toggle`);if(c){Ae(c.closest(`.process-step, .process-block`),()=>{ke(c)});return}let l=t.closest(`.process-summary`);if(l){let e=l.closest(`.process-block`);if(!e)return;Ae(e,()=>{let t=e.classList.contains(`collapsed`);e.classList.toggle(`collapsed`,!t),l.setAttribute(`aria-expanded`,t?`true`:`false`);let n=l.querySelector(`.process-chevron`);n&&(n.innerHTML=t?s.chevronDown:s.chevronRight);let r=v.get(e);r&&(r.collapsed=!t,k(r))})}}),e.addEventListener(`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target?.closest(`.process-step-trace`);t&&(t.tagName!==`BUTTON`||!O(t)||e.repeat)&&(e.preventDefault(),e.stopPropagation(),!e.repeat&&O(t)&&t.click())}),e.dataset.processBlockBound=`1`)}function Me(e,t=!0){let n=e.map(T),r=Oe(ve(n),t),i=document.createElement(`div`);i.innerHTML=r;let a=i.querySelector(`.process-block`);a&&(a.dataset.processStepIds=n.map(e=>e.id).join(` `));let o=i.querySelector(`.process-steps-inner`);o&&(o.innerHTML=D(n));let s=i.querySelector(`.process-dot`);if(s){let e=n.some(e=>e.status===`running`);s.classList.toggle(`running`,e&&!t),s.classList.toggle(`done`,!e||t)}return i.innerHTML}function k(e){let t=e.element.querySelector(`.process-summary-text`);t&&(t.innerHTML=ve(e.steps));let n=e.steps.some(e=>e.status===`running`),r=e.element.querySelector(`.process-dot`);r&&(r.classList.toggle(`running`,n&&!e.collapsed),r.classList.toggle(`done`,!n||e.collapsed));let i=he(e),a=i===null?0:Math.round((Date.now()-i)/1e3),o=e._durationEl??=e.element.querySelector(`.process-duration`);o&&(o.textContent=a>0?`${a}s`:``),n&&!e.collapsed?_e(e):_===e&&S()}function Ne(e){v.set(e.element,e)}function Pe(e){let t=document.createElement(`div`);t.innerHTML=Oe(``,!0);let n=t.firstElementChild,r=e.querySelector(`.msg-content`);r?r.before(n):e.appendChild(n);let i={element:n,steps:[],collapsed:!0};return v.set(n,i),i}function Fe(e,t){e.setAttribute(`data-omitted-count`,String(t));let n=e.querySelector(`.process-step-snippet`);n&&(n.textContent=`Show ${t} hidden tool step${t===1?``:`s`}`)}function Ie(e,t){let n=e.steps.length-1-ce;if(n<se)return;let r=e.steps[n];if(!r||r.status===`running`||r.status===`error`)return;let i=t.querySelector(`[data-step-id="${r.id}"]`);if(!i)return;let a=i.previousElementSibling;if(a&&a.hasAttribute(`data-expand-steps`))Fe(a,Number(a.getAttribute(`data-omitted-count`)||`0`)+1),i.remove();else{let e=document.createElement(`div`);e.innerHTML=De(1);let t=e.firstElementChild;t&&i.replaceWith(t)}}function Le(e,t){let n=T(t);e.steps.push(n);let r=e.element.querySelector(`.process-steps-inner`);r&&(e.steps.length===81&&!e.expandedSteps?r.innerHTML=D(e.steps,e.expandedSteps):e.steps.length>oe&&!e.expandedSteps?(r.insertAdjacentHTML(`beforeend`,E(n)),Ie(e,r)):r.insertAdjacentHTML(`beforeend`,E(n))),we(e),k(e)}function Re(e,t,n){let r=e.steps.findIndex(e=>e.id===t);if(r===-1)return;t!==n.id&&(b.delete(t),x.delete(t));let i=T(n);e.steps[r]=i;let a=e.element.querySelector(`[data-step-id="${t}"]`);if(a){let e=document.createElement(`div`);e.innerHTML=E(i);let t=e.firstElementChild;t&&a.replaceWith(t)}else if(e.steps.length>oe){let t=e.element.querySelector(`.process-steps-inner`);t&&(t.innerHTML=D(e.steps,e.expandedSteps))}we(e),k(e)}function ze(e){_===e&&S(),e.collapsed=!0,e.element.classList.add(`collapsed`);let t=e.element.querySelector(`.process-summary`);t&&t.setAttribute(`aria-expanded`,`false`);let n=e.element.querySelector(`.process-chevron`);n&&(n.innerHTML=s.chevronRight);for(let t of e.steps)t.status===`running`&&(t.status=`done`,Ce(t));e.element.querySelectorAll(`.process-step-dot.running`).forEach(e=>{e.classList.remove(`running`),e.classList.add(`done`);let t=e.closest(`.process-step`);t&&(t.dataset.status=`done`)}),k(e)}function Be(e){if(!e)return;de++;let t=new Set;if(`steps`in e)e.steps.forEach(e=>t.add(e.id));else{if(e.classList.contains(`process-block`)&&(e.dataset.processStepIds||``).split(/\s+/).filter(Boolean).forEach(e=>t.add(e)),e.querySelectorAll(`.process-block[data-process-step-ids]`).forEach(e=>{(e.dataset.processStepIds||``).split(/\s+/).filter(Boolean).forEach(e=>t.add(e))}),e.classList.contains(`process-step`)){let n=e.dataset.stepId;n&&t.add(n)}e.querySelectorAll(`.process-step[data-step-id]`).forEach(e=>{let n=e.dataset.stepId;n&&t.add(n)})}t.forEach(e=>{b.delete(e),x.delete(e)}),fe+=t.size}function Ve(e){return x.get(e)||null}function He(e){pe++;let t=(e.dataset.processStepIds||``).split(/\s+/).filter(Boolean),n=[];for(let e of t){let t=x.get(e);t&&n.push({id:t.id,type:t.type,icon:t.icon,rawIcon:t.rawIcon,label:t.label,isEmployee:t.isEmployee,detail:w(e)||t.preview||``,detailPreview:t.preview,detailLength:t.detailLength,detailTruncated:t.detailTruncated,stepRef:t.stepRef,traceRunId:t.traceRunId,traceSeq:t.traceSeq,detailAvailable:t.detailAvailable,detailBytes:t.detailBytes,rawRetentionStatus:t.rawRetentionStatus,status:t.status,startTime:t.startTime})}return me+=n.length,n}var Ue=80,We=5,Ge=80,Ke=160;function qe(e){let t=Math.ceil(e.getBoundingClientRect().height);return Number.isFinite(t)&&t>0?t:0}function A(e,t,n){if(!e[t])return;let r=qe(n);r>0&&(e[t].height=r)}function Je(e,t,n){if(n)for(let[r,i]of t)A(e,r,i),n.measureElement(i)}var Ye=class{items=[];container;innerEl;_active=!1;virtualizer=null;cleanupFn=null;mounted=new Map;itemGap=0;restorePassTimers=new Set;shouldFollowAfterRestore=()=>!0;resizePin=null;onLazyRender=null;onPostRender=null;onRecycle=null;lifecycleHooks=new Set;addLifecycleHooks(e){this.lifecycleHooks.add(e)}postRender(e){this.onPostRender?.(e);for(let t of this.lifecycleHooks)t.postRender(e)}recycle(e){this.onRecycle?.(e);for(let t of this.lifecycleHooks)t.recycle(e)}constructor(e){this.container=document.getElementById(e),this.innerEl=document.createElement(`div`),this.innerEl.className=`vs-inner`,this.attachMediaLoadRemeasure()}attachMediaLoadRemeasure(){let e=e=>{let t=e.target;if(!(t instanceof HTMLImageElement)&&!(t instanceof HTMLVideoElement)||!this._active||!this.virtualizer)return;let n=t.closest(`[data-vs-idx]`);n&&n.isConnected&&(A(this.items,Number(n.dataset.vsIdx||`-1`),n),this.virtualizer.measureElement(n))};this.innerEl.addEventListener(`load`,e,!0),this.innerEl.addEventListener(`loadedmetadata`,e,!0)}get active(){return this._active}get count(){return this.items.length}metrics(){let e=[...this.mounted.keys()].sort((e,t)=>e-t),t=e[0],n=e[e.length-1];return{virtualItemCount:this.items.length,mountedRowCount:this.mounted.size,firstVisibleIdx:t??null,lastVisibleIdx:n??null,firstVisibleId:t===void 0?null:this.items[t]?.id??null,lastVisibleId:n===void 0?null:this.items[n]?.id??null}}measureGap(){if(this.itemGap>0)return this.itemGap;let e=document.createElement(`div`);return e.className=`msg`,e.style.position=`absolute`,e.style.visibility=`hidden`,e.textContent=` `,this.innerEl.appendChild(e),this.itemGap=parseFloat(getComputedStyle(e).marginBottom)||0,e.remove(),this.itemGap}invalidateLayout(){if(!this.virtualizer)return;this.itemGap=0;let e=this.measureGap();this.virtualizer.setOptions({...this.virtualizer.options,gap:e}),this.virtualizer.measure(),Je(this.items,this.mounted,this.virtualizer),this.renderItems()}invalidateLayoutPinned(){if(!this.virtualizer)return;let e=this.resizePin;if(!e){let t=this.shouldFollowAfterRestore();e={follow:t,anchor:t?null:this.captureIndexAnchor(),settleTimer:0},this.resizePin=e}window.clearTimeout(e.settleTimer),this.invalidateLayout(),this.applyResizePin(e);let t=e;t.settleTimer=window.setTimeout(()=>{requestAnimationFrame(()=>{this.resizePin===t&&(this.resizePin=null,this.virtualizer&&this.applyResizePin(t))})},Ke)}applyResizePin(e){if(e.follow){this.scrollToBottom();return}if(!e.anchor)return;let t=this.mounted.get(e.anchor.index);if(!t?.isConnected)return;let n=t.getBoundingClientRect().top-e.anchor.top;Number.isFinite(n)&&n!==0&&(this.container.scrollTop+=n)}captureIndexAnchor(){let e=this.firstVisibleMountedItem();if(!e)return null;let t=Number(e.dataset.vsIdx??`-1`);return t>=0?{index:t,top:e.getBoundingClientRect().top}:null}clearResizePin(){this.resizePin&&window.clearTimeout(this.resizePin.settleTimer),this.resizePin=null}setItems(e,t){this.items=e,t?.autoActivate!==!1&&!this._active&&this.items.length>=1&&this.activate(t?.toBottom??!0)}seedMeasuredHeights(e,t){for(let n=0;n<t.length;n++){let r=e+n;this.items[r]&&(this.items[r].height=t[n])}}activateIfNeeded(e=!1){!this._active&&this.items.length>=1&&this.activate(e)}addItem(e,t){this.appendItem({id:e,html:t,height:Ue})}appendItem(e){if(this.items.push(e),!this._active&&this.items.length>=1){this.activate(!0);return}this._active&&this.virtualizer&&this.virtualizer.setOptions({...this.virtualizer.options,count:this.items.length})}appendLiveItem(e){if(!this._active)return;a(e);let t=e.outerHTML,n=p(),r=e.dataset.messageId;this.items.push({id:n,...r?{messageId:r}:{},html:t,height:Ue}),this.virtualizer&&(this.virtualizer.setOptions({...this.virtualizer.options,count:this.items.length}),this.renderItems())}reconcileMessage(e,t){let n=this.items.findIndex(t=>t.messageId===e);if(n<0||this.items.some((t,r)=>r!==n&&t.messageId===e))return!1;let r=this.items[n],i=this.mounted.get(n),a=this.container.ownerDocument.createElement(`div`);i||(a.innerHTML=r.html);let o=i??a.firstElementChild;return!o||o.dataset.messageId!==e?!1:(t(o),r.html=o.outerHTML,i&&this.virtualizer&&(A(this.items,n,i),this.virtualizer.measureElement(i)),!0)}updateItemHtml(e,t){this.items[e]&&(this.items[e].html=t)}scrollToBottom(){this._active&&this.virtualizer&&this.items.length>0&&this.virtualizer.scrollToIndex(this.items.length-1,{align:`end`}),this.container.scrollTop=this.container.scrollHeight}firstVisibleIndex(){if(!this._active||!this.virtualizer)return null;let e=this.virtualizer.getVirtualItems();if(e.length===0)return null;let t=this.container.scrollTop;for(let n of e)if(n.end>t)return n.index;return e[0].index}scrollToIndex(e,t=`start`){this._active&&this.virtualizer&&e>=0&&e<this.items.length&&this.virtualizer.scrollToIndex(e,{align:t})}isNearBottom(e=Ge){return this.container.scrollHeight-this.container.scrollTop-this.container.clientHeight<e}setRestoreFollowPredicate(e){this.shouldFollowAfterRestore=e??(()=>!0)}reconcileBottomAfterLayout(e,t=this.isNearBottom()){t&&requestAnimationFrame(()=>{this.invalidateLayout(),requestAnimationFrame(()=>{this.scrollToBottom()})})}reconcileAfterRestore(e,t=this.shouldFollowAfterRestore){if(!t()){this.invalidateLayout();return}this.scheduleRestoreReconcile(e,t)}forceBottomAfterRestore(e){this.scheduleRestoreReconcile(e)}cancelRestoreReconcile(e){this.clearRestoreTimers()}preserveScrollDuringMutation(e,t){let n=this.isNearBottom(),r=this.captureScrollAnchor(e),i=t();return this.invalidateLayout(),n?(this.reconcileBottomAfterLayout(`manual`,!0),i):(this.restoreScrollAnchor(r),i)}scheduleRestoreReconcile(e,t){this.runRestoreReconcilePass(e,t),requestAnimationFrame(()=>this.runRestoreReconcilePass(e,t)),requestAnimationFrame(()=>{requestAnimationFrame(()=>this.runRestoreReconcilePass(e,t))}),this.scheduleRestoreTimer(e,250,t),this.scheduleRestoreTimer(e,1e3,t),document.fonts?.ready.then(()=>this.runRestoreReconcilePass(e,t))}scheduleRestoreTimer(e,t,n){let r=window.setTimeout(()=>{this.restorePassTimers.delete(r),this.runRestoreReconcilePass(e,n)},t);this.restorePassTimers.add(r)}runRestoreReconcilePass(e,t){if(this.virtualizer){if(t&&!t()){this.cancelRestoreReconcile(e),this.invalidateLayout();return}this.invalidateLayout(),Je(this.items,this.mounted,this.virtualizer),this.scrollToBottom()}}captureScrollAnchor(e){let t=e instanceof HTMLElement?e:null,n=t&&this.isVisibleInContainer(t)?t:this.firstVisibleMountedItem();return n?{el:n,top:n.getBoundingClientRect().top}:null}restoreScrollAnchor(e){if(!e||!e.el.isConnected)return;let t=e.el.getBoundingClientRect().top-e.top;Number.isFinite(t)&&t!==0&&(this.container.scrollTop+=t)}firstVisibleMountedItem(){let e=Array.from(this.mounted.entries()).sort(([e],[t])=>e-t);for(let[,t]of e)if(this.isVisibleInContainer(t))return t;return null}isVisibleInContainer(e){let t=e.getBoundingClientRect(),n=this.container.getBoundingClientRect();return t.bottom>n.top&&t.top<n.bottom}clearRestoreTimers(){for(let e of this.restorePassTimers)window.clearTimeout(e);this.restorePassTimers.clear()}flushToDOM(){this._active&&(this.deactivate(),this.container.innerHTML=this.items.map(e=>e.html).join(``),this.postRender(this.container),this.items=[])}clear(){this.deactivate(),this.items=[],this.itemGap=0,this.onLazyRender=null,this.onPostRender=null,this.onRecycle=null,this.lifecycleHooks.clear()}activate(e=!1){this._active=!0,this.container.querySelectorAll(`.msg`).forEach((e,t)=>{if(!this.items[t])return;let n=e.getBoundingClientRect().height;n>0&&(this.items[t].height=n)}),this.container.classList.add(`vs-active`),this.container.replaceChildren(this.innerEl),this.measureGap(),this.virtualizer=new d({count:this.items.length,getScrollElement:()=>this.container,estimateSize:e=>this.items[e]?.height??Ue,overscan:We,gap:this.itemGap,useAnimationFrameWithResizeObserver:!0,onChange:()=>this.renderItems(),observeElementRect:l,observeElementOffset:u,scrollToFn:ee,getItemKey:e=>this.items[e]?.id??e,indexAttribute:`data-vs-idx`});let t=[],n=this.virtualizer._didMount();n&&t.push(n);let r=0,i=()=>{cancelAnimationFrame(r),r=requestAnimationFrame(()=>{this.invalidateLayoutPinned()})},a=()=>i();if(window.addEventListener(`resize`,a),t.push(()=>{window.removeEventListener(`resize`,a),cancelAnimationFrame(r),this.clearResizePin()}),typeof ResizeObserver<`u`){let e=this.container.clientWidth,n=this.container.clientHeight,r=new ResizeObserver(t=>{let r=t[0]?.contentRect;if(!r)return;let a=Math.round(r.width),o=Math.round(r.height);(a!==e||o!==n)&&(e=a,n=o,i())});r.observe(this.container),t.push(()=>r.disconnect());let a=this.virtualizer?.getTotalSize()??0,o=new ResizeObserver(()=>{let e=this.virtualizer?.getTotalSize()??0;if(e<=a){a=e;return}a=e,this.shouldFollowAfterRestore()&&this.reconcileBottomAfterLayout(`manual`,!0)});o.observe(this.innerEl),t.push(()=>o.disconnect())}let o=e=>{this.virtualizer&&this.reconcileAfterRestore(e,this.shouldFollowAfterRestore)},s=e=>{e.persisted&&o(`pageshow`)};window.addEventListener(`pageshow`,s);let c=()=>{document.visibilityState===`visible`&&o(`visibility`)};document.addEventListener(`visibilitychange`,c);let f=()=>o(`focus`);window.addEventListener(`focus`,f);let p=()=>o(`resume`);document.addEventListener(`resume`,p);let te=()=>{};window.addEventListener(`pagehide`,te);let ne=()=>{};document.addEventListener(`freeze`,ne),this.cleanupFn=()=>{window.removeEventListener(`pageshow`,s),document.removeEventListener(`visibilitychange`,c),window.removeEventListener(`focus`,f),document.removeEventListener(`resume`,p),window.removeEventListener(`pagehide`,te),document.removeEventListener(`freeze`,ne);for(let e of t.reverse())e();this.clearRestoreTimers()},this.virtualizer._willUpdate(),e&&this.items.length>0?(this.container.style.opacity=`0`,this.renderItems(),this.virtualizer.scrollToIndex(this.items.length-1,{align:`end`}),requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.container.style.opacity=``})})):this.renderItems(),`wasDiscarded`in document&&document.wasDiscarded&&o(`discard`)}deactivate(){this.clearRestoreTimers(),this.cleanupFn&&=(this.cleanupFn(),null),this.virtualizer=null,this._active=!1;for(let e of this.mounted.values())this.recycle(e),a(e),Be(e);this.mounted.clear(),this.innerEl.replaceChildren(),this.container.classList.remove(`vs-active`),this.container.innerHTML=``}renderItems(){if(!this.virtualizer)return;this.virtualizer._willUpdate();let e=this.virtualizer.getVirtualItems(),t=this.virtualizer.getTotalSize();this.innerEl.style.height=`${t}px`;let n=new Set(e.map(e=>e.index));for(let[e,t]of this.mounted)n.has(e)||(this.recycle(t),a(t),this.items[e]?.rehydratesProcessDetails&&Be(t),t.remove(),this.mounted.delete(e));let r=[];for(let t of e){let e=this.mounted.get(t.index);if(!e){let n=this.items[t.index];if(!n)continue;let i=document.createElement(`div`);if(i.innerHTML=n.html,e=i.firstElementChild,!e)continue;e.dataset.vsIdx=String(t.index),this.innerEl.appendChild(e),this.mounted.set(t.index,e),r.push(e)}e.style.transform=`translateY(${t.start}px)`}let i=this.innerEl.contains(document.activeElement)?document.activeElement:null,o=this.innerEl.firstElementChild;for(let t of e){let e=this.mounted.get(t.index);e&&(e!==o&&this.innerEl.insertBefore(e,o),o=e.nextElementSibling)}if(i?.isConnected&&document.activeElement!==i&&i.focus({preventScroll:!0}),this.onLazyRender){let e=this.innerEl.querySelectorAll(`.lazy-pending`);e.length>0&&this.onLazyRender(Array.from(e))}this.postRender(this.innerEl);for(let e of r){let t=Number(e.dataset.vsIdx||`-1`);A(this.items,t,e),this.virtualizer.measureElement(e)}}},Xe=null;function j(){return Xe||=new Ye(`chatMessages`),Xe}var Ze=[`cdnjs.cloudflare.com`,`cdn.jsdelivr.net`,`unpkg.com`,`esm.sh`,`fonts.googleapis.com`,`fonts.gstatic.com`],Qe=[/\beval\s*\(/,/\bnew\s+Function\s*\(/,/\bdocument\.cookie\b/,/\bwindow\.opener\b/,/\bwindow\.top\b/,/\bparent\.postMessage\b(?!.*jaw-)/,/\blocation\.href\s*=/,/\bwindow\.location\b/,/\bsetTimeout\s*\(\s*["'`]/,/\bsetInterval\s*\(\s*["'`]/,/\.constructor\s*\.\s*constructor/,/\bdocument\.write\s*\(/,/\binsertAdjacentHTML\s*\(/],$e=[],et=524288;function tt(e){return new TextEncoder().encode(e).length}function nt(e){return e===et?`512KB`:e%1048576==0?`${e/1048576}MB`:e%1024==0?`${e/1024}KB`:`${e} bytes`}function rt(e,t={}){let n=[],r=t.maxBytes??et;if(tt(e)>r)return{valid:!1,reason:`Payload too large (>${nt(r)})`,warnings:n};let i=/(?:src|href)\s*=\s*["']https?:\/\/([^/"']+)/gi,a;for(;(a=i.exec(e))!==null;){let e=a[1];if(!Ze.some(t=>e===t||e.endsWith(`.`+t)))return{valid:!1,reason:`Blocked domain: ${e}`,warnings:n}}let o=/url\s*\(\s*['"]?https?:\/\/([^)'"]+)/gi;for(;(a=o.exec(e))!==null;){let e=a[1].split(`/`)[0];Ze.some(t=>e===t||e.endsWith(`.`+t))||n.push(`CSS url() references external domain: ${e}`)}for(let t of Qe)if(t.test(e))return{valid:!1,reason:`Dangerous pattern: ${t.source}`,warnings:n};let s=/\bimport\s*\(\s*['"`](.*?)['"`]\s*\)/g,c;for(;(c=s.exec(e))!==null;)try{let e=new URL(c[1]).hostname;if(!Ze.some(t=>e===t||e.endsWith(`.`+t)))return{valid:!1,reason:`Blocked import() domain: ${e}`,warnings:n}}catch{return{valid:!1,reason:`Dynamic import() with non-URL argument`,warnings:n}}if(/\bimport\s*\(\s*(?!['"`])/g.test(e))return{valid:!1,reason:`Dynamic import() with non-literal argument`,warnings:n};for(let t of $e)t.test(e)&&n.push(`DOM sink detected: ${t.source}`);return{valid:!0,warnings:n}}var M=null,N=!0,P=`unknown`,it=!1,at=80,ot=1100,F=null,I=new Set,L=new Set;function R(){return P!==`pinnedAway`}function z(){N=!0,P=`following`,bt()}function st(e){N=e<at,P=N?`following`:`pinnedAway`,P===`pinnedAway`&&B(),bt()}function B(){for(let e of I)window.clearTimeout(e);I.clear();for(let e of L)cancelAnimationFrame(e);L.clear()}function V(e){let t=requestAnimationFrame(()=>{L.delete(t),e()});L.add(t)}function ct(e){I.add(e)}function H(e,t){let n=window.setTimeout(()=>{I.delete(n),e()},t);ct(n)}function U(){if(j().setRestoreFollowPredicate(R),window.__jawProcessBlockLayoutMutation=(e,t)=>{let n=j();if(n.active){n.preserveScrollDuringMutation(e,t);return}t()},it)return;let e=document.getElementById(`chatMessages`);e&&(it=!0,e.addEventListener(`scroll`,()=>{st(e.scrollHeight-e.scrollTop-e.clientHeight)},{passive:!0}),yt())}function lt(){U();let e=document.getElementById(`chatMessages`);if(!e)return N;let t=j();return t.active?t.isNearBottom(at):e.scrollHeight-e.scrollTop-e.clientHeight<at}function ut(e=lt()){if(U(),!e)return;z();let t=j();if(t.active){t.reconcileBottomAfterLayout(`reconnect`,!0);return}requestAnimationFrame(()=>{requestAnimationFrame(()=>{let e=document.getElementById(`chatMessages`);e&&(e.scrollTop=e.scrollHeight)})})}function dt(e){F!==null&&(window.clearTimeout(F),F=null);let t=document.querySelector(`.chat-area`);if(!t)return;let n=t.querySelector(`[data-restore-indicator="true"]`);n||(n=document.createElement(`div`),n.className=`chat-restore-indicator`,n.setAttribute(`data-restore-indicator`,`true`),n.setAttribute(`role`,`status`),n.setAttribute(`aria-live`,`polite`),n.innerHTML=`<span class="chat-restore-dot"></span><span class="chat-restore-text">Restoring</span>`,t.appendChild(n)),n.dataset.restoreReason=e}function ft(){F!==null&&(window.clearTimeout(F),F=null),document.querySelectorAll(`[data-restore-indicator="true"]`).forEach(e=>e.remove())}function pt(e=ot){F!==null&&window.clearTimeout(F),F=window.setTimeout(()=>{F=null,ft()},e)}function mt(e){dt(e),pt(),U();let t=j();if(t.active){t.reconcileAfterRestore(e,R);return}if(!R())return;let n=()=>{if(!R()){B();return}let e=document.getElementById(`chatMessages`);e&&(e.scrollTop=e.scrollHeight,z())},r=()=>{if(!R()){B();return}V(n)};r(),V(r),V(()=>V(r)),H(r,250),H(r,1e3),document.fonts?.ready.then(r)}function ht(){U(),z();let e=j();if(e.active){e.reconcileAfterRestore(`manual`,R);return}let t=()=>{if(!R()){B();return}let e=document.getElementById(`chatMessages`);e&&(e.scrollTop=e.scrollHeight,z())},n=()=>{if(!R()){B();return}V(t)};n(),V(n),V(()=>V(n)),H(n,250),H(n,1e3),document.fonts?.ready.then(n)}function gt(e=!1){U(),(e||N)&&(e&&z(),!M&&(M=requestAnimationFrame(()=>{M=null;let e=j();if(e.active){e.scrollToBottom();return}let t=document.getElementById(`chatMessages`);t&&(t.scrollTop=t.scrollHeight)})))}var W=null,_t=!1;function vt(){let e=document.createElement(`button`);return e.className=`scroll-to-bottom-fab`,e.setAttribute(`aria-label`,`Scroll to bottom`),e.innerHTML=`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8 3v10M4 9l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>`,e.addEventListener(`click`,()=>gt(!0)),e}function yt(){let e=document.querySelector(`.chat-area`);e&&!W&&(W=vt(),e.appendChild(W))}function bt(){if(!W)return;let e=P===`pinnedAway`;e!==_t&&(_t=e,W.classList.toggle(`visible`,e))}function xt(){let e=document.createElement(`button`);return e.className=`diagram-copy-btn`,e.type=`button`,e.ariaLabel=`Copy source`,e.title=`Copy`,e.innerHTML=s.copy,e}function St(){let e=document.createElement(`button`);return e.className=`diagram-save-btn`,e.type=`button`,e.ariaLabel=`Save as image`,e.title=`Save`,e.innerHTML=s.download,e}function Ct(){let e=document.createElement(`button`);return e.className=`diagram-zoom-btn`,e.type=`button`,e.ariaLabel=`Expand diagram`,e.title=`Expand`,e.textContent=`⤢`,e}function wt(){let e=document.createElement(`button`);return e.className=`diagram-size-toggle-btn`,e.type=`button`,e.ariaLabel=`Expand diagram`,e.title=`Expand`,e.textContent=`⤢`,e}var Tt=[`cdnjs.cloudflare.com`,`cdn.jsdelivr.net`,`unpkg.com`,`esm.sh`,`fonts.googleapis.com`,`fonts.gstatic.com`],G=new Set,K=new Map,Et=new WeakMap,q=524288,J=2097152,Dt=3e4,Y=null;window.addEventListener(`session_switched`,()=>{Y=null});async function X(n,r={}){let i=await e(),a=new Headers(r.headers||{});return i&&a.set(`Authorization`,`Bearer ${i}`),fetch(`${t}${n}`,{...r,headers:a})}async function Z(e=!1){let t=Date.now();if(!e&&Y&&Y.expiresAt>t)return Y.id;try{let e=await X(`/api/chat-sessions`);if(!e.ok)return null;let n=await e.json(),r=n.data?.active??n.active;return typeof r!=`string`||!r?null:(Y={id:r,expiresAt:t+Dt},r)}catch(e){return console.warn(`[jaw-diagram] Failed to resolve active chat session:`,e.message),null}}function Ot(e){let t=Et.get(e);t&&(t(),Et.delete(e))}function kt(e){e.contentWindow&&(G.delete(e.contentWindow),K.delete(e.contentWindow))}function At(e){Ot(e.owner);let t=!1,n=!1,r=Number(e.owner.dataset.gen||`0`);e.owner.dataset.gen=String(r);let i=()=>{e.iframe.contentWindow?.postMessage({type:`jaw-request-resize`},`*`),setTimeout(()=>e.iframe.contentWindow?.postMessage({type:`jaw-request-resize`},`*`),300),setTimeout(()=>e.iframe.contentWindow?.postMessage({type:`jaw-request-resize`},`*`),1e3)},a=()=>{if(!t){t=!0,e.iframe.contentWindow&&(G.add(e.iframe.contentWindow),K.set(e.iframe.contentWindow,e.nonce),i());return}kt(e.iframe),console.warn(`[jaw-diagram] iframe navigated — postMessage channel revoked`)},o=t=>{t.source===e.iframe.contentWindow&&t.data?.type===`jaw-widget-ready`&&t.data.nonce===e.nonce&&(n=!0,window.removeEventListener(`message`,o))},s=window.setTimeout(()=>{window.removeEventListener(`message`,o),Number(e.owner.dataset.gen||`0`)===r&&!n&&e.owner.isConnected&&(kt(e.iframe),e.onTimeout?.())},1e4);e.iframe.addEventListener(`load`,a),window.addEventListener(`message`,o),Et.set(e.owner,()=>{window.clearTimeout(s),window.removeEventListener(`message`,o),e.iframe.removeEventListener(`load`,a),kt(e.iframe)})}var jt=null;function Mt(){if(jt)return;let e=document.getElementById(`chatMessages`);e&&(jt=new MutationObserver(e=>{if(G.size)for(let t of e)for(let e of t.removedNodes)e instanceof HTMLIFrameElement&&e.contentWindow&&(G.delete(e.contentWindow),K.delete(e.contentWindow)),e instanceof HTMLElement&&e.querySelectorAll(`iframe`).forEach(e=>{e.contentWindow&&(G.delete(e.contentWindow),K.delete(e.contentWindow))})}),jt.observe(e,{childList:!0,subtree:!0}))}function Nt(e){if(e.includes(`"importmap"`)||e.includes(`'importmap'`))return``;let t={},n=e.match(/(?:cdn\.jsdelivr\.net\/npm|unpkg\.com)\/three@([\d.]+)/);if(n){let r=n[1],i=e.includes(`unpkg.com/three@`)?`unpkg.com`:`cdn.jsdelivr.net/npm`;t.three=`https://${i}/three@${r}/${i===`unpkg.com`?`build/three.module.js`:`build/three.module.min.js`}`,t[`three/addons/`]=`https://${i}/three@${r}/examples/jsm/`}return Object.keys(t).length===0?``:`<script type="importmap">${JSON.stringify({imports:t})}<\/script>`}function Pt(e){let t=`'none'`;(e.includes(`cdn.jsdelivr.net/npm/us-atlas`)||e.includes(`cdn.jsdelivr.net/npm/world-atlas`)||e.includes(`cdn.jsdelivr.net/npm/datamaps`))&&(t=`https://cdn.jsdelivr.net`);let n=/Tone(\.min)?\.js|tone@/.test(e)?`worker-src blob:;`:``,r=Tt.map(e=>`https://${e}`),i=r.join(` `),a=[`data:`,`blob:`,...r],o=[`'unsafe-inline'`,`https://fonts.googleapis.com`];/L\.(map|tileLayer|marker|geoJSON|polyline|polygon|circle)\(|leaflet[\w.@/-]*\.(js|css)|tile\.openstreetmap\.org/.test(e)&&(a.push(`https://a.tile.openstreetmap.org`,`https://b.tile.openstreetmap.org`,`https://c.tile.openstreetmap.org`),o.push(`https://cdnjs.cloudflare.com`,`https://cdn.jsdelivr.net`));let s=a.join(` `);return`<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline' ${i}; style-src ${o.join(` `)}; img-src ${s}; font-src https://fonts.gstatic.com; connect-src ${t}; ${n} base-uri 'none';">`}function Ft(){let e=!document.documentElement.hasAttribute(`data-theme`)||document.documentElement.getAttribute(`data-theme`)===`dark`,t=getComputedStyle(document.documentElement);return{isDark:e,tokens:{"--bg":t.getPropertyValue(`--bg`).trim(),"--surface":t.getPropertyValue(`--surface`).trim(),"--border":t.getPropertyValue(`--border`).trim(),"--text":t.getPropertyValue(`--text`).trim(),"--text-dim":t.getPropertyValue(`--text-dim`).trim(),"--accent":t.getPropertyValue(`--accent`).trim(),"--font-ui":t.getPropertyValue(`--font-ui`).trim(),"--font-mono":t.getPropertyValue(`--font-mono`).trim(),"--radius-sm":t.getPropertyValue(`--radius-sm`).trim(),"--radius-md":t.getPropertyValue(`--radius-md`).trim()}}}function It(e){return`
|
|
41
|
+
<script>
|
|
42
|
+
(function() {
|
|
43
|
+
var __nonce = '${e}';
|
|
44
|
+
|
|
45
|
+
window.addEventListener('message', function(e) {
|
|
46
|
+
if (e.source !== window.parent) return;
|
|
47
|
+
if (!e.data || typeof e.data !== 'object') return;
|
|
48
|
+
|
|
49
|
+
if (e.data.type === 'jaw-theme-update') {
|
|
50
|
+
window.__jawTheme = { isDark: !!e.data.isDark };
|
|
51
|
+
window.__jawTokens = e.data.tokens || {};
|
|
52
|
+
window.dispatchEvent(new CustomEvent('jaw-theme-change', { detail: window.__jawTheme }));
|
|
53
|
+
}
|
|
54
|
+
if (e.data.type === 'jaw-request-resize') {
|
|
55
|
+
postHeight();
|
|
56
|
+
}
|
|
57
|
+
if (e.data.type === 'jaw-request-screenshot') {
|
|
58
|
+
var canvas = document.querySelector('canvas');
|
|
59
|
+
if (canvas) {
|
|
60
|
+
try {
|
|
61
|
+
var dataUrl = canvas.toDataURL('image/png');
|
|
62
|
+
window.parent.postMessage({ type: 'jaw-screenshot', dataUrl: dataUrl, nonce: __nonce }, '*');
|
|
63
|
+
} catch(ex) { /* tainted canvas or other error */ }
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
function postHeight() {
|
|
69
|
+
var h = Math.max(
|
|
70
|
+
document.body.scrollHeight,
|
|
71
|
+
document.body.offsetHeight,
|
|
72
|
+
document.documentElement.scrollHeight
|
|
73
|
+
);
|
|
74
|
+
window.parent.postMessage({ type: 'jaw-diagram-resize', height: h, nonce: __nonce }, '*');
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
78
|
+
var ro = new ResizeObserver(function() {
|
|
79
|
+
clearTimeout(ro._t);
|
|
80
|
+
ro._t = setTimeout(postHeight, 50);
|
|
81
|
+
});
|
|
82
|
+
ro.observe(document.body);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
window.addEventListener('load', function() {
|
|
86
|
+
postHeight();
|
|
87
|
+
// Deferred re-measure for async chart renders (Chart.js animation, CDN loading)
|
|
88
|
+
setTimeout(postHeight, 200);
|
|
89
|
+
setTimeout(postHeight, 800);
|
|
90
|
+
window.parent.postMessage({ type: 'jaw-widget-ready', nonce: __nonce }, '*');
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
var lastSend = 0;
|
|
94
|
+
window.sendPrompt = function(text) {
|
|
95
|
+
var now = Date.now();
|
|
96
|
+
if (now - lastSend < 3000) return;
|
|
97
|
+
lastSend = now;
|
|
98
|
+
window.parent.postMessage({ type: 'jaw-send-prompt', text: String(text).slice(0, 500), nonce: __nonce }, '*');
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
// Ctrl+C / Cmd+C: forward selected text to host for clipboard access
|
|
102
|
+
document.addEventListener('copy', function() {
|
|
103
|
+
var sel = window.getSelection();
|
|
104
|
+
if (sel && sel.toString().trim()) {
|
|
105
|
+
window.parent.postMessage({
|
|
106
|
+
type: 'jaw-copy-text',
|
|
107
|
+
text: sel.toString().slice(0, 512),
|
|
108
|
+
nonce: __nonce
|
|
109
|
+
}, '*');
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
})();
|
|
113
|
+
<\/script>`}var Lt=[[/\/p5\.js\/1\.11\.1[1-9]\//g,`/p5.js/1.11.10/`]];function Rt(e){for(let[t,n]of Lt)e=e.replace(t,n);return e}function Q(e){Mt(),Jt(),e=Rt(e);let t=Array.from(crypto.getRandomValues(new Uint8Array(16)),e=>e.toString(16).padStart(2,`0`)).join(``),n=Ft(),r=Pt(e),i=Nt(e),a=It(t),o=`<!DOCTYPE html>
|
|
114
|
+
<html>
|
|
115
|
+
<head>
|
|
116
|
+
<meta charset="utf-8">
|
|
117
|
+
${r}
|
|
118
|
+
${i}
|
|
119
|
+
<style>
|
|
120
|
+
:root { ${Object.entries(n.tokens).map(([e,t])=>`${e}: ${t};`).join(`
|
|
121
|
+
`)} }
|
|
122
|
+
* { margin: 0; box-sizing: border-box; }
|
|
123
|
+
body {
|
|
124
|
+
font-family: var(--font-ui), system-ui, sans-serif;
|
|
125
|
+
color: var(--text);
|
|
126
|
+
background: transparent;
|
|
127
|
+
padding: 16px;
|
|
128
|
+
overflow: hidden;
|
|
129
|
+
}
|
|
130
|
+
</style>
|
|
131
|
+
</head>
|
|
132
|
+
<body>
|
|
133
|
+
<script>
|
|
134
|
+
window.__jawTheme = ${JSON.stringify({isDark:n.isDark})};
|
|
135
|
+
window.__jawTokens = ${JSON.stringify(n.tokens).replace(/<\//g,`<\\/`)};
|
|
136
|
+
<\/script>
|
|
137
|
+
${a}
|
|
138
|
+
${e}
|
|
139
|
+
</body>
|
|
140
|
+
</html>`,s=document.createElement(`iframe`);return s.sandbox.add(`allow-scripts`),s.srcdoc=o,s.style.cssText=`width: 100%; min-height: 200px; border: none; overflow: hidden; display: block;`,s.setAttribute(`aria-label`,`Interactive diagram widget`),{iframe:s,nonce:t}}function zt(e){(e||document).querySelectorAll(`.diagram-widget-pending`).forEach(e=>{let t=e,n=t.dataset.diagramHtml;if(!n){let e=t.dataset.widgetId;e&&t.dataset.widgetPending!==`1`&&Bt(t,e);return}let r;try{r=Gt(n,q)}catch{e.replaceWith(Object.assign(document.createElement(`div`),{className:`diagram-error`,textContent:`Failed to decode widget content`,role:`alert`}));return}Ht(t,r,n)})}async function Bt(e,t){if(e.dataset.widgetLoading!==`1`){e.dataset.widgetLoading=`1`,delete e.dataset.widgetPending;try{let n=await Z();if(!n){$(e,t,`widget file pending`);return}let r=await X(`/api/widgets/${encodeURIComponent(n)}/${encodeURIComponent(t)}`);if(r.status===404){Y=null;let e=await Z(!0);e&&e!==n&&(r=await X(`/api/widgets/${encodeURIComponent(e)}/${encodeURIComponent(t)}`))}if(r.status===404){$(e,t,`widget file pending`);return}if(!r.ok){$(e,t,`widget file pending`);return}let i=await r.text();Ht(e,i,Wt(i),t,J)}catch(n){console.warn(`[jaw-diagram] Failed to load widget file:`,n.message),$(e,t,`widget file pending`)}}}async function Vt(e,t){if(!e||!t||await Z()!==e)return;let n=[...document.querySelectorAll(`[data-widget-id]`)].filter(e=>e.dataset.widgetId===t&&(e.classList.contains(`diagram-widget`)||e.classList.contains(`diagram-widget-pending`)));n.length&&await Promise.all(n.map(async n=>{if(n.dataset.widgetLoading!==`1`){n.dataset.widgetLoading=`1`;try{let r=await X(`/api/widgets/${encodeURIComponent(e)}/${encodeURIComponent(t)}`);if(r.status===404){$(n,t,`widget file pending`);return}if(!r.ok){delete n.dataset.widgetLoading;return}let i=await r.text();Ht(n,i,Wt(i),t,J)}catch(e){delete n.dataset.widgetLoading,console.warn(`[jaw-diagram] Failed to refresh widget file:`,e.message)}}}))}function $(e,t,n){delete e.dataset.widgetLoading,e.dataset.widgetPending=`1`,e.className=`diagram-widget-pending diagram-widget-file-pending`,e.dataset.widgetId=t,e.setAttribute(`role`,`status`),e.setAttribute(`aria-label`,`Widget file pending`),e.innerHTML=``;let r=document.createElement(`span`);r.textContent=n;let i=document.createElement(`button`);i.type=`button`,i.className=`diagram-widget-retry`,i.textContent=`Retry`,i.addEventListener(`click`,()=>{delete e.dataset.widgetPending,Bt(e,t)}),e.append(r,i)}function Ht(e,t,n,r,i=q){let a=rt(t,{maxBytes:i});if(!a.valid){e.replaceWith(Object.assign(document.createElement(`div`),{className:`diagram-error`,textContent:`Widget blocked: ${a.reason}`,role:`alert`}));return}a.warnings.length&&console.warn(`[jaw-diagram] Widget warnings:`,a.warnings);let o=document.createElement(`div`);o.className=`diagram-container diagram-widget`,o.dataset.widgetHtml=n,r&&(o.dataset.widgetId=r),o.appendChild(Ct()),o.appendChild(St()),o.appendChild(xt());let{iframe:s,nonce:c}=Q(t);o.appendChild(s),Ut(o),e.replaceWith(o),At({iframe:s,nonce:c,owner:o,onTimeout:()=>{o.innerHTML=`<div class="diagram-error" role="alert">
|
|
141
|
+
Widget failed to load within 10 seconds.
|
|
142
|
+
</div>`,console.warn(`[jaw-diagram] Widget timeout — iframe deregistered`)}})}function Ut(e){let t=e.querySelector(`.diagram-zoom-btn`);t&&!t.dataset.bound&&(t.dataset.bound=`1`,t.addEventListener(`click`,()=>{let t=e.dataset.widgetHtml;t&&Kt(t,e.dataset.widgetId?J:q)}))}function Wt(e){return btoa(unescape(encodeURIComponent(e)))}function Gt(e,t=q){let n=decodeURIComponent(escape(atob(e)));if(new TextEncoder().encode(n).length>t)throw Error(`Widget payload too large`);return n}function Kt(e,t=q){let n=document.activeElement,r;try{r=Gt(e,t)}catch{r=``}let i=document.createElement(`div`);i.className=`diagram-overlay diagram-widget-overlay`,i.setAttribute(`role`,`dialog`),i.setAttribute(`aria-modal`,`true`),i.setAttribute(`aria-label`,`Expanded interactive diagram`);let a=document.createElement(`div`);a.className=`diagram-overlay-content`;let o=document.createElement(`button`);o.className=`diagram-overlay-close`,o.type=`button`,o.ariaLabel=`Close`,o.textContent=`✕`,i.append(a,o);let s=()=>{Ot(a),i.remove(),document.removeEventListener(`keydown`,c),n?.isConnected&&n.focus()},c=e=>{if(e.key===`Escape`){s();return}if(e.key!==`Tab`)return;let t=i.querySelectorAll(`button, [href], iframe, [tabindex]:not([tabindex="-1"])`);if(!t.length)return;let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())},l=r?rt(r,{maxBytes:t}):{valid:!1,reason:`Failed to decode widget content`,warnings:[]};if(!l.valid)a.innerHTML=`<div class="diagram-error" role="alert">Widget blocked: ${l.reason}</div>`;else{let t=document.createElement(`div`);t.className=`diagram-container diagram-widget diagram-widget-expanded`,t.dataset.widgetHtml=e;let n=wt();n.addEventListener(`click`,()=>{let e=i.classList.toggle(`maximized`);n.textContent=e?`⤡`:`⤢`,n.title=e?`Shrink`:`Expand`,n.ariaLabel=e?`Shrink diagram`:`Expand diagram`}),t.append(St(),xt(),n);let{iframe:o,nonce:s}=Q(r);t.appendChild(o),a.appendChild(t),At({iframe:o,nonce:s,owner:a})}o.addEventListener(`click`,s),document.addEventListener(`keydown`,c),document.body.appendChild(i),o.focus()}var qt=null;function Jt(){if(qt)return;let e=document.getElementById(`chatMessages`);e&&(qt=new MutationObserver(t=>{for(let n of t)for(let t of n.addedNodes)if(t instanceof HTMLElement&&(t.classList?.contains(`diagram-widget-pending`)||t.querySelector?.(`.diagram-widget-pending`))){requestAnimationFrame(()=>zt(t.parentElement||e));return}}),qt.observe(e,{childList:!0}))}var Yt=new WeakMap;function Xt(e,t){if(Yt.has(e))return;Yt.set(e,window.setTimeout(()=>Yt.delete(e),100));let n=lt(),r=!1;document.querySelectorAll(`iframe`).forEach(n=>{n.contentWindow===e&&(n.style.height=`${Math.min(Math.max(t,60),2e3)}px`,r=!0)}),r&&n&&requestAnimationFrame(()=>ut(!0))}function Zt(){document.querySelectorAll(`.diagram-widget`).forEach(e=>{let t=e,n=t.dataset.widgetHtml;if(!n)return;let r=t.dataset.widgetId?J:q,i;try{i=Gt(n,r)}catch{return}let a=e.querySelector(`iframe`);a?.contentWindow&&(G.delete(a.contentWindow),K.delete(a.contentWindow));let o=t;o.dataset.gen=String((Number(o.dataset.gen||`0`)||0)+1);let{iframe:s,nonce:c}=Q(i);e.innerHTML=``,e.appendChild(Ct()),e.appendChild(St()),e.appendChild(xt()),e.appendChild(s),Ut(t),At({iframe:s,nonce:c,owner:t})})}var Qt=0;window.addEventListener(`message`,e=>{if(!e.data||typeof e.data!=`object`||!e.source||e.origin!==`null`||!G.has(e.source)||![...document.querySelectorAll(`iframe`)].find(t=>t.contentWindow===e.source)?.isConnected)return;let t=K.get(e.source);if(t&&e.data.nonce===t)switch(e.data.type){case`jaw-diagram-resize`:{let t=Number(e.data.height);if(!Number.isFinite(t)||t<0)return;Xt(e.source,t);break}case`jaw-send-prompt`:{let t=Date.now();if(t-Qt<3e3)return;Qt=t;let n=String(e.data.text||``).trim().slice(0,500);if(!n)return;let r=document.getElementById(`chatInput`);r&&(r.value=n,r.dispatchEvent(new Event(`input`,{bubbles:!0})),r.focus());break}case`jaw-copy-text`:{let t=String(e.data.text||``).trim().slice(0,512);if(!t)return;c(t);break}case`jaw-screenshot`:{let t=String(e.data.dataUrl||``);if(!t.startsWith(`data:image/`)||t.length>5242880)return;fetch(t).then(e=>e.blob()).then(e=>{let t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`widget-${Date.now()}.png`,n.click(),setTimeout(()=>URL.revokeObjectURL(t),1e3)}).catch(()=>{});break}}});export{S as A,w as C,Be as D,Ne as E,h as M,p as N,Re as O,Pe as S,Ve as T,j as _,Vt as a,Me as b,ft as c,z as d,ut as f,dt as g,ht as h,Ft as i,m as j,Se as k,pt as l,gt as m,Zt as n,R as o,mt as p,Q as r,U as s,zt as t,lt as u,Le as v,xe as w,ze as x,je as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-hePW80VL.js";var t=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function F(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var I=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},L={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=L,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:F}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,I)}catch(e){I(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.5`})),n=e(((e,n)=>{n.exports=t()}));export{n as t};
|
|
1
|
+
import{t as e}from"./rolldown-runtime-hePW80VL.js";var t=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function F(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var I=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},L={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=L,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:F}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,I)}catch(e){I(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.5`})),n=e(((e,n)=>{n.exports=t()})),r=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),i=e(((e,t)=>{t.exports=r()}));export{n,i as t};
|