@jingyi0605/codingns 0.6.1 → 0.7.0
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/bin/codingns.mjs +225 -0
- package/dist/public/assets/AdaptiveButlerPage-B8mg25ze.js +3 -0
- package/dist/public/assets/{App-Dsf3ooXU.js → App-C2lNmeKL.js} +6 -6
- package/dist/public/assets/{BootstrapPage-CE0m1qSR.js → BootstrapPage-CAVA-a8h.js} +1 -1
- package/dist/public/assets/ConversationPage-B6BGOX4C.js +6 -0
- package/dist/public/assets/{DesktopDetachPreviewPage-Dxarr_Wf.js → DesktopDetachPreviewPage-B37DUL15.js} +1 -1
- package/dist/public/assets/{DesktopWindowPage-VytPwJ4c.js → DesktopWindowPage-CDA6l7lm.js} +1 -1
- package/dist/public/assets/{FileContextPanel-DwFzLsOp.js → FileContextPanel-CMGTtAB6.js} +1 -1
- package/dist/public/assets/{GitSidebar-CH6WqTrM.js → GitSidebar--DCqBiGL.js} +1 -1
- package/dist/public/assets/{MobileCreateSessionSheet-DcxKM00P.js → MobileCreateSessionSheet-THIrIzJ3.js} +1 -1
- package/dist/public/assets/{MobileTopHeaderFrame-C5rIKQT6.js → MobileTopHeaderFrame-D-X7pVnV.js} +1 -1
- package/dist/public/assets/{MobileWorkspaceSwitcherHeader-CfUnHgv_.js → MobileWorkspaceSwitcherHeader-Cczi7RYu.js} +1 -1
- package/dist/public/assets/{RelayConnectEntryPage-CgMvVZwa.js → RelayConnectEntryPage-D417tgWj.js} +1 -1
- package/dist/public/assets/{ServerSettingsModal-CFul__z1.js → ServerSettingsModal-BdTxbRbU.js} +1 -1
- package/dist/public/assets/SessionIndexPage-D5iefVcc.js +1 -0
- package/dist/public/assets/SettingsPage-iCFe_DHP.js +2 -0
- package/dist/public/assets/{TerminalManagerPanel-BbORd-ee.js → TerminalManagerPanel-CtldwWz8.js} +1 -1
- package/dist/public/assets/{TerminalPage-DWHv6mlu.js → TerminalPage-DAzQTmQC.js} +19 -19
- package/dist/public/assets/{TerminalRuntimeFallbackModal-B29YxbQe.js → TerminalRuntimeFallbackModal-DLOhAvaq.js} +1 -1
- package/dist/public/assets/{ToolFilesPage-Dx9cv9hu.js → ToolFilesPage-D7thcDEv.js} +1 -1
- package/dist/public/assets/{ToolGitPage-D7H3vAia.js → ToolGitPage-uPRsxdcn.js} +1 -1
- package/dist/public/assets/{ToolProcessesPage-PqQWxsy-.js → ToolProcessesPage-B1uOk0Ef.js} +1 -1
- package/dist/public/assets/{ToolsHomePage-CX05Pe_4.js → ToolsHomePage-rU3V8mmh.js} +1 -1
- package/dist/public/assets/{WorkbenchLandingPage-CchkAC75.js → WorkbenchLandingPage-BudM2C69.js} +1 -1
- package/dist/public/assets/WorkbenchLayout-Dybarc1V.js +244 -0
- package/dist/public/assets/WorkbenchModal-DMQutm1x.js +1 -0
- package/dist/public/assets/WorkbenchShellRoute-Cy4WBbzq.js +1 -0
- package/dist/public/assets/{WorkbenchShellRoute-RGZpA0_J.css → WorkbenchShellRoute-DhQo_0vu.css} +1 -1
- package/dist/public/assets/{WorkspaceDebugDetailPage-Deqy2_pO.js → WorkspaceDebugDetailPage-CHqo-uDf.js} +1 -1
- package/dist/public/assets/{WorkspaceDetailPage-Cvf-ZdlB.js → WorkspaceDetailPage-CGkAH1W-.js} +1 -1
- package/dist/public/assets/{WorkspaceHomePage-Dsyvqyk1.js → WorkspaceHomePage-CfuPVITd.js} +1 -1
- package/dist/public/assets/{client-runtime-manager-DROQJ9v3.js → client-runtime-manager-CKbtaemV.js} +1 -1
- package/dist/public/assets/file-tree-icon-Bc0KADEl.js +3 -0
- package/dist/public/assets/index-DNRyROOG.css +1 -0
- package/dist/public/assets/index-oGylLBIX.js +42 -0
- package/dist/public/assets/{login-direct-candidate-resolver-DotM530R.js → login-direct-candidate-resolver-DjJMbqB7.js} +1 -1
- package/dist/public/assets/model-switch-api-T55eW6D4.js +1 -0
- package/dist/public/assets/{preferences-service-BG6GKG29.js → preferences-service-BTKBl5xM.js} +1 -1
- package/dist/public/assets/realtime-client-ww7MnbTD.js +1 -0
- package/dist/public/assets/{relay-entry-pmr-c42O.js → relay-entry-sdeFnTbY.js} +1 -1
- package/dist/public/assets/styles-BjPytabP.css +1 -0
- package/dist/public/assets/{terminal-runtime-meta-8_uRZf7h.js → terminal-runtime-meta-Cvt1ID92.js} +1 -1
- package/dist/public/assets/{useRegisteredDebugTemplates-DWX7LXQu.js → useRegisteredDebugTemplates-O-ymgLd9.js} +1 -1
- package/dist/public/index.html +2 -2
- package/dist/server/config/env.js +21 -1
- package/dist/server/config/env.js.map +1 -1
- package/dist/server/config/opencode-base-url-resolver.d.ts +16 -0
- package/dist/server/config/opencode-base-url-resolver.js +154 -0
- package/dist/server/config/opencode-base-url-resolver.js.map +1 -1
- package/dist/server/helpers/wechat-claw-runtime/main.d.ts +1 -0
- package/dist/server/helpers/wechat-claw-runtime/main.js +38 -0
- package/dist/server/helpers/wechat-claw-runtime/main.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/errors.d.ts +5 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/errors.js +32 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/errors.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/login-service.d.ts +16 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/login-service.js +209 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/login-service.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/poll-service.d.ts +18 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/poll-service.js +135 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/poll-service.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.d.ts +34 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.js +394 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/send-service.d.ts +9 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/send-service.js +64 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/send-service.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/types.d.ts +167 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/types.js +3 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/types.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/wechat-api-client.d.ts +34 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/wechat-api-client.js +160 -0
- package/dist/server/helpers/wechat-claw-runtime/modules/wechat-api-client.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/routes/accounts.d.ts +9 -0
- package/dist/server/helpers/wechat-claw-runtime/routes/accounts.js +24 -0
- package/dist/server/helpers/wechat-claw-runtime/routes/accounts.js.map +1 -0
- package/dist/server/helpers/wechat-claw-runtime/server.d.ts +5 -0
- package/dist/server/helpers/wechat-claw-runtime/server.js +36 -0
- package/dist/server/helpers/wechat-claw-runtime/server.js.map +1 -0
- package/dist/server/middlewares/auth-guard.js +4 -1
- package/dist/server/middlewares/auth-guard.js.map +1 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +4 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.js +12 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
- package/dist/server/modules/butler/butler-control-session-service.d.ts +20 -2
- package/dist/server/modules/butler/butler-control-session-service.js +121 -74
- package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
- package/dist/server/modules/butler/butler-profile-service.d.ts +3 -1
- package/dist/server/modules/butler/butler-profile-service.js +16 -4
- package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
- package/dist/server/modules/butler/butler-session-service.js +44 -15
- package/dist/server/modules/butler/butler-session-service.js.map +1 -1
- package/dist/server/modules/channels/channel-bridge-service.d.ts +55 -0
- package/dist/server/modules/channels/channel-bridge-service.js +340 -0
- package/dist/server/modules/channels/channel-bridge-service.js.map +1 -0
- package/dist/server/modules/channels/channel-controller.d.ts +52 -0
- package/dist/server/modules/channels/channel-controller.js +54 -0
- package/dist/server/modules/channels/channel-controller.js.map +1 -0
- package/dist/server/modules/channels/channel-delivery-service.d.ts +63 -0
- package/dist/server/modules/channels/channel-delivery-service.js +429 -0
- package/dist/server/modules/channels/channel-delivery-service.js.map +1 -0
- package/dist/server/modules/channels/channel-gateway-controller.d.ts +15 -0
- package/dist/server/modules/channels/channel-gateway-controller.js +16 -0
- package/dist/server/modules/channels/channel-gateway-controller.js.map +1 -0
- package/dist/server/modules/channels/channel-gateway-service.d.ts +24 -0
- package/dist/server/modules/channels/channel-gateway-service.js +56 -0
- package/dist/server/modules/channels/channel-gateway-service.js.map +1 -0
- package/dist/server/modules/channels/channel-platform-adapters.d.ts +46 -0
- package/dist/server/modules/channels/channel-platform-adapters.js +315 -0
- package/dist/server/modules/channels/channel-platform-adapters.js.map +1 -0
- package/dist/server/modules/channels/channel-platform-catalog.d.ts +3 -0
- package/dist/server/modules/channels/channel-platform-catalog.js +42 -0
- package/dist/server/modules/channels/channel-platform-catalog.js.map +1 -0
- package/dist/server/modules/channels/channel-polling-scheduler.d.ts +31 -0
- package/dist/server/modules/channels/channel-polling-scheduler.js +93 -0
- package/dist/server/modules/channels/channel-polling-scheduler.js.map +1 -0
- package/dist/server/modules/channels/channel-polling-service.d.ts +46 -0
- package/dist/server/modules/channels/channel-polling-service.js +176 -0
- package/dist/server/modules/channels/channel-polling-service.js.map +1 -0
- package/dist/server/modules/channels/channel-service.d.ts +108 -0
- package/dist/server/modules/channels/channel-service.js +397 -0
- package/dist/server/modules/channels/channel-service.js.map +1 -0
- package/dist/server/modules/channels/wechat-claw-client.d.ts +51 -0
- package/dist/server/modules/channels/wechat-claw-client.js +245 -0
- package/dist/server/modules/channels/wechat-claw-client.js.map +1 -0
- package/dist/server/modules/channels/wechat-claw-runtime-boundary.d.ts +4 -0
- package/dist/server/modules/channels/wechat-claw-runtime-boundary.js +13 -0
- package/dist/server/modules/channels/wechat-claw-runtime-boundary.js.map +1 -0
- package/dist/server/modules/channels/wechat-claw-runtime-client.d.ts +14 -0
- package/dist/server/modules/channels/wechat-claw-runtime-client.js +95 -0
- package/dist/server/modules/channels/wechat-claw-runtime-client.js.map +1 -0
- package/dist/server/modules/channels/wechat-claw-runtime-manager.d.ts +16 -0
- package/dist/server/modules/channels/wechat-claw-runtime-manager.js +133 -0
- package/dist/server/modules/channels/wechat-claw-runtime-manager.js.map +1 -0
- package/dist/server/modules/channels/wechat-claw-runtime-types.d.ts +1 -0
- package/dist/server/modules/channels/wechat-claw-runtime-types.js +2 -0
- package/dist/server/modules/channels/wechat-claw-runtime-types.js.map +1 -0
- package/dist/server/modules/opencli/opencli-bridge-skill-service.d.ts +12 -0
- package/dist/server/modules/opencli/opencli-bridge-skill-service.js +125 -0
- package/dist/server/modules/opencli/opencli-bridge-skill-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-catalog-service.d.ts +50 -0
- package/dist/server/modules/opencli/opencli-catalog-service.js +345 -0
- package/dist/server/modules/opencli/opencli-catalog-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-controller.d.ts +13 -0
- package/dist/server/modules/opencli/opencli-controller.js +30 -0
- package/dist/server/modules/opencli/opencli-controller.js.map +1 -0
- package/dist/server/modules/opencli/opencli-health-service.d.ts +28 -0
- package/dist/server/modules/opencli/opencli-health-service.js +106 -0
- package/dist/server/modules/opencli/opencli-health-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-install-discovery.d.ts +23 -0
- package/dist/server/modules/opencli/opencli-install-discovery.js +130 -0
- package/dist/server/modules/opencli/opencli-install-discovery.js.map +1 -0
- package/dist/server/modules/opencli/opencli-management-service.d.ts +59 -0
- package/dist/server/modules/opencli/opencli-management-service.js +152 -0
- package/dist/server/modules/opencli/opencli-management-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-runtime-builder.d.ts +11 -0
- package/dist/server/modules/opencli/opencli-runtime-builder.js +214 -0
- package/dist/server/modules/opencli/opencli-runtime-builder.js.map +1 -0
- package/dist/server/modules/opencli/opencli-runtime-layout.d.ts +3 -0
- package/dist/server/modules/opencli/opencli-runtime-layout.js +11 -0
- package/dist/server/modules/opencli/opencli-runtime-layout.js.map +1 -0
- package/dist/server/modules/opencli/opencli-runtime-profile-service.d.ts +29 -0
- package/dist/server/modules/opencli/opencli-runtime-profile-service.js +104 -0
- package/dist/server/modules/opencli/opencli-runtime-profile-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-runtime-resolver.d.ts +29 -0
- package/dist/server/modules/opencli/opencli-runtime-resolver.js +110 -0
- package/dist/server/modules/opencli/opencli-runtime-resolver.js.map +1 -0
- package/dist/server/modules/opencli/opencli-session-prompt-service.d.ts +11 -0
- package/dist/server/modules/opencli/opencli-session-prompt-service.js +66 -0
- package/dist/server/modules/opencli/opencli-session-prompt-service.js.map +1 -0
- package/dist/server/modules/provider/provider-catalog-service.d.ts +45 -0
- package/dist/server/modules/provider/provider-catalog-service.js +204 -0
- package/dist/server/modules/provider/provider-catalog-service.js.map +1 -0
- package/dist/server/modules/provider/provider-controller.d.ts +16 -2
- package/dist/server/modules/provider/provider-controller.js +49 -6
- package/dist/server/modules/provider/provider-controller.js.map +1 -1
- package/dist/server/modules/provider/provider-disabled.d.ts +8 -0
- package/dist/server/modules/provider/provider-disabled.js +45 -0
- package/dist/server/modules/provider/provider-disabled.js.map +1 -0
- package/dist/server/modules/provider/provider-discovery-helper-client.d.ts +1 -0
- package/dist/server/modules/provider/provider-discovery-helper-client.js.map +1 -1
- package/dist/server/modules/provider/provider-discovery-helper-process.js +3 -3
- package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
- package/dist/server/modules/provider/provider-discovery-runtime.d.ts +1 -1
- package/dist/server/modules/provider/provider-discovery-runtime.js +12 -8
- package/dist/server/modules/provider/provider-discovery-runtime.js.map +1 -1
- package/dist/server/modules/provider/provider-runtime-state-service.d.ts +24 -0
- package/dist/server/modules/provider/provider-runtime-state-service.js +141 -0
- package/dist/server/modules/provider/provider-runtime-state-service.js.map +1 -0
- package/dist/server/modules/sessions/claude-compatible-provider-registry.d.ts +16 -0
- package/dist/server/modules/sessions/claude-compatible-provider-registry.js +91 -0
- package/dist/server/modules/sessions/claude-compatible-provider-registry.js.map +1 -0
- package/dist/server/modules/sessions/session-history-service.d.ts +9 -3
- package/dist/server/modules/sessions/session-history-service.js +198 -62
- package/dist/server/modules/sessions/session-history-service.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-router-service.js +9 -4
- package/dist/server/modules/sessions/session-live-runtime-router-service.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-service.d.ts +8 -4
- package/dist/server/modules/sessions/session-live-runtime-service.js +99 -88
- package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
- package/dist/server/modules/sessions/session-permission-request-service.d.ts +5 -2
- package/dist/server/modules/sessions/session-permission-request-service.js +26 -27
- package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
- package/dist/server/modules/sessions/session-provider-config-service.d.ts +18 -1
- package/dist/server/modules/sessions/session-provider-config-service.js +142 -17
- package/dist/server/modules/sessions/session-provider-config-service.js.map +1 -1
- package/dist/server/modules/sessions/session-provider-error-mapper.js +7 -0
- package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -1
- package/dist/server/modules/skills/skill-manager-service.d.ts +5 -0
- package/dist/server/modules/skills/skill-manager-service.js +26 -0
- package/dist/server/modules/skills/skill-manager-service.js.map +1 -1
- package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +1 -0
- package/dist/server/modules/tasks/task-helper-process-handlers.js +1 -1
- package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -1
- package/dist/server/modules/tasks/task-types.d.ts +2 -0
- package/dist/server/modules/tasks/task-types.js +2 -0
- package/dist/server/modules/tasks/task-types.js.map +1 -1
- package/dist/server/routes/channels.d.ts +3 -0
- package/dist/server/routes/channels.js +16 -0
- package/dist/server/routes/channels.js.map +1 -0
- package/dist/server/routes/opencli.d.ts +3 -0
- package/dist/server/routes/opencli.js +7 -0
- package/dist/server/routes/opencli.js.map +1 -0
- package/dist/server/routes/providers.js +5 -2
- package/dist/server/routes/providers.js.map +1 -1
- package/dist/server/routes/public.d.ts +2 -1
- package/dist/server/routes/public.js +3 -1
- package/dist/server/routes/public.js.map +1 -1
- package/dist/server/server/create-server.d.ts +30 -0
- package/dist/server/server/create-server.js +104 -12
- package/dist/server/server/create-server.js.map +1 -1
- package/dist/server/shared/http/error-handler.js +59 -3
- package/dist/server/shared/http/error-handler.js.map +1 -1
- package/dist/server/storage/repositories/channel-account-repository.d.ts +12 -0
- package/dist/server/storage/repositories/channel-account-repository.js +153 -0
- package/dist/server/storage/repositories/channel-account-repository.js.map +1 -0
- package/dist/server/storage/repositories/channel-delivery-repository.d.ts +13 -0
- package/dist/server/storage/repositories/channel-delivery-repository.js +156 -0
- package/dist/server/storage/repositories/channel-delivery-repository.js.map +1 -0
- package/dist/server/storage/repositories/channel-inbound-event-repository.d.ts +12 -0
- package/dist/server/storage/repositories/channel-inbound-event-repository.js +144 -0
- package/dist/server/storage/repositories/channel-inbound-event-repository.js.map +1 -0
- package/dist/server/storage/repositories/channel-thread-repository.d.ts +12 -0
- package/dist/server/storage/repositories/channel-thread-repository.js +152 -0
- package/dist/server/storage/repositories/channel-thread-repository.js.map +1 -0
- package/dist/server/storage/repositories/opencli-catalog-entry-repository.d.ts +9 -0
- package/dist/server/storage/repositories/opencli-catalog-entry-repository.js +85 -0
- package/dist/server/storage/repositories/opencli-catalog-entry-repository.js.map +1 -0
- package/dist/server/storage/repositories/opencli-provider-repository.d.ts +8 -0
- package/dist/server/storage/repositories/opencli-provider-repository.js +88 -0
- package/dist/server/storage/repositories/opencli-provider-repository.js.map +1 -0
- package/dist/server/storage/repositories/opencli-runtime-profile-repository.d.ts +11 -0
- package/dist/server/storage/repositories/opencli-runtime-profile-repository.js +127 -0
- package/dist/server/storage/repositories/opencli-runtime-profile-repository.js.map +1 -0
- package/dist/server/storage/repositories/provider-control-repository.d.ts +9 -0
- package/dist/server/storage/repositories/provider-control-repository.js +51 -0
- package/dist/server/storage/repositories/provider-control-repository.js.map +1 -0
- package/dist/server/storage/repositories/provider-runtime-state-repository.d.ts +9 -0
- package/dist/server/storage/repositories/provider-runtime-state-repository.js +50 -0
- package/dist/server/storage/repositories/provider-runtime-state-repository.js.map +1 -0
- package/dist/server/storage/sqlite/client.js +53 -0
- package/dist/server/storage/sqlite/client.js.map +1 -1
- package/dist/server/storage/sqlite/schema.sql +180 -0
- package/dist/server/types/domain.d.ts +132 -0
- package/dist/server/ws/workbench-ws-hub.js +8 -2
- package/dist/server/ws/workbench-ws-hub.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +28 -11
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +61 -8
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.d.ts +5 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.d.ts +3 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +94 -21
- package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +1 -1
- package/package.json +1 -1
- package/dist/public/assets/AdaptiveButlerPage-Dw72U3hG.js +0 -3
- package/dist/public/assets/ConversationPage-8wOY7SX-.js +0 -4
- package/dist/public/assets/SessionIndexPage-B-tRhBXC.js +0 -1
- package/dist/public/assets/SettingsPage-C9LGxSQZ.js +0 -1
- package/dist/public/assets/WorkbenchLayout-pOZvEqp7.js +0 -3
- package/dist/public/assets/WorkbenchModal-ColqvV6a.js +0 -1
- package/dist/public/assets/WorkbenchShellRoute-C0_h4lP6.js +0 -1
- package/dist/public/assets/file-tree-icon-Bp3Ntt7u.js +0 -31
- package/dist/public/assets/index-B84Po2NA.css +0 -1
- package/dist/public/assets/index-C-0oeG_5.js +0 -42
- package/dist/public/assets/model-switch-api-Bh9nYslz.js +0 -1
- package/dist/public/assets/session-runtime-machine-YN84QBlr.js +0 -21
- package/dist/public/assets/styles-CsEMfdaS.css +0 -1
- /package/dist/public/assets/{styles-DRVvx_kv.js → styles-lhQGDlPF.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var V=Object.defineProperty;var Z=(e,n,s)=>n in e?V(e,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[n]=s;var R=(e,n,s)=>Z(e,typeof n!="symbol"?n+"":n,s);import{C as r,A as Y,b as w,j as i,t as g,f as X,Y as H,h as $}from"./index-C-0oeG_5.js";import{e as _,g as ee}from"./App-Dsf3ooXU.js";function ne(){return r.request("/api/workspaces")}async function Be(){try{return await r.request("/api/workbench")}catch(e){if(!(e instanceof Y)||e.status!==404)throw e;const n=await ne();return{items:await Promise.all(n.items.map(async t=>({workspace:t,sessions:(await se(t.id)).items})))}}}function Me(e){return r.request("/api/workspaces/import",{method:"POST",body:JSON.stringify(e)})}function ke(e){return r.request("/api/workspaces/clone",{method:"POST",body:JSON.stringify(e)})}function je(e){return r.request(`/api/workspaces/${encodeURIComponent(e)}`,{method:"DELETE"})}function Ke(e){return r.request("/api/debug-targets/analyze",{method:"POST",body:JSON.stringify(e)})}function Fe(e,n){return r.request(`/api/debug-targets/${encodeURIComponent(e)}/launch-plan`,{method:"POST",body:JSON.stringify({})})}function Je(){return r.request("/api/framework-compatibility-matrix")}function Qe(e){return r.request("/api/workspaces/reorder",{method:"PUT",body:JSON.stringify(e)})}function Ge(e,n){return r.request(`/api/workspaces/${encodeURIComponent(e)}/navigation-state`,{method:"PUT",body:JSON.stringify(n)})}function We(e){const n=new URLSearchParams;return e!=null&&e.trim()&&n.set("path",e.trim()),r.request(`/api/workspaces/browse${n.size>0?`?${n.toString()}`:""}`)}function ze(e){return r.request("/api/workspaces/directories",{method:"POST",body:JSON.stringify(e)})}function se(e){return r.request(`/api/sessions?workspaceId=${encodeURIComponent(e)}`)}function Ve(e){return r.request(`/api/sessions/${encodeURIComponent(e)}`)}function Ze(e){return r.request(`/api/sessions/${encodeURIComponent(e)}/changed-files`)}function Ye(e){return r.request(`/api/sessions/${encodeURIComponent(e)}/seen`,{method:"POST"})}function Xe(e,n){return r.request(`/api/sessions/${encodeURIComponent(e)}/title`,{method:"PATCH",body:JSON.stringify({title:n})})}function He(e,n){return r.request(`/api/sessions/${encodeURIComponent(e)}/archive`,{method:"PATCH",body:JSON.stringify({archived:n})})}function $e(e,n){return r.request(`/api/sessions/${encodeURIComponent(e)}/favorite`,{method:"PATCH",body:JSON.stringify({favorite:n})})}function _e(e){return r.request(`/api/sessions/${encodeURIComponent(e)}`,{method:"DELETE"})}function en(e,n){return r.request(`/api/sessions/${encodeURIComponent(e)}/parallel-groups`,{method:"POST",body:JSON.stringify(n)})}function nn(e,n){return r.request(`/api/workspaces/${encodeURIComponent(e)}/parallel-groups`,{method:"POST",body:JSON.stringify(n)})}function sn(e){return r.request(`/api/parallel-groups/${encodeURIComponent(e)}`)}function tn(e,n){return r.request(`/api/parallel-groups/${encodeURIComponent(e)}/members`,{method:"POST",body:JSON.stringify(n)})}function on(e){return r.request(`/api/session-isolated-workspaces/${encodeURIComponent(e)}/promote`,{method:"POST"})}function rn(e){return r.request("/api/worktrees",{method:"POST",body:JSON.stringify(e)})}function an(e){return r.request(`/api/worktrees/${encodeURIComponent(e)}/merge-preview`,{method:"POST"})}function un(e){return r.request(`/api/worktrees/${encodeURIComponent(e)}/merge-into-parent`,{method:"POST"})}function ln(e,n){return r.request(`/api/worktrees/${encodeURIComponent(e)}/cleanup`,{method:"POST",body:JSON.stringify(n??{})})}function cn(e){return r.request(`/api/sessions/${encodeURIComponent(e)}/capabilities`)}function dn(e){return r.request(`/api/sessions/${encodeURIComponent(e)}/permission-requests`)}function fn(){return r.request("/api/preferences/quick-phrases")}function pn(e){return r.request("/api/preferences/quick-phrases",{method:"PUT",body:JSON.stringify({items:e})})}function te(e,n,s){var o;const t=new URLSearchParams;return n!=null&&n.trim()&&t.set("workspaceId",n.trim()),(s==null?void 0:s.providerConfigMode)==="cc-switch-preset"&&((o=s.providerPresetId)!=null&&o.trim())&&(t.set("providerConfigMode","cc-switch-preset"),t.set("providerPresetId",s.providerPresetId.trim())),r.request(`/api/providers/${encodeURIComponent(e)}/capabilities${t.size>0?`?${t.toString()}`:""}`)}async function oe(e,n){const s=await Promise.allSettled(e.map(async o=>[o,await te(o,n)])),t=[];for(const o of s){if(o.status!=="fulfilled")continue;const[a,l]=o.value;t.push([a,l])}return Object.fromEntries(t)}function mn(e,n,s,t="forward"){const o=new URLSearchParams;return n&&o.set("cursor",n),o.set("limit",String(s)),o.set("direction",t),r.request(`/api/sessions/${encodeURIComponent(e)}/messages?${o.toString()}`)}function gn(e,n){return r.requestBlob(`/api/sessions/${encodeURIComponent(e)}/attachments/${encodeURIComponent(n)}/content`)}function Sn(e,n){return r.request(`/api/sessions/${encodeURIComponent(e)}/messages`,{method:"POST",body:JSON.stringify(n)})}function An(e,n){return r.request(`/api/sessions/${encodeURIComponent(e)}/forks`,{method:"POST",body:JSON.stringify(n)})}function hn(e){return r.request("/api/sessions/start-live",{method:"POST",body:JSON.stringify(e)})}function yn(e,n){return r.request(`/api/sessions/${encodeURIComponent(e)}/messages/live`,{method:"POST",body:JSON.stringify(n)})}function vn(e){return r.request(`/api/sessions/${encodeURIComponent(e)}/queue`)}function Rn(e,n){return r.request(`/api/sessions/${encodeURIComponent(e)}/queue`,{method:"POST",body:JSON.stringify(n)})}function Cn(e,n){return r.request(`/api/sessions/${encodeURIComponent(e)}/queue/${encodeURIComponent(n)}`,{method:"DELETE"})}function wn(e,n){return r.request(`/api/sessions/${encodeURIComponent(e)}/queue/${encodeURIComponent(n)}/steer`,{method:"POST"})}function Dn(e){return r.request(`/api/sessions/${encodeURIComponent(e)}/runtime`)}function Pn(e){return r.request(`/api/sessions/${encodeURIComponent(e)}/interrupt`,{method:"POST"})}function On(e,n,s){return r.request(`/api/sessions/${encodeURIComponent(e)}/permission-requests/${encodeURIComponent(n)}/reply`,{method:"POST",body:JSON.stringify(s)})}const I="codingns.workspace.session-display-sort-mode",b="codingns.file-panel.show-system-files",U="codingns.notification.preferences",C={notifyOnPermissionRequest:!0,notifyOnSessionCompleted:!0,notifyOnSessionFailed:!0};function D(){return typeof window<"u"&&typeof window.localStorage<"u"}function re(e){return e==="createdAt"||e==="updatedAt"||e==="title"}function B(){if(!D())return"createdAt";const e=window.localStorage.getItem(I);return re(e)?e:"createdAt"}function M(){return D()?window.localStorage.getItem(b)==="1":!1}function q(e){return typeof e=="boolean"}function k(){if(!D())return C;const e=window.localStorage.getItem(U);if(!e)return C;try{const n=JSON.parse(e);return{notifyOnPermissionRequest:q(n.notifyOnPermissionRequest)?n.notifyOnPermissionRequest:C.notifyOnPermissionRequest,notifyOnSessionCompleted:q(n.notifyOnSessionCompleted)?n.notifyOnSessionCompleted:C.notifyOnSessionCompleted,notifyOnSessionFailed:q(n.notifyOnSessionFailed)?n.notifyOnSessionFailed:C.notifyOnSessionFailed}}catch{return C}}function j(e,n){return e.notifyOnPermissionRequest===n.notifyOnPermissionRequest&&e.notifyOnSessionCompleted===n.notifyOnSessionCompleted&&e.notifyOnSessionFailed===n.notifyOnSessionFailed}function ie(e){D()&&window.localStorage.setItem(U,JSON.stringify(e))}class ae{constructor(){R(this,"state",{sessionDisplaySortMode:B(),showSystemFiles:M(),notificationPreferences:k()});R(this,"listeners",new Set);R(this,"subscribe",n=>(this.listeners.add(n),()=>{this.listeners.delete(n)}));R(this,"getState",()=>this.state);R(this,"handleStorage",n=>{if(n.key!==null&&n.key!==I&&n.key!==b&&n.key!==U)return;const s=B(),t=M(),o=k(),a=this.state.sessionDisplaySortMode===s,l=this.state.showSystemFiles===t,c=j(this.state.notificationPreferences,o);a&&l&&c||(this.state={sessionDisplaySortMode:s,showSystemFiles:t,notificationPreferences:o},this.emit())});typeof window<"u"&&window.addEventListener("storage",this.handleStorage)}setSessionDisplaySortMode(n){D()&&(n==="createdAt"?window.localStorage.removeItem(I):window.localStorage.setItem(I,n)),this.state.sessionDisplaySortMode!==n&&(this.state={...this.state,sessionDisplaySortMode:n},this.emit())}setShowSystemFiles(n){D()&&(n?window.localStorage.setItem(b,"1"):window.localStorage.removeItem(b)),this.state.showSystemFiles!==n&&(this.state={...this.state,showSystemFiles:n},this.emit())}setNotificationPreferences(n){const s={...this.state.notificationPreferences,...n};j(this.state.notificationPreferences,s)||(ie(s),this.state={...this.state,notificationPreferences:s},this.emit())}emit(){for(const n of this.listeners)n()}}const K=new ae;function Nn(e){return w.useSyncExternalStore(K.subscribe,()=>e(K.getState()))}function In({heading:e,description:n,actions:s,tone:t="default",className:o,children:a}){return i.jsxs("section",{className:y("modal-section",o),"data-tone":t,children:[e||n||s?i.jsxs("div",{className:"modal-section-header",children:[i.jsxs("div",{className:"modal-section-copy",children:[e?i.jsx("strong",{className:"modal-section-heading",children:e}):null,n?i.jsx("p",{className:"modal-section-description",children:n}):null]}),s?i.jsx("div",{className:"modal-section-actions",children:s}):null]}):null,a]})}function bn({label:e,description:n,className:s,htmlFor:t,children:o}){return i.jsxs("div",{className:y("workbench-modal-field","modal-field",s),children:[i.jsxs("div",{className:"modal-field-copy",children:[t?i.jsx("label",{className:"modal-field-label",htmlFor:t,children:e}):i.jsx("span",{className:"modal-field-label",children:e}),n?i.jsx("span",{className:"modal-field-description",children:n}):null]}),o]})}function En({align:e="end",stack:n=!1,className:s,children:t,...o}){return i.jsx("div",{className:y("workbench-modal-actions","modal-actions",s),"data-align":e,"data-stack":n?"true":void 0,...o,children:t})}function Ln({compact:e=!1,className:n,children:s,...t}){return i.jsx("div",{className:y("modal-list",n),"data-compact":e?"true":void 0,...t,children:s})}function qn(e){const{as:n="div",label:s,description:t,leading:o,trailing:a,tone:l="default",selected:c=!1,className:P,children:O,...S}=e,f={className:y("modal-list-item",P),"data-tone":l!=="default"?l:void 0,"data-selected":c?"true":void 0,"data-interactive":n==="button"?"true":void 0},A=i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"modal-list-item-main",children:[o?i.jsx("div",{className:"modal-list-item-leading",children:o}):null,i.jsxs("div",{className:"modal-list-item-copy",children:[s?i.jsx("span",{className:"modal-list-item-label",children:s}):null,t?i.jsx("span",{className:"modal-list-item-description",children:t}):null,O]})]}),a?i.jsx("div",{className:"modal-list-item-trailing",children:a}):null]});if(n==="button"){const u=S;return i.jsx("button",{type:u.type??"button",...u,...f,children:A})}return i.jsx("div",{...S,...f,children:A})}function Un({title:e,description:n,action:s,className:t,compact:o=!1}){return i.jsxs("div",{className:y("modal-empty-state",t),"data-compact":o?"true":void 0,children:[i.jsx("strong",{className:"modal-empty-state-title",children:e}),n?i.jsx("p",{className:"modal-empty-state-description",children:n}):null,s?i.jsx("div",{className:"modal-empty-state-action",children:s}):null]})}function Tn({tone:e="default",className:n,children:s,...t}){return i.jsx("span",{className:y("modal-tag",n),"data-tone":e!=="default"?e:void 0,...t,children:s})}function y(...e){return e.filter(Boolean).join(" ")}function ue(){return _().haptics}const le="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAF+0lEQVRYha2XbXBUZxXHf+e5u4SkCZjg0NIWnQLJLgRF5UWnL75MP9gMjqPT2eyC0qlMiYxOUAR206LOyhiSTVscp52O0xamWgu7WTp0qLUz6kht6Qed1L7M5GUTsAoDTRSIJJos2b33+GFfWMJuNqmcT/c595z/+d3nOc+9zxXKWE9Li7tm0fjyqmT6H0t/Fp8sFz9XM+UCauouH8Rx+ifmWWdP7Q0sLRbT98g3lySC/mcSQd+GGwrQt2vzx1G2ZEa6KJ3S1mJxlpOKIDyEmEM3FGCk5vw5YCw3FmFbb9hXfV2gcm/26vINBfhS+LU0qgcKXB9xT1hbr6kdDhtgcYaDxHSNwVBg92Ao0DMY8n97zgAAZnK8U2AoX1D0++rzWfkC44k6wAVghP7C3EQo8Iiijyq61oEDiV2bPjojwKk234pEsPnh/lDgzpyv/olXrwi6qyDsjsQy2ZQXmJdefPWWvp0v3uZ/CLQ9NxZINpxJj84IYDvmOUT2G/T1DD0CUB/pflnhd1eT5Mcnwl90Adi23JzPl9TbAEN7fF9AeapQW5AOicftGQFEOJ+9tEDbB9v8x99r21wLYBlnJ5AGUKhfklz8QEbY3J71nVnZceziUPAbtzvGxAB3wdPH6yPRx6cXvw4gbbm/B5zIO5SvVKjdMxAMrKvviPcpHMyLqvyoN+ybh7AUwIi+M9TaVOGI/SJwc4Fsf6rS2SqgxQBkukPDYTM40RdCZB/Z5gKmEGmzjStq2alBoDqbvF2hEWgF9oEuAvlugdx/Deaz9ZEjvcWKFwXIWaLNv14cDqmwugDvFRVOi8qOrOMdhT6BzQhvoNxzjbjItxo6o8+VqjEjAMBQa1OFXbXwh4KGuLqmDleXToHzwG1FpLs9kah/uvf98IPz08nkSuZbp+vDL4zNCJAHaQt82lH9JfCJ2cQrTFjq8hiZGrfVtQGcDQhrFNYAywELuFw15SwRgN6dvrrahcnkreGXJ0pCtDZVOFULwsCerEBJExhVGAY8FH/Z2cBvPJHY1ySx13cbaXMaqACSwCVRLqlhVNBRVTOm4lxCOSdqPkB0FdA2m5kosGGEHpC3UP2z6uRJb9fx8SwsJEL+nwBNwEKgWqBSoXaORQqtH+VNhDdErJMNnYf/ViqwbBNO3lRbVZFSS9yyIG1jucRuVuGnM6TZZL4d/wS9KEgawIH/gF5EzAWBvzecto9KPG7PqgkBTu0NLHVs7VBlcxnwS8ALgtyp6Kco3S9/OF850lQWYCD41RpMZUiUH5BZmgkRDqmyVaCqeJYeS1dqwJq4UoG56S5w7hb4PMp6YH426LJR1+qSAOrzWYPLZCvIPuAWAIHXxGGXY3geWAV6DOTrJRR+r5q8P9dskNtJ1etBVl4R19FPdh4eLQowEPR5RKxfgebOeGMqGvLMX/V0YrK/W+B+4ATCYZRnEJ5E+Q5gFM4AFwQ+I8hbLks2Ltt/ZKTUg163Rwfamrcj5q/54spvLZes9nZ2/yIx0b8jW/wCLmeLOLoCAEdeAjmYnaWPGXga9Jiia1O28+bAbt8dswJQEFF5IrO2chGVBzxdsY0r2qNnBx5uvkuELkAFedDTHj+nIl4AIzJsjL2XTAOisB+XtqryKLBcLHNyKLSpsSyAgKrKJoRtbksaPV3R5yFz7BaHOOBGOdAQib6SRV4L4KQZqe+I/wvYmZWqE1ue8nbFggjbgDoH/VOxY3vZXdDT0uKuqR37I+jdIH9JV9r3NIbjU717fLe4jPkASDVEYhW5730i2PwqIvdlZkK3eCPdv06E/GuAbmCBJxJbUnIGill13b8fyxRnRG070BiOTwG4MeuyszBSeNiw3KZFYDTzdPLzU7u3LPZEYu+qTq5Tlev+K2YESAQD94rKjqzgl72Pxd/P3VNLsgAyXJizoj161kG3Z4d1aZP6HIC36/i4tyt6dE4AasQNDIhxNnoisXevvZndJcLw9DxvpLsb5XGE9yzD2ZlqzPpVPN0SIf854FaUZz1dsW0fVqdsD5Q05Qhgg7z+oTX+Xyv2pzNX+x+eTlGviPgh3AAAAABJRU5ErkJggg==",ce="/assets/legna-code-6TqgZ4Ls.png",Q="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAbGSURBVHgBzZo/bBtVHMd/ZzuJA0gYCYlsOFO7xRFDy1R3olucqd0SJtiSjiCknBckpjZjBxRn7BR3owOqs5Wp7tZKoDgSQysh4UqUOCG2eZ/3/Oznv/fObqJ+pfPZd+/ufn++vz/vnQN5FwjbGZFGQSRYUb+yIu2c2tSxIOOMqpktqKpzz9X3ioSLNZkRgUwLhA4aW9KWvPqVl6mgldmVGZSJr0BX8Pb2gIVnRUltxbiKxFOgeLJzAYL3I5BQdhaL/sN9EJ5k1dADw+1LQU1tN328kYgaIMWzDSX4s0sUHmSVwZ5JeFqIGjhZgeKpokyzdKGUGQuyWOtA03YCxlNIC98K5X3AhLgYrYB2ndLeE5l0IFvXklK4mpRsxvyuvmqrrSX71aZUjlsyM4LkpuzM7w8dHhqoAxbO+9Fm63pSwhspLTSo1dt6n830bl1SStx9fK6/Z9LmWL3B1hZ/BHUl1+pgYI9S4Eh0EEVjJ5/SwiPI7m9Nuf+02SfUZi4pO+o8ynDcKmlRqRkPlZ43xQ+q8IXpVfdIsu88vJd2ZOSD/OcJKRXmtMW//PlMyi9a0jjvH5NZCDStEDydCjSlfvm9pa/hd24poc+zf/zH8PUjsCT57wOp/FjpqtQ9pakjR+KJo60Fbdnl3dMubSw4vrc2J/msSXLlF4ZCg+M4zzjGEzM39888aAWVFpYlZN+fRnfEE1iMh8JtVygsDWWefTOvhYMiCLX+8L8h4QHnVx+cas/klgLZvpb0eDrp9d/trjr609P6brbhgesPDXXA5kpS7t0ywYwVi4fERD8noJ1WfIDzBDYeRRw8GscL1gP5iCv0g7FsqAIX4UH9pHeegEb44uG5EuKsT3iuPbg9J08252VPxQ3CoowFGYlgRhEMEY2eFzp3CbbEQ3j28BnXjwI0CSvnXQu6lMJrnOd67qOV6fAf2HuuLPn2l4kbRgGT9yf2OU825o11lXDw+bgenb8LV5JdjwE8s/rAxMPXj0xMkGbxBkpWX8epCRp5WvuERNAHl9qADQ+j8xz0QuGDOz3rIizXW8/wHa7bzISSKAveNCQGGoVElPU3coaTcDQKhmoL3QxEkLMna2FplzKAOCFLGf6b4x+nJQbauURnHjsWWJQg8+1nsChCsZGh2LuUwTvb11J94zfVeVtPGOOej4CuNNlJI2xa9BUeQQaD3FKG83iAdItHClcSQ4rzLJvRohGsRCowqoexyCxKbNiUqVPrnf5MhBL0VKRTv6IWZCJnZJR4bujm7eprY+GD2/M6g/hZyypgKENGspThHha2fqxdjZ4sUg8iRz16aYLXBrN5SLPLa5tBMrGCT3T7wD0GgYcM1XwU0IWsXZ80wPY7WMpVguM2g0ABvMDmZhkXZox4w3dswvQV44FFSIe4vqT46rrbzSAEru1pXF6j1L2vTND6Us10p15Zr5Ywq2OTQRwUO0UMyiCM27PYDDKYLomRoy2VNq+n9HGfbGbvyzM9FWgd+4zMfWY4iaV1v6+assHCZNOl7XcKnUC0bUQ9osrq3qnTevgUTtZYUz4ecGEDDwtjaTYER8jsx0YAO5Gxc2EfyyP83lqq27b4Fc6gqhRolEXSe1FDrRBUZioslrYpkD3WthzHSyg0WNCIkVFeoNWw3S7UsQsAHqiobvQTgrgSNbL80gizdmU4EyEswsNzPMQxV3hqiO1oR3kDoyD87tOm57QStKusUNiUcigRXSlZQRchZW2qpc0Sdg5AbQDuw3XboDIQcwGAUm7uh3LWEPvPx88zRiNgWd5OaBr3o+oBrmeaCJhdDeZ7BB83kbETdjZ3bmzryii6eaDCR8c0PzUk/wOdTX7SFU//bEmg5EYoUiOCvv5H5NXbnuDffpHUGYoxLJN892uvarsgXXIPa/14SJTU+pBepXOWVf5W88yFI58VOWqBW9DAYNM3KQMRE0x4gO2JYmLZrtD1ItLTC3ooK2rKasdvzAIVwNp2PfTqpwmdWZY+CswMKzDeYZp579acNgDjodSLv+IK31JvcT4o218jlhYbM78LcJcUR8EG8xSWrynLL7sHZl7cnQQUoYKvLJn0eVwnHTenCVgxSSbwWNwF4cmm+owsbpeLxLqEC+WhoyPHhosl4Y3hewN4Pyw8mNzfhiehxFgzvRgg/IfhuLPRDXr4ljfwe5f/nkxz/m6HDWMR4zWrPBHPFx+zQ7/BX/d5zRrvRfeFU0pbfVcJHvpeMcVfDfAGby8TG/LO0BFc0vftiwtfzPBnD02rvFnZnrrwVUR3wvEFt5heARddZVDE/uXGjRdt4bru4UWODcfT5WmFdvE/Jeqz44iuBr4AAAAASUVORK5CYII=",de="/assets/gemini-D4G1NbrE.png",fe="/assets/kimi-BWNNSh7e.png",pe="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAABzUlEQVR4AeycQQrCQBAEF1+g6J/0o5LPCXmCnnNx0E2nNqGEPciw024VffV0PZ/fHo7BqflBCSgAxd+aAhQAE4DjbYACYAJwvA1QAEwAjrcBCgAIDBRpA2AZClAATACOtwEKgAnA8TZAATABOD7egNc8tz2ftJ+4gPQD9r5fAbDBDQXALx00XgGwGAUoACYAx9sABcAE4HgboACYABxvAxSwJHC7XFryLNP4bzYg7KBar4CKUHiugDDgar0CKkLhuQLCgKv1CqgIhecKCAOu1iugIhSeKyAMuFqvgIpQeK6AMOBq/XAC7o9H6z5fdlRAtp4PJ2BrAHSeAmADClAATACOtwEKgAnA8TZAATABON4GKAAmAMev2AD4JTuNVwAsTgEKgAnA8TZAATABON4GKAAmAMfbAAXABOB4G9ApoPe6AnoJdt5XQCfA3uvDCXhOU0ueXmBr3x9OwNoPHH2fAmBDClAATACOtwEKgAnA8TZAAX8QONAVGwDLVIACYAJwfLwByf/+2WJ32k9cQPoBe9+vANigAhQAE4DjbYACYAJw/A8NgH/pQeMVAItVgAJgAnC8DVAATACOtwEKgAnA8TZAATABON4GFALS4w8AAAD//x7wkLQAAAAGSURBVAMAKj5LkLSa6SQAAAAASUVORK5CYII=",me=new Set(["low","medium","high","xhigh"]),ge=["claude-code","codex","opencode","gemini","kimi","legna-code"],Se=["codex","claude-code","opencode","gemini","kimi","legna-code"],G={"claude-code":{displayNameKey:"conversation.providerClaude",fullDisplayNameKey:"shell.providerClaudeCode",draftTitleKey:"conversation.draftTitleClaude",defaultModelLabelKey:"conversation.modelUseCliDefault",icon:le,defaultRunInputMode:"streaming_guidance",reasoningLevelPersists:!1,defaultReasoningLevel:void 0,supportsSlashMenuByDefault:!0,supportsRunSteeringByDefault:!0,supportsSessionDeleteByDefault:!0,foldRulesMessagesByDefault:!1},"legna-code":{displayNameKey:"conversation.providerLegna",fullDisplayNameKey:"shell.providerLegnaCode",draftTitleKey:"conversation.draftTitleLegna",defaultModelLabelKey:"conversation.modelUseCliDefault",icon:ce,defaultRunInputMode:"streaming_guidance",reasoningLevelPersists:!1,defaultReasoningLevel:void 0,supportsSlashMenuByDefault:!0,supportsRunSteeringByDefault:!0,supportsSessionDeleteByDefault:!0,foldRulesMessagesByDefault:!1},codex:{displayNameKey:"conversation.providerCodex",draftTitleKey:"conversation.draftTitleCodex",defaultModelLabelKey:"conversation.modelUseCliDefault",icon:Q,defaultRunInputMode:"streaming_guidance",reasoningLevelPersists:!0,defaultReasoningLevel:null,supportsSlashMenuByDefault:!1,supportsRunSteeringByDefault:!0,supportsQueueWhileRunningByDefault:!0,supportsSessionDeleteByDefault:!0,foldRulesMessagesByDefault:!0},opencode:{displayNameKey:"conversation.providerOpenCode",draftTitleKey:"conversation.draftTitleOpenCode",defaultModelLabelKey:"conversation.modelUseCliDefault",icon:pe,defaultRunInputMode:"none",reasoningLevelPersists:!1,defaultReasoningLevel:void 0,supportsSlashMenuByDefault:!1,supportsSessionDeleteByDefault:!0,foldRulesMessagesByDefault:!1},gemini:{displayNameKey:"conversation.providerGemini",draftTitleKey:"conversation.draftTitleGemini",defaultModelLabelKey:"conversation.modelUseCliDefault",icon:de,defaultRunInputMode:"none",reasoningLevelPersists:!1,defaultReasoningLevel:null,supportsInterrupt:!0,supportsAttachments:!1,supportsPermissionPrompt:!1,supportsSlashMenuByDefault:!1,supportsSessionDeleteByDefault:!0,foldRulesMessagesByDefault:!1},kimi:{displayNameKey:"conversation.providerKimi",draftTitleKey:"conversation.draftTitleKimi",defaultModelLabelKey:"conversation.modelUseCliDefault",icon:fe,defaultRunInputMode:"none",reasoningLevelPersists:!1,defaultReasoningLevel:null,supportsInterrupt:!0,supportsAttachments:!1,supportsPermissionPrompt:!1,supportsSlashMenuByDefault:!1,supportsSessionDeleteByDefault:!0,foldRulesMessagesByDefault:!0}},Ae=Array.from(new Set(Object.values(G).map(e=>e.icon)));let F=!1;function he(e){return ge.includes(e)}function d(e){return!e||!he(e)?null:G[e]}function ye(e){return[{id:"provider-default",name:g(e),usesProviderDefault:!0}]}function ve(e){const n=d(e);return ye((n==null?void 0:n.defaultModelLabelKey)??"conversation.modelUseCliDefault")}function xn(e){return!!(e&&d(e))}function Bn(e){const n=d(e);return g((n==null?void 0:n.draftTitleKey)??"conversation.draftTitleCodex")}function Re(e,n="compact"){const s=d(e);return s?n==="full"&&s.fullDisplayNameKey?g(s.fullDisplayNameKey):g(s.displayNameKey):(e==null?void 0:e.trim())||g("conversation.providerCodex")}function Ce(e){const n=d(e);return(n==null?void 0:n.icon)??Q}function W(){F||typeof window>"u"||(F=!0,Ae.forEach(e=>{const n=new window.Image;n.decoding="async",n.src=e,typeof n.decode=="function"&&n.decode().catch(()=>{})}))}function Mn(e){const n=d(e);return{provider:e,canStartSession:!0,canResumeSession:!0,canSendMessage:!0,inRunInputMode:(n==null?void 0:n.defaultRunInputMode)??"none",supportsSubagents:!1,supportsInterrupt:(n==null?void 0:n.supportsInterrupt)??!1,supportsStructuredToolCalls:!0,supportsTokenUsage:!0,supportsAttachments:(n==null?void 0:n.supportsAttachments)??!0,supportsPermissionPrompt:(n==null?void 0:n.supportsPermissionPrompt)??!0,supportsCheckpoint:!1,supportsSessionDelete:(n==null?void 0:n.supportsSessionDeleteByDefault)??!1,modelOptions:ve(e),defaultReasoningLevel:n==null?void 0:n.defaultReasoningLevel,supportsRunSteering:n==null?void 0:n.supportsRunSteeringByDefault,supportsQueueWhileRunning:n==null?void 0:n.supportsQueueWhileRunningByDefault,limitations:[]}}function kn(e){return(e==null?void 0:e.provider)??"claude-code"}function jn(e){var s;if((e==null?void 0:e.supportsSlashMenu)!==void 0)return e.supportsSlashMenu;const n=(e==null?void 0:e.provider)??null;return((s=d(n))==null?void 0:s.supportsSlashMenuByDefault)??!1}function Kn(e){var n;return(e==null?void 0:e.supportsReasoningSelector)!==void 0?e.supportsReasoningSelector:!!((n=e==null?void 0:e.modelOptions)!=null&&n.some(s=>{var t;return((t=s.supportedReasoningEfforts)==null?void 0:t.some(o=>me.has(o)))??!1}))}function Fn(e,n){var a;if((e==null?void 0:e.supportsQueueWhileRunning)!==void 0)return e.supportsQueueWhileRunning;const s=(e==null?void 0:e.provider)??null,t=(a=d(s))==null?void 0:a.supportsQueueWhileRunningByDefault;if(t!==void 0)return t;const o=(e==null?void 0:e.inRunInputMode)??"none";return o==="queued_guidance"||o==="none"||o==="streaming_guidance"&&n===!1}function Jn(e){var s;if((e==null?void 0:e.supportsRunSteering)!==void 0)return e.supportsRunSteering;const n=(e==null?void 0:e.provider)??null;return((s=d(n))==null?void 0:s.supportsRunSteeringByDefault)??(e==null?void 0:e.inRunInputMode)==="streaming_guidance"}function Qn(e){const n=d(e);return(n==null?void 0:n.reasoningLevelPersists)??!1}function Gn(e,n){var t;return((t=d(n??null))==null?void 0:t.foldRulesMessagesByDefault)??!1}typeof window<"u"&&W();const T=new Map;function Wn(){T.clear()}function zn({disabled:e=!1,workspaceId:n=null,pendingProvider:s=null,selectedProvider:t=null,providers:o=Se,className:a,disabledReasons:l,statusHintByProvider:c,onSelect:P}){const O=ue(),S=!!n,[v,f]=w.useState(()=>J(o,n)),A=o.map(u=>({provider:u}));return w.useEffect(()=>{W()},[]),w.useEffect(()=>{if(!n){f({});return}const u=J(o,n);f(u);const h=o.filter(m=>!u[m]);if(h.length===0)return;let p=!1;return oe(h,n).then(m=>{De(n,m),p||f(N=>({...N,...m}))}),()=>{p=!0}},[o,n]),i.jsx("div",{className:`session-provider-grid${a?` ${a}`:""}`,children:A.map(u=>{const h=Re(u.provider,"full"),p=s===u.provider,m=t===u.provider,N=!!v[u.provider],E=we(v[u.provider]??null),L=(l==null?void 0:l[u.provider])??E,x=p?g("shell.startingSession"):L||((c==null?void 0:c[u.provider])??(S&&!N&&!p?g("shell.providerChecking"):null));return i.jsxs("button",{type:"button",className:"session-provider-card","data-provider":u.provider,"data-pending":p?"true":"false","data-selected":m?"true":"false","aria-label":h,disabled:e||!!L,onClick:()=>{O.trigger("action"),P(u.provider)},children:[i.jsx("span",{className:"session-provider-card-icon","aria-hidden":"true",children:i.jsx("img",{src:Ce(u.provider),alt:"",loading:"eager",decoding:"async"})}),i.jsxs("span",{className:"session-provider-card-copy",children:[i.jsx("strong",{children:h}),x?i.jsx("span",{className:"session-provider-card-status",children:x}):null]})]},u.provider)})})}function we(e){return!e||e.canStartSession!==!1?null:e.limitations[0]??g("conversation.capabilityDenied")}function J(e,n){const s=(n==null?void 0:n.trim())??"";if(!s)return{};const t=[];for(const o of e){const a=T.get(z(s,o));a&&t.push([o,a])}return Object.fromEntries(t)}function De(e,n){const s=e.trim();if(s)for(const[t,o]of Object.entries(n))o&&T.set(z(s,t),o)}function z(e,n){return`${e}::${n}`}function Vn(){const e=X(s=>s),n=H(s=>s);return Pe(e,n)}function Pe(e,n){var l;const s=$(e);if(!s)return null;const t=!!((l=s.relayTunnel)!=null&&l.enabled),a=!(e.platform==="web"&&t)&&n.activeHostId===s.id&&n.candidateProbePhase==="ready"?Oe(n):null;if(a){const c=Ne(a.kind);return{kind:c,url:a.url,endpointId:a.endpointId,autoDirect:t&&c!=="relay",probeInProgress:!1}}return{kind:Ie(s),url:s.baseUrl,endpointId:null,autoDirect:!1,probeInProgress:t&&n.activeHostId===s.id&&n.candidateProbePhase==="probing"}}function Zn(e){switch(e){case"relay":return"common.connectionRouteRelay";case"lan":return"common.connectionRouteLan";case"loopback":return"common.connectionRouteLoopback";case"tailscale":return"common.connectionRouteTailscale";default:return"common.connectionRouteDirect"}}function Oe(e){const n=e.preferredDirectCandidateEndpointId??e.preferredCandidateEndpointId;return n?e.candidateEndpoints.find(s=>s.endpointId===n&&s.status==="verified")??null:null}function Ne(e){return e==="custom"?"direct":e}function Ie(e){var n;if((n=e.relayTunnel)!=null&&n.enabled&&be(e.baseUrl,e.relayTunnel.tunnelDomain))return"relay";try{const s=new URL(e.baseUrl).hostname.toLowerCase();if(Ee(s))return"loopback";if(Le(s))return"tailscale";if(qe(s))return"lan"}catch{return"direct"}return e.kind==="local"?"loopback":e.kind==="lan"?"lan":"direct"}function be(e,n){try{return new URL(e).hostname.toLowerCase()===n.trim().toLowerCase()}catch{return!1}}function Ee(e){return e==="localhost"||e==="127.0.0.1"||e==="::1"||e==="[::1]"}function Le(e){if(e.endsWith(".ts.net"))return!0;const n=e.split(".").map(o=>Number(o));if(n.length!==4||n.some(o=>Number.isNaN(o)))return!1;const[s,t]=n;return s===100&&t>=64&&t<=127}function qe(e){const n=e.split(".").map(o=>Number(o));if(n.length!==4||n.some(o=>Number.isNaN(o)))return!1;const[s,t]=n;return s===10||s===192&&t===168||s===172&&t>=16&&t<=31}function Yn({open:e,title:n,description:s,height:t="auto",kind:o="form",dismissible:a=!0,closeOnBackdrop:l=!0,showHandle:c=!1,showCancelButton:P=!0,cancelLabel:O,className:S,cardClassName:v,bodyClassName:f,footer:A,onClose:u,children:h}){const p=w.useId(),m=w.useId(),N=a&&l;return!e||typeof document>"u"?null:ee.createPortal(i.jsx("div",{className:"ios-action-sheet-overlay mobile-sheet-overlay",role:"presentation",onClick:()=>{N&&u()},children:i.jsxs("div",{className:`mobile-workspace-home-sheet mobile-sheet${S?` ${S}`:""}`,"data-height":t,"data-kind":o,role:"dialog","aria-modal":"true","aria-labelledby":p,"aria-describedby":s?m:void 0,onClick:E=>E.stopPropagation(),children:[i.jsxs("div",{className:`mobile-workspace-home-sheet-card mobile-sheet-card${v?` ${v}`:""}`,children:[c?i.jsx("div",{className:"mobile-sheet-handle","aria-hidden":"true"}):null,i.jsx("div",{className:"mobile-workspace-home-sheet-header mobile-sheet-header",children:i.jsxs("div",{className:"mobile-sheet-title-wrap",children:[i.jsx("strong",{id:p,children:n}),s?i.jsx("p",{id:m,children:s}):null]})}),i.jsx("div",{className:f?`mobile-sheet-body ${f}`:"mobile-sheet-body",children:h}),A?i.jsx("div",{className:"mobile-sheet-footer",children:A}):null]}),P?i.jsx("button",{type:"button",className:"ios-action-sheet-cancel mobile-sheet-cancel",disabled:!a,onClick:()=>{a&&u()},children:O??g("common.cancel")}):null]})}),document.body)}async function Xn(){return await r.request("/api/system/model-switch")}async function Hn(e){return await r.request("/api/system/model-switch",{method:"POST",body:JSON.stringify(e)})}export{Gn as $,Cn as A,wn as B,Pn as C,On as D,Ye as E,mn as F,Dn as G,cn as H,dn as I,vn as J,Sn as K,xn as L,Yn as M,Jn as N,sn as O,_e as P,on as Q,Bn as R,zn as S,Un as T,kn as U,Kn as V,jn as W,Fn as X,pn as Y,Qn as Z,fn as _,Re as a,gn as a0,Ce as a1,We as a2,ke as a3,Me as a4,ze as a5,tn as a6,en as a7,nn as a8,an as a9,un as aa,ln as ab,He as ac,Wn as ad,Ge as ae,Qe as af,$e as ag,Xe as ah,rn as ai,Hn as aj,K as ak,Ze as al,Ke as b,Fe as c,Je as d,ue as e,In as f,Be as g,bn as h,Ln as i,qn as j,Tn as k,Vn as l,Zn as m,Mn as n,Xn as o,te as p,oe as q,je as r,Se as s,En as t,Nn as u,An as v,yn as w,hn as x,Ve as y,Rn as z};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
var Hi=Object.defineProperty;var Ki=(e,t,n)=>t in e?Hi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ce=(e,t,n)=>Ki(e,typeof t!="symbol"?t+"":t,n);import{t as o,j as s,b as d,u as Vi,E as Un,a as Bs,m as qs,H as Gi,J as Qi,F as Zi}from"./index-C-0oeG_5.js";import{e as qt,f as Wt,g as as}from"./App-Dsf3ooXU.js";import{e as Yi,U as Ji,o as Ws,p as Ds,V as Xi,W as eo,n as zn,a as Sr,N as to,X as no,Y as so,Z as ro,_ as io,q as oo,M as ao,i as lo,j as Fs,$ as co,a0 as uo,a1 as mo}from"./model-switch-api-Bh9nYslz.js";import{W as pn,D as Nr}from"./WorkbenchModal-ColqvV6a.js";import{R as wt,T as ze,V as Us,X as $e,Y as ln,U as zs,S as fn,Z as $s,aY as po,u as Mr,aJ as fo,ax as ho,a5 as jt,a6 as Hs}from"./WorkbenchLayout-pOZvEqp7.js";import{M as go,r as vo}from"./file-tree-icon-Bp3Ntt7u.js";function $n(e,t){if(!e)return{allowed:!1,hidden:!1,reason:o("conversation.capabilityDenied")};switch(t){case"send_message":return e.canSendMessage===!1?{allowed:!1,hidden:!1,reason:o("conversation.capabilitySendDisabled")}:{allowed:!0,hidden:!1,reason:null};case"attachments":return e.supportsAttachments?{allowed:!0,hidden:!1,reason:null}:{allowed:!1,hidden:!1,reason:o("conversation.capabilityAttachmentDisabled")};case"interrupt":return e.supportsInterrupt?{allowed:!0,hidden:!1,reason:null}:{allowed:!1,hidden:!1,reason:o("conversation.capabilityInterruptDisabled")};default:return{allowed:!1,hidden:!1,reason:o("conversation.capabilityDenied")}}}const bo=new Set(["updateplan"]),Tr=new Set(["todowrite"]),Xn=new Set(["todoread"]),Rr=new Set(["taskcreate","taskupdate","taskget","tasklist","taskdelete","taskremove"]);function xo(e,t){const n=ko(e,t);return n||Co(e,t)}function Ar(e){return e.reduce((t,n)=>(t[n.status]+=1,t),{pending:0,in_progress:0,completed:0,failed:0,cancelled:0})}function yo(e,t,n){if(!e)return null;if(es(e.name)){const l=ut(e);if(!l||!Cn(l.value))return null;const c=Pr(l.value,n);return!c||c.items.length===0?null:{provider:t,source:"plan",explanation:c.explanation,items:c.items,updatedAt:n}}const r=kn(e.name);if(!Tr.has(r)&&!Xn.has(r)&&!Rr.has(r))return null;const i=ut(e,(Xn.has(r),"prefer-output"));if(!i)return null;if(r==="taskdelete"||r==="taskremove"){const l=Lr(i.value);return l.length>0?{provider:t,source:"todo",explanation:null,items:l.map((c,m)=>({id:c,title:`Task ${m+1}`,status:"cancelled",detail:c,updatedAt:n})),updatedAt:n}:null}const a=Nt(i.value,n);return a.length===0?null:{provider:t,source:es(e.name)?"plan":"todo",explanation:null,items:a,updatedAt:n}}function ko(e,t){let n=null;for(const r of e){const i=r.toolCall;if(!i||kn(i.name)===""||!es(i.name))continue;const a=ut(i);if(!a||typeof a.value!="object"||a.value===null)continue;const l=Pr(a.value,r.timestamp);!l||l.items.length===0||(n={provider:t,source:"plan",explanation:l.explanation,items:l.items,updatedAt:r.timestamp})}return n}function Co(e,t){const n=new Map;let r=null;for(const a of e){const l=a.toolCall;if(!l)continue;const c=kn(l.name);if(Tr.has(c)){const p=ut(l),b=p?Nt(p.value,a.timestamp):[];b.length>0&&(Hn(n,b),r=a.timestamp);continue}if(Xn.has(c)){const p=ut(l,"prefer-output"),b=p?Nt(p.value,a.timestamp):[];b.length>0&&(Hn(n,b),r=a.timestamp);continue}if(!Rr.has(c))continue;const m=ut(l,"prefer-output");if(!m)continue;if(c==="tasklist"||c==="taskget"){const p=Nt(m.value,a.timestamp);p.length>0&&(Hn(n,p),r=a.timestamp);continue}if(c==="taskdelete"||c==="taskremove"){const p=Lr(m.value);if(p.length>0){for(const b of p)n.delete(b);r=a.timestamp}continue}const v=Nt(m.value,a.timestamp);if(v.length!==0){for(const p of v)jo(n,p);r=a.timestamp}}const i=Array.from(n.values()).sort((a,l)=>a.updatedAt.localeCompare(l.updatedAt)).map(a=>({...a}));return i.length===0||!r?null:{provider:t,source:"todo",explanation:null,items:i,updatedAt:r}}function es(e){return bo.has(kn(e))}function Pr(e,t){const n=Array.isArray(e.plan)?e.plan:null;if(!n||n.length===0)return null;const r=n.map((i,a)=>Ir(i,{fallbackIdPrefix:"plan",fallbackTitle:`Step ${a+1}`,fallbackStatus:"pending",updatedAt:t})).filter(i=>i!==null);return r.length===0?null:{items:r,explanation:B(e.explanation)}}function ut(e,t="prefer-input"){const n=t==="prefer-output"?[{text:e.output,source:"output"},{text:e.input,source:"input"}]:[{text:e.input,source:"input"},{text:e.output,source:"output"}];for(const r of n){const i=wo(r.text);if(i!==null)return{value:i,source:r.source}}return null}function wo(e){const t=(e==null?void 0:e.trim())??"";if(!t)return null;const n=cn(t);if(n!==null)return n;const r=t.match(/```(?:json)?\s*([\s\S]+?)```/i);if(r!=null&&r[1]){const m=cn(r[1].trim());if(m!==null)return m}const i=t.indexOf("{"),a=t.lastIndexOf("}");if(i>=0&&a>i){const m=cn(t.slice(i,a+1));if(m!==null)return m}const l=t.indexOf("["),c=t.lastIndexOf("]");return l>=0&&c>l?cn(t.slice(l,c+1)):null}function cn(e){try{return JSON.parse(e)}catch{return null}}function Nt(e,t){return Rt(e).map((r,i)=>Ir(r,{fallbackIdPrefix:"task",fallbackTitle:`Task ${i+1}`,fallbackStatus:"pending",updatedAt:t})).filter(r=>r!==null)}function Rt(e){if(Array.isArray(e))return e.flatMap(n=>Rt(n));if(!Cn(e))return[];if(To(e))return[e];const t=["tasks","todos","items","entries","results","data"];for(const n of t){if(!(n in e))continue;const r=Rt(e[n]);if(r.length>0)return r}return Object.values(e).flatMap(n=>Rt(n))}function Lr(e){const n=Rt(e).map(i=>ts(i)).filter(i=>i!==null);if(n.length>0)return n;if(!Cn(e))return[];const r=ts(e);return r?[r]:[]}function Ir(e,t){if(!Cn(e))return null;const n=B(e.step)??B(e.title)??B(e.content)??B(e.task)??B(e.text)??B(e.name)??B(e.subject)??B(e.description)??t.fallbackTitle,r=ts(e)??Mo(t.fallbackIdPrefix,n),i=No(e,n);return{id:r,title:n,status:So(e.status,t.fallbackStatus),detail:i,updatedAt:t.updatedAt}}function jo(e,t){const n=e.get(t.id);if(!n){e.set(t.id,{...t});return}e.set(t.id,{id:n.id,title:t.title||n.title,status:t.status,detail:t.detail??n.detail,updatedAt:t.updatedAt})}function Hn(e,t){e.clear();for(const n of t)e.set(n.id,{...n})}function So(e,t){var r;const n=(r=B(e))==null?void 0:r.toLowerCase().replace(/[\s-]+/g,"_");return n?["pending","todo","open","queued","not_started","created"].includes(n)?"pending":["in_progress","progress","active","doing","running","started"].includes(n)?"in_progress":["completed","complete","done","success","succeeded","finished","closed"].includes(n)?"completed":["failed","error","errored"].includes(n)?"failed":["cancelled","canceled","aborted","skipped"].includes(n)?"cancelled":t:t}function No(e,t){const n=[B(e.detail),B(e.details),B(e.description),B(e.reason),B(e.summary),B(e.note),B(e.priority)].filter(r=>r!==null);for(const r of n)if(r!==t)return r;return null}function ts(e){return B(e.id)??B(e.taskId)??B(e.task_id)??B(e.uuid)??B(e.key)}function Mo(e,t){return`${e}:${t.trim().toLowerCase()}`}function To(e){return[e.step,e.title,e.content,e.task,e.text,e.subject,e.name,e.description].some(t=>B(t)!==null)}function kn(e){return e.trim().toLowerCase().replace(/[\s_.-]+/g,"")}function Cn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function B(e){if(typeof e!="string")return null;const t=e.trim();return t||null}function Ro(){return s.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:"conversation-action-icon",children:[s.jsx("rect",{x:"7",y:"5",width:"9",height:"11",rx:"2.5"}),s.jsx("path",{d:"M5.5 12.5H5A2 2 0 0 1 3 10.5V5a2 2 0 0 1 2-2h5.5"})]})}function Ao(){return s.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:"conversation-action-icon",children:[s.jsx("circle",{cx:"6",cy:"5",r:"2.25"}),s.jsx("circle",{cx:"14",cy:"6",r:"2.25"}),s.jsx("circle",{cx:"14",cy:"14",r:"2.25"}),s.jsx("path",{d:"M8.4 5.7h2.2a2.7 2.7 0 0 1 2.7 2.7v1.2"}),s.jsx("path",{d:"M8.1 5.9l4.1 6.2"})]})}function Kc(){return s.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:"conversation-action-icon",children:[s.jsx("path",{d:"M10 2.8l1.6 3.4 3.8.5-2.8 2.6.7 3.9-3.3-1.8-3.3 1.8.7-3.9-2.8-2.6 3.8-.5L10 2.8z"}),s.jsx("path",{d:"M15.8 13.3l.7 1.5 1.7.2-1.2 1.1.3 1.8-1.5-.8-1.5.8.3-1.8-1.2-1.1 1.7-.2.7-1.5z"})]})}function Vc(){return s.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:"conversation-action-icon",children:[s.jsx("circle",{cx:"6",cy:"5",r:"2.2"}),s.jsx("circle",{cx:"14",cy:"5",r:"2.2"}),s.jsx("circle",{cx:"10",cy:"14",r:"2.2"}),s.jsx("path",{d:"M8.2 5h3.6"}),s.jsx("path",{d:"M10 7.2v4.6"}),s.jsx("path",{d:"M7.3 6.8l1.7 4"}),s.jsx("path",{d:"M12.7 6.8l-1.7 4"})]})}function Gc(){return s.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",fill:"currentColor",className:"conversation-action-icon",children:[s.jsx("circle",{cx:"4.5",cy:"10",r:"1.5"}),s.jsx("circle",{cx:"10",cy:"10",r:"1.5"}),s.jsx("circle",{cx:"15.5",cy:"10",r:"1.5"})]})}function Po(){return s.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:"conversation-action-icon",children:[s.jsx("path",{d:"M4.5 5.5h1.2"}),s.jsx("path",{d:"M8 5.5h7.5"}),s.jsx("path",{d:"M4.5 10h1.2"}),s.jsx("path",{d:"M8 10h7.5"}),s.jsx("path",{d:"M4.5 14.5h1.2"}),s.jsx("path",{d:"M8 14.5h7.5"}),s.jsx("path",{d:"M5.1 5.5l.5.5 1-1"}),s.jsx("circle",{cx:"5.1",cy:"10",r:".8",fill:"currentColor",stroke:"none"}),s.jsx("path",{d:"M5.1 14.5l.5.5 1-1"})]})}const Ks={in_progress:0,failed:1,pending:2,completed:3,cancelled:4};function Lo({provider:e,messages:t,variant:n="header"}){const[r,i]=d.useState(!1),a=d.useMemo(()=>xo(t,e),[t,e]);if(!a||a.items.length===0)return null;const l=Ar(a.items),c=l.in_progress||l.pending,m=c>0?c:a.items.length,v=[...a.items].sort((b,f)=>{const C=Ks[b.status]-Ks[f.status];return C!==0?C:b.updatedAt.localeCompare(f.updatedAt)}),p=n==="composer"?"conversation-task-progress-button composer-task-progress-button":"conversation-header-ai-button conversation-task-progress-button";return s.jsxs(s.Fragment,{children:[s.jsxs("button",{type:"button",className:p,"data-variant":n,"aria-label":o("conversation.taskProgressButton",{count:a.items.length}),title:o("conversation.taskProgressButton",{count:a.items.length}),onClick:()=>{i(!0)},children:[s.jsx("span",{className:"conversation-header-ai-button-label","aria-hidden":"true",children:s.jsx(Po,{})}),s.jsx("span",{className:"conversation-task-progress-badge",children:m})]}),s.jsx(pn,{open:r,title:o("conversation.taskProgressModalTitle"),description:o("conversation.taskProgressModalDescription",{count:a.items.length}),className:"conversation-task-progress-modal",onClose:()=>{i(!1)},children:s.jsxs("div",{className:"conversation-task-progress-modal-body",children:[s.jsxs("div",{className:"conversation-task-progress-summary",children:[s.jsx(St,{label:o("conversation.taskProgressSummaryTotal"),value:a.items.length}),s.jsx(St,{label:o("conversation.taskProgressStatusInProgress"),value:l.in_progress}),s.jsx(St,{label:o("conversation.taskProgressStatusPending"),value:l.pending}),s.jsx(St,{label:o("conversation.taskProgressStatusCompleted"),value:l.completed}),l.failed>0?s.jsx(St,{label:o("conversation.taskProgressStatusFailed"),value:l.failed}):null]}),a.explanation?s.jsxs("div",{className:"conversation-task-progress-explanation",children:[s.jsx("strong",{children:o("conversation.taskProgressExplanationTitle")}),s.jsx("p",{children:a.explanation})]}):null,s.jsx("ol",{className:"conversation-task-progress-list",children:v.map(b=>s.jsxs("li",{className:"conversation-task-progress-item","data-status":b.status,children:[s.jsx("span",{className:"conversation-task-progress-item-indicator","data-status":b.status,"aria-hidden":"true"}),s.jsxs("div",{className:"conversation-task-progress-item-body",children:[s.jsxs("div",{className:"conversation-task-progress-item-header",children:[s.jsx("strong",{children:b.title}),s.jsx("span",{className:"conversation-task-progress-item-status",children:Io(b.status)})]}),b.detail?s.jsx("p",{className:"conversation-task-progress-item-detail",children:b.detail}):null]})]},b.id))})]})})]})}function St({label:e,value:t}){return s.jsxs("div",{className:"conversation-task-progress-summary-card",children:[s.jsx("span",{children:e}),s.jsx("strong",{children:t})]})}function Io(e){switch(e){case"in_progress":return o("conversation.taskProgressStatusInProgress");case"completed":return o("conversation.taskProgressStatusCompleted");case"failed":return o("conversation.taskProgressStatusFailed");case"cancelled":return o("conversation.taskProgressStatusCancelled");case"pending":default:return o("conversation.taskProgressStatusPending")}}const Eo="codingns.conversation.composer-draft:",_o=1,Oo=[{id:"builtin-stage-and-summarize",text:"请将本次会话变更的所有代码提交到git暂存区,然后总结一条中文的提交信息"},{id:"builtin-review-module",text:"分析本项目 模块的代码实现,并分析存在的问题"},{id:"builtin-group-commits",text:"分析当前项目中的未提交文件,按照功能模块进行分类提交,提交信息格式请参考我最近的提交记录"}];function ls(){return typeof window<"u"&&typeof window.localStorage<"u"}function Bo(e){if(!e||typeof e!="object")return null;const t="id"in e?e.id:null,n="fileName"in e?e.fileName:null,r="mimeType"in e?e.mimeType:null,i="fileSize"in e?e.fileSize:null,a="lastModified"in e?e.lastModified:null,l="contentBase64"in e?e.contentBase64:null;if(typeof t!="string"||typeof n!="string"||typeof r!="string"||typeof i!="number"||typeof a!="number"||typeof l!="string")return null;const c=t.trim(),m=n.trim(),v=r.trim(),p=l.trim();return!c||!m||!v||i<0||a<0||!p?null:{id:c,fileName:m,mimeType:v,fileSize:i,lastModified:a,contentBase64:p}}function qo(e){if(!e||typeof e!="object")return null;const t="content"in e?e.content:null,n="attachments"in e?e.attachments:null;if(typeof t!="string"||!Array.isArray(n))return null;const r=n.map(i=>Bo(i)).filter(i=>i!==null);return r.length!==n.length||t.length===0&&r.length===0?null:{content:t,attachments:r}}function At(e){return`${Eo}${e}`}function Wo(e){var t,n;return{id:((n=(t=globalThis.crypto)==null?void 0:t.randomUUID)==null?void 0:n.call(t))??`phrase-${Date.now()}-${Math.random().toString(16).slice(2)}`,text:e.trim()}}function Do(e){if(!ls())return null;const t=e.trim();if(!t)return null;const n=window.localStorage.getItem(At(t));if(!n)return null;try{const r=JSON.parse(n),i=r&&typeof r=="object"&&"draft"in r&&r.draft&&typeof r.draft=="object"?r.draft:r,a=qo(i);return a||(window.localStorage.removeItem(At(t)),null)}catch{return window.localStorage.removeItem(At(t)),null}}function Fo(e,t){if(!ls())return!1;const n=e.trim();if(!n)return!1;if(t.content.length===0&&t.attachments.length===0)return Er(n),!0;try{return window.localStorage.setItem(At(n),JSON.stringify({schemaVersion:_o,draft:t})),!0}catch{return!1}}function Er(e){if(!ls())return;const t=e.trim();t&&window.localStorage.removeItem(At(t))}const Vs="workbench:focus-composer",_r=144,Uo=196,zo=124,$o=72,Gs=["codex","claude-code","opencode","gemini","kimi"],Ho=new Set(["codex","claude-code","opencode"]),Ko=new Set(["codex","claude-code","opencode"]),Qs={position:"absolute",width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0};let Zs=null;const it=new Map;function Vo(e,t){if(typeof document>"u")return t.length*8;Zs??(Zs=document.createElement("canvas"));const n=Zs.getContext("2d");if(!n)return t.length*8;const r=window.getComputedStyle(e),i=r.fontStyle||"normal",a=r.fontWeight||"600",l=r.fontSize||"13px",c=r.fontFamily||"system-ui";return n.font=`${i} ${a} ${l} ${c}`,n.measureText(t).width}function Go({labels:e,triggerWidth:t,maxWidth:n,preferredWidth:r,measureText:i}){const a=e.reduce((l,c)=>Math.max(l,Math.ceil(i(c)+$o)),0);return Math.min(n,Math.max(t,_r,r,a))}function Qo(e){return[{id:fn,name:o("conversation.modelUseCliDefault"),provider:e,usesProviderDefault:!0}]}function Ys(e){return Qo(e)}function Zo(){var e,t;return((t=(e=globalThis.crypto)==null?void 0:e.randomUUID)==null?void 0:t.call(e))??`${Date.now()}-${Math.random().toString(16).slice(2)}`}function Js(e){if(e){e.value="";try{const t=e.showPicker;if(typeof t=="function"){t.call(e);return}}catch{}e.click()}}function Yo(e,t,n,r){const i=globalThis.atob(n),a=Uint8Array.from(i,l=>l.charCodeAt(0));return new File([a],e,{type:t,lastModified:r})}function Jo(e){return e.trim().toLowerCase().startsWith("image/")}function Pt(e){const t=e.type.trim().toLowerCase();return t.length>0?t:"application/octet-stream"}function Or(e){return Jo(Pt(e))?"image":"file"}function Br(e,t=Zo()){const n=Or(e);return{id:t,file:e,kind:n,previewUrl:n==="image"?URL.createObjectURL(e):null}}function Xo(e){const t=Yo(e.fileName,e.mimeType,e.contentBase64,e.lastModified);return Br(t,e.id)}function ea(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function ta(e){const t=e.trim().replace(/\s+/g," ");return t.length===0?o("conversation.forkDraftEmpty"):t.length>140?`${t.slice(0,140)}…`:t}function na(e,t){return t===e?Ko.has(t)?null:o("conversation.forkProviderNativeUnsupported"):Ho.has(t)?null:o("conversation.forkProviderReconstructedUnsupported")}function qr(e){return(e==null?void 0:e.canStartSession)===!1}function sa(e){return qr(e)?(e==null?void 0:e.limitations[0])??o("conversation.capabilityDenied"):null}function ra(e,t){return{id:t,kind:Or(e),fileName:e.name,mimeType:Pt(e),fileSize:e.size}}function Xs(e){return new Promise((t,n)=>{const r=new FileReader;r.onerror=()=>{n(r.error??new Error("FILE_READ_FAILED"))},r.onload=()=>{const i=typeof r.result=="string"?r.result:"",a=i.includes(",")?i.split(",").at(-1)??"":i;t(a)},r.readAsDataURL(e)})}function ia(e){e.forEach(t=>{t.previewUrl&&URL.revokeObjectURL(t.previewUrl)})}function oa(e,t){const n=new Set(e.map(i=>`${i.file.name}:${i.file.size}:${i.file.lastModified}`)),r=[...e];return t.forEach(i=>{const a=`${i.name}:${i.size}:${i.lastModified}`;n.has(a)||(n.add(a),r.push(Br(i)))}),r}function aa(e,t,n){const r=e.nativeEvent;return r.isComposing||r.keyCode===229||t||n}function Qc({capabilities:e,placeholder:t,draftStorageId:n,initialModel:r=null,workspaceId:i=null,initialProviderConfigMode:a="global-default",initialProviderPresetId:l=null,forkDraft:c=null,onClearForkDraft:m,onForkDraftChange:v,panelRef:p,portalContainer:b=null,hasActiveRun:f=null,canInterrupt:C=null,contextUsage:y=null,taskProvider:x=null,taskMessages:j=[],hasPendingQueuedMessages:M=!1,isSubmitting:S,isRunning:P=!1,onInterrupt:F,onQueueSend:L,onSend:E}){const q=qt(),W=d.useId(),Z=d.useId(),[z,Q]=d.useState(""),[U,V]=d.useState(""),[ie,de]=d.useState("medium"),[X,be]=d.useState([]),[jn,fe]=d.useState(!1),[Le,xe]=d.useState(!1),[D,Ie]=d.useState(Oo),[Dt,Ye]=d.useState(!1),[Sn,Ce]=d.useState(!1),[Je,we]=d.useState(""),[oe,mt]=d.useState(!1),[Ft,ee]=d.useState(!1),[Ut,je]=d.useState(!1),[Xe,te]=d.useState(!1),[ae,Ee]=d.useState(null),[zt,ye]=d.useState(!1),[_e,pt]=d.useState(null),[$t,ft]=d.useState(!1),Ht=d.useMemo(()=>wt(a,l),[a,l]),[J,Se]=d.useState(Ht.providerConfigMode),[g,T]=d.useState(Ht.providerPresetId),_=d.useMemo(()=>wt(J,g),[J,g]),[le,K]=d.useState(null),[ht,et]=d.useState(!1),[he,Ne]=d.useState(null),[Nn,Oe]=d.useState(!1),[Be,ge]=d.useState("global-default"),[gt,ke]=d.useState(null),[Kt,Mn]=d.useState({}),[Vt,Gt]=d.useState(null),vt=d.useRef(null),Tn=d.useRef(null),fs=d.useRef(null),Rn=d.useRef(!1),An=d.useRef(!1),Qt=d.useRef(!1),bt=d.useRef(null),Me=d.useRef(new Set),qe=d.useRef(new Map),Pn=d.useRef(0),Zt=d.useRef(null),{showToast:xt}=Wt(),Yt=Yi(),Ln=d.useCallback(()=>{bt.current!==null&&(globalThis.clearTimeout(bt.current),bt.current=null),Qt.current=!1},[]);d.useEffect(()=>Ln,[Ln]);const O=(e==null?void 0:e.provider)??x??Ji(e),tt=ze(O),nt=Vi(u=>Un(O)?u.profile.providers[O]:null),yt=(nt==null?void 0:nt.defaultModel)??null,kt=(nt==null?void 0:nt.defaultReasoningLevel)??null;d.useEffect(()=>{const u=wt(a,l);Se(u.providerConfigMode),T(u.providerPresetId)},[n,a,l,O]),d.useEffect(()=>{if(!c){ge("global-default"),ke(null);return}if(ze(c.targetProvider)){const u=wt(c.targetProviderConfigMode,c.targetProviderPresetId);ge(u.providerConfigMode),ke(u.providerPresetId);return}ge("global-default"),ke(null)},[c]),d.useEffect(()=>{if(!tt){Ee(null),ye(!1);return}const u=it.get(tt)??null;u&&Ee(u);let h=!1;return ye(!u),Ws().then(k=>{k.items.forEach(w=>{it.set(w.app,w)}),h||Ee(it.get(tt)??null)}).catch(()=>{!h&&!u&&Ee(null)}).finally(()=>{h||ye(!1)}),()=>{h=!0}},[tt]),d.useEffect(()=>{const u=c?ze(c.targetProvider):null;if(!u){Ne(null),Oe(!1);return}const h=it.get(u)??null;h&&Ne(h);let k=!1;return Oe(!h),Ws().then(w=>{w.items.forEach(R=>{it.set(R.app,R)}),k||Ne(it.get(u)??null)}).catch(()=>{!k&&!h&&Ne(null)}).finally(()=>{k||Oe(!1)}),()=>{k=!0}},[c]),d.useEffect(()=>{if(J==="cc-switch-preset"){if(!g){Se("global-default");return}ae&&!ae.options.some(u=>u.id===g)&&(Se("global-default"),T(null))}},[ae,J,g]),d.useEffect(()=>{if(J!=="cc-switch-preset"||!g||!(i!=null&&i.trim())){pt(null),ft(!1);return}let u=!1;return ft(!0),Ds(O,i,{providerConfigMode:"cc-switch-preset",providerPresetId:g}).then(h=>{u||pt(h)}).catch(()=>{u||pt(null)}).finally(()=>{u||ft(!1)}),()=>{u=!0}},[O,J,g,i]),d.useEffect(()=>{if(!(!c||Be!=="cc-switch-preset")){if(!gt){ge("global-default");return}he&&!he.options.some(u=>u.id===gt)&&(ge("global-default"),ke(null))}},[he,c,Be,gt]);const In=d.useMemo(()=>$n(e,"send_message"),[e]),hs=d.useMemo(()=>$n(e,"interrupt"),[e]),ne=d.useMemo(()=>$n(e,"attachments"),[e]),st=d.useMemo(()=>J!=="cc-switch-preset"?e:_e??e,[e,_e,J]),me=d.useMemo(()=>{var h;const u=(h=st==null?void 0:st.modelOptions)==null?void 0:h.map(k=>{var w;return{...k,provider:O,supportedReasoningEfforts:(w=k.supportedReasoningEfforts)==null?void 0:w.filter(R=>R==="low"||R==="medium"||R==="high"||R==="xhigh")}});return u!=null&&u.length?u:Ys(O)},[st==null?void 0:st.modelOptions,O]),Jt=d.useMemo(()=>Us(ae),[ae]),En=J==="cc-switch-preset"?g??$e:$e,We=d.useMemo(()=>Jt.find(u=>u.value===En)??Jt[0]??null,[Jt,En]),se=d.useMemo(()=>me.find(u=>u.id===U)??null,[me,U]),Xt=Xi(e),bi=eo(e),_n=d.useMemo(()=>[{value:"low",label:o("conversation.reasoningLow")},{value:"medium",label:o("conversation.reasoningMedium")},{value:"high",label:o("conversation.reasoningHigh")},{value:"xhigh",label:o("conversation.reasoningMaximum")}],[]),ve=d.useMemo(()=>{if(!Xt)return[];const u=se==null?void 0:se.supportedReasoningEfforts;return!u||u.length===0?_n:_n.filter(h=>u.includes(h.value))},[Xt,_n,se==null?void 0:se.supportedReasoningEfforts]),gs=d.useMemo(()=>me.map(u=>({value:u.id,label:ln(u)?o("conversation.modelUseCliDefault"):u.name})),[me]),On=d.useMemo(()=>zs(ae),[ae]),xi=d.useMemo(()=>{const u=se?ln(se)?o("conversation.modelUseCliDefault"):se.name:o("conversation.modelUseCliDefault");return On?`${(We==null?void 0:We.label)??o("conversation.deploymentDefaultPreset")} · ${u}`:u},[se,We,On]),yi=d.useMemo(()=>ve.map(u=>({value:u.value,label:u.label})),[ve]),ki=d.useMemo(()=>[{command:"/plan",label:o("conversation.slashCommandPlan")},{command:"/review",label:o("conversation.slashCommandReview")},{command:"/explain",label:o("conversation.slashCommandExplain")}],[]),vs=(e==null?void 0:e.inRunInputMode)??"none",pe=!!c,bs=(c==null?void 0:c.targetProvider)??null,Ci=ze(bs),re=d.useMemo(()=>wt(Be,gt),[Be,gt]),en=!!c&&(e==null?void 0:e.provider)===bs&&_.providerConfigMode===re.providerConfigMode&&_.providerPresetId===re.providerPresetId,Te=d.useMemo(()=>c?en?e:le??zn(c.targetProvider):null,[e,le,c,en]),Re=d.useMemo(()=>{var h;if(!c)return[];const u=(h=Te==null?void 0:Te.modelOptions)==null?void 0:h.map(k=>{var w;return{...k,provider:c.targetProvider,supportedReasoningEfforts:(w=k.supportedReasoningEfforts)==null?void 0:w.filter(R=>R==="low"||R==="medium"||R==="high"||R==="xhigh")}});return u!=null&&u.length?u:Ys(c.targetProvider)},[Te==null?void 0:Te.modelOptions,c]),xs=d.useMemo(()=>Re.map(u=>({value:u.id,label:ln(u)?o("conversation.modelUseCliDefault"):u.name})),[Re]),tn=d.useMemo(()=>!c||!c.targetModel?fn:Re.some(u=>u.id===c.targetModel)?c.targetModel:fn,[Re,c]),nn=d.useMemo(()=>Us(he),[he]),Bn=re.providerConfigMode==="cc-switch-preset"?re.providerPresetId??$e:$e,De=d.useMemo(()=>nn.find(u=>u.value===Bn)??nn[0]??null,[nn,Bn]),sn=d.useMemo(()=>Re.find(u=>u.id===tn)??null,[Re,tn]),qn=d.useMemo(()=>zs(he),[he]),wi=d.useMemo(()=>{const u=sn?ln(sn)?o("conversation.modelUseCliDefault"):sn.name:o("conversation.modelUseCliDefault");return qn?`${(De==null?void 0:De.label)??o("conversation.deploymentDefaultPreset")} · ${u}`:u},[sn,De,qn]),Fe=d.useMemo(()=>c?Gs.filter(u=>na(c.sourceProvider,u)!==null?!1:!qr(Kt[u]??null)):[],[c,Kt]),ys=d.useMemo(()=>c?Fe.length>0?Fe:[c.targetProvider]:[],[c,Fe]),ji=d.useMemo(()=>ys.map(u=>({value:u,label:Sr(u,"full")})),[ys]),rn=d.useMemo(()=>c?sa(Kt[c.targetProvider]??Te??null):null,[Te,c,Kt]),on=f??null,Ue=P||on===!0,Si=Ue&&vs==="streaming_guidance"&&on===!1&&!to(e),ks=!pe&&Ue&&vs==="streaming_guidance"&&!Si,Wn=!pe&&Ue&&typeof L=="function"&&no(e,on),Y=!pe&&Ue&&!ks&&!Wn,Dn=pe&&!!rn,Cs=z.trim().length>0||X.length>0,ws=C===!1&&on===!0?hs.allowed:C??hs.allowed,Fn=Ue&&ws&&!!F&&!Ut,Ni=!Cs&&(Xe||S||Ue||M),js=Fn?o("conversation.capabilityInterrupt"):o("conversation.runtimeRunning"),Ss=Ue?Wn?o("conversation.queueGuidanceButton"):ks?o("conversation.sendGuidanceButton"):o("conversation.sendButton"):o("conversation.sendButton"),Ns=d.useCallback(u=>{V(u),Un(O)&&Bs({providers:{[O]:{defaultModel:u}}}).catch(()=>{})},[O]),Mi=d.useCallback(u=>{if(u==="__global_default__"){Se("global-default"),T(null);return}Se("cc-switch-preset"),T(u)},[]),Ti=d.useCallback(u=>{de(u),Un(O)&&Bs({providers:{[O]:{defaultReasoningLevel:u}}}).catch(()=>{})},[O]),an=d.useCallback(u=>{Me.current.forEach(h=>{URL.revokeObjectURL(h)}),Me.current.clear(),u.forEach(h=>{h.previewUrl&&Me.current.add(h.previewUrl)}),be(u)},[]),Ct=d.useCallback(u=>{u.length!==0&&be(h=>{const k=oa(h,u);return k.forEach(w=>{w.previewUrl&&Me.current.add(w.previewUrl)}),k})},[]),Ri=d.useCallback(u=>{qe.current.delete(u),be(h=>{const k=h.find(w=>w.id===u);return k!=null&&k.previewUrl&&(Me.current.delete(k.previewUrl),URL.revokeObjectURL(k.previewUrl)),h.filter(w=>w.id!==u)})},[]),Ms=d.useCallback(u=>{const h=Array.from(u.target.files??[]);h.length>0&&Ct(h),u.target.value=""},[Ct]),Ai=d.useCallback(u=>{var k;q.isMobile||!ne.allowed||Y||!((((k=u.dataTransfer.files)==null?void 0:k.length)??0)>0||Array.from(u.dataTransfer.items??[]).some(w=>w.kind==="file"))||(u.preventDefault(),u.dataTransfer.dropEffect="copy",Le||xe(!0),ee(!1))},[ne.allowed,Le,Y,q.isMobile]),Pi=d.useCallback(u=>{const h=u.relatedTarget;h instanceof Node&&u.currentTarget.contains(h)||xe(!1)},[]),Li=d.useCallback(u=>{if(q.isMobile||!ne.allowed||Y)return;const h=Array.from(u.dataTransfer.files??[]);h.length!==0&&(u.preventDefault(),xe(!1),Ct(h))},[ne.allowed,Y,Ct,q.isMobile]),Ts=d.useCallback(u=>{if(!ne.allowed||Y)return;const h=u==="camera"?fs.current:Tn.current;Js(h),fe(!1)},[ne.allowed,Y]),Ii=d.useCallback(()=>{if(!(!ne.allowed||Y)){if(ee(!1),q.isNativeMobile){Yt.trigger("selection"),fe(!0);return}Js(Tn.current)}},[ne.allowed,Yt,Y,q.isNativeMobile]),Ei=d.useCallback(()=>{ee(u=>!u)},[]),_i=d.useCallback(u=>{var h;Q(k=>k.trimStart().startsWith(u)?k:k.trim()?`${u} ${k.trim()}`:`${u} `),ee(!1),(h=vt.current)==null||h.focus()},[]),rt=d.useCallback(async u=>{const h=D;Pn.current+=1,Ie(u),mt(!0);try{const k=await so(u.map(w=>({id:w.id,text:w.text})));return Ie(k.items.map(w=>({id:w.id,text:w.text}))),!0}catch(k){return Ie(h),xt({title:k instanceof Error?k.message:o("conversation.quickPhraseSaveFailed"),tone:"error"}),!1}finally{mt(!1)}},[D,xt]),Oi=d.useCallback(async()=>{const u=Je.trim();!u||!await rt([...D,Wo(u)])||(we(""),Ce(!1))},[rt,Je,D]),Bi=d.useCallback(u=>{rt(D.filter(h=>h.id!==u))},[rt,D]),Rs=d.useCallback((u,h)=>{const k=D.findIndex(H=>H.id===u);if(k<0)return;const w=k+h;if(w<0||w>=D.length)return;const R=[...D],[$]=R.splice(k,1);R.splice(w,0,$),rt(R)},[rt,D]),qi=d.useCallback(u=>{var h;Q(u),Ye(!1),(h=vt.current)==null||h.focus()},[]),As=d.useCallback(u=>{const h=u?Do(u):null,k=(h==null?void 0:h.attachments.map(w=>Xo(w)))??[];qe.current=new Map(((h==null?void 0:h.attachments)??[]).map(w=>[w.id,w])),an(k),Q((h==null?void 0:h.content)??""),ee(!1)},[an]);d.useEffect(()=>{if(!me.length)return;const u=(r==null?void 0:r.trim())||null,h=`${n??"default"}:${O}:${u??""}`;if(!!(u&&me.some(R=>R.id===u))){if(Zt.current!==h){Zt.current=h,U!==u&&V(u);return}if(me.some(R=>R.id===U))return;V(u);return}if(!u&&Zt.current!==h&&(Zt.current=h),yt&&me.some(R=>R.id===yt)){U!==yt&&V(yt);return}if(me.some(R=>R.id===U))return;const w=me[0].id;V(w)},[me,n,O,U,yt,r]),d.useEffect(()=>{if(!ro(O)||ve.length===0)return;if(kt&&ve.some(k=>k.value===kt)){ie!==kt&&de(kt);return}const u=e==null?void 0:e.defaultReasoningLevel;if(u&&ve.some(k=>k.value===u)){ie!==u&&de(u);return}if(ve.some(k=>k.value===ie))return;const h=ve[0].value;de(h)},[ve,e==null?void 0:e.defaultReasoningLevel,O,ie,kt]),d.useEffect(()=>{let u=!1;const h=Pn.current;return io().then(k=>{u||Pn.current!==h||Ie(k.items.map(w=>({id:w.id,text:w.text})))}).catch(()=>{}),()=>{u=!0}},[]),d.useEffect(()=>{As(n)},[n,As]),d.useEffect(()=>{if(!n)return;const u=n,h=new Set(X.map(R=>R.id));qe.current.forEach((R,$)=>{h.has($)||qe.current.delete($)});let k=!1;async function w(){if(z.length===0&&X.length===0){Er(u);return}const R=await Promise.all(X.map(async $=>{const H=qe.current.get($.id);return H&&H.fileName===$.file.name&&H.fileSize===$.file.size&&H.lastModified===$.file.lastModified&&H.mimeType===Pt($.file)?H:{id:$.id,fileName:$.file.name,mimeType:Pt($.file),fileSize:$.file.size,lastModified:$.file.lastModified,contentBase64:await Xs($.file)}}));k||(qe.current=new Map(R.map($=>[$.id,$])),Fo(u,{content:z,attachments:R}))}return w(),()=>{k=!0}},[X,z,n]),d.useEffect(()=>{const u=vt.current;u&&(u.style.height="0px",u.style.height=`${Math.min(u.scrollHeight,120)}px`)},[z]),d.useEffect(()=>{ne.allowed||(qe.current.clear(),fe(!1),an([]))},[ne.allowed,an]),d.useEffect(()=>{q.isMobile||fe(!1)},[q.isMobile]),d.useEffect(()=>()=>{Me.current.forEach(u=>{URL.revokeObjectURL(u)}),Me.current.clear()},[]),d.useEffect(()=>{function u(){var h;(h=vt.current)==null||h.focus()}return window.addEventListener(Vs,u),()=>{window.removeEventListener(Vs,u)}},[]),d.useEffect(()=>{if(!c){K(null),et(!1),Ne(null),Oe(!1),Mn({}),Gt(null);return}if(en){K(null),et(!1);return}let u=!1;return K(zn(c.targetProvider)),et(!0),Ds(c.targetProvider,c.workspaceId,{providerConfigMode:re.providerConfigMode,providerPresetId:re.providerConfigMode==="cc-switch-preset"?re.providerPresetId:null}).then(h=>{u||K(h)}).catch(()=>{u||K(zn(c.targetProvider))}).finally(()=>{u||et(!1)}),()=>{u=!0}},[c,re.providerConfigMode,re.providerPresetId,en]),d.useEffect(()=>{if(!c){Mn({});return}let u=!1;return oo(Gs,c.workspaceId).then(h=>{u||Mn(h)}),()=>{u=!0}},[c==null?void 0:c.workspaceId]),d.useEffect(()=>{!c||!v||Fe.length!==0&&(Fe.includes(c.targetProvider)||v({...c,targetProvider:Fe[0]??c.targetProvider,targetModel:null,targetProviderConfigMode:"global-default",targetProviderPresetId:null}))},[c,v,Fe]),d.useEffect(()=>{!c||!c.targetModel||!v||Re.some(u=>u.id===c.targetModel)||v({...c,targetModel:null})},[Re,c,v]);const Wi=d.useCallback(u=>{if(!(!c||!v||u===c.targetProvider)){if(u!==c.sourceProvider&&c.targetProvider===c.sourceProvider){Gt(u);return}u===O&&ze(u)?(ge(_.providerConfigMode),ke(_.providerPresetId)):(ge("global-default"),ke(null)),v({...c,targetProvider:u,targetModel:null,targetProviderConfigMode:u===O&&ze(u)?_.providerConfigMode:"global-default",targetProviderPresetId:u===O&&ze(u)?_.providerPresetId:null})}},[_,c,v,O]),Ps=d.useCallback(u=>{!c||!v||v({...c,targetModel:u===fn?null:u})},[c,v]),Di=d.useCallback(u=>{!c||!v||(u===$e?(ge("global-default"),ke(null)):(ge("cc-switch-preset"),ke(u)),v({...c,targetModel:null,targetProviderConfigMode:u===$e?"global-default":"cc-switch-preset",targetProviderPresetId:u===$e?null:u}))},[c,v]),Fi=d.useCallback(()=>{!c||!Vt||!v||(ge("global-default"),ke(null),v({...c,targetProvider:Vt,targetModel:null,targetProviderConfigMode:"global-default",targetProviderPresetId:null}),Gt(null))},[c,v,Vt]),Ls=d.useCallback(()=>{Gt(null)},[]);async function Ui(u){if(Rn.current)return;const h=z.trim(),k=X;if(h.length===0&&k.length===0||!In.allowed||Y||Dn){xt({title:Y?o("conversation.runtimeRunning"):rn??In.reason??o("conversation.capabilityDenied"),tone:"error"});return}Rn.current=!0,Yt.trigger(u==="queue"?"selection":"action"),te(!0),Q(""),be([]),fe(!1),xe(!1),Ye(!1),Ce(!1),ee(!1);try{const w=await Promise.all(k.map(async H=>({kind:H.kind,fileName:H.file.name,mimeType:Pt(H.file),fileSize:H.file.size,contentBase64:await Xs(H.file)}))),R=k.map(H=>ra(H.file,H.id));await(u==="queue"&&L?L:E)(h,{model:pe||se!=null&&se.usesProviderDefault?void 0:U||void 0,reasoningLevel:pe?void 0:Xt&&ve.length>0?ie:void 0,providerConfigMode:pe?re.providerConfigMode:J,providerPresetId:pe?re.providerConfigMode==="cc-switch-preset"?re.providerPresetId:null:J==="cc-switch-preset"?g:null,attachments:w,attachmentMeta:R}),ia(k),k.forEach(H=>{H.previewUrl&&Me.current.delete(H.previewUrl)})}catch(w){Q(h),be(k),xt({title:w instanceof Error&&w.message==="FILE_READ_FAILED"?o("conversation.attachmentReadFailed"):w instanceof Error?w.message:o("conversation.capabilityDenied"),tone:"error"})}finally{te(!1),Rn.current=!1}}async function Is(u){u.preventDefault(),await Ui(Wn?"queue":"send")}async function zi(){if(!(!ws||!F||Ut))try{je(!0),Yt.trigger("action"),await F()}catch(u){xt({title:u instanceof Error?u.message:o("conversation.capabilityInterruptDisabled"),tone:"error"})}finally{je(!1)}}const Es=Xe||S||Y||Dn||!In.allowed||!Cs,_s=Xe||S||Y||!ne.allowed,$i=z.length===0&&!Y,Os=s.jsxs("section",{ref:p,className:"composer-panel",children:[s.jsxs("form",{className:"composer-form",onSubmit:Is,children:[s.jsx("input",{id:W,ref:Tn,type:"file",multiple:!0,tabIndex:-1,"aria-hidden":"true",style:Qs,onChange:Ms}),s.jsx("input",{id:Z,ref:fs,type:"file",accept:"image/*",capture:"environment",tabIndex:-1,"aria-hidden":"true",style:Qs,onChange:Ms}),s.jsxs("div",{className:"composer-input-container","data-drag-active":Le?"true":void 0,onDragOver:Ai,onDragLeave:Pi,onDrop:Li,children:[c?s.jsxs("div",{className:"composer-fork-draft",children:[s.jsxs("div",{className:"composer-fork-draft-main",children:[s.jsxs("div",{className:"composer-fork-draft-copy",children:[s.jsx("span",{className:"composer-fork-draft-label",children:o("conversation.forkDraftLabel")}),s.jsx("span",{className:"composer-fork-draft-text",children:ta(c.content)})]}),s.jsxs("div",{className:"composer-fork-config",children:[s.jsxs("div",{className:"composer-fork-config-grid",children:[s.jsxs("div",{className:"composer-fork-field",children:[s.jsx("span",{className:"composer-fork-model-label",children:o("conversation.forkTargetProviderLabel")}),s.jsx(un,{ariaLabel:o("conversation.forkTargetProviderLabel"),value:c.targetProvider,options:ji,onChange:u=>Wi(u),compact:!0})]}),s.jsxs("div",{className:"composer-fork-field",children:[s.jsx("span",{className:"composer-fork-model-label",children:o("conversation.forkTargetModelLabel")}),Ci?s.jsx($s,{ariaLabel:o("conversation.forkTargetModelLabel"),triggerLabel:wi,presetOptions:nn,selectedPresetValue:Bn,selectedPresetSummary:(De==null?void 0:De.summary)??null,onSelectPreset:Di,modelOptions:xs,selectedModelValue:tn,onSelectModel:Ps,loadingPresets:Nn,loadingModels:ht,modelColumnDisabled:re.providerConfigMode==="cc-switch-preset"&&ht&&le===null,showPresetColumn:qn,modelEmptyText:o("conversation.deploymentModelEmpty")}):s.jsx(un,{ariaLabel:o("conversation.forkTargetModelLabel"),value:tn,options:xs,onChange:Ps,disabled:ht||Dn,compact:!0})]})]}),rn?s.jsx("p",{className:"composer-capability-hint",children:rn}):null]})]}),m?s.jsx("button",{type:"button",className:"composer-fork-draft-clear","aria-label":o("conversation.forkDraftClear"),title:o("conversation.forkDraftClear"),onClick:m,children:s.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[s.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),s.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}):null]}):null,X.length>0?s.jsx("div",{className:"composer-attachments",children:X.map(u=>s.jsxs("div",{className:"composer-attachment-card",children:[u.previewUrl?s.jsx("img",{src:u.previewUrl,alt:o("conversation.attachmentPreviewAlt"),className:"composer-attachment-preview"}):s.jsx("div",{className:"composer-attachment-file","aria-hidden":"true",children:s.jsxs("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[s.jsx("path",{d:"M14 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7z"}),s.jsx("path",{d:"M14 2v5h5"}),s.jsx("path",{d:"M9 13h6"}),s.jsx("path",{d:"M9 17h6"})]})}),s.jsxs("div",{className:"composer-attachment-meta",children:[s.jsx("span",{className:"attachment-name",title:u.file.name,children:u.file.name}),s.jsx("span",{className:"attachment-size",children:ea(u.file.size)})]}),s.jsx("button",{type:"button",className:"attachment-remove",onClick:()=>Ri(u.id),"aria-label":o("conversation.removeAttachment"),children:s.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[s.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),s.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},u.id))}):null,Le?s.jsx("div",{className:"composer-drop-hint",children:o("conversation.attachmentDropHint")}):null,s.jsxs("div",{className:"composer-input-wrapper",children:[s.jsx("textarea",{ref:vt,className:"composer-input",value:z,placeholder:t??o("conversation.composerPlaceholder"),readOnly:Y,"aria-readonly":Y,onChange:u=>Q(u.target.value),rows:1,onFocus:()=>ee(!1),onCompositionStart:()=>{Ln(),An.current=!0},onCompositionEnd:()=>{An.current=!1,Qt.current=!0,bt.current=globalThis.setTimeout(()=>{Qt.current=!1,bt.current=null},0)},onPaste:u=>{if(Y||!ne.allowed)return;const h=Array.from(u.clipboardData.items).filter(k=>k.kind==="file").map(k=>k.getAsFile()).filter(k=>!!k);h.length!==0&&(u.preventDefault(),Ct(h))},onKeyDown:u=>{if(u.key==="Escape"&&ee(!1),u.key==="Enter"&&!u.shiftKey){if(aa(u,An.current,Qt.current))return;u.preventDefault(),Es||Is(u)}}}),s.jsx("div",{className:"composer-input-actions",children:Ni?s.jsx("button",{className:"composer-send composer-send-busy",type:"button",disabled:!Fn,onClick:()=>{Fn&&zi()},"aria-label":js,title:js,children:s.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:s.jsx("rect",{x:"6",y:"6",width:"12",height:"12"})})}):s.jsx("button",{className:"composer-send",type:"submit",disabled:Es,"aria-label":Ss,title:Ss,children:s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[s.jsx("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),s.jsx("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})})})]}),Ft?s.jsx("div",{className:"composer-slash-menu",role:"menu","aria-label":o("conversation.slashMenuTitle"),children:ki.map(u=>s.jsxs("button",{type:"button",className:"composer-slash-item",onClick:()=>_i(u.command),children:[s.jsx("span",{className:"composer-slash-command",children:u.command}),s.jsx("span",{className:"composer-slash-label",children:u.label})]},u.command))}):null,s.jsxs("div",{className:"composer-controls",children:[s.jsxs("div",{className:"composer-controls-left",children:[ne.allowed?q.isNativeMobile?s.jsx("button",{type:"button",className:"composer-attach-btn","aria-label":o("conversation.attachFiles"),title:o("conversation.attachFiles"),disabled:_s,onClick:Ii,children:s.jsx(Kn,{})}):_s?s.jsx("button",{type:"button",className:"composer-attach-btn","aria-label":o("conversation.attachFiles"),title:o("conversation.attachFiles"),disabled:!0,children:s.jsx(Kn,{})}):s.jsx("label",{htmlFor:W,className:"composer-attach-btn","aria-label":o("conversation.attachFiles"),title:o("conversation.attachFiles"),onClick:()=>{ee(!1)},children:s.jsx(Kn,{})}):null,!pe&&tt?s.jsx($s,{ariaLabel:o("conversation.modelSelectorLabel"),triggerLabel:xi,presetOptions:Jt,selectedPresetValue:En,selectedPresetSummary:(We==null?void 0:We.summary)??null,onSelectPreset:Mi,modelOptions:gs,selectedModelValue:U,onSelectModel:Ns,loadingPresets:zt,loadingModels:$t,modelColumnDisabled:J==="cc-switch-preset"&&$t&&_e===null,showPresetColumn:On,modelEmptyText:o("conversation.deploymentModelEmpty")}):null,!pe&&!tt?s.jsx(un,{ariaLabel:o("conversation.modelSelectorLabel"),value:U,options:gs,onChange:Ns}):null,!pe&&Xt&&ve.length>0?s.jsx(un,{ariaLabel:o("conversation.reasoningSelectorLabel"),value:ie,options:yi,onChange:u=>Ti(u),compact:!0}):null,bi?s.jsxs("button",{type:"button",className:"composer-slash-btn",onClick:Ei,title:o("conversation.slashMenu"),children:[s.jsx("span",{className:"slash-icon",children:"/"}),s.jsx("span",{children:o("conversation.slashMenu")})]}):null,s.jsx(fa,{contextUsage:y}),s.jsx(Lo,{provider:x,messages:j,variant:"composer"})]}),$i?s.jsx("div",{className:"composer-quick-phrase-group",children:s.jsx("button",{type:"button",className:"composer-quick-phrase-trigger","aria-label":o("conversation.quickPhraseTrigger"),title:o("conversation.quickPhraseTrigger"),onClick:()=>{Ye(!0),ee(!1)},children:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[s.jsx("path",{d:"M7 8h10"}),s.jsx("path",{d:"M7 12h8"}),s.jsx("path",{d:"M7 16h5"}),s.jsx("path",{d:"M5 5h14v14H9l-4 4V5z"})]})})}):null]})]})]}),s.jsx(pn,{open:Dt,title:o("conversation.quickPhraseModalTitle"),description:o("conversation.quickPhraseModalDescription"),className:"composer-quick-phrase-modal",onClose:()=>{Ye(!1),Ce(!1)},children:s.jsxs("div",{className:"composer-quick-phrase-modal-body",children:[s.jsxs("div",{className:"composer-quick-phrase-toolbar",children:[s.jsx("div",{className:"composer-quick-phrase-toolbar-copy",children:s.jsx("span",{children:o("conversation.quickPhraseListLabel")})}),s.jsx("button",{type:"button",className:"primary-button",disabled:oe,onClick:()=>Ce(!0),children:o("conversation.quickPhraseOpenCreateAction")})]}),s.jsx("div",{className:"composer-quick-phrase-list",role:"list","aria-label":o("conversation.quickPhraseListLabel"),children:D.length===0?s.jsx("div",{className:"composer-quick-phrase-empty",children:o("conversation.quickPhraseEmpty")}):D.map((u,h)=>s.jsxs("div",{className:"composer-quick-phrase-item",role:"listitem",children:[s.jsxs("button",{type:"button",className:"composer-quick-phrase-select",onClick:()=>qi(u.text),children:[s.jsx("span",{className:"composer-quick-phrase-order",children:o("conversation.quickPhraseOrderLabel",{index:h+1})}),s.jsx("span",{className:"composer-quick-phrase-text",children:u.text})]}),s.jsxs("div",{className:"composer-quick-phrase-actions",children:[s.jsx("button",{type:"button",className:"composer-quick-phrase-action",disabled:oe||h===0,"aria-label":o("conversation.quickPhraseMoveUp"),title:o("conversation.quickPhraseMoveUp"),onClick:()=>Rs(u.id,-1),children:"↑"}),s.jsx("button",{type:"button",className:"composer-quick-phrase-action",disabled:oe||h===D.length-1,"aria-label":o("conversation.quickPhraseMoveDown"),title:o("conversation.quickPhraseMoveDown"),onClick:()=>Rs(u.id,1),children:"↓"}),s.jsx("button",{type:"button",className:"composer-quick-phrase-action is-danger",disabled:oe,"aria-label":o("conversation.quickPhraseDelete"),title:o("conversation.quickPhraseDelete"),onClick:()=>Bi(u.id),children:"×"})]})]},u.id))})]})}),s.jsx(pn,{open:Sn,title:o("conversation.quickPhraseCreateModalTitle"),description:o("conversation.quickPhraseCreateModalDescription"),className:"composer-quick-phrase-create-modal",onClose:()=>Ce(!1),children:s.jsxs("div",{className:"composer-quick-phrase-modal-body",children:[s.jsxs("label",{className:"workbench-modal-field",children:[s.jsx("span",{children:o("conversation.quickPhraseCreateLabel")}),s.jsx("textarea",{className:"composer-quick-phrase-textarea",value:Je,placeholder:o("conversation.quickPhraseCreatePlaceholder"),rows:4,onChange:u=>we(u.target.value)})]}),s.jsxs("div",{className:"workbench-modal-actions",children:[s.jsx("button",{type:"button",className:"secondary-button",onClick:()=>Ce(!1),children:o("common.cancel")}),s.jsx("button",{type:"button",className:"primary-button",disabled:oe||Je.trim().length===0,onClick:()=>{Oi()},children:o("conversation.quickPhraseCreateAction")})]})]})}),s.jsx(pn,{open:Vt!==null,title:o("conversation.forkSwitchConfirmTitle"),description:o("conversation.forkSwitchConfirmDescription"),className:"composer-fork-confirm-modal",onClose:Ls,children:s.jsxs("div",{className:"composer-fork-confirm-body",children:[s.jsxs("div",{className:"composer-fork-confirm-list",children:[s.jsxs("div",{className:"composer-fork-confirm-item",children:[s.jsx("span",{className:"composer-fork-confirm-icon is-keep","aria-hidden":"true",children:s.jsx(da,{})}),s.jsxs("div",{className:"composer-fork-confirm-copy",children:[s.jsx("strong",{children:o("conversation.forkSwitchConfirmKeepTitle")}),s.jsx("p",{children:o("conversation.forkSwitchConfirmKeepBody")})]})]}),s.jsxs("div",{className:"composer-fork-confirm-item",children:[s.jsx("span",{className:"composer-fork-confirm-icon is-convert","aria-hidden":"true",children:s.jsx(ma,{})}),s.jsxs("div",{className:"composer-fork-confirm-copy",children:[s.jsx("strong",{children:o("conversation.forkSwitchConfirmConvertTitle")}),s.jsx("p",{children:o("conversation.forkSwitchConfirmConvertBody")})]})]}),s.jsxs("div",{className:"composer-fork-confirm-item",children:[s.jsx("span",{className:"composer-fork-confirm-icon is-drop","aria-hidden":"true",children:s.jsx(pa,{})}),s.jsxs("div",{className:"composer-fork-confirm-copy",children:[s.jsx("strong",{children:o("conversation.forkSwitchConfirmDropTitle")}),s.jsx("p",{children:o("conversation.forkSwitchConfirmDropBody")})]})]})]}),s.jsxs("div",{className:"workbench-modal-actions",children:[s.jsx("button",{type:"button",className:"secondary-button",onClick:Ls,children:o("conversation.forkSwitchKeepNative")}),s.jsx("button",{type:"button",className:"primary-button",onClick:Fi,children:o("conversation.forkSwitchConfirmAction")})]})]})}),s.jsx(la,{open:jn&&q.isNativeMobile,onClose:()=>fe(!1),onSelectCamera:()=>Ts("camera"),onSelectLibrary:()=>Ts("library")})]});return b?as.createPortal(Os,b):Os}function la({open:e,onClose:t,onSelectCamera:n,onSelectLibrary:r}){return s.jsx(ao,{open:e,title:o("conversation.attachmentSourceSheetTitle"),description:o("conversation.attachmentSourceSheetDescription"),kind:"action",height:"auto",className:"composer-attachment-sheet",cardClassName:"composer-attachment-sheet-card",bodyClassName:"composer-attachment-sheet-body",showHandle:!0,onClose:t,children:s.jsxs(lo,{className:"composer-attachment-sheet-actions",children:[s.jsx(Fs,{as:"button",className:"mobile-workspace-home-row composer-attachment-sheet-option","aria-label":o("conversation.attachmentTakePhoto"),label:o("conversation.attachmentTakePhoto"),description:o("conversation.attachmentTakePhotoHint"),trailing:s.jsx(ca,{}),onClick:n}),s.jsx(Fs,{as:"button",className:"mobile-workspace-home-row composer-attachment-sheet-option","aria-label":o("conversation.attachmentChooseFromLibrary"),label:o("conversation.attachmentChooseFromLibrary"),description:o("conversation.attachmentChooseFromLibraryHint"),trailing:s.jsx(ua,{}),onClick:r})]})})}function ca(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[s.jsx("path",{d:"M4 8h3l1.5-2h7L17 8h3a1 1 0 0 1 1 1v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9a1 1 0 0 1 1-1Z"}),s.jsx("circle",{cx:"12",cy:"13",r:"4"})]})}function Kn(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[s.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"4"}),s.jsx("path",{d:"M8 12h8M12 8v8"})]})}function ua(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[s.jsx("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2.5"}),s.jsx("path",{d:"m7.5 15 3-3 2.5 2.5 3-4L18 13.5"}),s.jsx("circle",{cx:"8.75",cy:"8.75",r:"1.25",fill:"currentColor",stroke:"none"})]})}function da(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",children:[s.jsx("path",{d:"M12 3 4 7v5c0 5 3.5 8 8 9 4.5-1 8-4 8-9V7l-8-4Z"}),s.jsx("path",{d:"m9.5 12 1.8 1.8L15 10.2"})]})}function ma(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",children:[s.jsx("path",{d:"M4 7h9"}),s.jsx("path",{d:"m10 3 4 4-4 4"}),s.jsx("path",{d:"M20 17h-9"}),s.jsx("path",{d:"m14 13-4 4 4 4"})]})}function pa(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",children:[s.jsx("path",{d:"m7 7 10 10"}),s.jsx("path",{d:"M17 7 7 17"}),s.jsx("path",{d:"M12 3v2"}),s.jsx("path",{d:"M12 19v2"})]})}function un({ariaLabel:e,value:t,options:n,onChange:r,disabled:i=!1,compact:a=!1}){const[l,c]=d.useState(!1),m=d.useRef(null),v=d.useRef(null),p=d.useRef(null),[b,f]=d.useState(null),C=d.useId(),y=n.find(M=>M.value===t)??n[0]??null,x=d.useMemo(()=>n.map(M=>M.label),[n]),j=d.useCallback(()=>{const M=v.current;if(!M||typeof window>"u")return;const S=M.getBoundingClientRect(),P=window.innerWidth,F=window.innerHeight,L=12,E=10,q=Math.max(_r,P-L*2),W=a?zo:Uo,Z=Go({labels:x,triggerWidth:S.width,maxWidth:q,preferredWidth:W,measureText:ie=>Vo(M,ie)}),z=Math.min(Math.max(L,S.left),Math.max(L,P-Z-L)),Q=S.top-L,U=F-S.bottom-L,V=Q>=180||Q>=U;f({position:"fixed",left:z,width:Z,maxWidth:q,top:V?void 0:S.bottom+E,bottom:V?F-S.top+E:void 0})},[a,x]);return d.useEffect(()=>{if(!l)return;function M(P){var L,E;const F=P.target;!((L=m.current)!=null&&L.contains(F))&&!((E=p.current)!=null&&E.contains(F))&&c(!1)}function S(P){P.key==="Escape"&&c(!1)}return window.addEventListener("pointerdown",M),window.addEventListener("keydown",S),window.addEventListener("resize",j),window.addEventListener("scroll",j,!0),j(),()=>{window.removeEventListener("pointerdown",M),window.removeEventListener("keydown",S),window.removeEventListener("resize",j),window.removeEventListener("scroll",j,!0)}},[l,j]),y?s.jsxs("div",{ref:m,className:`composer-mac-select ${a?"is-compact":""}`,"data-open":l?"true":"false",children:[s.jsxs("button",{ref:v,type:"button",className:"composer-mac-select-trigger","aria-label":e,"aria-haspopup":"listbox","aria-expanded":l,"aria-controls":C,disabled:i,onClick:()=>c(M=>!M),children:[s.jsx("span",{className:"composer-mac-select-label",children:y.label}),s.jsx("svg",{className:"composer-mac-select-chevron",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:s.jsx("polyline",{points:"6 14 12 8 18 14"})})]}),l&&b&&typeof document<"u"?as.createPortal(s.jsx("div",{ref:p,className:"composer-mac-select-popover",style:b,role:"presentation",children:s.jsx("div",{id:C,className:"composer-mac-select-list",role:"listbox","aria-label":e,children:n.map(M=>{const S=M.value===t;return s.jsxs("button",{type:"button",role:"option","aria-selected":S,className:`composer-mac-select-option ${S?"is-selected":""}`,onClick:()=>{r(M.value),c(!1)},children:[s.jsx("span",{className:"composer-mac-select-option-check","aria-hidden":"true",children:S?"✓":""}),s.jsx("span",{className:"composer-mac-select-option-label",children:M.label})]},M.value)})})}),document.body):null]}):null}function fa({contextUsage:e}){const[t,n]=d.useState(!1),r=d.useRef(null),i=d.useRef(null),[a,l]=d.useState(null),c=d.useId(),m=e?Math.round(e.usageRatio*100):null,v=e?Math.max(0,Math.min(e.usageRatio,1)):0,p=ha(v),b=e?ga(e.contextWindowSource):null,f=e?`${o("conversation.contextUsageTitle")} ${m}%`:o("conversation.contextUsageUnavailable"),C=d.useCallback(()=>{const y=r.current;if(!y||typeof window>"u")return;const x=y.getBoundingClientRect(),j=window.innerWidth,M=window.innerHeight,S=12,P=10,F=Math.min(240,Math.max(188,j-S*2)),L=Math.min(Math.max(S,x.left+x.width/2-F/2),Math.max(S,j-F-S)),E=x.top-S,q=M-x.bottom-S,W=E>=140||E>=q;l({position:"fixed",left:L,width:F,maxWidth:j-S*2,top:W?void 0:x.bottom+P,bottom:W?M-x.top+P:void 0})},[]);return d.useEffect(()=>{if(!t)return;function y(j){var S,P;const M=j.target;!((S=r.current)!=null&&S.contains(M))&&!((P=i.current)!=null&&P.contains(M))&&n(!1)}function x(j){j.key==="Escape"&&n(!1)}return window.addEventListener("pointerdown",y),window.addEventListener("keydown",x),window.addEventListener("resize",C),window.addEventListener("scroll",C,!0),C(),()=>{window.removeEventListener("pointerdown",y),window.removeEventListener("keydown",x),window.removeEventListener("resize",C),window.removeEventListener("scroll",C,!0)}},[t,C]),s.jsxs(s.Fragment,{children:[s.jsx("button",{ref:r,type:"button",className:`composer-context-ring ${p}`,style:{"--context-usage-progress":`${v}`},"aria-label":f,"aria-expanded":t,"aria-describedby":t?c:void 0,onClick:()=>n(y=>!y),onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onFocus:()=>n(!0),onBlur:()=>n(!1),children:s.jsx("span",{className:"composer-context-ring-value",children:m===null?"--":s.jsxs(s.Fragment,{children:[s.jsx("span",{children:m}),s.jsx("span",{className:"composer-context-ring-suffix",children:"%"})]})})}),t&&a&&typeof document<"u"?as.createPortal(s.jsx("div",{ref:i,id:c,className:"composer-context-tooltip",style:a,role:"tooltip",children:e?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"composer-context-tooltip-title",children:o("conversation.contextUsageTitle")}),s.jsxs("div",{className:"composer-context-tooltip-line",children:[m,"% · ",Vn(e.promptTokens)," /"," ",Vn(e.contextWindow)," tokens"]}),e.cachedInputTokens>0?s.jsx("div",{className:"composer-context-tooltip-line",children:o("conversation.contextUsageCachedTokens").replace("{count}",Vn(e.cachedInputTokens))}):null,b?s.jsx("div",{className:"composer-context-tooltip-meta",children:b}):null,e.isEstimated?s.jsx("div",{className:"composer-context-tooltip-meta",children:o("conversation.contextUsageEstimated")}):null]}):s.jsx("div",{className:"composer-context-tooltip-line",children:o("conversation.contextUsageUnavailable")})}),document.body):null]})}function ha(e){return e>=.95?"is-critical":e>=.8?"is-warning":"is-normal"}function ga(e){switch(e){case"provider-log":return o("conversation.contextUsageSourceProviderLog");case"provider-runtime":return o("conversation.contextUsageSourceProviderRuntime");case"provider-config":return o("conversation.contextUsageSourceProviderConfig");case"model-map":return o("conversation.contextUsageSourceModelMap");default:return""}}function Vn(e){return new Intl.NumberFormat().format(e)}const gn="*** Begin Patch",vn="*** End Patch";function er(e){const t=e.replace(/\r\n/g,`
|
|
2
|
-
`);if(!t.includes(gn)||!t.includes(vn))return null;const n=t.split(`
|
|
3
|
-
`),r=[];let i=null,a=null;for(const l of n){if(l===gn||l===vn)continue;if(l.startsWith("*** Update File: ")){i=Gn("update",l.slice(17)),r.push(i),a=null;continue}if(l.startsWith("*** Add File: ")){i=Gn("add",l.slice(14)),r.push(i),a={oldLineNumber:0,newLineNumber:1};continue}if(l.startsWith("*** Delete File: ")){i=Gn("delete",l.slice(17)),r.push(i),a=null;continue}if(!i)continue;if(l.startsWith("*** Move to: ")){i.nextPath=l.slice(13),i.lines.push({kind:"meta",text:l,oldLineNumber:null,newLineNumber:null});continue}if(l.startsWith("@@")){a=ya(l)??{oldLineNumber:0,newLineNumber:0},i.lines.push({kind:"hunk",text:l,oldLineNumber:null,newLineNumber:null});continue}if(l==="*** End of File"){i.lines.push({kind:"meta",text:l,oldLineNumber:null,newLineNumber:null});continue}if(i.action==="add"&&l.startsWith("+")){i.additions+=1,i.statsKnown=!0,i.lines.push({kind:"add",text:l,oldLineNumber:null,newLineNumber:(a==null?void 0:a.newLineNumber)??i.additions}),a&&(a.newLineNumber+=1);continue}if(!a){i.lines.push({kind:"meta",text:l,oldLineNumber:null,newLineNumber:null});continue}if(l.startsWith("+")){i.additions+=1,i.statsKnown=!0,i.lines.push({kind:"add",text:l,oldLineNumber:null,newLineNumber:a.newLineNumber}),a.newLineNumber+=1;continue}if(l.startsWith("-")){i.deletions+=1,i.statsKnown=!0,i.lines.push({kind:"remove",text:l,oldLineNumber:a.oldLineNumber,newLineNumber:null}),a.oldLineNumber+=1;continue}if(l.startsWith(" ")||l.length===0){i.lines.push({kind:"context",text:l,oldLineNumber:a.oldLineNumber,newLineNumber:a.newLineNumber}),a.oldLineNumber+=1,a.newLineNumber+=1;continue}i.lines.push({kind:"meta",text:l,oldLineNumber:null,newLineNumber:null})}return r.length===0?null:{files:r,totalAdditions:r.reduce((l,c)=>l+c.additions,0),totalDeletions:r.reduce((l,c)=>l+c.deletions,0)}}function va(e,t=[]){const n=e.replace(/\r\n/g,`
|
|
4
|
-
`).trim();if(!n)return null;if(n.includes(gn)&&n.includes(vn))return n;const r=[...new Set(t.map(i=>i.trim()).filter(i=>i.length>0))];return r.length!==1||!ka(n)?null:[gn,`*** Update File: ${r[0]}`,n,vn].join(`
|
|
5
|
-
`)}function ba(e){const t=Ca(e);if(!t)return[];const n=t.replace(/\r\n/g,`
|
|
6
|
-
`).split(`
|
|
7
|
-
`),r=[];let i=!1;for(const a of n){const l=a.trim();if(!i){/^Success\.\s+Updated the following files:/i.test(l)&&(i=!0);continue}if(!l){if(r.length>0)break;continue}const c=l.match(/^[A-Z?]\s+(.+)$/),m=((c==null?void 0:c[1])??l).trim();if(!m)break;r.push(m)}return[...new Set(r)]}function xa(e){return e.replace(/\\/g,"/").split("/").at(-1)||e}function Gn(e,t){return{path:t,nextPath:null,action:e,additions:0,deletions:0,statsKnown:!1,lines:[]}}function ya(e){const t=e.match(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/);return t?{oldLineNumber:Number(t[1]),newLineNumber:Number(t[2])}:null}function ka(e){return e.startsWith("@@")||e.startsWith("*** Update File: ")||e.startsWith("*** Add File: ")||e.startsWith("*** Delete File: ")||e.includes(`
|
|
8
|
-
@@`)||e.startsWith("+")||e.startsWith("-")}function Ca(e){const t=e.trim();if(!t)return"";if(!t.startsWith("{"))return t;try{const n=JSON.parse(t);if(!n||typeof n!="object"||Array.isArray(n))return t;const r=n;if(typeof r.output=="string"&&r.output.trim().length>0)return r.output;if(typeof r.result=="string"&&r.result.trim().length>0)return r.result;if(typeof r.message=="string"&&r.message.trim().length>0)return r.message}catch{return t}return t}const wa=/data:image\/([a-zA-Z0-9.+-]+);base64,([A-Za-z0-9+/=]+)/g,ja=/!\[([^\]]*)\]\((data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=]+)\)/g,Sa=/<img\b[^>]*src=["'](data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=]+)["'][^>]*>/gi,Na=/<image\b([^>]*)>([\s\S]*?)<\/image>/gi,Ma=/\[\[CODINGNS_IMAGE_ATTACHMENTS\]\][\s\S]*?\[\[\/CODINGNS_IMAGE_ATTACHMENTS\]\]/g;function dt(e){const t=Ta(e),n=Ra(t);return n||Wr(t)}function Ta(e){return e.replace(Ma,"")}function Ra(e){const t=e.trim();if(!Aa(t))return null;try{const n=JSON.parse(t),r=Pa(n);return r.text||r.inlineImages.length>0?r:null}catch{return null}}function Aa(e){return e.length<2?!1:e.startsWith("[")&&e.endsWith("]")||e.startsWith("{")&&e.endsWith("}")}function Pa(e){const t=[],n=[];return hn(e,t,n),{text:Fr(t.join(`
|
|
9
|
-
|
|
10
|
-
`)),inlineImages:Dr(n)}}function hn(e,t,n){if(typeof e=="string"){const l=Wr(e);l.text&&t.push(l.text),n.push(...l.inlineImages);return}if(e==null)return;if(Array.isArray(e)){e.forEach(l=>hn(l,t,n));return}if(typeof e!="object")return;const r=e,i=new Set,a=La(r);a&&(n.push(a),["type","source","media_type","mime_type","mimeType","data","image_url","imageUrl","url","src","alt","name"].forEach(l=>{l in r&&i.add(l)}));for(const l of["image_url","url","src","source"]){const c=r[l];typeof c!="string"||!Ur(c)||(n.push(Ve(c,ue(r.alt))),i.add(l))}for(const l of["text","message","content","output","result","summary","caption"])l in r&&(i.add(l),hn(r[l],t,n));i.size>0||Object.values(r).forEach(l=>{hn(l,t,n)})}function Wr(e){const t=[];let n=e;return n=n.replace(Na,(r,i,a)=>{const l=Ba(i,"name"),c=Oa(a);return c!=null&&c.url&&t.push(Ve(c.url,c.altText||l)),""}),n=n.replace(ja,(r,i,a)=>(t.push(Ve(a,i)),"")),n=n.replace(Sa,(r,i)=>(t.push(Ve(i,null)),"")),n=n.replace(wa,(r,i,a)=>(t.push(Ve(r,null,`image/${i}`,bn(a))),"")),{text:Fr(n),inlineImages:Dr(t)}}function Ve(e,t,n,r){const i=n??Ia(e)??"image/png";return{url:e,mimeType:i,altText:Lt(t),estimatedBytes:r??Ea(e)}}function La(e){const t=_a(e.source);if(t){const i=ue(t.type).trim().toLowerCase(),a=nr(t.media_type??t.mime_type??t.mimeType),l=tr(t.data);if(i==="base64"&&a&&l)return Ve(`data:${a};base64,${l}`,Lt(ue(t.alt)||ue(t.name)||ue(e.alt)||ue(e.name)),a,bn(l))}const n=nr(e.media_type??e.mime_type??e.mimeType),r=tr(e.data);return n&&r?Ve(`data:${n};base64,${r}`,Lt(ue(e.alt)||ue(e.name)),n,bn(r)):null}function Dr(e){const t=new Map;return e.forEach(n=>{t.has(n.url)||t.set(n.url,n)}),[...t.values()]}function Fr(e){return e.replace(/\r\n/g,`
|
|
11
|
-
`).replace(/[ \t]{2,}/g," ").replace(/[ \t]+\n/g,`
|
|
12
|
-
`).replace(/\n{3,}/g,`
|
|
13
|
-
|
|
14
|
-
`).trim()}function Ur(e){return/^data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=]+$/.test(e.trim())}function Ia(e){var n;const t=e.match(/^data:(image\/[a-zA-Z0-9.+-]+);base64,/i);return((n=t==null?void 0:t[1])==null?void 0:n.toLowerCase())??null}function Ea(e){const t=e.match(/^data:image\/[a-zA-Z0-9.+-]+;base64,([A-Za-z0-9+/=]+)$/i);return t?bn(t[1]):null}function bn(e){const t=e.trim(),n=t.endsWith("==")?2:t.endsWith("=")?1:0;return Math.max(0,Math.floor(t.length*3/4)-n)}function Lt(e){const t=ue(e).trim();return t.length>0?t:null}function tr(e){if(typeof e!="string")return null;const t=e.replace(/\s+/g,"").trim();return/^[A-Za-z0-9+/=]+$/.test(t)?t:null}function nr(e){if(typeof e!="string")return null;const t=e.trim().toLowerCase();return t.startsWith("image/")?t:null}function ue(e){return typeof e=="string"?e:""}function _a(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function Oa(e){const t=e.trim();if(t.length===0)return null;try{const n=JSON.parse(t),r=ue(n.image_url??n.imageUrl).trim(),i=Lt(ue(n.name)||ue(n.alt));return{url:Ur(r)?r:null,altText:i}}catch{const n=t.match(/(data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=]+)/i);return n?{url:n[1],altText:null}:null}}function Ba(e,t){const n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=e.match(new RegExp(`${n}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|\\[([^\\]]*)\\]|([^\\s>]+))`,"i"));return Lt((r==null?void 0:r[1])??(r==null?void 0:r[2])??(r==null?void 0:r[3])??(r==null?void 0:r[4])??"")}const zr="codingns.user-app.conversation-scroll",ot=1,qa=200,Wa=1e7;function $r(){return typeof window<"u"&&typeof window.localStorage<"u"}function Hr(e){return e.trim()}function Kr(e){return!Number.isFinite(e)||e<=0?0:Math.min(Math.round(e),Wa)}function Vr(e){return!e||typeof e!="object"?null:{scrollTop:Kr(e.scrollTop),stickToBottom:e.stickToBottom===!0,lastMessageSignature:typeof e.lastMessageSignature=="string"?e.lastMessageSignature:null,updatedAt:Number.isFinite(e.updatedAt)?e.updatedAt:0}}function Gr(){if(!$r())return{schemaVersion:ot,bySessionId:{}};const e=window.localStorage.getItem(zr);if(!e)return{schemaVersion:ot,bySessionId:{}};try{const t=JSON.parse(e);if(!t||typeof t!="object"||t.schemaVersion!==ot||!t.bySessionId||typeof t.bySessionId!="object"||Array.isArray(t.bySessionId))return{schemaVersion:ot,bySessionId:{}};const n=Object.fromEntries(Object.entries(t.bySessionId).map(([r,i])=>{const a=Vr(i);return a?[r,a]:null}).filter(r=>!!r));return{schemaVersion:ot,bySessionId:n}}catch{return{schemaVersion:ot,bySessionId:{}}}}function Da(e){if($r())try{window.localStorage.setItem(zr,JSON.stringify(e))}catch{}}function dn(e){const t=Hr(e);if(!t)return null;const n=Gr().bySessionId[t],r=Vr(n);return r?{scrollTop:r.scrollTop,stickToBottom:r.stickToBottom,lastMessageSignature:r.lastMessageSignature}:null}function sr(e,t){const n=Hr(e);if(!n)return;const r=Gr();r.bySessionId[n]={scrollTop:Kr(t.scrollTop),stickToBottom:t.stickToBottom,lastMessageSignature:t.lastMessageSignature,updatedAt:Date.now()};const i=Object.entries(r.bySessionId).sort((a,l)=>l[1].updatedAt-a[1].updatedAt).slice(0,qa);r.bySessionId=Object.fromEntries(i),Da(r)}function Fa(e){return e.replace(/(\.{3,}|…+)$/,"").trimEnd()}function Qr(e){var r;const t=e.match(/^\s*<turn_aborted>([\s\S]*?)<\/turn_aborted>\s*$/i);if(!t)return null;const n=((r=t[1])==null?void 0:r.trim())??"";return!n||/^previous turn aborted$/i.test(n)?{detail:null}:{detail:n}}function Ua(e){return e==="user"?o("conversation.turnAbortedUser"):e==="runtime"?o("conversation.turnAbortedUnexpected"):o("conversation.turnAbortedGeneric")}const za=480,rr=80,ir=240,$a=120,Ha=18,Ka=50,Va=3500,Zr=d.createContext(!1);function ns(e){return e.replace(/\\/g,"/")}function xn(e){return/^[a-zA-Z]:\//.test(e)}function Ga(e){return e.startsWith("/")||e.startsWith("//")||xn(e)}function Qa(e){return/^[a-zA-Z][a-zA-Z\d+.-]*:/.test(e)&&!xn(e)}function or(e){return e.replace(/\/+$/,"")}function Za(e){const t=e.indexOf("#"),n=t>=0?e.slice(0,t):e,r=n.indexOf("?");return(r>=0?n.slice(0,r):n).replace(/:(\d+)(?::(\d+))?$/,"")}function Ya(e){const t=[];for(const n of ns(e).split("/"))if(!(!n||n===".")){if(n===".."){if(t.length===0)return null;t.pop();continue}t.push(n)}return t.join("/")}function cs(e){try{return decodeURIComponent(e)}catch{return e}}function Ja(e,t){const n=cs(e).trim();if(!n||n.startsWith("#"))return null;let r=n;if(/^file:\/\//i.test(r))try{r=decodeURIComponent(new URL(r).pathname),/^\/[a-zA-Z]:\//.test(r)&&(r=r.slice(1))}catch{return null}else if(Qa(r))return null;if(r=ns(Za(r.trim())),!r)return null;const i=or(ns(t.trim()));if(!i)return null;if(Ga(r)){const a=or(r),l=xn(i)?i.toLowerCase():i,c=xn(a)?a.toLowerCase():a;if(c===l)return null;const m=`${l}/`;return c.startsWith(m)?a.slice(i.length+1):null}return Ya(r)}function yn(e){return e.kind==="tool_call"||e.kind==="tool_result"}function Yr(e){return e.toolCall?e.toolCall:yn(e)?{callId:e.rawRef||e.id,name:"tool",input:e.kind==="tool_call"?e.content:"",output:e.kind==="tool_result"&&e.content?e.content:null,error:null,status:e.kind==="tool_call"?"running":"completed"}:null}function Xa(e){return e==="shell_command"||e==="tool"?o("conversation.roleTool"):e}function us(e){if(!e.trim())return null;try{const t=JSON.parse(e);return!t||typeof t!="object"||Array.isArray(t)?null:t}catch{return null}}function He(e,t){const n=e[t];return typeof n=="string"?n:""}function It(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function G(e,t){if(!e)return null;const n=e[t];return It(n)?n:null}function Qn(e,t){if(!e)return null;const n=e[t];return Array.isArray(n)?n:null}function A(e,t){if(!e)return null;const n=e[t];if(typeof n=="string"){const r=n.trim();return r||null}return typeof n=="number"||typeof n=="boolean"?String(n):null}function el(e){const t=[e.output,e.input];for(const n of t){const r=Jr(n,0);if(r)return r}return null}function Jr(e,t){if(!(e!=null&&e.trim())||t>2)return null;try{return Xr(JSON.parse(e),t)}catch{return null}}function Xr(e,t){if(!It(e))return null;if(tl(e))return{ok:!0,capability:A(e,"capability")??"",auditId:A(e,"auditId")??"",timestamp:A(e,"timestamp")??"",targetRef:{kind:A(G(e,"targetRef"),"kind")??"none",id:A(G(e,"targetRef"),"id")},payload:G(e,"payload")??{}};const n=["output","result","data","payload"];for(const r of n){const i=e[r];if(typeof i=="string"){const a=Jr(i,t+1);if(a)return a}if(It(i)){const a=Xr(i,t+1);if(a)return a}}return null}function tl(e){return e.ok===!0&&typeof e.capability=="string"&&typeof e.auditId=="string"&&typeof e.timestamp=="string"&&It(e.targetRef)&&It(e.payload)}function nl(e){const t=new Map,n=new Map,r=new Map;return e.forEach(i=>{t.set(i.workspace.id,i.workspace.name),i.sessions.forEach(a=>{const l=typeof a.title=="string"&&a.title.trim()?a.title.trim():a.sessionId;n.set(a.sessionId,l),r.set(a.sessionId,i.workspace.id)})}),{workspaceNamesById:t,sessionNamesById:n,sessionWorkspaceIdsById:r}}function sl(e,t){const n=el(e);return n?{...ti(n.capability),rows:pl(n,t)}:null}function rl(e,t){const n=il(e);if(!n)return null;const r=ol(n);return r?{...cl(r),rows:ml(r,t)}:null}function il(e){const t=us(e.input),n=t&&typeof t.command=="string"?t.command.trim():"";if(!n)return null;const r=n.indexOf("codingns assistant");return r<0?null:n.slice(r).trim()}function ol(e){const t=al(e),n=t.findIndex((p,b)=>p==="codingns"&&t[b+1]==="assistant");if(n<0)return null;const r=t.slice(n+2);if(r.length===0||r[0]==="--help"||r[0]==="-h")return{group:null,action:null,mode:"help",options:{},positionals:[]};if(r[0]==="help")return{group:r[1]??null,action:r[2]??null,mode:"help",options:{},positionals:[]};const i=r[0]??null,a=r[1],l=a&&!a.startsWith("-")?a:null,c=r.slice(l?2:1),{options:m,positionals:v}=ll(c);return!l&&m["--help"]?{group:i,action:null,mode:"help",options:m,positionals:v}:{group:i,action:l,mode:"execute",options:m,positionals:v}}function al(e){const t=[],n=/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'|`([^`\\]|\\.)*`|\S+/g;for(const r of e.matchAll(n)){const i=r[0]??"";if(!i)continue;const a=i[0];if((a==='"'||a==="'"||a==="`")&&i[i.length-1]===a){t.push(i.slice(1,-1));continue}t.push(i)}return t}function ll(e){const t={},n=[];for(let r=0;r<e.length;r+=1){const i=e[r]??"";if(!i.startsWith("--")){n.push(i);continue}const a=e[r+1];if(!a||a.startsWith("--")){t[i]=!0;continue}t[i]=a,r+=1}return{options:t,positionals:n}}function cl(e){if(e.mode==="help")return ul(e.group,e.action);const t=dl(e.group,e.action);return t?ti(t):{kind:ds(e.group),badge:ei(e.group),title:o("conversation.assistantCapabilityQueryTitle"),summary:o("conversation.assistantCliSummaryCommand")}}function ul(e,t){return e?e==="sessions"?{kind:"session",badge:o("conversation.assistantCapabilityBadgeSession"),title:t?o("conversation.assistantCliHelpSessionActionTitle",{action:t}):o("conversation.assistantCliHelpSessionsTitle"),summary:o("conversation.assistantCliSummaryHelp")}:e==="timers"?{kind:"automation",badge:o("conversation.assistantCapabilityBadgeAutomation"),title:o("conversation.assistantCliHelpTimersTitle"),summary:o("conversation.assistantCliSummaryHelp")}:e==="terminals"?{kind:"terminal",badge:o("conversation.assistantCapabilityBadgeTerminal"),title:o("conversation.assistantCliHelpTerminalsTitle"),summary:o("conversation.assistantCliSummaryHelp")}:e==="workspaces"||e==="worktrees"?{kind:"workspace",badge:o("conversation.assistantCapabilityBadgeWorkspace"),title:o("conversation.assistantCliHelpWorkspacesTitle"),summary:o("conversation.assistantCliSummaryHelp")}:{kind:ds(e),badge:ei(e),title:o("conversation.assistantCliHelpGenericTitle",{group:e}),summary:o("conversation.assistantCliSummaryHelp")}:{kind:"query",badge:o("conversation.assistantCapabilityBadgeQuery"),title:o("conversation.assistantCliHelpRootTitle"),summary:o("conversation.assistantCliSummaryHelp")}}function dl(e,t){const n=e==null?void 0:e.trim(),r=t==null?void 0:t.trim();return n?n==="capabilities"&&r==="list"?"capabilities.list":n==="projects"&&r==="list"?"projects.list":n==="projects"&&r==="get"?"projects.get":n==="sessions"&&r==="list"?"projects.sessions.list":n==="sessions"&&r==="get"?"sessions.get":n==="sessions"&&r==="messages"?"sessions.messages.list":n==="sessions"&&r==="runtime"?"sessions.runtime.get":n==="sessions"&&r==="start"?"projects.sessions.start":n==="sessions"&&r==="send"?"sessions.message.send":n==="sessions"&&r==="fork"?"sessions.fork":n==="timers"&&r==="create"?"timers.create":n==="timers"&&r==="cancel"?"timers.cancel":n==="timers"&&r==="list"?"timers.list":n==="terminals"&&r==="send"?"terminals.input.send":n==="terminals"&&r==="close"?"terminals.close":n==="terminals"&&r==="history"?"terminals.history.read":n==="terminals"&&r==="list"?"terminals.list":n==="workspaces"&&r==="list"?"workspaces.list":n==="workspaces"&&r==="clone"?"workspaces.clone":n==="workspaces"&&r==="import"?"workspaces.import":n==="workspaces"&&r==="management"?"workspaces.management.get":n==="worktrees"&&r==="tree"?"worktrees.tree":n==="worktrees"&&r==="create"?"worktrees.create":null:null}function ds(e){switch(e){case"sessions":case"projects":return"session";case"timers":return"automation";case"terminals":return"terminal";case"workspaces":case"worktrees":return"workspace";case"debug-targets":case"debug-runtimes":return"debug";default:return"query"}}function ei(e){switch(ds(e)){case"session":return o("conversation.assistantCapabilityBadgeSession");case"automation":return o("conversation.assistantCapabilityBadgeAutomation");case"terminal":return o("conversation.assistantCapabilityBadgeTerminal");case"workspace":return o("conversation.assistantCapabilityBadgeWorkspace");case"debug":return o("conversation.assistantCapabilityBadgeDebug");case"query":default:return o("conversation.assistantCapabilityBadgeQuery")}}function ml(e,t){const n=[],r=at(e,"--session-id")??e.positionals[0]??null,i=at(e,"--project")??at(e,"--project-id");return e.mode==="help"?(N(n,o("conversation.assistantCliLabelScope"),e.group??o("conversation.assistantCliScopeRoot")),N(n,o("conversation.assistantCliLabelAction"),e.action),n):(e.group==="sessions"&&N(n,o("conversation.assistantCapabilityLabelSession"),Ge(r,null,t)),e.group==="timers"&&(N(n,o("conversation.assistantCapabilityLabelSession"),Ge(r,null,t)),N(n,o("conversation.assistantCliLabelDelay"),at(e,"--after-seconds"))),e.group==="terminals"&&N(n,o("conversation.assistantCapabilityLabelTerminal"),e.positionals[0]??null),(e.group==="workspaces"||e.group==="worktrees")&&N(n,o("conversation.assistantCapabilityLabelWorkspace"),Ae(e.positionals[0]??null,null,t)),N(n,o("conversation.assistantCliLabelProject"),i),N(n,o("conversation.assistantCliLabelMessage"),at(e,"--message")),N(n,o("conversation.assistantCliLabelInput"),at(e,"--input")),n.slice(0,4))}function at(e,t){const n=e.options[t];return typeof n=="string"?n:null}function ti(e){switch(e){case"projects.sessions.start":return{kind:"session",badge:o("conversation.assistantCapabilityBadgeSession"),title:o("conversation.assistantCapabilityProjectSessionStartTitle"),summary:o("conversation.assistantCapabilitySummarySessionStart")};case"sessions.message.send":return{kind:"session",badge:o("conversation.assistantCapabilityBadgeSession"),title:o("conversation.assistantCapabilitySessionSendTitle"),summary:o("conversation.assistantCapabilitySummarySessionSend")};case"sessions.fork":return{kind:"session",badge:o("conversation.assistantCapabilityBadgeSession"),title:o("conversation.assistantCapabilitySessionForkTitle"),summary:o("conversation.assistantCapabilitySummarySessionFork")};case"timers.create":return{kind:"automation",badge:o("conversation.assistantCapabilityBadgeAutomation"),title:o("conversation.assistantCapabilityTimerCreateTitle"),summary:o("conversation.assistantCapabilitySummaryTimerCreate")};case"timers.cancel":return{kind:"automation",badge:o("conversation.assistantCapabilityBadgeAutomation"),title:o("conversation.assistantCapabilityTimerCancelTitle"),summary:o("conversation.assistantCapabilitySummaryTimerCancel")};case"terminals.input.send":return{kind:"terminal",badge:o("conversation.assistantCapabilityBadgeTerminal"),title:o("conversation.assistantCapabilityTerminalInputTitle"),summary:o("conversation.assistantCapabilitySummaryTerminalInput")};case"terminals.close":return{kind:"terminal",badge:o("conversation.assistantCapabilityBadgeTerminal"),title:o("conversation.assistantCapabilityTerminalCloseTitle"),summary:o("conversation.assistantCapabilitySummaryTerminalClose")};case"workspaces.directory.create":return{kind:"workspace",badge:o("conversation.assistantCapabilityBadgeWorkspace"),title:o("conversation.assistantCapabilityWorkspaceDirectoryCreateTitle"),summary:o("conversation.assistantCapabilitySummaryWorkspace")};case"workspaces.import":return{kind:"workspace",badge:o("conversation.assistantCapabilityBadgeWorkspace"),title:o("conversation.assistantCapabilityWorkspaceImportTitle"),summary:o("conversation.assistantCapabilitySummaryWorkspace")};case"workspaces.clone":return{kind:"workspace",badge:o("conversation.assistantCapabilityBadgeWorkspace"),title:o("conversation.assistantCapabilityWorkspaceCloneTitle"),summary:o("conversation.assistantCapabilitySummaryWorkspace")};case"workspaces.navigation-state.update":return{kind:"workspace",badge:o("conversation.assistantCapabilityBadgeWorkspace"),title:o("conversation.assistantCapabilityWorkspaceNavigationUpdateTitle"),summary:o("conversation.assistantCapabilitySummaryWorkspace")};case"workspaces.remove":return{kind:"workspace",badge:o("conversation.assistantCapabilityBadgeWorkspace"),title:o("conversation.assistantCapabilityWorkspaceRemoveTitle"),summary:o("conversation.assistantCapabilitySummaryWorkspace")};case"worktrees.create":return{kind:"workspace",badge:o("conversation.assistantCapabilityBadgeWorkspace"),title:o("conversation.assistantCapabilityWorktreeCreateTitle"),summary:o("conversation.assistantCapabilitySummaryWorktree")};case"worktrees.merge-into-parent":return{kind:"workspace",badge:o("conversation.assistantCapabilityBadgeWorkspace"),title:o("conversation.assistantCapabilityWorktreeMergeTitle"),summary:o("conversation.assistantCapabilitySummaryWorktree")};case"worktrees.cleanup":return{kind:"workspace",badge:o("conversation.assistantCapabilityBadgeWorkspace"),title:o("conversation.assistantCapabilityWorktreeCleanupTitle"),summary:o("conversation.assistantCapabilitySummaryWorktree")};case"debug-targets.run":return{kind:"debug",badge:o("conversation.assistantCapabilityBadgeDebug"),title:o("conversation.assistantCapabilityDebugRunTitle"),summary:o("conversation.assistantCapabilitySummaryDebug")};default:return e.startsWith("sessions.")||e.startsWith("projects.")?{kind:"session",badge:o("conversation.assistantCapabilityBadgeSession"),title:o("conversation.assistantCapabilitySessionReadTitle"),summary:o("conversation.assistantCapabilitySummaryRead")}:e.startsWith("timers.")?{kind:"automation",badge:o("conversation.assistantCapabilityBadgeAutomation"),title:o("conversation.assistantCapabilityAutomationReadTitle"),summary:o("conversation.assistantCapabilitySummaryRead")}:e.startsWith("terminals.")?{kind:"terminal",badge:o("conversation.assistantCapabilityBadgeTerminal"),title:o("conversation.assistantCapabilityTerminalReadTitle"),summary:o("conversation.assistantCapabilitySummaryRead")}:e.startsWith("workspaces.")||e.startsWith("worktrees.")?{kind:"workspace",badge:o("conversation.assistantCapabilityBadgeWorkspace"),title:o("conversation.assistantCapabilityWorkspaceReadTitle"),summary:o("conversation.assistantCapabilitySummaryRead")}:e.startsWith("debug-targets.")||e.startsWith("debug-runtimes.")?{kind:"debug",badge:o("conversation.assistantCapabilityBadgeDebug"),title:o("conversation.assistantCapabilityDebugReadTitle"),summary:o("conversation.assistantCapabilitySummaryRead")}:{kind:"query",badge:o("conversation.assistantCapabilityBadgeQuery"),title:o("conversation.assistantCapabilityQueryTitle"),summary:o("conversation.assistantCapabilitySummaryRead")}}}function pl(e,t){const n=[],r=e.payload;switch(e.capability){case"projects.sessions.start":{const i=G(r,"session");N(n,o("conversation.assistantCapabilityLabelSession"),Ge(A(i,"sessionId"),A(i,"title"),t)),N(n,o("conversation.assistantCapabilityLabelProvider"),A(i,"provider"));break}case"sessions.message.send":{const i=G(r,"result");N(n,o("conversation.assistantCapabilityLabelSession"),Ge(e.targetRef.id,null,t)),N(n,o("conversation.assistantCapabilityLabelWorkspace"),ni(e.targetRef.id,t)),N(n,o("conversation.assistantCapabilityLabelStatus"),o("conversation.assistantCapabilityStatusCompleted")),N(n,o("conversation.assistantCapabilityLabelDueAt"),ar(A(i,"acceptedAt")??e.timestamp));break}case"sessions.fork":{const i=G(r,"session");N(n,o("conversation.assistantCapabilityLabelSession"),Ge(A(i,"sessionId"),A(i,"title"),t)),N(n,o("conversation.assistantCapabilityLabelProvider"),A(i,"provider"));break}case"timers.create":case"timers.cancel":{const i=G(r,"timer"),a=G(i,"controlSession"),l=G(a,"session");N(n,o("conversation.assistantCapabilityLabelTimer"),A(i,"title")),N(n,o("conversation.assistantCapabilityLabelWorkspace"),Ae(A(l,"workspaceId"),null,t)),N(n,o("conversation.assistantCapabilityLabelSession"),Ge(A(i,"targetSessionId"),null,t)),N(n,o("conversation.assistantCapabilityLabelDueAt"),ar(A(i,"dueAt"))),N(n,o("conversation.assistantCapabilityLabelStatus"),gl(A(i,"status")));break}case"terminals.input.send":case"terminals.close":N(n,o("conversation.assistantCapabilityLabelTerminal"),e.targetRef.id);break;case"workspaces.directory.create":{const i=G(r,"result");N(n,o("conversation.assistantCapabilityLabelPath"),A(i,"path"));break}case"workspaces.import":case"workspaces.clone":case"workspaces.remove":{const i=G(r,"workspace");N(n,o("conversation.assistantCapabilityLabelWorkspace"),Ae(A(i,"id")??e.targetRef.id,A(i,"name"),t)),N(n,o("conversation.assistantCapabilityLabelPath"),A(i,"path"));break}case"workspaces.navigation-state.update":{const i=G(r,"state");N(n,o("conversation.assistantCapabilityLabelWorkspace"),Ae(A(i,"workspaceId")??e.targetRef.id,null,t)),N(n,o("conversation.assistantCapabilityLabelStatus"),A(i,"collapsed")==="true"?o("conversation.assistantCapabilityNavigationCollapsed"):o("conversation.assistantCapabilityNavigationExpanded"));break}case"worktrees.create":{const i=G(r,"result"),a=G(i,"workspace");N(n,o("conversation.assistantCapabilityLabelWorkspace"),Ae(A(a,"id")??e.targetRef.id,A(a,"name"),t)),N(n,o("conversation.assistantCapabilityLabelBranch"),A(i,"branchName"));break}case"worktrees.merge-into-parent":case"worktrees.cleanup":{const i=G(r,"result");N(n,o("conversation.assistantCapabilityLabelWorkspace"),Ae(e.targetRef.id,null,t)),N(n,o("conversation.assistantCapabilityLabelStatus"),A(i,"status"));break}case"debug-targets.run":{const i=G(r,"result");N(n,o("conversation.assistantCapabilityLabelDebugTarget"),e.targetRef.id),N(n,o("conversation.assistantCapabilityLabelRuntime"),A(i,"runtimeId"));break}}return fl(n,e,t),n.slice(0,4)}function fl(e,t,n){t.targetRef.kind==="session"&&(N(e,o("conversation.assistantCapabilityLabelSession"),Ge(t.targetRef.id,null,n)),N(e,o("conversation.assistantCapabilityLabelWorkspace"),ni(t.targetRef.id,n))),(t.targetRef.kind==="workspace"||t.targetRef.kind==="worktree")&&N(e,o("conversation.assistantCapabilityLabelWorkspace"),Ae(t.targetRef.id,null,n)),t.targetRef.kind==="terminal"&&N(e,o("conversation.assistantCapabilityLabelTerminal"),t.targetRef.id),t.targetRef.kind==="timer"&&N(e,o("conversation.assistantCapabilityLabelTimer"),t.targetRef.id);const r=hl(t.payload);r!==null&&N(e,o("conversation.assistantCapabilityLabelCount"),String(r))}function N(e,t,n){const r=n==null?void 0:n.trim();r&&(e.some(i=>i.label===t)||e.push({label:t,value:r}))}function Ge(e,t,n){const r=t==null?void 0:t.trim();if(r)return r;const i=e==null?void 0:e.trim();return i?n.sessionNamesById.get(i)??i:null}function Ae(e,t,n){const r=t==null?void 0:t.trim();if(r)return r;const i=e==null?void 0:e.trim();return i?n.workspaceNamesById.get(i)??i:null}function ni(e,t){const n=e==null?void 0:e.trim();return n?Ae(t.sessionWorkspaceIdsById.get(n)??null,null,t):null}function hl(e){const t=Qn(e,"items");if(t)return t.length;const n=G(e,"page"),r=Qn(n,"items");if(r)return r.length;const i=G(e,"history"),a=Qn(i,"items");return a?a.length:null}function ar(e){const t=e==null?void 0:e.trim();if(!t)return null;const n=Date.parse(t);return Number.isFinite(n)?new Intl.DateTimeFormat(void 0,{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(new Date(n)):t}function gl(e){switch(e){case"active":return o("conversation.assistantCapabilityStatusActive");case"completed":return o("conversation.assistantCapabilityStatusCompleted");case"cancelled":return o("conversation.assistantCapabilityStatusCancelled");case"failed":return o("conversation.assistantCapabilityStatusFailed");default:return e}}function vl({kind:e}){switch(e){case"session":return s.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:s.jsx("path",{d:"M5 7.5A2.5 2.5 0 0 1 7.5 5h9A2.5 2.5 0 0 1 19 7.5v5A2.5 2.5 0 0 1 16.5 15H11l-4 4v-4H7.5A2.5 2.5 0 0 1 5 12.5z"})});case"automation":return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[s.jsx("circle",{cx:"12",cy:"12",r:"7.5"}),s.jsx("path",{d:"M12 8.5v4.2l2.8 1.8"})]});case"terminal":return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[s.jsx("path",{d:"m7 8 3.5 3.5L7 15"}),s.jsx("path",{d:"M13 15h4"}),s.jsx("rect",{x:"4.5",y:"5.5",width:"15",height:"13",rx:"2.5"})]});case"workspace":return s.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:s.jsx("path",{d:"M4.5 8.5A2.5 2.5 0 0 1 7 6h3l1.5 1.5H17A2.5 2.5 0 0 1 19.5 10v6A2.5 2.5 0 0 1 17 18.5H7A2.5 2.5 0 0 1 4.5 16z"})});case"debug":return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[s.jsx("path",{d:"M9 4.5h6"}),s.jsx("path",{d:"M10 8h4a4 4 0 0 1 4 4v1a6 6 0 0 1-12 0v-1a4 4 0 0 1 4-4Z"}),s.jsx("path",{d:"M4.5 11h3M16.5 11h3M5.5 7.5l2 1.5M18.5 7.5l-2 1.5"})]});case"query":default:return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[s.jsx("circle",{cx:"11",cy:"11",r:"5.5"}),s.jsx("path",{d:"m16 16 3.5 3.5"})]})}}function bl(e){if(e.name==="apply_patch"){const a=er(e.input);if(a)return a;const l=ba(e.output||e.error||""),c=va(e.input,l);return c?er(c):null}if(e.name!=="Write"&&e.name!=="Edit"&&e.name!=="MultiEdit")return null;const t=us(e.input);if(!t)return null;const n=He(t,"file_path")||He(t,"path");if(!n)return null;if(e.name==="Write"){const a=He(t,"content"),l=a.length>0?a.split(/\r?\n/):[];return{files:[{path:n,nextPath:null,action:"add",additions:l.length,deletions:0,statsKnown:!0,lines:l.map((c,m)=>({kind:"add",text:`+${c}`,oldLineNumber:null,newLineNumber:m+1}))}],totalAdditions:l.length,totalDeletions:0}}if(e.name==="Edit"){const a=He(t,"old_string").split(/\r?\n/),l=He(t,"new_string").split(/\r?\n/);return lr(n,[{oldLines:a,newLines:l}])}const i=(Array.isArray(t.edits)?t.edits:[]).map(a=>{if(!a||typeof a!="object"||Array.isArray(a))return null;const l=a;return{oldLines:He(l,"old_string").split(/\r?\n/),newLines:He(l,"new_string").split(/\r?\n/)}}).filter(a=>!!a);return i.length>0?lr(n,i):null}function lr(e,t){const n=[];let r=0,i=0;return t.forEach((a,l)=>{n.push({kind:"hunk",text:`@@ -1,${a.oldLines.length} +1,${a.newLines.length} @@`,oldLineNumber:null,newLineNumber:null}),a.oldLines.forEach((c,m)=>{c.length===0&&a.oldLines.length===1&&a.newLines.length>0||(i+=1,n.push({kind:"remove",text:`-${c}`,oldLineNumber:m+1,newLineNumber:null}))}),a.newLines.forEach((c,m)=>{c.length===0&&a.newLines.length===1&&a.oldLines.length>0||(r+=1,n.push({kind:"add",text:`+${c}`,oldLineNumber:null,newLineNumber:m+1}))}),l<t.length-1&&n.push({kind:"meta",text:"***",oldLineNumber:null,newLineNumber:null})}),{files:[{path:e,nextPath:null,action:"update",additions:r,deletions:i,statsKnown:!0,lines:n}],totalAdditions:r,totalDeletions:i}}function xl(e){const t=us(e.input),n=t&&typeof t.command=="string"?t.command.trim():"";if(n)return`${o("conversation.toolPreviewCommand")}:${n}`;if(e.name==="read_thread_terminal")return o("conversation.toolPreviewTerminal");const r=e.input||e.error||e.output||o("conversation.toolResultEmpty");return r.length>60?`${r.slice(0,60)}...`:r}function yl(e){var a;const t=e.map(l=>({message:l,tool:Yr(l)})).filter(l=>!!l.tool);if(t.length===0)return null;const n={...t[0].tool};let r=!1,i=!1;for(const{message:l,tool:c}of t)l.kind==="tool_call"&&(r=!0,!n.input&&c.input&&(n.input=c.input)),l.kind==="tool_result"&&(i=!0,n.output=c.output,n.error=c.error,n.status=c.status,!n.input&&c.input&&(n.input=c.input)),!n.name&&c.name&&(n.name=c.name);return{key:t.map(({message:l})=>l.id).join(":"),tool:n,hasRequest:r,hasResult:i,updatedAt:((a=t.at(-1))==null?void 0:a.message.timestamp)??t[0].message.timestamp}}function kl(e){const t=new Map;for(const n of e){const r=Yr(n);if(!r)continue;const i=t.get(r.callId);if(i){i.messages.push(n);continue}t.set(r.callId,{messages:[n],firstSequence:n.sequence})}return Array.from(t.values()).sort((n,r)=>n.firstSequence-r.firstSequence).map(n=>yl(n.messages)).filter(n=>!!n)}function Cl(e){const t=[];for(let n=0;n<e.length;n+=1){const r=e[n];if(wl(e,n))continue;if(!yn(r)){t.push({type:"message",key:r.id,message:r});continue}const i=[r];let a=n+1;for(;a<e.length;){const c=e[a];if(!yn(c))break;i.push(c),a+=1}const l=kl(i);if(l.length===0){t.push({type:"message",key:r.id,message:r}),n=a-1;continue}l.forEach(c=>{t.push({type:"tool_group",key:c.key,group:c})}),n=a-1}return t}function wl(e,t){const n=e[t];if(!n||Qr(n.content)===null)return!1;for(let r=t-1;r>=0;r-=1){const i=e[r];if(!(!i||yn(i)))return i.role==="user"}return!1}function jl(e,t){if(!co(null,e))return!1;const n=t.trim();return/AGENTS\.md instructions for/i.test(n)&&/<INSTRUCTIONS>/i.test(n)&&/<\/INSTRUCTIONS>/i.test(n)}function Sl(e,t){if(e!=="claude-code")return!1;const n=t.trim();return/Base directory for this skill:/i.test(n)&&/^#\s+.+/im.test(n)&&/\bARGUMENTS:/i.test(n)}function Nl(e,t){if(e==="skill_context"){const r=t.split(/\r?\n/).map(i=>i.trim()).find(i=>/^#\s+/.test(i));if(r)return r.replace(/^#+\s*/,"")}const n=t.split(/\r?\n/).map(r=>r.trim()).find(Boolean);return n?n.replace(/^#+\s*/,""):o("conversation.rulesMessageTitle")}function Ml(e,t){const n=new Set;if(t!=="kimi")return n;for(const r of e){if(r.role==="system"&&r.kind==="text"){n.add(r.id);continue}break}return n}function Et(e){var t;return typeof e=="string"||typeof e=="number"?String(e):Array.isArray(e)?e.map(n=>Et(n)).join(""):e&&typeof e=="object"&&"props"in e?Et(((t=e.props)==null?void 0:t.children)??""):""}function Tl(e){const t=Array.isArray(e)?e[0]:e;if(!d.isValidElement(t))return null;const n=t.props,r=typeof n.className=="string"?n.className:"",i=/language-([^\s]+)/.exec(r);return{content:Et(n.children).replace(/\n$/,""),codeClassName:r||void 0,language:(i==null?void 0:i[1])??null}}function Rl(e){if(typeof document>"u"||typeof document.execCommand!="function")return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly","true"),t.style.position="fixed",t.style.top="-9999px",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();try{return document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(t)}}async function ms(e,t){var n;if(!(t.isDesktop&&(await t.bridge.writeClipboardText(e)).ok)){if(typeof navigator<"u"&&((n=navigator.clipboard)!=null&&n.writeText))try{await navigator.clipboard.writeText(e);return}catch{}if(!Rl(e))throw new Error(o("conversation.copyContentFailed"))}}function Al({className:e,children:t,onCopy:n}){const r=d.useContext(Zr),i=Et(t).trim();if(r||!i)return s.jsx("code",{className:e||void 0,children:t});function a(l){l.key!=="Enter"&&l.key!==" "||(l.preventDefault(),n(i))}return s.jsx("code",{className:[e,"markdown-inline-copy"].filter(Boolean).join(" "),role:"button",tabIndex:0,"aria-label":o("conversation.copyAction"),onClick:()=>n(i),onKeyDown:a,children:t})}function Pl({href:e,children:t,className:n,onInteract:r}){const i=Et(t).trim()||(e?cs(e).trim():"");return s.jsx(Zr.Provider,{value:!0,children:s.jsx("a",{href:e,className:[n,"markdown-interactive-link"].filter(Boolean).join(" "),onClick:a=>{a.preventDefault(),r(e,i)},children:t})})}function si({language:e,codeClassName:t,content:n}){const{showToast:r}=Wt(),i=qt(),a=(e==null?void 0:e.trim().toLowerCase())??null,l=a==="text",c=a||"code";async function m(){try{await ms(n,i),r({title:o("conversation.copyContentSuccess"),tone:"success"})}catch(v){r({title:v instanceof Error?v.message:o("conversation.copyContentFailed"),tone:"error"})}}return s.jsxs("div",{className:`code-block${l?" text-code-block":""}`,children:[s.jsxs("div",{className:"code-header",children:[s.jsx("span",{className:"code-header-label",children:c}),s.jsx("button",{className:"code-copy-button",type:"button",onClick:()=>void m(),children:o("conversation.copyAction")})]}),s.jsx("pre",{className:t,children:s.jsx("code",{children:n})})]})}function Mt({content:e,className:t}){const{showToast:n}=Wt(),r=qt(),{navigationGroups:i,currentWorkspaceId:a,revealWorkspaceFile:l}=Mr(),c=d.useMemo(()=>{var p;return((p=i.find(b=>b.workspace.id===a))==null?void 0:p.workspace)??null},[a,i]);async function m(p){if(p.trim())try{await ms(p,r),n({title:o("conversation.copyContentSuccess"),tone:"success"})}catch(b){n({title:b instanceof Error?b.message:o("conversation.copyContentFailed"),tone:"error"})}}function v(p,b){const f=p&&(c!=null&&c.path)?Ja(p,c.path):null;f&&l({workspaceId:(c==null?void 0:c.id)??a,filePath:f,openViewer:!1})||m(b||(p?cs(p).trim():""))}return s.jsx("div",{className:t,children:s.jsx(go,{remarkPlugins:[vo],components:{p:({node:p,...b})=>s.jsx("p",{...b}),a(p){return s.jsx(Pl,{href:typeof p.href=="string"?p.href:void 0,className:typeof p.className=="string"?p.className:void 0,onInteract:v,children:p.children})},pre(p){const b=Tl(p.children);return b?s.jsx(si,{language:b.language,codeClassName:b.codeClassName,content:b.content}):s.jsx("pre",{children:p.children})},code(p){const b=typeof p.className=="string"?p.className:"";return s.jsx(Al,{className:b||void 0,onCopy:f=>{m(f)},children:p.children})}},children:e})})}function cr(e,t){return e.kind!=="image"||!(t!=null&&t.contentBase64)||t.mimeType!==e.mimeType?null:`data:${t.mimeType};base64,${t.contentBase64}`}function Ll(e){return typeof e!="number"||!Number.isFinite(e)||e<0?null:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function mn({sessionId:e,attachmentPayloads:t=[],attachments:n=[],inlineImages:r=[]}){return s.jsx(Il,{sessionId:e,attachments:n,attachmentPayloads:t,inlineImages:r})}function Il({sessionId:e,attachmentPayloads:t=[],attachments:n=[],inlineImages:r=[]}){const[i,a]=d.useState({}),[l,c]=d.useState(null),m=d.useMemo(()=>n.map((f,C)=>{const y=cr(f,t==null?void 0:t[C]);if(y)return{id:f.id,kind:f.kind,fileName:f.fileName,fileSize:f.fileSize,url:y,status:"ready"};const x=i[f.id];return{id:f.id,kind:f.kind,fileName:f.fileName,fileSize:f.fileSize,url:(x==null?void 0:x.url)??null,status:(x==null?void 0:x.status)??(e?"loading":"error")}}),[t,n,i,e]),v=d.useMemo(()=>r.map((f,C)=>({id:`inline-image-${C}`,kind:"image",fileName:f.altText||`${o("conversation.imageAttachmentLabel")} ${C+1}`,fileSize:f.estimatedBytes,url:f.url,status:"ready"})),[r]),p=d.useMemo(()=>[...v,...m],[m,v]),b=p.find(f=>f.id===l)??null;return d.useEffect(()=>{if(!l)return;function f(C){C.key==="Escape"&&c(null)}return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[l]),d.useEffect(()=>{const f=n.filter((x,j)=>!cr(x,t==null?void 0:t[j]));if(!e||f.length===0){a({});return}let C=!1;const y=[];return a(Object.fromEntries(f.map(x=>[x.id,{id:x.id,kind:x.kind,fileName:x.fileName,fileSize:x.fileSize,url:null,status:"loading"}]))),Promise.all(f.map(async x=>{try{const j=await uo(e,x.id),M=URL.createObjectURL(j);return y.push(M),{id:x.id,kind:x.kind,fileName:x.fileName,fileSize:x.fileSize,url:M,status:"ready"}}catch{return{id:x.id,kind:x.kind,fileName:x.fileName,fileSize:x.fileSize,url:null,status:"error"}}})).then(x=>{if(C){y.forEach(j=>URL.revokeObjectURL(j));return}a(Object.fromEntries(x.map(j=>[j.id,j])))}),()=>{C=!0,y.forEach(x=>URL.revokeObjectURL(x))}},[t,n,e]),p.length===0?null:s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"message-attachments",children:p.map(f=>{const C=f.kind==="image",y=f.status==="loading"?o("conversation.attachmentPreviewLoading"):f.status==="error"?o("conversation.attachmentPreviewUnavailable"):C?o("conversation.attachmentPreviewOpen"):o("conversation.attachmentDownload"),x=Ll(f.fileSize),j=s.jsx("div",{className:"message-attachment-card",children:C?f.url?s.jsx("img",{className:"message-attachment-thumbnail",src:f.url,alt:f.fileName||o("conversation.attachmentPreviewAlt"),loading:"lazy"}):s.jsx("div",{className:"message-attachment-placeholder","aria-hidden":"true",children:f.status==="loading"?o("conversation.attachmentPreviewLoading"):o("conversation.attachmentPreviewUnavailable")}):s.jsxs("div",{className:"message-attachment-file-card",children:[s.jsx("div",{className:"message-attachment-file-icon","aria-hidden":"true",children:s.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[s.jsx("path",{d:"M14 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7z"}),s.jsx("path",{d:"M14 2v5h5"}),s.jsx("path",{d:"M9 13h6"}),s.jsx("path",{d:"M9 17h6"})]})}),s.jsxs("div",{className:"message-attachment-file-meta",children:[s.jsx("strong",{title:f.fileName,children:f.fileName}),s.jsx("span",{children:x??o("conversation.fileAttachmentLabel")})]})]})});return!C&&f.url?s.jsx("a",{className:"message-attachment-button",href:f.url,download:f.fileName,"aria-label":`${f.fileName} - ${y}`,title:y,children:j},f.id):s.jsx("button",{type:"button",className:"message-attachment-button",onClick:()=>C&&f.url&&c(f.id),disabled:!f.url,"aria-label":`${f.fileName} - ${y}`,title:y,children:j},f.id)})}),s.jsx(Nr,{open:!!(b!=null&&b.url),title:o("conversation.imagePreviewTitle"),description:b==null?void 0:b.fileName,size:"xwide",layout:"viewer",className:"message-image-modal",bodyClassName:"message-image-modal-body",onClose:()=>c(null),children:b!=null&&b.url?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"message-image-modal-stage",children:s.jsx("img",{className:"message-image-modal-image",src:b.url,alt:b.fileName||o("conversation.attachmentPreviewAlt")})}),s.jsx("p",{className:"message-image-modal-hint",children:o("conversation.imagePreviewHint")})]}):null})]})}function El(){return s.jsx("div",{className:"timeline-skeleton","aria-hidden":"true",children:Array.from({length:3},(e,t)=>s.jsxs("article",{className:`timeline-skeleton-item ${t%2===0?"assistant":"user"}`,children:[s.jsx("div",{className:"timeline-skeleton-avatar"}),s.jsxs("div",{className:"timeline-skeleton-bubble",children:[s.jsx("span",{className:"timeline-skeleton-line long"}),s.jsx("span",{className:"timeline-skeleton-line medium"}),s.jsx("span",{className:"timeline-skeleton-line short"})]})]},t))})}function _l({tool:e,preview:t}){const[n,r]=d.useState(null),i=n===null?null:t.files[n]??null;return d.useEffect(()=>{if(n===null)return;function a(l){l.key==="Escape"&&r(null)}return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[n]),s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"tool-call-item apply-patch-item",children:t.files.map((a,l)=>s.jsxs("button",{type:"button",className:"apply-patch-summary-row",onClick:()=>r(l),children:[s.jsx("span",{className:"apply-patch-summary-label",children:dr(a.action)}),s.jsx("span",{className:"apply-patch-summary-file",title:Zn(a),children:xa(a.nextPath??a.path)}),pr(a)]},mr(a,l)))}),s.jsx(Nr,{open:i!==null,title:o("conversation.applyPatchDialogTitle"),description:o("conversation.applyPatchDialogDescription"),size:"full",layout:"viewer",className:"apply-patch-modal",bodyClassName:"apply-patch-modal-body",onClose:()=>r(null),children:i?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"apply-patch-modal-totals",children:Fl(i)}),s.jsxs("section",{className:"apply-patch-file-panel",children:[s.jsxs("div",{className:"apply-patch-file-panel-header",children:[s.jsxs("div",{className:"apply-patch-file-panel-title",children:[s.jsx("span",{className:"apply-patch-summary-label",children:dr(i.action)}),s.jsx("strong",{children:Zn(i)})]}),pr(i)]}),s.jsx("div",{className:"apply-patch-diff-view",children:s.jsx("div",{className:"apply-patch-diff-scroll",children:i.lines.map((a,l)=>s.jsxs("div",{className:`apply-patch-diff-line ${Ul(a.kind)}`,children:[s.jsx("span",{className:"apply-patch-line-number",children:fr(a.oldLineNumber)}),s.jsx("span",{className:"apply-patch-line-number",children:fr(a.newLineNumber)}),s.jsx("span",{className:"apply-patch-line-content",children:a.text||" "})]},`${Zn(i)}:${l}`))})})]},mr(i,n??0)),e.error?s.jsxs("section",{className:"apply-patch-error-panel",children:[s.jsx("div",{className:"tool-call-section-label",children:o("conversation.toolResultLabel")}),s.jsx("pre",{className:"tool-call-error",children:e.error})]}):null]}):null})]})}function Ol({group:e}){const[t,n]=d.useState(!1),{navigationGroups:r}=Mr(),{tool:i,hasRequest:a,hasResult:l}=e,c=Xa(i.name),m=d.useMemo(()=>nl(r),[r]),v=d.useMemo(()=>sl(i,m),[m,i]),p=d.useMemo(()=>rl(i,m),[m,i]),b=d.useMemo(()=>yo(i,null,e.updatedAt),[e.updatedAt,i]),f=d.useMemo(()=>bl(i),[i.input,i.name]);if(f)return s.jsx(_l,{tool:i,preview:f});if(v)return s.jsx(ur,{tool:i,snapshot:v,expanded:t,hasRequest:a,hasResult:l,onToggleExpanded:()=>{n(x=>!x)}});if(p)return s.jsx(ur,{tool:i,snapshot:p,expanded:t,hasRequest:a,hasResult:l,onToggleExpanded:()=>{n(x=>!x)}});if(b)return s.jsx(Bl,{tool:i,snapshot:b,expanded:t,hasRequest:a,hasResult:l,onToggleExpanded:()=>{n(x=>!x)}});const C=xl(i),y=!!(i.input||i.output||i.error);return s.jsxs("div",{className:`tool-call-item ${l?"tool-result":""}`,children:[s.jsxs("button",{type:"button",className:"tool-call-header",onClick:()=>y&&n(x=>!x),children:[s.jsxs("div",{className:"tool-call-info",children:[s.jsx("span",{className:"tool-call-name",children:c}),s.jsx("span",{className:"tool-call-input-preview",children:C})]}),s.jsx("div",{className:"tool-call-meta",children:y&&s.jsx("span",{className:`tool-call-toggle ${t?"expanded":""}`,children:s.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:s.jsx("polyline",{points:"6 9 12 15 18 9"})})})})]}),t&&y&&s.jsxs("div",{className:"tool-call-output",children:[a&&i.input&&s.jsxs("div",{className:"tool-call-section",children:[s.jsx("div",{className:"tool-call-section-label",children:o("conversation.toolInputLabel")}),s.jsx("pre",{children:i.input})]}),(l||i.error||i.output)&&s.jsxs("div",{className:"tool-call-section",children:[s.jsx("div",{className:"tool-call-section-label",children:o("conversation.toolResultLabel")}),s.jsx("pre",{className:i.error?"tool-call-error":void 0,children:i.error||i.output||o("conversation.toolResultEmpty")})]})]})]})}function ur({tool:e,snapshot:t,expanded:n,hasRequest:r,hasResult:i,onToggleExpanded:a}){const l=n?o("conversation.assistantCapabilityRawCollapse"):o("conversation.assistantCapabilityRawExpand");return s.jsxs("div",{className:"tool-call-item assistant-capability-item","data-kind":t.kind,children:[s.jsxs("div",{className:"assistant-capability-header",children:[s.jsxs("div",{className:"assistant-capability-heading",children:[s.jsx("span",{className:"assistant-capability-icon",children:s.jsx(vl,{kind:t.kind})}),s.jsxs("div",{className:"assistant-capability-heading-main",children:[s.jsx("span",{className:"assistant-capability-badge",children:t.badge}),s.jsx("strong",{children:t.title}),s.jsx("span",{className:"assistant-capability-summary",children:t.summary})]})]}),s.jsx("button",{type:"button",className:"task-tool-raw-toggle",onClick:a,children:l})]}),t.rows.length>0?s.jsx("div",{className:"assistant-capability-list",children:t.rows.map(c=>s.jsxs("div",{className:"assistant-capability-row",children:[s.jsx("span",{className:"assistant-capability-row-label",children:c.label}),s.jsx("span",{className:"assistant-capability-row-value",children:c.value})]},c.label))}):null,n?s.jsxs("div",{className:"tool-call-output",children:[r&&e.input?s.jsxs("div",{className:"tool-call-section",children:[s.jsx("div",{className:"tool-call-section-label",children:o("conversation.toolInputLabel")}),s.jsx("pre",{children:e.input})]}):null,i||e.error||e.output?s.jsxs("div",{className:"tool-call-section",children:[s.jsx("div",{className:"tool-call-section-label",children:o("conversation.toolResultLabel")}),s.jsx("pre",{className:e.error?"tool-call-error":void 0,children:e.error||e.output||o("conversation.toolResultEmpty")})]}):null]}):null]})}function Bl({tool:e,snapshot:t,expanded:n,hasRequest:r,hasResult:i,onToggleExpanded:a}){const l=Ar(t.items),c=n?o("conversation.taskCardRawCollapse"):o("conversation.taskCardRawExpand");return s.jsxs("div",{className:"tool-call-item task-tool-item",children:[s.jsxs("div",{className:"task-tool-header",children:[s.jsxs("div",{className:"task-tool-heading",children:[s.jsx("span",{className:"task-tool-badge",children:t.source==="plan"?o("conversation.taskCardPlanTitle"):o("conversation.taskCardTodoTitle")}),s.jsxs("div",{className:"task-tool-heading-main",children:[s.jsx("strong",{children:ql(t,e.name)}),s.jsx("span",{className:"task-tool-summary-text",children:Wl(t.items,l)})]})]}),s.jsx("button",{type:"button",className:"task-tool-raw-toggle",onClick:a,children:c})]}),s.jsx("ol",{className:"task-tool-list",children:t.items.map(m=>s.jsxs("li",{className:"task-tool-list-item","data-status":m.status,children:[s.jsx("span",{className:"task-tool-item-indicator","data-status":m.status,"aria-hidden":"true"}),s.jsx("strong",{className:"task-tool-item-title",children:m.title}),m.detail?s.jsx("span",{className:"task-tool-item-detail",children:m.detail}):null,s.jsx("span",{className:"task-tool-item-status",children:Dl(m.status)})]},m.id))}),n?s.jsxs("div",{className:"tool-call-output",children:[r&&e.input?s.jsxs("div",{className:"tool-call-section",children:[s.jsx("div",{className:"tool-call-section-label",children:o("conversation.toolInputLabel")}),s.jsx("pre",{children:e.input})]}):null,i||e.error||e.output?s.jsxs("div",{className:"tool-call-section",children:[s.jsx("div",{className:"tool-call-section-label",children:o("conversation.toolResultLabel")}),s.jsx("pre",{className:e.error?"tool-call-error":void 0,children:e.error||e.output||o("conversation.toolResultEmpty")})]}):null]}):null]})}function ql(e,t){if(e.source==="plan")return o("conversation.taskCardPlanUpdated");const n=t.trim().toLowerCase();return n==="taskcreate"||n==="todowrite"||n==="todoread"?o("conversation.taskCardTodoUpdated"):n.startsWith("task")?o("conversation.taskCardTodoUpdated"):o("conversation.taskCardTodoUpdated")}function Wl(e,t){const n=[o("conversation.taskCardSummaryTotal",{count:e.length})];return t.in_progress>0&&n.push(o("conversation.taskCardSummaryInProgress",{count:t.in_progress})),t.pending>0&&n.push(o("conversation.taskCardSummaryPending",{count:t.pending})),t.completed>0&&n.push(o("conversation.taskCardSummaryCompleted",{count:t.completed})),t.failed>0&&n.push(o("conversation.taskCardSummaryFailed",{count:t.failed})),n.join(" / ")}function Dl(e){switch(e){case"in_progress":return o("conversation.taskProgressStatusInProgress");case"completed":return o("conversation.taskProgressStatusCompleted");case"failed":return o("conversation.taskProgressStatusFailed");case"cancelled":return o("conversation.taskProgressStatusCancelled");case"pending":default:return o("conversation.taskProgressStatusPending")}}function dr(e){return e==="add"?o("conversation.applyPatchAddedLabel"):e==="delete"?o("conversation.applyPatchDeletedLabel"):o("conversation.applyPatchEditedLabel")}function Zn(e){return e.nextPath&&e.nextPath!==e.path?`${e.path} -> ${e.nextPath}`:e.nextPath??e.path}function mr(e,t){return`${e.path}:${e.nextPath??""}:${t}`}function pr(e){return e.statsKnown?s.jsxs("span",{className:"apply-patch-summary-stats",children:[s.jsxs("span",{className:"apply-patch-summary-added",children:["+",e.additions]}),s.jsxs("span",{className:"apply-patch-summary-removed",children:["-",e.deletions]})]}):s.jsx("span",{className:"apply-patch-summary-stats",children:s.jsx("span",{className:"apply-patch-summary-edited",children:o("conversation.applyPatchEditedStat")})})}function Fl(e){return e.statsKnown?s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"apply-patch-stat-pill positive",children:[o("conversation.applyPatchAddedStat")," +",e.additions]}),s.jsxs("span",{className:"apply-patch-stat-pill negative",children:[o("conversation.applyPatchRemovedStat")," -",e.deletions]})]}):s.jsx("span",{className:"apply-patch-stat-pill neutral",children:o("conversation.applyPatchEditedStat")})}function Ul(e){return e==="add"?"is-added":e==="remove"?"is-removed":e==="hunk"?"is-hunk":e==="meta"?"is-meta":"is-context"}function fr(e){return e===null||e<=0?"":String(e)}function zl(e){return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function ri({timestamp:e,leading:t,children:n}){return s.jsxs("div",{className:"user-message-footer",children:[s.jsx("div",{className:"user-message-footer-leading",children:t}),s.jsxs("div",{className:"user-message-footer-trailing",children:[s.jsx("time",{className:"message-time",dateTime:e,children:zl(e)}),n]})]})}function Ke({text:e,canCopy:t=!0,canFork:n=!1,compact:r=!1,onFork:i}){const{showToast:a}=Wt(),l=qt(),[c,m]=d.useState(!1),[v,p]=d.useState(!1),b=e.trim().length>0,f=t&&b;async function C(){if(!(!f||c)){m(!0);try{await ms(e,l),a({title:o("conversation.copyContentSuccess"),tone:"success"})}catch(x){a({title:x instanceof Error?x.message:o("conversation.copyContentFailed"),tone:"error"})}finally{m(!1)}}}async function y(){if(!(!i||v)){p(!0);try{await i()}finally{p(!1)}}}return!f&&!n?null:s.jsxs("div",{className:r?"message-metadata-bar compact":"message-metadata-bar",children:[f?s.jsx("button",{type:"button",className:"message-metadata-action","aria-label":o("conversation.copyAction"),title:o("conversation.copyAction"),onClick:()=>{C()},disabled:c,children:s.jsx(Ro,{})}):null,n?s.jsx("button",{type:"button",className:"message-metadata-action","aria-label":v?o("conversation.forkingAction"):o("conversation.forkFromHereAction"),title:v?o("conversation.forkingAction"):o("conversation.forkFromHereAction"),onClick:()=>{y()},disabled:v,children:s.jsx(Ao,{})}):null]})}function $l({message:e,kind:t,tone:n,actionState:r,onRetry:i,onForkMessage:a}){const[l,c]=d.useState(!1),m=Nl(t,e.content),v=n==="user-message",p=t==="system_prompt"?o("conversation.systemPromptTitle"):t==="skill_context"?o("conversation.skillContextTitle"):o("conversation.rulesMessageTitle"),b=t==="system_prompt"?o("conversation.systemPromptHint"):t==="skill_context"?o("conversation.skillContextHint"):o("conversation.rulesMessageHint"),f=l?t==="system_prompt"?o("conversation.systemPromptCollapse"):t==="skill_context"?o("conversation.skillContextCollapse"):o("conversation.rulesMessageCollapse"):t==="system_prompt"?o("conversation.systemPromptExpand"):t==="skill_context"?o("conversation.skillContextExpand"):o("conversation.rulesMessageExpand");return s.jsx("article",{className:`message-item ${n} rules-message-row`,"data-message-id":e.id,children:s.jsxs("div",{className:"message-content-wrapper",children:[s.jsxs("div",{className:"rules-message-card",children:[s.jsxs("button",{type:"button",className:"rules-message-toggle","aria-expanded":l,onClick:()=>c(C=>!C),children:[s.jsxs("div",{className:"rules-message-heading",children:[s.jsx("span",{className:"rules-message-badge",children:p}),s.jsx("span",{className:"rules-message-summary",children:m})]}),s.jsx("span",{className:"rules-message-action",children:f})]}),s.jsx("p",{className:"rules-message-hint",children:b}),l&&s.jsx("div",{className:"rules-message-body",children:s.jsx(Mt,{content:e.content,className:"message-text message-content markdown-content"})}),v?s.jsx(ri,{timestamp:e.timestamp,children:s.jsx(Ke,{text:e.content,canCopy:r.canCopy,canFork:r.canFork&&!!(a&&e.deliveryState==="sent"),compact:!0,onFork:a?()=>a(e):null})}):s.jsx(Ke,{text:e.content,canCopy:r.canCopy,canFork:r.canFork&&!!(a&&e.deliveryState==="sent"),onFork:a?()=>a(e):null})]}),e.deliveryState==="failed"&&e.clientRequestId&&s.jsx("button",{className:"retry-button",type:"button",onClick:()=>i(e.clientRequestId),children:o("conversation.resendButton")})]})})}function Hl({message:e,provider:t,interruptedSource:n=null,foldedPromptKind:r=null,actionState:i,onRetry:a,onForkMessage:l,assistantAvatar:c}){const m=e.role==="user",v=e.kind==="thinking",p=e.role==="assistant"&&e.kind==="text",b=t==="codex"&&e.kind==="text"?Qr(e.content):null,f=r??(jl(t,e.content)?"rules":Sl(t,e.content)?"skill_context":null),C=d.useMemo(()=>dt(e.content),[e.content]),y=C.text,x=C.inlineImages,[j,M]=d.useState(!1),[S,P]=d.useState(!1),[F,L]=d.useState(null),[E,q]=d.useState(null);if(f){const W=e.role==="user"?"user-message":e.role==="assistant"?"assistant-message":"system-message";return s.jsx($l,{message:e,kind:f,tone:W,actionState:i,onRetry:a,onForkMessage:l})}if(b){const W=Ua(n),Z=b.detail?`${W}
|
|
15
|
-
|
|
16
|
-
${b.detail}`:W;return s.jsxs("article",{className:"message-item assistant-message","data-message-id":e.id,children:[s.jsx("div",{className:"message-avatar",children:c??s.jsx(Yn,{})}),s.jsxs("div",{className:"message-content-wrapper",children:[s.jsx(Mt,{content:Z,className:"message-text message-content markdown-content"}),s.jsx(Ke,{text:Z,canCopy:i.canCopy,canFork:!1,onFork:null})]})]})}if(m){const W=e.origin==="butler_proxy"||Kl(e.clientRequestId),Z=e.origin==="butler_proxy"&&typeof e.originRef=="string"&&e.originRef.trim().length>0;async function z(){if(!Z)return;const U=!j;if(M(U),!(!U||E||S)){P(!0),L(null);try{const V=await fo(e.originRef);q(V.task)}catch(V){L(V instanceof Error?V.message:o("conversation.butlerOriginDetailLoadFailed"))}finally{P(!1)}}}const Q=W?Z?s.jsxs("div",{className:"message-origin-detail-anchor",children:[s.jsx("button",{type:"button",className:"message-origin-badge message-origin-badge-button","aria-expanded":j,onClick:()=>{z()},children:o("conversation.butlerProxyMessageBadge")}),j?s.jsxs("div",{className:"message-origin-detail-popover",role:"dialog","aria-live":"polite",children:[s.jsx("strong",{children:o("conversation.butlerOriginDetailTitle")}),S?s.jsx("p",{children:o("conversation.butlerOriginDetailLoading")}):F?s.jsx("p",{children:F}):E?s.jsxs(s.Fragment,{children:[s.jsxs("p",{children:[o("conversation.butlerOriginDetailObjectiveLabel"),":",E.objective]}),s.jsxs("p",{children:[o("conversation.butlerOriginDetailStatusLabel"),":",Vl(E.status)]}),s.jsxs("p",{children:[o("conversation.butlerOriginDetailSummaryLabel"),":",E.lastAutomationSummary||o("conversation.butlerAnalysisEmpty")]}),E.waitingReason?s.jsxs("p",{children:[o("conversation.butlerOriginDetailWaitingReasonLabel"),":",E.waitingReason]}):null]}):s.jsx("p",{children:o("conversation.butlerAnalysisEmpty")})]}):null]}):s.jsx("span",{className:"message-origin-badge",children:o("conversation.butlerProxyMessageBadge")}):null;return s.jsx("article",{className:"message-item user-message","data-message-id":e.id,children:s.jsxs("div",{className:"message-content-wrapper",children:[s.jsx(mn,{sessionId:e.sessionId,attachments:e.attachments,attachmentPayloads:e.attachmentPayloads,inlineImages:x}),y?s.jsx(Mt,{content:y,className:"message-text message-content markdown-content"}):null,e.deliveryState==="failed"&&e.clientRequestId&&s.jsx("button",{className:"retry-button",type:"button",onClick:()=>a(e.clientRequestId),children:o("conversation.resendButton")}),s.jsx(ri,{timestamp:e.timestamp,leading:Q,children:s.jsx(Ke,{text:y,canCopy:i.canCopy,canFork:i.canFork&&!!(l&&e.deliveryState==="sent"),compact:!0,onFork:l?()=>l(e):null})})]})})}return v?s.jsxs("article",{className:"message-item assistant-message thinking-message-row","data-message-id":e.id,children:[s.jsx("div",{className:"message-avatar",children:c??s.jsx(Yn,{})}),s.jsxs("div",{className:"thinking-message-content",children:[s.jsx("div",{className:"thinking-message-label",children:o("conversation.thinkingLabel")}),s.jsx(mn,{sessionId:e.sessionId,attachments:e.attachments,attachmentPayloads:e.attachmentPayloads,inlineImages:x}),y&&s.jsx(Mt,{content:y,className:"message-text message-content markdown-content thinking-message-text"}),s.jsx(Ke,{text:y,canCopy:i.canCopy,canFork:i.canFork&&!!(l&&e.deliveryState==="sent"),onFork:l?()=>l(e):null})]})]}):p?s.jsxs("article",{className:"message-item assistant-message","data-message-id":e.id,children:[s.jsx("div",{className:"message-avatar",children:c??s.jsx(Yn,{})}),s.jsxs("div",{className:"message-content-wrapper",children:[s.jsx(mn,{sessionId:e.sessionId,attachments:e.attachments,attachmentPayloads:e.attachmentPayloads,inlineImages:x}),y&&s.jsx(Mt,{content:y,className:"message-text message-content markdown-content"}),s.jsx(Ke,{text:y,canCopy:i.canCopy,canFork:i.canFork&&!!(l&&e.deliveryState==="sent"),onFork:l?()=>l(e):null})]})]}):s.jsx("article",{className:"message-item system-message","data-message-id":e.id,children:s.jsxs("div",{className:"message-content-wrapper",children:[s.jsx(mn,{sessionId:e.sessionId,attachments:e.attachments,attachmentPayloads:e.attachmentPayloads,inlineImages:x}),y?s.jsx("div",{className:"message-text message-content",children:s.jsx(si,{language:"text",content:y})}):null,s.jsx(Ke,{text:y,canCopy:i.canCopy,canFork:i.canFork&&!!(l&&e.deliveryState==="sent"),onFork:l?()=>l(e):null})]})})}function Yn(){return s.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[s.jsx("circle",{cx:"12",cy:"12",r:"10"}),s.jsx("path",{d:"M12 16v-4M12 8h.01"})]})}function Kl(e){return typeof e=="string"&&e.startsWith("butler-follow-up:")}function Vl(e){switch(e){case"waiting_user":return o("shell.butlerAutomationStatusWaitingUser");case"completed":return o("shell.butlerAutomationStatusCompleted");case"failed":return o("shell.butlerAutomationStatusFailed");case"cancelled":return o("shell.butlerAutomationStatusCancelled");case"active":default:return o("shell.butlerAutomationStatusActive")}}function Zc({sessionId:e="session",messages:t,historyState:n,loadingOlderMessages:r=!1,hasOlderMessages:i=!1,onLoadOlderMessages:a=()=>{},onRetryMessage:l,onForkMessage:c,provider:m,interruptedSource:v=null,runtimeThinkingPlaceholder:p=null,assistantAvatar:b,followTailUpdates:f=!1}){var Se;const{showToast:C}=Wt(),y=qt(),x=!f,j=d.useRef(null);po(j);const M=d.useRef(e),S=d.useRef(0),P=d.useRef(null),F=d.useRef(!0),L=d.useRef(null),E=d.useRef(null),q=d.useRef(!1),W=d.useRef(f?null:dn(e)),Z=d.useRef(f?null:((Se=dn(e))==null?void 0:Se.lastMessageSignature)??null),z=d.useRef(f?null:dn(e)),Q=d.useRef(null),U=d.useRef(null),V=d.useRef(null),ie=d.useRef(0),de=d.useRef(!1),X=d.useRef(null),be=d.useRef(null),[jn,fe]=d.useState(!1),[Le,xe]=d.useState(!1),D=d.useRef(!1),Ie=Cl(t),Dt=y.isMobile?0:Va,Ye=d.useMemo(()=>Ml(t,m),[t,m]),Sn=d.useMemo(()=>Gl(t),[t]),Ce=n==="loading"&&t.length===0;function Je(g){const _=g.scrollHeight-g.clientHeight-g.scrollTop<=rr;return{scrollTop:g.scrollTop,stickToBottom:_,lastMessageSignature:D.current&&!_?Z.current:lt(t.at(-1)??null)}}function we(g){return z.current=Je(g),z.current}function oe(g){const T=g.scrollHeight-g.clientHeight-g.scrollTop,_=T<=rr;F.current=_,_&&D.current&&(te(),D.current=!1,Z.current=lt(t.at(-1)??null),xe(!1)),fe(t.length>0&&(T>ir||D.current)),we(g)}function mt(g=j.current){x&&(g&&we(g),z.current&&sr(e,z.current))}function Ft(g){x&&z.current&&sr(g,z.current)}function ee(){Q.current!==null&&(window.clearTimeout(Q.current),Q.current=null)}function Ut(){x&&(ee(),Q.current=window.setTimeout(()=>{Q.current=null,mt()},$a))}function je(g){g.scrollTop=g.scrollHeight}function Xe(){U.current!==null&&(window.clearTimeout(U.current),U.current=null)}function te(){Xe(),de.current=!1,V.current=null,ie.current=0,X.current=null}function ae(g,T){const _=Math.max(0,g.scrollHeight-g.clientHeight),le=Math.max(0,Math.min(T,_));X.current=le,g.scrollTop=le,F.current=!1,fe(t.length>0&&(_-le>ir||D.current))}function Ee(){Xe(),de.current&&(U.current=window.setTimeout(()=>{U.current=null;const g=j.current,T=V.current;if(!g||T===null){te();return}if(ae(g,T),Date.now()<ie.current){Ee();return}te(),oe(g)},Ka))}function zt(g,T){if(Dt<=0){ae(T,g),te();return}de.current=!0,V.current=g,ie.current=Date.now()+Dt,ae(T,g),Ee()}function ye(){de.current&&te()}function _e(g){return q.current||!i||r||n!=="ready"||g.scrollTop>za?!1:(q.current=!0,L.current=g.scrollHeight-g.scrollTop,E.current=lt(t[0]??null),a(),!0)}d.useEffect(()=>{n==="error"&&C({title:o("conversation.historyLoadFailed"),tone:"error"})},[n,C]),d.useLayoutEffect(()=>{var g,T;M.current!==e&&(Ft(M.current),M.current=e,S.current=0,P.current=null,W.current=f?null:dn(e),Z.current=((g=W.current)==null?void 0:g.lastMessageSignature)??null,z.current=W.current,F.current=f?!0:((T=W.current)==null?void 0:T.stickToBottom)??!0,L.current=null,E.current=null,te(),D.current=!1,xe(!1),fe(!1))},[f,x,e]),d.useLayoutEffect(()=>()=>{ee(),te(),Ft(M.current)},[x,e]),d.useLayoutEffect(()=>{const g=j.current,T=lt(t.at(-1)??null);if(!g){S.current=t.length,P.current=T;return}const _=S.current,le=P.current,K=W.current,ht=_===0||t.length!==_||T!==le;if(K&&n==="ready"){const Be=!K.stickToBottom&&K.lastMessageSignature!==null&&T!==null&&K.lastMessageSignature!==T;K.stickToBottom?(te(),je(g)):zt(K.scrollTop,g),D.current=Be,Z.current=K.lastMessageSignature,xe(Be),W.current=null,oe(g),S.current=t.length,P.current=T,we(g);return}if(K&&n==="error"){K.stickToBottom?(te(),je(g)):zt(K.scrollTop,g),W.current=null,oe(g),S.current=t.length,P.current=T,we(g);return}if(de.current){ae(g,V.current??g.scrollTop),S.current=t.length,P.current=T,we(g);return}const et=lt(t[0]??null),he=L.current,Ne=E.current,Nn=he!==null&&!r&&Ne!==null&&Ne!==et&&t.length>=_,Oe=ht&&(f||F.current);Nn?(g.scrollTop=Math.max(0,g.scrollHeight-he),L.current=null,E.current=null):(L.current!==null&&!r&&(L.current=null,E.current=null),Oe&&je(g)),oe(g),S.current=t.length,P.current=T},[n,r,t,e]),d.useEffect(()=>{if(!i){q.current=!1;return}!r&&L.current===null&&(q.current=!1)},[i,r,t.length]);function pt(){const g=j.current;if(g){if(de.current){const T=X.current;T!==null&&Math.abs(g.scrollTop-T)<=1?X.current=null:ye()}oe(g),Ut(),_e(g)}}function $t(g){if(g.deltaY!==0&&ye(),g.deltaY>=0)return;const T=j.current;T&&_e(T)}function ft(g){var T;ye(),be.current=((T=g.touches[0])==null?void 0:T.clientY)??null}function Ht(g){var K;const T=be.current,_=((K=g.touches[0])==null?void 0:K.clientY)??null;if(T===null||_===null||_-T<Ha)return;ye();const le=j.current;le&&_e(le)}function J(){be.current=null}return s.jsxs("section",{className:"message-timeline",children:[n==="loading"&&s.jsx("div",{className:"timeline-status",children:s.jsx("span",{className:"status-text",children:o("conversation.historyLoading")})}),s.jsxs("div",{ref:j,className:"message-list","data-scrollbar-autohide":"true",onScroll:pt,onPointerDown:ye,onWheel:$t,onTouchStart:ft,onTouchMove:Ht,onTouchEnd:J,onTouchCancel:J,children:[Ce?s.jsx(El,{}):null,r?s.jsx("div",{className:"timeline-status timeline-status-inline",children:s.jsx("span",{className:"status-text",children:o("conversation.historyLoadingOlder")})}):null,Ie.length===0&&n==="ready"&&s.jsx("div",{className:"timeline-empty",children:s.jsx("p",{className:"status-text",children:o("conversation.timelineEmpty")})}),Ie.map(g=>g.type==="tool_group"?s.jsx("article",{className:"message-item tool-message-row",children:s.jsx(Ol,{group:g.group})},g.key):s.jsx(Hl,{message:g.message,provider:m,foldedPromptKind:Ye.has(g.message.id)?"system_prompt":null,actionState:Sn.get(g.message.id)??{canCopy:g.message.role==="user",canFork:!1},onRetry:l,onForkMessage:c,interruptedSource:v,assistantAvatar:b},g.key)),p?s.jsx("div",{className:"timeline-status timeline-status-inline thinking-status-inline",children:s.jsxs("span",{className:"status-text thinking-status-text","aria-label":p,children:[s.jsx("span",{children:Fa(p)||p}),s.jsx("span",{className:"thinking-status-dots","aria-hidden":"true",children:"..."})]})}):null]}),jn?s.jsxs("button",{type:"button",className:"conversation-scroll-to-bottom-button","data-has-new":Le?"true":"false","aria-label":o("conversation.scrollToBottomAction"),title:o("conversation.scrollToBottomAction"),onClick:()=>{const g=j.current;g&&(te(),je(g),D.current=!1,Z.current=lt(t.at(-1)??null),xe(!1),oe(g),mt(g))},children:[Le?s.jsx("span",{className:"conversation-scroll-to-bottom-button-badge",children:"NEW"}):null,s.jsx("svg",{className:"conversation-scroll-to-bottom-button-icon",viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",children:s.jsx("path",{d:"M10 4.25a.75.75 0 0 1 .75.75v7.19l2.72-2.72a.75.75 0 1 1 1.06 1.06l-4 4a.75.75 0 0 1-1.06 0l-4-4a.75.75 0 1 1 1.06-1.06l2.72 2.72V5a.75.75 0 0 1 .75-.75Zm-4 11a.75.75 0 0 1 0-1.5h8a.75.75 0 0 1 0 1.5H6Z",fill:"currentColor"})})]}):null]})}function lt(e){return e?JSON.stringify({id:e.id,content:e.content,attachments:e.attachments,timestamp:e.timestamp,deliveryState:e.deliveryState,toolCall:e.toolCall?{status:e.toolCall.status,output:e.toolCall.output,error:e.toolCall.error}:null}):null}function Gl(e){const t=new Map;let n=0;function r(i){let a=null;for(let l=i-1;l>=n;l-=1){const c=e[l];if(!(!c||!Ql(c))){a=c.id;break}}for(let l=n;l<i;l+=1){const c=e[l];if(c){if(c.role==="user"){t.set(c.id,{canCopy:!0,canFork:!1});continue}t.set(c.id,{canCopy:c.id===a,canFork:c.id===a})}}}for(let i=0;i<e.length;i+=1){const a=e[i];a&&a.role==="user"&&i>n&&(r(i),n=i)}return r(e.length),t}function Ql(e){return e.role==="user"?!1:e.kind!=="tool_call"&&e.kind!=="tool_result"}function Yc({requests:e,replyingRequestId:t,onReply:n}){const[r,i]=d.useState({}),a=d.useMemo(()=>e.filter(l=>l.status==="pending"),[e]);return a.length===0?null:s.jsxs("section",{className:"permission-request-list",children:[s.jsxs("div",{className:"permission-request-list-header",children:[s.jsx("div",{children:s.jsx("strong",{children:o("conversation.permissionRequestSectionTitle")})}),s.jsx("span",{className:"permission-request-count",children:a.length})]}),s.jsx("div",{className:"permission-request-stack",children:a.map(l=>{var f,C;const c=r[l.id]??{},m=l.paths.filter(Boolean),v=l.kind==="command"&&!!((f=l.command)!=null&&f.trim()),p=l.questions.length===0&&m.length===0&&!v&&!!((C=l.summary)!=null&&C.trim()),b=l.kind==="user_input"&&l.questions.some(y=>{var x;return(((x=c[y.id])==null?void 0:x.filter(Boolean).length)??0)===0});return s.jsxs("article",{className:"permission-request-card",children:[s.jsxs("header",{className:"permission-request-card-header",children:[s.jsxs("div",{className:"permission-request-provider",children:[s.jsx("span",{className:"permission-request-provider-icon","aria-hidden":"true",children:s.jsx("img",{src:mo(l.provider),alt:"",loading:"lazy"})}),s.jsxs("div",{className:"permission-request-provider-copy",children:[s.jsx("strong",{children:l.title}),s.jsx("span",{children:Sr(l.provider,"full")})]})]}),s.jsx("span",{className:"permission-request-kind",children:Zl(l.kind)})]}),s.jsxs("div",{className:"permission-request-card-body",children:[m.length>0?s.jsx("div",{className:"permission-request-block",children:s.jsx("ul",{className:"permission-request-target-list",children:m.map(y=>s.jsxs("li",{className:"permission-request-target-item",children:[s.jsx("strong",{children:Yl(y)}),s.jsx("span",{children:y})]},`${l.id}:${y}`))})}):null,v?s.jsxs("div",{className:"permission-request-block",children:[s.jsx("div",{className:"permission-request-block-label",children:o("conversation.permissionRequestCommandLabel")}),s.jsx("pre",{children:l.command})]}):null,p?s.jsx("p",{className:"permission-request-summary",children:l.summary}):null,l.questions.length>0?s.jsxs("div",{className:"permission-request-block",children:[s.jsx("div",{className:"permission-request-block-label",children:o("conversation.permissionRequestQuestionsLabel")}),s.jsx("div",{className:"permission-request-question-list",children:l.questions.map(y=>s.jsxs("div",{className:"permission-request-question",children:[s.jsx("div",{className:"permission-request-question-header",children:y.header}),s.jsx("p",{children:y.question}),s.jsx("div",{className:"permission-request-question-options",children:y.options.map(x=>{var M;const j=((M=c[y.id])==null?void 0:M.includes(x.label))??!1;return s.jsxs("label",{className:"permission-request-question-option",children:[s.jsx("input",{type:"radio",name:`${l.id}:${y.id}`,checked:j,onChange:()=>{i(S=>({...S,[l.id]:{...S[l.id]??{},[y.id]:[x.label]}}))}}),s.jsxs("span",{children:[s.jsx("strong",{children:x.label}),x.description?s.jsx("small",{children:x.description}):null]})]},`${y.id}:${x.label}`)})})]},y.id))})]}):null]}),s.jsx("footer",{className:"permission-request-card-footer",children:l.actions.map(y=>s.jsx("button",{type:"button",className:`permission-request-action permission-request-action-${y.tone}`,disabled:t===l.id||y.value==="submit"&&b,onClick:()=>void n(l.id,{action:y.value,answers:Object.keys(c).length>0?c:void 0}),children:t===l.id?o("conversation.permissionRequestSubmitting"):y.label},`${l.id}:${y.value}`))})]},l.id)})})]})}function Zl(e){return e==="command"?o("conversation.permissionRequestKindCommand"):e==="file_change"?o("conversation.permissionRequestKindFileChange"):e==="permissions"?o("conversation.permissionRequestKindPermissions"):e==="user_input"?o("conversation.permissionRequestKindUserInput"):o("conversation.permissionRequestKindToolCall")}function Yl(e){return e.split(/[/\\]+/).filter(Boolean).at(-1)??e}class Jc{constructor(t){ce(this,"socket",null);ce(this,"disposed",!1);ce(this,"authRecoveryInFlight",!1);ce(this,"latestCursor");ce(this,"subscribed",!1);ce(this,"pendingOlderRequest",null);ce(this,"inFlightOlderRequest",null);ce(this,"subscribeStartedAtMs",null);ce(this,"firstBackfillLogged",!1);ce(this,"olderRequestStartedAtMs",null);ce(this,"connectionManager");this.options=t,this.latestCursor=t.cursor,this.connectionManager=new ho({onReconnect:n=>{this.connect(n)},onStateChange:t.onConnectionChange})}start(){this.connectionManager.start()}updateCursor(t){this.latestCursor=t}reconnectNow(){this.connectionManager.reconnectNow()}requestOlderMessages(t,n){return Jl(this.socket)?this.subscribed?(this.sendOlderMessagesRequest(t,n),!0):(this.pendingOlderRequest={cursor:t,limit:n},!0):!1}close(){var t;this.disposed=!0,this.subscribed=!1,this.pendingOlderRequest=null,this.inFlightOlderRequest=null,this.connectionManager.close(),(t=this.socket)==null||t.close(),this.socket=null}connect(t){var m;if(this.disposed)return;t&&this.socket&&(this.socket.close(),this.socket=null);const n=(m=qs.getState().session)==null?void 0:m.accessToken;if(!n){this.options.onUnauthorized();return}const r=Gi(),i=Qi(r),a=i.baseUrl,l=`${Zi("/ws",a)}?access_token=${encodeURIComponent(n)}`,c=i.transport.createWebSocket({path:"/ws",baseUrl:a,url:l});this.subscribed=!1,this.firstBackfillLogged=!1,this.socket=c,c.addEventListener("open",()=>{this.subscribeStartedAtMs=performance.now(),c.send(JSON.stringify({type:"session.subscribe",sessionId:this.options.sessionId,cursor:this.latestCursor,limit:this.options.limit})),jt("session.subscribe.sent",{sessionId:this.options.sessionId,hasCursor:this.latestCursor!==null,limit:this.options.limit,baseUrl:a})}),c.addEventListener("message",v=>{if(!(v instanceof MessageEvent)||typeof v.data!="string")return;const p=JSON.parse(v.data);if(p.type==="system.connected"){this.connectionManager.markConnected();return}if(p.type==="session.subscribed"){this.subscribed=!0,jt("session.subscribe.ack",{sessionId:p.sessionId,durationMs:Jn(this.subscribeStartedAtMs)}),this.options.onSubscribed(),this.flushPendingOlderRequest();return}if(p.type==="session.error"){if(this.clearOlderMessagesRequest(),p.error_code==="UNAUTHORIZED"){this.handleUnauthorized();return}this.options.onError(p);return}if(p.type==="session.runtime_status"){this.options.onRuntimeStatus(p);return}if(p.type==="session.activity"){this.options.onActivity(p);return}if(p.type==="session.history_older"){jt("session.history_older.received",{sessionId:p.sessionId,messageCount:p.messages.length,olderCursor:p.olderCursor,durationMs:Jn(this.olderRequestStartedAtMs)}),this.olderRequestStartedAtMs=null,this.clearOlderMessagesRequest(),this.options.onOlderHistory(p);return}if(p.type==="session.runtime_message"){this.options.onRuntimeMessage(p);return}if(p.type==="session.runtime_error"){this.options.onRuntimeError(p);return}if(p.type==="session.interrupted"){this.options.onInterrupted(p);return}if(p.type==="session.permission_request"){this.options.onPermissionRequest(p);return}if(p.type==="session.permission_request_resolved"){this.options.onPermissionRequestResolved(p);return}this.latestCursor=p.cursor,this.firstBackfillLogged||(this.firstBackfillLogged=!0,jt("session.initial_messages.received",{sessionId:p.sessionId,eventType:p.type,messageCount:p.messages.length,olderCursor:p.olderCursor??null,durationMs:Jn(this.subscribeStartedAtMs)})),this.options.onEnvelope(p)}),c.addEventListener("close",()=>{this.disposed||this.socket!==c||(this.subscribed=!1,this.requeueInFlightOlderRequest(),this.connectionManager.markDisconnected())}),c.addEventListener("error",()=>{this.disposed||this.socket!==c||this.connectionManager.markTransientFailure()})}handleUnauthorized(){if(this.authRecoveryInFlight||this.disposed)return;this.authRecoveryInFlight=!0,this.subscribed=!1,this.requeueInFlightOlderRequest();const t=this.socket;this.socket=null,t==null||t.close(),qs.refresh().then(n=>{if(this.authRecoveryInFlight=!1,!this.disposed){if(n.status==="refreshed"){this.connectionManager.reconnectNow();return}if(n.status==="deferred"){this.connectionManager.markDisconnected();return}this.options.onUnauthorized()}})}sendOlderMessagesRequest(t,n){var r;this.inFlightOlderRequest={cursor:t,limit:n},this.olderRequestStartedAtMs=performance.now(),(r=this.socket)==null||r.send(JSON.stringify({type:"session.load_older",sessionId:this.options.sessionId,cursor:t,limit:n})),jt("session.load_older.sent",{sessionId:this.options.sessionId,hasCursor:t!==null,limit:n})}flushPendingOlderRequest(){if(!this.pendingOlderRequest)return;const t=this.pendingOlderRequest;this.pendingOlderRequest=null,this.sendOlderMessagesRequest(t.cursor,t.limit)}clearOlderMessagesRequest(){this.pendingOlderRequest=null,this.inFlightOlderRequest=null}requeueInFlightOlderRequest(){this.inFlightOlderRequest&&(this.pendingOlderRequest=this.inFlightOlderRequest,this.inFlightOlderRequest=null,this.olderRequestStartedAtMs=null)}}function Jn(e){return e===null||typeof performance>"u"?null:Math.round(performance.now()-e)}function Jl(e){return e!==null&&e.readyState===1}const Xl=3*1e3,ss=120*1e3,ec=8,tc=/\[\[CODINGNS_IMAGE_ATTACHMENTS\]\][\s\S]*?\[\[\/CODINGNS_IMAGE_ATTACHMENTS\]\]/g,nc=/\[\[CODINGNS_IMAGE_ATTACHMENTS\]\][\s\S]*?\[\[\/CODINGNS_IMAGE_ATTACHMENTS\]\]/;function Xc(e){return{session:(e==null?void 0:e.session)??null,capabilities:(e==null?void 0:e.capabilities)??null,runtimeHasActiveRun:(e==null?void 0:e.runtimeHasActiveRun)??null,runtimeCanInterrupt:(e==null?void 0:e.runtimeCanInterrupt)??null,contextUsage:(e==null?void 0:e.contextUsage)??null,messages:(e==null?void 0:e.messages)??[],permissionRequests:(e==null?void 0:e.permissionRequests)??[],queuedMessages:(e==null?void 0:e.queuedMessages)??[],historyState:"idle",loadingOlderMessages:!1,olderCursor:(e==null?void 0:e.olderCursor)??null,hasOlderMessages:(e==null?void 0:e.hasOlderMessages)??!1,connectionState:"closed",lastCursor:(e==null?void 0:e.lastCursor)??null,pagesLoaded:(e==null?void 0:e.pagesLoaded)??0,interruptSource:(e==null?void 0:e.interruptSource)??null,errorCode:null,errorDetail:null}}function ii(e,t,n="sent",r=null){const i=t.kind??(t.role==="tool"?"tool_result":"text"),a=t.toolCall??(i==="tool_call"||i==="tool_result"?{callId:t.rawRef||t.messageId,name:"tool",input:i==="tool_call"?t.content:"",output:i==="tool_result"&&t.content?t.content:null,error:null,status:i==="tool_call"?"running":"completed"}:null);return{id:t.messageId,sessionId:e,role:t.role,kind:i,content:Rc(t.provider,t.role,i,t.content),toolCall:a,attachments:t.attachments??[],attachmentPayloads:null,origin:t.origin??null,originRef:t.originRef??null,timestamp:t.timestamp,sequence:t.sequence,rawRef:t.rawRef,deliveryState:n,clientRequestId:r}}function eu(e,t,n,r=[],i=[],a=Number.MAX_SAFE_INTEGER){return{id:`pending-${n}`,sessionId:e,role:"user",kind:"text",content:t,toolCall:null,attachments:r,attachmentPayloads:i,origin:null,originRef:null,timestamp:new Date().toISOString(),sequence:a,rawRef:`pending://${n}`,deliveryState:"sending",clientRequestId:n}}function tu(e,t){return ps([...e,t])}function nu(e,t,n){const r=new Map,i=new Set;for(const a of e)r.set(a.id,a),i.add(a.id);for(const a of n){const l=ii(t,a),c=Ec(r,l);if(c&&c!==l.id)continue;const m=Ic(r,l);m&&m!==l.id&&r.delete(m);const v=_c(r,i,l);if(v&&v!==l.id){const f=r.get(v)??null;if(f){const C=br(f,l);Hs("session.messages.codex_equivalent_replace",{sessionId:t,previous:ct(f),incoming:ct(l),merged:ct(C)}),r.delete(v),r.set(a.messageId,C);continue}}const p=Oc(r,l);if(p&&p!==l.id){const f=r.get(p)??null;if(f){const C=bc(f,l);Hs("session.messages.opencode_equivalent_replace",{sessionId:t,previous:ct(f),incoming:ct(l),merged:ct(C)}),r.set(p,C);continue}}const b=r.get(a.messageId)??null;r.set(a.messageId,b?br(b,l):l)}return ps(Array.from(r.values()))}function su(e,t,n,r){const i=r===null?null:e.find(m=>m.clientRequestId===r)??null,a=e.filter(m=>m.clientRequestId!==r),l=ii(t,n,"sent",r),c=vc(l,i);return ps([...a.filter(m=>m.id!==c.id),c])}function ru(e,t){return e.map(n=>n.clientRequestId===t?{...n,deliveryState:"failed"}:n)}function sc(e){const t=[];for(const n of e){const r=t.at(-1);if(!r||!xc(r,n)){t.push(n);continue}t[t.length-1]=wc(r,n)}return t}function rc(e){const t=[];let n=null,r=!1;for(const i of e)if(!yc(n,i,r)){if(t.push(i),Ot(i)){n=i,r=!1;continue}n&&kc(i)&&(r=!0)}return t}function ic(e){const t=[];for(const n of e){const r=t.at(-1);if(!r||!li(r,n)){t.push(n);continue}t[t.length-1]=ci(r,n)}return t}function oc(e){const t=[];for(const n of e){if(t.push(n),t.length<4)continue;const r=t[t.length-4],i=t[t.length-3],a=t[t.length-2],l=t[t.length-1];Cc(r,i,a,l)&&t.splice(t.length-3,3,ci(i,l))}return t}function ac(e){const t=[];for(const n of e){const r=t.at(-1);if(!r||!jc(r,n)){t.push(n);continue}t[t.length-1]=Nc(r,n)}return t}function lc(e){const t=[];for(const n of e){const r=t.findIndex(i=>Sc(i,n));if(r===-1){t.push(n);continue}t[r]=Mc(t[r],n)}return t}function ps(e){const t=[...e].sort((n,r)=>oi(n,r));return lc(ac(rc(oc(ic(sc(t))))))}function oi(e,t){if(e.sequence!==t.sequence)return e.sequence-t.sequence;const n=cc(e.rawRef,t.rawRef);if(n!==0)return n;const r=e.timestamp.localeCompare(t.timestamp);if(r!==0)return r;const i=uc(e.rawRef,t.rawRef);if(i!==0)return i;const a=gc(e.role,t.role);if(a!==0)return a;const l=e.rawRef.localeCompare(t.rawRef);return l!==0?l:e.id.localeCompare(t.id)}function cc(e,t){const n=hc(e,t);if(n!==null&&n!==0)return n;const r=dc(e,t);if(r!==null&&r!==0)return r;const i=gr(e),a=gr(t);if(!i&&!a||!i||!a)return 0;const l=Math.max(i.length,a.length);for(let c=0;c<l;c+=1){const m=i[c],v=a[c];if(m===void 0&&v===void 0)return 0;if(m===void 0)return-1;if(v===void 0)return 1;if(m!==v)return m-v}return 0}function uc(e,t){const n=rs(e),r=rs(t);return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function rs(e){const t=e.match(/(?:^|[?#&])line=(\d+)(?:$|[&#])/);if(!t)return null;const n=Number.parseInt(t[1]??"",10);return Number.isFinite(n)?n:null}function dc(e,t){const n=hr(e),r=hr(t);if(!n||!r||n!==r)return null;const i=_t(e,"part"),a=_t(t,"part");return i===null||a===null?null:i-a}function hr(e){const t=e.match(/^(.+\/message\/[^/?#]+)\/part\/[^/?#]+(?:[?#].*)?$/i);return(t==null?void 0:t[1])??null}function gr(e){const t=rs(e);if(t!==null){const i=_t(e,"part");return i===null?[t]:[t,i]}const n=mc(e);if(n)return n;const r=pc(e);return r||null}function mc(e){const t=_t(e,"index");if(t===null)return null;const n=_t(e,"part");return n===null?[t]:[t,n]}function _t(e,t){const n=e.match(new RegExp(`(?:^|[?#&])${t}=(\\d+)(?:$|[&#])`));if(!n)return null;const r=Number.parseInt(n[1]??"",10);return Number.isFinite(r)?r:null}function pc(e){const t=e.match(/\/message\/(user|assistant|tool)-(\d+)\/part\/([a-z_]+)-(\d+)/i);if(!t)return null;const n=fc(t[1]??""),r=Number.parseInt(t[2]??"",10),i=Tt(t[3]??""),a=Number.parseInt(t[4]??"",10);return!Number.isFinite(r)||!Number.isFinite(a)?null:[r,n,i,a]}function fc(e){switch(e.toLowerCase()){case"user":return 0;case"assistant":return 1;case"tool":return 2;default:return 3}}function Tt(e){switch(e.toLowerCase()){case"reasoning":case"thinking":return 0;case"text":return 1;case"tool":case"tool_call":case"tool_result":return 2;default:return 3}}function hc(e,t){const n="claude-code://message/";if(!e.startsWith(n)||!t.startsWith(n))return null;let r="",i="";try{r=decodeURIComponent(e.slice(n.length)),i=decodeURIComponent(t.slice(n.length))}catch{return null}const a=r.match(/^message:(assistant|user):([^:]+):type:(thinking|text)$/i),l=i.match(/^message:(assistant|user):([^:]+):type:(thinking|text)$/i);if(a&&l){const j=a[1]??"",M=l[1]??"",S=a[2]??"",P=l[2]??"";return j!==M||S!==P?0:Tt(a[3]??"")-Tt(l[3]??"")}const c=r.match(/^message:(assistant|user):([^:]+):part:(\d+):type:([a-z_]+)$/i),m=i.match(/^message:(assistant|user):([^:]+):part:(\d+):type:([a-z_]+)$/i);if(!c||!m)return null;const v=c[1]??"",p=m[1]??"",b=c[2]??"",f=m[2]??"";if(v!==p||b!==f)return 0;const C=Number.parseInt(c[3]??"",10),y=Number.parseInt(m[3]??"",10);if(!Number.isFinite(C)||!Number.isFinite(y))return null;const x=C-y;return x!==0?x:Tt(c[4]??"")-Tt(m[4]??"")}function gc(e,t){return vr(e)-vr(t)}function vr(e){switch(e){case"user":return 0;case"assistant":return 1;case"tool":return 2;case"system":default:return 3}}function vc(e,t){if(!t)return e;const n=e.attachments??[];return{...e,attachments:n.length>0?n:t.attachments??[],attachmentPayloads:t.attachmentPayloads??null}}function br(e,t){if(e.id!==t.id)return t;if(e.role!==t.role||e.kind!==t.kind)return Qe(e,t);const n=ui(e.toolCall,t.toolCall),r=di(e.content,t.content,e.timestamp,t.timestamp),i=mi(e.attachments,t.attachments),a=fi(e,t);return{...Qe(e,t),content:r,toolCall:n,attachments:i,attachmentPayloads:e.attachmentPayloads??t.attachmentPayloads??null,rawRef:a.rawRef,timestamp:a.timestamp,sequence:a.sequence}}function bc(e,t){if(e.role!==t.role||e.kind!==t.kind)return{...Qe(e,t),id:e.id,clientRequestId:e.clientRequestId??t.clientRequestId};const n=ui(e.toolCall,t.toolCall),r=di(e.content,t.content,e.timestamp,t.timestamp),i=mi(e.attachments,t.attachments),a=fi(e,t);return{...Qe(e,t),id:e.id,content:r,toolCall:n,attachments:i,attachmentPayloads:e.attachmentPayloads??t.attachmentPayloads??null,rawRef:a.rawRef,timestamp:a.timestamp,sequence:a.sequence,clientRequestId:e.clientRequestId??t.clientRequestId}}function xc(e,t){return ai(e,t,Xl)}function ai(e,t,n){if(e.deliveryState!=="sent"||t.deliveryState!=="sent"||!e.rawRef.startsWith("codex://")||!t.rawRef.startsWith("codex://")||e.role!==t.role||e.kind!==t.kind||e.toolCall!==null||t.toolCall!==null||e.kind!=="text"&&e.kind!=="thinking")return!1;const r=dt(e.content),i=dt(t.content);return Ze(e.timestamp,t.timestamp,n)&&I(r.text)===I(i.text)&&Lc(r.inlineImages,i.inlineImages)}function yc(e,t,n){return!e||n||!Ot(e)||!Ot(t)?!1:Ze(e.timestamp,t.timestamp,120*1e3)&&I(e.content)===I(t.content)}function Ot(e){return e.deliveryState==="sent"&&e.rawRef.startsWith("opencode://")&&e.role==="user"&&e.kind==="text"}function is(e){return e.deliveryState==="sent"&&e.rawRef.startsWith("opencode://")&&e.role==="assistant"&&(e.kind==="text"||e.kind==="thinking")}function kc(e){return is(e)&&e.kind==="text"}function li(e,t){return is(e)&&is(t)&&e.kind===t.kind&&Ze(e.timestamp,t.timestamp,120*1e3)&&I(e.content)===I(t.content)}function Cc(e,t,n,r){return!e||!t||!n||!r||!Ot(e)||!Ot(n)?!1:li(t,r)&&Ze(e.timestamp,n.timestamp,120*1e3)&&I(e.content)===I(n.content)}function ci(e,t){var l,c;const n=((l=e.attachments)==null?void 0:l.length)??0,r=((c=t.attachments)==null?void 0:c.length)??0;if(n!==r)return n>r?e:t;const i=I(e.content).length,a=I(t.content).length;return i!==a?i>a?e:t:Qe(e,t)}function wc(e,t){var p,b;const n=((p=e.attachments)==null?void 0:p.length)??0,r=((b=t.attachments)==null?void 0:b.length)??0;if(n!==r)return n>r?e:t;const i=dt(e.content).inlineImages.length,a=dt(t.content).inlineImages.length;if(i!==a)return i>a?e:t;const l=e.content!==I(e.content),c=t.content!==I(t.content);if(l!==c)return l?t:e;const m=Bt(e.content),v=Bt(t.content);return m!==v?m?t:e:t}function jc(e,t){return!xr(e)||!xr(t)?!1:e.role===t.role&&Ze(e.timestamp,t.timestamp,120*1e3)&&I(e.content)===I(t.content)}function Sc(e,t){return!yr(e)||!yr(t)?!1:e.role===t.role&&Ze(e.timestamp,t.timestamp,120*1e3)&&I(e.content)===I(t.content)}function xr(e){return e.deliveryState==="sent"&&e.rawRef.startsWith("gemini://session/")&&e.kind==="text"&&e.toolCall===null&&(e.role==="user"||e.role==="assistant")}function yr(e){return e.deliveryState==="sent"&&e.rawRef.startsWith("kimi://session/")&&e.kind==="text"&&e.toolCall===null&&(e.role==="user"||e.role==="assistant")}function Nc(e,t){var m,v;const n=((m=e.attachments)==null?void 0:m.length)??0,r=((v=t.attachments)==null?void 0:v.length)??0;if(n!==r)return n>r?e:t;const i=I(e.content).length,a=I(t.content).length;if(i!==a)return i>a?e:t;const l=e.rawRef.includes("#file="),c=t.rawRef.includes("#file=");return l!==c?l?e:t:Qe(e,t)}function Mc(e,t){var m,v;const n=((m=e.attachments)==null?void 0:m.length)??0,r=((v=t.attachments)==null?void 0:v.length)??0;if(n!==r)return n>r?e:t;const i=I(e.content).length,a=I(t.content).length;if(i!==a)return i>a?e:t;const l=e.rawRef.includes("/context#"),c=t.rawRef.includes("/context#");return l!==c?l?e:t:Qe(e,t)}function ui(e,t){return e?t?{...Tc(e,t),input:pi(e.input,t.input),output:Cr(e.output,t.output),error:Cr(e.error,t.error)}:e:t}function Tc(e,t){const n=kr(e.status),r=kr(t.status);return r!==n?r>n?t:e:t}function kr(e){return e==="running"?0:1}function di(e,t,n,r){const i=I(e),a=I(t);if(i===a){const l=Pc(e,t);return l!==null?l:e.length>=t.length?e:t}return i.length>a.length&&i.includes(a)?e:a.length>i.length&&a.includes(i)||r.localeCompare(n)>=0?t:e}function mi(e,t){const n=(e==null?void 0:e.length)??0,r=(t==null?void 0:t.length)??0;return r!==n?r>n?t:e:t??e}function pi(e,t){return t.length>e.length?t:e}function Cr(e,t){return e===null?t:t===null?e:pi(e,t)}function Qe(e,t){return t.timestamp!==e.timestamp?t.timestamp.localeCompare(e.timestamp)>=0?t:e:t.sequence!==e.sequence?t.sequence>=e.sequence?t:e:t}function fi(e,t){return oi(e,t)<=0?e:t}function I(e){return Ac(e).replace(/\r\n/g,`
|
|
17
|
-
`).trimEnd()}function Rc(e,t,n,r){return e!=="claude-code"&&e!=="codex"||t!=="user"&&t!=="assistant"||n!=="text"&&n!=="thinking"?r:hi(r)}function Ac(e){return hi(e).replace(/\r\n/g,`
|
|
18
|
-
`).trimEnd()}function Bt(e){return nc.test(e)}function hi(e){return Bt(e)?e.replace(tc,"").replace(/[ \t]+\n/g,`
|
|
19
|
-
`).replace(/\n{3,}/g,`
|
|
20
|
-
|
|
21
|
-
`).trimEnd():e}function Pc(e,t){const n=Bt(e),r=Bt(t);return n===r?null:n?t:e}function Lc(e,t){return e.length===0||t.length===0?!0:e.length!==t.length?!1:e.every((n,r)=>{var i;return n.url===((i=t[r])==null?void 0:i.url)})}function Ic(e,t){return vi(t)?gi(e,t,"optimistic"):null}function Ec(e,t){return wn(t)?gi(e,t,"authoritative"):null}function _c(e,t,n){if(!os(n))return null;const r=Pe(n.timestamp);let i=null,a=Number.POSITIVE_INFINITY;for(const[l,c]of e.entries()){if(l===n.id||!t.has(l)||!Bc(c,n))continue;const m=Pe(c.timestamp),v=Math.abs(m-r),b=Math.abs(c.sequence-n.sequence)*ss+v;b<a&&(i=l,a=b)}return i}function Oc(e,t){if(!wr(t))return null;const n=jr(t.rawRef);if(n===null)return null;const r=Pe(t.timestamp);let i=null,a=Number.POSITIVE_INFINITY;for(const[l,c]of e.entries()){if(l===t.id||!wr(c)||c.role!==t.role||c.kind!==t.kind||jr(c.rawRef)!==n)continue;const v=Pe(c.timestamp),p=Math.abs(v-r),f=Math.abs(c.sequence-t.sequence)*6e4+p;f<a&&(i=l,a=f)}return i}function gi(e,t,n){const r=Pe(t.timestamp),i=I(t.content);let a=null,l=Number.POSITIVE_INFINITY;for(const[c,m]of e.entries()){if(!(n==="optimistic"?wn(m):vi(m))||I(m.content)!==i)continue;const p=Pe(m.timestamp),b=Math.abs(p-r);b>300*1e3||b<l&&(a=c,l=b)}return a}function os(e){return e.deliveryState==="sent"&&e.rawRef.startsWith("codex://")&&(e.role==="assistant"||e.role==="tool")}function wr(e){return e.deliveryState==="sent"&&e.rawRef.startsWith("opencode://")&&!wn(e)&&(e.role==="user"||e.role==="assistant"||e.role==="tool")}function jr(e){if(!e.startsWith("opencode://"))return null;const t=e.indexOf("#"),n=t>=0?e.slice(t):"",r=t>=0?e.slice(0,t):e,i=r.indexOf("?");if(i<0)return e;const a=r.slice(0,i),l=new URLSearchParams(r.slice(i+1));if(!l.has("part"))return e;l.delete("part");const c=l.toString();return`${a}${c?`?${c}`:""}${n}`}function Bc(e,t){return!os(e)||!os(t)||e.role!==t.role||e.kind!==t.kind||Math.abs(e.sequence-t.sequence)>ec||!Ze(e.timestamp,t.timestamp,ss)?!1:t.kind==="text"||t.kind==="thinking"?ai(e,t,ss):t.kind==="tool_call"||t.kind==="tool_result"?qc(e,t):!1}function qc(e,t){return e.deliveryState!=="sent"||t.deliveryState!=="sent"||!e.rawRef.startsWith("codex://")||!t.rawRef.startsWith("codex://")||e.role!=="tool"||t.role!=="tool"||e.kind!==t.kind||e.toolCall===null||t.toolCall===null?!1:e.toolCall.callId===t.toolCall.callId}function wn(e){return e.role!=="user"||e.kind!=="text"||e.deliveryState==="failed"?!1:e.rawRef.startsWith("pending://")||e.rawRef.startsWith("synthetic://")||e.rawRef.includes("#synthetic")}function vi(e){return e.role==="user"&&e.kind==="text"&&!wn(e)}function Pe(e){const t=Date.parse(e);return Number.isFinite(t)?t:0}function ct(e){var t;return{id:e.id,rawRef:e.rawRef,role:e.role,kind:e.kind,sequence:e.sequence,timestamp:e.timestamp,callId:((t=e.toolCall)==null?void 0:t.callId)??null,contentPreview:e.kind==="text"||e.kind==="thinking"?I(dt(e.content).text).slice(0,160):I(e.content).slice(0,160)}}function iu(e){return e.reduce((n,r)=>Number.isFinite(r.sequence)&&r.sequence>n?r.sequence:n,0)+1}function Ze(e,t,n){return Math.abs(Pe(e)-Pe(t))<=n}export{Kc as B,Qc as C,Gc as M,Yc as P,Jc as R,eu as a,ru as b,Xc as c,Zc as d,Vc as e,iu as g,tu as i,nu as m,dt as p,su as r,ii as t};
|