diff --git a/.github/workflows/ci-web.yml b/.github/workflows/ci-web.yml index 60e20361e43d..cafe5bdf6b5c 100644 --- a/.github/workflows/ci-web.yml +++ b/.github/workflows/ci-web.yml @@ -386,6 +386,7 @@ jobs: - name: Build and test Agent Session web resources run: | set -euo pipefail + bun install --cwd webviews --frozen-lockfile bun install --frozen-lockfile bun run agent-session-web:build bun run agent-session-web:test diff --git a/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Session/AcpmuxChatSessionModel.swift b/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Session/AcpmuxChatSessionModel.swift index 6141b1082edc..9c2c28f79a26 100644 --- a/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Session/AcpmuxChatSessionModel.swift +++ b/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Session/AcpmuxChatSessionModel.swift @@ -129,6 +129,15 @@ public final class AcpmuxChatSessionModel { } } + /// Returns the daemon's authenticated WebSocket endpoint for a direct web renderer. + /// The model still owns daemon startup and reconnect; the web view owns the ACP stream. + public func webSocketEndpoint() async throws -> AcpmuxWebSocketEndpoint { + guard let api else { + throw JSONRPCError(code: -32001, message: "acpmux is not connected") + } + return try await api.webSocketEndpoint() + } + /// Disconnects and stops reconnecting. public func stop() { connectionTask?.cancel() @@ -187,6 +196,17 @@ public final class AcpmuxChatSessionModel { try? await attach(newSessionId, api: api, resume: false) } + /// Records a session selected by a secondary client without attaching this model. + /// + /// The React renderer owns its own acpmux connection. This method keeps the panel's + /// persisted selection current while leaving the native model's connection untouched. + /// - Parameter sessionId: The acpmux session id to persist. + public func rememberSession(sessionId newSessionId: String) { + guard !newSessionId.isEmpty, newSessionId != sessionId else { return } + sessionId = newSessionId + onSessionIdChanged?(newSessionId) + } + /// Creates a session on `harness` and selects it. /// - Returns: The new session id, or `nil` when creation failed. @discardableResult @@ -346,6 +366,18 @@ public final class AcpmuxChatSessionModel { Task { try? await api.setModel(sessionId: sessionId, modelId: modelId) } } + /// Selects an ACP mode exposed by the active harness. + public func setMode(_ modeId: String) { + guard let api, let sessionId else { return } + Task { try? await api.setMode(sessionId: sessionId, modeId: modeId) } + } + + /// Changes a harness configuration option, such as reasoning effort. + public func setConfigOption(id: String, value: JSONValue) { + guard let api, let sessionId else { return } + Task { try? await api.setConfigOption(sessionId: sessionId, configId: id, value: value) } + } + /// Replaces the transcript with `records`, for DEBUG performance measurements only. public func debugReplaceTranscript(with records: [AcpmuxEventRecord]) { reducer = TranscriptReducer() diff --git a/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Session/AcpmuxSessionAPI.swift b/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Session/AcpmuxSessionAPI.swift index 9131ab460bcc..d270014d1c71 100644 --- a/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Session/AcpmuxSessionAPI.swift +++ b/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Session/AcpmuxSessionAPI.swift @@ -3,6 +3,8 @@ import Foundation /// The acpmux requests the chat pane uses, as a seam so the session model can be tested /// against a fake daemon. public protocol AcpmuxSessionAPI: Sendable { + /// The authenticated loopback WebSocket endpoint for browser clients. + func webSocketEndpoint() async throws -> AcpmuxWebSocketEndpoint /// Daemon notifications. Finishes when the connection closes. var notifications: AsyncStream { get } /// `_acpmux/watch {enabled:true}`; returns the current session list. @@ -32,10 +34,39 @@ public protocol AcpmuxSessionAPI: Sendable { func harnessCatalog() async throws -> AcpmuxHarnessCatalog /// `session/set_model`. func setModel(sessionId: String, modelId: String) async throws + /// `session/set_mode`, when the harness exposes ACP modes. + func setMode(sessionId: String, modeId: String) async throws + /// `session/set_config_option`, used for reasoning effort and similar options. + func setConfigOption(sessionId: String, configId: String, value: JSONValue) async throws /// Closes the connection. func close() async } +/// A daemon WebSocket endpoint safe to hand to a local web view for one launch. +public struct AcpmuxWebSocketEndpoint: Sendable, Equatable, Codable { + public let endpoint: String + public let token: String + + public init(endpoint: String, token: String) { + self.endpoint = endpoint + self.token = token + } +} + +public extension AcpmuxSessionAPI { + func webSocketEndpoint() async throws -> AcpmuxWebSocketEndpoint { + throw JSONRPCError(code: -32601, message: "WebSocket endpoint is unavailable") + } + + func setMode(sessionId _: String, modeId _: String) async throws { + throw JSONRPCError(code: -32601, message: "session/set_mode is unavailable") + } + + func setConfigOption(sessionId _: String, configId _: String, value _: JSONValue) async throws { + throw JSONRPCError(code: -32601, message: "session/set_config_option is unavailable") + } +} + /// ``AcpmuxSessionAPI`` over a live ``JSONRPCClient``. public struct AcpmuxRPCSessionAPI: AcpmuxSessionAPI { private let client: JSONRPCClient @@ -47,6 +78,23 @@ public struct AcpmuxRPCSessionAPI: AcpmuxSessionAPI { public var notifications: AsyncStream { client.notifications } + public func webSocketEndpoint() async throws -> AcpmuxWebSocketEndpoint { + let status = try await client.request("_acpmux/status", params: [String: String](), as: StatusResult.self) + guard let webURL = status.webURL, + var components = URLComponents(string: webURL), + let token = components.queryItems?.first(where: { $0.name == "token" })?.value, + !token.isEmpty, + let scheme = components.scheme else { + throw JSONRPCError(code: -32001, message: "acpmux did not publish an authenticated WebSocket endpoint") + } + components.scheme = scheme == "https" ? "wss" : "ws" + components.queryItems = components.queryItems?.filter { $0.name != "token" } + guard let endpoint = components.url?.absoluteString else { + throw JSONRPCError(code: -32001, message: "acpmux published an invalid WebSocket endpoint") + } + return AcpmuxWebSocketEndpoint(endpoint: endpoint, token: token) + } + /// Sends `initialize`. public func initialize(clientName: String, version: String) async throws { _ = try await client.request("initialize", params: InitializeParams( @@ -142,6 +190,18 @@ public struct AcpmuxRPCSessionAPI: AcpmuxSessionAPI { _ = try await client.request("session/set_model", params: ["sessionId": sessionId, "modelId": modelId]) } + public func setMode(sessionId: String, modeId: String) async throws { + _ = try await client.request("session/set_mode", params: ["sessionId": sessionId, "modeId": modeId]) + } + + public func setConfigOption(sessionId: String, configId: String, value: JSONValue) async throws { + _ = try await client.request("session/set_config_option", params: JSONValue.object([ + "sessionId": .string(sessionId), + "configId": .string(configId), + "value": value, + ])) + } + public func close() async { await client.close() } @@ -168,6 +228,11 @@ public struct AcpmuxRPCSessionAPI: AcpmuxSessionAPI { var sessions: [AcpmuxSessionSummary] } + private struct StatusResult: Decodable, Sendable { + var webURL: String? + enum CodingKeys: String, CodingKey { case webURL = "webUrl" } + } + private struct EventsResult: Decodable, Sendable { var events: [AcpmuxEventRecord] var hasMore: Bool? diff --git a/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Web/AcpmuxWebBridgeProtocol.swift b/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Web/AcpmuxWebBridgeProtocol.swift new file mode 100644 index 000000000000..89ea2f5991ed --- /dev/null +++ b/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Web/AcpmuxWebBridgeProtocol.swift @@ -0,0 +1,32 @@ +import Foundation + +/// Versioned host messages for the direct React acpmux client. +public struct AcpmuxWebBridgeProtocol { + public let version: Int + + public init(version: Int = 1) { + self.version = version + } +} + +/// Configuration returned by the host after the page is ready. The daemon bearer +/// token is handed to this local web-view launch and is never persisted by Swift. +public struct AcpmuxWebHostHandshake: Codable, Sendable, Equatable { + public let protocolVersion: Int + public let transport: String + public let endpoint: String + public let token: String + public let sessionId: String? + public let newSessionHarness: String? + public let workingDirectory: String? + + public init(endpoint: String, token: String, sessionId: String?, newSessionHarness: String? = nil, workingDirectory: String? = nil) { + protocolVersion = AcpmuxWebBridgeProtocol().version + transport = "acpmux-websocket" + self.endpoint = endpoint + self.token = token + self.sessionId = sessionId + self.newSessionHarness = newSessionHarness + self.workingDirectory = workingDirectory + } +} diff --git a/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Wire/AcpmuxSessionSummary.swift b/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Wire/AcpmuxSessionSummary.swift index 59a0f8e96bfc..dc1e47f9fdf7 100644 --- a/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Wire/AcpmuxSessionSummary.swift +++ b/Packages/macOS/CmuxAcpmux/Sources/CmuxAcpmux/Wire/AcpmuxSessionSummary.swift @@ -43,6 +43,10 @@ public struct AcpmuxSessionSummary: Sendable, Hashable, Codable, Identifiable { public var model: String? /// The reasoning effort. public var effort: String? + /// Harness configuration choices returned by attach, such as effort. + public var configOptions: [AcpmuxConfigOption]? + /// Mode choices and the selected mode returned by attach. + public var modes: AcpmuxModeCatalog? /// Whether output arrived while nobody was attached. public var unread: Bool? /// The peer daemon name for remote sessions. @@ -70,6 +74,44 @@ public struct AcpmuxSessionSummary: Sendable, Hashable, Codable, Identifiable { public var isWorking: Bool { status == "running" || status == "waiting" || turn != nil } } +/// A selectable session configuration option. +public struct AcpmuxConfigOption: Sendable, Hashable, Codable, Identifiable { + /// Stable config id passed to `session/set_config_option`. + public var id: String + /// Display name. + public var name: String? + /// Harness category, such as `thought_level`. + public var category: String? + /// Current value. + public var currentValue: String? + /// Available values. + public var options: [Value] + + public struct Value: Sendable, Hashable, Codable, Identifiable { + /// Display name. + public var name: String? + /// Value passed back to acpmux. + public var value: String + /// Stable value id. + public var id: String { value } + } +} + +/// ACP modes exposed by a harness. +public struct AcpmuxModeCatalog: Sendable, Hashable, Codable { + /// Modes exposed by the harness. + public var availableModes: [Mode] + /// Current mode id. + public var currentModeId: String? + + public struct Mode: Sendable, Hashable, Codable, Identifiable { + /// Stable mode id. + public var id: String + /// Display name. + public var name: String? + } +} + /// The running turn attached to a session summary. public struct AcpmuxRunningTurn: Sendable, Hashable, Codable { /// Turn start time in Unix milliseconds. diff --git a/Packages/macOS/CmuxAcpmux/Tests/CmuxAcpmuxTests/AcpmuxWebBridgeProtocolTests.swift b/Packages/macOS/CmuxAcpmux/Tests/CmuxAcpmuxTests/AcpmuxWebBridgeProtocolTests.swift new file mode 100644 index 000000000000..cba8b0e3af93 --- /dev/null +++ b/Packages/macOS/CmuxAcpmux/Tests/CmuxAcpmuxTests/AcpmuxWebBridgeProtocolTests.swift @@ -0,0 +1,18 @@ +import CmuxAcpmux +import Foundation +import Testing + +@Suite struct AcpmuxWebBridgeProtocolTests { + @Test func handshakeRoundTrips() throws { + let handshake = AcpmuxWebHostHandshake( + endpoint: "ws://127.0.0.1:47811", + token: "launch-token", + sessionId: "session-1" + ) + let encoded = try JSONEncoder().encode(handshake) + let decoded = try JSONDecoder().decode(AcpmuxWebHostHandshake.self, from: encoded) + #expect(decoded == handshake) + #expect(decoded.protocolVersion == 1) + #expect(decoded.transport == "acpmux-websocket") + } +} diff --git a/Packages/macOS/CmuxAcpmux/WebBridgeREADME.md b/Packages/macOS/CmuxAcpmux/WebBridgeREADME.md new file mode 100644 index 000000000000..cfb6de3f198d --- /dev/null +++ b/Packages/macOS/CmuxAcpmux/WebBridgeREADME.md @@ -0,0 +1,5 @@ +# Acpmux web bridge v1 + +`AcpmuxWebBridgeProtocol.swift` defines the small versioned host contract between Swift and the React pane. Swift starts or finds acpmux, then returns its authenticated loopback WebSocket endpoint, a per-launch bearer token, and the selected session id. React connects directly to acpmux, sends `_acpmux/attach {eventStream: true}`, resumes with `afterSeq`, pages older records through `_acpmux/events {beforeSeq}`, folds event records into rows, and sends ACP and `_acpmux/*` actions. Swift remains the WKWebView host and owns native-only actions; acpmux owns session state and business logic. + +The React preview at `webviews/src/agent-session/acpmux-preview` uses recordings of the same acpmux event stream with a mock host handshake. The daemon WebSocket listener supports query-token authentication, so Safari/WKWebView can connect without setting an Authorization header. diff --git a/Packages/macOS/CmuxFoundation/Sources/CmuxFoundation/ConfigValidation/CmuxConfigSchema.generated.swift b/Packages/macOS/CmuxFoundation/Sources/CmuxFoundation/ConfigValidation/CmuxConfigSchema.generated.swift index a7c9f6fc9219..54c7c9314cc1 100644 --- a/Packages/macOS/CmuxFoundation/Sources/CmuxFoundation/ConfigValidation/CmuxConfigSchema.generated.swift +++ b/Packages/macOS/CmuxFoundation/Sources/CmuxFoundation/ConfigValidation/CmuxConfigSchema.generated.swift @@ -566,6 +566,21 @@ enum CmuxEmbeddedConfigSchema { "default": "automatic", "description": "Dock and app switcher icon style." }, + "agentSession": { + "x-cmux-scopes": ["global"], + "title": "agentSession", + "type": "object", + "additionalProperties": false, + "description": "Agent session pane renderer settings.", + "properties": { + "renderer": { + "type": "string", + "enum": ["native", "typescript"], + "default": "native", + "description": "Renderer for new agent session panes. TypeScript uses the React web renderer over the acpmux bridge." + } + } + }, "windowTitleTemplate": { "type": "string", "default": "", diff --git a/Packages/macOS/CmuxSettings/Sources/CmuxSettings/Keys/AppCatalogSection.swift b/Packages/macOS/CmuxSettings/Sources/CmuxSettings/Keys/AppCatalogSection.swift index e709c632696b..ce1e866db2e1 100644 --- a/Packages/macOS/CmuxSettings/Sources/CmuxSettings/Keys/AppCatalogSection.swift +++ b/Packages/macOS/CmuxSettings/Sources/CmuxSettings/Keys/AppCatalogSection.swift @@ -3,6 +3,11 @@ import Foundation /// Settings under the dotted-id prefix `app.*` — user-facing app behavior. public struct AppCatalogSection: SettingCatalogSection { + /// Renderer used for newly opened acpmux agent-session panes. + public let agentSessionRenderer = JSONKey( + id: "app.agentSession.renderer", + defaultValue: "native" + ) public let appearance = DefaultsKey( id: "app.appearance", defaultValue: .system, diff --git a/Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Resources/Localizable.xcstrings b/Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Resources/Localizable.xcstrings index 7130c6b4c47d..b772aa860367 100644 --- a/Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Resources/Localizable.xcstrings +++ b/Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Resources/Localizable.xcstrings @@ -7212,6 +7212,221 @@ } } } + }, + "settings.agentSession.renderer": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Agent Session Renderer" + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Renderer für Agentensitzungen" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Rendu de session agent" + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "عارض جلسة الوكيل" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Renderizador de sesiones de agente" + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "代理工作階段轉譯器" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "代理会话渲染器" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "에이전트 세션 렌더러" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "エージェントセッションレンダラー" + } + } + + } + }, + "settings.agentSession.renderer.native": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Native" + } + }, + "de": { + "stringUnit": { "state": "translated", "value": "Nativ" } + }, + "fr": { + "stringUnit": { "state": "translated", "value": "Natif" } + }, + "ar": { + "stringUnit": { "state": "translated", "value": "أصلي" } + }, + "es": { + "stringUnit": { "state": "translated", "value": "Nativo" } + }, + "zh-Hant": { + "stringUnit": { "state": "translated", "value": "原生" } + }, + "zh-Hans": { + "stringUnit": { "state": "translated", "value": "原生" } + }, + "ko": { + "stringUnit": { "state": "translated", "value": "네이티브" } + }, + "ja": { + "stringUnit": { "state": "translated", "value": "ネイティブ" } + } + } + }, + "settings.agentSession.renderer.subtitle": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose the native pane or the TypeScript React renderer for new agent sessions." + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Wählen Sie für neue Agentensitzungen den nativen Bereich oder den TypeScript-React-Renderer." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez le panneau natif ou le rendu TypeScript React pour les nouvelles sessions agent." + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "اختر اللوحة الأصلية أو عارض TypeScript React لجلسات الوكلاء الجديدة." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige el panel nativo o el renderizador TypeScript React para nuevas sesiones de agente." + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "為新的代理工作階段選擇原生窗格或 TypeScript React 轉譯器。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "为新的代理会话选择原生窗格或 TypeScript React 渲染器。" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "새 에이전트 세션에 네이티브 창 또는 TypeScript React 렌더러를 선택합니다." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "新しいエージェントセッションでネイティブペインまたはTypeScript Reactレンダラーを選択します。" + } + } + + } + }, + "settings.agentSession.renderer.typescript": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "TypeScript (React)" + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "TypeScript (React)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "TypeScript (React)" + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "TypeScript (React)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "TypeScript (React)" + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "TypeScript (React)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "TypeScript (React)" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "TypeScript (React)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "TypeScript (React)" + } + } + + } } }, "version": "1.0" diff --git a/Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Scene/SettingsWindowScene+Sections.swift b/Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Scene/SettingsWindowScene+Sections.swift index e5faccbe9441..126f00a20726 100644 --- a/Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Scene/SettingsWindowScene+Sections.swift +++ b/Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Scene/SettingsWindowScene+Sections.swift @@ -34,8 +34,10 @@ extension SettingsWindowRoot { slot(.app, proxy: proxy) { AppSection( defaultsStore: defaultsStore, + jsonStore: jsonStore, catalog: catalog, hostActions: hostActions, + errorLog: runtime.errorLog, soundAgentCache: soundAgentCache ) } diff --git a/Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Sections/AppSection.swift b/Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Sections/AppSection.swift index 3a8d67ccb4e7..4ff1f093981f 100644 --- a/Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Sections/AppSection.swift +++ b/Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Sections/AppSection.swift @@ -18,6 +18,8 @@ import SwiftUI public struct AppSection: View { private let catalog: SettingCatalog private let defaultsStore: UserDefaultsSettingsStore + private let jsonStore: JSONConfigStore + private let errorLog: SettingsErrorLog private let hostActions: SettingsHostActions // Every bound value-model lives here as view state, constructed once @@ -36,6 +38,7 @@ public struct AppSection: View { @State private var preferredEditor: DefaultsValueModel @State private var openSupported: DefaultsValueModel @State private var openMarkdown: DefaultsValueModel + @State private var agentSessionRenderer: JSONValueModel @State private var globalFontMagnification: DefaultsValueModel @State private var markdownFontSize: DefaultsValueModel @State private var markdownFontFamily: DefaultsValueModel @@ -86,12 +89,16 @@ public struct AppSection: View { public init( defaultsStore: UserDefaultsSettingsStore, + jsonStore: JSONConfigStore, catalog: SettingCatalog, hostActions: SettingsHostActions, + errorLog: SettingsErrorLog, soundAgentCache: NotificationSoundAgentCache = NotificationSoundAgentCache() ) { self.catalog = catalog self.defaultsStore = defaultsStore + self.jsonStore = jsonStore + self.errorLog = errorLog self.hostActions = hostActions self.soundAgentCache = soundAgentCache _language = State(initialValue: DefaultsValueModel(store: defaultsStore, key: catalog.app.language)) @@ -107,6 +114,7 @@ public struct AppSection: View { _preferredEditor = State(initialValue: DefaultsValueModel(store: defaultsStore, key: catalog.app.preferredEditor)) _openSupported = State(initialValue: DefaultsValueModel(store: defaultsStore, key: catalog.app.openSupportedFilesInCmux)) _openMarkdown = State(initialValue: DefaultsValueModel(store: defaultsStore, key: catalog.app.openMarkdownInCmuxViewer)) + _agentSessionRenderer = State(initialValue: JSONValueModel(store: jsonStore, key: catalog.app.agentSessionRenderer, errorLog: errorLog)) _globalFontMagnification = State(initialValue: DefaultsValueModel(store: defaultsStore, key: catalog.app.globalFontMagnification)) _markdownFontSize = State(initialValue: DefaultsValueModel(store: defaultsStore, key: catalog.markdown.fontSize)) _markdownFontFamily = State(initialValue: DefaultsValueModel(store: defaultsStore, key: catalog.markdown.fontFamily)) @@ -170,7 +178,7 @@ public struct AppSection: View { AppChannelSwitchCard(hostActions: hostActions) } .task { - startSettingsObservation([language, appIcon, placement, inheritDir, minimalMode, keepWorkspaceOpen, firstClick, focusHistoryIncludesPanesAndTabs, equalizeSplitsOnCreate, fileDrop, preferredEditor, openSupported, openMarkdown, globalFontMagnification, markdownFontSize, markdownFontFamily, markdownMaxWidth, canvasPaneGap, canvasSnapping, fileEditorWordWrap, fileEditorSyntaxHighlighting, fileEditorLineNumbers, fileEditorIndentGuides, fileEditorCurrentLineHighlight, fileEditorTabWidth, iMessage, reorder, dockBadge, menuBarOnly, showInMenuBar, paneRing, paneFlash, desktopNotifications, agentPermissionPrompt, agentTurnComplete, agentIdleReminder, soundName, soundWhenFocused, soundCommand, customSoundFile, soundOverrides, telemetry, confirmQuit, warnCloseTab, warnCloseX, warnCloseWorkspace, warnCloseWindow, hideCloseButton, renameSelects, paletteAllSurfaces]) + startSettingsObservation([language, appIcon, placement, inheritDir, minimalMode, keepWorkspaceOpen, firstClick, focusHistoryIncludesPanesAndTabs, equalizeSplitsOnCreate, fileDrop, preferredEditor, openSupported, openMarkdown, agentSessionRenderer, globalFontMagnification, markdownFontSize, markdownFontFamily, markdownMaxWidth, canvasPaneGap, canvasSnapping, fileEditorWordWrap, fileEditorSyntaxHighlighting, fileEditorLineNumbers, fileEditorIndentGuides, fileEditorCurrentLineHighlight, fileEditorTabWidth, iMessage, reorder, dockBadge, menuBarOnly, showInMenuBar, paneRing, paneFlash, desktopNotifications, agentPermissionPrompt, agentTurnComplete, agentIdleReminder, soundName, soundWhenFocused, soundCommand, customSoundFile, soundOverrides, telemetry, confirmQuit, warnCloseTab, warnCloseX, warnCloseWorkspace, warnCloseWindow, hideCloseButton, renameSelects, paletteAllSurfaces]) await soundAgentCache.loadIfNeeded { await hostActions.notificationSoundAgentOptions() } if languageAtAppear == nil { languageAtAppear = language.current }; if telemetryAtAppear == nil { telemetryAtAppear = telemetry.current } } @@ -431,6 +439,21 @@ public struct AppSection: View { } SettingsCardDivider() + SettingsCardRow( + configurationReview: .json("app.agentSession.renderer"), + String(localized: "settings.agentSession.renderer", defaultValue: "Agent Session Renderer"), + subtitle: String(localized: "settings.agentSession.renderer.subtitle", defaultValue: "Choose the native pane or the TypeScript React renderer for new agent sessions."), + controlWidth: Self.columnWidth + ) { + Picker("", selection: Binding(get: { agentSessionRenderer.current }, set: { agentSessionRenderer.set($0) })) { + Text(String(localized: "settings.agentSession.renderer.native", defaultValue: "Native")).tag("native") + Text(String(localized: "settings.agentSession.renderer.typescript", defaultValue: "TypeScript (React)")).tag("typescript") + } + .labelsHidden() + .controlSize(.small) + } + SettingsCardDivider() + // Markdown Viewer Font Size SettingsCardRow( configurationReview: .json("markdown.fontSize"), diff --git a/Resources/Localizable.xcstrings b/Resources/Localizable.xcstrings index cb591c3ab15a..5b0b1a21414a 100644 --- a/Resources/Localizable.xcstrings +++ b/Resources/Localizable.xcstrings @@ -588647,6 +588647,126 @@ } } } + }, + "agentSession.renderer.native": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Native" + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "Nativ" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Natif" + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "أصلي" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Nativo" + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "原生" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "原生" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "네이티브" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ネイティブ" + } + } + + } + }, + "agentSession.renderer.typescript": { + "extractionState": "manual", + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "TypeScript" + } + }, + "de": { + "stringUnit": { + "state": "translated", + "value": "TypeScript" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "TypeScript" + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "TypeScript" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "TypeScript" + } + }, + "zh-Hant": { + "stringUnit": { + "state": "translated", + "value": "TypeScript" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "TypeScript" + } + }, + "ko": { + "stringUnit": { + "state": "translated", + "value": "TypeScript" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "TypeScript" + } + } + + } } }, "version": "1.0" diff --git a/Resources/acpmux-agent-session/assets/app.js b/Resources/acpmux-agent-session/assets/app.js new file mode 100644 index 000000000000..7699341eb961 --- /dev/null +++ b/Resources/acpmux-agent-session/assets/app.js @@ -0,0 +1,129 @@ +var gx=Object.create;var xo=Object.defineProperty;var Sx=Object.getOwnPropertyDescriptor;var yx=Object.getOwnPropertyNames;var vx=Object.getPrototypeOf,Ax=Object.prototype.hasOwnProperty;var Se=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var bx=(t,e,n,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of yx(e))!Ax.call(t,i)&&i!==n&&xo(t,i,{get:()=>e[i],enumerable:!(l=Sx(e,i))||l.enumerable});return t};var tl=(t,e,n)=>(n=t!=null?gx(vx(t)):{},bx(e||!t||!t.__esModule?xo(n,"default",{value:t,enumerable:!0}):n,t));var Eo=Se(st=>{"use strict";function ns(t,e){var n=t.length;t.push(e);t:for(;0>>1,i=t[l];if(0>>1;loa(s,n))coa(r,s)?(t[l]=r,t[c]=n,l=c):(t[l]=s,t[u]=n,l=u);else if(coa(r,n))t[l]=r,t[c]=n,l=c;else break t}}return e}function oa(t,e){var n=t.sortIndex-e.sortIndex;return n!==0?n:t.id-e.id}st.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(mo=performance,st.unstable_now=function(){return mo.now()}):(Pu=Date,po=Pu.now(),st.unstable_now=function(){return Pu.now()-po});var mo,Pu,po,Fe=[],We=[],Nx=1,ee=null,Ft=3,ls=!1,ei=!1,ni=!1,is=!1,yo=typeof setTimeout=="function"?setTimeout:null,vo=typeof clearTimeout=="function"?clearTimeout:null,go=typeof setImmediate<"u"?setImmediate:null;function fa(t){for(var e=ye(We);e!==null;){if(e.callback===null)da(We);else if(e.startTime<=t)da(We),e.sortIndex=e.expirationTime,ns(Fe,e);else break;e=ye(We)}}function as(t){if(ni=!1,fa(t),!ei)if(ye(Fe)!==null)ei=!0,nl||(nl=!0,el());else{var e=ye(We);e!==null&&us(as,e.startTime-t)}}var nl=!1,li=-1,Ao=5,bo=-1;function No(){return is?!0:!(st.unstable_now()-bot&&No());){var l=ee.callback;if(typeof l=="function"){ee.callback=null,Ft=ee.priorityLevel;var i=l(ee.expirationTime<=t);if(t=st.unstable_now(),typeof i=="function"){ee.callback=i,fa(t),e=!0;break e}ee===ye(Fe)&&da(Fe),fa(t)}else da(Fe);ee=ye(Fe)}if(ee!==null)e=!0;else{var a=ye(We);a!==null&&us(as,a.startTime-t),e=!1}}break t}finally{ee=null,Ft=n,ls=!1}e=void 0}}finally{e?el():nl=!1}}}var el;typeof go=="function"?el=function(){go(ts)}:typeof MessageChannel<"u"?(es=new MessageChannel,So=es.port2,es.port1.onmessage=ts,el=function(){So.postMessage(null)}):el=function(){yo(ts,0)};var es,So;function us(t,e){li=yo(function(){t(st.unstable_now())},e)}st.unstable_IdlePriority=5;st.unstable_ImmediatePriority=1;st.unstable_LowPriority=4;st.unstable_NormalPriority=3;st.unstable_Profiling=null;st.unstable_UserBlockingPriority=2;st.unstable_cancelCallback=function(t){t.callback=null};st.unstable_forceFrameRate=function(t){0>t||125l?(t.sortIndex=n,ns(We,t),ye(Fe)===null&&t===ye(We)&&(ni?(vo(li),li=-1):ni=!0,us(as,n-l))):(t.sortIndex=i,ns(Fe,t),ei||ls||(ei=!0,nl||(nl=!0,el()))),t};st.unstable_shouldYield=No;st.unstable_wrapCallback=function(t){var e=Ft;return function(){var n=Ft;Ft=e;try{return t.apply(this,arguments)}finally{Ft=n}}}});var Co=Se(($y,Mo)=>{"use strict";Mo.exports=Eo()});var Lo=Se(_=>{"use strict";var rs=Symbol.for("react.transitional.element"),Ex=Symbol.for("react.portal"),Mx=Symbol.for("react.fragment"),Cx=Symbol.for("react.strict_mode"),Fx=Symbol.for("react.profiler"),Bx=Symbol.for("react.consumer"),Dx=Symbol.for("react.context"),Tx=Symbol.for("react.forward_ref"),kx=Symbol.for("react.suspense"),Ox=Symbol.for("react.memo"),ko=Symbol.for("react.lazy"),Rx=Symbol.for("react.activity"),Fo=Symbol.iterator;function zx(t){return t===null||typeof t!="object"?null:(t=Fo&&t[Fo]||t["@@iterator"],typeof t=="function"?t:null)}var Oo={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ro=Object.assign,zo={};function il(t,e,n){this.props=t,this.context=e,this.refs=zo,this.updater=n||Oo}il.prototype.isReactComponent={};il.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};il.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function wo(){}wo.prototype=il.prototype;function os(t,e,n){this.props=t,this.context=e,this.refs=zo,this.updater=n||Oo}var fs=os.prototype=new wo;fs.constructor=os;Ro(fs,il.prototype);fs.isPureReactComponent=!0;var Bo=Array.isArray;function cs(){}var lt={H:null,A:null,T:null,S:null},_o=Object.prototype.hasOwnProperty;function ds(t,e,n){var l=n.ref;return{$$typeof:rs,type:t,key:e,ref:l!==void 0?l:null,props:n}}function wx(t,e){return ds(t.type,e,t.props)}function hs(t){return typeof t=="object"&&t!==null&&t.$$typeof===rs}function _x(t){var e={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(n){return e[n]})}var Do=/\/+/g;function ss(t,e){return typeof t=="object"&&t!==null&&t.key!=null?_x(""+t.key):e.toString(36)}function Lx(t){switch(t.status){case"fulfilled":return t.value;case"rejected":throw t.reason;default:switch(typeof t.status=="string"?t.then(cs,cs):(t.status="pending",t.then(function(e){t.status==="pending"&&(t.status="fulfilled",t.value=e)},function(e){t.status==="pending"&&(t.status="rejected",t.reason=e)})),t.status){case"fulfilled":return t.value;case"rejected":throw t.reason}}throw t}function ll(t,e,n,l,i){var a=typeof t;(a==="undefined"||a==="boolean")&&(t=null);var u=!1;if(t===null)u=!0;else switch(a){case"bigint":case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case rs:case Ex:u=!0;break;case ko:return u=t._init,ll(u(t._payload),e,n,l,i)}}if(u)return i=i(t),u=l===""?"."+ss(t,0):l,Bo(i)?(n="",u!=null&&(n=u.replace(Do,"$&/")+"/"),ll(i,e,n,"",function(r){return r})):i!=null&&(hs(i)&&(i=wx(i,n+(i.key==null||t&&t.key===i.key?"":(""+i.key).replace(Do,"$&/")+"/")+u)),e.push(i)),1;u=0;var s=l===""?".":l+":";if(Bo(t))for(var c=0;c{"use strict";qo.exports=Lo()});var Ho=Se(Tt=>{"use strict";var Hx=xa();function Uo(t){var e="https://react.dev/errors/"+t;if(1{"use strict";function Go(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Go)}catch(t){console.error(t)}}Go(),Yo.exports=Ho()});var n1=Se(Hu=>{"use strict";var St=Co(),p0=xa(),jx=jo();function N(t){var e="https://react.dev/errors/"+t;if(1fl||(t.current=Is[fl],Is[fl]=null,fl--)}function nt(t,e){fl++,Is[fl]=t.current,t.current=e}var Ne=Ee(null),Ti=Ee(null),on=Ee(null),Ja=Ee(null);function Wa(t,e){switch(nt(on,e),nt(Ti,t),nt(Ne,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?Pf(t):0;break;default:if(t=e.tagName,e=e.namespaceURI)e=Pf(e),t=Yh(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}At(Ne),nt(Ne,t)}function Dl(){At(Ne),At(Ti),At(on)}function Ps(t){t.memoizedState!==null&&nt(Ja,t);var e=Ne.current,n=Yh(e,t.type);e!==n&&(nt(Ti,t),nt(Ne,n))}function $a(t){Ti.current===t&&(At(Ne),At(Ti)),Ja.current===t&&(At(Ja),Gi._currentValue=zn)}var xs,Zo;function Tn(t){if(xs===void 0)try{throw Error()}catch(n){var e=n.stack.trim().match(/\n( *(at )?)/);xs=e&&e[1]||"",Zo=-1)":-1i||c[l]!==r[i]){var f=` +`+c[l].replace(" at new "," at ");return t.displayName&&f.includes("")&&(f=f.replace("",t.displayName)),f}while(1<=l&&0<=i);break}}}finally{ms=!1,Error.prepareStackTrace=n}return(n=t?t.displayName||t.name:"")?Tn(n):""}function Kx(t,e){switch(t.tag){case 26:case 27:case 5:return Tn(t.type);case 16:return Tn("Lazy");case 13:return t.child!==e&&e!==null?Tn("Suspense Fallback"):Tn("Suspense");case 19:return Tn("SuspenseList");case 0:case 15:return ps(t.type,!1);case 11:return ps(t.type.render,!1);case 1:return ps(t.type,!0);case 31:return Tn("Activity");default:return""}}function Vo(t){try{var e="",n=null;do e+=Kx(t,n),n=t,t=t.return;while(t);return e}catch(l){return` +Error generating stack: `+l.message+` +`+l.stack}}var tc=Object.prototype.hasOwnProperty,Qc=St.unstable_scheduleCallback,gs=St.unstable_cancelCallback,Jx=St.unstable_shouldYield,Wx=St.unstable_requestPaint,Jt=St.unstable_now,$x=St.unstable_getCurrentPriorityLevel,N0=St.unstable_ImmediatePriority,E0=St.unstable_UserBlockingPriority,Ia=St.unstable_NormalPriority,Ix=St.unstable_LowPriority,M0=St.unstable_IdlePriority,Px=St.log,tm=St.unstable_setDisableYieldValue,Xi=null,Wt=null;function an(t){if(typeof Px=="function"&&tm(t),Wt&&typeof Wt.setStrictMode=="function")try{Wt.setStrictMode(Xi,t)}catch{}}var $t=Math.clz32?Math.clz32:lm,em=Math.log,nm=Math.LN2;function lm(t){return t>>>=0,t===0?32:31-(em(t)/nm|0)|0}var ga=256,Sa=262144,ya=4194304;function kn(t){var e=t&42;if(e!==0)return e;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Eu(t,e,n){var l=t.pendingLanes;if(l===0)return 0;var i=0,a=t.suspendedLanes,u=t.pingedLanes;t=t.warmLanes;var s=l&134217727;return s!==0?(l=s&~a,l!==0?i=kn(l):(u&=s,u!==0?i=kn(u):n||(n=s&~t,n!==0&&(i=kn(n))))):(s=l&~a,s!==0?i=kn(s):u!==0?i=kn(u):n||(n=l&~t,n!==0&&(i=kn(n)))),i===0?0:e!==0&&e!==i&&(e&a)===0&&(a=i&-i,n=e&-e,a>=n||a===32&&(n&4194048)!==0)?e:i}function Zi(t,e){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&e)===0}function im(t,e){switch(t){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function C0(){var t=ya;return ya<<=1,(ya&62914560)===0&&(ya=4194304),t}function Ss(t){for(var e=[],n=0;31>n;n++)e.push(t);return e}function Vi(t,e){t.pendingLanes|=e,e!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function am(t,e,n,l,i,a){var u=t.pendingLanes;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=n,t.entangledLanes&=n,t.errorRecoveryDisabledLanes&=n,t.shellSuspendCounter=0;var s=t.entanglements,c=t.expirationTimes,r=t.hiddenUpdates;for(n=u&~n;0"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var fm=/[\n"\\]/g;function ue(t){return t.replace(fm,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function lc(t,e,n,l,i,a,u,s){t.name="",u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"?t.type=u:t.removeAttribute("type"),e!=null?u==="number"?(e===0&&t.value===""||t.value!=e)&&(t.value=""+le(e)):t.value!==""+le(e)&&(t.value=""+le(e)):u!=="submit"&&u!=="reset"||t.removeAttribute("value"),e!=null?ic(t,u,le(e)):n!=null?ic(t,u,le(n)):l!=null&&t.removeAttribute("value"),i==null&&a!=null&&(t.defaultChecked=!!a),i!=null&&(t.checked=i&&typeof i!="function"&&typeof i!="symbol"),s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"?t.name=""+le(s):t.removeAttribute("name")}function w0(t,e,n,l,i,a,u,s){if(a!=null&&typeof a!="function"&&typeof a!="symbol"&&typeof a!="boolean"&&(t.type=a),e!=null||n!=null){if(!(a!=="submit"&&a!=="reset"||e!=null)){nc(t);return}n=n!=null?""+le(n):"",e=e!=null?""+le(e):n,s||e===t.value||(t.value=e),t.defaultValue=e}l=l??i,l=typeof l!="function"&&typeof l!="symbol"&&!!l,t.checked=s?t.checked:!!l,t.defaultChecked=!!l,u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(t.name=u),nc(t)}function ic(t,e,n){e==="number"&&Pa(t.ownerDocument)===t||t.defaultValue===""+n||(t.defaultValue=""+n)}function Nl(t,e,n,l){if(t=t.options,e){e={};for(var i=0;i"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),uc=!1;if(Ge)try{al={},Object.defineProperty(al,"passive",{get:function(){uc=!0}}),window.addEventListener("test",al,al),window.removeEventListener("test",al,al)}catch{uc=!1}var al,un=null,Wc=null,_a=null;function H0(){if(_a)return _a;var t,e=Wc,n=e.length,l,i="value"in un?un.value:un.textContent,a=i.length;for(t=0;t=gi),af=" ",uf=!1;function Y0(t,e){switch(t){case"keyup":return Um.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function j0(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var xl=!1;function Gm(t,e){switch(t){case"compositionend":return j0(e);case"keypress":return e.which!==32?null:(uf=!0,af);case"textInput":return t=e.data,t===af&&uf?null:t;default:return null}}function Ym(t,e){if(xl)return t==="compositionend"||!Ic&&Y0(t,e)?(t=H0(),_a=Wc=un=null,xl=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=l}t:{for(;n;){if(n.nextSibling){n=n.nextSibling;break t}n=n.parentNode}n=void 0}n=of(n)}}function V0(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?V0(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function K0(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var e=Pa(t.document);e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=Pa(t.document)}return e}function Pc(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}var Wm=Ge&&"documentMode"in document&&11>=document.documentMode,ml=null,sc=null,yi=null,cc=!1;function df(t,e,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;cc||ml==null||ml!==Pa(l)||(l=ml,"selectionStart"in l&&Pc(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),yi&&Ri(yi,l)||(yi=l,l=gu(sc,"onSelect"),0>=u,i-=u,ve=1<<32-$t(e)+i|n<M?(v=E,E=null):v=E.sibling;var y=o(m,E,g[M],p);if(y===null){E===null&&(E=v);break}t&&E&&y.alternate===null&&e(m,E),h=a(y,h,M),C===null?b=y:C.sibling=y,C=y,E=v}if(M===g.length)return n(m,E),Y&&Re(m,M),b;if(E===null){for(;MM?(v=E,E=null):v=E.sibling;var B=o(m,E,y.value,p);if(B===null){E===null&&(E=v);break}t&&E&&B.alternate===null&&e(m,E),h=a(B,h,M),C===null?b=B:C.sibling=B,C=B,E=v}if(y.done)return n(m,E),Y&&Re(m,M),b;if(E===null){for(;!y.done;M++,y=g.next())y=x(m,y.value,p),y!==null&&(h=a(y,h,M),C===null?b=y:C.sibling=y,C=y);return Y&&Re(m,M),b}for(E=l(E);!y.done;M++,y=g.next())y=d(E,m,M,y.value,p),y!==null&&(t&&y.alternate!==null&&E.delete(y.key===null?M:y.key),h=a(y,h,M),C===null?b=y:C.sibling=y,C=y);return t&&E.forEach(function(k){return e(m,k)}),Y&&Re(m,M),b}function F(m,h,g,p){if(typeof g=="object"&&g!==null&&g.type===ol&&g.key===null&&(g=g.props.children),typeof g=="object"&&g!==null){switch(g.$$typeof){case pa:t:{for(var b=g.key;h!==null;){if(h.key===b){if(b=g.type,b===ol){if(h.tag===7){n(m,h.sibling),p=i(h,g.props.children),p.return=m,m=p;break t}}else if(h.elementType===b||typeof b=="object"&&b!==null&&b.$$typeof===Ie&&On(b)===h.type){n(m,h.sibling),p=i(h,g.props),si(p,g),p.return=m,m=p;break t}n(m,h);break}else e(m,h);h=h.sibling}g.type===ol?(p=wn(g.props.children,m.mode,p,g.key),p.return=m,m=p):(p=qa(g.type,g.key,g.props,null,m.mode,p),si(p,g),p.return=m,m=p)}return u(m);case di:t:{for(b=g.key;h!==null;){if(h.key===b)if(h.tag===4&&h.stateNode.containerInfo===g.containerInfo&&h.stateNode.implementation===g.implementation){n(m,h.sibling),p=i(h,g.children||[]),p.return=m,m=p;break t}else{n(m,h);break}else e(m,h);h=h.sibling}p=Cs(g,m.mode,p),p.return=m,m=p}return u(m);case Ie:return g=On(g),F(m,h,g,p)}if(hi(g))return S(m,h,g,p);if(ai(g)){if(b=ai(g),typeof b!="function")throw Error(N(150));return g=b.call(g),A(m,h,g,p)}if(typeof g.then=="function")return F(m,h,Ma(g),p);if(g.$$typeof===we)return F(m,h,Ea(m,g),p);Ca(m,g)}return typeof g=="string"&&g!==""||typeof g=="number"||typeof g=="bigint"?(g=""+g,h!==null&&h.tag===6?(n(m,h.sibling),p=i(h,g),p.return=m,m=p):(n(m,h),p=Ms(g,m.mode,p),p.return=m,m=p),u(m)):n(m,h)}return function(m,h,g,p){try{_i=0;var b=F(m,h,g,p);return Cl=null,b}catch(E){if(E===jl||E===Tu)throw E;var C=Vt(29,E,null,m.mode);return C.lanes=p,C.return=m,C}}}var Gn=rd(!0),od=rd(!1),Pe=!1;function cr(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function mc(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function dn(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function hn(t,e,n){var l=t.updateQueue;if(l===null)return null;if(l=l.shared,(Z&2)!==0){var i=l.pending;return i===null?e.next=e:(e.next=i.next,i.next=e),l.pending=e,e=eu(t),ed(t,null,n),e}return Du(t,l,e,n),eu(t)}function Ai(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194048)!==0)){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,B0(t,n)}}function Bs(t,e){var n=t.updateQueue,l=t.alternate;if(l!==null&&(l=l.updateQueue,n===l)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var u={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=u:a=a.next=u,n=n.next}while(n!==null);a===null?i=a=e:a=a.next=e}else i=a=e;n={baseState:l.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:l.shared,callbacks:l.callbacks},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}var pc=!1;function bi(){if(pc){var t=Ml;if(t!==null)throw t}}function Ni(t,e,n,l){pc=!1;var i=t.updateQueue;Pe=!1;var a=i.firstBaseUpdate,u=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,r=c.next;c.next=null,u===null?a=r:u.next=r,u=c;var f=t.alternate;f!==null&&(f=f.updateQueue,s=f.lastBaseUpdate,s!==u&&(s===null?f.firstBaseUpdate=r:s.next=r,f.lastBaseUpdate=c))}if(a!==null){var x=i.baseState;u=0,f=r=c=null,s=a;do{var o=s.lane&-536870913,d=o!==s.lane;if(d?(G&o)===o:(l&o)===o){o!==0&&o===Ol&&(pc=!0),f!==null&&(f=f.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});t:{var S=t,A=s;o=e;var F=n;switch(A.tag){case 1:if(S=A.payload,typeof S=="function"){x=S.call(F,x,o);break t}x=S;break t;case 3:S.flags=S.flags&-65537|128;case 0:if(S=A.payload,o=typeof S=="function"?S.call(F,x,o):S,o==null)break t;x=ut({},x,o);break t;case 2:Pe=!0}}o=s.callback,o!==null&&(t.flags|=64,d&&(t.flags|=8192),d=i.callbacks,d===null?i.callbacks=[o]:d.push(o))}else d={lane:o,tag:s.tag,payload:s.payload,callback:s.callback,next:null},f===null?(r=f=d,c=x):f=f.next=d,u|=o;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;d=s,s=d.next,d.next=null,i.lastBaseUpdate=d,i.shared.pending=null}}while(!0);f===null&&(c=x),i.baseState=c,i.firstBaseUpdate=r,i.lastBaseUpdate=f,a===null&&(i.shared.lanes=0),bn|=u,t.lanes=u,t.memoizedState=x}}function fd(t,e){if(typeof t!="function")throw Error(N(191,t));t.call(e)}function dd(t,e){var n=t.callbacks;if(n!==null)for(t.callbacks=null,t=0;ta?a:8;var u=w.T,s={};w.T=s,Ar(t,!1,e,n);try{var c=i(),r=w.S;if(r!==null&&r(s,c),c!==null&&typeof c=="object"&&typeof c.then=="function"){var f=ap(c,l);Ei(t,e,f,It(t))}else Ei(t,e,l,It(t))}catch(x){Ei(t,e,{then:function(){},status:"rejected",reason:x},It())}finally{V.p=a,u!==null&&s.types!==null&&(u.types=s.types),w.T=u}}function fp(){}function Ac(t,e,n,l){if(t.tag!==5)throw Error(N(476));var i=Ld(t).queue;_d(t,i,e,zn,n===null?fp:function(){return qd(t),n(l)})}function Ld(t){var e=t.memoizedState;if(e!==null)return e;e={memoizedState:zn,baseState:zn,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:je,lastRenderedState:zn},next:null};var n={};return e.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:je,lastRenderedState:n},next:null},t.memoizedState=e,t=t.alternate,t!==null&&(t.memoizedState=e),e}function qd(t){var e=Ld(t);e.next===null&&(e=t.alternate.memoizedState),Ei(t,e.next.queue,{},It())}function vr(){return Mt(Gi)}function Ud(){return dt().memoizedState}function Hd(){return dt().memoizedState}function dp(t){for(var e=t.return;e!==null;){switch(e.tag){case 24:case 3:var n=It();t=dn(n);var l=hn(e,t,n);l!==null&&(Ut(l,e,n),Ai(l,e,n)),e={cache:ar()},t.payload=e;return}e=e.return}}function hp(t,e,n){var l=It();n={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},zu(t)?Yd(e,n):(n=er(t,e,n,l),n!==null&&(Ut(n,t,l),jd(n,e,l)))}function Gd(t,e,n){var l=It();Ei(t,e,n,l)}function Ei(t,e,n,l){var i={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(zu(t))Yd(e,i);else{var a=t.alternate;if(t.lanes===0&&(a===null||a.lanes===0)&&(a=e.lastRenderedReducer,a!==null))try{var u=e.lastRenderedState,s=a(u,n);if(i.hasEagerState=!0,i.eagerState=s,Pt(s,u))return Du(t,e,i,0),et===null&&Bu(),!1}catch{}if(n=er(t,e,i,l),n!==null)return Ut(n,t,l),jd(n,e,l),!0}return!1}function Ar(t,e,n,l){if(l={lane:2,revertLane:Tr(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},zu(t)){if(e)throw Error(N(479))}else e=er(t,n,l,2),e!==null&&Ut(e,t,2)}function zu(t){var e=t.alternate;return t===L||e!==null&&e===L}function Yd(t,e){Fl=su=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function jd(t,e,n){if((n&4194048)!==0){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,B0(t,n)}}var qi={readContext:Mt,use:Ou,useCallback:rt,useContext:rt,useEffect:rt,useImperativeHandle:rt,useLayoutEffect:rt,useInsertionEffect:rt,useMemo:rt,useReducer:rt,useRef:rt,useState:rt,useDebugValue:rt,useDeferredValue:rt,useTransition:rt,useSyncExternalStore:rt,useId:rt,useHostTransitionStatus:rt,useFormState:rt,useActionState:rt,useOptimistic:rt,useMemoCache:rt,useCacheRefresh:rt};qi.useEffectEvent=rt;var Qd={readContext:Mt,use:Ou,useCallback:function(t,e){return kt().memoizedState=[t,e===void 0?null:e],t},useContext:Mt,useEffect:Ff,useImperativeHandle:function(t,e,n){n=n!=null?n.concat([t]):null,Ga(4194308,4,kd.bind(null,e,t),n)},useLayoutEffect:function(t,e){return Ga(4194308,4,t,e)},useInsertionEffect:function(t,e){Ga(4,2,t,e)},useMemo:function(t,e){var n=kt();e=e===void 0?null:e;var l=t();if(Yn){an(!0);try{t()}finally{an(!1)}}return n.memoizedState=[l,e],l},useReducer:function(t,e,n){var l=kt();if(n!==void 0){var i=n(e);if(Yn){an(!0);try{n(e)}finally{an(!1)}}}else i=e;return l.memoizedState=l.baseState=i,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:i},l.queue=t,t=t.dispatch=hp.bind(null,L,t),[l.memoizedState,t]},useRef:function(t){var e=kt();return t={current:t},e.memoizedState=t},useState:function(t){t=yc(t);var e=t.queue,n=Gd.bind(null,L,e);return e.dispatch=n,[t.memoizedState,n]},useDebugValue:Sr,useDeferredValue:function(t,e){var n=kt();return yr(n,t,e)},useTransition:function(){var t=yc(!1);return t=_d.bind(null,L,t.queue,!0,!1),kt().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,e,n){var l=L,i=kt();if(Y){if(n===void 0)throw Error(N(407));n=n()}else{if(n=e(),et===null)throw Error(N(349));(G&127)!==0||gd(l,e,n)}i.memoizedState=n;var a={value:n,getSnapshot:e};return i.queue=a,Ff(yd.bind(null,l,a,t),[t]),l.flags|=2048,zl(9,{destroy:void 0},Sd.bind(null,l,a,n,e),null),n},useId:function(){var t=kt(),e=et.identifierPrefix;if(Y){var n=Ae,l=ve;n=(l&~(1<<32-$t(l)-1)).toString(32)+n,e="_"+e+"R_"+n,n=cu++,0<\/script>",a=a.removeChild(a.firstChild);break;case"select":a=typeof l.is=="string"?u.createElement("select",{is:l.is}):u.createElement("select"),l.multiple?a.multiple=!0:l.size&&(a.size=l.size);break;default:a=typeof l.is=="string"?u.createElement(i,{is:l.is}):u.createElement(i)}}a[Nt]=e,a[Ht]=l;t:for(u=e.child;u!==null;){if(u.tag===5||u.tag===6)a.appendChild(u.stateNode);else if(u.tag!==4&&u.tag!==27&&u.child!==null){u.child.return=u,u=u.child;continue}if(u===e)break t;for(;u.sibling===null;){if(u.return===null||u.return===e)break t;u=u.return}u.sibling.return=u.return,u=u.sibling}e.stateNode=a;t:switch(Ct(a,i,l),i){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break t;case"img":l=!0;break t;default:l=!1}l&&De(e)}}return it(e),_s(e,e.type,t===null?null:t.memoizedProps,e.pendingProps,n),null;case 6:if(t&&e.stateNode!=null)t.memoizedProps!==l&&De(e);else{if(typeof l!="string"&&e.stateNode===null)throw Error(N(166));if(t=on.current,ul(e)){if(t=e.stateNode,n=e.memoizedProps,l=null,i=Et,i!==null)switch(i.tag){case 27:case 5:l=i.memoizedProps}t[Nt]=e,t=!!(t.nodeValue===n||l!==null&&l.suppressHydrationWarning===!0||Gh(t.nodeValue,n)),t||vn(e,!0)}else t=Su(t).createTextNode(l),t[Nt]=e,e.stateNode=t}return it(e),null;case 31:if(n=e.memoizedState,t===null||t.memoizedState!==null){if(l=ul(e),n!==null){if(t===null){if(!l)throw Error(N(318));if(t=e.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(N(557));t[Nt]=e}else Un(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;it(e),t=!1}else n=Fs(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=n),t=!0;if(!t)return e.flags&256?(Zt(e),e):(Zt(e),null);if((e.flags&128)!==0)throw Error(N(558))}return it(e),null;case 13:if(l=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(i=ul(e),l!==null&&l.dehydrated!==null){if(t===null){if(!i)throw Error(N(318));if(i=e.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(N(317));i[Nt]=e}else Un(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;it(e),i=!1}else i=Fs(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=i),i=!0;if(!i)return e.flags&256?(Zt(e),e):(Zt(e),null)}return Zt(e),(e.flags&128)!==0?(e.lanes=n,e):(n=l!==null,t=t!==null&&t.memoizedState!==null,n&&(l=e.child,i=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(i=l.alternate.memoizedState.cachePool.pool),a=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(a=l.memoizedState.cachePool.pool),a!==i&&(l.flags|=2048)),n!==t&&n&&(e.child.flags|=8192),Fa(e,e.updateQueue),it(e),null);case 4:return Dl(),t===null&&kr(e.stateNode.containerInfo),it(e),null;case 10:return Ue(e.type),it(e),null;case 19:if(At(ft),l=e.memoizedState,l===null)return it(e),null;if(i=(e.flags&128)!==0,a=l.rendering,a===null)if(i)ci(l,!1);else{if(ot!==0||t!==null&&(t.flags&128)!==0)for(t=e.child;t!==null;){if(a=uu(t),a!==null){for(e.flags|=128,ci(l,!1),t=a.updateQueue,e.updateQueue=t,Fa(e,t),e.subtreeFlags=0,t=n,n=e.child;n!==null;)nd(n,t),n=n.sibling;return nt(ft,ft.current&1|2),Y&&Re(e,l.treeForkCount),e.child}t=t.sibling}l.tail!==null&&Jt()>du&&(e.flags|=128,i=!0,ci(l,!1),e.lanes=4194304)}else{if(!i)if(t=uu(a),t!==null){if(e.flags|=128,i=!0,t=t.updateQueue,e.updateQueue=t,Fa(e,t),ci(l,!0),l.tail===null&&l.tailMode==="hidden"&&!a.alternate&&!Y)return it(e),null}else 2*Jt()-l.renderingStartTime>du&&n!==536870912&&(e.flags|=128,i=!0,ci(l,!1),e.lanes=4194304);l.isBackwards?(a.sibling=e.child,e.child=a):(t=l.last,t!==null?t.sibling=a:e.child=a,l.last=a)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=Jt(),t.sibling=null,n=ft.current,nt(ft,i?n&1|2:n&1),Y&&Re(e,l.treeForkCount),t):(it(e),null);case 22:case 23:return Zt(e),rr(),l=e.memoizedState!==null,t!==null?t.memoizedState!==null!==l&&(e.flags|=8192):l&&(e.flags|=8192),l?(n&536870912)!==0&&(e.flags&128)===0&&(it(e),e.subtreeFlags&6&&(e.flags|=8192)):it(e),n=e.updateQueue,n!==null&&Fa(e,n.retryQueue),n=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),l=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),l!==n&&(e.flags|=2048),t!==null&&At(_n),null;case 24:return n=null,t!==null&&(n=t.memoizedState.cache),e.memoizedState.cache!==n&&(e.flags|=2048),Ue(mt),it(e),null;case 25:return null;case 30:return null}throw Error(N(156,e.tag))}function Sp(t,e){switch(ir(e),e.tag){case 1:return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return Ue(mt),Dl(),t=e.flags,(t&65536)!==0&&(t&128)===0?(e.flags=t&-65537|128,e):null;case 26:case 27:case 5:return $a(e),null;case 31:if(e.memoizedState!==null){if(Zt(e),e.alternate===null)throw Error(N(340));Un()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 13:if(Zt(e),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(N(340));Un()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return At(ft),null;case 4:return Dl(),null;case 10:return Ue(e.type),null;case 22:case 23:return Zt(e),rr(),t!==null&&At(_n),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 24:return Ue(mt),null;case 25:return null;default:return null}}function nh(t,e){switch(ir(e),e.tag){case 3:Ue(mt),Dl();break;case 26:case 27:case 5:$a(e);break;case 4:Dl();break;case 31:e.memoizedState!==null&&Zt(e);break;case 13:Zt(e);break;case 19:At(ft);break;case 10:Ue(e.type);break;case 22:case 23:Zt(e),rr(),t!==null&&At(_n);break;case 24:Ue(mt)}}function Ii(t,e){try{var n=e.updateQueue,l=n!==null?n.lastEffect:null;if(l!==null){var i=l.next;n=i;do{if((n.tag&t)===t){l=void 0;var a=n.create,u=n.inst;l=a(),u.destroy=l}n=n.next}while(n!==i)}}catch(s){W(e,e.return,s)}}function An(t,e,n){try{var l=e.updateQueue,i=l!==null?l.lastEffect:null;if(i!==null){var a=i.next;l=a;do{if((l.tag&t)===t){var u=l.inst,s=u.destroy;if(s!==void 0){u.destroy=void 0,i=e;var c=n,r=s;try{r()}catch(f){W(i,c,f)}}}l=l.next}while(l!==a)}}catch(f){W(e,e.return,f)}}function lh(t){var e=t.updateQueue;if(e!==null){var n=t.stateNode;try{dd(e,n)}catch(l){W(t,t.return,l)}}}function ih(t,e,n){n.props=jn(t.type,t.memoizedProps),n.state=t.memoizedState;try{n.componentWillUnmount()}catch(l){W(t,e,l)}}function Mi(t,e){try{var n=t.ref;if(n!==null){switch(t.tag){case 26:case 27:case 5:var l=t.stateNode;break;case 30:l=t.stateNode;break;default:l=t.stateNode}typeof n=="function"?t.refCleanup=n(l):n.current=l}}catch(i){W(t,e,i)}}function be(t,e){var n=t.ref,l=t.refCleanup;if(n!==null)if(typeof l=="function")try{l()}catch(i){W(t,e,i)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(i){W(t,e,i)}else n.current=null}function ah(t){var e=t.type,n=t.memoizedProps,l=t.stateNode;try{t:switch(e){case"button":case"input":case"select":case"textarea":n.autoFocus&&l.focus();break t;case"img":n.src?l.src=n.src:n.srcSet&&(l.srcset=n.srcSet)}}catch(i){W(t,t.return,i)}}function Ls(t,e,n){try{var l=t.stateNode;qp(l,t.type,n,e),l[Ht]=e}catch(i){W(t,t.return,i)}}function uh(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&En(t.type)||t.tag===4}function qs(t){t:for(;;){for(;t.sibling===null;){if(t.return===null||uh(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&En(t.type)||t.flags&2||t.child===null||t.tag===4)continue t;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Cc(t,e,n){var l=t.tag;if(l===5||l===6)t=t.stateNode,e?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(t,e):(e=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,e.appendChild(t),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=_e));else if(l!==4&&(l===27&&En(t.type)&&(n=t.stateNode,e=null),t=t.child,t!==null))for(Cc(t,e,n),t=t.sibling;t!==null;)Cc(t,e,n),t=t.sibling}function fu(t,e,n){var l=t.tag;if(l===5||l===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(l!==4&&(l===27&&En(t.type)&&(n=t.stateNode),t=t.child,t!==null))for(fu(t,e,n),t=t.sibling;t!==null;)fu(t,e,n),t=t.sibling}function sh(t){var e=t.stateNode,n=t.memoizedProps;try{for(var l=t.type,i=e.attributes;i.length;)e.removeAttributeNode(i[0]);Ct(e,l,n),e[Nt]=t,e[Ht]=n}catch(a){W(t,t.return,a)}}var ze=!1,xt=!1,Us=!1,Hf=typeof WeakSet=="function"?WeakSet:Set,yt=null;function yp(t,e){if(t=t.containerInfo,Rc=bu,t=K0(t),Pc(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else t:{n=(n=t.ownerDocument)&&n.defaultView||window;var l=n.getSelection&&n.getSelection();if(l&&l.rangeCount!==0){n=l.anchorNode;var i=l.anchorOffset,a=l.focusNode;l=l.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break t}var u=0,s=-1,c=-1,r=0,f=0,x=t,o=null;e:for(;;){for(var d;x!==n||i!==0&&x.nodeType!==3||(s=u+i),x!==a||l!==0&&x.nodeType!==3||(c=u+l),x.nodeType===3&&(u+=x.nodeValue.length),(d=x.firstChild)!==null;)o=x,x=d;for(;;){if(x===t)break e;if(o===n&&++r===i&&(s=u),o===a&&++f===l&&(c=u),(d=x.nextSibling)!==null)break;x=o,o=x.parentNode}x=d}n=s===-1||c===-1?null:{start:s,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(zc={focusedElem:t,selectionRange:n},bu=!1,yt=e;yt!==null;)if(e=yt,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,yt=t;else for(;yt!==null;){switch(e=yt,a=e.alternate,t=e.flags,e.tag){case 0:if((t&4)!==0&&(t=e.updateQueue,t=t!==null?t.events:null,t!==null))for(n=0;n title"))),Ct(a,l,n),a[Nt]=t,vt(a),l=a;break t;case"link":var u=c0("link","href",i).get(l+(n.href||""));if(u){for(var s=0;sF&&(u=F,F=A,A=u);var m=ff(s,A),h=ff(s,F);if(m&&h&&(d.rangeCount!==1||d.anchorNode!==m.node||d.anchorOffset!==m.offset||d.focusNode!==h.node||d.focusOffset!==h.offset)){var g=x.createRange();g.setStart(m.node,m.offset),d.removeAllRanges(),A>F?(d.addRange(g),d.extend(h.node,h.offset)):(g.setEnd(h.node,h.offset),d.addRange(g))}}}}for(x=[],d=s;d=d.parentNode;)d.nodeType===1&&x.push({element:d,left:d.scrollLeft,top:d.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;sn?32:n,w.T=null,n=Dc,Dc=null;var a=mn,u=He;if(gt=0,_l=mn=null,He=0,(Z&6)!==0)throw Error(N(331));var s=Z;if(Z|=4,Sh(a.current),mh(a,a.current,u,n),Z=s,Pi(0,!1),Wt&&typeof Wt.onPostCommitFiberRoot=="function")try{Wt.onPostCommitFiberRoot(Xi,a)}catch{}return!0}finally{V.p=i,w.T=l,Rh(t,e)}}function Qf(t,e,n){e=se(n,e),e=Nc(t.stateNode,e,2),t=hn(t,e,2),t!==null&&(Vi(t,2),Me(t))}function W(t,e,n){if(t.tag===3)Qf(t,t,n);else for(;e!==null;){if(e.tag===3){Qf(e,t,n);break}else if(e.tag===1){var l=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(xn===null||!xn.has(l))){t=se(n,t),n=Jd(2),l=hn(e,n,2),l!==null&&(Wd(n,l,e,t),Vi(l,2),Me(l));break}}e=e.return}}function Gs(t,e,n){var l=t.pingCache;if(l===null){l=t.pingCache=new bp;var i=new Set;l.set(e,i)}else i=l.get(e),i===void 0&&(i=new Set,l.set(e,i));i.has(n)||(Fr=!0,i.add(n),t=Fp.bind(null,t,e,n),e.then(t,t))}function Fp(t,e,n){var l=t.pingCache;l!==null&&l.delete(e),t.pingedLanes|=t.suspendedLanes&n,t.warmLanes&=~n,et===t&&(G&n)===n&&(ot===4||ot===3&&(G&62914560)===G&&300>Jt()-wu?(Z&2)===0&&Ll(t,0):Br|=n,wl===G&&(wl=0)),Me(t)}function wh(t,e){e===0&&(e=C0()),t=Vn(t,e),t!==null&&(Vi(t,e),Me(t))}function Bp(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),wh(t,n)}function Dp(t,e){var n=0;switch(t.tag){case 31:case 13:var l=t.stateNode,i=t.memoizedState;i!==null&&(n=i.retryLane);break;case 19:l=t.stateNode;break;case 22:l=t.stateNode._retryCache;break;default:throw Error(N(314))}l!==null&&l.delete(e),wh(t,n)}function Tp(t,e){return Qc(t,e)}var mu=null,rl=null,kc=!1,pu=!1,Ys=!1,rn=0;function Me(t){t!==rl&&t.next===null&&(rl===null?mu=rl=t:rl=rl.next=t),pu=!0,kc||(kc=!0,Op())}function Pi(t,e){if(!Ys&&pu){Ys=!0;do for(var n=!1,l=mu;l!==null;){if(!e)if(t!==0){var i=l.pendingLanes;if(i===0)var a=0;else{var u=l.suspendedLanes,s=l.pingedLanes;a=(1<<31-$t(42|t)+1)-1,a&=i&~(u&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,Xf(l,a))}else a=G,a=Eu(l,l===et?a:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(a&3)===0||Zi(l,a)||(n=!0,Xf(l,a));l=l.next}while(n);Ys=!1}}function kp(){_h()}function _h(){pu=kc=!1;var t=0;rn!==0&&Hp()&&(t=rn);for(var e=Jt(),n=null,l=mu;l!==null;){var i=l.next,a=Lh(l,e);a===0?(l.next=null,n===null?mu=i:n.next=i,i===null&&(rl=n)):(n=l,(t!==0||(a&3)!==0)&&(pu=!0)),l=i}gt!==0&>!==5||Pi(t,!1),rn!==0&&(rn=0)}function Lh(t,e){for(var n=t.suspendedLanes,l=t.pingedLanes,i=t.expirationTimes,a=t.pendingLanes&-62914561;0s)break;var f=c.transferSize,x=c.initiatorType;f&&If(x)&&(c=c.responseEnd,u+=f*(c"u"?null:document;function Zh(t,e,n){var l=Xl;if(l&&typeof e=="string"&&e){var i=ue(e);i='link[rel="'+t+'"][href="'+i+'"]',typeof n=="string"&&(i+='[crossorigin="'+n+'"]'),a0.has(i)||(a0.add(i),t={rel:t,crossOrigin:n,href:e},l.querySelector(i)===null&&(e=l.createElement("link"),Ct(e,"link",t),vt(e),l.head.appendChild(e)))}}function Jp(t){Ze.D(t),Zh("dns-prefetch",t,null)}function Wp(t,e){Ze.C(t,e),Zh("preconnect",t,e)}function $p(t,e,n){Ze.L(t,e,n);var l=Xl;if(l&&t&&e){var i='link[rel="preload"][as="'+ue(e)+'"]';e==="image"&&n&&n.imageSrcSet?(i+='[imagesrcset="'+ue(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(i+='[imagesizes="'+ue(n.imageSizes)+'"]')):i+='[href="'+ue(t)+'"]';var a=i;switch(e){case"style":a=ql(t);break;case"script":a=Zl(t)}fe.has(a)||(t=ut({rel:"preload",href:e==="image"&&n&&n.imageSrcSet?void 0:t,as:e},n),fe.set(a,t),l.querySelector(i)!==null||e==="style"&&l.querySelector(ta(a))||e==="script"&&l.querySelector(ea(a))||(e=l.createElement("link"),Ct(e,"link",t),vt(e),l.head.appendChild(e)))}}function Ip(t,e){Ze.m(t,e);var n=Xl;if(n&&t){var l=e&&typeof e.as=="string"?e.as:"script",i='link[rel="modulepreload"][as="'+ue(l)+'"][href="'+ue(t)+'"]',a=i;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":a=Zl(t)}if(!fe.has(a)&&(t=ut({rel:"modulepreload",href:t},e),fe.set(a,t),n.querySelector(i)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(ea(a)))return}l=n.createElement("link"),Ct(l,"link",t),vt(l),n.head.appendChild(l)}}}function Pp(t,e,n){Ze.S(t,e,n);var l=Xl;if(l&&t){var i=bl(l).hoistableStyles,a=ql(t);e=e||"default";var u=i.get(a);if(!u){var s={loading:0,preload:null};if(u=l.querySelector(ta(a)))s.loading=5;else{t=ut({rel:"stylesheet",href:t,"data-precedence":e},n),(n=fe.get(a))&&Or(t,n);var c=u=l.createElement("link");vt(c),Ct(c,"link",t),c._p=new Promise(function(r,f){c.onload=r,c.onerror=f}),c.addEventListener("load",function(){s.loading|=1}),c.addEventListener("error",function(){s.loading|=2}),s.loading|=4,Xa(u,e,l)}u={type:"stylesheet",instance:u,count:1,state:s},i.set(a,u)}}}function tg(t,e){Ze.X(t,e);var n=Xl;if(n&&t){var l=bl(n).hoistableScripts,i=Zl(t),a=l.get(i);a||(a=n.querySelector(ea(i)),a||(t=ut({src:t,async:!0},e),(e=fe.get(i))&&Rr(t,e),a=n.createElement("script"),vt(a),Ct(a,"link",t),n.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},l.set(i,a))}}function eg(t,e){Ze.M(t,e);var n=Xl;if(n&&t){var l=bl(n).hoistableScripts,i=Zl(t),a=l.get(i);a||(a=n.querySelector(ea(i)),a||(t=ut({src:t,async:!0,type:"module"},e),(e=fe.get(i))&&Rr(t,e),a=n.createElement("script"),vt(a),Ct(a,"link",t),n.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},l.set(i,a))}}function u0(t,e,n,l){var i=(i=on.current)?yu(i):null;if(!i)throw Error(N(446));switch(t){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(e=ql(n.href),n=bl(i).hoistableStyles,l=n.get(e),l||(l={type:"style",instance:null,count:0,state:null},n.set(e,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){t=ql(n.href);var a=bl(i).hoistableStyles,u=a.get(t);if(u||(i=i.ownerDocument||i,u={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},a.set(t,u),(a=i.querySelector(ta(t)))&&!a._p&&(u.instance=a,u.state.loading=5),fe.has(t)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},fe.set(t,n),a||ng(i,t,n,u.state))),e&&l===null)throw Error(N(528,""));return u}if(e&&l!==null)throw Error(N(529,""));return null;case"script":return e=n.async,n=n.src,typeof n=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=Zl(n),n=bl(i).hoistableScripts,l=n.get(e),l||(l={type:"script",instance:null,count:0,state:null},n.set(e,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(N(444,t))}}function ql(t){return'href="'+ue(t)+'"'}function ta(t){return'link[rel="stylesheet"]['+t+"]"}function Vh(t){return ut({},t,{"data-precedence":t.precedence,precedence:null})}function ng(t,e,n,l){t.querySelector('link[rel="preload"][as="style"]['+e+"]")?l.loading=1:(e=t.createElement("link"),l.preload=e,e.addEventListener("load",function(){return l.loading|=1}),e.addEventListener("error",function(){return l.loading|=2}),Ct(e,"link",n),vt(e),t.head.appendChild(e))}function Zl(t){return'[src="'+ue(t)+'"]'}function ea(t){return"script[async]"+t}function s0(t,e,n){if(e.count++,e.instance===null)switch(e.type){case"style":var l=t.querySelector('style[data-href~="'+ue(n.href)+'"]');if(l)return e.instance=l,vt(l),l;var i=ut({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return l=(t.ownerDocument||t).createElement("style"),vt(l),Ct(l,"style",i),Xa(l,n.precedence,t),e.instance=l;case"stylesheet":i=ql(n.href);var a=t.querySelector(ta(i));if(a)return e.state.loading|=4,e.instance=a,vt(a),a;l=Vh(n),(i=fe.get(i))&&Or(l,i),a=(t.ownerDocument||t).createElement("link"),vt(a);var u=a;return u._p=new Promise(function(s,c){u.onload=s,u.onerror=c}),Ct(a,"link",l),e.state.loading|=4,Xa(a,n.precedence,t),e.instance=a;case"script":return a=Zl(n.src),(i=t.querySelector(ea(a)))?(e.instance=i,vt(i),i):(l=n,(i=fe.get(a))&&(l=ut({},n),Rr(l,i)),t=t.ownerDocument||t,i=t.createElement("script"),vt(i),Ct(i,"link",l),t.head.appendChild(i),e.instance=i);case"void":return null;default:throw Error(N(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(l=e.instance,e.state.loading|=4,Xa(l,n.precedence,t));return e.instance}function Xa(t,e,n){for(var l=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),i=l.length?l[l.length-1]:null,a=i,u=0;u title"):null)}function lg(t,e,n){if(n===1||e.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;return e.rel==="stylesheet"?(t=e.disabled,typeof e.precedence=="string"&&t==null):!0;case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function Kh(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function ig(t,e,n,l){if(n.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var i=ql(l.href),a=e.querySelector(ta(i));if(a){e=a._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(t.count++,t=vu.bind(t),e.then(t,t)),n.state.loading|=4,n.instance=a,vt(a);return}a=e.ownerDocument||e,l=Vh(l),(i=fe.get(i))&&Or(l,i),a=a.createElement("link"),vt(a);var u=a;u._p=new Promise(function(s,c){u.onload=s,u.onerror=c}),Ct(a,"link",l),n.instance=a}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(n,e),(e=n.state.preload)&&(n.state.loading&3)===0&&(t.count++,n=vu.bind(t),e.addEventListener("load",n),e.addEventListener("error",n))}}var Zs=0;function ag(t,e){return t.stylesheets&&t.count===0&&Va(t,t.stylesheets),0Zs?50:800)+e);return t.unsuspend=n,function(){t.unsuspend=null,clearTimeout(l),clearTimeout(i)}}:null}function vu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Va(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var Au=null;function Va(t,e){t.stylesheets=null,t.unsuspend!==null&&(t.count++,Au=new Map,e.forEach(ug,t),Au=null,vu.call(t))}function ug(t,e){if(!(e.state.loading&4)){var n=Au.get(t);if(n)var l=n.get(null);else{n=new Map,Au.set(t,n);for(var i=t.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a{"use strict";function l1(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(l1)}catch(t){console.error(t)}}l1(),i1.exports=n1()});var rx=Se($u=>{"use strict";var qy=Symbol.for("react.transitional.element"),Uy=Symbol.for("react.fragment");function cx(t,e,n){var l=null;if(n!==void 0&&(l=""+n),e.key!==void 0&&(l=""+e.key),"key"in e){n={};for(var i in e)i!=="key"&&(n[i]=e[i])}else n=e;return e=n.ref,{$$typeof:qy,type:t,key:l,ref:e!==void 0?e:null,props:n}}$u.Fragment=Uy;$u.jsx=cx;$u.jsxs=cx});var ra=Se((Hv,ox)=>{"use strict";ox.exports=rx()});var xx=tl(a1(),1);var H=tl(xa(),1);function Gr(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var $n=Gr();function d1(t){$n=t}var Jn={exec:()=>null};function Q(t,e=""){let n=typeof t=="string"?t:t.source,l={replace:(i,a)=>{let u=typeof a=="string"?a:a.source;return u=u.replace(Ot.caret,"$1"),n=n.replace(i,u),l},getRegex:()=>new RegExp(n,e)};return l}var xg=(()=>{try{return!!new RegExp("(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}>`)},mg=/^(?:[ \t]*(?:\n|$))+/,pg=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,gg=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,aa=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Sg=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Yr=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,h1=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,x1=Q(h1).replace(/bull/g,Yr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),yg=Q(h1).replace(/bull/g,Yr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),jr=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,vg=/^[^\n]+/,Qr=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Ag=Q(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Qr).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),bg=Q(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Yr).getRegex(),Xu="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Xr=/|$))/,Ng=Q("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Xr).replace("tag",Xu).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),m1=Q(jr).replace("hr",aa).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Xu).getRegex(),Eg=Q(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",m1).getRegex(),Zr={blockquote:Eg,code:pg,def:Ag,fences:gg,heading:Sg,hr:aa,html:Ng,lheading:x1,list:bg,newline:mg,paragraph:m1,table:Jn,text:vg},u1=Q("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",aa).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Xu).getRegex(),Mg={...Zr,lheading:yg,table:u1,paragraph:Q(jr).replace("hr",aa).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",u1).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Xu).getRegex()},Cg={...Zr,html:Q(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Xr).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Jn,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Q(jr).replace("hr",aa).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",x1).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Fg=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Bg=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,p1=/^( {2,}|\\)\n(?!\s*$)/,Dg=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",xg?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),S1=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,zg=Q(S1,"u").replace(/punct/g,Vl).getRegex(),wg=Q(S1,"u").replace(/punct/g,g1).getRegex(),y1="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",_g=Q(y1,"gu").replace(/notPunctSpace/g,Vr).replace(/punctSpace/g,Zu).replace(/punct/g,Vl).getRegex(),Lg=Q(y1,"gu").replace(/notPunctSpace/g,Og).replace(/punctSpace/g,kg).replace(/punct/g,g1).getRegex(),qg=Q("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Vr).replace(/punctSpace/g,Zu).replace(/punct/g,Vl).getRegex(),Ug=Q(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Vl).getRegex(),Hg="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Gg=Q(Hg,"gu").replace(/notPunctSpace/g,Vr).replace(/punctSpace/g,Zu).replace(/punct/g,Vl).getRegex(),Yg=Q(/\\(punct)/,"gu").replace(/punct/g,Vl).getRegex(),jg=Q(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Qg=Q(Xr).replace("(?:-->|$)","-->").getRegex(),Xg=Q("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",Qg).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Yu=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Zg=Q(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Yu).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),v1=Q(/^!?\[(label)\]\[(ref)\]/).replace("label",Yu).replace("ref",Qr).getRegex(),A1=Q(/^!?\[(ref)\](?:\[\])?/).replace("ref",Qr).getRegex(),Vg=Q("reflink|nolink(?!\\()","g").replace("reflink",v1).replace("nolink",A1).getRegex(),s1=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Kr={_backpedal:Jn,anyPunctuation:Yg,autolink:jg,blockSkip:Rg,br:p1,code:Bg,del:Jn,delLDelim:Jn,delRDelim:Jn,emStrongLDelim:zg,emStrongRDelimAst:_g,emStrongRDelimUnd:qg,escape:Fg,link:Zg,nolink:A1,punctuation:Tg,reflink:v1,reflinkSearch:Vg,tag:Xg,text:Dg,url:Jn},Kg={...Kr,link:Q(/^!?\[(label)\]\((.*?)\)/).replace("label",Yu).getRegex(),reflink:Q(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Yu).getRegex()},qr={...Kr,emStrongRDelimAst:Lg,emStrongLDelim:wg,delLDelim:Ug,delRDelim:Gg,url:Q(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",s1).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:Q(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},c1=t=>Wg[t];function Ce(t,e){if(e){if(Ot.escapeTest.test(t))return t.replace(Ot.escapeReplace,c1)}else if(Ot.escapeTestNoEncode.test(t))return t.replace(Ot.escapeReplaceNoEncode,c1);return t}function r1(t){try{t=encodeURI(t).replace(Ot.percentDecode,"%")}catch{return null}return t}function o1(t,e){let n=t.replace(Ot.findPipe,(a,u,s)=>{let c=!1,r=u;for(;--r>=0&&s[r]==="\\";)c=!c;return c?"|":" |"}),l=n.split(Ot.splitPipe),i=0;if(l[0].trim()||l.shift(),l.length>0&&!l.at(-1)?.trim()&&l.pop(),e)if(l.length>e)l.splice(e);else for(;l.length0?-2:-1}function Ig(t,e=0){let n=e,l="";for(let i of t)if(i===" "){let a=4-n%4;l+=" ".repeat(a),n+=a}else l+=i,n++;return l}function f1(t,e,n,l,i){let a=e.href,u=e.title||null,s=t[1].replace(i.other.outputLinkReplace,"$1");l.state.inLink=!0;let c={type:t[0].charAt(0)==="!"?"image":"link",raw:n,href:a,title:u,text:s,tokens:l.inlineTokens(s)};return l.state.inLink=!1,c}function Pg(t,e,n){let l=t.match(n.other.indentCodeCompensation);if(l===null)return e;let i=l[1];return e.split(` +`).map(a=>{let u=a.match(n.other.beginningSpace);if(u===null)return a;let[s]=u;return s.length>=i.length?a.slice(i.length):a}).join(` +`)}var ju=class{options;rules;lexer;constructor(t){this.options=t||$n}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let n=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?n:la(n,` +`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let n=e[0],l=Pg(n,e[3]||"",this.rules);return{type:"code",raw:n,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:l}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let n=e[2].trim();if(this.rules.other.endingHash.test(n)){let l=la(n,"#");(this.options.pedantic||!l||this.rules.other.endingSpaceChar.test(l))&&(n=l.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:la(e[0],` +`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let n=la(e[0],` +`).split(` +`),l="",i="",a=[];for(;n.length>0;){let u=!1,s=[],c;for(c=0;c1,i={type:"list",raw:"",ordered:l,start:l?+n.slice(0,-1):"",loose:!1,items:[]};n=l?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=l?n:"[*+-]");let a=this.rules.other.listItemRegex(n),u=!1;for(;t;){let c=!1,r="",f="";if(!(e=a.exec(t))||this.rules.block.hr.test(t))break;r=e[0],t=t.substring(r.length);let x=Ig(e[2].split(` +`,1)[0],e[1].length),o=t.split(` +`,1)[0],d=!x.trim(),S=0;if(this.options.pedantic?(S=2,f=x.trimStart()):d?S=e[1].length+1:(S=x.search(this.rules.other.nonSpaceChar),S=S>4?1:S,f=x.slice(S),S+=e[1].length),d&&this.rules.other.blankLine.test(o)&&(r+=o+` +`,t=t.substring(o.length+1),c=!0),!c){let A=this.rules.other.nextBulletRegex(S),F=this.rules.other.hrRegex(S),m=this.rules.other.fencesBeginRegex(S),h=this.rules.other.headingBeginRegex(S),g=this.rules.other.htmlBeginRegex(S),p=this.rules.other.blockquoteBeginRegex(S);for(;t;){let b=t.split(` +`,1)[0],C;if(o=b,this.options.pedantic?(o=o.replace(this.rules.other.listReplaceNesting," "),C=o):C=o.replace(this.rules.other.tabCharGlobal," "),m.test(o)||h.test(o)||g.test(o)||p.test(o)||A.test(o)||F.test(o))break;if(C.search(this.rules.other.nonSpaceChar)>=S||!o.trim())f+=` +`+C.slice(S);else{if(d||x.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||m.test(x)||h.test(x)||F.test(x))break;f+=` +`+o}d=!o.trim(),r+=b+` +`,t=t.substring(b.length+1),x=C.slice(S)}}i.loose||(u?i.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(u=!0)),i.items.push({type:"list_item",raw:r,task:!!this.options.gfm&&this.rules.other.listIsTask.test(f),loose:!1,text:f,tokens:[]}),i.raw+=r}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let c of i.items){if(this.lexer.state.top=!1,c.tokens=this.lexer.blockTokens(c.text,[]),c.task){if(c.text=c.text.replace(this.rules.other.listReplaceTask,""),c.tokens[0]?.type==="text"||c.tokens[0]?.type==="paragraph"){c.tokens[0].raw=c.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),c.tokens[0].text=c.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let f=this.lexer.inlineQueue.length-1;f>=0;f--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[f].src)){this.lexer.inlineQueue[f].src=this.lexer.inlineQueue[f].src.replace(this.rules.other.listReplaceTask,"");break}}let r=this.rules.other.listTaskCheckbox.exec(c.raw);if(r){let f={type:"checkbox",raw:r[0]+" ",checked:r[0]!=="[ ]"};c.checked=f.checked,i.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=f.raw+c.tokens[0].raw,c.tokens[0].text=f.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(f)):c.tokens.unshift({type:"paragraph",raw:f.raw,text:f.raw,tokens:[f]}):c.tokens.unshift(f)}}if(!i.loose){let r=c.tokens.filter(x=>x.type==="space"),f=r.length>0&&r.some(x=>this.rules.other.anyLine.test(x.raw));i.loose=f}}if(i.loose)for(let c of i.items){c.loose=!0;for(let r of c.tokens)r.type==="text"&&(r.type="paragraph")}return i}}html(t){let e=this.rules.block.html.exec(t);if(e)return{type:"html",block:!0,raw:e[0],pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:e[0]}}def(t){let e=this.rules.block.def.exec(t);if(e){let n=e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),l=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:n,raw:e[0],href:l,title:i}}}table(t){let e=this.rules.block.table.exec(t);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let n=o1(e[1]),l=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),i=e[3]?.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(` +`):[],a={type:"table",raw:e[0],header:[],align:[],rows:[]};if(n.length===l.length){for(let u of l)this.rules.other.tableAlignRight.test(u)?a.align.push("right"):this.rules.other.tableAlignCenter.test(u)?a.align.push("center"):this.rules.other.tableAlignLeft.test(u)?a.align.push("left"):a.align.push(null);for(let u=0;u({text:s,tokens:this.lexer.inline(s),header:!1,align:a.align[c]})));return a}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e){let n=e[1].trim();return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let n=e[1].charAt(e[1].length-1)===` +`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:n,tokens:this.lexer.inline(n)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let n=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let a=la(n.slice(0,-1),"\\");if((n.length-a.length)%2===0)return}else{let a=$g(e[2],"()");if(a===-2)return;if(a>-1){let u=(e[0].indexOf("!")===0?5:4)+e[1].length+a;e[2]=e[2].substring(0,a),e[0]=e[0].substring(0,u).trim(),e[3]=""}}let l=e[2],i="";if(this.options.pedantic){let a=this.rules.other.pedanticHrefTitle.exec(l);a&&(l=a[1],i=a[3])}else i=e[3]?e[3].slice(1,-1):"";return l=l.trim(),this.rules.other.startAngleBracket.test(l)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?l=l.slice(1):l=l.slice(1,-1)),f1(e,{href:l&&l.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let l=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=e[l.toLowerCase()];if(!i){let a=n[0].charAt(0);return{type:"text",raw:a,text:a}}return f1(n,i,n[0],this.lexer,this.rules)}}emStrong(t,e,n=""){let l=this.rules.inline.emStrongLDelim.exec(t);if(!(!l||!l[1]&&!l[2]&&!l[3]&&!l[4]||l[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(l[1]||l[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...l[0]].length-1,a,u,s=i,c=0,r=l[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(r.lastIndex=0,e=e.slice(-1*t.length+i);(l=r.exec(e))!=null;){if(a=l[1]||l[2]||l[3]||l[4]||l[5]||l[6],!a)continue;if(u=[...a].length,l[3]||l[4]){s+=u;continue}else if((l[5]||l[6])&&i%3&&!((i+u)%3)){c+=u;continue}if(s-=u,s>0)continue;u=Math.min(u,u+s+c);let f=[...l[0]][0].length,x=t.slice(0,i+l.index+f+u);if(Math.min(i,u)%2){let d=x.slice(1,-1);return{type:"em",raw:x,text:d,tokens:this.lexer.inlineTokens(d)}}let o=x.slice(2,-2);return{type:"strong",raw:x,text:o,tokens:this.lexer.inlineTokens(o)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let n=e[2].replace(this.rules.other.newLineCharGlobal," "),l=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return l&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:e[0],text:n}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t,e,n=""){let l=this.rules.inline.delLDelim.exec(t);if(l&&(!l[1]||!n||this.rules.inline.punctuation.exec(n))){let i=[...l[0]].length-1,a,u,s=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,e=e.slice(-1*t.length+i);(l=c.exec(e))!=null;){if(a=l[1]||l[2]||l[3]||l[4]||l[5]||l[6],!a||(u=[...a].length,u!==i))continue;if(l[3]||l[4]){s+=u;continue}if(s-=u,s>0)continue;u=Math.min(u,u+s);let r=[...l[0]][0].length,f=t.slice(0,i+l.index+r+u),x=f.slice(i,-i);return{type:"del",raw:f,text:x,tokens:this.lexer.inlineTokens(x)}}}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let n,l;return e[2]==="@"?(n=e[1],l="mailto:"+n):(n=e[1],l=n),{type:"link",raw:e[0],text:n,href:l,tokens:[{type:"text",raw:n,text:n}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let n,l;if(e[2]==="@")n=e[0],l="mailto:"+n;else{let i;do i=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(i!==e[0]);n=e[0],e[1]==="www."?l="http://"+e[0]:l=e[0]}return{type:"link",raw:e[0],text:n,href:l,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let n=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:n}}}},me=class Ur{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||$n,this.options.tokenizer=this.options.tokenizer||new ju,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:Ot,block:Gu.normal,inline:na.normal};this.options.pedantic?(n.block=Gu.pedantic,n.inline=na.pedantic):this.options.gfm&&(n.block=Gu.gfm,this.options.breaks?n.inline=na.breaks:n.inline=na.gfm),this.tokenizer.rules=n}static get rules(){return{block:Gu,inline:na}}static lex(e,n){return new Ur(n).lex(e)}static lexInline(e,n){return new Ur(n).inlineTokens(e)}lex(e){e=e.replace(Ot.carriageReturn,` +`),this.blockTokens(e,this.tokens);for(let n=0;n(i=u.call({lexer:this},e,n))?(e=e.substring(i.raw.length),n.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let u=n.at(-1);i.raw.length===1&&u!==void 0?u.raw+=` +`:n.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let u=n.at(-1);u?.type==="paragraph"||u?.type==="text"?(u.raw+=(u.raw.endsWith(` +`)?"":` +`)+i.raw,u.text+=` +`+i.text,this.inlineQueue.at(-1).src=u.text):n.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let u=n.at(-1);u?.type==="paragraph"||u?.type==="text"?(u.raw+=(u.raw.endsWith(` +`)?"":` +`)+i.raw,u.text+=` +`+i.raw,this.inlineQueue.at(-1).src=u.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},n.push(i));continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),n.push(i);continue}let a=e;if(this.options.extensions?.startBlock){let u=1/0,s=e.slice(1),c;this.options.extensions.startBlock.forEach(r=>{c=r.call({lexer:this},s),typeof c=="number"&&c>=0&&(u=Math.min(u,c))}),u<1/0&&u>=0&&(a=e.substring(0,u+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let u=n.at(-1);l&&u?.type==="paragraph"?(u.raw+=(u.raw.endsWith(` +`)?"":` +`)+i.raw,u.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=u.text):n.push(i),l=a.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let u=n.at(-1);u?.type==="text"?(u.raw+=(u.raw.endsWith(` +`)?"":` +`)+i.raw,u.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=u.text):n.push(i);continue}if(e){let u="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(u);break}else throw new Error(u)}}return this.state.top=!0,n}inline(e,n=[]){return this.inlineQueue.push({src:e,tokens:n}),n}inlineTokens(e,n=[]){this.tokenizer.lexer=this;let l=e,i=null;if(this.tokens.links){let c=Object.keys(this.tokens.links);if(c.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(l))!=null;)c.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(l))!=null;)l=l.slice(0,i.index)+"++"+l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let a;for(;(i=this.tokenizer.rules.inline.blockSkip.exec(l))!=null;)a=i[2]?i[2].length:0,l=l.slice(0,i.index+a)+"["+"a".repeat(i[0].length-a-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);l=this.options.hooks?.emStrongMask?.call({lexer:this},l)??l;let u=!1,s="";for(;e;){u||(s=""),u=!1;let c;if(this.options.extensions?.inline?.some(f=>(c=f.call({lexer:this},e,n))?(e=e.substring(c.raw.length),n.push(c),!0):!1))continue;if(c=this.tokenizer.escape(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.tag(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.link(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(c.raw.length);let f=n.at(-1);c.type==="text"&&f?.type==="text"?(f.raw+=c.raw,f.text+=c.text):n.push(c);continue}if(c=this.tokenizer.emStrong(e,l,s)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.codespan(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.br(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.del(e,l,s)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.autolink(e)){e=e.substring(c.raw.length),n.push(c);continue}if(!this.state.inLink&&(c=this.tokenizer.url(e))){e=e.substring(c.raw.length),n.push(c);continue}let r=e;if(this.options.extensions?.startInline){let f=1/0,x=e.slice(1),o;this.options.extensions.startInline.forEach(d=>{o=d.call({lexer:this},x),typeof o=="number"&&o>=0&&(f=Math.min(f,o))}),f<1/0&&f>=0&&(r=e.substring(0,f+1))}if(c=this.tokenizer.inlineText(r)){e=e.substring(c.raw.length),c.raw.slice(-1)!=="_"&&(s=c.raw.slice(-1)),u=!0;let f=n.at(-1);f?.type==="text"?(f.raw+=c.raw,f.text+=c.text):n.push(c);continue}if(e){let f="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(f);break}else throw new Error(f)}}return n}},Qu=class{options;parser;constructor(t){this.options=t||$n}space(t){return""}code({text:t,lang:e,escaped:n}){let l=(e||"").match(Ot.notSpaceStart)?.[0],i=t.replace(Ot.endingNewline,"")+` +`;return l?'
'+(n?i:Ce(i,!0))+`
+`:"
"+(n?i:Ce(i,!0))+`
+`}blockquote({tokens:t}){return`
+${this.parser.parse(t)}
+`}html({text:t}){return t}def(t){return""}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} +`}hr(t){return`
+`}list(t){let e=t.ordered,n=t.start,l="";for(let u=0;u +`+l+" +`}listitem(t){return`
  • ${this.parser.parse(t.tokens)}
  • +`}checkbox({checked:t}){return" '}paragraph({tokens:t}){return`

    ${this.parser.parseInline(t)}

    +`}table(t){let e="",n="";for(let i=0;i${l}`),` + +`+e+` +`+l+`
    +`}tablerow({text:t}){return` +${t} +`}tablecell(t){let e=this.parser.parseInline(t.tokens),n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+` +`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${Ce(t,!0)}`}br(t){return"
    "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:n}){let l=this.parser.parseInline(n),i=r1(t);if(i===null)return l;t=i;let a='
    ",a}image({href:t,title:e,text:n,tokens:l}){l&&(n=this.parser.parseInline(l,this.parser.textRenderer));let i=r1(t);if(i===null)return Ce(n);t=i;let a=`${Ce(n)}{let u=i[a].flat(1/0);n=n.concat(this.walkTokens(u,e))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,e)))}}return n}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{let l={...n};if(l.async=this.defaults.async||l.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let a=e.renderers[i.name];a?e.renderers[i.name]=function(...u){let s=i.renderer.apply(this,u);return s===!1&&(s=a.apply(this,u)),s}:e.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let a=e[i.level];a?a.unshift(i.tokenizer):e[i.level]=[i.tokenizer],i.start&&(i.level==="block"?e.startBlock?e.startBlock.push(i.start):e.startBlock=[i.start]:i.level==="inline"&&(e.startInline?e.startInline.push(i.start):e.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(e.childTokens[i.name]=i.childTokens)}),l.extensions=e),n.renderer){let i=this.defaults.renderer||new Qu(this.defaults);for(let a in n.renderer){if(!(a in i))throw new Error(`renderer '${a}' does not exist`);if(["options","parser"].includes(a))continue;let u=a,s=n.renderer[u],c=i[u];i[u]=(...r)=>{let f=s.apply(i,r);return f===!1&&(f=c.apply(i,r)),f||""}}l.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new ju(this.defaults);for(let a in n.tokenizer){if(!(a in i))throw new Error(`tokenizer '${a}' does not exist`);if(["options","rules","lexer"].includes(a))continue;let u=a,s=n.tokenizer[u],c=i[u];i[u]=(...r)=>{let f=s.apply(i,r);return f===!1&&(f=c.apply(i,r)),f}}l.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new ia;for(let a in n.hooks){if(!(a in i))throw new Error(`hook '${a}' does not exist`);if(["options","block"].includes(a))continue;let u=a,s=n.hooks[u],c=i[u];ia.passThroughHooks.has(a)?i[u]=r=>{if(this.defaults.async&&ia.passThroughHooksRespectAsync.has(a))return(async()=>{let x=await s.call(i,r);return c.call(i,x)})();let f=s.call(i,r);return c.call(i,f)}:i[u]=(...r)=>{if(this.defaults.async)return(async()=>{let x=await s.apply(i,r);return x===!1&&(x=await c.apply(i,r)),x})();let f=s.apply(i,r);return f===!1&&(f=c.apply(i,r)),f}}l.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,a=n.walkTokens;l.walkTokens=function(u){let s=[];return s.push(a.call(this,u)),i&&(s=s.concat(i.call(this,u))),s}}this.defaults={...this.defaults,...l}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return me.lex(t,e??this.defaults)}parser(t,e){return pe.parse(t,e??this.defaults)}parseMarkdown(t){return(e,n)=>{let l={...n},i={...this.defaults,...l},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&l.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=t),i.async)return(async()=>{let u=i.hooks?await i.hooks.preprocess(e):e,s=await(i.hooks?await i.hooks.provideLexer():t?me.lex:me.lexInline)(u,i),c=i.hooks?await i.hooks.processAllTokens(s):s;i.walkTokens&&await Promise.all(this.walkTokens(c,i.walkTokens));let r=await(i.hooks?await i.hooks.provideParser():t?pe.parse:pe.parseInline)(c,i);return i.hooks?await i.hooks.postprocess(r):r})().catch(a);try{i.hooks&&(e=i.hooks.preprocess(e));let u=(i.hooks?i.hooks.provideLexer():t?me.lex:me.lexInline)(e,i);i.hooks&&(u=i.hooks.processAllTokens(u)),i.walkTokens&&this.walkTokens(u,i.walkTokens);let s=(i.hooks?i.hooks.provideParser():t?pe.parse:pe.parseInline)(u,i);return i.hooks&&(s=i.hooks.postprocess(s)),s}catch(u){return a(u)}}}onError(t,e){return n=>{if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,t){let l="

    An error occurred:

    "+Ce(n.message+"",!0)+"
    ";return e?Promise.resolve(l):l}if(e)return Promise.reject(n);throw n}}},Wn=new tS;function P(t,e){return Wn.parse(t,e)}P.options=P.setOptions=function(t){return Wn.setOptions(t),P.defaults=Wn.defaults,d1(P.defaults),P};P.getDefaults=Gr;P.defaults=$n;P.use=function(...t){return Wn.use(...t),P.defaults=Wn.defaults,d1(P.defaults),P};P.walkTokens=function(t,e){return Wn.walkTokens(t,e)};P.parseInline=Wn.parseInline;P.Parser=pe;P.parser=pe.parse;P.Renderer=Qu;P.TextRenderer=Jr;P.Lexer=me;P.lexer=me.lex;P.Tokenizer=ju;P.Hooks=ia;P.parse=P;var iv=P.options,av=P.setOptions,uv=P.use,sv=P.walkTokens,cv=P.parseInline;var rv=pe.parse,Vu=me.lex;var eS={isDark:null,pageBackground:"--agent-page-bg",surfaceBackground:"--agent-surface",surfaceElevatedBackground:"--agent-surface-elevated",inputBackground:"--agent-input-bg",border:"--agent-border",borderStrong:"--agent-border-strong",text:"--agent-text",mutedText:"--agent-muted",softText:"--agent-soft",accent:"--agent-accent",accentSoft:"--agent-accent-soft",danger:"--agent-danger",shadow:"--agent-shadow"};function b1(t){if(typeof document>"u")return;let e=document.documentElement;e.dataset.theme=t.isDark?"dark":"light",nS(),e.classList.toggle("dark",t.isDark),e.classList.toggle("electron-dark",t.isDark),e.classList.toggle("light",!t.isDark),e.style.colorScheme=t.isDark?"dark":"light";for(let[n,l]of Object.entries(eS))l&&e.style.setProperty(l,String(t[n]))}function nS(){if(typeof document>"u")return;let t=document.documentElement;t.dataset.codexWindowType="electron",t.dataset.windowType="electron",t.dataset.codexOs=lS(),document.body&&(document.body.dataset.codexWindowType="electron")}function lS(){if(typeof navigator>"u")return"unknown";let t=navigator,e=(t.userAgentData?.platform??t.platform??t.userAgent).toLowerCase();return e.includes("win")?"win32":e.includes("mac")||e.includes("darwin")?"darwin":e.includes("linux")?"linux":"unknown"}var N1=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],Wr=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function iS(t){if(t<=255)return N1[t];let e=0,n=Wr.length-1;for(;e<=n;){let l=e+n>>1,i=Wr[l];if(ti[1]){e=l+1;continue}return i[2]}return"L"}function aS(t){let e=t.length;if(e===0)return null;let n=new Array(e),l=!1,i=0,a=null;for(let u=0;u=55296&&s<=56319&&u+1=56320&&x<=57343&&(c=(s-55296<<10)+(x-56320)+65536,r=2)}let f=iS(c);(f==="R"||f==="AL"||f==="AN")&&(l=!0);for(let x=0;x=n&&t[r]==="ET";r--)t[r]="EN";for(r=c+1;rn?t[c-1]:u,x=r0&&e.charCodeAt(e.length-1)===32&&(e=e.slice(0,-1)),e}function rS(t){return/[\r\f]/.test(t)?t.replace(/\r\n/g,` +`).replace(/[\r\f]/g,` +`):t}var $r=null;function Cn(){return $r===null&&($r=new Intl.Segmenter(void 0,{granularity:"grapheme"})),$r}var Ir=null,oS;function fS(){return Ir===null&&(Ir=new Intl.Segmenter(oS,{granularity:"word"})),Ir}var dS=/\p{Script=Arabic}/u,Ke=/\p{M}/u,sa=/\p{Nd}/u;function C1(t){return dS.test(t)}var hS=/[\u3000-\u30FF\u3130-\u318F\u3400-\u4DBF\u4E00-\u9FFF\uAC00-\uD7AF\uF900-\uFAFF\uFF00-\uFFEF\u{20000}-\u{2A6DF}\u{2A700}-\u{2EE5D}\u{2F800}-\u{2FA1F}\u{30000}-\u{33479}]/u;function Yt(t){return hS.test(t)}function xS(t){let e=ca(t);return e!==null&&(no.has(e)||In.has(e))}var mS=new Set(["\xA0","\u202F","\u2060","\uFEFF"]),pS=new Set(["-","\u2010","\u2013","\u2014"]);function gS(t){let e=ca(t);return e!==null&&mS.has(e)}function SS(t){let e=ca(t);return e!==null&&pS.has(e)}function O1(t,e){return gS(t)?!1:e?!(xS(t)||SS(t)):!0}var no=new Set(["\uFF0C","\uFF0E","\uFF01","\uFF1A","\uFF1B","\uFF1F","\u3001","\u3002","\u30FB","\uFF09","\u3015","\u3009","\u300B","\u300D","\u300F","\u3011","\u3017","\u3019","\u301B","\u30FC","\u3005","\u303B","\u309D","\u309E","\u30FD","\u30FE"]),Ju=new Set(['"',"(","[","{","\xA1","\xBF","\u201C","\u2018","\u201A","\u201E","\xAB","\u2039","\u2E18","\uFF08","\u3014","\u3008","\u300A","\u300C","\u300E","\u3010","\u3016","\u3018","\u301A"]),lo=new Set(["'","\u2019"]),In=new Set([".",",","!","?",":",";","\u060C","\u061B","\u061F","\u0964","\u0965","\u104A","\u104B","\u104C","\u104D","\u104F",")","]","}","%",'"',"\u201D","\u2019","\xBB","\u203A","\u2026"]),yS=new Set([":",".","\u060C","\u061B"]),vS=new Set(["\u104F"]),AS=new Set(["\u201D","\u2019","\xBB","\u203A","\u300D","\u300F","\u3011","\u300B","\u3009","\u3015","\uFF09"]);function bS(t){if(io(t))return!0;let e=!1;for(let n of t){if(In.has(n)||Pn(n)){e=!0;continue}if(!(e&&Ke.test(n)))return!1}return e}function NS(t){for(let e of t)if(!no.has(e)&&!In.has(e))return!1;return t.length>0}function ES(t){if(io(t))return!0;for(let e of t)if(!Ju.has(e)&&!lo.has(e)&&!Ke.test(e)&&!Pn(e))return!1;return t.length>0}function io(t){let e=!1;for(let n of t)if(!(n==="\\"||Ke.test(n))){if(Ju.has(n)||In.has(n)||lo.has(n)){e=!0;continue}return!1}return e}function Kl(t,e){let n=e-1;if(n<=0)return Math.max(n,0);let l=t.charCodeAt(n);if(l<56320||l>57343)return n;let i=n-1;if(i<0)return n;let a=t.charCodeAt(i);return a>=55296&&a<=56319?i:n}function ca(t){if(t.length===0)return null;let e=Kl(t,t.length);return t.slice(e)}function MS(t){for(let e of t)if(!Ke.test(e))return e;return null}function ao(t,e=t.length){for(;e>0;){let n=Kl(t,e),l=t.slice(n,e);if(!Ke.test(l))return l;e=n}return null}var CS=[36,37,43,43,92,92,162,165,176,177,1423,1423,1545,1547,1642,1642,2046,2047,2546,2547,2553,2555,2801,2801,3065,3065,3449,3449,3647,3647,6107,6107,8240,8247,8279,8279,8352,8399,8451,8451,8457,8457,8470,8470,8722,8723,43064,43064,65020,65020,65129,65130,65284,65285,65504,65505,65509,65510,73693,73696,123647,123647,126124,126124,126128,126128];function FS(t,e){for(let n=0;n=e[n]&&t<=e[n+1])return!0;return!1}function Pn(t){let e=t.codePointAt(0);return e!==void 0&&FS(e,CS)}function BS(t){let e=ao(t);return e!==null&&Pn(e)}function DS(t){let e=MS(t);return e!==null&&sa.test(e)}function TS(t){let e=t.length;for(;e>0;){let n=Kl(t,e),l=t.slice(n,e);if(Ke.test(l)||Ju.has(l)||lo.has(l)){e=n;continue}break}return e<=0||e===t.length?null:{head:t.slice(0,e),tail:t.slice(e)}}function kS(t,e,n){return n==="text"&&!e&&t.length===1&&t!=="-"&&t!=="\u2014"?t:null}function F1(t,e){return t&&e!==null&&yS.has(e)}function OS(t){let e=ca(t);return e!==null&&vS.has(e)}function RS(t){if(t.length<2||t[0]!==" ")return null;let e=t.slice(1);return/^\p{M}+$/u.test(e)?{space:" ",marks:e}:null}function to(t){let e=t.length;for(;e>0;){let n=Kl(t,e),l=t.slice(n,e);if(AS.has(l))return!0;if(!In.has(l))return!1;e=n}return!1}function zS(t,e){if(e==="pre-wrap"){if(t===" ")return"preserved-space";if(t===" ")return"tab";if(t===` +`)return"hard-break"}return t===" "?"space":t==="\xA0"||t==="\u202F"||t==="\u2060"||t==="\uFEFF"?"glue":t==="\u200B"?"zero-width-break":t==="\xAD"?"soft-hyphen":"text"}var wS=/[\x20\t\n\xA0\xAD\u200B\u202F\u2060\uFEFF]/;function Mn(t){return t.length===1?t[0]:t.join("")}function B1(t,e){let n=[];for(let l=t.length-1;l>=0;l--)n.push(t[l]);return n.push(e),Mn(n)}function _S(t,e,n,l){if(!wS.test(t))return[{text:t,isWordLike:e,kind:"text",start:n}];let i=[],a=null,u=0,s=!1,c=0;for(let r of t){let f=zS(r,l),x=f==="text"&&e;if(a!==null&&f===a&&x===s){c+=r.length;continue}a!==null&&i.push({text:t.slice(u,c),isWordLike:s,kind:a,start:n+u}),a=f,u=c,s=x,c+=r.length}return a!==null&&i.push({text:t.slice(u),isWordLike:s,kind:a,start:n+u}),i}function Pr(t){return t==="space"||t==="preserved-space"||t==="zero-width-break"||t==="hard-break"}var LS=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function D1(t,e){let n=t.texts[e];return n.startsWith("www.")?!0:LS.test(n)&&e+1=t.len||Pr(t.kinds[d]))continue;let S=[],A=o<0?t.starts[d]:o,F=d;for(;F0&&(l.push(Mn(S)),i.push(!0),a.push("text"),u.push(A),s=F-1)}return{len:l.length,texts:l,isWordLike:i,kinds:a,starts:u}}var HS=new Set([":","-","/","\xD7",",",".","+","\u2013","\u2014"]),GS=/[\p{P}\p{S}\p{Co}]/u,R1=/\p{Emoji_Presentation}/u,YS=new Set(["?","\u058A","-","\u2010","\u2012","\u2013","\u2014","\u2026","\u203C","\u203D","\u2049"]);function jS(t){return t>=33&&t<=47&&t!==45||t>=58&&t<=64&&t!==63||t>=91&&t<=96||t>=123&&t<=126}function z1(t){let e=t.charCodeAt(0);return e<128?jS(e):!YS.has(t)&&!R1.test(t)&&GS.test(t)}function T1(t){let e=!1;for(let n of t)if(!Ke.test(n)){if(!z1(n))return!1;e=!0}return e}function QS(t){for(let e=t.length;e>0;){let n=Kl(t,e),l=t.slice(n,e);if(Ke.test(l)){e=n;continue}return z1(l)||Pn(l)}return!1}var eo=/[A-Za-z#&*<=>@^_`~]/;function w1(t,e){return t.charCodeAt(0)<128&&e.charCodeAt(0)<128}function Ve(t,e,n){if(!n.geckoAsciiLineBreaks||e<=0||e>=t.length)return null;let l=ao(t,e),i=String.fromCodePoint(t.codePointAt(e));if(l===null||!w1(l,i))return null;let a=Pn(l),u=Pn(i);return!a&&!u?null:!!(i===")"||i==="]"||i==="}"||"!,.:;?/".includes(i)||"([{".includes(l)||l==='"'||l==="'"||i==='"'||i==="'"||i==="|"||i==="-"||a&&eo.test(i)||eo.test(l)&&u||u&&(")]}".includes(l)||/[0-9]/.test(l))||a&&("([{".includes(i)||/[0-9]/.test(i)))}function Ku(t,e,n,l=t.length){let i=e[0];if(i===void 0||!"([{".includes(i))return null;let a=ao(t,l);return a===null?null:n.geckoAsciiLineBreaks&&w1(a,i)?eo.test(a)||sa.test(a)||`"'([{`.includes(a)||Pn(a):a.charCodeAt(0)>=128?!Yt(a)&&/[\p{L}\p{N}]/u.test(a)?!0:null:/[A-Za-z0-9]/.test(a)||"$'(/<@[^_`{".includes(a)}function XS(t,e,n,l,i){if(n[0]==="-"&&Yt(t))return!0;if(Yt(t)||Yt(n))return!1;let a=Ku(t,n,i);if(a!==null)return a;let u=!e&&T1(t),s=!l&&T1(n),c=BS(t),r=(e||c)&&QS(t);return!u&&!s&&!r?!1:(e||u||c)&&(l||s)}function k1(t){for(let e of t)if(sa.test(e))return!0;return!1}function ua(t){if(t.length===0)return!1;for(let e of t)if(!(sa.test(e)||HS.has(e)))return!1;return!0}function ZS(t,e,n){let l=[],i=[],a=[],u=[];function s(c,r){if(c.includes("-")){let f=c.split("-"),x=f.length>1;for(let o=0;os+1){l.push(Mn(x)),i.push(d),a.push("text"),u.push(t.starts[s]),s=o;continue}}l.push(c),i.push(f),a.push(r),u.push(t.starts[s]),s++}return{len:l.length,texts:l,isWordLike:i,kinds:a,starts:u}}function KS(t){let e=[],n=[],l=[],i=[],a=0;for(;a=0;v--){let y=a[v];if(y.length===0)continue;let B=b?.at(-1)??(p>=0?a[p]:null);if(s[v]==="text"&&!u[v]&&B!==null&&s[p]==="text"&&((Ve(t,c[v]+y.length,e)??(ES(y)&&Ku(y,B,e)!==!1))||y==="-"&&DS(B))){b===null&&(b=[]),b.push(y),c[p]=c[v],a[v]="";continue}b!==null&&(a[p]=B1(b,a[p]),b=null),p=v}b!==null&&(a[p]=B1(b,a[p]));let C=0;for(let v=0;v=0&&(!O1(e.texts[o-1],n.breakKeepAllAfterPunctuation)||Ve(t,e.starts[o],n)===!1)&&x(o),s<0&&(s=o),c=c||Yt(d);continue}x(o),l.push(d),i.push(e.isWordLike[o]),a.push(S),u.push(e.starts[o])}return x(e.len),{len:l.length,texts:l,isWordLike:i,kinds:a,starts:u}}function _1(t,e){let n=t.charCodeAt(e+1);if(n<128){if(n<48||n>57)return!1}else{let l=t.codePointAt(e+1);if(l===void 0||!sa.test(String.fromCodePoint(l)))return!1}for(let l=e;l>0;){let i=Kl(t,l),a=t.slice(i,l);if(!Ke.test(a))return Yt(a)||!/[\p{L}\p{N}]/u.test(a);l=i}return!0}function IS(t,e){let n=[],l=0,i=0,a=!1,u=!1,s=!1,c=!1,r=!1;function f(){i!==l&&(n.push({text:t.slice(l,i),start:l,overflow:a?c?"grapheme":"none":"word-like"}),l=i,a=!1,u=!1,s=!1,c=!1,r=!1)}function x(d,S,A){l=S,i=S+d.length,a=A,c=d==="-",u=to(d),s=Ju.has(d)}function o(d,S){i+=d.length,a=a||S,c=c||d==="-";let A=to(d);d.length===1&&In.has(d)?u=u||A:u=A,s=!1}for(let d of Cn().segment(t)){let S=d.segment,A=Yt(S);if(i===l){x(S,d.index,A);continue}let F=S==="-"&&a;if(F&&_1(t,d.index)&&(r=!0),s||no.has(S)||In.has(S)||F||r&&!A||e.carryCJKAfterClosingQuote&&A&&u){o(S,A);continue}if(!a&&!A){o(S,A);continue}f(),x(S,d.index,A)}return f(),n}function PS(t,e,n){if(e.length<=1)return e;let l=[],i=-1,a=!1;function u(c,r){let f=e[c].start,x=r=0&&(!O1(e[c-1].text,n.breakKeepAllAfterPunctuation)||Ve(t,r.start,n)===!1)&&s(c),i<0&&(i=c),a=a||Yt(r.text)}return s(e.length),l}function L1(t,e,n){let l=IS(t,e);return n==="keep-all"?PS(t,l,e):l}function ty(t){return t==="-"||t==="\u058A"||t==="\u2010"||t==="\u2012"||t==="\u2013"||t==="\u2014"}function q1(t){if(t.length===0||/\p{Cf}/u.test(t))return!1;for(let{segment:e}of Cn().segment(t)){let n=String.fromCodePoint(e.codePointAt(0));if(!/[\p{P}\p{S}]/u.test(n)||R1.test(n)||e.includes("\uFE0F")||/\p{Emoji_Modifier}/u.test(n))return!1}return!0}function U1(t){if(!/[-\u058A\u2010\u2012\u2013\u2014]/u.test(t))return null;let e=[],n=0;for(let l of Cn().segment(t)){n++;let i=l.segment==="-"&&_1(t,l.index);ty(l.segment)&&!i&&e.push(n)}return e.length===0?null:e}function H1(t,e,n="normal",l="normal"){let i=n==="pre-wrap"?rS(t):cS(t);if(i.length===0)return{normalized:i,len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let a=WS(i,e,n),u=l==="keep-all"?$S(i,a,e):a;return{normalized:i,...u}}var Jl=null,G1=new Map,Wl=null,ey=96,ny=/\p{Emoji_Presentation}/u,ly=/[\p{Emoji_Presentation}\p{Extended_Pictographic}\p{Regional_Indicator}\uFE0F\u20E3]/u,Y1=new Map;function uo(){if(Jl!==null)return Jl;if(typeof OffscreenCanvas<"u")return Jl=new OffscreenCanvas(1,1).getContext("2d"),Jl;if(typeof document<"u")return Jl=document.createElement("canvas").getContext("2d"),Jl;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function iy(t){let e=G1.get(t);return e||(e=new Map,G1.set(t,e)),e}function Je(t,e){let n=e.get(t);return n===void 0&&(n={width:uo().measureText(t).width},e.set(t,n)),n}function $l(){if(Wl!==null)return Wl;if(typeof navigator>"u")return Wl={geckoAsciiLineBreaks:!1,lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,breakKeepAllAfterPunctuation:!0,preferPrefixWidthsForBreakableRuns:!1},Wl;let t=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&t.includes("Safari/")&&!t.includes("Chrome/")&&!t.includes("Chromium/")&&!t.includes("CriOS/")&&!t.includes("FxiOS/")&&!t.includes("EdgiOS/"),l=t.includes("Chrome/")||t.includes("Chromium/")||t.includes("CriOS/")||t.includes("Edg/");return Wl={geckoAsciiLineBreaks:t.includes("Firefox/")&&!t.includes("FxiOS/"),lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:l,breakKeepAllAfterPunctuation:!n,preferPrefixWidthsForBreakableRuns:n},Wl}function ay(t){let e=t.match(/(?:^|\D)(\d+(?:\.\d+)?)\s*px/);return e?parseFloat(e[1]):16}function uy(t){return ny.test(t)||t.includes("\uFE0F")}function j1(t){return ly.test(t)}function sy(t){let e=Y1.get(t);if(e!==void 0)return e;let n=ay(t),l=uo();l.font=t;let i=l.measureText("\u{1F600}").width;if(e=0,i>n+.5&&typeof document<"u"&&document.body!==null){let a=document.createElement("span");a.style.font=t,a.style.display="inline-block",a.style.visibility="hidden",a.style.position="absolute",a.textContent="\u{1F600}",document.body.appendChild(a);let u=a.getBoundingClientRect().width;document.body.removeChild(a),i-u>.5&&(e=i-u)}return Y1.set(t,e),e}function cy(t){let e=0,n=Cn();for(let l of n.segment(t))uy(l.segment)&&e++;return e}function ry(t,e){return e.emojiCount===void 0&&(e.emojiCount=cy(t)),e.emojiCount}function Fn(t,e,n){return n===0?e.width:e.width-ry(t,e)*n}function Q1(t,e,n,l,i){if(e.breakableFitAdvances!==void 0&&e.breakableFitMode===i)return e.breakableFitAdvances;e.breakableFitMode=i;let a=Cn(),u=[];for(let f of a.segment(t))u.push(f.segment);if(u.length<=1)return e.breakableFitAdvances=null,e.breakableFitAdvances;if(i==="sum-graphemes"){let f=[];for(let x of u){let o=Je(x,n);f.push(Fn(x,o,l))}return e.breakableFitAdvances=f,e.breakableFitAdvances}if(i==="pair-context"||u.length>ey){let f=[],x=null,o=0;for(let d of u){let S=Je(d,n),A=Fn(d,S,l);if(x===null)f.push(A);else{let F=x+d,m=Je(F,n);f.push(Fn(F,m,l)-o)}x=d,o=A}return e.breakableFitAdvances=f,e.breakableFitAdvances}let s=[],c="",r=0;for(let f of u){c+=f;let x=Je(c,n),o=Fn(c,x,l);s.push(o-r),r=o}return e.breakableFitAdvances=s,e.breakableFitAdvances}function X1(t,e){let n=uo();n.font=t;let l=iy(t),i=e?sy(t):0;return{cache:l,emojiCorrection:i}}function oy(t,e,n){return n===0&&e>0&&e0?t.letterSpacing:0}function co(t,e){return e===0?0:t+e}function xy(t,e){return t.letterSpacing!==0&&t.spacingGraphemeCounts[e]>0?t.letterSpacing:0}function my(t,e,n,l,i){let a=e==="tab"?i+xy(t,n):t.lineEndFitAdvances[n];return co(l,a)}function Z1(t,e,n,l){let i=e==="tab"?0:t.lineEndFitAdvances[n];return co(l,i)}function V1(t,e,n,l,i){let a=e==="tab"?i:t.lineEndPaintAdvances[n];return co(l,a)}function py(t,e,n){return t.letterSpacing!==0&&e?n+t.letterSpacing:n}function gy(t,e){return t.letterSpacing===0?e:e+t.letterSpacing}function so(t,e,n){let l=e;if(l>=t.length||t[l]>=n)return l;let i=t.length;for(l++;l0)return t.spacingGraphemeCounts[l]>0?t.letterSpacing:0;if(oy(t.kinds,l,i))return 0;for(let a=l-1;a>=e;a--){let u=t.kinds[a];if(!(u==="space"||u==="zero-width-break"||u==="hard-break"||u==="soft-hyphen"))return a===e&&n>0||t.spacingGraphemeCounts[a]>0?t.letterSpacing:0}return 0}function yy(t,e,n,l,i,a){return e+Sy(t,n,l,i,a)}function vy(t,e){let n=0,l=t.chunks.length;for(;n0)return e;for(let i=e;i=t.widths.length)return-1;l=a.consumedEndSegmentIndex,n.segmentIndex=l,n.graphemeIndex=0}return-1}function $1(t,e){if(e.segmentIndex>=t.widths.length)return-1;let n=vy(t,e.segmentIndex);return n<0?-1:W1(t,n,e)}function Ay(t,e,n){if(n.segmentIndex>=t.widths.length)return-1;let l=e;for(;l=t.chunks[l].consumedEndSegmentIndex;)l++;return l>=t.chunks.length?-1:W1(t,l,n)}function I1(t,e){return P1(t,e)}function by(t,e,n){let{widths:l,kinds:i,breakableFitAdvances:a,breakablePreferredBreaks:u}=t;if(l.length===0)return 0;let c=$l().lineFitEpsilon,r=e+c,f=0,x=0,o=!1,d=0,S=0,A=0,F=0,m=-1,h=0;function g(){m=-1,h=0}function p(y=A,B=F,k=x){f++,n?.(k,d,S,y,B),x=0,o=!1,g()}function b(y,B){o=!0,d=y,S=0,A=y+1,F=0,x=B}function C(y,B,k){o=!0,d=y,S=B,A=y,F=B+1,x=k}function E(y,B){if(!o){b(y,B);return}x+=B,A=y+1,F=0}function M(y,B){let k=a[y],O=u[y]??null,j=O===null?-1:so(O,0,B+1),K=-1,tt=0,T=B;for(;Tr){if(O!==null&&K>B){p(y,K,tt),T=K,j=so(O,j,T+1),K=-1,tt=0;continue}p(),C(y,T,z)}else x+=z,A=y,F=T+1;let R=T+1;O!==null&&O[j]===R&&(K=R,tt=x,j++),T++}o&&A===y&&F===k.length&&(A=y+1,F=0)}let v=0;for(;v=l.length));){let y=l[v],B=i[v],k=K1(B);if(!o){y>r&&a[v]!==null?M(v,0):b(v,y),k&&(m=v+1,h=x-y),v++;continue}if(x+y>r){if(k){E(v,y),p(v+1,0,x-y),v++;continue}if(m>=0){if(A>m||A===m&&F>0){p();continue}p(m,0,h);continue}if(y>r&&a[v]!==null){p(),M(v,0),v++;continue}p();continue}E(v,y),k&&(m=v+1,h=x-y),v++}return o&&p(),f}function P1(t,e,n){if(t.simpleLineWalkFastPath)return by(t,e,n);let l={segmentIndex:0,graphemeIndex:0},i=$1(t,l);return Ny(t,l,i,e,n).lineCount}function Ny(t,e,n,l,i,a=Number.POSITIVE_INFINITY){let{widths:u,kinds:s,breakableFitAdvances:c,breakablePreferredBreaks:r,discretionaryHyphenWidth:f}=t,o=$l().lineFitEpsilon,d=l+o,S,A,F,m,h,g,p,b,C,E;function M(){return E==="soft-hyphen"&&p===h&&g===0?C:F}function v(T=h,z=g,R=M()){return m?(e.segmentIndex=T,e.graphemeIndex=z,yy(t,R,S,A,T,z)):null}function y(T,z){m=!0,h=T+1,g=0,F=z}function B(T,z,R){m=!0,h=T,g=z+1,F=R}function k(T,z){if(!m){y(T,z);return}F+=z,h=T+1,g=0}function O(T,z,R,X,Rt,Qt){if(!z)return;let zt=Z1(t,T,R,Rt),Bt=V1(t,T,R,Rt,X);p=R+1,b=F-Qt+zt,C=F-Qt+Bt,E=T}function j(T,z){let R=c[T],X=r[T]??null,Rt=X===null?-1:so(X,0,z+1),Qt=-1,zt=0;for(let Bt=z;Btd)return X!==null&&Qt>z?v(T,Qt,zt):v();F=ge,h=T,g=Bt+1}let ti=Bt+1;X!==null&&X[Rt]===ti&&(Qt=ti,zt=F,Rt++)}return m&&h===T&&g===R.length&&(h=T+1,g=0),null}let K=0,tt=null;for(;n>=0&&K0){let ge=j(R,Qt);if(ge!==null){z=ge;break t}}else if(ti>d&&c[R]!==null){let ge=j(R,0);if(ge!==null){z=ge;break t}}else y(R,Bt);O(X,Rt,R,Bt,zt,Bn);continue}if(F+ti>d){let ge=F+Z1(t,X,R,zt),px=F+V1(t,X,R,zt,Bt);if(Rt&&ge<=d){k(R,Bn),z=v(R+1,0,px);break t}if(p>=0&&b<=d){if(h>p||h===p&&g>0){z=v();break t}z=v(p,0,C);break t}z=v();break t}k(R,Bn),O(X,Rt,R,Bt,zt,Bn)}z===null&&(z=p===T.consumedEndSegmentIndex&&g===0?v(T.consumedEndSegmentIndex,0,C):v(T.consumedEndSegmentIndex,0,F))}if(z===null)break;tt=z,K++,i?.(z,S,A,e.segmentIndex,e.graphemeIndex),K1?t+(e-1)*n:t}function Cy(t,e,n,l,i){let a=$l(),{cache:u,emojiCorrection:s}=X1(e,j1(t.normalized)),c=Fn("-",Je("-",u),s)+(i===0?0:i*2),f=Fn(" ",Je(" ",u),s)*8,x=i!==0;if(t.len===0)return Ey(n);let o=[],d=[],S=[],A=[],F=!x,m=n?[]:null,h=[],g=[],p=[],b=n?[]:null,C=[],E=0;function M(B,k,O,j,K,tt,T,z,R){K!=="text"&&K!=="space"&&K!=="zero-width-break"&&(F=!1),o.push(k),d.push(O),S.push(j),A.push(K),m?.push(tt),h.push(T),g.push(z),x&&p.push(R),b!==null&&b.push(B)}function v(B,k,O,j,K){let tt=x?tx(B,O):0,T=My(Fn(B,k,s),tt,i),z=O==="space"||O==="preserved-space"||O==="zero-width-break"?0:T,R=z===0?0:z+(tt>0?i:0),X=O==="space"||O==="zero-width-break"?0:T;if(K&&B.length>1){let Rt="sum-graphemes";i!==0?Rt="segment-prefixes":ua(B)?Rt="pair-context":a.preferPrefixWidthsForBreakableRuns&&(Rt="segment-prefixes");let Qt=Q1(B,k,u,s,Rt),zt=Qt===null||l==="keep-all"?null:U1(B);M(B,T,R,X,O,j,Qt,zt,tt);return}M(B,T,R,X,O,j,null,null,tt)}for(let B=0;B[u.id,u])),l=[],i=[];for(let u of e){let s=t.get(u.id);s?s.version!==u.version&&i.push(u):l.push(u)}let a=[...t.keys()].filter(u=>!n.has(u));return{added:l,updated:i,removed:a}}function oo(t,e){let n=Math.max(1,Math.ceil((t.text?.length??0)/Math.max(24,Math.floor(e/8))));return t.kind==="activity"?34:t.kind==="turnSummary"||t.kind==="notice"||t.kind==="typing"?32:24+n*ix}function By(t){return t.startsWith("```")?t.replace(/^```[^\n]*\n?/,"").replace(/\n?```\s*$/,""):t.replace(/^#{1,6}\s+/,"")}function Dy(t,e,n){if(!t.text)return oo(t,e);let i=n.get(t.id)??{version:t.version,text:t.text,prepared:null,blocks:new Map,blockKeys:[]};if(i.version!==t.version||i.text!==t.text||i.blockKeys.length===0){i.version=t.version,i.text=t.text;try{i.blockKeys=Vu(t.text,{gfm:!0,breaks:!0}).map(c=>c.raw).filter(Boolean)}catch{i.blockKeys=t.text.split(/\n{2,}/).filter(Boolean)}}if(!i.blocks.size)try{i.prepared=ro(t.text,nx,{whiteSpace:"pre-wrap"})}catch{i.prepared=null}n.set(t.id,i);let a=Math.max(80,t.kind==="user"?e*.78-24:e),u=i.blockKeys;if(u.length===0)return oo(t,e);let s=0;for(let c of u){let r=i.blocks.get(c);if(!r)try{r=ro(By(c),nx,{whiteSpace:"pre-wrap"}),i.blocks.set(c,r)}catch{return oo(t,e)}let f=c.startsWith("```"),x=f?Math.max(40,a-18):a;s+=ex(r,x,ix).height+(f?18:0)}return Math.max(34,16+s+Math.max(0,u.length-1)*8)}function ux(t,e,n=new Map,l){let i=new Float64Array(t.length),a=new Float64Array(t.length),u=0;for(let s=0;s0?c:Dy(t[s],e,n);a[s]=r,u+=r}return{tops:i,heights:a,totalHeight:u}}function lx(t,e){let n=0,l=t.length;for(;n>>1;t[i]<=e?n=i+1:l=i}return n}function sx(t,e,n,l=4){if(t.tops.length===0)return{first:0,last:0};let i=Math.max(0,lx(t.tops,Math.max(0,e))-1-l),a=Math.min(t.tops.length,lx(t.tops,e+n)+l);return{first:i,last:a}}function Ty(t,e){let n=t??{},l=n?.request??n,i=n?.sessionId??l?.sessionId,a=n?.permissionId??l?.permissionId;if(!(!a||i!==e))return{permissionId:String(a),title:l.toolCall?.title,kind:l.toolCall?.kind,pending:!0,options:(l.options??[]).map(u=>({id:String(u.optionId??u.id),name:String(u.name??u.optionId),allow:String(u.kind??"").startsWith("allow")}))}}function ky(t,e,n){let l=typeof n?.promptId=="string"?n.promptId:void 0;if(!l)return;let i=e.get(l);i&&t.delete(i),e.delete(l)}function fo(...t){let e=new Map;for(let n of t.flat())e.set(n.seq,n);return[...e.values()].sort((n,l)=>n.seq-l.seq)}function Oy(t,e,n,l){n.add(l);let i=e.get(l);i&&t.delete(i),e.delete(l)}function Ry(t,e,n){return!e&&!n?t:t.filter(l=>e?l.id!==e:l.prompt!==n)}function Il(t){return typeof t=="string"?t:t?.type==="text"?String(t.text??""):typeof t?.formatted_output=="string"?t.formatted_output:Array.isArray(t)?t.map(Il).join(""):t&&typeof t=="object"?Il(t.content??t.text??t.output??t.rawOutput):""}function zy(t){return(Il(t.content)||Il(t.rawOutput)||Il(t.output)).slice(0,4e3)}function wy(t){let e=Number(t?.additions??t?.added??NaN),n=Number(t?.deletions??t?.removed??NaN),l=[...Array.isArray(t?.content)?t.content:[],...Array.isArray(t?.rawOutput?.content)?t.rawOutput.content:[]].filter(i=>i?.type==="diff");if((!Number.isFinite(e)||!Number.isFinite(n))&&l.length>0){Number.isFinite(e)||(e=0),Number.isFinite(n)||(n=0);for(let i of l){let a=String(i.oldText??""),u=String(i.newText??""),s=a?a.split(` +`):[],c=u?u.split(` +`):[];if(s.length>1e3||c.length>1e3){e+=c.length,n+=s.length;continue}let r=new Uint32Array(c.length+1);for(let x of s){let o=new Uint32Array(c.length+1);for(let d=0;d{let i=new WebSocket(e);this.socket=i;let a=!1;i.onopen=()=>{a=!0,n()},i.onerror=()=>{this.opening=!1,l(new Error("Unable to connect to acpmux WebSocket"))},i.onclose=()=>{if(this.socket===i){if(!a){this.opening=!1,l(new Error("acpmux WebSocket closed before connect"));return}for(let u of this.pending.values())u.reject(new Error("acpmux WebSocket closed"));this.pending.clear(),this.emit("disconnected"),this.hasConnected&&!this.closed&&this.scheduleReconnect()}},i.onmessage=u=>this.receive(String(u.data))});try{await this.request("initialize",{protocolVersion:1,clientInfo:{name:"cmux-react-agent-pane",version:"1"},clientCapabilities:{}});let n=await this.request("_acpmux/watch",{enabled:!0});this.sessions=(n?.sessions??[]).filter(a=>a.sessionId);let l=await this.request("_acpmux/harnesses",{}),i=await this.request("_acpmux/models",{}).catch(()=>{});this.catalog=Ly(l,i),this.selectedSessionId&&!this.sessions.some(a=>a.sessionId===this.selectedSessionId)&&(this.selectedSessionId=this.sessions[0]?.sessionId,this.events=[],this.historyExhausted=!1,this.rows.clear(),this.firstSeq=void 0,this.lastSeq=0,this.summary=void 0,this.queue=[],this.turnOpen=!1,this.turnStartedAt=void 0,this.turnSummaryIds.clear(),this.turnToolCount=0,this.streamingAssistant=void 0,this.streamingAssistantMessageId=void 0,this.streamingActivity=void 0,this.streamingUserMessage=void 0,this.sawUserMessage=!1,this.chunkSeqsByRow.clear(),this.optimisticPromptRows.clear(),this.optimisticPromptTexts.clear(),this.supersededMessageIds.clear(),this.messageRows.clear(),this.pendingPermission=void 0),this.selectedSessionId||(this.selectedSessionId=this.sessions[0]?.sessionId),this.selectedSessionId&&await this.attach(this.selectedSessionId,this.lastSeq>0?this.lastSeq:void 0),this.hasConnected=!0,this.emit("connected")}catch(n){throw this.socket?.close(),n}finally{this.opening=!1}}scheduleReconnect(){this.reconnectTimer!==void 0||this.closed||(this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=void 0,this.open().catch(()=>this.scheduleReconnect())},250))}receive(e){let n;try{n=JSON.parse(e)}catch{return}if("id"in n&&typeof n.id=="number"){let i=this.pending.get(n.id);if(!i)return;this.pending.delete(n.id),n.error?i.reject(new Error(n.error.message??"acpmux request failed")):i.resolve(n.result);return}let l=n;l.method==="_acpmux/event"?this.apply(l.params):l.method==="session/update"?this.apply({sessionId:l.params?.sessionId,seq:Number(l.params?._meta?.acpmux?.seq??0),at:Number(l.params?._meta?.acpmux?.at??Date.now()),dir:"in",kind:String(l.params?.update?.sessionUpdate??""),msg:{method:"session/update",params:{update:l.params?.update}}}):l.method==="_acpmux/session_changed"?this.sessionChanged(l.params):l.method==="_acpmux/prompt_accepted"?this.promptAccepted(l.params):l.method==="_acpmux/permission_pending"?this.applyPermission(l.params):l.method==="_acpmux/lagged"&&this.resyncAfterLag(l.params)}resyncAfterLag(e){let n=String(e?.sessionId??"");if(n&&n!==this.selectedSessionId)return;let l=this.selectedSessionId;if(!l)return;let i=this.selectionGeneration,a=this.lastSeq;this.emit("resyncing"),this.request("_acpmux/events",{sessionId:l,afterSeq:a,limit:5e3}).then(u=>{i!==this.selectionGeneration||this.selectedSessionId!==l||(this.events=fo(this.events,u?.events??[]),this.rebuild(),this.emit("resynced"))}).catch(()=>{})}request(e,n){if(!this.socket||this.socket.readyState!==1)return Promise.reject(new Error("acpmux WebSocket is disconnected"));let l=this.nextRequest++;return new Promise((i,a)=>{this.pending.set(l,{resolve:i,reject:a}),this.socket?.send(JSON.stringify({jsonrpc:"2.0",id:l,method:e,params:n}))})}async attach(e,n,l=this.selectionGeneration){if(l!==this.selectionGeneration||this.selectedSessionId!==e)return;let i={sessionId:e,limit:400,kinds:["transcript"],eventStream:!0};n!==void 0&&(i.afterSeq=n);let a=await this.request("_acpmux/attach",i);if(l!==this.selectionGeneration||this.selectedSessionId!==e)return;let u=a?.session??{};this.summary=u,this.queue=(u.queue??[]).map(s=>({id:String(s.promptId??s.id),prompt:String(s.text??s.prompt??s.preview??"")})),this.events=fo(a?.events??[],this.events),this.rebuild(),this.emit("attached")}sessionChanged(e){let n=e?.session;if(e?.kind==="purged"&&n?.sessionId){if(this.sessions=this.sessions.filter(l=>l.sessionId!==n.sessionId),n.sessionId===this.selectedSessionId){this.selectedSessionId=this.sessions[0]?.sessionId;let l=++this.selectionGeneration;this.events=[],this.rows.clear(),this.firstSeq=void 0,this.lastSeq=0,this.summary=void 0,this.queue=[],this.turnOpen=!1,this.turnStartedAt=void 0,this.turnSummaryIds.clear(),this.turnToolCount=0,this.streamingAssistant=void 0,this.streamingAssistantMessageId=void 0,this.streamingActivity=void 0,this.streamingUserMessage=void 0,this.sawUserMessage=!1,this.chunkSeqsByRow.clear(),this.optimisticPromptRows.clear(),this.optimisticPromptTexts.clear(),this.supersededMessageIds.clear(),this.messageRows.clear(),this.pendingPermission=void 0,this.emit("session purged"),this.selectedSessionId&&this.attach(this.selectedSessionId,void 0,l).catch(()=>{})}else this.emit("session purged");return}n?.sessionId&&(this.sessions=[...this.sessions.filter(l=>l.sessionId!==n.sessionId),n],n.sessionId===this.selectedSessionId&&(this.summary={...this.summary,...n},this.queue=(n.queue??this.queue).map(l=>({id:String(l.promptId??l.id),prompt:String(l.text??l.prompt??l.preview??"")}))),this.emit("session changed"))}applyPermission(e){let n=Ty(e,this.selectedSessionId??"");n&&(this.pendingPermission=n,this.emit("permission"))}promptAccepted(e){if(e?.sessionId&&e.sessionId!==this.selectedSessionId)return;let n=typeof e?.promptId=="string"?e.promptId:void 0;if(!n)return;let l=this.optimisticPromptRows.get(n);if(l){let i=this.rows.get(l);i?.pending&&this.rows.set(l,{...i,pending:!1,version:i.version+1})}if(e.queued===!0&&!this.queue.some(i=>i.id===n)){let i=this.optimisticPromptTexts.get(n);i&&(this.queue=[...this.queue,{id:n,prompt:i}])}this.emit("prompt accepted")}apply(e){!e?.seq||e.sessionId!==this.selectedSessionId||e.seq<=this.lastSeq||(this.events.push(e),this.lastSeq=e.seq,this.firstSeq=this.firstSeq===void 0?e.seq:Math.min(this.firstSeq,e.seq),this.reduce(e),this.emit(e.kind))}rebuild(){this.rows.clear(),this.optimisticPromptRows.clear(),this.optimisticPromptTexts.clear(),this.firstSeq=void 0,this.lastSeq=0,this.turnOpen=!1,this.turnStartedAt=void 0,this.turnSummaryIds.clear(),this.turnToolCount=0,this.streamingAssistant=void 0,this.streamingAssistantMessageId=void 0,this.streamingActivity=void 0,this.streamingUserMessage=void 0,this.sawUserMessage=!1,this.chunkSeqsByRow.clear(),this.supersededMessageIds.clear(),this.messageRows.clear(),this.pendingPermission=void 0;let e=[...this.events].sort((n,l)=>n.seq-l.seq);for(let n of e)this.lastSeq=Math.max(this.lastSeq,n.seq),this.firstSeq=this.firstSeq===void 0?n.seq:Math.min(this.firstSeq,n.seq),this.reduce(n)}reduce(e){let n=e.msg??{},l=_y(e);if(e.dir==="mux"){if(e.kind==="user_message"){let a=typeof n.promptId=="string"?n.promptId:void 0,u=typeof n.text=="string"?n.text:void 0,s=a??(u?[...this.optimisticPromptTexts.entries()].find(([,r])=>r===u)?.[0]:void 0);if(ky(this.rows,this.optimisticPromptRows,{...n,promptId:s}),s&&this.optimisticPromptTexts.delete(s),this.queue=Ry(this.queue,s??a,u),!(n.steer===!0&&this.turnOpen)){if(this.turnOpen&&(this.streamingAssistant||this.streamingActivity||this.turnToolCount>0)){let r=`summary-${e.seq}-prior`;this.rows.set(r,{id:r,version:1,at:e.at,kind:"turnSummary",durationMs:this.turnStartedAt===void 0?void 0:Math.max(0,e.at-this.turnStartedAt),toolCount:this.turnToolCount||void 0,status:"completed"})}this.turnToolCount=0,this.turnStartedAt=e.at,this.streamingAssistant=void 0,this.streamingAssistantMessageId=void 0,this.streamingActivity=void 0}this.rows.set(`user-${e.seq}`,{id:`user-${e.seq}`,version:1,at:e.at,kind:"user",text:String(n.text??"")}),this.turnOpen=!0,this.sawUserMessage=!0,this.streamingUserMessage=void 0}else if(e.kind==="turn_started"){if(this.turnOpen&&(this.streamingAssistant||this.streamingActivity||this.turnToolCount>0)){let a=`summary-${e.seq}-prior`;this.rows.set(a,{id:a,version:1,at:e.at,kind:"turnSummary",durationMs:this.turnStartedAt===void 0?void 0:Math.max(0,e.at-this.turnStartedAt),toolCount:this.turnToolCount||void 0,status:"completed"})}this.turnOpen=!0,this.turnToolCount=0,this.turnStartedAt=e.at,this.turnSummaryIds.delete("__current"),this.streamingAssistant=void 0,this.streamingAssistantMessageId=void 0,this.streamingActivity=void 0,this.sawUserMessage=!1,this.streamingUserMessage=void 0,this.rows.set("typing",{id:"typing",version:1,at:e.at,kind:"typing"})}else if(e.kind==="message_superseded"){let a=typeof n.oldMessageId=="string"?n.oldMessageId:void 0;a&&(Oy(this.rows,this.messageRows,this.supersededMessageIds,a),this.streamingAssistantMessageId===a&&(this.streamingAssistant=void 0,this.streamingAssistantMessageId=void 0))}else if(e.kind==="turn_end"||e.kind==="turn_result"){let a=typeof n.turnId=="string"?n.turnId:void 0;if(!this.turnOpen&&this.turnStartedAt===void 0&&!this.turnSummaryIds.has("__current")&&!(a&&this.turnSummaryIds.has(a)))return;if(this.turnOpen=!1,this.streamingAssistant){let f=this.rows.get(this.streamingAssistant);f&&this.rows.set(f.id,{...f,streaming:!1,version:f.version+1})}this.rows.delete("typing");let u=a,s=u??"__current",c=this.turnSummaryIds.get(s);if(!c&&e.kind==="turn_result"){let f=this.turnSummaryIds.get("__current");f&&(c=f,this.turnSummaryIds.set(s,f))}c??=`summary-${u??e.seq}`;let r=this.rows.get(c);if(this.rows.set(c,{id:c,version:(r?.version??0)+1,at:e.at,kind:"turnSummary",durationMs:this.turnStartedAt===void 0?r?.durationMs:Math.max(0,e.at-this.turnStartedAt),toolCount:this.turnToolCount||r?.toolCount,status:String(n.status??r?.status??"completed"),error:n.errorText??r?.error}),this.turnSummaryIds.set(s,c),this.turnToolCount=0,this.turnStartedAt=void 0,this.streamingAssistant=void 0,this.streamingAssistantMessageId=void 0,this.streamingActivity=void 0,this.streamingUserMessage=void 0,String(n.status??"")==="failed"){let f=String(n.errorText??n.error??""),x=new Set(Array.isArray(n.errorChunkSeqs)?n.errorChunkSeqs.map(Number):[]);for(let[o,d]of this.chunkSeqsByRow)(x.size>0&&d.every(S=>x.has(S))||x.size===0&&f&&this.rows.get(o)?.text?.includes(f))&&this.rows.delete(o)}e.kind==="turn_result"&&this.chunkSeqsByRow.clear()}else if(e.kind==="queued"||e.kind==="queue_updated"){let a=String(n.promptId??"");a&&(this.queue=[...this.queue.filter(u=>u.id!==a),{id:a,prompt:String(n.text??"")}])}else e.kind==="queue_removed"||e.kind==="dequeued"?this.queue=this.queue.filter(a=>a.id!==String(n.promptId??"")):e.kind==="permission_request"?this.applyPermission({...n,sessionId:e.sessionId}):e.kind==="permission_decision"?this.pendingPermission=void 0:e.kind==="status"?this.summary={...this.summary,status:n.status}:(e.kind==="resume_failed"||e.kind==="failover")&&this.rows.set(`notice-${e.seq}`,{id:`notice-${e.seq}`,version:1,at:e.at,kind:"notice",text:String(n.error??n.reason??e.kind)});return}if(!l)return;!this.turnOpen&&["agent_message_chunk","agent_thought_chunk","tool_call","tool_call_update"].includes(e.kind)&&(this.turnOpen=!0,this.turnStartedAt=e.at);let i=Il(l.content);if(e.kind==="user_message_chunk"&&i&&!this.sawUserMessage){let a=this.streamingUserMessage??`user-chunk-${e.seq}`,u=this.rows.get(a);this.rows.set(a,{id:a,version:(u?.version??0)+1,at:e.at,kind:"user",text:`${u?.text??""}${i}`}),this.streamingUserMessage=a}else if(e.kind==="agent_message_chunk"&&i){let a=typeof l.messageId=="string"?l.messageId:void 0;if(a&&this.supersededMessageIds.has(a))return;let u=!!(this.streamingAssistant&&(!a||!this.streamingAssistantMessageId||this.streamingAssistantMessageId===a));if(!u&&this.streamingAssistant){let r=this.rows.get(this.streamingAssistant);r&&this.rows.set(r.id,{...r,streaming:!1,version:r.version+1})}let s=u?this.streamingAssistant:`assistant-${e.seq}`,c=this.rows.get(s);this.rows.set(s,{id:s,version:(c?.version??0)+1,at:e.at,kind:"assistant",text:`${c?.text??""}${i}`,streaming:!0}),this.streamingAssistant=s,this.streamingActivity=void 0,this.streamingAssistantMessageId=a,a&&this.messageRows.set(a,s),this.chunkSeqsByRow.set(s,[...this.chunkSeqsByRow.get(s)??[],e.seq]),this.rows.delete("typing")}else if(e.kind==="agent_thought_chunk"&&i){let a=this.streamingActivity??`activity-${e.seq}`,u=this.rows.get(a),s=[...u?.items??[]],c=s.at(-1);c?.kind==="thought"?s[s.length-1]={...c,text:`${c.text}${i}`}:s.push({kind:"thought",text:i}),this.rows.set(a,{id:a,version:(u?.version??0)+1,at:e.at,kind:"activity",toolCount:u?.toolCount??0,items:s}),this.streamingActivity=a}else if(e.kind==="tool_call"||e.kind==="tool_call_update"){let a=String(l.toolCallId??`tool-${e.seq}`),u=this.streamingActivity??`activity-${e.seq}`,s=this.rows.get(u),c=[...s?.items??[]],r=c.findIndex(d=>d.tool?.id===a),f=r>=0?c[r].tool:void 0,x=wy(l),o={kind:"tool",text:String(l.title??l.name??f?.title??a),tool:{id:a,title:String(l.title??f?.title??a),kind:l.kind??f?.kind,status:String(l.status??f?.status??"in_progress"),inputSummary:l.rawInput?JSON.stringify(l.rawInput):f?.inputSummary,output:zy(l)||f?.output,additions:x.additions??f?.additions,deletions:x.deletions??f?.deletions}};r>=0?c[r]=o:(c.push(o),this.turnToolCount+=1),this.rows.set(u,{id:u,version:(s?.version??0)+1,at:e.at,kind:"activity",toolCount:c.filter(d=>d.kind==="tool").length,items:c}),this.streamingActivity=u}else e.kind==="plan"?this.rows.set(`plan-${e.seq}`,{id:`plan-${e.seq}`,version:1,at:e.at,kind:"plan",text:i||JSON.stringify(l.entries??l.content??"")}):(e.kind==="resume_failed"||e.kind==="failover")&&this.rows.set(`notice-${e.seq}`,{id:`notice-${e.seq}`,version:1,at:e.at,kind:"notice",text:String(n.error??n.reason??e.kind)})}emit(e="connected"){let n=this.summary,l=(n?.configOptions??[]).find(i=>i.category==="thought_level"||i.id==="reasoning_effort");this.listener({type:"snapshot",protocolVersion:1,rows:[...this.rows.values()].sort((i,a)=>i.at-a.at),sessions:this.sessions.map(i=>({sessionId:i.sessionId,displayTitle:i.title??i.name,title:i.title,name:i.name,status:i.status,model:i.model})),summary:n?{sessionId:n.sessionId,title:n.title,name:n.name,harness:n.harness,model:n.model,effort:l?.currentValue,status:n.status,modes:n.modes,configOptions:n.configOptions}:void 0,connection:e,sessionId:this.selectedSessionId,isWorking:this.turnOpen||n?.status==="running",queue:this.queue,permission:this.pendingPermission,catalog:this.catalog,canLoadOlder:!this.historyExhausted&&(this.firstSeq??1)>1})}snapshot(){this.emit()}async ensureSession(){return this.selectedSessionId||await this.create(),this.selectedSessionId}async send(e){let n=await this.ensureSession();if(!n)return;let l=crypto.randomUUID(),i=`local-${l}`,a=Date.now();this.optimisticPromptRows.set(l,i),this.optimisticPromptTexts.set(l,e),this.rows.set(i,{id:i,version:1,at:a,kind:"user",text:e,pending:!0}),this.emit();try{await this.request("session/prompt",{sessionId:n,prompt:[{type:"text",text:e}],_meta:{acpmux:{promptId:l,...this.turnOpen?{delivery:"turn"}:{}}}})}catch(u){let s=this.rows.get(i);throw s&&this.rows.set(i,{...s,pending:!1,failed:!0,version:s.version+1}),this.optimisticPromptRows.delete(l),this.optimisticPromptTexts.delete(l),this.emit("failed"),u}return n}async cancel(){this.selectedSessionId&&this.socket?.send(JSON.stringify({jsonrpc:"2.0",method:"session/cancel",params:{sessionId:this.selectedSessionId}}))}async permission(e,n){this.selectedSessionId&&await this.request("_acpmux/permission_respond",{sessionId:this.selectedSessionId,permissionId:e,optionId:n})}async select(e){let n=this.selectedSessionId,l=++this.selectionGeneration;return this.selectedSessionId=e,this.events=[],this.historyExhausted=!1,this.rows.clear(),this.firstSeq=void 0,this.lastSeq=0,this.turnOpen=!1,this.turnStartedAt=void 0,this.turnSummaryIds.clear(),this.streamingAssistant=void 0,this.streamingAssistantMessageId=void 0,this.streamingActivity=void 0,this.streamingUserMessage=void 0,this.sawUserMessage=!1,this.chunkSeqsByRow.clear(),this.optimisticPromptRows.clear(),this.optimisticPromptTexts.clear(),this.messageRows.clear(),this.supersededMessageIds.clear(),this.turnToolCount=0,this.pendingPermission=void 0,n&&await this.request("_acpmux/detach",{sessionId:n}),await this.attach(e,void 0,l),l===this.selectionGeneration&&this.selectedSessionId===e?e:void 0}async create(e){let n=e??this.host.newSessionHarness,l={mcpServers:[]};this.host.workingDirectory&&(l.cwd=this.host.workingDirectory),n&&(l._meta={acpmux:{harness:n}});let i=await this.request("session/new",l);if(i?.sessionId)return this.select(String(i.sessionId))}async setModel(e){this.selectedSessionId&&await this.request("session/set_model",{sessionId:this.selectedSessionId,modelId:e})}async setMode(e){this.selectedSessionId&&await this.request("session/set_mode",{sessionId:this.selectedSessionId,modeId:e})}async setConfig(e,n){this.selectedSessionId&&await this.request("session/set_config_option",{sessionId:this.selectedSessionId,configId:e,value:n})}async loadOlder(){if(!this.selectedSessionId||!this.firstSeq||this.firstSeq<=1||this.historyExhausted)return;let e=this.selectedSessionId,n=this.selectionGeneration,l=this.firstSeq,i=await this.request("_acpmux/events",{sessionId:e,beforeSeq:l,limit:400,kinds:["transcript"]});if(n!==this.selectionGeneration||this.selectedSessionId!==e)return;let a=this.summary,u=this.queue,s=this.pendingPermission;this.events=fo(i?.events??[],this.events),this.rebuild(),this.summary=a,this.queue=u,this.pendingPermission=s,this.historyExhausted=i?.hasMore===!1||!i?.events?.length||(this.firstSeq??1)<=1,this.emit("history")}close(){this.closed=!0,this.reconnectTimer!==void 0&&window.clearTimeout(this.reconnectTimer),this.reconnectTimer=void 0,this.socket?.close(),this.socket=void 0}};function Ly(t,e){let n=t?.harnesses??t?.items??t??[],l=new Map((e?.harnesses??[]).map(i=>[String(i.harness??i.name),i.models??[]]));return(Array.isArray(n)?n:Object.entries(n).map(([i,a])=>({id:i,...a}))).map(i=>({id:String(i.id??i.name),name:String(i.name??i.id),models:(i.models??l.get(String(i.id??i.name))??[]).map(a=>({id:String(a.id??a.modelId),name:a.name}))}))}var D=tl(ra(),1);function jt(t,e={}){let n=window.cmuxAcpmuxActions?.[t];if(n)return n(e);let l=window.webkit?.messageHandlers?.agentSession;return l?Promise.resolve(l.postMessage({id:crypto.randomUUID(),method:t,params:e})).then(i=>{if(!i.ok)throw new Error(i.error?.userMessage??"Request failed");return i.value}):Promise.reject(new Error("Native bridge is unavailable"))}function Pl(t,e,n){return t?.length?t.map((l,i)=>{if(l.type==="codespan")return(0,D.jsx)("code",{children:l.text},i);if(l.type==="link"){let a;try{a=/^https?:$/i.test(new URL(l.href,"https://cmux.invalid").protocol)?l.href:void 0}catch{a=void 0}return a?(0,D.jsx)("a",{href:a,rel:"noreferrer",onClick:u=>{u.preventDefault(),n(a)},children:Pl(l.tokens,l.text,n)},i):l.text}return"tokens"in l?(0,D.jsx)(H.default.Fragment,{children:Pl(l.tokens,"text"in l?l.text:l.raw??"",n)},i):l.raw??("text"in l?l.text:"")}):e}function Hy({source:t}){let e=l=>{jt("native.openURL",{url:l})},n;try{n=Vu(t,{gfm:!0,breaks:!0})}catch{n=[{type:"text",raw:t,text:t}]}return(0,D.jsx)(D.Fragment,{children:n.map((l,i)=>l.type==="code"?(0,D.jsxs)("pre",{children:[(0,D.jsx)("button",{type:"button",className:"acpmux-copy-code",onClick:()=>{jt("native.copy",{text:l.text})},"aria-label":"Copy code",children:"Copy"}),(0,D.jsx)("code",{children:l.text})]},i):l.type==="heading"?(0,D.jsx)("div",{className:`acpmux-heading acpmux-heading-${l.depth}`,children:Pl(l.tokens,l.text,e)},i):l.type==="paragraph"||l.type==="text"?(0,D.jsx)("p",{children:Pl(l.tokens,l.text,e)},i):l.type==="list"?(0,D.jsx)("ul",{children:l.items.map((a,u)=>(0,D.jsx)("li",{children:Pl(a.tokens,a.text,e)},u))},i):l.type==="blockquote"?(0,D.jsx)("blockquote",{children:Pl(l.tokens,l.text,e)},i):l.type==="hr"?(0,D.jsx)("hr",{},i):(0,D.jsx)("p",{children:l.raw},i))})}var fx=(0,H.memo)(function({row:e}){return(0,D.jsx)("div",{className:`acpmux-markdown ${e.kind==="user"?"acpmux-user-bubble":""}`,children:(0,D.jsx)(Hy,{source:e.text??""})})},(t,e)=>t.row.id===e.row.id&&t.row.version===e.row.version),Gy=(0,H.memo)(function({row:e,onToggleActivity:n,expanded:l}){return(0,D.jsxs)("div",{className:"acpmux-activity",children:[(0,D.jsxs)("button",{className:"acpmux-activity-toggle","aria-expanded":l,onClick:()=>n(e.id),children:[l?"\u2304":"\u203A"," Worked with ",e.toolCount??0," tool calls"]}),l&&(0,D.jsx)("div",{className:"acpmux-activity-items",children:(e.items??[]).map(i=>(0,D.jsxs)("div",{className:"acpmux-activity-item",children:[(0,D.jsx)("span",{className:"acpmux-glyph",children:i.kind==="tool"?"\u25A3":"\u2726"}),i.text,i.tool?.output&&(0,D.jsx)("pre",{children:i.tool.output})]},`${e.id}-${i.text}`))})]})},(t,e)=>t.row.id===e.row.id&&t.row.version===e.row.version&&t.expanded===e.expanded),Yy=(0,H.memo)(function({row:e}){return(0,D.jsxs)("div",{className:"acpmux-summary",children:["Worked for ",Math.round((e.durationMs??0)/1e3),"s \xB7 ",e.toolCount??0," tool calls"]})},(t,e)=>t.row.id===e.row.id&&t.row.version===e.row.version),Iu=(0,H.memo)(function({row:e}){return(0,D.jsx)("div",{className:"acpmux-muted",children:e.text})},(t,e)=>t.row.id===e.row.id&&t.row.version===e.row.version),jy=(0,H.memo)(function({row:e}){let n=e.permission;return(0,D.jsxs)("div",{className:"acpmux-permission-card",children:[(0,D.jsx)("strong",{children:n?.title||"Permission required"}),(0,D.jsx)("div",{className:"acpmux-permission-buttons",children:n?.options.map(l=>(0,D.jsx)("button",{onClick:()=>{jt("chat.permission",{permissionId:n.permissionId,optionId:l.id})},children:l.name},l.id))})]})},(t,e)=>t.row.id===e.row.id&&t.row.version===e.row.version),Qy=(0,H.memo)(function({row:e}){let n=e.items??[];return(0,D.jsxs)("div",{className:"acpmux-edited-files",children:[(0,D.jsx)("strong",{children:"Edited files"}),n.map(l=>(0,D.jsxs)("div",{children:[(0,D.jsx)("span",{className:"acpmux-glyph",children:l.tool?.kind==="edit"||l.tool?.kind==="fileChange"?"\u25A4":"\u25A3"}),l.tool?.inputSummary||l.text,(l.tool?.additions!==void 0||l.tool?.deletions!==void 0)&&(0,D.jsxs)("span",{className:"acpmux-diff-counts",children:[" +",l.tool.additions??0," \u2212",l.tool.deletions??0]})]},l.tool?.id||l.text))]})},(t,e)=>t.row.id===e.row.id&&t.row.version===e.row.version),dx={user:fx,assistant:fx,activity:Gy,editedFiles:Qy,turnSummary:Yy,notice:Iu,plan:Iu,typing:Iu,permission:jy};function Xy({children:t,onHeight:e}){let n=(0,H.useRef)(null);return(0,H.useLayoutEffect)(()=>{let l=n.current;if(!l)return;let i=()=>e(l.getBoundingClientRect().height),a=new ResizeObserver(i);return a.observe(l),i(),()=>a.disconnect()},[e]),(0,D.jsx)("div",{ref:n,children:t})}function Zy({rows:t,sessionId:e,onToggleActivity:n,expanded:l,foldToolCalls:i=!0}){let[a,u]=(0,H.useState)(0),[s,c]=(0,H.useState)(600),r=(0,H.useRef)(null),[f,x]=(0,H.useState)(760),[o,d]=(0,H.useState)(new Map),S=(0,H.useRef)(!1),A=(0,H.useRef)(new Map),F=(0,H.useRef)(null);(0,H.useEffect)(()=>{S.current=!1,F.current=null,u(0),r.current?.scrollTo(0,0)},[e]),(0,H.useEffect)(()=>{let y=r.current;if(!y)return;let B=new ResizeObserver(()=>{c(y.clientHeight),x(y.clientWidth)});return B.observe(y),x(y.clientWidth),()=>B.disconnect()},[]);let m={...dx,...window.cmuxAcpmuxRegistry},h=y=>y.kind==="activity"&&y.items?.some(B=>B.tool?.kind==="edit"||B.tool?.kind==="fileChange")?"editedFiles":y.kind,g=(0,H.useRef)(null),p=Math.max(120,Math.min(760,f-36)),b=(y,B)=>{let k=h(y),O=m[k]?.measure;if(O)return O(y,B);if(k==="editedFiles")return 34+(y.items?.length??0)*24;if(y.kind==="activity"&&(!i||l.has(y.id))){let j=Math.max(24,Math.floor(B/8)),K=tt=>{let T=tt.tool?.output??"";return 26+(T?Math.max(1,Math.ceil(T.length/j)):0)*20};return 28+(y.items??[]).reduce((tt,T)=>tt+K(T),0)}return o.get(y.id)},C=ux(t,p,A.current,b),E=sx(C,a,s);(0,H.useLayoutEffect)(()=>{let y=g.current,B=r.current,k=F.current;if(y&&B&&k&&k.rows[k.first]){let O=t.findIndex(j=>j.id===k.rows[k.first].id);if(O>=0&&k.first.5&&(B.scrollTop+=j)}}if(!S.current&&B&&C.totalHeight>B.clientHeight){let O=Math.max(0,C.totalHeight-B.clientHeight);B.scrollTop=O,u(O),S.current=!0}g.current=C,F.current={rows:t,first:E.first}},[C,E.first,t]);let M=(0,H.useRef)(null);return(0,D.jsx)("div",{ref:r,className:"acpmux-scroll",onScroll:y=>{let B=y.currentTarget.scrollTop;M.current===null&&(M.current=requestAnimationFrame(()=>{M.current=null,u(B)}))},children:(0,D.jsx)("div",{className:"acpmux-spacer",style:{height:C.totalHeight},children:(0,D.jsx)("div",{className:"acpmux-thread",children:t.slice(E.first,E.last).map((y,B)=>{let k=E.first+B,O=h(y),j=m[O]??Iu,K=!i||l.has(y.id),tt=(0,D.jsx)(j,{row:y,onToggleActivity:n,expanded:K}),T=j===dx[O]||!!j.measure;return(0,D.jsx)("article",{className:`acpmux-row acpmux-${O}`,"data-at":y.at,style:{transform:`translateY(${C.tops[k]}px)`,height:C.heights[k]},children:T?tt:(0,D.jsx)(Xy,{onHeight:z=>d(R=>{if(R.get(y.id)===z)return R;let X=new Map(R);return X.set(y.id,z),X}),children:tt})},y.id)})})})})}function Vy({permission:t}){return(0,D.jsxs)("div",{className:"acpmux-permission-card",children:[(0,D.jsx)("strong",{children:t.title||"Permission required"}),(0,D.jsx)("div",{className:"acpmux-permission-buttons",children:t.options.map(e=>(0,D.jsx)("button",{onClick:()=>{jt("chat.permission",{permissionId:t.permissionId,optionId:e.id})},children:e.name},e.id))})]})}function Ky({snapshot:t}){let e=t.catalog.find(i=>i.id===t.summary?.harness)?.models??[],n=t.summary?.modes?.availableModes??[],l=t.summary?.configOptions?.find(i=>i.category==="thought_level"||i.id==="effort"||i.id==="reasoning_effort");return(0,D.jsxs)("div",{className:"acpmux-chips",children:[(0,D.jsx)("select",{className:"acpmux-model","aria-label":"Model",value:t.summary?.model??"",onChange:i=>{jt("chat.model",{modelId:i.target.value})},children:e.map(i=>(0,D.jsx)("option",{value:i.id,children:i.name||i.id},i.id))}),(0,D.jsx)("select",{className:"acpmux-mode","aria-label":"Mode",value:t.summary?.modes?.currentModeId??"",onChange:i=>{jt("chat.mode",{modeId:i.target.value})},children:n.map(i=>(0,D.jsx)("option",{value:i.id,children:i.name||i.id},i.id))}),l&&(0,D.jsx)("select",{className:"acpmux-effort","aria-label":"Effort",value:l.currentValue??"",onChange:i=>{jt("chat.effort",{configId:l.id,value:i.target.value})},children:l.options.map(i=>(0,D.jsx)("option",{value:i.value,children:i.name||i.value},i.value))})]})}function hx(){let[t,e]=(0,H.useState)({type:"snapshot",protocolVersion:1,rows:[],sessions:[],connection:"connecting",isWorking:!1,queue:[],catalog:[],canLoadOlder:!1}),[n,l]=(0,H.useState)(new Set),[i,a]=(0,H.useState)(0),[u,s]=(0,H.useState)({}),[c,r]=(0,H.useState)(!1),f=(0,H.useRef)(new Map),x=(0,H.useRef)(void 0);(0,H.useEffect)(()=>{window.React=H.default,window.cmuxAcpmuxRegistry={register(p,b,C){C?.measure&&(b.measure=C.measure),window.cmuxAcpmuxRegistry[p]=b},configure(){a(p=>p+1)}},window.cmuxAcpmuxBridge={receive(p){if(p.protocolVersion!==1)return;let b=ax(f.current,p.rows);f.current=new Map(p.rows.map(C=>[C.id,C])),e(p)},applyTheme(p){b1(p)},applyCustomization(p){if("themeCSS"in p){let b=document.getElementById("acpmux-user-theme");b||(b=document.createElement("style"),b.id="acpmux-user-theme",document.head.append(b)),b.textContent=p.themeCSS??""}if(p.layout&&s(p.layout),"registryJS"in p){if(p.registryJS)try{(0,eval)(p.registryJS)}catch{}else if(window.cmuxAcpmuxRegistry)for(let b of Object.keys(window.cmuxAcpmuxRegistry))b!=="register"&&b!=="configure"&&delete window.cmuxAcpmuxRegistry[b];a(b=>b+1)}}};let A=[],F=!1;window.cmuxAcpmuxDebug={seedRows(p){let b=Array.from({length:p},(C,E)=>({id:`seed-${E}`,version:1,at:E,kind:E%9===0?"user":E%7===0?"activity":"assistant",text:`Seed row ${E}: **markdown** content for the 5,000-row fling.`}));f.current=new Map(b.map(C=>[C.id,C])),e(C=>({...C,rows:b,connection:"debug",isWorking:!1}))},startFling(p){let b=document.querySelector(".acpmux-scroll");if(!b)return;let C=performance.now(),E=b.scrollTop,M=Math.max(0,b.scrollHeight-b.clientHeight),v=C;A=[],F=!0;let y=B=>{A.push(B-v),v=B;let k=Math.min(1,(B-C)/(Math.max(.1,p)*1e3));b.scrollTop=E+(M-E)*(1-k),k<1?requestAnimationFrame(y):F=!1};requestAnimationFrame(y)},flingStats(){let p=[...A].sort((C,E)=>C-E),b=C=>p.length?p[Math.min(p.length-1,Math.round((p.length-1)*C))]:0;return{running:F,rows:f.current.size,frames:p.length,p50_ms:b(.5),p95_ms:b(.95),p99_ms:b(.99),max_ms:p.at(-1)??0}}};let m=!1,h,g=async()=>{try{let p=await jt("ready");if(m||p.protocolVersion!==1||p.transport!=="acpmux-websocket"||!p.endpoint||!p.token)return;let b=p.sessionId,C=M=>!M||M===b?Promise.resolve():jt("chat.persistSession",{sessionId:M}).then(()=>{b=M}).catch(()=>{}),E=await Wu.connect(p,M=>{f.current=new Map(M.rows.map(v=>[v.id,v])),e(M),(M.connection==="disconnected"||M.connection.startsWith("connecting"))&&r(!1),C(M.sessionId)});if(m){E.close();return}x.current=E,window.cmuxAcpmuxActions={"chat.send":async({text:M})=>{let v=await E.ensureSession();return await C(v),E.send(String(M??""))},"chat.cancel":()=>E.cancel(),"chat.permission":({permissionId:M,optionId:v})=>E.permission(String(M),String(v)),"chat.model":({modelId:M})=>E.setModel(String(M)),"chat.mode":({modeId:M})=>E.setMode(String(M)),"chat.effort":({configId:M,value:v})=>E.setConfig(String(M),String(v)),"chat.select":async({sessionId:M})=>C(await E.select(String(M))),"chat.new":async({harness:M})=>C(await E.create(M?String(M):void 0)),"chat.history":()=>E.loadOlder()},r(!0),E.snapshot()}catch(p){m||(e(b=>({...b,connection:`connecting: ${String(p)}`})),h=window.setTimeout(()=>{g()},250))}};return g(),()=>{m=!0,h!==void 0&&window.clearTimeout(h),x.current?.close(),x.current=void 0,delete window.cmuxAcpmuxActions}},[]);let o=A=>{if(A.preventDefault(),!c)return;let m=A.currentTarget.elements.namedItem("prompt"),h=m.value.trim();h&&(m.value="",jt("chat.send",{text:h}))},d=window.cmuxAcpmuxRegistry?.composerChips??Ky,S=`acpmux-shell density-${u.density??"comfortable"}`;return(0,D.jsxs)("section",{className:S,"data-bubble":u.bubble===!1?"false":"true","data-show-timestamps":u.showTimestamps?"true":"false",children:[(0,D.jsxs)("header",{className:"acpmux-header",children:[(0,D.jsxs)("div",{children:[(0,D.jsx)("strong",{className:"acpmux-title",children:t.summary?.title||t.summary?.name||"Agent Chat"}),(0,D.jsx)("span",{className:"acpmux-status",children:t.isWorking?"Working":t.connection})]}),(0,D.jsxs)("div",{className:"acpmux-session-controls",children:[(0,D.jsx)("select",{className:"acpmux-session",value:t.sessionId??"",onChange:A=>{jt("chat.select",{sessionId:A.target.value})},children:t.sessions.map(A=>(0,D.jsx)("option",{value:A.sessionId,children:A.title||A.name||A.sessionId.slice(0,8)},A.sessionId))}),(0,D.jsx)("button",{type:"button",className:"acpmux-new-session",onClick:()=>{jt("chat.new",{})},children:"New"})]})]}),t.canLoadOlder&&(0,D.jsx)("button",{className:"acpmux-load-older",type:"button",onClick:()=>{jt("chat.history")},children:"Load older messages"}),(0,D.jsx)(Zy,{rows:t.rows,sessionId:t.sessionId,expanded:n,foldToolCalls:u.foldToolCalls!==!1,onToggleActivity:A=>l(F=>{let m=new Set(F);return m.has(A)?m.delete(A):m.add(A),m})}),t.queue.length>0&&(0,D.jsx)("div",{className:"acpmux-queue",children:t.queue.map(A=>(0,D.jsxs)("span",{className:"acpmux-queued",children:["Queued: ",A.prompt]},A.id))}),t.permission?.pending&&(0,D.jsx)("div",{className:"acpmux-permission",children:(0,D.jsx)(Vy,{permission:t.permission})}),(0,D.jsxs)("form",{className:"acpmux-composer",onSubmit:o,children:[(0,D.jsx)(d,{snapshot:t}),(0,D.jsx)("textarea",{"aria-label":"Prompt",name:"prompt",rows:2,placeholder:"Ask anything",disabled:!c}),(0,D.jsx)("button",{type:"submit",disabled:!c,children:"Send"}),(0,D.jsx)("button",{type:"button",className:"acpmux-cancel",onClick:()=>{jt("chat.cancel")},disabled:!c,children:"Stop"})]})]})}var mx=tl(ra(),1);document.documentElement.dataset.cmuxWebviewKind="acpmux-agent-session";(0,xx.createRoot)(document.getElementById("root")).render((0,mx.jsx)(hx,{})); +/*! Bundled license information: + +scheduler/cjs/scheduler.production.js: + (** + * @license React + * scheduler.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +react/cjs/react.production.js: + (** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +react-dom/cjs/react-dom.production.js: + (** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +react-dom/cjs/react-dom-client.production.js: + (** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +react/cjs/react-jsx-runtime.production.js: + (** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) +*/ diff --git a/Resources/acpmux-agent-session/assets/styles.css b/Resources/acpmux-agent-session/assets/styles.css new file mode 100644 index 000000000000..9cbe88b0459d --- /dev/null +++ b/Resources/acpmux-agent-session/assets/styles.css @@ -0,0 +1,7 @@ +/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */ +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-outline-style:solid;--top-fade:0;--bottom-fade:0;--edge-fade-distance:1rem}}}@layer theme{:root,:host{--font-sans:var(--vscode-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);--font-mono:var(--vscode-editor-font-family,ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Consolas, monospace);--color-black:#000;--spacing:.25rem;--text-xs:11px;--text-xs--line-height:calc(1 / .75);--text-sm:12px;--text-sm--line-height:calc(1.25 / .875);--text-base:14px;--text-base--line-height:calc(1.5 / 1);--font-weight-medium:500;--radius-md:calc(var(--radius-md-base) * var(--corner-radius-scale));--radius-lg:calc(var(--radius-lg-base) * var(--corner-radius-scale));--radius-xl:calc(var(--radius-xl-base) * var(--corner-radius-scale));--radius-2xl:calc(var(--radius-2xl-base) * var(--corner-radius-scale));--radius-3xl:calc(var(--radius-3xl-base) * var(--corner-radius-scale));--shadow-xl:0px 8px 16px -4px #0000001f;--ease-out:cubic-bezier(0, 0, .2, 1);--blur-sm:8px;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-token-foreground:var(--agent-text);--color-token-description-foreground:var(--agent-muted);--color-token-input-background:var(--agent-input-bg);--color-token-dropdown-background:var(--agent-surface-elevated);--color-token-border:var(--agent-border);--color-token-border-heavy:var(--agent-border-strong);--color-token-button-foreground:var(--agent-text);--color-token-button-background:var(--agent-accent);--color-token-button-secondary-foreground:var(--agent-text);--color-token-button-secondary-background:var(--agent-control);--color-token-button-secondary-hover-background:var(--agent-control-hover);--color-token-input-placeholder-foreground:var(--agent-muted);--color-token-charts-blue:var(--agent-accent);--color-token-text-tertiary:var(--agent-muted);--color-token-menu-border:var(--agent-border);--color-token-list-hover-background:var(--agent-control-hover);--color-token-side-bar-background:var(--agent-surface-elevated);--color-token-text-link-foreground:var(--agent-accent);--color-token-editor-background:var(--agent-page-bg);--corner-radius-scale:1;--radius-md-base:.5rem;--radius-lg-base:.625rem;--radius-xl-base:.75rem;--radius-2xl-base:1rem;--radius-3xl-base:1.25rem;--spacing-token-button-composer:calc(var(--spacing) * 7);--spacing-token-button-composer-sm:calc(var(--spacing) * 5);--spacing-token-button-composer-gap:var(--spacing);--h-token-button-composer-gap:var(--spacing-token-button-composer-gap)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.right-2\.5{right:calc(var(--spacing) * 2.5)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-\[calc\(100\%\+6px\)\]{bottom:calc(100% + 6px)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-px{margin:1px}.ms-1{margin-inline-start:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-\[3px\]{margin-right:3px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-px{margin-bottom:1px}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-\[22px\]{width:22px;height:22px}.size-token-button-composer{width:var(--spacing-token-button-composer);height:var(--spacing-token-button-composer)}.\!h-auto{height:auto!important}.h-0{height:calc(var(--spacing) * 0)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-\[1lh\]{height:1lh}.h-\[1px\]{height:1px}.h-auto{height:auto}.h-full{height:100%}.h-token-button-composer{height:var(--spacing-token-button-composer)}.h-token-button-composer-sm{height:var(--spacing-token-button-composer-sm)}.max-h-\[25dvh\]{max-height:25dvh}.max-h-\[140px\]{max-height:140px}.max-h-none{max-height:none}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[1\.25rem\]{min-height:1.25rem}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-52{width:calc(var(--spacing) * 52)}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-16{max-width:calc(var(--spacing) * 16)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-\[60\%\]{max-width:60%}.max-w-\[77\%\]{max-width:77%}.max-w-\[320px\]{max-width:320px}.max-w-full{max-width:100%}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-56{min-width:calc(var(--spacing) * 56)}.min-w-max{min-width:max-content}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-\[auto_minmax\(0\,1fr\)_auto\]{grid-template-columns:auto minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,auto\)_auto_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,auto) auto minmax(0,1fr)}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-\[5px\]{gap:5px}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[color\:var\(--gray-0\)\]{border-color:var(--gray-0)}.border-token-border,.border-token-border\/80{border-color:var(--color-token-border)}@supports (color:color-mix(in lab, red, red)){.border-token-border\/80{border-color:color-mix(in oklab, var(--color-token-border) 80%, transparent)}}.border-transparent{border-color:#0000}.bg-\[color\:var\(--gray-0\)\]{background-color:var(--gray-0)}.bg-token-border\/70{background-color:var(--color-token-border)}@supports (color:color-mix(in lab, red, red)){.bg-token-border\/70{background-color:color-mix(in oklab, var(--color-token-border) 70%, transparent)}}.bg-token-button-secondary-background{background-color:var(--color-token-button-secondary-background)}.bg-token-charts-blue{background-color:var(--color-token-charts-blue)}.bg-token-dropdown-background,.bg-token-dropdown-background\/90{background-color:var(--color-token-dropdown-background)}@supports (color:color-mix(in lab, red, red)){.bg-token-dropdown-background\/90{background-color:color-mix(in oklab, var(--color-token-dropdown-background) 90%, transparent)}}.bg-token-dropdown-background\/95{background-color:var(--color-token-dropdown-background)}@supports (color:color-mix(in lab, red, red)){.bg-token-dropdown-background\/95{background-color:color-mix(in oklab, var(--color-token-dropdown-background) 95%, transparent)}}.bg-token-foreground,.bg-token-foreground\/5{background-color:var(--color-token-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-token-foreground\/5{background-color:color-mix(in oklab, var(--color-token-foreground) 5%, transparent)}}.bg-token-foreground\/10{background-color:var(--color-token-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-token-foreground\/10{background-color:color-mix(in oklab, var(--color-token-foreground) 10%, transparent)}}.bg-token-input-background\/90{background-color:var(--color-token-input-background)}@supports (color:color-mix(in lab, red, red)){.bg-token-input-background\/90{background-color:color-mix(in oklab, var(--color-token-input-background) 90%, transparent)}}.bg-token-menu-border{background-color:var(--color-token-menu-border)}.bg-token-side-bar-background{background-color:var(--color-token-side-bar-background)}.\[mask-image\:linear-gradient\(to_right\,black_calc\(100\%_-_0\.25rem\)\,transparent\)\]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - .25rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - .25rem),#0000)}.\[mask-repeat\:no-repeat\]{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.object-cover{object-fit:cover}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-2{padding:calc(var(--spacing) * 2)}.\!px-0{padding-inline:calc(var(--spacing) * 0)!important}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-\[var\(--padding-row-x\)\]{padding-inline:var(--padding-row-x)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-\[var\(--padding-row-y\)\]{padding-block:var(--padding-row-y)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pr-0{padding-right:calc(var(--spacing) * 0)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-left{text-align:left}.align-bottom{vertical-align:bottom}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\!leading-none{--tw-leading:1!important;line-height:1!important}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-\[18px\]{--tw-leading:18px;line-height:18px}.leading-\[calc\(var\(--codex-chat-font-size\)\+8px\)\]{--tw-leading:calc(var(--codex-chat-font-size) + 8px);line-height:calc(var(--codex-chat-font-size) + 8px)}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.break-words{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.text-current{color:currentColor}.text-token-button-secondary-foreground{color:var(--color-token-button-secondary-foreground)}.text-token-description-foreground{color:var(--color-token-description-foreground)}.text-token-dropdown-background{color:var(--color-token-dropdown-background)}.text-token-foreground{color:var(--color-token-foreground)}.text-token-input-placeholder-foreground{color:var(--color-token-input-placeholder-foreground)}.text-token-text-tertiary{color:var(--color-token-text-tertiary)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0px 2px 4px -1px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[0\.5px\]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(.5px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-token-border{--tw-ring-color:var(--color-token-border)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.\[--edge-fade-distance\:2rem\]{--edge-fade-distance:2rem}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\/collapsed-tool-activity\:text-token-foreground:is(:where(.group\/collapsed-tool-activity):hover *){color:var(--color-token-foreground)}.hover\:bg-token-button-secondary-hover-background:hover{background-color:var(--color-token-button-secondary-hover-background)}.hover\:bg-token-editor-background\/40:hover{background-color:var(--color-token-editor-background)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-token-editor-background\/40:hover{background-color:color-mix(in oklab, var(--color-token-editor-background) 40%, transparent)}}.hover\:bg-token-list-hover-background:hover{background-color:var(--color-token-list-hover-background)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-token-button-foreground:hover{color:var(--color-token-button-foreground)}.hover\:text-token-foreground:hover{color:var(--color-token-foreground)}}.focus\:bg-token-list-hover-background:focus{background-color:var(--color-token-list-hover-background)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-token-button-background:focus-visible{outline-color:var(--color-token-button-background)}@media (hover:hover){.enabled\:hover\:bg-token-foreground\/80:enabled:hover{background-color:var(--color-token-foreground)}@supports (color:color-mix(in lab, red, red)){.enabled\:hover\:bg-token-foreground\/80:enabled:hover{background-color:color-mix(in oklab, var(--color-token-foreground) 80%, transparent)}}.enabled\:hover\:bg-token-list-hover-background:enabled:hover{background-color:var(--color-token-list-hover-background)}}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.data-\[state\=checked\]\:translate-x-\[14px\][data-state=checked]{--tw-translate-x:14px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=open\]\:bg-token-foreground\/80[data-state=open]{background-color:var(--color-token-foreground)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=open\]\:bg-token-foreground\/80[data-state=open]{background-color:color-mix(in oklab, var(--color-token-foreground) 80%, transparent)}}.data-\[state\=open\]\:bg-token-list-hover-background[data-state=open]{background-color:var(--color-token-list-hover-background)}.data-\[state\=unchecked\]\:translate-x-\[2px\][data-state=unchecked]{--tw-translate-x:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}@container (min-width:500px){.\@\[500px\]\:inline{display:inline}}.electron\:rounded-md:where([data-codex-window-type=electron],[data-codex-window-type=electron] *){border-radius:var(--radius-md)}.electron\:p-1:where([data-codex-window-type=electron],[data-codex-window-type=electron] *){padding:calc(var(--spacing) * 1)}.electron\:shadow-\[0_4px_16px_0_rgba\(0\,0\,0\,0\.05\)\]:where([data-codex-window-type=electron],[data-codex-window-type=electron] *){--tw-shadow:0 4px 16px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.electron\:ring:where([data-codex-window-type=electron],[data-codex-window-type=electron] *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.electron\:ring-black\/10:where([data-codex-window-type=electron],[data-codex-window-type=electron] *){--tw-ring-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.electron\:ring-black\/10:where([data-codex-window-type=electron],[data-codex-window-type=electron] *){--tw-ring-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}@media (prefers-color-scheme:dark){.electron\:dark\:bg-token-dropdown-background:where([data-codex-window-type=electron],[data-codex-window-type=electron] *){background-color:var(--color-token-dropdown-background)}}.extension\:border:where([data-codex-window-type=extension],[data-codex-window-type=extension] *){border-style:var(--tw-border-style);border-width:1px}.extension\:border-token-border\/50:where([data-codex-window-type=extension],[data-codex-window-type=extension] *){border-color:var(--color-token-border)}@supports (color:color-mix(in lab, red, red)){.extension\:border-token-border\/50:where([data-codex-window-type=extension],[data-codex-window-type=extension] *){border-color:color-mix(in oklab, var(--color-token-border) 50%, transparent)}}.\[\&_\.ProseMirror\]\:\!h-5 .ProseMirror{height:calc(var(--spacing) * 5)!important}.\[\&_\.ProseMirror\]\:h-auto .ProseMirror{height:auto}.\[\&_\.ProseMirror\]\:\!min-h-5 .ProseMirror{min-height:calc(var(--spacing) * 5)!important}.\[\&_\.ProseMirror\]\:min-h-\[2rem\] .ProseMirror{min-height:2rem}.\[\&_\.ProseMirror\]\:min-w-0 .ProseMirror{min-width:calc(var(--spacing) * 0)}.\[\&_\.ProseMirror\]\:flex-1 .ProseMirror{flex:1}.\[\&_\.ProseMirror\]\:resize-none .ProseMirror{resize:none}.\[\&_\.ProseMirror\]\:overflow-hidden .ProseMirror{overflow:hidden}.\[\&_\.ProseMirror\]\:leading-5 .ProseMirror{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.\[\&_\.ProseMirror\]\:whitespace-nowrap .ProseMirror{white-space:nowrap}.\[\&_\.ProseMirror\]\:focus-visible\:outline-none .ProseMirror:focus-visible{--tw-outline-style:none;outline-style:none}.\[\&_\.ProseMirror_p\]\:m-0 .ProseMirror p{margin:calc(var(--spacing) * 0)}.\[\&_\.ProseMirror_p\]\:overflow-hidden .ProseMirror p{overflow:hidden}.\[\&_\.ProseMirror_p\]\:text-ellipsis .ProseMirror p{text-overflow:ellipsis}.\[\&_\.ProseMirror_p\]\:whitespace-nowrap .ProseMirror p{white-space:nowrap}.\[\&_\.contain-inline-size\]\:\[contain\:initial\] .contain-inline-size{contain:initial}.\[\&\>\*\:last-child\]\:mb-0>:last-child{margin-bottom:calc(var(--spacing) * 0)}.\[\&\>ol\:first-child\]\:mt-0>ol:first-child,.\[\&\>ul\:first-child\]\:mt-0>ul:first-child{margin-top:calc(var(--spacing) * 0)}}@property --top-fade{syntax:"";inherits:false;initial-value:0}@property --bottom-fade{syntax:"";inherits:false;initial-value:0}@property --edge-fade-distance{syntax:"";inherits:false;initial-value:1rem}@keyframes edge-fade{0%,1%{--top-fade:0;--bottom-fade:var(--edge-fade-distance,1rem)}99%,to{--top-fade:var(--edge-fade-distance,1rem);--bottom-fade:0}}@supports (animation-timeline:--scroll-fade){.vertical-scroll-fade-mask{-webkit-mask:linear-gradient(to bottom in oklch, oklch(60% 0 0/0), oklch(85% 0 0) var(--top-fade) calc(100% - var(--bottom-fade)), oklch(60% 0 0/0));-webkit-mask:linear-gradient(to bottom in oklch, oklch(60% 0 0/0), oklch(85% 0 0) var(--top-fade) calc(100% - var(--bottom-fade)), oklch(60% 0 0/0));-webkit-mask:linear-gradient(to bottom in oklch, oklch(60% 0 0/0), oklch(85% 0 0) var(--top-fade) calc(100% - var(--bottom-fade)), oklch(60% 0 0/0));mask:linear-gradient(to bottom in oklch, oklch(60% 0 0/0), oklch(85% 0 0) var(--top-fade) calc(100% - var(--bottom-fade)), oklch(60% 0 0/0));animation-name:edge-fade;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(self y)}}:root{color-scheme:dark;font-family:var(--font-sans);color:var(--agent-text,#f1f0e8);--agent-page-bg:transparent;--agent-surface:#1c1f1b57;--agent-surface-elevated:#1c1f1b7a;--agent-input-bg:#080a085c;--agent-border:#e9e7d81f;--agent-border-strong:#e9e7d838;--agent-text:#f1f0e8;--agent-muted:#f1f0e894;--agent-soft:#f1f0e8c7;--agent-accent:#8ab4f8;--agent-accent-soft:#8ab4f833;--agent-danger:#ff8d7e;--agent-shadow:#0003;--agent-card:var(--agent-input-bg);background:0 0}@supports (color:color-mix(in lab, red, red)){:root{--agent-card:color-mix(in srgb, var(--agent-input-bg) 90%, transparent)}}:root{--agent-card-hover:var(--agent-input-bg)}@supports (color:color-mix(in lab, red, red)){:root{--agent-card-hover:color-mix(in srgb, var(--agent-input-bg) 96%, transparent)}}:root{--agent-control:var(--agent-input-bg)}@supports (color:color-mix(in lab, red, red)){:root{--agent-control:color-mix(in srgb, var(--agent-input-bg) 44%, transparent)}}:root{--agent-control-hover:var(--agent-soft)}@supports (color:color-mix(in lab, red, red)){:root{--agent-control-hover:color-mix(in srgb, var(--agent-soft) 8%, transparent)}}:root{--agent-primary:var(--agent-accent)}@supports (color:color-mix(in lab, red, red)){:root{--agent-primary:color-mix(in srgb, var(--agent-accent) 90%, var(--agent-text))}}:root{--agent-primary-text:#fff;--cubic-enter:cubic-bezier(.19, 1, .22, 1);--cubic-exit-snappy:cubic-bezier(.65, 0, .4, 1);--transition-duration-basic:.15s;--gray-0:#fff;--color-background-surface:transparent;--color-background-surface-under:transparent;--color-background-elevated-primary:var(--agent-surface-elevated);--color-background-elevated-primary-opaque:var(--agent-surface-elevated)}@supports (color:color-mix(in lab, red, red)){:root{--color-background-elevated-primary-opaque:color-mix(in srgb, var(--agent-surface-elevated) 100%, #111)}}:root{--color-background-elevated-secondary:var(--agent-card);--color-background-elevated-secondary-opaque:var(--agent-card)}@supports (color:color-mix(in lab, red, red)){:root{--color-background-elevated-secondary-opaque:color-mix(in srgb, var(--agent-card) 100%, #111)}}:root{--thread-content-max-width:none;--markdown-wide-block-max-width:56rem;--padding-toolbar:calc(var(--spacing) * 4);--vscode-foreground:var(--agent-text);--vscode-descriptionForeground:var(--agent-muted);--vscode-input-background:var(--agent-input-bg);--vscode-dropdown-background:var(--agent-surface-elevated);--vscode-input-placeholderForeground:var(--agent-muted);--vscode-textLink-foreground:var(--agent-accent);--vscode-textLink-activeForeground:var(--agent-accent);--vscode-list-hoverBackground:var(--agent-control-hover);--color-token-editor-foreground:var(--agent-text);--color-token-editor-background:var(--agent-page-bg);--color-token-side-bar-background:var(--agent-surface-elevated);--color-token-main-surface-primary:transparent;--color-token-text-code-block-background:var(--agent-input-bg);--color-token-bg-primary:var(--agent-surface-elevated);--color-token-bg-secondary:var(--agent-card);--color-token-bg-fog:var(--color-background-elevated-secondary);--color-token-bg-tertiary:var(--agent-control);--color-token-list-hover-background:var(--agent-control-hover);--markdown-wide-block-max-height:80vh;--conversation-block-gap:12px;--conversation-tool-assistant-gap:16px;--color-token-terminal-ansi-black:var(--vscode-terminal-ansiBlack,#000);--color-token-terminal-ansi-red:var(--vscode-terminal-ansiRed,#f66);--color-token-terminal-ansi-green:var(--vscode-terminal-ansiGreen,#94f494);--color-token-terminal-ansi-yellow:var(--vscode-terminal-ansiYellow,#f4f47b);--color-token-terminal-ansi-blue:var(--vscode-terminal-ansiBlue,#9e9eff);--color-token-terminal-ansi-magenta:var(--vscode-terminal-ansiMagenta,#db6bdb);--color-token-terminal-ansi-cyan:var(--vscode-terminal-ansiCyan,#81eeee);--color-token-terminal-ansi-white:var(--vscode-terminal-ansiWhite,#d6d6d6);--color-token-terminal-ansi-bright-black:var(--vscode-terminal-ansiBrightBlack,#6e6e6e);--color-token-terminal-ansi-bright-red:var(--vscode-terminal-ansiBrightRed,#ffa8a8);--color-token-terminal-ansi-bright-green:var(--vscode-terminal-ansiBrightGreen,#0f0);--color-token-terminal-ansi-bright-yellow:var(--vscode-terminal-ansiBrightYellow,#ffffa8);--color-token-terminal-ansi-bright-blue:var(--vscode-terminal-ansiBrightBlue,#9494ff);--color-token-terminal-ansi-bright-magenta:var(--vscode-terminal-ansiBrightMagenta,#ffb3ff);--color-token-terminal-ansi-bright-cyan:var(--vscode-terminal-ansiBrightCyan,#adffff);--color-token-terminal-ansi-bright-white:var(--vscode-terminal-ansiBrightWhite,#fff);--padding-row-x:calc(var(--spacing) * 2);--padding-row-y:calc(var(--spacing) * 1.25);--height-token-nav-row:32px;--codex-chat-font-size:var(--vscode-chat-font-size,var(--vscode-font-size,13px));--codex-chat-code-font-size:var(--vscode-chat-editor-font-size,var(--vscode-editor-font-size,12px))}:root[data-codex-window-type=electron]{background:0 0;overflow:hidden}:root[data-codex-window-type=electron] body{--padding-row-y:calc(var(--spacing) * 1.25);--height-token-nav-row:calc(var(--text-base) * 1.5 + var(--padding-row-y) * 2);--padding-panel-base:calc(var(--spacing) * 5);--padding-panel:var(--padding-panel-base);--thread-content-max-width:48rem;--markdown-wide-block-max-width:56rem;--markdown-wide-block-max-height:80vh;--conversation-block-gap:12px;--conversation-tool-assistant-gap:16px;--spacing-token-button-composer-sm:calc(var(--spacing) * 7);--text-heading-md:18px;--cursor-interaction:default;--vscode-editor-font-family:ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--vscode-font-size:var(--text-base);--vscode-editor-font-size:var(--text-sm);--vscode-chat-font-size:var(--vscode-font-size);--vscode-chat-editor-font-size:var(--vscode-editor-font-size);overscroll-behavior:none;overflow:hidden}:root[data-codex-window-type=electron]:not([data-codex-os=win32]) body{background:0 0}*{box-sizing:border-box}html,body,#root{background:0 0;height:100%}body{min-width:0;color:var(--agent-text);font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--vscode-font-weight,400);margin:0;overflow:hidden}button,select,textarea{font:inherit}button,select{cursor:default}.agent-shell{height:100%;min-height:100%;padding:var(--padding-toolbar);color:var(--agent-text);background:var(--agent-page-bg);flex-direction:column;display:flex}.agent-log,.log,.agent-thread{width:100%;min-height:0;max-width:var(--thread-content-max-width);scrollbar-width:thin;scrollbar-color:var(--agent-muted) transparent;background:0 0;flex:auto;margin:0 auto;padding:6px 2px 18px;overflow:auto}@supports (color:color-mix(in lab, red, red)){.agent-log,.log,.agent-thread{scrollbar-color:color-mix(in srgb, var(--agent-muted) 28%, transparent) transparent}}.agent-thread{gap:var(--conversation-block-gap,12px);flex-direction:column;padding-top:10px;padding-bottom:24px;display:flex;position:relative;overflow-x:hidden}:root[data-codex-window-type=electron] .agent-thread{--color-token-description-foreground:var(--color-token-foreground)}@supports (color:color-mix(in lab, red, red)){:root[data-codex-window-type=electron] .agent-thread{--color-token-description-foreground:color-mix(in srgb, var(--color-token-foreground) 70%, transparent)}}.agent-thread[data-empty]{justify-content:flex-end}.text-size-chat{font-size:var(--codex-chat-font-size)}.text-size-chat-sm{font-size:calc(var(--codex-chat-font-size) - 1px)}.text-size-code{font-size:var(--codex-chat-code-font-size)}.text-size-code-sm{font-size:calc(var(--codex-chat-code-font-size) - 1px)}.font-vscode-editor{font-family:var(--vscode-editor-font-family,var(--font-mono))}.codex-user-turn,.codex-assistant-turn,.codex-notice-turn{width:100%;min-width:0}.codex-user-bubble{color:var(--color-token-foreground);background:var(--color-token-foreground)}@supports (color:color-mix(in lab, red, red)){.codex-user-bubble{background:color-mix(in srgb, var(--color-token-foreground) 5%, transparent)}}.codex-user-message-content[data-collapsed=true]{-webkit-line-clamp:20;-webkit-box-orient:vertical;max-height:20lh;display:-webkit-box;overflow:hidden}.codex-user-message-toggle{background:0 0;border:0;padding:0}.codex-assistant-turn{justify-content:flex-start;display:flex}.codex-assistant-message{max-width:100%;color:var(--color-token-foreground);white-space:normal;overflow-wrap:anywhere}.codex-assistant-message-streaming{white-space:break-spaces}.codex-assistant-message :where(p){margin:0 0 .85em}.codex-assistant-message :where(p:last-child){margin-bottom:0}.codex-assistant-message :where(ul,ol){margin:.45em 0 .85em;padding-left:1.35rem}.codex-assistant-message :where(ul){list-style:outside}.codex-assistant-message :where(ol){list-style:decimal}.codex-assistant-message :where(li){margin:.25em 0}.codex-assistant-message :where(blockquote){border-left:2px solid var(--color-token-border);color:var(--agent-soft);margin:.75em 0;padding-left:.85rem}.codex-assistant-message :where(code){background:var(--agent-soft);border-radius:4px;padding:.12em .3em}@supports (color:color-mix(in lab, red, red)){.codex-assistant-message :where(code){background:color-mix(in srgb, var(--agent-soft) 10%, transparent)}}.codex-assistant-message :where(code){font-family:var(--font-mono);font-size:var(--codex-chat-code-font-size)}.codex-assistant-message :where(pre){border:1px solid var(--agent-border);margin:.75em 0;padding:.65rem .75rem;overflow-x:auto}@supports (color:color-mix(in lab, red, red)){.codex-assistant-message :where(pre){border:1px solid color-mix(in srgb, var(--agent-border) 72%, transparent)}}.codex-assistant-message :where(pre){border-radius:var(--radius-lg);background:var(--agent-input-bg)}@supports (color:color-mix(in lab, red, red)){.codex-assistant-message :where(pre){background:color-mix(in srgb, var(--agent-input-bg) 82%, transparent)}}.codex-assistant-message :where(pre code){white-space:pre;background:0 0;border-radius:0;padding:0;display:block}.codex-assistant-message :where(a){color:var(--agent-accent);text-underline-offset:2px;text-decoration:underline}.codex-assistant-message :where(hr){border-top:1px solid var(--color-token-border);margin:1rem 0}.codex-notice-turn{justify-content:flex-start;display:flex}.codex-notice-content{border:1px solid var(--agent-border);max-width:min(100%,44rem);padding:10px 12px}@supports (color:color-mix(in lab, red, red)){.codex-notice-content{border:1px solid color-mix(in srgb, var(--agent-border) 74%, transparent)}}.codex-notice-content{border-radius:var(--radius-lg);color:var(--agent-soft);background:var(--agent-surface-elevated)}@supports (color:color-mix(in lab, red, red)){.codex-notice-content{background:color-mix(in srgb, var(--agent-surface-elevated) 86%, transparent)}}.codex-notice-content{overflow-wrap:anywhere}.codex-notice-turn.error .codex-notice-content{border-color:var(--agent-danger)}@supports (color:color-mix(in lab, red, red)){.codex-notice-turn.error .codex-notice-content{border-color:color-mix(in srgb, var(--agent-danger) 46%, transparent)}}.codex-notice-turn.error .codex-notice-content{color:var(--agent-danger)}@supports (color:color-mix(in lab, red, red)){.codex-notice-turn.error .codex-notice-content{color:color-mix(in srgb, var(--agent-danger) 88%, var(--agent-text))}}.codex-notice-turn.error .codex-notice-content{background:var(--agent-danger)}@supports (color:color-mix(in lab, red, red)){.codex-notice-turn.error .codex-notice-content{background:color-mix(in srgb, var(--agent-danger) 11%, transparent)}}.codex-notice-turn.warning .codex-notice-content{border-color:var(--agent-accent)}@supports (color:color-mix(in lab, red, red)){.codex-notice-turn.warning .codex-notice-content{border-color:color-mix(in srgb, var(--agent-accent) 30%, transparent)}}.codex-tool-activity-turn{flex-direction:column;align-items:flex-start;gap:0;width:100%;min-width:0;display:flex}.codex-tool-activity-summary{max-width:100%;color:var(--color-token-foreground);border:0;padding:0}@supports (color:color-mix(in lab, red, red)){.codex-tool-activity-summary{color:color-mix(in srgb, var(--color-token-foreground) 40%, transparent)}}.codex-tool-activity-summary{font:inherit;font-size:var(--codex-chat-font-size);line-height:calc(var(--codex-chat-font-size) + 8px);background:0 0}.codex-tool-activity-summary:focus-visible{outline:none}.codex-tool-activity-turn.inProgress .codex-tool-activity-summary{color:var(--color-token-description-foreground)}@supports (color:color-mix(in lab, red, red)){.codex-tool-activity-turn.inProgress .codex-tool-activity-summary{color:color-mix(in srgb, var(--color-token-description-foreground) 90%, transparent)}}.codex-tool-activity-icon{color:var(--color-token-foreground);justify-content:center;align-items:center;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.codex-tool-activity-icon{color:color-mix(in srgb, var(--color-token-foreground) 35%, transparent)}}.codex-tool-activity-icon{font-family:var(--font-mono);font-size:11px;line-height:1}.codex-tool-activity-turn.inProgress .codex-tool-activity-icon{animation:1.2s ease-in-out infinite codex-tool-activity-pulse}.codex-tool-activity-text{align-items:baseline;gap:4px;min-width:0;max-width:100%;display:inline-flex}.codex-tool-activity-action{color:var(--color-token-foreground);flex:none}@supports (color:color-mix(in lab, red, red)){.codex-tool-activity-action{color:color-mix(in srgb, var(--color-token-foreground) 58%, transparent)}}.codex-tool-activity-detail{min-width:0;color:var(--color-token-foreground);overflow:hidden}@supports (color:color-mix(in lab, red, red)){.codex-tool-activity-detail{color:color-mix(in srgb, var(--color-token-foreground) 40%, transparent)}}.codex-tool-activity-detail{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap}.codex-tool-activity-summary:hover .codex-tool-activity-action,.codex-tool-activity-summary:hover .codex-tool-activity-detail,.codex-tool-activity-summary:hover .codex-tool-activity-icon{color:var(--color-token-foreground)}.codex-tool-activity-output-shell{opacity:0;pointer-events:none;grid-template-rows:0fr;width:100%;min-width:0;transition:grid-template-rows .18s ease-out,opacity .18s ease-out;display:grid;overflow:hidden}.codex-tool-activity-output-shell[data-expanded=true]{opacity:1;pointer-events:auto;grid-template-rows:1fr}.codex-tool-activity-output-shell-inner{min-height:0;overflow:hidden}.codex-tool-activity-output-frame{min-height:1.25rem;padding-right:0;position:relative}.codex-tool-activity-output{box-sizing:border-box;max-width:min(100%, var(--markdown-wide-block-max-width));max-height:140px;color:var(--color-token-description-foreground);white-space:pre;--edge-fade-distance:2rem;background:0 0;border:0;border-radius:0;flex-direction:column;gap:6px;margin:0;padding:8px;font-weight:500;display:flex;overflow:auto}.codex-tool-output-copy:focus-visible{opacity:1}@keyframes codex-tool-activity-pulse{0%,to{opacity:.45}50%{opacity:1}}.agent-log-line,.log-line{border-bottom:1px solid var(--agent-border);grid-template-columns:4.5rem minmax(0,1fr);gap:12px;padding:9px 0;display:grid}@supports (color:color-mix(in lab, red, red)){.agent-log-line,.log-line{border-bottom:1px solid color-mix(in srgb, var(--agent-border) 55%, transparent)}}.agent-log-line,.log-line{color:var(--agent-soft);font-family:var(--font-mono);font-size:12px;line-height:1.5}.agent-log-line:last-child,.log-line:last-child{border-bottom-color:#0000}.agent-log-label,.log-label{color:var(--agent-muted);text-overflow:ellipsis;text-transform:uppercase;overflow:hidden}.agent-log-line.stdout .agent-log-label,.log-line.stdout .log-label{color:var(--agent-accent)}.agent-log-line.stderr .agent-log-label,.agent-log-line.error .agent-log-label,.log-line.stderr .log-label,.log-line.error .log-label{color:var(--agent-danger)}.agent-log-text,.log-text{overflow-wrap:anywhere;white-space:pre-wrap;word-break:normal;min-width:0}.agent-composer-stack{width:100%;max-width:var(--thread-content-max-width);gap:6px;margin:0 auto;display:grid}.above-composer-suggestion-shell{container-type:inline-size}.codex-composer-frame{--composer-top-tray-inline-padding:12px;--composer-top-tray-top-padding:14px;--composer-top-tray-max-height:177px}.codex-composer-surface{color:var(--color-token-foreground)}.codex-composer-inner{isolation:isolate}@supports (corner-shape:superellipse(1.5)){:root{--corner-radius-scale:1.25}.codex-composer-surface,.codex-user-bubble,.codex-notice-content,.provider-dropdown,.provider-dropdown-item,.add-context-dropdown,.add-context-item,.composer-attachment-file,.composer-attachment-image,.rate-limit-popover,.codex-top-tray-panel,.codex-top-tray-item{corner-shape:superellipse(1.5)}}.codex-composer-single-line{min-height:0}.composer-single-line-measure{pointer-events:none;visibility:hidden;white-space:pre;width:max-content;max-width:none;height:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:20px;position:absolute;overflow:hidden}.h-token-button-composer{height:var(--spacing-token-button-composer);gap:var(--h-token-button-composer-gap)}.h-token-button-composer-sm{height:var(--spacing-token-button-composer-sm);gap:var(--h-token-button-composer-gap)}.size-token-button-composer{width:var(--spacing-token-button-composer);height:var(--spacing-token-button-composer)}.size-token-button-composer-sm{width:var(--spacing-token-button-composer-sm);height:var(--spacing-token-button-composer-sm)}.icon-3xs{width:10px;height:10px}.icon-xxs{width:12px;height:12px}.icon-2xs{width:14px;height:14px}.icon-xs{width:16px;height:16px}.icon-sm{width:18px;height:18px}.icon-base{width:20px;height:20px}.icon-md{width:24px;height:24px}.icon-lg{width:28px;height:28px}.cursor-interaction{cursor:var(--cursor-interaction)}.no-drag{-webkit-app-region:no-drag}.outline-hidden{outline-offset:2px;outline:2px solid #0000}.user-select-none{-webkit-user-select:none;user-select:none}.shadow-xl-spread{--tw-shadow:0px 0px 0px .5px var(--tw-shadow-color,var(--color-token-border)), var(--shadow-xl);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}._content_1hiti_1{--dropdown-content-inset:2px;--dropdown-content-start-transform:translateY(calc(var(--dropdown-content-inset) * -1)) scale(.98);transform-origin:var(--radix-dropdown-menu-content-transform-origin);will-change:opacity, transform}._content_1hiti_1[data-side=top]{--dropdown-content-start-transform:translateY(var(--dropdown-content-inset)) scale(.98)}._content_1hiti_1[data-side=right]{--dropdown-content-start-transform:translateX(calc(var(--dropdown-content-inset) * -1)) scale(.98)}._content_1hiti_1[data-side=left]{--dropdown-content-start-transform:translateX(var(--dropdown-content-inset)) scale(.98)}@media (prefers-reduced-motion:no-preference){._content_1hiti_1[data-state=open]{animation:_dropdown-content-enter_1hiti_1 var(--transition-duration-basic) var(--cubic-enter)}}@keyframes _dropdown-content-enter_1hiti_1{0%{opacity:0;transform:var(--dropdown-content-start-transform)}to{opacity:1;transform:translate(0)translateY(0)scale(1)}}.hide-scrollbar{scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.prompt-input{resize:none;width:100%;min-height:2.75rem;max-height:200px;color:var(--color-token-foreground);font-size:var(--text-base);background:0 0;border:0;outline:none;padding:0;line-height:20px;display:block}.prompt-input::placeholder{color:var(--color-token-input-placeholder-foreground)}@supports (color:color-mix(in lab, red, red)){.prompt-input::placeholder{color:color-mix(in srgb, var(--color-token-input-placeholder-foreground) 50%, transparent)}}.ProseMirror{min-width:0;color:var(--agent-text);caret-color:var(--agent-text);font-variant-ligatures:none;font-feature-settings:"liga" 0;white-space:pre-wrap;white-space:break-spaces;word-wrap:break-word;word-break:normal;background:0 0;outline:none;position:relative;overflow-y:auto}.ProseMirror pre{white-space:pre-wrap}.ProseMirror li{position:relative}.ProseMirror-hideselection{caret-color:#0000;background:0 0}.ProseMirror-hideselection ::selection{caret-color:#0000;background:0 0}.ProseMirror [draggable][contenteditable=false]{-webkit-user-select:text;user-select:text}.ProseMirror-selectednode{outline:2px solid #8cf}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:"";pointer-events:none;border:2px solid #8cf;position:absolute;inset:-2px -2px -2px -32px}img.ProseMirror-separator{border:none!important;margin:0!important;display:inline!important}.ProseMirror p{margin:0}.ProseMirror .placeholder{pointer-events:none;-webkit-user-select:none;user-select:none;position:relative}.ProseMirror .placeholder:after{color:var(--color-token-input-placeholder-foreground);content:attr(data-placeholder);opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;text-overflow:ellipsis;max-width:100%;position:absolute;inset:0 0 auto;overflow:hidden}.ProseMirror .placeholder::selection{color:inherit;background:0 0}.ProseMirror .placeholder ::selection{color:inherit;background:0 0}.ProseMirror .ProseMirror-selectednode:has([skill-mention-name]){outline:none}.prompt-editor-mention{--inline-mention-base-color:var(--color-token-text-link-foreground)}@supports (color:color-mix(in lab, red, red)){.prompt-editor-mention{--inline-mention-base-color:color-mix(in srgb, var(--color-token-text-link-foreground) 80%, var(--color-token-foreground) 20%)}}.prompt-editor-mention{--inline-mention-color:var(--inline-mention-resolved-base-color,var(--inline-mention-base-color));max-width:100%;color:var(--inline-mention-color);vertical-align:baseline;white-space:nowrap;align-items:baseline;display:inline-flex}.prompt-editor-mention:hover{text-underline-offset:2px;text-decoration-line:underline;text-decoration-style:dashed;text-decoration-thickness:.5px}.prompt-editor-mention-icon{color:currentColor}[cmdk-dialog],[cmdk-dialog]:focus-visible{outline:none}[cmdk-root],[data-cmdk-root]{z-index:1000;gap:var(--spacing);min-width:100%;padding:var(--spacing);border:1px solid var(--color-token-border);border-radius:var(--radius-3xl);color:var(--color-token-foreground);background-color:var(--color-token-dropdown-background);flex-direction:column;display:flex}@supports (color:color-mix(in lab, red, red)){[cmdk-root],[data-cmdk-root]{background-color:color-mix(in oklab, var(--color-token-dropdown-background) 95%, transparent)}}[cmdk-root],[data-cmdk-root]{font-size:var(--text-sm);opacity:1;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);--cmdk-bottom-item-radius:calc(var(--radius-3xl) - var(--spacing));transform:translateZ(0)}[cmdk-item]{content-visibility:auto;width:100%;min-height:calc(var(--spacing) * 6);padding:var(--padding-row-y) var(--padding-row-x);border-radius:var(--radius-lg);color:var(--color-token-foreground);cursor:var(--cursor-interaction);opacity:.75;-webkit-user-select:none;user-select:none;outline:none;flex-direction:row;align-items:center;display:flex}[cmdk-item][aria-disabled=true],[cmdk-item][data-disabled=true]{cursor:default;opacity:.25}[cmdk-item]:hover:not([aria-disabled=true]),[cmdk-item][data-selected=true],[cmdk-item][aria-selected=true],[cmdk-item]:focus-visible,[cmdk-item]:active:not([aria-disabled=true]){background-color:var(--color-token-list-hover-background);opacity:1}[cmdk-item][data-command-menu-loading=true],[cmdk-item][data-command-menu-loading=true]:hover,[cmdk-item][data-command-menu-loading=true][data-selected=true],[cmdk-item][data-command-menu-loading=true][aria-selected=true],[cmdk-item][data-command-menu-loading=true]:focus-visible,[cmdk-item][data-command-menu-loading=true]:active{cursor:default;opacity:.6;background-color:#0000}[cmdk-item][data-command-menu-empty-state=true],[cmdk-item][data-command-menu-empty-state=true]:hover,[cmdk-item][data-command-menu-empty-state=true][data-selected=true],[cmdk-item][data-command-menu-empty-state=true][aria-selected=true],[cmdk-item][data-command-menu-empty-state=true]:focus-visible,[cmdk-item][data-command-menu-empty-state=true]:active{cursor:default;opacity:1;background-color:#0000}[cmdk-list]{min-height:0;max-height:min(300px, var(--cmdk-list-height,300px));gap:var(--spacing);overscroll-behavior:contain;scrollbar-width:none;flex-direction:column;transition:max-height .1s;display:flex;overflow-y:auto}[cmdk-list]:focus-visible{outline:none}.command-menu-dialog [cmdk-list]{max-height:var(--command-menu-list-max-height);scroll-padding-block-start:calc(var(--spacing) * 8)}.composer-home-top-menu [cmdk-list]{max-height:none}.composer-home-top-menu{max-height:min(320px, var(--composer-top-menu-max-height,320px));overflow:hidden}:where([cmdk-list])>[cmdk-item]:not(:has(~[cmdk-item],~[cmdk-group]:not([hidden]))),:where([cmdk-list])>[cmdk-group]:not([hidden]):not(:has(~[cmdk-item],~[cmdk-group]:not([hidden]))) [cmdk-item]:last-of-type,:where([cmdk-list])>[cmdk-list-sizer]>[cmdk-item]:not(:has(~[cmdk-item],~[cmdk-group]:not([hidden]))),:where([cmdk-list])>[cmdk-list-sizer]>[cmdk-group]:not([hidden]):not(:has(~[cmdk-item],~[cmdk-group]:not([hidden]))) [cmdk-item]:last-of-type{border-bottom-right-radius:var(--cmdk-bottom-item-radius);border-bottom-left-radius:var(--cmdk-bottom-item-radius)}[cmdk-input]{padding:calc(var(--spacing) * 1.5) calc(var(--spacing) * 2.5)}[cmdk-input]:focus-visible{outline:none}[cmdk-empty],[data-cmdk-empty]{min-height:calc(var(--spacing) * 8);padding:calc(var(--spacing) * 1.5) calc(var(--spacing) * 2.5);color:var(--color-token-description-foreground);text-align:center;white-space:pre-wrap;align-items:center;line-height:1.4;display:flex}[data-codex-window-type=electron] [cmdk-root],[data-codex-window-type=electron] [data-cmdk-root]{font-size:var(--text-base)}.codex-attachment-tray{scrollbar-width:none}.codex-attachment-tray::-webkit-scrollbar{display:none}.codex-user-attachment-tray{max-width:77%}.codex-user-attachment-tray .codex-attachment-row{justify-content:flex-end;min-width:0}.composer-attachment-image{border:1px solid var(--color-token-border-heavy);border-radius:var(--radius-lg);background:var(--color-token-input-background);flex:none;width:80px;height:80px;display:inline-flex;position:relative;overflow:visible}.composer-attachment-image img{border-radius:calc(var(--radius-lg) - 1px);object-fit:cover;width:100%;height:100%}.composer-attachment-file{border:.5px solid var(--color-token-border-heavy);flex:none;align-items:center;gap:7px;max-width:min(220px,70vw);height:32px;padding:0 30px 0 10px;display:inline-flex;position:relative}@supports (color:color-mix(in lab, red, red)){.composer-attachment-file{border:.5px solid color-mix(in srgb, var(--color-token-border-heavy) 80%, transparent)}}.composer-attachment-file{border-radius:var(--radius-lg);color:var(--color-token-foreground);background:var(--color-token-dropdown-background)}@supports (color:color-mix(in lab, red, red)){.composer-attachment-file{background:color-mix(in srgb, var(--color-token-dropdown-background) 90%, transparent)}}.composer-attachment-file-icon{color:var(--color-token-description-foreground);flex:none;display:inline-flex}.composer-attachment-file-label{min-width:0;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:500;line-height:1rem;overflow:hidden}.composer-attachment-remove{border:.5px solid var(--color-token-border-heavy);justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex;position:absolute;top:-7px;right:-7px}@supports (color:color-mix(in lab, red, red)){.composer-attachment-remove{border:.5px solid color-mix(in srgb, var(--color-token-border-heavy) 70%, transparent)}}.composer-attachment-remove{color:var(--color-token-foreground);background:var(--color-token-dropdown-background);border-radius:999px;box-shadow:0 1px 3px #0000002e}.composer-attachment-remove:hover,.composer-attachment-remove:focus-visible{background:var(--color-token-list-hover-background)}.codex-left-rail,.codex-secondary-controls,.codex-action-cluster,.model-picker,.rate-line{align-items:center;display:flex}.codex-left-rail{scrollbar-width:none;flex:0 auto;min-width:0;margin:0;padding:0;overflow-x:auto}.codex-left-rail::-webkit-scrollbar{display:none}.composer-mode-indicator{color:var(--color-token-text-link-foreground);flex:0 auto}.composer-mode-divider{background:var(--color-token-border);width:1px;height:1rem;margin:0 1px}@supports (color:color-mix(in lab, red, red)){.composer-mode-divider{background:color-mix(in srgb, var(--color-token-border) 70%, transparent)}}.composer-mode-button{min-width:0;color:var(--color-token-text-link-foreground)}.composer-mode-icon{flex:none;justify-content:center;align-items:center;display:inline-flex}.composer-mode-icon-hover,.composer-mode-button:hover .composer-mode-icon-default,.composer-mode-button:focus-visible .composer-mode-icon-default{display:none}.composer-mode-button:hover .composer-mode-icon-hover,.composer-mode-button:focus-visible .composer-mode-icon-hover{display:inline-flex}.composer-mode-label{color:currentColor;font-weight:500}.composer-context-indicator{color:var(--color-token-text-link-foreground);flex:0 auto}.composer-context-divider{background:var(--color-token-border);margin:0 1px}@supports (color:color-mix(in lab, red, red)){.composer-context-divider{background:color-mix(in srgb, var(--color-token-border) 70%, transparent)}}.composer-context-button{color:var(--color-token-text-link-foreground)}.composer-context-icon{justify-content:center;align-items:center;display:inline-flex}.composer-context-icon-hover,.composer-context-button:hover .composer-context-icon-default,.composer-context-button:focus-visible .composer-context-icon-default{display:none}.composer-context-button:hover .composer-context-icon-hover,.composer-context-button:focus-visible .composer-context-icon-hover{display:inline-flex}.composer-context-label{color:currentColor;font-weight:500}.codex-secondary-controls{flex:0 auto;justify-content:flex-end}.codex-action-cluster{flex:none;justify-content:flex-end}.model-picker-root{flex:none;align-items:center;display:inline-flex}.model-picker,.codex-tool,.codex-action{outline:none;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.codex-tool,.codex-action{line-height:18px}.model-picker{letter-spacing:0;white-space:nowrap;min-width:0;max-width:10rem}.model-icon{border:1px solid var(--agent-border-strong);flex:none;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.model-icon{border:1px solid color-mix(in srgb, var(--agent-border-strong) 70%, transparent)}}.model-icon{color:var(--agent-text);background:var(--agent-control);border-radius:999px;font-size:10px;font-weight:750;line-height:1}.model-label{min-width:0;color:var(--color-token-foreground);text-overflow:ellipsis;overflow:hidden}.model-chevron{color:var(--color-token-input-placeholder-foreground);flex:none;line-height:1}.provider-dropdown{z-index:50;border:.5px solid var(--color-token-menu-border);width:13rem;max-height:min(250px,100vh - 16px);position:absolute;bottom:calc(100% + 6px);left:0}@supports (color:color-mix(in lab, red, red)){.provider-dropdown{border:.5px solid color-mix(in srgb, var(--color-token-menu-border) 78%, transparent)}}.provider-dropdown{border-radius:var(--radius-xl);color:var(--color-token-foreground);background:var(--color-token-dropdown-background)}@supports (color:color-mix(in lab, red, red)){.provider-dropdown{background:color-mix(in srgb, var(--color-token-dropdown-background) 90%, transparent)}}.provider-dropdown{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.provider-dropdown-title{min-height:24px;padding:var(--padding-row-y) var(--padding-row-x);color:var(--color-token-description-foreground);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;align-items:center;line-height:1rem;display:flex;overflow:hidden}.provider-dropdown-item{width:100%;color:var(--color-token-foreground);text-align:left;background:0 0;border:0}.provider-dropdown-item:hover,.provider-dropdown-item:focus,.provider-dropdown-item[data-selected=true]{background:var(--color-token-list-hover-background)}.provider-dropdown-check{color:var(--color-token-foreground)}.permissions-root{flex:0 auto;min-width:0;display:inline-flex;position:relative}.permissions-trigger{color:var(--color-token-input-placeholder-foreground)}.permissions-trigger[data-permission-mode=auto-review],.permissions-item[data-permission-mode=auto-review] .permissions-item-icon{color:var(--color-token-text-link-foreground)}.permissions-trigger[data-permission-mode=full-access],.permissions-item[data-permission-mode=full-access] .permissions-item-icon{color:var(--agent-danger)}.permissions-trigger-label{color:currentColor;font-weight:500}.permissions-trigger-chevron{color:currentColor;opacity:.72}.permissions-dropdown{z-index:50;border:.5px solid var(--color-token-menu-border);width:13.5rem;max-height:min(250px,100vh - 16px);position:absolute;bottom:calc(100% + 6px);left:0;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.permissions-dropdown{border:.5px solid color-mix(in srgb, var(--color-token-menu-border) 78%, transparent)}}.permissions-dropdown{border-radius:var(--radius-xl);color:var(--color-token-foreground);background:var(--color-token-dropdown-background)}@supports (color:color-mix(in lab, red, red)){.permissions-dropdown{background:color-mix(in srgb, var(--color-token-dropdown-background) 90%, transparent)}}.permissions-dropdown{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.permissions-item{width:100%;min-height:calc(var(--spacing) * 8);align-items:center;gap:calc(var(--spacing) * 2);color:var(--color-token-foreground);text-align:left;background:0 0;border:0;display:flex}.permissions-item:hover,.permissions-item:focus-visible,.permissions-item[data-selected=true]{background:var(--color-token-list-hover-background)}.permissions-item-icon,.permissions-item-check{color:var(--color-token-description-foreground);justify-content:center;align-items:center;display:inline-flex}.permissions-item-label{color:var(--color-token-foreground);font-weight:500}.add-context-root{flex:none;display:inline-flex;position:relative}.add-context-dropdown{z-index:50;border:.5px solid var(--color-token-menu-border);width:max-content;min-width:120px;max-width:min(320px,100vw - 16px);max-height:min(270px,100vh - 16px);position:absolute;bottom:calc(100% + 6px);left:-8px;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.add-context-dropdown{border:.5px solid color-mix(in srgb, var(--color-token-menu-border) 78%, transparent)}}.add-context-dropdown{border-radius:var(--radius-xl);color:var(--color-token-foreground);background:var(--color-token-dropdown-background)}@supports (color:color-mix(in lab, red, red)){.add-context-dropdown{background:color-mix(in srgb, var(--color-token-dropdown-background) 90%, transparent)}}.add-context-dropdown{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.add-context-item{width:100%;min-height:calc(var(--spacing) * 8);align-items:center;gap:calc(var(--spacing) * 1.5);color:var(--color-token-foreground);cursor:var(--cursor-interaction);text-align:left;background:0 0;border:0;display:flex}.add-context-item:hover,.add-context-item:focus-visible{background:var(--color-token-list-hover-background)}.add-context-item:disabled{cursor:default;opacity:.5}.add-context-item:disabled:hover{background:0 0}.add-context-item-icon{color:var(--color-token-description-foreground);opacity:.75;justify-content:center;align-items:center;display:inline-flex}.add-context-item:hover .add-context-item-icon,.add-context-item:focus-visible .add-context-item-icon{opacity:1}.add-context-glyph{width:14px;height:14px;color:var(--color-token-description-foreground);font-size:var(--text-sm);justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.add-context-item-label{color:var(--color-token-foreground);font-weight:500}.add-context-item-detail{color:var(--color-token-description-foreground);font-size:var(--text-sm)}.add-context-separator{flex:none}.add-context-separator-line{background:var(--color-token-menu-border)}.provider-select{appearance:none;color:#0000;opacity:0;background:0 0;outline:none;width:100%;height:100%;position:absolute;inset:0}.composer-separator{background:var(--agent-border-strong);flex:none;width:1px;height:18px;margin:0 3px}@supports (color:color-mix(in lab, red, red)){.composer-separator{background:color-mix(in srgb, var(--agent-border-strong) 72%, transparent)}}.codex-start{width:auto;min-width:56px}.codex-circle-action:before{content:"";border:2px solid;border-radius:999px;width:13px;height:13px}.send-button{border-radius:999px}.provider-select:disabled{opacity:0}.rate-line{min-width:0;color:var(--agent-muted);gap:6px;padding:0 2px}@supports (color:color-mix(in lab, red, red)){.rate-line{color:color-mix(in srgb, var(--agent-muted) 88%, transparent)}}.rate-line{white-space:nowrap;font-size:12px;font-weight:500;line-height:1.35}.rate-line[hidden]{display:none}.rate-line :where(span){text-overflow:ellipsis;min-width:0;overflow:hidden}.codex-rate-limit-summary{flex-wrap:nowrap;justify-content:flex-start;overflow:hidden}.rate-limit-trigger{border-radius:var(--radius-md);max-width:100%;height:22px;color:var(--color-token-input-placeholder-foreground);border:0;padding:0 4px;display:inline-flex;position:relative}@supports (color:color-mix(in lab, red, red)){.rate-limit-trigger{color:color-mix(in srgb, var(--color-token-input-placeholder-foreground) 94%, transparent)}}.rate-limit-trigger{font-size:var(--text-sm);background:0 0;font-weight:500;line-height:1}.rate-limit-trigger-inline{gap:6px;overflow:hidden}.rate-limit-trigger:hover,.rate-limit-trigger:focus-visible,.rate-limit-trigger[aria-expanded=true]{background:var(--color-token-list-hover-background);outline:none}.rate-limit-speedometer,.rate-limit-chevron{color:var(--color-token-input-placeholder-foreground);flex:none}@supports (color:color-mix(in lab, red, red)){.rate-limit-speedometer,.rate-limit-chevron{color:color-mix(in srgb, var(--color-token-input-placeholder-foreground) 86%, transparent)}}.rate-line-heading{color:var(--color-token-input-placeholder-foreground);flex:none}@supports (color:color-mix(in lab, red, red)){.rate-line-heading{color:color-mix(in srgb, var(--color-token-input-placeholder-foreground) 92%, transparent)}}.rate-limit-inline-separator{color:var(--agent-accent);flex:none}@supports (color:color-mix(in lab, red, red)){.rate-limit-inline-separator{color:color-mix(in srgb, var(--agent-accent) 82%, transparent)}}.rate-limit-inline-segment{align-items:baseline;gap:5px;min-width:0;display:inline-flex}.rate-limit-popover{color:var(--color-token-foreground)}.rate-limit-popover-title{color:var(--color-token-description-foreground);font-size:var(--text-xs);padding:2px 0 5px;font-weight:600}.rate-limit-popover-row{min-width:0;min-height:24px;color:var(--color-token-foreground);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;display:grid}.rate-limit-window{min-width:0;color:var(--color-token-foreground);text-overflow:ellipsis;font-weight:500;overflow:hidden}.rate-limit-row-value{min-width:0;color:var(--color-token-description-foreground);text-align:right;justify-content:flex-end;align-items:center;gap:5px;display:inline-flex}.rate-limit-percent{color:var(--color-token-input-placeholder-foreground);flex:none}@supports (color:color-mix(in lab, red, red)){.rate-limit-percent{color:color-mix(in srgb, var(--color-token-input-placeholder-foreground) 92%, transparent)}}.rate-limit-percent{font-weight:600}.rate-limit-reset{min-width:0;color:var(--color-token-description-foreground)}.status-dot{background:var(--agent-muted);border-radius:999px;flex:none;width:6px;height:6px}.status-dot.running{background:var(--agent-accent)}.status-dot.failed{background:var(--agent-danger)}.codex-top-tray-shell{width:calc(var(--composer-top-tray-inline-padding,12px) * 2 + 100% + 8px);min-width:0;left:50%;bottom:var(--composer-top-tray-top-padding,14px);transform:translate(-50%)}.codex-top-tray-panel,.codex-top-tray-panel[cmdk-root],.codex-top-tray-panel[data-cmdk-root]{width:100%;min-width:0;max-height:var(--composer-top-tray-max-height,177px);padding:var(--spacing);padding-top:calc(var(--spacing) * 3);padding-left:calc(var(--spacing) * 2);border:1px solid var(--composer-top-tray-border,var(--color-token-border));flex-direction:column;display:flex;position:relative}@supports (color:color-mix(in lab, red, red)){.codex-top-tray-panel,.codex-top-tray-panel[cmdk-root],.codex-top-tray-panel[data-cmdk-root]{border:1px solid var(--composer-top-tray-border,color-mix(in srgb, var(--color-token-border) 72%, transparent))}}.codex-top-tray-panel,.codex-top-tray-panel[cmdk-root],.codex-top-tray-panel[data-cmdk-root]{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl);color:var(--color-token-foreground);background:var(--composer-top-tray-background,var(--color-token-side-bar-background));border-top-color:#0000;border-bottom:none;border-bottom-right-radius:0;border-bottom-left-radius:0}@supports (color:color-mix(in lab, red, red)){.codex-top-tray-panel,.codex-top-tray-panel[cmdk-root],.codex-top-tray-panel[data-cmdk-root]{background:var(--composer-top-tray-background,color-mix(in oklab, var(--color-token-side-bar-background) 94%, transparent))}}.codex-top-tray-panel,.codex-top-tray-panel[cmdk-root],.codex-top-tray-panel[data-cmdk-root]{box-shadow:none;font-size:var(--text-sm);-webkit-backdrop-filter:none;backdrop-filter:none;isolation:isolate;-webkit-user-select:none;user-select:none;--cmdk-bottom-item-radius:0;overflow:hidden}.codex-top-tray-title{padding:0 var(--padding-row-x) calc(var(--spacing) * 1.25);color:var(--color-token-description-foreground);font-size:var(--text-xs);font-weight:600;line-height:1.2}.codex-top-tray-list,.codex-top-tray-panel [cmdk-list],.codex-top-tray-panel [data-cmdk-list]{gap:var(--spacing);scrollbar-width:none;flex-direction:column;flex:1;width:100%;min-height:0;max-height:none;transition:none;display:flex;overflow-y:auto}.codex-top-tray-list::-webkit-scrollbar{display:none}.codex-top-tray-empty,.codex-top-tray-panel [data-cmdk-empty]{padding:var(--padding-row-y) var(--padding-row-x);color:var(--color-token-input-placeholder-foreground);font-size:var(--text-sm);align-items:center;display:flex}.codex-top-tray-item,.codex-top-tray-item[cmdk-item],.codex-top-tray-item[data-list-navigation-item]{width:calc(100% - var(--spacing) * 2);min-height:calc(var(--spacing) * 6);padding:var(--padding-row-y) var(--padding-row-x);border-radius:var(--radius-lg);color:var(--color-token-foreground);cursor:var(--cursor-interaction,default);font-size:var(--text-sm);opacity:.75;text-align:left;background:0 0;border:0;outline:none;flex-shrink:0;align-items:center;gap:0;display:flex;overflow:hidden}.codex-top-tray-item:hover,.codex-top-tray-item[data-selected=true],.codex-top-tray-item:focus-visible{background:var(--color-token-list-hover-background);opacity:1}.codex-top-tray-icon{width:14px;height:14px;color:var(--color-token-description-foreground);font-size:var(--text-sm);flex:none;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.codex-top-tray-copy{align-items:center;gap:calc(var(--spacing) * 2);min-width:0;display:flex}.codex-top-tray-label,.codex-top-tray-detail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.codex-top-tray-label{color:var(--color-token-foreground);font-size:var(--text-sm)}.codex-top-tray-detail{color:var(--color-token-description-foreground);font-size:var(--text-sm);flex:1 1 0}@media (max-width:720px){.agent-shell{padding:10px}.prompt-input{min-height:2.75rem;font-size:16px}.model-picker,.codex-tool,.codex-action{height:var(--spacing-token-button-composer)}.codex-tool,.codex-action{width:var(--spacing-token-button-composer)}.codex-tool{width:var(--spacing-token-button-composer-sm);height:var(--spacing-token-button-composer-sm)}.codex-left-rail{min-width:0}.codex-action-cluster{margin-left:auto}}@media (max-width:520px){.agent-log-line,.log-line{grid-template-columns:1fr;gap:2px}.model-picker{min-width:104px;max-width:168px}.codex-tool-skill,.codex-mic,.rate-dot,.rate-limit-reset{display:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}.acpmux-shell{height:100%;display:flex;flex-direction:column;color:var(--agent-text);font:13px "Helvetica Neue",Arial,sans-serif;background:var(--agent-page-bg);overflow:hidden}.acpmux-header{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid var(--agent-border)}.acpmux-title{font-size:14px}.acpmux-status{margin-left:8px;color:var(--agent-muted);font-size:11px}.acpmux-session,.acpmux-model,.acpmux-mode,.acpmux-effort{border:1px solid var(--agent-border);border-radius:999px;background:var(--agent-control);color:var(--agent-text);padding:5px 9px}.acpmux-scroll{flex:1;overflow:auto;contain:strict}.acpmux-spacer{position:relative;min-height:100%}.acpmux-thread{position:absolute;inset:0 0 auto;padding:16px max(18px,calc((100% - 760px)/2));}.acpmux-row{position:absolute;left:max(18px,calc((100% - 760px)/2));right:max(18px,calc((100% - 760px)/2));min-height:34px;contain:layout paint}.acpmux-user{display:flex;justify-content:flex-end}.acpmux-bubble,.acpmux-user-bubble{max-width:78%;width:fit-content;display:inline-block;padding:9px 12px;border-radius:16px;background:color-mix(in srgb,var(--agent-accent) 20%,transparent);white-space:pre-wrap}.acpmux-row.acpmux-user{display:flex;justify-content:flex-end}.acpmux-markdown{line-height:20px}.acpmux-markdown p,.acpmux-markdown h1,.acpmux-markdown h2,.acpmux-markdown h3,.acpmux-markdown h4,.acpmux-markdown h5,.acpmux-markdown h6,.acpmux-markdown ul,.acpmux-markdown blockquote{margin:0;line-height:20px}.acpmux-markdown h1,.acpmux-markdown h2,.acpmux-markdown h3,.acpmux-markdown h4,.acpmux-markdown h5,.acpmux-markdown h6{font:13px/20px "Helvetica Neue",Arial,sans-serif;font-weight:600}.acpmux-markdown ul{padding-left:20px}.acpmux-markdown blockquote{padding-left:12px;border-left:2px solid var(--agent-border)}.acpmux-markdown hr{margin:8px 0}.acpmux-markdown pre,.acpmux-activity-item pre{margin:0;padding:9px;border-radius:8px;overflow:auto;background:var(--agent-input-bg);font:13px/20px "Helvetica Neue",Arial,sans-serif}.acpmux-summary,.acpmux-muted{color:var(--agent-muted);font-size:11px;padding:8px 0}.acpmux-activity-toggle{border:0;background:none;color:var(--agent-muted);padding:5px 0;cursor:pointer}.acpmux-activity-items{border-left:1px solid var(--agent-border);padding-left:12px;color:var(--agent-soft)}.acpmux-activity-item{padding:3px 0}.acpmux-glyph{display:inline-block;width:18px;color:var(--agent-accent)}.acpmux-permission{padding:0 max(18px,calc((100% - 760px)/2))}.acpmux-permission-card{padding:11px;border:1px solid var(--agent-accent);border-radius:12px;background:var(--agent-surface-elevated)}.acpmux-permission-buttons{display:flex;gap:7px;margin-top:9px}.acpmux-permission-buttons button,.acpmux-composer button{border:0;border-radius:999px;padding:7px 12px;background:var(--agent-accent);color:#fff}.acpmux-queue{display:flex;gap:6px;overflow:auto;padding:5px max(18px,calc((100% - 760px)/2));color:var(--agent-muted)}.acpmux-composer{display:flex;align-items:end;gap:8px;padding:10px max(18px,calc((100% - 760px)/2));border-top:1px solid var(--agent-border);background:var(--agent-surface)}.acpmux-chips{display:flex;gap:5px}.acpmux-composer textarea{flex:1;resize:none;border:1px solid var(--agent-border-strong);border-radius:15px;padding:10px;background:var(--agent-input-bg);color:var(--agent-text);font:inherit}.acpmux-cancel{background:var(--agent-control)!important;color:var(--agent-text)!important} +.acpmux-markdown pre{position:relative}.acpmux-copy-code{position:absolute;top:6px;right:6px;border:1px solid var(--agent-border);border-radius:6px;padding:2px 6px;background:var(--agent-control);color:var(--agent-text);font-size:10px;cursor:pointer}.acpmux-diff-counts{color:var(--agent-muted);font-size:11px} +.acpmux-load-older{margin:6px 18px;padding:5px 10px;border:1px solid var(--agent-border);border-radius:999px;background:var(--agent-control);color:var(--agent-text);align-self:center;cursor:pointer} +.acpmux-session-controls{display:flex;align-items:center;gap:6px}.acpmux-new-session{border:1px solid var(--agent-border);border-radius:999px;background:var(--agent-control);color:var(--agent-text);padding:5px 9px;cursor:pointer} +.acpmux-shell[data-bubble="false"] .acpmux-user-bubble{background:transparent} +.acpmux-shell.density-compact .acpmux-row{letter-spacing:-.01em}.acpmux-shell[data-show-timestamps="true"] .acpmux-row::after{content:attr(data-at);position:absolute;top:0;right:0;color:var(--agent-muted);font-size:10px;line-height:12px;opacity:.7;pointer-events:none} diff --git a/Resources/acpmux-agent-session/index.html b/Resources/acpmux-agent-session/index.html new file mode 100644 index 000000000000..428c0dd853f0 --- /dev/null +++ b/Resources/acpmux-agent-session/index.html @@ -0,0 +1,165 @@ + + + + + + cmux Agent Session + + + +
    + + + + diff --git a/Resources/agent-session-react/assets/app.js b/Resources/agent-session-react/assets/app.js index af8c74aa0f2f..1c87b99ab615 100644 --- a/Resources/agent-session-react/assets/app.js +++ b/Resources/agent-session-react/assets/app.js @@ -1,12 +1,12 @@ -var W3=Object.create;var Eh=Object.defineProperty;var P3=Object.getOwnPropertyDescriptor;var $3=Object.getOwnPropertyNames;var e4=Object.getPrototypeOf,t4=Object.prototype.hasOwnProperty;var Mn=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var n4=(t,e,n,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of $3(e))!t4.call(t,i)&&i!==n&&Eh(t,i,{get:()=>e[i],enumerable:!(l=P3(e,i))||l.enumerable});return t};var Ro=(t,e,n)=>(n=t!=null?W3(e4(t)):{},n4(e||!t||!t.__esModule?Eh(n,"default",{value:t,enumerable:!0}):n,t));var Bh=Mn(L=>{"use strict";var du=Symbol.for("react.transitional.element"),l4=Symbol.for("react.portal"),i4=Symbol.for("react.fragment"),r4=Symbol.for("react.strict_mode"),o4=Symbol.for("react.profiler"),a4=Symbol.for("react.consumer"),s4=Symbol.for("react.context"),u4=Symbol.for("react.forward_ref"),c4=Symbol.for("react.suspense"),f4=Symbol.for("react.memo"),kh=Symbol.for("react.lazy"),d4=Symbol.for("react.activity"),Nh=Symbol.iterator;function h4(t){return t===null||typeof t!="object"?null:(t=Nh&&t[Nh]||t["@@iterator"],typeof t=="function"?t:null)}var wh={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Rh=Object.assign,zh={};function Jl(t,e,n){this.props=t,this.context=e,this.refs=zh,this.updater=n||wh}Jl.prototype.isReactComponent={};Jl.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};Jl.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function Lh(){}Lh.prototype=Jl.prototype;function hu(t,e,n){this.props=t,this.context=e,this.refs=zh,this.updater=n||wh}var pu=hu.prototype=new Lh;pu.constructor=hu;Rh(pu,Jl.prototype);pu.isPureReactComponent=!0;var Oh=Array.isArray;function fu(){}var ee={H:null,A:null,T:null,S:null},_h=Object.prototype.hasOwnProperty;function mu(t,e,n){var l=n.ref;return{$$typeof:du,type:t,key:e,ref:l!==void 0?l:null,props:n}}function p4(t,e){return mu(t.type,e,t.props)}function gu(t){return typeof t=="object"&&t!==null&&t.$$typeof===du}function m4(t){var e={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(n){return e[n]})}var Ah=/\/+/g;function cu(t,e){return typeof t=="object"&&t!==null&&t.key!=null?m4(""+t.key):e.toString(36)}function g4(t){switch(t.status){case"fulfilled":return t.value;case"rejected":throw t.reason;default:switch(typeof t.status=="string"?t.then(fu,fu):(t.status="pending",t.then(function(e){t.status==="pending"&&(t.status="fulfilled",t.value=e)},function(e){t.status==="pending"&&(t.status="rejected",t.reason=e)})),t.status){case"fulfilled":return t.value;case"rejected":throw t.reason}}throw t}function Ql(t,e,n,l,i){var r=typeof t;(r==="undefined"||r==="boolean")&&(t=null);var o=!1;if(t===null)o=!0;else switch(r){case"bigint":case"string":case"number":o=!0;break;case"object":switch(t.$$typeof){case du:case l4:o=!0;break;case kh:return o=t._init,Ql(o(t._payload),e,n,l,i)}}if(o)return i=i(t),o=l===""?"."+cu(t,0):l,Oh(i)?(n="",o!=null&&(n=o.replace(Ah,"$&/")+"/"),Ql(i,e,n,"",function(u){return u})):i!=null&&(gu(i)&&(i=p4(i,n+(i.key==null||t&&t.key===i.key?"":(""+i.key).replace(Ah,"$&/")+"/")+o)),e.push(i)),1;o=0;var a=l===""?".":l+":";if(Oh(t))for(var s=0;s{"use strict";Hh.exports=Bh()});var Ih=Mn(ie=>{"use strict";function xu(t,e){var n=t.length;t.push(e);e:for(;0>>1,i=t[l];if(0>>1;lLo(a,n))sLo(u,a)?(t[l]=u,t[s]=n,l=s):(t[l]=a,t[o]=n,l=o);else if(sLo(u,n))t[l]=u,t[s]=n,l=s;else break e}}return e}function Lo(t,e){var n=t.sortIndex-e.sortIndex;return n!==0?n:t.id-e.id}ie.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Uh=performance,ie.unstable_now=function(){return Uh.now()}):(yu=Date,Vh=yu.now(),ie.unstable_now=function(){return yu.now()-Vh});var Uh,yu,Vh,Jt=[],Tn=[],S4=1,ft=null,we=3,vu=!1,tr=!1,nr=!1,Cu=!1,Zh=typeof setTimeout=="function"?setTimeout:null,Gh=typeof clearTimeout=="function"?clearTimeout:null,qh=typeof setImmediate<"u"?setImmediate:null;function _o(t){for(var e=zt(Tn);e!==null;){if(e.callback===null)Bo(Tn);else if(e.startTime<=t)Bo(Tn),e.sortIndex=e.expirationTime,xu(Jt,e);else break;e=zt(Tn)}}function Mu(t){if(nr=!1,_o(t),!tr)if(zt(Jt)!==null)tr=!0,Pl||(Pl=!0,Wl());else{var e=zt(Tn);e!==null&&Tu(Mu,e.startTime-t)}}var Pl=!1,lr=-1,jh=5,Xh=-1;function Kh(){return Cu?!0:!(ie.unstable_now()-Xht&&Kh());){var l=ft.callback;if(typeof l=="function"){ft.callback=null,we=ft.priorityLevel;var i=l(ft.expirationTime<=t);if(t=ie.unstable_now(),typeof i=="function"){ft.callback=i,_o(t),e=!0;break t}ft===zt(Jt)&&Bo(Jt),_o(t)}else Bo(Jt);ft=zt(Jt)}if(ft!==null)e=!0;else{var r=zt(Tn);r!==null&&Tu(Mu,r.startTime-t),e=!1}}break e}finally{ft=null,we=n,vu=!1}e=void 0}}finally{e?Wl():Pl=!1}}}var Wl;typeof qh=="function"?Wl=function(){qh(bu)}:typeof MessageChannel<"u"?(Su=new MessageChannel,Yh=Su.port2,Su.port1.onmessage=bu,Wl=function(){Yh.postMessage(null)}):Wl=function(){Zh(bu,0)};var Su,Yh;function Tu(t,e){lr=Zh(function(){t(ie.unstable_now())},e)}ie.unstable_IdlePriority=5;ie.unstable_ImmediatePriority=1;ie.unstable_LowPriority=4;ie.unstable_NormalPriority=3;ie.unstable_Profiling=null;ie.unstable_UserBlockingPriority=2;ie.unstable_cancelCallback=function(t){t.callback=null};ie.unstable_forceFrameRate=function(t){0>t||125l?(t.sortIndex=n,xu(Tn,t),zt(Jt)===null&&t===zt(Tn)&&(nr?(Gh(lr),lr=-1):nr=!0,Tu(Mu,n-l))):(t.sortIndex=i,xu(Jt,t),tr||vu||(tr=!0,Pl||(Pl=!0,Wl()))),t};ie.unstable_shouldYield=Kh;ie.unstable_wrapCallback=function(t){var e=we;return function(){var n=we;we=e;try{return t.apply(this,arguments)}finally{we=n}}}});var Jh=Mn((T9,Qh)=>{"use strict";Qh.exports=Ih()});var Wh=Mn(Be=>{"use strict";var x4=Fl();function Fh(t){var e="https://react.dev/errors/"+t;if(1{"use strict";function Ph(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Ph)}catch(t){console.error(t)}}Ph(),$h.exports=Wh()});var dg=Mn(us=>{"use strict";var be=Jh(),Nm=Fl(),M4=ep();function C(t){var e="https://react.dev/errors/"+t;if(1ri||(t.current=uc[ri],uc[ri]=null,ri--)}function P(t,e){ri++,uc[ri]=t.current,t.current=e}var Ht=Ut(null),kr=Ut(null),Hn=Ut(null),ya=Ut(null);function ba(t,e){switch(P(Hn,e),P(kr,t),P(Ht,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?um(t):0;break;default:if(t=e.tagName,e=e.namespaceURI)e=um(e),t=P0(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}ve(Ht),P(Ht,t)}function Mi(){ve(Ht),ve(kr),ve(Hn)}function cc(t){t.memoizedState!==null&&P(ya,t);var e=Ht.current,n=P0(e,t.type);e!==n&&(P(kr,t),P(Ht,n))}function Sa(t){kr.current===t&&(ve(Ht),ve(kr)),ya.current===t&&(ve(ya),Yr._currentValue=ml)}var Eu,lp;function fl(t){if(Eu===void 0)try{throw Error()}catch(n){var e=n.stack.trim().match(/\n( *(at )?)/);Eu=e&&e[1]||"",lp=-1()=>(e||t((e={exports:{}}).exports,e),e.exports);var n4=(t,e,n,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of $3(e))!t4.call(t,i)&&i!==n&&Eh(t,i,{get:()=>e[i],enumerable:!(l=P3(e,i))||l.enumerable});return t};var Ro=(t,e,n)=>(n=t!=null?W3(e4(t)):{},n4(e||!t||!t.__esModule?Eh(n,"default",{value:t,enumerable:!0}):n,t));var Bh=Mn(L=>{"use strict";var du=Symbol.for("react.transitional.element"),l4=Symbol.for("react.portal"),i4=Symbol.for("react.fragment"),r4=Symbol.for("react.strict_mode"),o4=Symbol.for("react.profiler"),a4=Symbol.for("react.consumer"),s4=Symbol.for("react.context"),u4=Symbol.for("react.forward_ref"),c4=Symbol.for("react.suspense"),f4=Symbol.for("react.memo"),kh=Symbol.for("react.lazy"),d4=Symbol.for("react.activity"),Nh=Symbol.iterator;function h4(t){return t===null||typeof t!="object"?null:(t=Nh&&t[Nh]||t["@@iterator"],typeof t=="function"?t:null)}var wh={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Rh=Object.assign,zh={};function Jl(t,e,n){this.props=t,this.context=e,this.refs=zh,this.updater=n||wh}Jl.prototype.isReactComponent={};Jl.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};Jl.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function Lh(){}Lh.prototype=Jl.prototype;function hu(t,e,n){this.props=t,this.context=e,this.refs=zh,this.updater=n||wh}var pu=hu.prototype=new Lh;pu.constructor=hu;Rh(pu,Jl.prototype);pu.isPureReactComponent=!0;var Oh=Array.isArray;function fu(){}var ee={H:null,A:null,T:null,S:null},_h=Object.prototype.hasOwnProperty;function mu(t,e,n){var l=n.ref;return{$$typeof:du,type:t,key:e,ref:l!==void 0?l:null,props:n}}function p4(t,e){return mu(t.type,e,t.props)}function gu(t){return typeof t=="object"&&t!==null&&t.$$typeof===du}function m4(t){var e={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(n){return e[n]})}var Ah=/\/+/g;function cu(t,e){return typeof t=="object"&&t!==null&&t.key!=null?m4(""+t.key):e.toString(36)}function g4(t){switch(t.status){case"fulfilled":return t.value;case"rejected":throw t.reason;default:switch(typeof t.status=="string"?t.then(fu,fu):(t.status="pending",t.then(function(e){t.status==="pending"&&(t.status="fulfilled",t.value=e)},function(e){t.status==="pending"&&(t.status="rejected",t.reason=e)})),t.status){case"fulfilled":return t.value;case"rejected":throw t.reason}}throw t}function Ql(t,e,n,l,i){var r=typeof t;(r==="undefined"||r==="boolean")&&(t=null);var o=!1;if(t===null)o=!0;else switch(r){case"bigint":case"string":case"number":o=!0;break;case"object":switch(t.$$typeof){case du:case l4:o=!0;break;case kh:return o=t._init,Ql(o(t._payload),e,n,l,i)}}if(o)return i=i(t),o=l===""?"."+cu(t,0):l,Oh(i)?(n="",o!=null&&(n=o.replace(Ah,"$&/")+"/"),Ql(i,e,n,"",function(u){return u})):i!=null&&(gu(i)&&(i=p4(i,n+(i.key==null||t&&t.key===i.key?"":(""+i.key).replace(Ah,"$&/")+"/")+o)),e.push(i)),1;o=0;var a=l===""?".":l+":";if(Oh(t))for(var s=0;s{"use strict";Hh.exports=Bh()});var Ih=Mn(ie=>{"use strict";function xu(t,e){var n=t.length;t.push(e);e:for(;0>>1,i=t[l];if(0>>1;lLo(a,n))sLo(u,a)?(t[l]=u,t[s]=n,l=s):(t[l]=a,t[o]=n,l=o);else if(sLo(u,n))t[l]=u,t[s]=n,l=s;else break e}}return e}function Lo(t,e){var n=t.sortIndex-e.sortIndex;return n!==0?n:t.id-e.id}ie.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Uh=performance,ie.unstable_now=function(){return Uh.now()}):(yu=Date,Vh=yu.now(),ie.unstable_now=function(){return yu.now()-Vh});var Uh,yu,Vh,Jt=[],Tn=[],S4=1,ft=null,we=3,vu=!1,tr=!1,nr=!1,Cu=!1,Zh=typeof setTimeout=="function"?setTimeout:null,Gh=typeof clearTimeout=="function"?clearTimeout:null,qh=typeof setImmediate<"u"?setImmediate:null;function _o(t){for(var e=zt(Tn);e!==null;){if(e.callback===null)Bo(Tn);else if(e.startTime<=t)Bo(Tn),e.sortIndex=e.expirationTime,xu(Jt,e);else break;e=zt(Tn)}}function Mu(t){if(nr=!1,_o(t),!tr)if(zt(Jt)!==null)tr=!0,Pl||(Pl=!0,Wl());else{var e=zt(Tn);e!==null&&Tu(Mu,e.startTime-t)}}var Pl=!1,lr=-1,jh=5,Xh=-1;function Kh(){return Cu?!0:!(ie.unstable_now()-Xht&&Kh());){var l=ft.callback;if(typeof l=="function"){ft.callback=null,we=ft.priorityLevel;var i=l(ft.expirationTime<=t);if(t=ie.unstable_now(),typeof i=="function"){ft.callback=i,_o(t),e=!0;break t}ft===zt(Jt)&&Bo(Jt),_o(t)}else Bo(Jt);ft=zt(Jt)}if(ft!==null)e=!0;else{var r=zt(Tn);r!==null&&Tu(Mu,r.startTime-t),e=!1}}break e}finally{ft=null,we=n,vu=!1}e=void 0}}finally{e?Wl():Pl=!1}}}var Wl;typeof qh=="function"?Wl=function(){qh(bu)}:typeof MessageChannel<"u"?(Su=new MessageChannel,Yh=Su.port2,Su.port1.onmessage=bu,Wl=function(){Yh.postMessage(null)}):Wl=function(){Zh(bu,0)};var Su,Yh;function Tu(t,e){lr=Zh(function(){t(ie.unstable_now())},e)}ie.unstable_IdlePriority=5;ie.unstable_ImmediatePriority=1;ie.unstable_LowPriority=4;ie.unstable_NormalPriority=3;ie.unstable_Profiling=null;ie.unstable_UserBlockingPriority=2;ie.unstable_cancelCallback=function(t){t.callback=null};ie.unstable_forceFrameRate=function(t){0>t||125l?(t.sortIndex=n,xu(Tn,t),zt(Jt)===null&&t===zt(Tn)&&(nr?(Gh(lr),lr=-1):nr=!0,Tu(Mu,n-l))):(t.sortIndex=i,xu(Jt,t),tr||vu||(tr=!0,Pl||(Pl=!0,Wl()))),t};ie.unstable_shouldYield=Kh;ie.unstable_wrapCallback=function(t){var e=we;return function(){var n=we;we=e;try{return t.apply(this,arguments)}finally{we=n}}}});var Jh=Mn((T9,Qh)=>{"use strict";Qh.exports=Ih()});var Wh=Mn(Be=>{"use strict";var x4=Fl();function Fh(t){var e="https://react.dev/errors/"+t;if(1{"use strict";function Ph(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Ph)}catch(t){console.error(t)}}Ph(),$h.exports=Wh()});var dg=Mn(us=>{"use strict";var be=Jh(),Nm=Fl(),M4=ep();function C(t){var e="https://react.dev/errors/"+t;if(1ri||(t.current=uc[ri],uc[ri]=null,ri--)}function P(t,e){ri++,uc[ri]=t.current,t.current=e}var Ht=Ut(null),kr=Ut(null),Hn=Ut(null),ya=Ut(null);function ba(t,e){switch(P(Hn,e),P(kr,t),P(Ht,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?um(t):0;break;default:if(t=e.tagName,e=e.namespaceURI)e=um(e),t=P0(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}ve(Ht),P(Ht,t)}function Mi(){ve(Ht),ve(kr),ve(Hn)}function cc(t){t.memoizedState!==null&&P(ya,t);var e=Ht.current,n=P0(e,t.type);e!==n&&(P(kr,t),P(Ht,n))}function Sa(t){kr.current===t&&(ve(Ht),ve(kr)),ya.current===t&&(ve(ya),Yr._currentValue=ml)}var Eu,lp;function fl(t){if(Eu===void 0)try{throw Error()}catch(n){var e=n.stack.trim().match(/\n( *(at )?)/);Eu=e&&e[1]||"",lp=-1)":-1i||s[l]!==u[i]){var c=` `+s[l].replace(" at new "," at ");return t.displayName&&c.includes("")&&(c=c.replace("",t.displayName)),c}while(1<=l&&0<=i);break}}}finally{Nu=!1,Error.prepareStackTrace=n}return(n=t?t.displayName||t.name:"")?fl(n):""}function A4(t,e){switch(t.tag){case 26:case 27:case 5:return fl(t.type);case 16:return fl("Lazy");case 13:return t.child!==e&&e!==null?fl("Suspense Fallback"):fl("Suspense");case 19:return fl("SuspenseList");case 0:case 15:return Ou(t.type,!1);case 11:return Ou(t.type.render,!1);case 1:return Ou(t.type,!0);case 31:return fl("Activity");default:return""}}function ip(t){try{var e="",n=null;do e+=A4(t,n),n=t,t=t.return;while(t);return e}catch(l){return` Error generating stack: `+l.message+` -`+l.stack}}var fc=Object.prototype.hasOwnProperty,tf=be.unstable_scheduleCallback,Au=be.unstable_cancelCallback,D4=be.unstable_shouldYield,k4=be.unstable_requestPaint,lt=be.unstable_now,w4=be.unstable_getCurrentPriorityLevel,zm=be.unstable_ImmediatePriority,Lm=be.unstable_UserBlockingPriority,xa=be.unstable_NormalPriority,R4=be.unstable_LowPriority,_m=be.unstable_IdlePriority,z4=be.log,L4=be.unstable_setDisableYieldValue,Xr=null,it=null;function Rn(t){if(typeof z4=="function"&&L4(t),it&&typeof it.setStrictMode=="function")try{it.setStrictMode(Xr,t)}catch{}}var rt=Math.clz32?Math.clz32:H4,_4=Math.log,B4=Math.LN2;function H4(t){return t>>>=0,t===0?32:31-(_4(t)/B4|0)|0}var Vo=256,qo=262144,Yo=4194304;function dl(t){var e=t&42;if(e!==0)return e;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Ka(t,e,n){var l=t.pendingLanes;if(l===0)return 0;var i=0,r=t.suspendedLanes,o=t.pingedLanes;t=t.warmLanes;var a=l&134217727;return a!==0?(l=a&~r,l!==0?i=dl(l):(o&=a,o!==0?i=dl(o):n||(n=a&~t,n!==0&&(i=dl(n))))):(a=l&~r,a!==0?i=dl(a):o!==0?i=dl(o):n||(n=l&~t,n!==0&&(i=dl(n)))),i===0?0:e!==0&&e!==i&&(e&r)===0&&(r=i&-i,n=e&-e,r>=n||r===32&&(n&4194048)!==0)?e:i}function Kr(t,e){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&e)===0}function U4(t,e){switch(t){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Bm(){var t=Yo;return Yo<<=1,(Yo&62914560)===0&&(Yo=4194304),t}function Du(t){for(var e=[],n=0;31>n;n++)e.push(t);return e}function Ir(t,e){t.pendingLanes|=e,e!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function V4(t,e,n,l,i,r){var o=t.pendingLanes;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=n,t.entangledLanes&=n,t.errorRecoveryDisabledLanes&=n,t.shellSuspendCounter=0;var a=t.entanglements,s=t.expirationTimes,u=t.hiddenUpdates;for(n=o&~n;0"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var X4=/[\n"\\]/g;function gt(t){return t.replace(X4,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function pc(t,e,n,l,i,r,o,a){t.name="",o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?t.type=o:t.removeAttribute("type"),e!=null?o==="number"?(e===0&&t.value===""||t.value!=e)&&(t.value=""+ht(e)):t.value!==""+ht(e)&&(t.value=""+ht(e)):o!=="submit"&&o!=="reset"||t.removeAttribute("value"),e!=null?mc(t,o,ht(e)):n!=null?mc(t,o,ht(n)):l!=null&&t.removeAttribute("value"),i==null&&r!=null&&(t.defaultChecked=!!r),i!=null&&(t.checked=i&&typeof i!="function"&&typeof i!="symbol"),a!=null&&typeof a!="function"&&typeof a!="symbol"&&typeof a!="boolean"?t.name=""+ht(a):t.removeAttribute("name")}function Xm(t,e,n,l,i,r,o,a){if(r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"&&(t.type=r),e!=null||n!=null){if(!(r!=="submit"&&r!=="reset"||e!=null)){hc(t);return}n=n!=null?""+ht(n):"",e=e!=null?""+ht(e):n,a||e===t.value||(t.value=e),t.defaultValue=e}l=l??i,l=typeof l!="function"&&typeof l!="symbol"&&!!l,t.checked=a?t.checked:!!l,t.defaultChecked=!!l,o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(t.name=o),hc(t)}function mc(t,e,n){e==="number"&&va(t.ownerDocument)===t||t.defaultValue===""+n||(t.defaultValue=""+n)}function yi(t,e,n,l){if(t=t.options,e){e={};for(var i=0;i"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),yc=!1;if(cn)try{$l={},Object.defineProperty($l,"passive",{get:function(){yc=!0}}),window.addEventListener("test",$l,$l),window.removeEventListener("test",$l,$l)}catch{yc=!1}var $l,zn=null,sf=null,ia=null;function Fm(){if(ia)return ia;var t,e=sf,n=e.length,l,i="value"in zn?zn.value:zn.textContent,r=i.length;for(t=0;t=yr),mp=" ",gp=!1;function Pm(t,e){switch(t){case"keyup":return S6.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $m(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var si=!1;function v6(t,e){switch(t){case"compositionend":return $m(e);case"keypress":return e.which!==32?null:(gp=!0,mp);case"textInput":return t=e.data,t===mp&&gp?null:t;default:return null}}function C6(t,e){if(si)return t==="compositionend"||!cf&&Pm(t,e)?(t=Fm(),ia=sf=zn=null,si=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=l}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=xp(n)}}function l1(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?l1(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function i1(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var e=va(t.document);e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=va(t.document)}return e}function ff(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}var k6=cn&&"documentMode"in document&&11>=document.documentMode,ui=null,bc=null,Sr=null,Sc=!1;function Cp(t,e,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Sc||ui==null||ui!==va(l)||(l=ui,"selectionStart"in l&&ff(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Sr&&zr(Sr,l)||(Sr=l,l=Va(bc,"onSelect"),0>=o,i-=o,Lt=1<<32-rt(e)+i|n<N?(T=M,M=null):T=M.sibling;var A=d(g,M,S[N],x);if(A===null){M===null&&(M=T);break}t&&M&&A.alternate===null&&e(g,M),y=r(A,y,N),R===null?O=A:R.sibling=A,R=A,M=T}if(N===S.length)return n(g,M),q&&tn(g,N),O;if(M===null){for(;NN?(T=M,M=null):T=M.sibling;var Z=d(g,M,A.value,x);if(Z===null){M===null&&(M=T);break}t&&M&&Z.alternate===null&&e(g,M),y=r(Z,y,N),R===null?O=Z:R.sibling=Z,R=Z,M=T}if(A.done)return n(g,M),q&&tn(g,N),O;if(M===null){for(;!A.done;N++,A=S.next())A=f(g,A.value,x),A!==null&&(y=r(A,y,N),R===null?O=A:R.sibling=A,R=A);return q&&tn(g,N),O}for(M=l(M);!A.done;N++,A=S.next())A=h(M,g,N,A.value,x),A!==null&&(t&&A.alternate!==null&&M.delete(A.key===null?N:A.key),y=r(A,y,N),R===null?O=A:R.sibling=A,R=A);return t&&M.forEach(function($){return e(g,$)}),q&&tn(g,N),O}function v(g,y,S,x){if(typeof S=="object"&&S!==null&&S.type===ii&&S.key===null&&(S=S.props.children),typeof S=="object"&&S!==null){switch(S.$$typeof){case Uo:e:{for(var O=S.key;y!==null;){if(y.key===O){if(O=S.type,O===ii){if(y.tag===7){n(g,y.sibling),x=i(y,S.props.children),x.return=g,g=x;break e}}else if(y.elementType===O||typeof O=="object"&&O!==null&&O.$$typeof===Nn&&hl(O)===y.type){n(g,y.sibling),x=i(y,S.props),ar(x,S),x.return=g,g=x;break e}n(g,y);break}else e(g,y);y=y.sibling}S.type===ii?(x=gl(S.props.children,g.mode,x,S.key),x.return=g,g=x):(x=oa(S.type,S.key,S.props,null,g.mode,x),ar(x,S),x.return=g,g=x)}return o(g);case dr:e:{for(O=S.key;y!==null;){if(y.key===O)if(y.tag===4&&y.stateNode.containerInfo===S.containerInfo&&y.stateNode.implementation===S.implementation){n(g,y.sibling),x=i(y,S.children||[]),x.return=g,g=x;break e}else{n(g,y);break}else e(g,y);y=y.sibling}x=Hu(S,g.mode,x),x.return=g,g=x}return o(g);case Nn:return S=hl(S),v(g,y,S,x)}if(hr(S))return p(g,y,S,x);if(rr(S)){if(O=rr(S),typeof O!="function")throw Error(C(150));return S=O.call(S),b(g,y,S,x)}if(typeof S.then=="function")return v(g,y,Io(S),x);if(S.$$typeof===ln)return v(g,y,Ko(g,S),x);Qo(g,S)}return typeof S=="string"&&S!==""||typeof S=="number"||typeof S=="bigint"?(S=""+S,y!==null&&y.tag===6?(n(g,y.sibling),x=i(y,S),x.return=g,g=x):(n(g,y),x=Bu(S,g.mode,x),x.return=g,g=x),o(g)):n(g,y)}return function(g,y,S,x){try{Br=0;var O=v(g,y,S,x);return xi=null,O}catch(M){if(M===Hi||M===Pa)throw M;var R=tt(29,M,null,g.mode);return R.lanes=x,R.return=g,R}finally{}}}var Cl=S1(!0),x1=S1(!1),On=!1;function xf(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Nc(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function Vn(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function qn(t,e,n){var l=t.updateQueue;if(l===null)return null;if(l=l.shared,(X&2)!==0){var i=l.pending;return i===null?e.next=e:(e.next=i.next,i.next=e),l.pending=e,e=Ma(t),f1(t,null,n),e}return Wa(t,l,e,n),Ma(t)}function vr(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194048)!==0)){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,Um(t,n)}}function Vu(t,e){var n=t.updateQueue,l=t.alternate;if(l!==null&&(l=l.updateQueue,n===l)){var i=null,r=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};r===null?i=r=o:r=r.next=o,n=n.next}while(n!==null);r===null?i=r=e:r=r.next=e}else i=r=e;n={baseState:l.baseState,firstBaseUpdate:i,lastBaseUpdate:r,shared:l.shared,callbacks:l.callbacks},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}var Oc=!1;function Cr(){if(Oc){var t=Si;if(t!==null)throw t}}function Mr(t,e,n,l){Oc=!1;var i=t.updateQueue;On=!1;var r=i.firstBaseUpdate,o=i.lastBaseUpdate,a=i.shared.pending;if(a!==null){i.shared.pending=null;var s=a,u=s.next;s.next=null,o===null?r=u:o.next=u,o=s;var c=t.alternate;c!==null&&(c=c.updateQueue,a=c.lastBaseUpdate,a!==o&&(a===null?c.firstBaseUpdate=u:a.next=u,c.lastBaseUpdate=s))}if(r!==null){var f=i.baseState;o=0,c=u=s=null,a=r;do{var d=a.lane&-536870913,h=d!==a.lane;if(h?(V&d)===d:(l&d)===d){d!==0&&d===Ni&&(Oc=!0),c!==null&&(c=c.next={lane:0,tag:a.tag,payload:a.payload,callback:null,next:null});e:{var p=t,b=a;d=e;var v=n;switch(b.tag){case 1:if(p=b.payload,typeof p=="function"){f=p.call(v,f,d);break e}f=p;break e;case 3:p.flags=p.flags&-65537|128;case 0:if(p=b.payload,d=typeof p=="function"?p.call(v,f,d):p,d==null)break e;f=le({},f,d);break e;case 2:On=!0}}d=a.callback,d!==null&&(t.flags|=64,h&&(t.flags|=8192),h=i.callbacks,h===null?i.callbacks=[d]:h.push(d))}else h={lane:d,tag:a.tag,payload:a.payload,callback:a.callback,next:null},c===null?(u=c=h,s=f):c=c.next=h,o|=d;if(a=a.next,a===null){if(a=i.shared.pending,a===null)break;h=a,a=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);c===null&&(s=f),i.baseState=s,i.firstBaseUpdate=u,i.lastBaseUpdate=c,r===null&&(i.shared.lanes=0),Jn|=o,t.lanes=o,t.memoizedState=f}}function v1(t,e){if(typeof t!="function")throw Error(C(191,t));t.call(e)}function C1(t,e){var n=t.callbacks;if(n!==null)for(t.callbacks=null,t=0;tr?r:8;var o=z.T,a={};z.T=a,zf(t,!1,e,n);try{var s=i(),u=z.S;if(u!==null&&u(a,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var c=V6(s,l);Tr(t,e,c,ot(t))}else Tr(t,e,l,ot(t))}catch(f){Tr(t,e,{then:function(){},status:"rejected",reason:f},ot())}finally{K.p=r,o!==null&&a.types!==null&&(o.types=a.types),z.T=o}}function X6(){}function Rc(t,e,n,l){if(t.tag!==5)throw Error(C(476));var i=I1(t).queue;K1(t,i,e,ml,n===null?X6:function(){return Q1(t),n(l)})}function I1(t){var e=t.memoizedState;if(e!==null)return e;e={memoizedState:ml,baseState:ml,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:dn,lastRenderedState:ml},next:null};var n={};return e.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:dn,lastRenderedState:n},next:null},t.memoizedState=e,t=t.alternate,t!==null&&(t.memoizedState=e),e}function Q1(t){var e=I1(t);e.next===null&&(e=t.alternate.memoizedState),Tr(t,e.next.queue,{},ot())}function Rf(){return Ne(Yr)}function J1(){return de().memoizedState}function F1(){return de().memoizedState}function K6(t){for(var e=t.return;e!==null;){switch(e.tag){case 24:case 3:var n=ot();t=Vn(n);var l=qn(e,t,n);l!==null&&(je(l,e,n),vr(l,e,n)),e={cache:yf()},t.payload=e;return}e=e.return}}function I6(t,e,n){var l=ot();n={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},ns(t)?P1(e,n):(n=hf(t,e,n,l),n!==null&&(je(n,t,l),$1(n,e,l)))}function W1(t,e,n){var l=ot();Tr(t,e,n,l)}function Tr(t,e,n,l){var i={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(ns(t))P1(e,i);else{var r=t.alternate;if(t.lanes===0&&(r===null||r.lanes===0)&&(r=e.lastRenderedReducer,r!==null))try{var o=e.lastRenderedState,a=r(o,n);if(i.hasEagerState=!0,i.eagerState=a,at(a,o))return Wa(t,e,i,0),W===null&&Fa(),!1}catch{}finally{}if(n=hf(t,e,i,l),n!==null)return je(n,t,l),$1(n,e,l),!0}return!1}function zf(t,e,n,l){if(l={lane:2,revertLane:Zf(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},ns(t)){if(e)throw Error(C(479))}else e=hf(t,n,l,2),e!==null&&je(e,t,2)}function ns(t){var e=t.alternate;return t===_||e!==null&&e===_}function P1(t,e){vi=Da=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function $1(t,e,n){if((n&4194048)!==0){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,Um(t,n)}}var Ur={readContext:Ne,use:es,useCallback:oe,useContext:oe,useEffect:oe,useImperativeHandle:oe,useLayoutEffect:oe,useInsertionEffect:oe,useMemo:oe,useReducer:oe,useRef:oe,useState:oe,useDebugValue:oe,useDeferredValue:oe,useTransition:oe,useSyncExternalStore:oe,useId:oe,useHostTransitionStatus:oe,useFormState:oe,useActionState:oe,useOptimistic:oe,useMemoCache:oe,useCacheRefresh:oe};Ur.useEffectEvent=oe;var e0={readContext:Ne,use:es,useCallback:function(t,e){return He().memoizedState=[t,e===void 0?null:e],t},useContext:Ne,useEffect:Hp,useImperativeHandle:function(t,e,n){n=n!=null?n.concat([t]):null,ua(4194308,4,Y1.bind(null,e,t),n)},useLayoutEffect:function(t,e){return ua(4194308,4,t,e)},useInsertionEffect:function(t,e){ua(4,2,t,e)},useMemo:function(t,e){var n=He();e=e===void 0?null:e;var l=t();if(Ml){Rn(!0);try{t()}finally{Rn(!1)}}return n.memoizedState=[l,e],l},useReducer:function(t,e,n){var l=He();if(n!==void 0){var i=n(e);if(Ml){Rn(!0);try{n(e)}finally{Rn(!1)}}}else i=e;return l.memoizedState=l.baseState=i,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:i},l.queue=t,t=t.dispatch=I6.bind(null,_,t),[l.memoizedState,t]},useRef:function(t){var e=He();return t={current:t},e.memoizedState=t},useState:function(t){t=kc(t);var e=t.queue,n=W1.bind(null,_,e);return e.dispatch=n,[t.memoizedState,n]},useDebugValue:kf,useDeferredValue:function(t,e){var n=He();return wf(n,t,e)},useTransition:function(){var t=kc(!1);return t=K1.bind(null,_,t.queue,!0,!1),He().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,e,n){var l=_,i=He();if(q){if(n===void 0)throw Error(C(407));n=n()}else{if(n=e(),W===null)throw Error(C(349));(V&127)!==0||O1(l,e,n)}i.memoizedState=n;var r={value:n,getSnapshot:e};return i.queue=r,Hp(D1.bind(null,l,r,t),[t]),l.flags|=2048,Ai(9,{destroy:void 0},A1.bind(null,l,r,n,e),null),n},useId:function(){var t=He(),e=W.identifierPrefix;if(q){var n=_t,l=Lt;n=(l&~(1<<32-rt(l)-1)).toString(32)+n,e="_"+e+"R_"+n,n=ka++,0<\/script>",r=r.removeChild(r.firstChild);break;case"select":r=typeof l.is=="string"?o.createElement("select",{is:l.is}):o.createElement("select"),l.multiple?r.multiple=!0:l.size&&(r.size=l.size);break;default:r=typeof l.is=="string"?o.createElement(i,{is:l.is}):o.createElement(i)}}r[Te]=e,r[Xe]=l;e:for(o=e.child;o!==null;){if(o.tag===5||o.tag===6)r.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===e)break e;for(;o.sibling===null;){if(o.return===null||o.return===e)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}e.stateNode=r;e:switch(Oe(r,i,l),i){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&Wt(e)}}return te(e),Iu(e,e.type,t===null?null:t.memoizedProps,e.pendingProps,n),null;case 6:if(t&&e.stateNode!=null)t.memoizedProps!==l&&Wt(e);else{if(typeof l!="string"&&e.stateNode===null)throw Error(C(166));if(t=Hn.current,ei(e)){if(t=e.stateNode,n=e.memoizedProps,l=null,i=Ee,i!==null)switch(i.tag){case 27:case 5:l=i.memoizedProps}t[Te]=e,t=!!(t.nodeValue===n||l!==null&&l.suppressHydrationWarning===!0||W0(t.nodeValue,n)),t||In(e,!0)}else t=qa(t).createTextNode(l),t[Te]=e,e.stateNode=t}return te(e),null;case 31:if(n=e.memoizedState,t===null||t.memoizedState!==null){if(l=ei(e),n!==null){if(t===null){if(!l)throw Error(C(318));if(t=e.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(C(557));t[Te]=e}else xl(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;te(e),t=!1}else n=Uu(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=n),t=!0;if(!t)return e.flags&256?(et(e),e):(et(e),null);if((e.flags&128)!==0)throw Error(C(558))}return te(e),null;case 13:if(l=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(i=ei(e),l!==null&&l.dehydrated!==null){if(t===null){if(!i)throw Error(C(318));if(i=e.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(C(317));i[Te]=e}else xl(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;te(e),i=!1}else i=Uu(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=i),i=!0;if(!i)return e.flags&256?(et(e),e):(et(e),null)}return et(e),(e.flags&128)!==0?(e.lanes=n,e):(n=l!==null,t=t!==null&&t.memoizedState!==null,n&&(l=e.child,i=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(i=l.alternate.memoizedState.cachePool.pool),r=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(r=l.memoizedState.cachePool.pool),r!==i&&(l.flags|=2048)),n!==t&&n&&(e.child.flags|=8192),Jo(e,e.updateQueue),te(e),null);case 4:return Mi(),t===null&&Gf(e.stateNode.containerInfo),te(e),null;case 10:return sn(e.type),te(e),null;case 19:if(ve(fe),l=e.memoizedState,l===null)return te(e),null;if(i=(e.flags&128)!==0,r=l.rendering,r===null)if(i)sr(l,!1);else{if(ae!==0||t!==null&&(t.flags&128)!==0)for(t=e.child;t!==null;){if(r=Aa(t),r!==null){for(e.flags|=128,sr(l,!1),t=r.updateQueue,e.updateQueue=t,Jo(e,t),e.subtreeFlags=0,t=n,n=e.child;n!==null;)d1(n,t),n=n.sibling;return P(fe,fe.current&1|2),q&&tn(e,l.treeForkCount),e.child}t=t.sibling}l.tail!==null&<()>La&&(e.flags|=128,i=!0,sr(l,!1),e.lanes=4194304)}else{if(!i)if(t=Aa(r),t!==null){if(e.flags|=128,i=!0,t=t.updateQueue,e.updateQueue=t,Jo(e,t),sr(l,!0),l.tail===null&&l.tailMode==="hidden"&&!r.alternate&&!q)return te(e),null}else 2*lt()-l.renderingStartTime>La&&n!==536870912&&(e.flags|=128,i=!0,sr(l,!1),e.lanes=4194304);l.isBackwards?(r.sibling=e.child,e.child=r):(t=l.last,t!==null?t.sibling=r:e.child=r,l.last=r)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=lt(),t.sibling=null,n=fe.current,P(fe,i?n&1|2:n&1),q&&tn(e,l.treeForkCount),t):(te(e),null);case 22:case 23:return et(e),vf(),l=e.memoizedState!==null,t!==null?t.memoizedState!==null!==l&&(e.flags|=8192):l&&(e.flags|=8192),l?(n&536870912)!==0&&(e.flags&128)===0&&(te(e),e.subtreeFlags&6&&(e.flags|=8192)):te(e),n=e.updateQueue,n!==null&&Jo(e,n.retryQueue),n=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),l=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),l!==n&&(e.flags|=2048),t!==null&&ve(yl),null;case 24:return n=null,t!==null&&(n=t.memoizedState.cache),e.memoizedState.cache!==n&&(e.flags|=2048),sn(me),te(e),null;case 25:return null;case 30:return null}throw Error(C(156,e.tag))}function P6(t,e){switch(gf(e),e.tag){case 1:return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return sn(me),Mi(),t=e.flags,(t&65536)!==0&&(t&128)===0?(e.flags=t&-65537|128,e):null;case 26:case 27:case 5:return Sa(e),null;case 31:if(e.memoizedState!==null){if(et(e),e.alternate===null)throw Error(C(340));xl()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 13:if(et(e),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(C(340));xl()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return ve(fe),null;case 4:return Mi(),null;case 10:return sn(e.type),null;case 22:case 23:return et(e),vf(),t!==null&&ve(yl),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 24:return sn(me),null;case 25:return null;default:return null}}function d0(t,e){switch(gf(e),e.tag){case 3:sn(me),Mi();break;case 26:case 27:case 5:Sa(e);break;case 4:Mi();break;case 31:e.memoizedState!==null&&et(e);break;case 13:et(e);break;case 19:ve(fe);break;case 10:sn(e.type);break;case 22:case 23:et(e),vf(),t!==null&&ve(yl);break;case 24:sn(me)}}function Pr(t,e){try{var n=e.updateQueue,l=n!==null?n.lastEffect:null;if(l!==null){var i=l.next;n=i;do{if((n.tag&t)===t){l=void 0;var r=n.create,o=n.inst;l=r(),o.destroy=l}n=n.next}while(n!==i)}}catch(a){Q(e,e.return,a)}}function Qn(t,e,n){try{var l=e.updateQueue,i=l!==null?l.lastEffect:null;if(i!==null){var r=i.next;l=r;do{if((l.tag&t)===t){var o=l.inst,a=o.destroy;if(a!==void 0){o.destroy=void 0,i=e;var s=n,u=a;try{u()}catch(c){Q(i,s,c)}}}l=l.next}while(l!==r)}}catch(c){Q(e,e.return,c)}}function h0(t){var e=t.updateQueue;if(e!==null){var n=t.stateNode;try{C1(e,n)}catch(l){Q(t,t.return,l)}}}function p0(t,e,n){n.props=Tl(t.type,t.memoizedProps),n.state=t.memoizedState;try{n.componentWillUnmount()}catch(l){Q(t,e,l)}}function Er(t,e){try{var n=t.ref;if(n!==null){switch(t.tag){case 26:case 27:case 5:var l=t.stateNode;break;case 30:l=t.stateNode;break;default:l=t.stateNode}typeof n=="function"?t.refCleanup=n(l):n.current=l}}catch(i){Q(t,e,i)}}function Bt(t,e){var n=t.ref,l=t.refCleanup;if(n!==null)if(typeof l=="function")try{l()}catch(i){Q(t,e,i)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(i){Q(t,e,i)}else n.current=null}function m0(t){var e=t.type,n=t.memoizedProps,l=t.stateNode;try{e:switch(e){case"button":case"input":case"select":case"textarea":n.autoFocus&&l.focus();break e;case"img":n.src?l.src=n.src:n.srcSet&&(l.srcset=n.srcSet)}}catch(i){Q(t,t.return,i)}}function Qu(t,e,n){try{var l=t.stateNode;bb(l,t.type,n,e),l[Xe]=e}catch(i){Q(t,t.return,i)}}function g0(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&Wn(t.type)||t.tag===4}function Ju(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||g0(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&Wn(t.type)||t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Hc(t,e,n){var l=t.tag;if(l===5||l===6)t=t.stateNode,e?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(t,e):(e=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,e.appendChild(t),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=rn));else if(l!==4&&(l===27&&Wn(t.type)&&(n=t.stateNode,e=null),t=t.child,t!==null))for(Hc(t,e,n),t=t.sibling;t!==null;)Hc(t,e,n),t=t.sibling}function za(t,e,n){var l=t.tag;if(l===5||l===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(l!==4&&(l===27&&Wn(t.type)&&(n=t.stateNode),t=t.child,t!==null))for(za(t,e,n),t=t.sibling;t!==null;)za(t,e,n),t=t.sibling}function y0(t){var e=t.stateNode,n=t.memoizedProps;try{for(var l=t.type,i=e.attributes;i.length;)e.removeAttributeNode(i[0]);Oe(e,l,n),e[Te]=t,e[Xe]=n}catch(r){Q(t,t.return,r)}}var nn=!1,pe=!1,Fu=!1,Fp=typeof WeakSet=="function"?WeakSet:Set,Se=null;function $6(t,e){if(t=t.containerInfo,jc=ja,t=i1(t),ff(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var l=n.getSelection&&n.getSelection();if(l&&l.rangeCount!==0){n=l.anchorNode;var i=l.anchorOffset,r=l.focusNode;l=l.focusOffset;try{n.nodeType,r.nodeType}catch{n=null;break e}var o=0,a=-1,s=-1,u=0,c=0,f=t,d=null;t:for(;;){for(var h;f!==n||i!==0&&f.nodeType!==3||(a=o+i),f!==r||l!==0&&f.nodeType!==3||(s=o+l),f.nodeType===3&&(o+=f.nodeValue.length),(h=f.firstChild)!==null;)d=f,f=h;for(;;){if(f===t)break t;if(d===n&&++u===i&&(a=o),d===r&&++c===l&&(s=o),(h=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=h}n=a===-1||s===-1?null:{start:a,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Xc={focusedElem:t,selectionRange:n},ja=!1,Se=e;Se!==null;)if(e=Se,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,Se=t;else for(;Se!==null;){switch(e=Se,r=e.alternate,t=e.flags,e.tag){case 0:if((t&4)!==0&&(t=e.updateQueue,t=t!==null?t.events:null,t!==null))for(n=0;n title"))),Oe(r,l,n),r[Te]=t,xe(r),l=r;break e;case"link":var o=bm("link","href",i).get(l+(n.href||""));if(o){for(var a=0;av&&(o=v,v=b,b=o);var g=vp(a,b),y=vp(a,v);if(g&&y&&(h.rangeCount!==1||h.anchorNode!==g.node||h.anchorOffset!==g.offset||h.focusNode!==y.node||h.focusOffset!==y.offset)){var S=f.createRange();S.setStart(g.node,g.offset),h.removeAllRanges(),b>v?(h.addRange(S),h.extend(y.node,y.offset)):(S.setEnd(y.node,y.offset),h.addRange(S))}}}}for(f=[],h=a;h=h.parentNode;)h.nodeType===1&&f.push({element:h,left:h.scrollLeft,top:h.scrollTop});for(typeof a.focus=="function"&&a.focus(),a=0;an?32:n,z.T=null,n=qc,qc=null;var r=Zn,o=un;if(ye=0,ki=Zn=null,un=0,(X&6)!==0)throw Error(C(331));var a=X;if(X|=4,A0(r.current),E0(r,r.current,o,n),X=a,$r(0,!1),it&&typeof it.onPostCommitFiberRoot=="function")try{it.onPostCommitFiberRoot(Xr,r)}catch{}return!0}finally{K.p=i,z.T=l,G0(t,e)}}function em(t,e,n){e=yt(n,e),e=Lc(t.stateNode,e,2),t=qn(t,e,2),t!==null&&(Ir(t,2),Vt(t))}function Q(t,e,n){if(t.tag===3)em(t,t,n);else for(;e!==null;){if(e.tag===3){em(e,t,n);break}else if(e.tag===1){var l=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Yn===null||!Yn.has(l))){t=yt(n,t),n=r0(2),l=qn(e,n,2),l!==null&&(o0(n,l,e,t),Ir(l,2),Vt(l));break}}e=e.return}}function Pu(t,e,n){var l=t.pingCache;if(l===null){l=t.pingCache=new nb;var i=new Set;l.set(e,i)}else i=l.get(e),i===void 0&&(i=new Set,l.set(e,i));i.has(n)||(Vf=!0,i.add(n),t=ab.bind(null,t,e,n),e.then(t,t))}function ab(t,e,n){var l=t.pingCache;l!==null&&l.delete(e),t.pingedLanes|=t.suspendedLanes&n,t.warmLanes&=~n,W===t&&(V&n)===n&&(ae===4||ae===3&&(V&62914560)===V&&300>lt()-ls?(X&2)===0&&wi(t,0):qf|=n,Di===V&&(Di=0)),Vt(t)}function X0(t,e){e===0&&(e=Bm()),t=Al(t,e),t!==null&&(Ir(t,e),Vt(t))}function sb(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),X0(t,n)}function ub(t,e){var n=0;switch(t.tag){case 31:case 13:var l=t.stateNode,i=t.memoizedState;i!==null&&(n=i.retryLane);break;case 19:l=t.stateNode;break;case 22:l=t.stateNode._retryCache;break;default:throw Error(C(314))}l!==null&&l.delete(e),X0(t,n)}function cb(t,e){return tf(t,e)}var Ha=null,li=null,Zc=!1,Ua=!1,$u=!1,Bn=0;function Vt(t){t!==li&&t.next===null&&(li===null?Ha=li=t:li=li.next=t),Ua=!0,Zc||(Zc=!0,db())}function $r(t,e){if(!$u&&Ua){$u=!0;do for(var n=!1,l=Ha;l!==null;){if(!e)if(t!==0){var i=l.pendingLanes;if(i===0)var r=0;else{var o=l.suspendedLanes,a=l.pingedLanes;r=(1<<31-rt(42|t)+1)-1,r&=i&~(o&~a),r=r&201326741?r&201326741|1:r?r|2:0}r!==0&&(n=!0,tm(l,r))}else r=V,r=Ka(l,l===W?r:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(r&3)===0||Kr(l,r)||(n=!0,tm(l,r));l=l.next}while(n);$u=!1}}function fb(){K0()}function K0(){Ua=Zc=!1;var t=0;Bn!==0&&xb()&&(t=Bn);for(var e=lt(),n=null,l=Ha;l!==null;){var i=l.next,r=I0(l,e);r===0?(l.next=null,n===null?Ha=i:n.next=i,i===null&&(li=n)):(n=l,(t!==0||(r&3)!==0)&&(Ua=!0)),l=i}ye!==0&&ye!==5||$r(t,!1),Bn!==0&&(Bn=0)}function I0(t,e){for(var n=t.suspendedLanes,l=t.pingedLanes,i=t.expirationTimes,r=t.pendingLanes&-62914561;0a)break;var c=s.transferSize,f=s.initiatorType;c&&sm(f)&&(s=s.responseEnd,o+=c*(s"u"?null:document;function ng(t,e,n){var l=Vi;if(l&&typeof e=="string"&&e){var i=gt(e);i='link[rel="'+t+'"][href="'+i+'"]',typeof n=="string"&&(i+='[crossorigin="'+n+'"]'),mm.has(i)||(mm.add(i),t={rel:t,crossOrigin:n,href:e},l.querySelector(i)===null&&(e=l.createElement("link"),Oe(e,"link",t),xe(e),l.head.appendChild(e)))}}function Db(t){mn.D(t),ng("dns-prefetch",t,null)}function kb(t,e){mn.C(t,e),ng("preconnect",t,e)}function wb(t,e,n){mn.L(t,e,n);var l=Vi;if(l&&t&&e){var i='link[rel="preload"][as="'+gt(e)+'"]';e==="image"&&n&&n.imageSrcSet?(i+='[imagesrcset="'+gt(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(i+='[imagesizes="'+gt(n.imageSizes)+'"]')):i+='[href="'+gt(t)+'"]';var r=i;switch(e){case"style":r=Ri(t);break;case"script":r=qi(t)}vt.has(r)||(t=le({rel:"preload",href:e==="image"&&n&&n.imageSrcSet?void 0:t,as:e},n),vt.set(r,t),l.querySelector(i)!==null||e==="style"&&l.querySelector(eo(r))||e==="script"&&l.querySelector(to(r))||(e=l.createElement("link"),Oe(e,"link",t),xe(e),l.head.appendChild(e)))}}function Rb(t,e){mn.m(t,e);var n=Vi;if(n&&t){var l=e&&typeof e.as=="string"?e.as:"script",i='link[rel="modulepreload"][as="'+gt(l)+'"][href="'+gt(t)+'"]',r=i;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":r=qi(t)}if(!vt.has(r)&&(t=le({rel:"modulepreload",href:t},e),vt.set(r,t),n.querySelector(i)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(to(r)))return}l=n.createElement("link"),Oe(l,"link",t),xe(l),n.head.appendChild(l)}}}function zb(t,e,n){mn.S(t,e,n);var l=Vi;if(l&&t){var i=gi(l).hoistableStyles,r=Ri(t);e=e||"default";var o=i.get(r);if(!o){var a={loading:0,preload:null};if(o=l.querySelector(eo(r)))a.loading=5;else{t=le({rel:"stylesheet",href:t,"data-precedence":e},n),(n=vt.get(r))&&jf(t,n);var s=o=l.createElement("link");xe(s),Oe(s,"link",t),s._p=new Promise(function(u,c){s.onload=u,s.onerror=c}),s.addEventListener("load",function(){a.loading|=1}),s.addEventListener("error",function(){a.loading|=2}),a.loading|=4,ha(o,e,l)}o={type:"stylesheet",instance:o,count:1,state:a},i.set(r,o)}}}function Lb(t,e){mn.X(t,e);var n=Vi;if(n&&t){var l=gi(n).hoistableScripts,i=qi(t),r=l.get(i);r||(r=n.querySelector(to(i)),r||(t=le({src:t,async:!0},e),(e=vt.get(i))&&Xf(t,e),r=n.createElement("script"),xe(r),Oe(r,"link",t),n.head.appendChild(r)),r={type:"script",instance:r,count:1,state:null},l.set(i,r))}}function _b(t,e){mn.M(t,e);var n=Vi;if(n&&t){var l=gi(n).hoistableScripts,i=qi(t),r=l.get(i);r||(r=n.querySelector(to(i)),r||(t=le({src:t,async:!0,type:"module"},e),(e=vt.get(i))&&Xf(t,e),r=n.createElement("script"),xe(r),Oe(r,"link",t),n.head.appendChild(r)),r={type:"script",instance:r,count:1,state:null},l.set(i,r))}}function gm(t,e,n,l){var i=(i=Hn.current)?Ya(i):null;if(!i)throw Error(C(446));switch(t){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(e=Ri(n.href),n=gi(i).hoistableStyles,l=n.get(e),l||(l={type:"style",instance:null,count:0,state:null},n.set(e,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){t=Ri(n.href);var r=gi(i).hoistableStyles,o=r.get(t);if(o||(i=i.ownerDocument||i,o={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},r.set(t,o),(r=i.querySelector(eo(t)))&&!r._p&&(o.instance=r,o.state.loading=5),vt.has(t)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},vt.set(t,n),r||Bb(i,t,n,o.state))),e&&l===null)throw Error(C(528,""));return o}if(e&&l!==null)throw Error(C(529,""));return null;case"script":return e=n.async,n=n.src,typeof n=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=qi(n),n=gi(i).hoistableScripts,l=n.get(e),l||(l={type:"script",instance:null,count:0,state:null},n.set(e,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(C(444,t))}}function Ri(t){return'href="'+gt(t)+'"'}function eo(t){return'link[rel="stylesheet"]['+t+"]"}function lg(t){return le({},t,{"data-precedence":t.precedence,precedence:null})}function Bb(t,e,n,l){t.querySelector('link[rel="preload"][as="style"]['+e+"]")?l.loading=1:(e=t.createElement("link"),l.preload=e,e.addEventListener("load",function(){return l.loading|=1}),e.addEventListener("error",function(){return l.loading|=2}),Oe(e,"link",n),xe(e),t.head.appendChild(e))}function qi(t){return'[src="'+gt(t)+'"]'}function to(t){return"script[async]"+t}function ym(t,e,n){if(e.count++,e.instance===null)switch(e.type){case"style":var l=t.querySelector('style[data-href~="'+gt(n.href)+'"]');if(l)return e.instance=l,xe(l),l;var i=le({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return l=(t.ownerDocument||t).createElement("style"),xe(l),Oe(l,"style",i),ha(l,n.precedence,t),e.instance=l;case"stylesheet":i=Ri(n.href);var r=t.querySelector(eo(i));if(r)return e.state.loading|=4,e.instance=r,xe(r),r;l=lg(n),(i=vt.get(i))&&jf(l,i),r=(t.ownerDocument||t).createElement("link"),xe(r);var o=r;return o._p=new Promise(function(a,s){o.onload=a,o.onerror=s}),Oe(r,"link",l),e.state.loading|=4,ha(r,n.precedence,t),e.instance=r;case"script":return r=qi(n.src),(i=t.querySelector(to(r)))?(e.instance=i,xe(i),i):(l=n,(i=vt.get(r))&&(l=le({},n),Xf(l,i)),t=t.ownerDocument||t,i=t.createElement("script"),xe(i),Oe(i,"link",l),t.head.appendChild(i),e.instance=i);case"void":return null;default:throw Error(C(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(l=e.instance,e.state.loading|=4,ha(l,n.precedence,t));return e.instance}function ha(t,e,n){for(var l=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),i=l.length?l[l.length-1]:null,r=i,o=0;o title"):null)}function Hb(t,e,n){if(n===1||e.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;switch(e.rel){case"stylesheet":return t=e.disabled,typeof e.precedence=="string"&&t==null;default:return!0}case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function ig(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function Ub(t,e,n,l){if(n.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var i=Ri(l.href),r=e.querySelector(eo(i));if(r){e=r._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(t.count++,t=Za.bind(t),e.then(t,t)),n.state.loading|=4,n.instance=r,xe(r);return}r=e.ownerDocument||e,l=lg(l),(i=vt.get(i))&&jf(l,i),r=r.createElement("link"),xe(r);var o=r;o._p=new Promise(function(a,s){o.onload=a,o.onerror=s}),Oe(r,"link",l),n.instance=r}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(n,e),(e=n.state.preload)&&(n.state.loading&3)===0&&(t.count++,n=Za.bind(t),e.addEventListener("load",n),e.addEventListener("error",n))}}var lc=0;function Vb(t,e){return t.stylesheets&&t.count===0&&ma(t,t.stylesheets),0lc?50:800)+e);return t.unsuspend=n,function(){t.unsuspend=null,clearTimeout(l),clearTimeout(i)}}:null}function Za(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)ma(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var Ga=null;function ma(t,e){t.stylesheets=null,t.unsuspend!==null&&(t.count++,Ga=new Map,e.forEach(qb,t),Ga=null,Za.call(t))}function qb(t,e){if(!(e.state.loading&4)){var n=Ga.get(t);if(n)var l=n.get(null);else{n=new Map,Ga.set(t,n);for(var i=t.querySelectorAll("link[data-precedence],style[data-precedence]"),r=0;r{"use strict";function hg(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(hg)}catch(t){console.error(t)}}hg(),pg.exports=dg()});var D3=Ro(Fl(),1),k3=Ro(mg(),1);var Qb={isDark:null,pageBackground:"--agent-page-bg",surfaceBackground:"--agent-surface",surfaceElevatedBackground:"--agent-surface-elevated",inputBackground:"--agent-input-bg",border:"--agent-border",borderStrong:"--agent-border-strong",text:"--agent-text",mutedText:"--agent-muted",softText:"--agent-soft",accent:"--agent-accent",accentSoft:"--agent-accent-soft",danger:"--agent-danger",shadow:"--agent-shadow"};function no(t){if(typeof document>"u")return;let e=document.documentElement;e.dataset.theme=t.isDark?"dark":"light",Ff(),e.classList.toggle("dark",t.isDark),e.classList.toggle("electron-dark",t.isDark),e.classList.toggle("light",!t.isDark),e.style.colorScheme=t.isDark?"dark":"light";for(let[n,l]of Object.entries(Qb))l&&e.style.setProperty(l,String(t[n]))}function Ff(){if(typeof document>"u")return;let t=document.documentElement;t.dataset.codexWindowType="electron",t.dataset.windowType="electron",t.dataset.codexOs=Jb(),document.body&&(document.body.dataset.codexWindowType="electron")}function Jb(){if(typeof navigator>"u")return"unknown";let t=navigator,e=(t.userAgentData?.platform??t.platform??t.userAgent).toLowerCase();return e.includes("win")?"win32":e.includes("mac")||e.includes("darwin")?"darwin":e.includes("linux")?"linux":"unknown"}var E=Ro(Fl(),1);function gg(t){if(t.activityStatus==="stopped"||t.activityStatus==="failed")return"!";switch(t.activityKind){case"command":return"$";case"fileChange":return"+";default:return"*"}}function Pn(){let t=globalThis.crypto;if(typeof t?.randomUUID=="function")return t.randomUUID();let e=t?.getRandomValues?.bind(t);if(typeof e=="function"){let n=new Uint8Array(16);return e(n),n[6]=n[6]&15|64,n[8]=n[8]&63|128,[...n].map((l,i)=>{let r=l.toString(16).padStart(2,"0");return[4,6,8,10].includes(i)?`-${r}`:r}).join("")}return`cmux-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}var Wf=new Set,lo=class extends Error{code;constructor(e,n){super(e),this.name="NativeBridgeError",this.code=n}};typeof window<"u"&&(window.cmuxAgentBridge={applyTheme(t){no(t)},receive(t){t.type==="app.theme"&&no(t.theme);for(let e of Wf)e(t)}});function yg(t){return Wf.add(t),()=>{Wf.delete(t)}}async function qt(t,e={}){if(typeof window>"u")throw new Error("Native bridge is unavailable.");let n=window.webkit?.messageHandlers?.agentSession;if(!n||typeof n.postMessage!="function")throw new Error("Native bridge is unavailable.");let l=await n.postMessage({id:Pn(),method:t,params:e});if(!l.ok)throw new lo(l.error?.userMessage||"Native bridge request failed.",l.error?.code);return l.value}var Ie="border-token-border user-select-none no-drag cursor-interaction flex items-center gap-1 border whitespace-nowrap focus:outline-none disabled:cursor-not-allowed disabled:opacity-40",Qe="text-token-text-tertiary enabled:hover:bg-token-list-hover-background data-[state=open]:bg-token-list-hover-background border-transparent";var gn="h-token-button-composer px-2 py-0 text-sm leading-[18px]",bg="h-token-button-composer-sm px-1.5 py-0 text-sm leading-[18px]",io="electron:p-1 electron:[&>svg]:icon-sm flex items-center justify-center p-0.5",ro="aspect-square items-center justify-center !px-0",Sg="focus-visible:outline-token-button-background cursor-interaction size-token-button-composer flex items-center justify-center rounded-full p-0.5 transition-opacity focus-visible:outline-2 bg-token-foreground",xg="agent-composer-stack",vg="codex-composer-frame relative",Cg="codex-composer-inner relative z-10 flex min-h-0 flex-1 flex-col",Mg="codex-composer-surface relative flex flex-col bg-token-input-background/90 backdrop-blur-lg extension:border extension:border-token-border/50 electron:ring electron:ring-black/10 electron:shadow-[0_4px_16px_0_rgba(0,0,0,0.05)] electron:dark:bg-token-dropdown-background",Tg="composer-footer grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2 px-2 py-1",Eg="composer-footer grid grid-cols-[minmax(0,auto)_auto_minmax(0,1fr)] items-center gap-[5px] mb-2 px-2";var cs="M16.6182 9.33203H3.38184V12.7002C3.38184 13.3753 3.38238 13.8438 3.41211 14.208C3.44124 14.5646 3.49494 14.766 3.57129 14.916L3.63867 15.0361C3.80618 15.3094 4.04683 15.5324 4.33399 15.6787L4.45703 15.7314C4.59362 15.7803 4.77411 15.816 5.04199 15.8379C5.40624 15.8676 5.87469 15.8682 6.54981 15.8682H13.4502C14.1253 15.8682 14.5938 15.8676 14.958 15.8379C15.3146 15.8088 15.516 15.7551 15.666 15.6787L15.7861 15.6113C16.0594 15.4438 16.2824 15.2032 16.4287 14.916L16.4814 14.793C16.5303 14.6564 16.566 14.4759 16.5879 14.208C16.6176 13.8438 16.6182 13.3753 16.6182 12.7002V9.33203ZM17.8818 12.7002C17.8818 13.3547 17.8826 13.8838 17.8477 14.3115C17.8165 14.6922 17.7543 15.0349 17.6172 15.3545L17.5537 15.4902C17.3015 15.9852 16.9182 16.3996 16.4473 16.6885L16.2402 16.8037C15.8824 16.9861 15.4966 17.0621 15.0615 17.0977C14.6338 17.1326 14.1047 17.1318 13.4502 17.1318H6.54981C5.89526 17.1318 5.36616 17.1326 4.93848 17.0977C4.55777 17.0665 4.21506 17.0043 3.89551 16.8672L3.75977 16.8037C3.26483 16.5515 2.85036 16.1682 2.56152 15.6973L2.44629 15.4902C2.26394 15.1324 2.1879 14.7466 2.15235 14.3115C2.1174 13.8838 2.11817 13.3547 2.11817 12.7002V7.29981C2.11817 6.64526 2.1174 6.11616 2.15235 5.68848C2.1879 5.25344 2.26394 4.86765 2.44629 4.50977L2.56152 4.30274C2.85036 3.83179 3.26483 3.44854 3.75977 3.19629L3.89551 3.13281C4.21506 2.99571 4.55777 2.93346 4.93848 2.90235C5.36616 2.8674 5.89526 2.86817 6.54981 2.86817H7.24512C7.38876 2.86816 7.48717 2.86807 7.58399 2.87402L7.83496 2.90039C8.41501 2.98537 8.96006 3.23832 9.40039 3.63086L9.64356 3.86817C9.75546 3.98103 9.79343 4.0181 9.83008 4.05078L9.94238 4.14356C10.2142 4.34787 10.5413 4.46917 10.8828 4.49024L11.1445 4.49317H13.4502C14.1047 4.49317 14.6338 4.4924 15.0615 4.52735C15.4966 4.5629 15.8824 4.63894 16.2402 4.82129L16.4473 4.93652C16.9182 5.22536 17.3015 5.63983 17.5537 6.13477L17.6172 6.27051C17.7543 6.59006 17.8165 6.93277 17.8477 7.31348C17.8826 7.74116 17.8818 8.27026 17.8818 8.92481V12.7002ZM3.38184 8.06836H16.6143C16.6105 7.81516 16.603 7.60256 16.5879 7.41699C16.566 7.14911 16.5303 6.96862 16.4814 6.83203L16.4287 6.70899C16.2824 6.42183 16.0594 6.18118 15.7861 6.01367L15.666 5.94629C15.516 5.86994 15.3146 5.81624 14.958 5.78711C14.5938 5.75738 14.1253 5.75684 13.4502 5.75684H11.1445L10.8047 5.75098C10.2158 5.71466 9.65236 5.50645 9.1836 5.1543L8.98926 4.99414C8.91673 4.92948 8.84746 4.85908 8.7461 4.75684L8.55957 4.57422C8.30416 4.34653 7.98784 4.19959 7.65137 4.15039L7.50684 4.13477C7.45779 4.13174 7.4043 4.13184 7.24512 4.13184H6.54981C5.87469 4.13184 5.40624 4.13238 5.04199 4.16211C4.77411 4.184 4.59362 4.21966 4.45703 4.26856L4.33399 4.32129C4.04683 4.4676 3.80618 4.69061 3.63867 4.96387L3.57129 5.08399C3.49494 5.23405 3.44124 5.43543 3.41211 5.79199C3.38238 6.15624 3.38184 6.62469 3.38184 7.29981V8.06836Z";var Fb=new Set(["cd","clear","echo","history","ls","popd","printenv","pwd","pushd","type","which"]);function Wb(t){return/^(?:\.\/|\.\.\/|~\/|\/)/.test(t)}function ds(t){let e=t.trim();if(e.length===0)return null;if(e.startsWith("!")&&e.slice(1).trim().length>0)return"explicit";let n=e.match(/^[^\s]+/)?.[0]?.toLowerCase();return n&&(Fb.has(n)||Wb(e))?"detected":null}function Ng(t){let e=t.trim();return e.startsWith("!")?e.slice(1).trim():e}var fs=class{pendingRevision=null;begin(e){return this.pendingRevision!==null?!1:(this.pendingRevision=e,!0)}complete(e,n){return this.pendingRevision!==e?!1:(this.pendingRevision=null,n===e)}fail(e){return this.pendingRevision!==e?!1:(this.pendingRevision=null,!0)}get isPending(){return this.pendingRevision!==null}};function Og(t){return t.composerLayoutMode==="multiline"||t.hasVisibleAttachments||t.isEditorMultiline||t.isVoiceLayoutActive?!1:t.singleLineInputWidth==null?!0:t.singleLineTextWidth+32<=t.singleLineInputWidth}function Pf(t){let e={};for(let n of t)e[n.id]={hideControl:!1,hideLabel:!1};return e}function Ag(t){let e=t.items.filter(o=>o.enabled),n=Pf(t.items);if(e.length===0||t.availableWidth<=0)return n;let l=e.reduce((o,a)=>o+a.expandedWidth,0)+t.gap*Math.max(0,e.length-1);if(l<=0)return n;let i=l;for(let o of e)!o.canHideLabel||t.availableWidth>=i||(n[o.id].hideLabel=!0,i-=o.expandedWidth-o.compactWidth);if(Pb(n,t.previousState,"hideLabel"))return n;let r=e.length;for(let o of e){let a=n[o.id],s=a.hideLabel?o.compactWidth:o.expandedWidth;(a.hideLabel&&!o.hasMeasuredCompactWidth||t.availableWidth1?t.gap:0),r-=1)}return n}function Dg(t,e){let n=Object.keys(t),l=Object.keys(e);if(n.length!==l.length)return!1;for(let i of n)if(t[i]?.hideControl!==e[i]?.hideControl||t[i]?.hideLabel!==e[i]?.hideLabel)return!1;return!0}function Pb(t,e,n){let l=Object.keys(t);return l.length!==Object.keys(e).length?!0:l.some(i=>t[i]?.[n]!==e[i]?.[n])}var $b=new Set(["base","embed","form","iframe","link","meta","object","script","style"]),e5=new Set(["poster","src","srcset","xlink:href"]);function wg(t){let e=typeof window>"u"?void 0:window.marked;if(e?.parse)try{let n=e.parse(t5(t),{async:!1,breaks:!0,gfm:!0});if(typeof n=="string")return o5(n)}catch{return $n(t)}return $n(t)}function t5(t){let e="",n=null,l=t.match(/[^\r\n]*(?:\r\n|\n|\r|$)/g)??[];for(let i of l){if(i==="")continue;let r=i.match(/(\r\n|\n|\r)$/)?.[0]??"",o=r?i.slice(0,-r.length):i;if(n){e+=o+r,i5(o,n)&&(n=null);continue}let a=l5(o);if(a){n=a,e+=o+r;continue}e+=r5(o)+r}return e}function $n(t){return n5(t).replace(/\n/g,"
    ")}function n5(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function l5(t){let e=/^( {0,3})(`{3,}|~{3,})/.exec(t);if(!e)return null;let n=e[2];return{character:n[0],length:n.length}}function i5(t,e){let n=/^( {0,3})(`{3,}|~{3,})\s*$/.exec(t);if(!n)return!1;let l=n[2];return l[0]===e.character&&l.length>=e.length}function r5(t){let e="",n=0,l=0;for(;l"u")return t;let e=document.createElement("template");e.innerHTML=t;for(let n of Array.from(e.content.querySelectorAll("*"))){if($b.has(n.localName)){n.remove();continue}for(let l of Array.from(n.attributes)){let i=l.name.toLowerCase();if(i.startsWith("on")||i==="srcdoc"||i==="style"){n.removeAttribute(l.name);continue}let r=a5(n.localName,i,l.value);r===null?n.removeAttribute(l.name):typeof r=="string"&&r!==l.value&&n.setAttribute(l.name,r)}n.localName==="a"&&n.setAttribute("rel","noreferrer")}return e.innerHTML}function a5(t,e,n){let l=e.toLowerCase();if(e5.has(l))return null;if(l==="href")return t.toLowerCase()!=="a"?null:s5(n)?n:null}function s5(t){let e=t.trim();if(e.startsWith("#"))return!0;if(e.startsWith("/")||!/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e))return!1;try{let n=new URL(e);return n.protocol==="http:"||n.protocol==="https:"||n.protocol==="mailto:"}catch{return!1}}function hs(t){return t.replace(/([\\[\]])/g,"\\$1")}function ps(t){return encodeURI(t).replace(/([\\()])/g,"\\$1")}function Rg(t,e){let n=e.map(l=>`[${hs(l.label)}](${ps(l.path)})`).join(" ");return n?t.trim().length>0?`${n} +`+l.stack}}var fc=Object.prototype.hasOwnProperty,tf=be.unstable_scheduleCallback,Au=be.unstable_cancelCallback,D4=be.unstable_shouldYield,k4=be.unstable_requestPaint,lt=be.unstable_now,w4=be.unstable_getCurrentPriorityLevel,zm=be.unstable_ImmediatePriority,Lm=be.unstable_UserBlockingPriority,xa=be.unstable_NormalPriority,R4=be.unstable_LowPriority,_m=be.unstable_IdlePriority,z4=be.log,L4=be.unstable_setDisableYieldValue,Xr=null,it=null;function Rn(t){if(typeof z4=="function"&&L4(t),it&&typeof it.setStrictMode=="function")try{it.setStrictMode(Xr,t)}catch{}}var rt=Math.clz32?Math.clz32:H4,_4=Math.log,B4=Math.LN2;function H4(t){return t>>>=0,t===0?32:31-(_4(t)/B4|0)|0}var Vo=256,qo=262144,Yo=4194304;function dl(t){var e=t&42;if(e!==0)return e;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Ka(t,e,n){var l=t.pendingLanes;if(l===0)return 0;var i=0,r=t.suspendedLanes,o=t.pingedLanes;t=t.warmLanes;var a=l&134217727;return a!==0?(l=a&~r,l!==0?i=dl(l):(o&=a,o!==0?i=dl(o):n||(n=a&~t,n!==0&&(i=dl(n))))):(a=l&~r,a!==0?i=dl(a):o!==0?i=dl(o):n||(n=l&~t,n!==0&&(i=dl(n)))),i===0?0:e!==0&&e!==i&&(e&r)===0&&(r=i&-i,n=e&-e,r>=n||r===32&&(n&4194048)!==0)?e:i}function Kr(t,e){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&e)===0}function U4(t,e){switch(t){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Bm(){var t=Yo;return Yo<<=1,(Yo&62914560)===0&&(Yo=4194304),t}function Du(t){for(var e=[],n=0;31>n;n++)e.push(t);return e}function Ir(t,e){t.pendingLanes|=e,e!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function V4(t,e,n,l,i,r){var o=t.pendingLanes;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=n,t.entangledLanes&=n,t.errorRecoveryDisabledLanes&=n,t.shellSuspendCounter=0;var a=t.entanglements,s=t.expirationTimes,u=t.hiddenUpdates;for(n=o&~n;0"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var X4=/[\n"\\]/g;function gt(t){return t.replace(X4,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function pc(t,e,n,l,i,r,o,a){t.name="",o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?t.type=o:t.removeAttribute("type"),e!=null?o==="number"?(e===0&&t.value===""||t.value!=e)&&(t.value=""+ht(e)):t.value!==""+ht(e)&&(t.value=""+ht(e)):o!=="submit"&&o!=="reset"||t.removeAttribute("value"),e!=null?mc(t,o,ht(e)):n!=null?mc(t,o,ht(n)):l!=null&&t.removeAttribute("value"),i==null&&r!=null&&(t.defaultChecked=!!r),i!=null&&(t.checked=i&&typeof i!="function"&&typeof i!="symbol"),a!=null&&typeof a!="function"&&typeof a!="symbol"&&typeof a!="boolean"?t.name=""+ht(a):t.removeAttribute("name")}function Xm(t,e,n,l,i,r,o,a){if(r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"&&(t.type=r),e!=null||n!=null){if(!(r!=="submit"&&r!=="reset"||e!=null)){hc(t);return}n=n!=null?""+ht(n):"",e=e!=null?""+ht(e):n,a||e===t.value||(t.value=e),t.defaultValue=e}l=l??i,l=typeof l!="function"&&typeof l!="symbol"&&!!l,t.checked=a?t.checked:!!l,t.defaultChecked=!!l,o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(t.name=o),hc(t)}function mc(t,e,n){e==="number"&&va(t.ownerDocument)===t||t.defaultValue===""+n||(t.defaultValue=""+n)}function yi(t,e,n,l){if(t=t.options,e){e={};for(var i=0;i"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),yc=!1;if(cn)try{$l={},Object.defineProperty($l,"passive",{get:function(){yc=!0}}),window.addEventListener("test",$l,$l),window.removeEventListener("test",$l,$l)}catch{yc=!1}var $l,zn=null,sf=null,ia=null;function Fm(){if(ia)return ia;var t,e=sf,n=e.length,l,i="value"in zn?zn.value:zn.textContent,r=i.length;for(t=0;t=yr),mp=" ",gp=!1;function Pm(t,e){switch(t){case"keyup":return S6.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $m(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var si=!1;function v6(t,e){switch(t){case"compositionend":return $m(e);case"keypress":return e.which!==32?null:(gp=!0,mp);case"textInput":return t=e.data,t===mp&&gp?null:t;default:return null}}function C6(t,e){if(si)return t==="compositionend"||!cf&&Pm(t,e)?(t=Fm(),ia=sf=zn=null,si=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=l}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=xp(n)}}function l1(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?l1(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function i1(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var e=va(t.document);e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=va(t.document)}return e}function ff(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}var k6=cn&&"documentMode"in document&&11>=document.documentMode,ui=null,bc=null,Sr=null,Sc=!1;function Cp(t,e,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Sc||ui==null||ui!==va(l)||(l=ui,"selectionStart"in l&&ff(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Sr&&zr(Sr,l)||(Sr=l,l=Va(bc,"onSelect"),0>=o,i-=o,Lt=1<<32-rt(e)+i|n<N?(T=M,M=null):T=M.sibling;var A=d(g,M,S[N],x);if(A===null){M===null&&(M=T);break}t&&M&&A.alternate===null&&e(g,M),y=r(A,y,N),R===null?O=A:R.sibling=A,R=A,M=T}if(N===S.length)return n(g,M),q&&tn(g,N),O;if(M===null){for(;NN?(T=M,M=null):T=M.sibling;var Z=d(g,M,A.value,x);if(Z===null){M===null&&(M=T);break}t&&M&&Z.alternate===null&&e(g,M),y=r(Z,y,N),R===null?O=Z:R.sibling=Z,R=Z,M=T}if(A.done)return n(g,M),q&&tn(g,N),O;if(M===null){for(;!A.done;N++,A=S.next())A=f(g,A.value,x),A!==null&&(y=r(A,y,N),R===null?O=A:R.sibling=A,R=A);return q&&tn(g,N),O}for(M=l(M);!A.done;N++,A=S.next())A=h(M,g,N,A.value,x),A!==null&&(t&&A.alternate!==null&&M.delete(A.key===null?N:A.key),y=r(A,y,N),R===null?O=A:R.sibling=A,R=A);return t&&M.forEach(function($){return e(g,$)}),q&&tn(g,N),O}function v(g,y,S,x){if(typeof S=="object"&&S!==null&&S.type===ii&&S.key===null&&(S=S.props.children),typeof S=="object"&&S!==null){switch(S.$$typeof){case Uo:e:{for(var O=S.key;y!==null;){if(y.key===O){if(O=S.type,O===ii){if(y.tag===7){n(g,y.sibling),x=i(y,S.props.children),x.return=g,g=x;break e}}else if(y.elementType===O||typeof O=="object"&&O!==null&&O.$$typeof===Nn&&hl(O)===y.type){n(g,y.sibling),x=i(y,S.props),ar(x,S),x.return=g,g=x;break e}n(g,y);break}else e(g,y);y=y.sibling}S.type===ii?(x=gl(S.props.children,g.mode,x,S.key),x.return=g,g=x):(x=oa(S.type,S.key,S.props,null,g.mode,x),ar(x,S),x.return=g,g=x)}return o(g);case dr:e:{for(O=S.key;y!==null;){if(y.key===O)if(y.tag===4&&y.stateNode.containerInfo===S.containerInfo&&y.stateNode.implementation===S.implementation){n(g,y.sibling),x=i(y,S.children||[]),x.return=g,g=x;break e}else{n(g,y);break}else e(g,y);y=y.sibling}x=Hu(S,g.mode,x),x.return=g,g=x}return o(g);case Nn:return S=hl(S),v(g,y,S,x)}if(hr(S))return p(g,y,S,x);if(rr(S)){if(O=rr(S),typeof O!="function")throw Error(C(150));return S=O.call(S),b(g,y,S,x)}if(typeof S.then=="function")return v(g,y,Io(S),x);if(S.$$typeof===ln)return v(g,y,Ko(g,S),x);Qo(g,S)}return typeof S=="string"&&S!==""||typeof S=="number"||typeof S=="bigint"?(S=""+S,y!==null&&y.tag===6?(n(g,y.sibling),x=i(y,S),x.return=g,g=x):(n(g,y),x=Bu(S,g.mode,x),x.return=g,g=x),o(g)):n(g,y)}return function(g,y,S,x){try{Br=0;var O=v(g,y,S,x);return xi=null,O}catch(M){if(M===Hi||M===Pa)throw M;var R=tt(29,M,null,g.mode);return R.lanes=x,R.return=g,R}}}var Cl=S1(!0),x1=S1(!1),On=!1;function xf(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Nc(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function Vn(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function qn(t,e,n){var l=t.updateQueue;if(l===null)return null;if(l=l.shared,(X&2)!==0){var i=l.pending;return i===null?e.next=e:(e.next=i.next,i.next=e),l.pending=e,e=Ma(t),f1(t,null,n),e}return Wa(t,l,e,n),Ma(t)}function vr(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194048)!==0)){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,Um(t,n)}}function Vu(t,e){var n=t.updateQueue,l=t.alternate;if(l!==null&&(l=l.updateQueue,n===l)){var i=null,r=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};r===null?i=r=o:r=r.next=o,n=n.next}while(n!==null);r===null?i=r=e:r=r.next=e}else i=r=e;n={baseState:l.baseState,firstBaseUpdate:i,lastBaseUpdate:r,shared:l.shared,callbacks:l.callbacks},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}var Oc=!1;function Cr(){if(Oc){var t=Si;if(t!==null)throw t}}function Mr(t,e,n,l){Oc=!1;var i=t.updateQueue;On=!1;var r=i.firstBaseUpdate,o=i.lastBaseUpdate,a=i.shared.pending;if(a!==null){i.shared.pending=null;var s=a,u=s.next;s.next=null,o===null?r=u:o.next=u,o=s;var c=t.alternate;c!==null&&(c=c.updateQueue,a=c.lastBaseUpdate,a!==o&&(a===null?c.firstBaseUpdate=u:a.next=u,c.lastBaseUpdate=s))}if(r!==null){var f=i.baseState;o=0,c=u=s=null,a=r;do{var d=a.lane&-536870913,h=d!==a.lane;if(h?(V&d)===d:(l&d)===d){d!==0&&d===Ni&&(Oc=!0),c!==null&&(c=c.next={lane:0,tag:a.tag,payload:a.payload,callback:null,next:null});e:{var p=t,b=a;d=e;var v=n;switch(b.tag){case 1:if(p=b.payload,typeof p=="function"){f=p.call(v,f,d);break e}f=p;break e;case 3:p.flags=p.flags&-65537|128;case 0:if(p=b.payload,d=typeof p=="function"?p.call(v,f,d):p,d==null)break e;f=le({},f,d);break e;case 2:On=!0}}d=a.callback,d!==null&&(t.flags|=64,h&&(t.flags|=8192),h=i.callbacks,h===null?i.callbacks=[d]:h.push(d))}else h={lane:d,tag:a.tag,payload:a.payload,callback:a.callback,next:null},c===null?(u=c=h,s=f):c=c.next=h,o|=d;if(a=a.next,a===null){if(a=i.shared.pending,a===null)break;h=a,a=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);c===null&&(s=f),i.baseState=s,i.firstBaseUpdate=u,i.lastBaseUpdate=c,r===null&&(i.shared.lanes=0),Jn|=o,t.lanes=o,t.memoizedState=f}}function v1(t,e){if(typeof t!="function")throw Error(C(191,t));t.call(e)}function C1(t,e){var n=t.callbacks;if(n!==null)for(t.callbacks=null,t=0;tr?r:8;var o=z.T,a={};z.T=a,zf(t,!1,e,n);try{var s=i(),u=z.S;if(u!==null&&u(a,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var c=V6(s,l);Tr(t,e,c,ot(t))}else Tr(t,e,l,ot(t))}catch(f){Tr(t,e,{then:function(){},status:"rejected",reason:f},ot())}finally{K.p=r,o!==null&&a.types!==null&&(o.types=a.types),z.T=o}}function X6(){}function Rc(t,e,n,l){if(t.tag!==5)throw Error(C(476));var i=I1(t).queue;K1(t,i,e,ml,n===null?X6:function(){return Q1(t),n(l)})}function I1(t){var e=t.memoizedState;if(e!==null)return e;e={memoizedState:ml,baseState:ml,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:dn,lastRenderedState:ml},next:null};var n={};return e.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:dn,lastRenderedState:n},next:null},t.memoizedState=e,t=t.alternate,t!==null&&(t.memoizedState=e),e}function Q1(t){var e=I1(t);e.next===null&&(e=t.alternate.memoizedState),Tr(t,e.next.queue,{},ot())}function Rf(){return Ne(Yr)}function J1(){return de().memoizedState}function F1(){return de().memoizedState}function K6(t){for(var e=t.return;e!==null;){switch(e.tag){case 24:case 3:var n=ot();t=Vn(n);var l=qn(e,t,n);l!==null&&(je(l,e,n),vr(l,e,n)),e={cache:yf()},t.payload=e;return}e=e.return}}function I6(t,e,n){var l=ot();n={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},ns(t)?P1(e,n):(n=hf(t,e,n,l),n!==null&&(je(n,t,l),$1(n,e,l)))}function W1(t,e,n){var l=ot();Tr(t,e,n,l)}function Tr(t,e,n,l){var i={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(ns(t))P1(e,i);else{var r=t.alternate;if(t.lanes===0&&(r===null||r.lanes===0)&&(r=e.lastRenderedReducer,r!==null))try{var o=e.lastRenderedState,a=r(o,n);if(i.hasEagerState=!0,i.eagerState=a,at(a,o))return Wa(t,e,i,0),W===null&&Fa(),!1}catch{}if(n=hf(t,e,i,l),n!==null)return je(n,t,l),$1(n,e,l),!0}return!1}function zf(t,e,n,l){if(l={lane:2,revertLane:Zf(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},ns(t)){if(e)throw Error(C(479))}else e=hf(t,n,l,2),e!==null&&je(e,t,2)}function ns(t){var e=t.alternate;return t===_||e!==null&&e===_}function P1(t,e){vi=Da=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function $1(t,e,n){if((n&4194048)!==0){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,Um(t,n)}}var Ur={readContext:Ne,use:es,useCallback:oe,useContext:oe,useEffect:oe,useImperativeHandle:oe,useLayoutEffect:oe,useInsertionEffect:oe,useMemo:oe,useReducer:oe,useRef:oe,useState:oe,useDebugValue:oe,useDeferredValue:oe,useTransition:oe,useSyncExternalStore:oe,useId:oe,useHostTransitionStatus:oe,useFormState:oe,useActionState:oe,useOptimistic:oe,useMemoCache:oe,useCacheRefresh:oe};Ur.useEffectEvent=oe;var e0={readContext:Ne,use:es,useCallback:function(t,e){return He().memoizedState=[t,e===void 0?null:e],t},useContext:Ne,useEffect:Hp,useImperativeHandle:function(t,e,n){n=n!=null?n.concat([t]):null,ua(4194308,4,Y1.bind(null,e,t),n)},useLayoutEffect:function(t,e){return ua(4194308,4,t,e)},useInsertionEffect:function(t,e){ua(4,2,t,e)},useMemo:function(t,e){var n=He();e=e===void 0?null:e;var l=t();if(Ml){Rn(!0);try{t()}finally{Rn(!1)}}return n.memoizedState=[l,e],l},useReducer:function(t,e,n){var l=He();if(n!==void 0){var i=n(e);if(Ml){Rn(!0);try{n(e)}finally{Rn(!1)}}}else i=e;return l.memoizedState=l.baseState=i,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:i},l.queue=t,t=t.dispatch=I6.bind(null,_,t),[l.memoizedState,t]},useRef:function(t){var e=He();return t={current:t},e.memoizedState=t},useState:function(t){t=kc(t);var e=t.queue,n=W1.bind(null,_,e);return e.dispatch=n,[t.memoizedState,n]},useDebugValue:kf,useDeferredValue:function(t,e){var n=He();return wf(n,t,e)},useTransition:function(){var t=kc(!1);return t=K1.bind(null,_,t.queue,!0,!1),He().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,e,n){var l=_,i=He();if(q){if(n===void 0)throw Error(C(407));n=n()}else{if(n=e(),W===null)throw Error(C(349));(V&127)!==0||O1(l,e,n)}i.memoizedState=n;var r={value:n,getSnapshot:e};return i.queue=r,Hp(D1.bind(null,l,r,t),[t]),l.flags|=2048,Ai(9,{destroy:void 0},A1.bind(null,l,r,n,e),null),n},useId:function(){var t=He(),e=W.identifierPrefix;if(q){var n=_t,l=Lt;n=(l&~(1<<32-rt(l)-1)).toString(32)+n,e="_"+e+"R_"+n,n=ka++,0<\/script>",r=r.removeChild(r.firstChild);break;case"select":r=typeof l.is=="string"?o.createElement("select",{is:l.is}):o.createElement("select"),l.multiple?r.multiple=!0:l.size&&(r.size=l.size);break;default:r=typeof l.is=="string"?o.createElement(i,{is:l.is}):o.createElement(i)}}r[Te]=e,r[Xe]=l;e:for(o=e.child;o!==null;){if(o.tag===5||o.tag===6)r.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===e)break e;for(;o.sibling===null;){if(o.return===null||o.return===e)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}e.stateNode=r;e:switch(Oe(r,i,l),i){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&Wt(e)}}return te(e),Iu(e,e.type,t===null?null:t.memoizedProps,e.pendingProps,n),null;case 6:if(t&&e.stateNode!=null)t.memoizedProps!==l&&Wt(e);else{if(typeof l!="string"&&e.stateNode===null)throw Error(C(166));if(t=Hn.current,ei(e)){if(t=e.stateNode,n=e.memoizedProps,l=null,i=Ee,i!==null)switch(i.tag){case 27:case 5:l=i.memoizedProps}t[Te]=e,t=!!(t.nodeValue===n||l!==null&&l.suppressHydrationWarning===!0||W0(t.nodeValue,n)),t||In(e,!0)}else t=qa(t).createTextNode(l),t[Te]=e,e.stateNode=t}return te(e),null;case 31:if(n=e.memoizedState,t===null||t.memoizedState!==null){if(l=ei(e),n!==null){if(t===null){if(!l)throw Error(C(318));if(t=e.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(C(557));t[Te]=e}else xl(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;te(e),t=!1}else n=Uu(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=n),t=!0;if(!t)return e.flags&256?(et(e),e):(et(e),null);if((e.flags&128)!==0)throw Error(C(558))}return te(e),null;case 13:if(l=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(i=ei(e),l!==null&&l.dehydrated!==null){if(t===null){if(!i)throw Error(C(318));if(i=e.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(C(317));i[Te]=e}else xl(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;te(e),i=!1}else i=Uu(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=i),i=!0;if(!i)return e.flags&256?(et(e),e):(et(e),null)}return et(e),(e.flags&128)!==0?(e.lanes=n,e):(n=l!==null,t=t!==null&&t.memoizedState!==null,n&&(l=e.child,i=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(i=l.alternate.memoizedState.cachePool.pool),r=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(r=l.memoizedState.cachePool.pool),r!==i&&(l.flags|=2048)),n!==t&&n&&(e.child.flags|=8192),Jo(e,e.updateQueue),te(e),null);case 4:return Mi(),t===null&&Gf(e.stateNode.containerInfo),te(e),null;case 10:return sn(e.type),te(e),null;case 19:if(ve(fe),l=e.memoizedState,l===null)return te(e),null;if(i=(e.flags&128)!==0,r=l.rendering,r===null)if(i)sr(l,!1);else{if(ae!==0||t!==null&&(t.flags&128)!==0)for(t=e.child;t!==null;){if(r=Aa(t),r!==null){for(e.flags|=128,sr(l,!1),t=r.updateQueue,e.updateQueue=t,Jo(e,t),e.subtreeFlags=0,t=n,n=e.child;n!==null;)d1(n,t),n=n.sibling;return P(fe,fe.current&1|2),q&&tn(e,l.treeForkCount),e.child}t=t.sibling}l.tail!==null&<()>La&&(e.flags|=128,i=!0,sr(l,!1),e.lanes=4194304)}else{if(!i)if(t=Aa(r),t!==null){if(e.flags|=128,i=!0,t=t.updateQueue,e.updateQueue=t,Jo(e,t),sr(l,!0),l.tail===null&&l.tailMode==="hidden"&&!r.alternate&&!q)return te(e),null}else 2*lt()-l.renderingStartTime>La&&n!==536870912&&(e.flags|=128,i=!0,sr(l,!1),e.lanes=4194304);l.isBackwards?(r.sibling=e.child,e.child=r):(t=l.last,t!==null?t.sibling=r:e.child=r,l.last=r)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=lt(),t.sibling=null,n=fe.current,P(fe,i?n&1|2:n&1),q&&tn(e,l.treeForkCount),t):(te(e),null);case 22:case 23:return et(e),vf(),l=e.memoizedState!==null,t!==null?t.memoizedState!==null!==l&&(e.flags|=8192):l&&(e.flags|=8192),l?(n&536870912)!==0&&(e.flags&128)===0&&(te(e),e.subtreeFlags&6&&(e.flags|=8192)):te(e),n=e.updateQueue,n!==null&&Jo(e,n.retryQueue),n=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),l=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),l!==n&&(e.flags|=2048),t!==null&&ve(yl),null;case 24:return n=null,t!==null&&(n=t.memoizedState.cache),e.memoizedState.cache!==n&&(e.flags|=2048),sn(me),te(e),null;case 25:return null;case 30:return null}throw Error(C(156,e.tag))}function P6(t,e){switch(gf(e),e.tag){case 1:return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return sn(me),Mi(),t=e.flags,(t&65536)!==0&&(t&128)===0?(e.flags=t&-65537|128,e):null;case 26:case 27:case 5:return Sa(e),null;case 31:if(e.memoizedState!==null){if(et(e),e.alternate===null)throw Error(C(340));xl()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 13:if(et(e),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(C(340));xl()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return ve(fe),null;case 4:return Mi(),null;case 10:return sn(e.type),null;case 22:case 23:return et(e),vf(),t!==null&&ve(yl),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 24:return sn(me),null;case 25:return null;default:return null}}function d0(t,e){switch(gf(e),e.tag){case 3:sn(me),Mi();break;case 26:case 27:case 5:Sa(e);break;case 4:Mi();break;case 31:e.memoizedState!==null&&et(e);break;case 13:et(e);break;case 19:ve(fe);break;case 10:sn(e.type);break;case 22:case 23:et(e),vf(),t!==null&&ve(yl);break;case 24:sn(me)}}function Pr(t,e){try{var n=e.updateQueue,l=n!==null?n.lastEffect:null;if(l!==null){var i=l.next;n=i;do{if((n.tag&t)===t){l=void 0;var r=n.create,o=n.inst;l=r(),o.destroy=l}n=n.next}while(n!==i)}}catch(a){Q(e,e.return,a)}}function Qn(t,e,n){try{var l=e.updateQueue,i=l!==null?l.lastEffect:null;if(i!==null){var r=i.next;l=r;do{if((l.tag&t)===t){var o=l.inst,a=o.destroy;if(a!==void 0){o.destroy=void 0,i=e;var s=n,u=a;try{u()}catch(c){Q(i,s,c)}}}l=l.next}while(l!==r)}}catch(c){Q(e,e.return,c)}}function h0(t){var e=t.updateQueue;if(e!==null){var n=t.stateNode;try{C1(e,n)}catch(l){Q(t,t.return,l)}}}function p0(t,e,n){n.props=Tl(t.type,t.memoizedProps),n.state=t.memoizedState;try{n.componentWillUnmount()}catch(l){Q(t,e,l)}}function Er(t,e){try{var n=t.ref;if(n!==null){switch(t.tag){case 26:case 27:case 5:var l=t.stateNode;break;case 30:l=t.stateNode;break;default:l=t.stateNode}typeof n=="function"?t.refCleanup=n(l):n.current=l}}catch(i){Q(t,e,i)}}function Bt(t,e){var n=t.ref,l=t.refCleanup;if(n!==null)if(typeof l=="function")try{l()}catch(i){Q(t,e,i)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(i){Q(t,e,i)}else n.current=null}function m0(t){var e=t.type,n=t.memoizedProps,l=t.stateNode;try{e:switch(e){case"button":case"input":case"select":case"textarea":n.autoFocus&&l.focus();break e;case"img":n.src?l.src=n.src:n.srcSet&&(l.srcset=n.srcSet)}}catch(i){Q(t,t.return,i)}}function Qu(t,e,n){try{var l=t.stateNode;bb(l,t.type,n,e),l[Xe]=e}catch(i){Q(t,t.return,i)}}function g0(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&Wn(t.type)||t.tag===4}function Ju(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||g0(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&Wn(t.type)||t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Hc(t,e,n){var l=t.tag;if(l===5||l===6)t=t.stateNode,e?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(t,e):(e=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,e.appendChild(t),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=rn));else if(l!==4&&(l===27&&Wn(t.type)&&(n=t.stateNode,e=null),t=t.child,t!==null))for(Hc(t,e,n),t=t.sibling;t!==null;)Hc(t,e,n),t=t.sibling}function za(t,e,n){var l=t.tag;if(l===5||l===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(l!==4&&(l===27&&Wn(t.type)&&(n=t.stateNode),t=t.child,t!==null))for(za(t,e,n),t=t.sibling;t!==null;)za(t,e,n),t=t.sibling}function y0(t){var e=t.stateNode,n=t.memoizedProps;try{for(var l=t.type,i=e.attributes;i.length;)e.removeAttributeNode(i[0]);Oe(e,l,n),e[Te]=t,e[Xe]=n}catch(r){Q(t,t.return,r)}}var nn=!1,pe=!1,Fu=!1,Fp=typeof WeakSet=="function"?WeakSet:Set,Se=null;function $6(t,e){if(t=t.containerInfo,jc=ja,t=i1(t),ff(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var l=n.getSelection&&n.getSelection();if(l&&l.rangeCount!==0){n=l.anchorNode;var i=l.anchorOffset,r=l.focusNode;l=l.focusOffset;try{n.nodeType,r.nodeType}catch{n=null;break e}var o=0,a=-1,s=-1,u=0,c=0,f=t,d=null;t:for(;;){for(var h;f!==n||i!==0&&f.nodeType!==3||(a=o+i),f!==r||l!==0&&f.nodeType!==3||(s=o+l),f.nodeType===3&&(o+=f.nodeValue.length),(h=f.firstChild)!==null;)d=f,f=h;for(;;){if(f===t)break t;if(d===n&&++u===i&&(a=o),d===r&&++c===l&&(s=o),(h=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=h}n=a===-1||s===-1?null:{start:a,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Xc={focusedElem:t,selectionRange:n},ja=!1,Se=e;Se!==null;)if(e=Se,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,Se=t;else for(;Se!==null;){switch(e=Se,r=e.alternate,t=e.flags,e.tag){case 0:if((t&4)!==0&&(t=e.updateQueue,t=t!==null?t.events:null,t!==null))for(n=0;n title"))),Oe(r,l,n),r[Te]=t,xe(r),l=r;break e;case"link":var o=bm("link","href",i).get(l+(n.href||""));if(o){for(var a=0;av&&(o=v,v=b,b=o);var g=vp(a,b),y=vp(a,v);if(g&&y&&(h.rangeCount!==1||h.anchorNode!==g.node||h.anchorOffset!==g.offset||h.focusNode!==y.node||h.focusOffset!==y.offset)){var S=f.createRange();S.setStart(g.node,g.offset),h.removeAllRanges(),b>v?(h.addRange(S),h.extend(y.node,y.offset)):(S.setEnd(y.node,y.offset),h.addRange(S))}}}}for(f=[],h=a;h=h.parentNode;)h.nodeType===1&&f.push({element:h,left:h.scrollLeft,top:h.scrollTop});for(typeof a.focus=="function"&&a.focus(),a=0;an?32:n,z.T=null,n=qc,qc=null;var r=Zn,o=un;if(ye=0,ki=Zn=null,un=0,(X&6)!==0)throw Error(C(331));var a=X;if(X|=4,A0(r.current),E0(r,r.current,o,n),X=a,$r(0,!1),it&&typeof it.onPostCommitFiberRoot=="function")try{it.onPostCommitFiberRoot(Xr,r)}catch{}return!0}finally{K.p=i,z.T=l,G0(t,e)}}function em(t,e,n){e=yt(n,e),e=Lc(t.stateNode,e,2),t=qn(t,e,2),t!==null&&(Ir(t,2),Vt(t))}function Q(t,e,n){if(t.tag===3)em(t,t,n);else for(;e!==null;){if(e.tag===3){em(e,t,n);break}else if(e.tag===1){var l=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Yn===null||!Yn.has(l))){t=yt(n,t),n=r0(2),l=qn(e,n,2),l!==null&&(o0(n,l,e,t),Ir(l,2),Vt(l));break}}e=e.return}}function Pu(t,e,n){var l=t.pingCache;if(l===null){l=t.pingCache=new nb;var i=new Set;l.set(e,i)}else i=l.get(e),i===void 0&&(i=new Set,l.set(e,i));i.has(n)||(Vf=!0,i.add(n),t=ab.bind(null,t,e,n),e.then(t,t))}function ab(t,e,n){var l=t.pingCache;l!==null&&l.delete(e),t.pingedLanes|=t.suspendedLanes&n,t.warmLanes&=~n,W===t&&(V&n)===n&&(ae===4||ae===3&&(V&62914560)===V&&300>lt()-ls?(X&2)===0&&wi(t,0):qf|=n,Di===V&&(Di=0)),Vt(t)}function X0(t,e){e===0&&(e=Bm()),t=Al(t,e),t!==null&&(Ir(t,e),Vt(t))}function sb(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),X0(t,n)}function ub(t,e){var n=0;switch(t.tag){case 31:case 13:var l=t.stateNode,i=t.memoizedState;i!==null&&(n=i.retryLane);break;case 19:l=t.stateNode;break;case 22:l=t.stateNode._retryCache;break;default:throw Error(C(314))}l!==null&&l.delete(e),X0(t,n)}function cb(t,e){return tf(t,e)}var Ha=null,li=null,Zc=!1,Ua=!1,$u=!1,Bn=0;function Vt(t){t!==li&&t.next===null&&(li===null?Ha=li=t:li=li.next=t),Ua=!0,Zc||(Zc=!0,db())}function $r(t,e){if(!$u&&Ua){$u=!0;do for(var n=!1,l=Ha;l!==null;){if(!e)if(t!==0){var i=l.pendingLanes;if(i===0)var r=0;else{var o=l.suspendedLanes,a=l.pingedLanes;r=(1<<31-rt(42|t)+1)-1,r&=i&~(o&~a),r=r&201326741?r&201326741|1:r?r|2:0}r!==0&&(n=!0,tm(l,r))}else r=V,r=Ka(l,l===W?r:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(r&3)===0||Kr(l,r)||(n=!0,tm(l,r));l=l.next}while(n);$u=!1}}function fb(){K0()}function K0(){Ua=Zc=!1;var t=0;Bn!==0&&xb()&&(t=Bn);for(var e=lt(),n=null,l=Ha;l!==null;){var i=l.next,r=I0(l,e);r===0?(l.next=null,n===null?Ha=i:n.next=i,i===null&&(li=n)):(n=l,(t!==0||(r&3)!==0)&&(Ua=!0)),l=i}ye!==0&&ye!==5||$r(t,!1),Bn!==0&&(Bn=0)}function I0(t,e){for(var n=t.suspendedLanes,l=t.pingedLanes,i=t.expirationTimes,r=t.pendingLanes&-62914561;0a)break;var c=s.transferSize,f=s.initiatorType;c&&sm(f)&&(s=s.responseEnd,o+=c*(s"u"?null:document;function ng(t,e,n){var l=Vi;if(l&&typeof e=="string"&&e){var i=gt(e);i='link[rel="'+t+'"][href="'+i+'"]',typeof n=="string"&&(i+='[crossorigin="'+n+'"]'),mm.has(i)||(mm.add(i),t={rel:t,crossOrigin:n,href:e},l.querySelector(i)===null&&(e=l.createElement("link"),Oe(e,"link",t),xe(e),l.head.appendChild(e)))}}function Db(t){mn.D(t),ng("dns-prefetch",t,null)}function kb(t,e){mn.C(t,e),ng("preconnect",t,e)}function wb(t,e,n){mn.L(t,e,n);var l=Vi;if(l&&t&&e){var i='link[rel="preload"][as="'+gt(e)+'"]';e==="image"&&n&&n.imageSrcSet?(i+='[imagesrcset="'+gt(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(i+='[imagesizes="'+gt(n.imageSizes)+'"]')):i+='[href="'+gt(t)+'"]';var r=i;switch(e){case"style":r=Ri(t);break;case"script":r=qi(t)}vt.has(r)||(t=le({rel:"preload",href:e==="image"&&n&&n.imageSrcSet?void 0:t,as:e},n),vt.set(r,t),l.querySelector(i)!==null||e==="style"&&l.querySelector(eo(r))||e==="script"&&l.querySelector(to(r))||(e=l.createElement("link"),Oe(e,"link",t),xe(e),l.head.appendChild(e)))}}function Rb(t,e){mn.m(t,e);var n=Vi;if(n&&t){var l=e&&typeof e.as=="string"?e.as:"script",i='link[rel="modulepreload"][as="'+gt(l)+'"][href="'+gt(t)+'"]',r=i;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":r=qi(t)}if(!vt.has(r)&&(t=le({rel:"modulepreload",href:t},e),vt.set(r,t),n.querySelector(i)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(to(r)))return}l=n.createElement("link"),Oe(l,"link",t),xe(l),n.head.appendChild(l)}}}function zb(t,e,n){mn.S(t,e,n);var l=Vi;if(l&&t){var i=gi(l).hoistableStyles,r=Ri(t);e=e||"default";var o=i.get(r);if(!o){var a={loading:0,preload:null};if(o=l.querySelector(eo(r)))a.loading=5;else{t=le({rel:"stylesheet",href:t,"data-precedence":e},n),(n=vt.get(r))&&jf(t,n);var s=o=l.createElement("link");xe(s),Oe(s,"link",t),s._p=new Promise(function(u,c){s.onload=u,s.onerror=c}),s.addEventListener("load",function(){a.loading|=1}),s.addEventListener("error",function(){a.loading|=2}),a.loading|=4,ha(o,e,l)}o={type:"stylesheet",instance:o,count:1,state:a},i.set(r,o)}}}function Lb(t,e){mn.X(t,e);var n=Vi;if(n&&t){var l=gi(n).hoistableScripts,i=qi(t),r=l.get(i);r||(r=n.querySelector(to(i)),r||(t=le({src:t,async:!0},e),(e=vt.get(i))&&Xf(t,e),r=n.createElement("script"),xe(r),Oe(r,"link",t),n.head.appendChild(r)),r={type:"script",instance:r,count:1,state:null},l.set(i,r))}}function _b(t,e){mn.M(t,e);var n=Vi;if(n&&t){var l=gi(n).hoistableScripts,i=qi(t),r=l.get(i);r||(r=n.querySelector(to(i)),r||(t=le({src:t,async:!0,type:"module"},e),(e=vt.get(i))&&Xf(t,e),r=n.createElement("script"),xe(r),Oe(r,"link",t),n.head.appendChild(r)),r={type:"script",instance:r,count:1,state:null},l.set(i,r))}}function gm(t,e,n,l){var i=(i=Hn.current)?Ya(i):null;if(!i)throw Error(C(446));switch(t){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(e=Ri(n.href),n=gi(i).hoistableStyles,l=n.get(e),l||(l={type:"style",instance:null,count:0,state:null},n.set(e,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){t=Ri(n.href);var r=gi(i).hoistableStyles,o=r.get(t);if(o||(i=i.ownerDocument||i,o={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},r.set(t,o),(r=i.querySelector(eo(t)))&&!r._p&&(o.instance=r,o.state.loading=5),vt.has(t)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},vt.set(t,n),r||Bb(i,t,n,o.state))),e&&l===null)throw Error(C(528,""));return o}if(e&&l!==null)throw Error(C(529,""));return null;case"script":return e=n.async,n=n.src,typeof n=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=qi(n),n=gi(i).hoistableScripts,l=n.get(e),l||(l={type:"script",instance:null,count:0,state:null},n.set(e,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(C(444,t))}}function Ri(t){return'href="'+gt(t)+'"'}function eo(t){return'link[rel="stylesheet"]['+t+"]"}function lg(t){return le({},t,{"data-precedence":t.precedence,precedence:null})}function Bb(t,e,n,l){t.querySelector('link[rel="preload"][as="style"]['+e+"]")?l.loading=1:(e=t.createElement("link"),l.preload=e,e.addEventListener("load",function(){return l.loading|=1}),e.addEventListener("error",function(){return l.loading|=2}),Oe(e,"link",n),xe(e),t.head.appendChild(e))}function qi(t){return'[src="'+gt(t)+'"]'}function to(t){return"script[async]"+t}function ym(t,e,n){if(e.count++,e.instance===null)switch(e.type){case"style":var l=t.querySelector('style[data-href~="'+gt(n.href)+'"]');if(l)return e.instance=l,xe(l),l;var i=le({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return l=(t.ownerDocument||t).createElement("style"),xe(l),Oe(l,"style",i),ha(l,n.precedence,t),e.instance=l;case"stylesheet":i=Ri(n.href);var r=t.querySelector(eo(i));if(r)return e.state.loading|=4,e.instance=r,xe(r),r;l=lg(n),(i=vt.get(i))&&jf(l,i),r=(t.ownerDocument||t).createElement("link"),xe(r);var o=r;return o._p=new Promise(function(a,s){o.onload=a,o.onerror=s}),Oe(r,"link",l),e.state.loading|=4,ha(r,n.precedence,t),e.instance=r;case"script":return r=qi(n.src),(i=t.querySelector(to(r)))?(e.instance=i,xe(i),i):(l=n,(i=vt.get(r))&&(l=le({},n),Xf(l,i)),t=t.ownerDocument||t,i=t.createElement("script"),xe(i),Oe(i,"link",l),t.head.appendChild(i),e.instance=i);case"void":return null;default:throw Error(C(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(l=e.instance,e.state.loading|=4,ha(l,n.precedence,t));return e.instance}function ha(t,e,n){for(var l=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),i=l.length?l[l.length-1]:null,r=i,o=0;o title"):null)}function Hb(t,e,n){if(n===1||e.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;return e.rel==="stylesheet"?(t=e.disabled,typeof e.precedence=="string"&&t==null):!0;case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function ig(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function Ub(t,e,n,l){if(n.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var i=Ri(l.href),r=e.querySelector(eo(i));if(r){e=r._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(t.count++,t=Za.bind(t),e.then(t,t)),n.state.loading|=4,n.instance=r,xe(r);return}r=e.ownerDocument||e,l=lg(l),(i=vt.get(i))&&jf(l,i),r=r.createElement("link"),xe(r);var o=r;o._p=new Promise(function(a,s){o.onload=a,o.onerror=s}),Oe(r,"link",l),n.instance=r}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(n,e),(e=n.state.preload)&&(n.state.loading&3)===0&&(t.count++,n=Za.bind(t),e.addEventListener("load",n),e.addEventListener("error",n))}}var lc=0;function Vb(t,e){return t.stylesheets&&t.count===0&&ma(t,t.stylesheets),0lc?50:800)+e);return t.unsuspend=n,function(){t.unsuspend=null,clearTimeout(l),clearTimeout(i)}}:null}function Za(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)ma(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var Ga=null;function ma(t,e){t.stylesheets=null,t.unsuspend!==null&&(t.count++,Ga=new Map,e.forEach(qb,t),Ga=null,Za.call(t))}function qb(t,e){if(!(e.state.loading&4)){var n=Ga.get(t);if(n)var l=n.get(null);else{n=new Map,Ga.set(t,n);for(var i=t.querySelectorAll("link[data-precedence],style[data-precedence]"),r=0;r{"use strict";function hg(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(hg)}catch(t){console.error(t)}}hg(),pg.exports=dg()});var D3=Ro(Fl(),1),k3=Ro(mg(),1);var Qb={isDark:null,pageBackground:"--agent-page-bg",surfaceBackground:"--agent-surface",surfaceElevatedBackground:"--agent-surface-elevated",inputBackground:"--agent-input-bg",border:"--agent-border",borderStrong:"--agent-border-strong",text:"--agent-text",mutedText:"--agent-muted",softText:"--agent-soft",accent:"--agent-accent",accentSoft:"--agent-accent-soft",danger:"--agent-danger",shadow:"--agent-shadow"};function no(t){if(typeof document>"u")return;let e=document.documentElement;e.dataset.theme=t.isDark?"dark":"light",Ff(),e.classList.toggle("dark",t.isDark),e.classList.toggle("electron-dark",t.isDark),e.classList.toggle("light",!t.isDark),e.style.colorScheme=t.isDark?"dark":"light";for(let[n,l]of Object.entries(Qb))l&&e.style.setProperty(l,String(t[n]))}function Ff(){if(typeof document>"u")return;let t=document.documentElement;t.dataset.codexWindowType="electron",t.dataset.windowType="electron",t.dataset.codexOs=Jb(),document.body&&(document.body.dataset.codexWindowType="electron")}function Jb(){if(typeof navigator>"u")return"unknown";let t=navigator,e=(t.userAgentData?.platform??t.platform??t.userAgent).toLowerCase();return e.includes("win")?"win32":e.includes("mac")||e.includes("darwin")?"darwin":e.includes("linux")?"linux":"unknown"}var E=Ro(Fl(),1);function gg(t){if(t.activityStatus==="stopped"||t.activityStatus==="failed")return"!";switch(t.activityKind){case"command":return"$";case"fileChange":return"+";default:return"*"}}function Pn(){let t=globalThis.crypto;if(typeof t?.randomUUID=="function")return t.randomUUID();let e=t?.getRandomValues?.bind(t);if(typeof e=="function"){let n=new Uint8Array(16);return e(n),n[6]=n[6]&15|64,n[8]=n[8]&63|128,[...n].map((l,i)=>{let r=l.toString(16).padStart(2,"0");return[4,6,8,10].includes(i)?`-${r}`:r}).join("")}return`cmux-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}var Wf=new Set,lo=class extends Error{code;constructor(e,n){super(e),this.name="NativeBridgeError",this.code=n}};typeof window<"u"&&(window.cmuxAgentBridge={applyTheme(t){no(t)},receive(t){t.type==="app.theme"&&no(t.theme);for(let e of Wf)e(t)}});function yg(t){return Wf.add(t),()=>{Wf.delete(t)}}async function qt(t,e={}){if(typeof window>"u")throw new Error("Native bridge is unavailable.");let n=window.webkit?.messageHandlers?.agentSession;if(!n||typeof n.postMessage!="function")throw new Error("Native bridge is unavailable.");let l=await n.postMessage({id:Pn(),method:t,params:e});if(!l.ok)throw new lo(l.error?.userMessage||"Native bridge request failed.",l.error?.code);return l.value}var Ie="border-token-border user-select-none no-drag cursor-interaction flex items-center gap-1 border whitespace-nowrap focus:outline-none disabled:cursor-not-allowed disabled:opacity-40",Qe="text-token-text-tertiary enabled:hover:bg-token-list-hover-background data-[state=open]:bg-token-list-hover-background border-transparent";var gn="h-token-button-composer px-2 py-0 text-sm leading-[18px]",bg="h-token-button-composer-sm px-1.5 py-0 text-sm leading-[18px]",io="electron:p-1 electron:[&>svg]:icon-sm flex items-center justify-center p-0.5",ro="aspect-square items-center justify-center !px-0",Sg="focus-visible:outline-token-button-background cursor-interaction size-token-button-composer flex items-center justify-center rounded-full p-0.5 transition-opacity focus-visible:outline-2 bg-token-foreground",xg="agent-composer-stack",vg="codex-composer-frame relative",Cg="codex-composer-inner relative z-10 flex min-h-0 flex-1 flex-col",Mg="codex-composer-surface relative flex flex-col bg-token-input-background/90 backdrop-blur-lg extension:border extension:border-token-border/50 electron:ring electron:ring-black/10 electron:shadow-[0_4px_16px_0_rgba(0,0,0,0.05)] electron:dark:bg-token-dropdown-background",Tg="composer-footer grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2 px-2 py-1",Eg="composer-footer grid grid-cols-[minmax(0,auto)_auto_minmax(0,1fr)] items-center gap-[5px] mb-2 px-2";var cs="M16.6182 9.33203H3.38184V12.7002C3.38184 13.3753 3.38238 13.8438 3.41211 14.208C3.44124 14.5646 3.49494 14.766 3.57129 14.916L3.63867 15.0361C3.80618 15.3094 4.04683 15.5324 4.33399 15.6787L4.45703 15.7314C4.59362 15.7803 4.77411 15.816 5.04199 15.8379C5.40624 15.8676 5.87469 15.8682 6.54981 15.8682H13.4502C14.1253 15.8682 14.5938 15.8676 14.958 15.8379C15.3146 15.8088 15.516 15.7551 15.666 15.6787L15.7861 15.6113C16.0594 15.4438 16.2824 15.2032 16.4287 14.916L16.4814 14.793C16.5303 14.6564 16.566 14.4759 16.5879 14.208C16.6176 13.8438 16.6182 13.3753 16.6182 12.7002V9.33203ZM17.8818 12.7002C17.8818 13.3547 17.8826 13.8838 17.8477 14.3115C17.8165 14.6922 17.7543 15.0349 17.6172 15.3545L17.5537 15.4902C17.3015 15.9852 16.9182 16.3996 16.4473 16.6885L16.2402 16.8037C15.8824 16.9861 15.4966 17.0621 15.0615 17.0977C14.6338 17.1326 14.1047 17.1318 13.4502 17.1318H6.54981C5.89526 17.1318 5.36616 17.1326 4.93848 17.0977C4.55777 17.0665 4.21506 17.0043 3.89551 16.8672L3.75977 16.8037C3.26483 16.5515 2.85036 16.1682 2.56152 15.6973L2.44629 15.4902C2.26394 15.1324 2.1879 14.7466 2.15235 14.3115C2.1174 13.8838 2.11817 13.3547 2.11817 12.7002V7.29981C2.11817 6.64526 2.1174 6.11616 2.15235 5.68848C2.1879 5.25344 2.26394 4.86765 2.44629 4.50977L2.56152 4.30274C2.85036 3.83179 3.26483 3.44854 3.75977 3.19629L3.89551 3.13281C4.21506 2.99571 4.55777 2.93346 4.93848 2.90235C5.36616 2.8674 5.89526 2.86817 6.54981 2.86817H7.24512C7.38876 2.86816 7.48717 2.86807 7.58399 2.87402L7.83496 2.90039C8.41501 2.98537 8.96006 3.23832 9.40039 3.63086L9.64356 3.86817C9.75546 3.98103 9.79343 4.0181 9.83008 4.05078L9.94238 4.14356C10.2142 4.34787 10.5413 4.46917 10.8828 4.49024L11.1445 4.49317H13.4502C14.1047 4.49317 14.6338 4.4924 15.0615 4.52735C15.4966 4.5629 15.8824 4.63894 16.2402 4.82129L16.4473 4.93652C16.9182 5.22536 17.3015 5.63983 17.5537 6.13477L17.6172 6.27051C17.7543 6.59006 17.8165 6.93277 17.8477 7.31348C17.8826 7.74116 17.8818 8.27026 17.8818 8.92481V12.7002ZM3.38184 8.06836H16.6143C16.6105 7.81516 16.603 7.60256 16.5879 7.41699C16.566 7.14911 16.5303 6.96862 16.4814 6.83203L16.4287 6.70899C16.2824 6.42183 16.0594 6.18118 15.7861 6.01367L15.666 5.94629C15.516 5.86994 15.3146 5.81624 14.958 5.78711C14.5938 5.75738 14.1253 5.75684 13.4502 5.75684H11.1445L10.8047 5.75098C10.2158 5.71466 9.65236 5.50645 9.1836 5.1543L8.98926 4.99414C8.91673 4.92948 8.84746 4.85908 8.7461 4.75684L8.55957 4.57422C8.30416 4.34653 7.98784 4.19959 7.65137 4.15039L7.50684 4.13477C7.45779 4.13174 7.4043 4.13184 7.24512 4.13184H6.54981C5.87469 4.13184 5.40624 4.13238 5.04199 4.16211C4.77411 4.184 4.59362 4.21966 4.45703 4.26856L4.33399 4.32129C4.04683 4.4676 3.80618 4.69061 3.63867 4.96387L3.57129 5.08399C3.49494 5.23405 3.44124 5.43543 3.41211 5.79199C3.38238 6.15624 3.38184 6.62469 3.38184 7.29981V8.06836Z";var Fb=new Set(["cd","clear","echo","history","ls","popd","printenv","pwd","pushd","type","which"]);function Wb(t){return/^(?:\.\/|\.\.\/|~\/|\/)/.test(t)}function ds(t){let e=t.trim();if(e.length===0)return null;if(e.startsWith("!")&&e.slice(1).trim().length>0)return"explicit";let n=e.match(/^[^\s]+/)?.[0]?.toLowerCase();return n&&(Fb.has(n)||Wb(e))?"detected":null}function Ng(t){let e=t.trim();return e.startsWith("!")?e.slice(1).trim():e}var fs=class{pendingRevision=null;begin(e){return this.pendingRevision!==null?!1:(this.pendingRevision=e,!0)}complete(e,n){return this.pendingRevision!==e?!1:(this.pendingRevision=null,n===e)}fail(e){return this.pendingRevision!==e?!1:(this.pendingRevision=null,!0)}get isPending(){return this.pendingRevision!==null}};function Og(t){return t.composerLayoutMode==="multiline"||t.hasVisibleAttachments||t.isEditorMultiline||t.isVoiceLayoutActive?!1:t.singleLineInputWidth==null?!0:t.singleLineTextWidth+32<=t.singleLineInputWidth}function Pf(t){let e={};for(let n of t)e[n.id]={hideControl:!1,hideLabel:!1};return e}function Ag(t){let e=t.items.filter(o=>o.enabled),n=Pf(t.items);if(e.length===0||t.availableWidth<=0)return n;let l=e.reduce((o,a)=>o+a.expandedWidth,0)+t.gap*Math.max(0,e.length-1);if(l<=0)return n;let i=l;for(let o of e)!o.canHideLabel||t.availableWidth>=i||(n[o.id].hideLabel=!0,i-=o.expandedWidth-o.compactWidth);if(Pb(n,t.previousState,"hideLabel"))return n;let r=e.length;for(let o of e){let a=n[o.id],s=a.hideLabel?o.compactWidth:o.expandedWidth;(a.hideLabel&&!o.hasMeasuredCompactWidth||t.availableWidth1?t.gap:0),r-=1)}return n}function Dg(t,e){let n=Object.keys(t),l=Object.keys(e);if(n.length!==l.length)return!1;for(let i of n)if(t[i]?.hideControl!==e[i]?.hideControl||t[i]?.hideLabel!==e[i]?.hideLabel)return!1;return!0}function Pb(t,e,n){let l=Object.keys(t);return l.length!==Object.keys(e).length?!0:l.some(i=>t[i]?.[n]!==e[i]?.[n])}var $b=new Set(["base","embed","form","iframe","link","meta","object","script","style"]),e5=new Set(["poster","src","srcset","xlink:href"]);function wg(t){let e=typeof window>"u"?void 0:window.marked;if(e?.parse)try{let n=e.parse(t5(t),{async:!1,breaks:!0,gfm:!0});if(typeof n=="string")return o5(n)}catch{return $n(t)}return $n(t)}function t5(t){let e="",n=null,l=t.match(/[^\r\n]*(?:\r\n|\n|\r|$)/g)??[];for(let i of l){if(i==="")continue;let r=i.match(/(\r\n|\n|\r)$/)?.[0]??"",o=r?i.slice(0,-r.length):i;if(n){e+=o+r,i5(o,n)&&(n=null);continue}let a=l5(o);if(a){n=a,e+=o+r;continue}e+=r5(o)+r}return e}function $n(t){return n5(t).replace(/\n/g,"
    ")}function n5(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function l5(t){let e=/^( {0,3})(`{3,}|~{3,})/.exec(t);if(!e)return null;let n=e[2];return{character:n[0],length:n.length}}function i5(t,e){let n=/^( {0,3})(`{3,}|~{3,})\s*$/.exec(t);if(!n)return!1;let l=n[2];return l[0]===e.character&&l.length>=e.length}function r5(t){let e="",n=0,l=0;for(;l"u")return t;let e=document.createElement("template");e.innerHTML=t;for(let n of Array.from(e.content.querySelectorAll("*"))){if($b.has(n.localName)){n.remove();continue}for(let l of Array.from(n.attributes)){let i=l.name.toLowerCase();if(i.startsWith("on")||i==="srcdoc"||i==="style"){n.removeAttribute(l.name);continue}let r=a5(n.localName,i,l.value);r===null?n.removeAttribute(l.name):typeof r=="string"&&r!==l.value&&n.setAttribute(l.name,r)}n.localName==="a"&&n.setAttribute("rel","noreferrer")}return e.innerHTML}function a5(t,e,n){let l=e.toLowerCase();if(e5.has(l))return null;if(l==="href")return t.toLowerCase()!=="a"?null:s5(n)?n:null}function s5(t){let e=t.trim();if(e.startsWith("#"))return!0;if(e.startsWith("/")||!/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e))return!1;try{let n=new URL(e);return n.protocol==="http:"||n.protocol==="https:"||n.protocol==="mailto:"}catch{return!1}}function hs(t){return t.replace(/([\\[\]])/g,"\\$1")}function ps(t){return encodeURI(t).replace(/([\\()])/g,"\\$1")}function Rg(t,e){let n=e.map(l=>`[${hs(l.label)}](${ps(l.path)})`).join(" ");return n?t.trim().length>0?`${n} ${t}`:n:t}function oo(t){switch(t.kind){case"at":return $f(t.label??t.name,t.path);case"agent":return $f(`@${t.displayName||t.name}`,t.path);case"skill":return $f(`$${t.name}`,t.path)}}function zg(t,e,n){if(!n||e==null)return t;let l=oo(e);return t.includes(l)||t.includes(e.path)?t:t.trim().length>0?`${l} @@ -45,7 +45,7 @@ ${Lg}`:Lg}function u5(t){return t.includes("skill://plan")||/(?:^|\s)\$plan(?:\s `),a=[];r.length>0&&!/\s$/.test(r)&&a.push(n.schema.text(" ")),e.forEach((c,f)=>{f>0&&a.push(n.schema.text(" ")),a.push(m3(n.schema,c))}),o.length>0&&!/^\s/.test(o)&&a.push(n.schema.text(" "));let s=n.tr.replaceWith(l,i,a),u=l+a.reduce((c,f)=>c+f.nodeSize,0);s.setSelection(j.create(s.doc,u)),t.dispatch(s),t.focus()}function m3(t,e){switch(e.kind){case"skill":return t.nodes.skillMention.create({name:e.name,displayName:e.displayName??e.label,path:e.path,description:e.description??""});case"agent":return t.nodes.agentMention.create({name:e.name,displayName:e.displayName??e.label,path:e.path});case"at":return t.nodes.atMention.create({label:e.label,path:e.path,fsPath:e.fsPath??e.path})}}function g3(t){let{state:e}=t,{from:n,empty:l}=e.selection;if(!l)return null;let i=e.doc.textBetween(0,n,` `,` `),r=/(^|\s)([@$][^\s@$]*)$/.exec(i);if(!r)return null;let o=r[2]??"",a=o.charAt(0),s=o.slice(1);return{anchorPos:n-o.length,kind:a==="$"?"skill":"mention",query:s}}function f7(t){return t==="ArrowDown"||t==="ArrowUp"||t==="Enter"||t==="Tab"||t==="Escape"}function sh({dataAttributes:t,icon:e,iconNode:n,text:l,title:i}){let r=document.createElement("span");r.className="prompt-editor-mention group/inline-mention cursor-pointer inline-mention-brand-aware font-medium px-0.5 cursor-interaction",i&&(r.title=i);for(let[a,s]of Object.entries(t))r.setAttribute(a,s);if(e||n){let a=document.createElement("span");if(a.className="prompt-editor-mention-icon relative mr-[3px] inline-block h-[1lh] w-4 align-bottom",n)a.append(n);else if(e){let s=document.createElement("span");s.className="icon-xs absolute top-1/2 -translate-y-1/2",s.textContent=e,a.append(s)}r.append(a)}let o=document.createElement("span");return o.className="min-w-0 break-words",o.textContent=l,r.append(o),r}function d7(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("class","icon-xs absolute top-1/2 -translate-y-1/2"),t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 20 20"),t.setAttribute("fill","none"),t.setAttribute("aria-hidden","true");let e=document.createElementNS("http://www.w3.org/2000/svg","path");return e.setAttribute("d",cs),e.setAttribute("fill","currentColor"),t.append(e),t}var m=E.default.createElement,h7=20,p7={background:"linear-gradient(to bottom, var(--color-token-editor-background), transparent)"},m7={background:"linear-gradient(to top, var(--color-token-editor-background), transparent)"};function g7(t,e){"use no memo";let[n,l]=(0,E.useState)(null),[i,r]=(0,E.useState)(0),[o,a]=(0,E.useState)(null),s=(0,E.useRef)(null),u=(0,E.useCallback)(c=>{a(c)},[]);return(0,E.useLayoutEffect)(()=>{let c=o;if(!c)return;let f=()=>l(c.getBoundingClientRect().width);if(f(),typeof ResizeObserver>"u")return;let d=new ResizeObserver(f);return d.observe(c),()=>d.disconnect()},[o]),(0,E.useLayoutEffect)(()=>{let c=s.current;c&&r(c.getBoundingClientRect().width)},[t]),{inputMeasureRef:u,isSingleLine:Og({composerLayoutMode:"auto-single-line",hasVisibleAttachments:e,isEditorMultiline:t.includes(` -`),isVoiceLayoutActive:!1,singleLineInputWidth:n,singleLineTextWidth:i}),textMeasureRef:s}}function y7(t){"use no memo";let[e,n]=(0,E.useState)(()=>Pf(t)),l=(0,E.useRef)(null),i=(0,E.useRef)(new Map),r=(0,E.useRef)(new Map),o=(0,E.useRef)(new Map),a=(0,E.useRef)(t),s=(0,E.useRef)(e);a.current=t,s.current=e;let u=(0,E.useCallback)(()=>{let d=l.current;if(!d)return;let h=a.current.map(b=>{let g=(i.current.get(b.id)??null)?.offsetWidth??0;g>0&&(s.current[b.id]?.hideLabel===!0?o.current.set(b.id,g):r.current.set(b.id,g));let y=r.current.get(b.id)??o.current.get(b.id)??g,S=o.current.get(b.id),x=b.canHideLabel?Math.min(y,S??y):y;return{...b,compactWidth:x,expandedWidth:y,hasMeasuredCompactWidth:S!=null}}),p=Ag({availableWidth:d.getBoundingClientRect().width,gap:y3(window.getComputedStyle(d).columnGap)??y3(window.getComputedStyle(d).gap)??0,items:h,previousState:s.current});Dg(p,s.current)||n(p)},[]),c=(0,E.useCallback)(d=>{l.current=d,d&&u()},[u]),f=(0,E.useCallback)((d,h)=>{h?(i.current.set(d,h),u()):i.current.delete(d)},[u]);return(0,E.useLayoutEffect)(()=>{u()},[u,t,e]),(0,E.useLayoutEffect)(()=>{if(typeof ResizeObserver>"u")return;let d=new ResizeObserver(u);l.current&&d.observe(l.current);for(let h of i.current.values())d.observe(h);return()=>d.disconnect()},[u,t,e]),{state:e,setContainerRef:c,setItemRef:f}}function y3(t){let e=Number.parseFloat(t);return Number.isFinite(e)?e:null}function b7(t){(0,E.useEffect)(()=>{Kg(t)},[t])}function S7(t){(0,E.useEffect)(()=>yg(e=>t({type:"event",event:e})),[t])}function x7(t,e){(0,E.useEffect)(()=>{Fg(t,e)},[t,e])}function M3(){let[t,e]=(0,E.useReducer)(Xg,jg("react"));return b7(e),S7(e),x7(t,e),m(v7,{state:t,dispatch:e,renderer:"React"})}function v7({state:t,dispatch:e,renderer:n}){"use no memo";let l=t.providers.find(k=>k.id===t.selectedProviderId),i=Ss(t),r=bs(t),o=ty(t),[a,s]=(0,E.useState)([]),u=t.status==="running"&&(t.input.length>0||a.length>0)||a.length===0&&ds(t.input)!==null,c=l?t.autoStartAttemptedProviderIds.includes(l.id):!1,f=r&&(l?.autoStart!==!0||c),d=l?.id==="codex",h=Bg(l),p=l?.id==="codex"?t.context?.copy.reasoningEffortHigh??"High":null,[b,v]=(0,E.useState)("default"),[g,y]=(0,E.useState)(null),S=F7(t),x=g??S!=null,O=S!=null&&x,R=g7(t.input,a.length>0),M=R.isSingleLine,N=y7([{canHideLabel:p!=null,enabled:l!=null,id:"intelligence"},{canHideLabel:!0,enabled:O,id:"ide-context"}]),T=M?{hideControl:!1,hideLabel:!1}:N.state.intelligence??{hideControl:!1,hideLabel:!1},A=M?{hideControl:!1,hideLabel:!1}:N.state["ide-context"]??{hideControl:!1,hideLabel:!1},Z=(0,E.useRef)(null),$=(0,E.useRef)(new fs),Xt=(0,E.useRef)(0),Il=(0,E.useRef)(t);Il.current=t;let[al,Pe]=(0,E.useState)(null),[ph,sl]=(0,E.useState)(""),[w3,Kt]=(0,E.useState)(0),[au,Nt]=(0,E.useState)(!1),[R3,Rt]=(0,E.useState)(!1),[mh,gh]=(0,E.useState)(!1),[$i,wo]=(0,E.useState)(!1),[z3,yh]=(0,E.useState)(!1),[L3,It]=(0,E.useState)(!1),Cn=al?dh(al,t,ph):[],su=Cn.length===0?-1:Math.min(w3,Cn.length-1),_3=k=>{if(a.length!==0||ds(k)===null)return!1;let ue=$.current,Qt=Xt.current;if(!ue.begin(Qt))return!0;let ce=k;return qt("terminal.runCommand",{command:Ng(ce)}).then(()=>{let ul=ue.complete(Qt,Xt.current),er=Z.current?.getText()??Il.current.input;ul&&er===ce&&e({type:"setInput",input:""})}).catch(ul=>{ue.fail(Qt)&&e({type:"failed",message:kl(ul,Il.current)})}),!0},uu=()=>{let k=Z.current?.getText()??t.input;if(!(t.status==="running"&&(k.length>0||a.length>0)||a.length===0&&ds(k)!==null)||(k!==t.input&&(Xt.current+=1,e({type:"setInput",input:k})),_3(k)))return;Pe(null),sl(""),Nt(!1),Rt(!1),It(!1);let Qt=zg(_g(k,$i),S?.mention??null,x),ce=Rg(Qt,a),ul=new Set(a.map(er=>er.id));Pg(t,e,{attachments:a,clearInput:k,displayText:k,permissionMode:d?b:"default",text:ce}).then(er=>{er&&s(J3=>J3.filter(F3=>!ul.has(F3.id)))})},bh=k=>{Z.current?.insertMention(k.mention),Pe(null),sl(""),Kt(0),Rt(!1)},Sh=()=>{wo(k=>!k),Rt(!1),It(!1),Nt(!1),Pe(null),Z.current?.focus()},B3=()=>{y(k=>!(k??S!=null)),Rt(!1),It(!1),Nt(!1),Pe(null),Z.current?.focus()},H3=()=>{y(!1),Rt(!1),It(!1),Nt(!1),Pe(null),Z.current?.focus()},U3=()=>{wo(!0),yh(!0),Rt(!1),It(!1),Nt(!1),Pe(null),Z.current?.focus()},V3=async()=>{if(mh)return;let k=t.runningSessionId;gh(!0),Pe(null),sl(""),Kt(0),Rt(!1),It(!1);try{let Qt=((await qt("app.pickFiles")).files??[]).filter(ce=>ce.path.trim().length>0).map(ce=>{let ul=ce.label&&ce.label.trim().length>0?ce.label:nu(ce.path);return{dataUrl:ce.dataUrl,fsPath:ce.fsPath??ce.path,id:`${ce.path}-${Date.now()}-${Math.random().toString(36).slice(2)}`,kind:ce.isImage||ce.dataUrl?.startsWith("data:image/")?"image":"file",label:ul,mimeType:ce.mimeType,path:ce.path}});s(ce=>s9([...ce,...Qt])),Z.current?.focus()}catch(ue){k||e({type:"failed",message:kl(ue,t)})}finally{gh(!1)}},q3=k=>{if(!k){Pe(null),sl(""),Kt(0);return}Pe(k.kind),sl(k.query),Kt(0)},Y3=k=>{if(!al)return!1;if(k==="Escape")return Pe(null),sl(""),Kt(0),!0;if(Cn.length===0)return k==="Enter"||k==="Tab";if(k==="ArrowDown")return Kt(ue=>(ue+1)%Cn.length),!0;if(k==="ArrowUp")return Kt(ue=>(ue-1+Cn.length)%Cn.length),!0;if(k==="Enter"||k==="Tab"){let ue=Cn[su>=0?su:0];return ue&&bh(ue),!0}return!1},Z3=k=>{Wg(k,t,e),Nt(!1)},G3=T.hideControl?null:m("div",{className:"model-picker-root relative min-w-0",ref:k=>N.setItemRef("intelligence",k),onBlur:k=>{k.currentTarget.contains(k.relatedTarget)||Nt(!1)}},m("button",{className:`model-picker ${Ie} ${Qe} ${gn} min-w-0 rounded-full`,type:"button",disabled:!i,"aria-haspopup":"menu","aria-expanded":au,"data-state":au?"open":"closed","data-codex-intelligence-trigger":!0,"data-selected-reasoning-effort":"high",onClick:()=>{i&&(Rt(!1),It(!1),Nt(k=>!k))},onKeyDown:k=>{k.key==="ArrowDown"&&(k.preventDefault(),Nt(i))}},T.hideLabel?d9("icon-2xs"):m("span",{className:"model-picker-content flex max-w-40 min-w-0 items-center gap-1.5"},m("span",{className:"model-display flex min-w-0 items-center gap-1 tabular-nums"},m("span",{className:"model-label truncate whitespace-nowrap text-token-foreground"},h)),p?m("span",{className:"composer-footer__label--sm shrink-0 text-token-description-foreground"},p):null),m("span",{className:"model-chevron composer-footer__secondary-chevron icon-2xs text-token-input-placeholder-foreground","aria-hidden":!0},iu())),au?m("div",{className:"provider-dropdown _content_1hiti_1 no-drag bg-token-dropdown-background/90 text-token-foreground ring-token-border z-50 m-px flex select-none flex-col overflow-y-auto rounded-xl ring-[0.5px] px-1 py-1 shadow-xl-spread backdrop-blur-sm w-52",role:"menu","aria-label":t.context?.copy.provider??"","data-state":"open","data-side":"top",style:{"--radix-dropdown-menu-content-transform-origin":"left bottom"}},m("div",{className:"provider-dropdown-title"},t.context?.copy.provider??"Provider"),t.providers.map(k=>m("button",{key:k.id,className:"provider-dropdown-item no-drag group hover:bg-token-list-hover-background focus:bg-token-list-hover-background cursor-interaction text-token-foreground outline-hidden rounded-lg px-[var(--padding-row-x)] py-[var(--padding-row-y)] text-sm",type:"button",role:"menuitem","data-selected":k.id===t.selectedProviderId?"true":void 0,onMouseDown:ue=>ue.preventDefault(),onClick:()=>Z3(k.id)},m("span",{className:"provider-dropdown-item-content flex w-full items-center gap-1.5"},m("span",{className:"min-w-0 flex-1 truncate"},k.displayName),k.id===t.selectedProviderId?m("span",{className:"provider-dropdown-check icon-xs shrink-0","aria-hidden":!0},Kl()):null)))):null),j3=m(h3,{ref:Z,className:M?"text-base":"text-base [&_.ProseMirror]:leading-5",minHeight:M?"1.25rem":"2.75rem",singleLine:M,value:t.input,ariaLabel:t.context?.copy.promptPlaceholder??"",placeholder:t.context?.copy.promptPlaceholder??"",onAutocompleteChange:q3,onAutocompleteKeyDown:Y3,onPlanModeShortcut:Sh,onTextChange:k=>{Xt.current+=1,e({type:"setInput",input:k})},onSubmit:uu,onTriggerToken:k=>{Pe(k==="@"?"mention":"skill"),sl(""),Kt(0)}}),xh=(k=!1)=>d?m(X7,{copy:t.context?.copy,hideLabel:k,isEnabled:!0,isOpen:L3,mode:b,onModeChange:v,onOpenChange:ue=>{It(ue),ue&&(Rt(!1),Nt(!1),Pe(null))}}):null,vh=m("div",{className:"codex-left-rail flex min-w-0 items-center gap-[5px]"},m(I7,{hasIdeContext:S!=null,isAutoContextOn:x,isOpen:R3,isPickingFiles:mh,onOpenChange:k=>{Rt(k),k&&(It(!1),Nt(!1),Pe(null))},onPickFiles:()=>void V3(),onToggleAutoContext:B3,onTogglePlanMode:Sh,isPlanMode:$i,state:t}),M?null:xh(!1),!M&&$i?m(b3,{icon:lu("icon-xs"),label:t.context?.copy.skillPlan??"Plan",onClear:()=>wo(!1)}):null),Ch=m("div",{className:"codex-secondary-controls flex min-w-0 items-center gap-1",ref:N.setContainerRef},G3,O&&!A.hideControl?m("span",{className:"composer-context-indicator flex min-w-0 items-center gap-1",ref:k=>N.setItemRef("ide-context",k)},m("div",{className:"composer-context-divider h-4 w-px bg-token-border/70","aria-hidden":!0}),m(j7,{hideLabel:A.hideLabel,label:t.context?.copy.ideContext??"IDE context",onClear:H3})):null),Mh=m("div",{className:"codex-action-cluster flex shrink-0 items-center gap-2"},f?m("button",{className:`codex-action codex-start ${Ie} ${Qe} ${gn} rounded-full`,type:"button",disabled:!r,onClick:()=>void Ig(t,e)},t.context?.copy.start??"Start"):null,o?m("button",{className:`codex-action codex-stop ${Ie} ${Qe} ${gn} ${ro} rounded-full`,type:"button","aria-label":t.context?.copy.stop??"Stop",onClick:()=>void $g(t,e)},c9()):null,m("button",{className:`codex-action codex-mic ${Ie} ${Qe} ${gn} ${ro} rounded-full`,type:"button",disabled:!0,"aria-label":t.context?.copy.voiceInput??""},f9()),m("button",{className:`codex-action send-button ${Sg}${u?"":" cursor-default opacity-50"}`,type:"button",disabled:!u,"aria-label":t.context?.copy.send??"Send",onClick:uu},u9("icon-sm text-token-dropdown-background"))),X3=m("div",{className:"flex min-w-0 shrink-0 items-center justify-end gap-2"},Ch,xh(!0),M&&$i?m(b3,{icon:lu("icon-xs"),label:t.context?.copy.skillPlan??"Plan",onClear:()=>wo(!1)}):null,Mh),Th=m("div",{key:"composer-input",ref:R.inputMeasureRef,className:M?"min-w-0":"mb-1 flex-grow overflow-y-auto px-3"},j3),K3=M?m("div",{className:Tg},vh,Th,X3):m("div",{className:"contents"},a.length>0?m("div",{className:"px-2 py-1.5"},m(U7,{attachments:a,copy:t.context?.copy,onRemove:k=>{s(ue=>ue.filter(Qt=>Qt.id!==k))}})):null,Th,m("div",{className:Eg},vh,m("div",{className:"flex items-center"}),m("div",{className:"flex w-full min-w-0 items-center justify-end gap-2"},m("div",{className:"flex min-w-0 flex-1 justify-end"},Ch),m("div",{className:"flex shrink-0 items-center gap-2"},Mh)))),I3=m("div",{className:Cg},K3),Q3=!$i&&!z3&&/\bplan\b/i.test(t.input);return m("section",{className:"agent-shell","data-codex-window-type":"electron"},m(M7,{entries:t.transcript,copy:t.context?.copy}),m("div",{className:xg},m("div",{className:"relative flex w-full flex-col gap-2"},m("form",{className:"w-full min-w-0",onSubmit:k=>{k.preventDefault(),uu()}},m("div",{className:vg},m("span",{ref:R.textMeasureRef,className:"composer-single-line-measure text-size-chat pointer-events-none invisible absolute h-0 w-max max-w-none overflow-hidden whitespace-pre","aria-hidden":!0},t.input),Q3?m(C7,{copy:t.context?.copy,onAction:U3,onDismiss:()=>yh(!0)}):null,al?m(G7,{emptyLabel:t.context?.copy?.composerNoResults??"No results",highlightedIndex:su,items:Cn,onChoose:bh,onHighlight:Kt,query:ph}):null,m("div",{className:Mg+" "+(M?"overflow-visible rounded-full":"overflow-y-auto rounded-3xl")},I3)))),m(q7,{state:t,providerDisplayName:l?.displayName??n})))}function C7({copy:t,onAction:e,onDismiss:n}){return m("div",{className:"above-composer-suggestion-shell pointer-events-none absolute inset-x-0 bottom-full z-20 mb-2 flex justify-center"},m("div",{className:"pointer-events-auto flex w-full max-w-full justify-center"},m("div",{className:"relative inline-flex max-w-full min-w-0 items-center justify-between gap-4 overflow-hidden rounded-3xl border border-token-border/80 bg-token-dropdown-background/90 py-1.5 pr-2 pl-3 text-token-foreground shadow-md backdrop-blur-sm","data-codex-above-composer-suggestion":"keyword-plan-mode"},m("div",{className:"flex min-w-0 flex-1 items-center gap-2"},m("span",{className:"flex items-center justify-center text-token-foreground","aria-hidden":!0},lu("icon-xs shrink-0")),m("div",{className:"min-w-0 flex-1 flex items-center gap-2"},m("span",{className:"truncate text-sm font-medium leading-[18px] text-token-foreground"},t?.planSuggestionTitle??"Create a plan"),m("span",{className:"hidden leading-none text-sm text-token-description-foreground @[500px]:inline","aria-hidden":!0},m("span",{className:"pointer-events-none !h-auto rounded-md border border-token-border/80 px-1 py-0.5 text-xs !leading-none text-token-description-foreground"},t?.planSuggestionShortcut??"Shift + Tab")))),m("div",{className:"flex shrink-0 items-center gap-1"},m("button",{className:"user-select-none no-drag cursor-interaction flex h-8 items-center justify-center rounded-full border border-transparent bg-token-button-secondary-background px-2.5 text-sm text-token-button-secondary-foreground hover:bg-token-button-secondary-hover-background focus:outline-none",type:"button",onClick:l=>{l.stopPropagation(),e()}},t?.planSuggestionAction??"Use plan mode"),m("button",{className:"user-select-none no-drag flex size-[22px] shrink-0 cursor-interaction items-center justify-center rounded-full border border-transparent text-token-description-foreground hover:bg-token-list-hover-background focus:outline-none",type:"button","aria-label":t?.planSuggestionDismiss??"Dismiss suggestion",onClick:l=>{l.stopPropagation(),n()}},ou("icon-xs"))))))}var M7=E.default.memo(function({entries:e,copy:n}){return m("div",{className:"agent-thread","data-empty":e.length===0?"true":void 0},e.map(l=>m(T7,{copy:n,entry:l,key:l.id})))}),T7=E.default.memo(function({copy:e,entry:n}){switch(n.role){case"user":{let l=n.attachments??[],i=n.text.trim().length>0;return m("div",{className:"codex-user-turn group flex w-full flex-col items-end justify-end gap-1"},l.length>0?m(B7,{attachments:l}):null,i?m("div",{className:"codex-user-bubble bg-token-foreground/5 max-w-[77%] min-w-0 overflow-hidden break-words rounded-2xl px-3 py-2 [&_.contain-inline-size]:[contain:initial]"},m(L7,{copy:e,text:n.text})):null,i?m(k7,{copy:e,sentAtMs:n.sentAtMs,text:n.text}):null)}case"assistant":return n.isComplete===!1?m("div",{className:"codex-assistant-turn group flex min-w-0 flex-col"},m("div",{className:"codex-assistant-message codex-assistant-message-streaming text-size-chat leading-[calc(var(--codex-chat-font-size)+8px)]"},n.text)):m("div",{className:"codex-assistant-turn group flex min-w-0 flex-col"},m("div",{className:"codex-assistant-message text-size-chat leading-[calc(var(--codex-chat-font-size)+8px)] [&>*:last-child]:mb-0 [&>ol:first-child]:mt-0 [&>ul:first-child]:mt-0",dangerouslySetInnerHTML:{__html:wg(n.text)}}),n.text.trim().length>0?m(w7,{copy:e,sentAtMs:n.sentAtMs,text:n.text}):null);case"notice":return m("div",{className:`codex-notice-turn ${n.tone??"warning"}`},m("div",{className:"codex-notice-content text-size-chat-sm",dangerouslySetInnerHTML:{__html:$n(n.text)}}));case"activity":return m(E7,{copy:e,entry:n})}});function E7({copy:t,entry:e}){"use no memo";let[n,l]=(0,E.useState)(!1),[i,r]=(0,E.useState)({bottom:!1,top:!1}),o=(0,E.useRef)(null),a=t?.copyOutput??"Copy output",s=t?.shellLabel??"",u=t?.copyShellContents??a,c=t?.copiedShellContents??u,f=t?.collapseShell??"",d=t?.shellSuccess??"",h=t?.stopped??"",p=t?.failedStatus??"",b=!!e.output,v=(0,E.useCallback)(()=>{l(T=>!T)},[]),g=(0,E.useCallback)(()=>{l(!1)},[]),y=(0,E.useCallback)(T=>{let A=T===null?{bottom:!1,top:!1}:{bottom:T.scrollTop+T.clientHeight1};r(Z=>Z.bottom===A.bottom&&Z.top===A.top?Z:A)},[]),S=(0,E.useCallback)(()=>{o.current?.mutation?.disconnect(),o.current?.resize?.disconnect(),o.current=null},[]),x=(0,E.useCallback)(T=>{if(S(),T===null){y(null);return}let A=()=>y(T);A();let Z=typeof ResizeObserver>"u"?void 0:new ResizeObserver(A);Z?.observe(T);let $=typeof MutationObserver>"u"?void 0:new MutationObserver(A);$?.observe(T,{characterData:!0,childList:!0,subtree:!0}),o.current={mutation:$,resize:Z}},[S,y]),O=(0,E.useCallback)(T=>{y(T.currentTarget)},[y]),R=O7(e),M=m(E.default.Fragment,null,m("span",{className:"codex-tool-activity-icon icon-xs shrink-0","aria-hidden":!0},gg(e)),m("span",{className:"codex-tool-activity-text shrink overflow-hidden [mask-image:linear-gradient(to_right,black_calc(100%_-_0.25rem),transparent)] [mask-repeat:no-repeat] pr-1 group-hover/collapsed-tool-activity:text-token-foreground"},m("span",{className:"codex-tool-activity-action",dangerouslySetInnerHTML:{__html:$n(e.text)}}),e.detail?m("span",{className:"codex-tool-activity-detail",dangerouslySetInnerHTML:{__html:` ${$n(e.detail)}`}}):null)),N=b?m("button",{type:"button",className:"codex-tool-activity-summary group/collapsed-tool-activity group/summary inline-flex w-fit max-w-full cursor-interaction items-center gap-1 self-start text-left","aria-expanded":n,onClick:v},M,m("span",{className:`codex-tool-activity-chevron inline-chevron flex-shrink-0 text-token-input-placeholder-foreground opacity-0 group-hover/summary:opacity-100${n?" opacity-100":""}`},h9(`icon-2xs text-current transition-transform duration-300${n?" rotate-90":""}`))):m("div",{className:"codex-tool-activity-summary group/collapsed-tool-activity group/summary inline-flex w-fit max-w-full items-center gap-1 self-start text-left"},M);return m("div",{className:`codex-tool-activity-turn ${e.activityKind??"other"} ${e.activityStatus??"completed"}`},N,e.output?m("div",{"aria-hidden":!n,className:"codex-tool-activity-output-shell relative overflow-hidden","data-expanded":n?"true":"false"},m("div",{className:"codex-tool-activity-output-shell-inner"},m("div",{className:"codex-tool-activity-output-frame group/output relative pr-0 min-h-[1.25rem] flex flex-col overflow-clip rounded-lg border border-token-border"},m("div",{className:"codex-shell-header flex items-center justify-between bg-token-side-bar-background pl-2 text-sm font-medium text-ellipsis hover:bg-token-editor-background/40"},m("div",{className:"flex min-w-0 items-center"},m("span",{className:"truncate"},s)),m("div",{className:"flex items-center"},m(A7,{copiedLabel:c,copyLabel:u,text:R}),m("button",{type:"button",className:`codex-shell-collapse ${Ie} ${Qe} ${io} rounded-full electron:rounded-md hover:bg-transparent hover:text-token-button-foreground`,"aria-label":f,title:f,onClick:g},iu("icon-2xs rotate-180")))),m("div",{className:"relative overflow-hidden"},m("div",{className:"codex-tool-activity-output vertical-scroll-fade-mask [--edge-fade-distance:2rem] box-border flex flex-col gap-1.5 overflow-x-auto overflow-y-auto whitespace-pre p-2 font-vscode-editor font-medium text-size-code-sm text-token-description-foreground max-h-[140px]",onScroll:O,ref:x,dangerouslySetInnerHTML:{__html:$n(e.output)}}),i.top?m("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-0 h-6",style:p7}):null,i.bottom?m("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 bottom-0 h-6",style:m7}):null),m(N7,{failedLabel:p,status:e.activityStatus??"completed",stoppedLabel:h,successLabel:d}),m(D7,{label:a,output:e.output})))):null)}function N7({failedLabel:t,status:e,stoppedLabel:n,successLabel:l}){return e==="inProgress"?m("div",{className:"codex-shell-footer text-size-chat px-2.5 pt-0.5 pb-1"}):e==="stopped"?m("div",{className:"codex-shell-footer text-size-chat flex items-center gap-2 px-2.5 pt-0.5 pb-1 text-token-input-placeholder-foreground"},m("span",{className:"ml-auto"},n)):e==="failed"?m("div",{className:"codex-shell-footer text-size-chat flex items-center gap-2 px-2.5 pt-0.5 pb-1 text-token-input-placeholder-foreground"},m("span",{className:"ml-auto"},t)):m("div",{className:"codex-shell-footer text-size-chat flex items-center gap-2 px-2.5 pt-0.5 pb-1 text-token-input-placeholder-foreground"},m("span",{className:"ml-auto flex items-center gap-1"},Kl("icon-xxs"),l))}function O7(t){let e=(t.detail??t.text).trim(),n=t.output?.trimEnd()??"";return[e,n].filter(l=>l.length>0).join(` +`),isVoiceLayoutActive:!1,singleLineInputWidth:n,singleLineTextWidth:i}),textMeasureRef:s}}function y7(t){"use no memo";let[e,n]=(0,E.useState)(()=>Pf(t)),l=(0,E.useRef)(null),i=(0,E.useRef)(new Map),r=(0,E.useRef)(new Map),o=(0,E.useRef)(new Map),a=(0,E.useRef)(t),s=(0,E.useRef)(e);a.current=t,s.current=e;let u=(0,E.useCallback)(()=>{let d=l.current;if(!d)return;let h=a.current.map(b=>{let g=(i.current.get(b.id)??null)?.offsetWidth??0;g>0&&(s.current[b.id]?.hideLabel===!0?o.current.set(b.id,g):r.current.set(b.id,g));let y=r.current.get(b.id)??o.current.get(b.id)??g,S=o.current.get(b.id),x=b.canHideLabel?Math.min(y,S??y):y;return{...b,compactWidth:x,expandedWidth:y,hasMeasuredCompactWidth:S!=null}}),p=Ag({availableWidth:d.getBoundingClientRect().width,gap:y3(window.getComputedStyle(d).columnGap)??y3(window.getComputedStyle(d).gap)??0,items:h,previousState:s.current});Dg(p,s.current)||n(p)},[]),c=(0,E.useCallback)(d=>{l.current=d,d&&u()},[u]),f=(0,E.useCallback)((d,h)=>{h?(i.current.set(d,h),u()):i.current.delete(d)},[u]);return(0,E.useLayoutEffect)(()=>{u()},[u,t,e]),(0,E.useLayoutEffect)(()=>{if(typeof ResizeObserver>"u")return;let d=new ResizeObserver(u);l.current&&d.observe(l.current);for(let h of i.current.values())d.observe(h);return()=>d.disconnect()},[u,t,e]),{state:e,setContainerRef:c,setItemRef:f}}function y3(t){let e=Number.parseFloat(t);return Number.isFinite(e)?e:null}function b7(t){(0,E.useEffect)(()=>{Kg(t)},[t])}function S7(t){(0,E.useEffect)(()=>yg(e=>t({type:"event",event:e})),[t])}function x7(t,e){(0,E.useEffect)(()=>{Fg(t,e)},[t,e])}function M3(){let[t,e]=(0,E.useReducer)(Xg,jg("react"));return b7(e),S7(e),x7(t,e),m(v7,{state:t,dispatch:e,renderer:"React"})}function v7({state:t,dispatch:e,renderer:n}){"use no memo";let l=t.providers.find(k=>k.id===t.selectedProviderId),i=Ss(t),r=bs(t),o=ty(t),[a,s]=(0,E.useState)([]),u=t.status==="running"&&(t.input.length>0||a.length>0)||a.length===0&&ds(t.input)!==null,c=l?t.autoStartAttemptedProviderIds.includes(l.id):!1,f=r&&(l?.autoStart!==!0||c),d=l?.id==="codex",h=Bg(l),p=l?.id==="codex"?t.context?.copy.reasoningEffortHigh??"High":null,[b,v]=(0,E.useState)("default"),[g,y]=(0,E.useState)(null),S=F7(t),x=g??S!=null,O=S!=null&&x,R=g7(t.input,a.length>0),M=R.isSingleLine,N=y7([{canHideLabel:p!=null,enabled:l!=null,id:"intelligence"},{canHideLabel:!0,enabled:O,id:"ide-context"}]),T=M?{hideControl:!1,hideLabel:!1}:N.state.intelligence??{hideControl:!1,hideLabel:!1},A=M?{hideControl:!1,hideLabel:!1}:N.state["ide-context"]??{hideControl:!1,hideLabel:!1},Z=(0,E.useRef)(null),$=(0,E.useRef)(new fs),Xt=(0,E.useRef)(0),Il=(0,E.useRef)(t);Il.current=t;let[al,Pe]=(0,E.useState)(null),[ph,sl]=(0,E.useState)(""),[w3,Kt]=(0,E.useState)(0),[au,Nt]=(0,E.useState)(!1),[R3,Rt]=(0,E.useState)(!1),[mh,gh]=(0,E.useState)(!1),[$i,wo]=(0,E.useState)(!1),[z3,yh]=(0,E.useState)(!1),[L3,It]=(0,E.useState)(!1),Cn=al?dh(al,t,ph):[],su=Cn.length===0?-1:Math.min(w3,Cn.length-1),_3=k=>{if(a.length!==0||ds(k)===null)return!1;let ue=$.current,Qt=Xt.current;if(!ue.begin(Qt))return!0;let ce=k;return qt("terminal.runCommand",{command:Ng(ce)}).then(()=>{let ul=ue.complete(Qt,Xt.current),er=Z.current?.getText()??Il.current.input;ul&&er===ce&&e({type:"setInput",input:""})}).catch(ul=>{ue.fail(Qt)&&e({type:"failed",message:kl(ul,Il.current)})}),!0},uu=()=>{let k=Z.current?.getText()??t.input;if(!(t.status==="running"&&(k.length>0||a.length>0)||a.length===0&&ds(k)!==null)||(k!==t.input&&(Xt.current+=1,e({type:"setInput",input:k})),_3(k)))return;Pe(null),sl(""),Nt(!1),Rt(!1),It(!1);let Qt=zg(_g(k,$i),S?.mention??null,x),ce=Rg(Qt,a),ul=new Set(a.map(er=>er.id));Pg(t,e,{attachments:a,clearInput:k,displayText:k,permissionMode:d?b:"default",text:ce}).then(er=>{er&&s(J3=>J3.filter(F3=>!ul.has(F3.id)))})},bh=k=>{Z.current?.insertMention(k.mention),Pe(null),sl(""),Kt(0),Rt(!1)},Sh=()=>{wo(k=>!k),Rt(!1),It(!1),Nt(!1),Pe(null),Z.current?.focus()},B3=()=>{y(k=>!(k??S!=null)),Rt(!1),It(!1),Nt(!1),Pe(null),Z.current?.focus()},H3=()=>{y(!1),Rt(!1),It(!1),Nt(!1),Pe(null),Z.current?.focus()},U3=()=>{wo(!0),yh(!0),Rt(!1),It(!1),Nt(!1),Pe(null),Z.current?.focus()},V3=async()=>{if(mh)return;let k=t.runningSessionId;gh(!0),Pe(null),sl(""),Kt(0),Rt(!1),It(!1);try{let Qt=((await qt("app.pickFiles")).files??[]).filter(ce=>ce.path.trim().length>0).map(ce=>{let ul=ce.label&&ce.label.trim().length>0?ce.label:nu(ce.path);return{dataUrl:ce.dataUrl,fsPath:ce.fsPath??ce.path,id:`${ce.path}-${Date.now()}-${Math.random().toString(36).slice(2)}`,kind:ce.isImage||ce.dataUrl?.startsWith("data:image/")?"image":"file",label:ul,mimeType:ce.mimeType,path:ce.path}});s(ce=>s9([...ce,...Qt])),Z.current?.focus()}catch(ue){k||e({type:"failed",message:kl(ue,t)})}finally{gh(!1)}},q3=k=>{if(!k){Pe(null),sl(""),Kt(0);return}Pe(k.kind),sl(k.query),Kt(0)},Y3=k=>{if(!al)return!1;if(k==="Escape")return Pe(null),sl(""),Kt(0),!0;if(Cn.length===0)return k==="Enter"||k==="Tab";if(k==="ArrowDown")return Kt(ue=>(ue+1)%Cn.length),!0;if(k==="ArrowUp")return Kt(ue=>(ue-1+Cn.length)%Cn.length),!0;if(k==="Enter"||k==="Tab"){let ue=Cn[su>=0?su:0];return ue&&bh(ue),!0}return!1},Z3=k=>{Wg(k,t,e),Nt(!1)},G3=T.hideControl?null:m("div",{className:"model-picker-root relative min-w-0",ref:k=>N.setItemRef("intelligence",k),onBlur:k=>{k.currentTarget.contains(k.relatedTarget)||Nt(!1)}},m("button",{className:`model-picker ${Ie} ${Qe} ${gn} min-w-0 rounded-full`,type:"button",disabled:!i,"aria-haspopup":"menu","aria-expanded":au,"data-state":au?"open":"closed","data-codex-intelligence-trigger":!0,"data-selected-reasoning-effort":"high",onClick:()=>{i&&(Rt(!1),It(!1),Nt(k=>!k))},onKeyDown:k=>{k.key==="ArrowDown"&&(k.preventDefault(),Nt(i))}},T.hideLabel?d9("icon-2xs"):m("span",{className:"model-picker-content flex max-w-40 min-w-0 items-center gap-1.5"},m("span",{className:"model-display flex min-w-0 items-center gap-1 tabular-nums"},m("span",{className:"model-label truncate whitespace-nowrap text-token-foreground"},h)),p?m("span",{className:"composer-footer__label--sm shrink-0 text-token-description-foreground"},p):null),m("span",{className:"model-chevron composer-footer__secondary-chevron icon-2xs text-token-input-placeholder-foreground","aria-hidden":!0},iu())),au?m("div",{className:"provider-dropdown _content_1hiti_1 no-drag bg-token-dropdown-background/90 text-token-foreground ring-token-border z-50 m-px flex select-none flex-col overflow-y-auto rounded-xl ring-[0.5px] px-1 py-1 shadow-xl-spread backdrop-blur-sm w-52",role:"menu","aria-label":t.context?.copy.provider??"","data-state":"open","data-side":"top",style:{"--radix-dropdown-menu-content-transform-origin":"left bottom"}},m("div",{className:"provider-dropdown-title"},t.context?.copy.provider??"Provider"),t.providers.map(k=>m("button",{key:k.id,className:"provider-dropdown-item no-drag group hover:bg-token-list-hover-background focus:bg-token-list-hover-background cursor-interaction text-token-foreground outline-hidden rounded-lg px-[var(--padding-row-x)] py-[var(--padding-row-y)] text-sm",type:"button",role:"menuitem","data-selected":k.id===t.selectedProviderId?"true":void 0,onMouseDown:ue=>ue.preventDefault(),onClick:()=>Z3(k.id)},m("span",{className:"provider-dropdown-item-content flex w-full items-center gap-1.5"},m("span",{className:"min-w-0 flex-1 truncate"},k.displayName),k.id===t.selectedProviderId?m("span",{className:"provider-dropdown-check icon-xs shrink-0","aria-hidden":!0},Kl()):null)))):null),j3=m(h3,{ref:Z,className:M?"text-base":"text-base [&_.ProseMirror]:leading-5",minHeight:M?"1.25rem":"2.75rem",singleLine:M,value:t.input,ariaLabel:t.context?.copy.promptPlaceholder??"",placeholder:t.context?.copy.promptPlaceholder??"",onAutocompleteChange:q3,onAutocompleteKeyDown:Y3,onPlanModeShortcut:Sh,onTextChange:k=>{Xt.current+=1,e({type:"setInput",input:k})},onSubmit:uu,onTriggerToken:k=>{Pe(k==="@"?"mention":"skill"),sl(""),Kt(0)}}),xh=(k=!1)=>d?m(X7,{copy:t.context?.copy,hideLabel:k,isEnabled:!0,isOpen:L3,mode:b,onModeChange:v,onOpenChange:ue=>{It(ue),ue&&(Rt(!1),Nt(!1),Pe(null))}}):null,vh=m("div",{className:"codex-left-rail flex min-w-0 items-center gap-[5px]"},m(I7,{hasIdeContext:S!=null,isAutoContextOn:x,isOpen:R3,isPickingFiles:mh,onOpenChange:k=>{Rt(k),k&&(It(!1),Nt(!1),Pe(null))},onPickFiles:()=>{V3()},onToggleAutoContext:B3,onTogglePlanMode:Sh,isPlanMode:$i,state:t}),M?null:xh(!1),!M&&$i?m(b3,{icon:lu("icon-xs"),label:t.context?.copy.skillPlan??"Plan",onClear:()=>wo(!1)}):null),Ch=m("div",{className:"codex-secondary-controls flex min-w-0 items-center gap-1",ref:N.setContainerRef},G3,O&&!A.hideControl?m("span",{className:"composer-context-indicator flex min-w-0 items-center gap-1",ref:k=>N.setItemRef("ide-context",k)},m("div",{className:"composer-context-divider h-4 w-px bg-token-border/70","aria-hidden":!0}),m(j7,{hideLabel:A.hideLabel,label:t.context?.copy.ideContext??"IDE context",onClear:H3})):null),Mh=m("div",{className:"codex-action-cluster flex shrink-0 items-center gap-2"},f?m("button",{className:`codex-action codex-start ${Ie} ${Qe} ${gn} rounded-full`,type:"button",disabled:!r,onClick:()=>{Ig(t,e)}},t.context?.copy.start??"Start"):null,o?m("button",{className:`codex-action codex-stop ${Ie} ${Qe} ${gn} ${ro} rounded-full`,type:"button","aria-label":t.context?.copy.stop??"Stop",onClick:()=>{$g(t,e)}},c9()):null,m("button",{className:`codex-action codex-mic ${Ie} ${Qe} ${gn} ${ro} rounded-full`,type:"button",disabled:!0,"aria-label":t.context?.copy.voiceInput??""},f9()),m("button",{className:`codex-action send-button ${Sg}${u?"":" cursor-default opacity-50"}`,type:"button",disabled:!u,"aria-label":t.context?.copy.send??"Send",onClick:uu},u9("icon-sm text-token-dropdown-background"))),X3=m("div",{className:"flex min-w-0 shrink-0 items-center justify-end gap-2"},Ch,xh(!0),M&&$i?m(b3,{icon:lu("icon-xs"),label:t.context?.copy.skillPlan??"Plan",onClear:()=>wo(!1)}):null,Mh),Th=m("div",{key:"composer-input",ref:R.inputMeasureRef,className:M?"min-w-0":"mb-1 flex-grow overflow-y-auto px-3"},j3),K3=M?m("div",{className:Tg},vh,Th,X3):m("div",{className:"contents"},a.length>0?m("div",{className:"px-2 py-1.5"},m(U7,{attachments:a,copy:t.context?.copy,onRemove:k=>{s(ue=>ue.filter(Qt=>Qt.id!==k))}})):null,Th,m("div",{className:Eg},vh,m("div",{className:"flex items-center"}),m("div",{className:"flex w-full min-w-0 items-center justify-end gap-2"},m("div",{className:"flex min-w-0 flex-1 justify-end"},Ch),m("div",{className:"flex shrink-0 items-center gap-2"},Mh)))),I3=m("div",{className:Cg},K3),Q3=!$i&&!z3&&/\bplan\b/i.test(t.input);return m("section",{className:"agent-shell","data-codex-window-type":"electron"},m(M7,{entries:t.transcript,copy:t.context?.copy}),m("div",{className:xg},m("div",{className:"relative flex w-full flex-col gap-2"},m("form",{className:"w-full min-w-0",onSubmit:k=>{k.preventDefault(),uu()}},m("div",{className:vg},m("span",{ref:R.textMeasureRef,className:"composer-single-line-measure text-size-chat pointer-events-none invisible absolute h-0 w-max max-w-none overflow-hidden whitespace-pre","aria-hidden":!0},t.input),Q3?m(C7,{copy:t.context?.copy,onAction:U3,onDismiss:()=>yh(!0)}):null,al?m(G7,{emptyLabel:t.context?.copy?.composerNoResults??"No results",highlightedIndex:su,items:Cn,onChoose:bh,onHighlight:Kt,query:ph}):null,m("div",{className:Mg+" "+(M?"overflow-visible rounded-full":"overflow-y-auto rounded-3xl")},I3)))),m(q7,{state:t,providerDisplayName:l?.displayName??n})))}function C7({copy:t,onAction:e,onDismiss:n}){return m("div",{className:"above-composer-suggestion-shell pointer-events-none absolute inset-x-0 bottom-full z-20 mb-2 flex justify-center"},m("div",{className:"pointer-events-auto flex w-full max-w-full justify-center"},m("div",{className:"relative inline-flex max-w-full min-w-0 items-center justify-between gap-4 overflow-hidden rounded-3xl border border-token-border/80 bg-token-dropdown-background/90 py-1.5 pr-2 pl-3 text-token-foreground shadow-md backdrop-blur-sm","data-codex-above-composer-suggestion":"keyword-plan-mode"},m("div",{className:"flex min-w-0 flex-1 items-center gap-2"},m("span",{className:"flex items-center justify-center text-token-foreground","aria-hidden":!0},lu("icon-xs shrink-0")),m("div",{className:"min-w-0 flex-1 flex items-center gap-2"},m("span",{className:"truncate text-sm font-medium leading-[18px] text-token-foreground"},t?.planSuggestionTitle??"Create a plan"),m("span",{className:"hidden leading-none text-sm text-token-description-foreground @[500px]:inline","aria-hidden":!0},m("span",{className:"pointer-events-none !h-auto rounded-md border border-token-border/80 px-1 py-0.5 text-xs !leading-none text-token-description-foreground"},t?.planSuggestionShortcut??"Shift + Tab")))),m("div",{className:"flex shrink-0 items-center gap-1"},m("button",{className:"user-select-none no-drag cursor-interaction flex h-8 items-center justify-center rounded-full border border-transparent bg-token-button-secondary-background px-2.5 text-sm text-token-button-secondary-foreground hover:bg-token-button-secondary-hover-background focus:outline-none",type:"button",onClick:l=>{l.stopPropagation(),e()}},t?.planSuggestionAction??"Use plan mode"),m("button",{className:"user-select-none no-drag flex size-[22px] shrink-0 cursor-interaction items-center justify-center rounded-full border border-transparent text-token-description-foreground hover:bg-token-list-hover-background focus:outline-none",type:"button","aria-label":t?.planSuggestionDismiss??"Dismiss suggestion",onClick:l=>{l.stopPropagation(),n()}},ou("icon-xs"))))))}var M7=E.default.memo(function({entries:e,copy:n}){return m("div",{className:"agent-thread","data-empty":e.length===0?"true":void 0},e.map(l=>m(T7,{copy:n,entry:l,key:l.id})))}),T7=E.default.memo(function({copy:e,entry:n}){switch(n.role){case"user":{let l=n.attachments??[],i=n.text.trim().length>0;return m("div",{className:"codex-user-turn group flex w-full flex-col items-end justify-end gap-1"},l.length>0?m(B7,{attachments:l}):null,i?m("div",{className:"codex-user-bubble bg-token-foreground/5 max-w-[77%] min-w-0 overflow-hidden break-words rounded-2xl px-3 py-2 [&_.contain-inline-size]:[contain:initial]"},m(L7,{copy:e,text:n.text})):null,i?m(k7,{copy:e,sentAtMs:n.sentAtMs,text:n.text}):null)}case"assistant":return n.isComplete===!1?m("div",{className:"codex-assistant-turn group flex min-w-0 flex-col"},m("div",{className:"codex-assistant-message codex-assistant-message-streaming text-size-chat leading-[calc(var(--codex-chat-font-size)+8px)]"},n.text)):m("div",{className:"codex-assistant-turn group flex min-w-0 flex-col"},m("div",{className:"codex-assistant-message text-size-chat leading-[calc(var(--codex-chat-font-size)+8px)] [&>*:last-child]:mb-0 [&>ol:first-child]:mt-0 [&>ul:first-child]:mt-0",dangerouslySetInnerHTML:{__html:wg(n.text)}}),n.text.trim().length>0?m(w7,{copy:e,sentAtMs:n.sentAtMs,text:n.text}):null);case"notice":return m("div",{className:`codex-notice-turn ${n.tone??"warning"}`},m("div",{className:"codex-notice-content text-size-chat-sm",dangerouslySetInnerHTML:{__html:$n(n.text)}}));case"activity":return m(E7,{copy:e,entry:n})}});function E7({copy:t,entry:e}){"use no memo";let[n,l]=(0,E.useState)(!1),[i,r]=(0,E.useState)({bottom:!1,top:!1}),o=(0,E.useRef)(null),a=t?.copyOutput??"Copy output",s=t?.shellLabel??"",u=t?.copyShellContents??a,c=t?.copiedShellContents??u,f=t?.collapseShell??"",d=t?.shellSuccess??"",h=t?.stopped??"",p=t?.failedStatus??"",b=!!e.output,v=(0,E.useCallback)(()=>{l(T=>!T)},[]),g=(0,E.useCallback)(()=>{l(!1)},[]),y=(0,E.useCallback)(T=>{let A=T===null?{bottom:!1,top:!1}:{bottom:T.scrollTop+T.clientHeight1};r(Z=>Z.bottom===A.bottom&&Z.top===A.top?Z:A)},[]),S=(0,E.useCallback)(()=>{o.current?.mutation?.disconnect(),o.current?.resize?.disconnect(),o.current=null},[]),x=(0,E.useCallback)(T=>{if(S(),T===null){y(null);return}let A=()=>y(T);A();let Z=typeof ResizeObserver>"u"?void 0:new ResizeObserver(A);Z?.observe(T);let $=typeof MutationObserver>"u"?void 0:new MutationObserver(A);$?.observe(T,{characterData:!0,childList:!0,subtree:!0}),o.current={mutation:$,resize:Z}},[S,y]),O=(0,E.useCallback)(T=>{y(T.currentTarget)},[y]),R=O7(e),M=m(E.default.Fragment,null,m("span",{className:"codex-tool-activity-icon icon-xs shrink-0","aria-hidden":!0},gg(e)),m("span",{className:"codex-tool-activity-text shrink overflow-hidden [mask-image:linear-gradient(to_right,black_calc(100%_-_0.25rem),transparent)] [mask-repeat:no-repeat] pr-1 group-hover/collapsed-tool-activity:text-token-foreground"},m("span",{className:"codex-tool-activity-action",dangerouslySetInnerHTML:{__html:$n(e.text)}}),e.detail?m("span",{className:"codex-tool-activity-detail",dangerouslySetInnerHTML:{__html:` ${$n(e.detail)}`}}):null)),N=b?m("button",{type:"button",className:"codex-tool-activity-summary group/collapsed-tool-activity group/summary inline-flex w-fit max-w-full cursor-interaction items-center gap-1 self-start text-left","aria-expanded":n,onClick:v},M,m("span",{className:`codex-tool-activity-chevron inline-chevron flex-shrink-0 text-token-input-placeholder-foreground opacity-0 group-hover/summary:opacity-100${n?" opacity-100":""}`},h9(`icon-2xs text-current transition-transform duration-300${n?" rotate-90":""}`))):m("div",{className:"codex-tool-activity-summary group/collapsed-tool-activity group/summary inline-flex w-fit max-w-full items-center gap-1 self-start text-left"},M);return m("div",{className:`codex-tool-activity-turn ${e.activityKind??"other"} ${e.activityStatus??"completed"}`},N,e.output?m("div",{"aria-hidden":!n,className:"codex-tool-activity-output-shell relative overflow-hidden","data-expanded":n?"true":"false"},m("div",{className:"codex-tool-activity-output-shell-inner"},m("div",{className:"codex-tool-activity-output-frame group/output relative pr-0 min-h-[1.25rem] flex flex-col overflow-clip rounded-lg border border-token-border"},m("div",{className:"codex-shell-header flex items-center justify-between bg-token-side-bar-background pl-2 text-sm font-medium text-ellipsis hover:bg-token-editor-background/40"},m("div",{className:"flex min-w-0 items-center"},m("span",{className:"truncate"},s)),m("div",{className:"flex items-center"},m(A7,{copiedLabel:c,copyLabel:u,text:R}),m("button",{type:"button",className:`codex-shell-collapse ${Ie} ${Qe} ${io} rounded-full electron:rounded-md hover:bg-transparent hover:text-token-button-foreground`,"aria-label":f,title:f,onClick:g},iu("icon-2xs rotate-180")))),m("div",{className:"relative overflow-hidden"},m("div",{className:"codex-tool-activity-output vertical-scroll-fade-mask [--edge-fade-distance:2rem] box-border flex flex-col gap-1.5 overflow-x-auto overflow-y-auto whitespace-pre p-2 font-vscode-editor font-medium text-size-code-sm text-token-description-foreground max-h-[140px]",onScroll:O,ref:x,dangerouslySetInnerHTML:{__html:$n(e.output)}}),i.top?m("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 top-0 h-6",style:p7}):null,i.bottom?m("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-0 bottom-0 h-6",style:m7}):null),m(N7,{failedLabel:p,status:e.activityStatus??"completed",stoppedLabel:h,successLabel:d}),m(D7,{label:a,output:e.output})))):null)}function N7({failedLabel:t,status:e,stoppedLabel:n,successLabel:l}){return e==="inProgress"?m("div",{className:"codex-shell-footer text-size-chat px-2.5 pt-0.5 pb-1"}):e==="stopped"?m("div",{className:"codex-shell-footer text-size-chat flex items-center gap-2 px-2.5 pt-0.5 pb-1 text-token-input-placeholder-foreground"},m("span",{className:"ml-auto"},n)):e==="failed"?m("div",{className:"codex-shell-footer text-size-chat flex items-center gap-2 px-2.5 pt-0.5 pb-1 text-token-input-placeholder-foreground"},m("span",{className:"ml-auto"},t)):m("div",{className:"codex-shell-footer text-size-chat flex items-center gap-2 px-2.5 pt-0.5 pb-1 text-token-input-placeholder-foreground"},m("span",{className:"ml-auto flex items-center gap-1"},Kl("icon-xxs"),l))}function O7(t){let e=(t.detail??t.text).trim(),n=t.output?.trimEnd()??"";return[e,n].filter(l=>l.length>0).join(` `)}function A7({copiedLabel:t,copyLabel:e,text:n}){"use no memo";let[l,i]=(0,E.useState)(!1),r=(0,E.useRef)(null),o=l?t:e,a=(0,E.useCallback)(u=>{u!==null||r.current===null||(window.clearTimeout(r.current),r.current=null)},[]),s=(0,E.useCallback)(u=>{u.stopPropagation(),navigator.clipboard?.writeText(n)?.catch(()=>{}),i(!0),r.current!==null&&window.clearTimeout(r.current),r.current=window.setTimeout(()=>{i(!1),r.current=null},2e3)},[n]);return m("button",{ref:a,type:"button",className:`codex-shell-copy ${Ie} ${Qe} ${io} rounded-full electron:rounded-md hover:bg-transparent hover:text-token-button-foreground`,"aria-label":o,title:o,onClick:s},l?Kl("icon-xxs"):ru("icon-xxs"))}function D7({label:t,output:e}){"use no memo";let[n,l]=(0,E.useState)(!1),i=(0,E.useRef)(null),r=(0,E.useCallback)(a=>{a!==null||i.current===null||(window.clearTimeout(i.current),i.current=null)},[]),o=(0,E.useCallback)(a=>{a.stopPropagation(),navigator.clipboard?.writeText(e)?.catch(()=>{}),l(!0),i.current!==null&&window.clearTimeout(i.current),i.current=window.setTimeout(()=>{l(!1),i.current=null},2e3)},[e]);return m("button",{ref:r,type:"button",className:`codex-tool-output-copy ${Ie} ${Qe} rounded-full electron:rounded-md electron:p-1 electron:[&>svg]:icon-sm flex items-center justify-center p-0.5 absolute top-0 right-2.5 opacity-0 transition-opacity duration-200 group-hover/output:opacity-100${n?" text-token-foreground opacity-100":""}`,"aria-label":t,title:t,onClick:o},n?Kl("icon-2xs"):ru("icon-2xs"))}function k7({copy:t,sentAtMs:e,text:n}){"use no memo";let[l,i]=(0,E.useState)(!1),r=(0,E.useRef)(null),o=t?.copyUserMessage??"",a=t?.copiedUserMessage??"",s=l?a:o,u=e==null?null:T3(e),c=(0,E.useCallback)(d=>{d!==null||r.current===null||(window.clearTimeout(r.current),r.current=null)},[]),f=(0,E.useCallback)(()=>{let d=n.trim();if(!d)return;navigator.clipboard?.writeText(d)?.catch(()=>{}),i(!0),r.current!==null&&window.clearTimeout(r.current),r.current=window.setTimeout(()=>{i(!1),r.current=null},1500)},[n]);return m("div",{className:"codex-user-message-actions flex flex-row-reverse items-center gap-1"},m("div",{className:"mr-1 ms-1 flex items-center gap-2 opacity-0 group-focus-within:opacity-100 group-hover:opacity-100"},u==null?null:m("span",{className:"text-xs text-token-text-tertiary"},u),m("button",{ref:c,type:"button",className:`codex-user-message-action-button ${Ie} ${Qe} ${io} rounded-full electron:rounded-md`,"aria-label":s,title:s,onClick:f},l?Kl("icon-xs"):ru("icon-xs"))))}function w7({copy:t,sentAtMs:e,text:n}){"use no memo";let[l,i]=(0,E.useState)(!1),r=(0,E.useRef)(null),o=t?.copyAssistantMessage??"",a=t?.copiedAssistantMessage??o,s=l?a:o,u=e==null?null:T3(e),c=(0,E.useCallback)(d=>{d!==null||r.current===null||(window.clearTimeout(r.current),r.current=null)},[]),f=(0,E.useCallback)(()=>{let d=n.trim();if(!d)return;navigator.clipboard?.writeText(d)?.catch(()=>{}),i(!0),r.current!==null&&window.clearTimeout(r.current),r.current=window.setTimeout(()=>{i(!1),r.current=null},2e3)},[n]);return m("div",{className:"codex-assistant-message-actions mt-1.5 flex h-5 items-center justify-start gap-0.5 opacity-0 group-focus-within:opacity-100 group-hover:opacity-100"},m("button",{ref:c,type:"button",className:`codex-assistant-message-action-button ${Ie} ${Qe} ${io} rounded-full electron:rounded-md`,"aria-label":s,title:s,onClick:f},l?Kl("icon-xs"):ru("icon-xs")),u==null?null:m("span",{className:"ml-1.5 flex h-full items-center text-size-chat leading-5 text-token-input-placeholder-foreground"},u))}var R7=7;function T3(t,e=new Date){let n=new Date(t),l=z7(n,e);return l===0?new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(n):l<0&&l>-R7?new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit",weekday:"long"}).format(n):new Intl.DateTimeFormat(void 0,{day:"numeric",hour:"numeric",minute:"2-digit",month:"short"}).format(n)}function z7(t,e){let n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),l=new Date(e.getFullYear(),e.getMonth(),e.getDate());return Math.round((n.getTime()-l.getTime())/864e5)}function L7({copy:t,text:e}){"use no memo";let[n,l]=(0,E.useState)(!1),i=_7(e),r=i&&!n,o=t?.showMore??"",a=t?.showLess??"",s=(0,E.useCallback)(()=>{l(u=>!u)},[]);return m("div",{className:"flex flex-col items-end gap-1"},m("div",{className:"codex-user-message-content text-size-chat relative w-full min-w-0 mb-px","data-collapsed":r?"true":void 0,dangerouslySetInnerHTML:{__html:$n(e)}}),i?m("button",{type:"button","aria-expanded":n,className:"codex-user-message-toggle text-size-chat mt-1.5 inline-flex cursor-interaction items-center gap-1 self-start text-token-description-foreground hover:text-token-foreground",onClick:s},m("span",null,n?a:o),iu(`icon-2xs${n?" rotate-180":""}`)):null)}function _7(t){return t.split(/\r\n|\r|\n/).length>h7||t.length>1600}function B7({attachments:t}){return m("div",{className:"codex-user-message-attachments flex max-w-[77%] flex-row-reverse flex-wrap items-center gap-1"},t.map(e=>m(H7,{attachment:e,key:e.id})))}function H7({attachment:t}){return t.kind==="image"&&t.dataUrl?m("div",{className:"user-message-image-attachment flex size-16 items-center justify-center rounded-lg border border-token-border",title:t.label},m("img",{alt:t.label,className:"h-full w-full rounded-md object-cover",referrerPolicy:"no-referrer",src:t.dataUrl})):m("div",{className:"user-message-file-attachment bg-token-dropdown-background border-token-border inline-flex max-w-[320px] items-center gap-1 rounded-full border px-2 py-1.5 text-sm",title:t.path},m("span",{className:"text-token-input-placeholder-foreground flex-shrink-0","aria-hidden":!0},hh("icon-2xs")),m("span",{className:"flex max-w-full min-w-0 items-center gap-1"},m("span",{className:"truncate"},t.label)))}function U7({attachments:t,className:e,copy:n,onRemove:l}){return m("div",{className:`codex-attachment-tray w-full overflow-x-auto${e?` ${e}`:""}`,"data-composer-attachments-row":!0},m("div",{className:"codex-attachment-row flex min-w-max items-end gap-2"},t.map(i=>m(V7,{attachment:i,copy:n,key:i.id,onRemove:l}))))}function V7({attachment:t,copy:e,onRemove:n}){let l=`${e?.removeAttachment??"Remove attachment"} ${t.label}`,i=n?m("button",{className:"composer-attachment-remove",type:"button","aria-label":l,onClick:()=>n(t.id),onMouseDown:r=>r.preventDefault()},ou("icon-2xs")):null;return t.kind==="image"&&t.dataUrl?m("div",{className:"composer-attachment-image",title:t.label},m("img",{alt:"","aria-hidden":!0,src:t.dataUrl}),i):m("div",{className:"composer-attachment-file",title:t.path},m("span",{className:"composer-attachment-file-icon","aria-hidden":!0},hh("icon-xs")),m("span",{className:"composer-attachment-file-label"},t.label),i)}function q7({state:t,providerDisplayName:e}){let l=(t.context?.rateLimitRows??[]).map(Vg),i=t.context?.copy,[r,o]=(0,E.useState)(!1);if(l.length===0)return null;let a=i?.rateLimits??"Rate limits";return m("div",{className:"rate-line codex-rate-limit-summary relative",role:"status","aria-label":`${e} ${ey(t)}`.trim(),onBlur:s=>{s.currentTarget.contains(s.relatedTarget)||o(!1)}},m("button",{className:"rate-limit-trigger rate-limit-trigger-inline flex min-w-0 items-center gap-1",type:"button","aria-expanded":r,onClick:()=>o(s=>!s)},m("span",{className:"rate-line-heading"},a),l.flatMap((s,u)=>[u>0?m("span",{key:`${s.role}-separator`,className:"rate-limit-inline-separator","aria-hidden":!0},"\u2022"):null,m(Y7,{key:s.role,row:s,state:t})])),r?m("div",{className:"rate-limit-popover absolute bottom-[calc(100%+6px)] left-0 z-50 flex min-w-56 flex-col gap-1 rounded-xl border border-token-border bg-token-dropdown-background/95 px-3 py-2 text-sm shadow-xl-spread backdrop-blur-sm"},m("div",{className:"rate-limit-popover-title"},a),l.map(s=>m(Z7,{key:s.role,row:s,state:t}))):null)}function Y7({row:t,state:e}){let n=t,l=e.context?.copy,i=n.role==="primary"?l?.rateLimitPrimary??"Primary":l?.rateLimitSecondary??"Secondary",r=ld(n.windowDurationMins,i,{weekly:l?.rateLimitWeekly??"Weekly",monthly:l?.rateLimitMonthly??"Monthly",daysFormat:l?.rateLimitDaysFormat??"",hoursFormat:l?.rateLimitHoursFormat??"",minutesFormat:l?.rateLimitMinutesFormat??""}),o=nd(n.resetsAt);return m("span",{className:"rate-limit-inline-segment"},m("span",{className:"rate-limit-window"},r),m("span",{className:"rate-limit-percent"},td(n.remainingPercent)),o?m("span",{className:"rate-limit-reset"},`${l?.rateLimitResets??"resets"} ${o}`):null)}function Z7({row:t,state:e}){let n=t,l=e.context?.copy,i=n.role==="primary"?l?.rateLimitPrimary??"Primary":l?.rateLimitSecondary??"Secondary",r=ld(n.windowDurationMins,i,{weekly:l?.rateLimitWeekly??"Weekly",monthly:l?.rateLimitMonthly??"Monthly",daysFormat:l?.rateLimitDaysFormat??"",hoursFormat:l?.rateLimitHoursFormat??"",minutesFormat:l?.rateLimitMinutesFormat??""}),o=nd(n.resetsAt);return m("div",{className:"rate-limit-popover-row"},m("span",{className:"rate-limit-window"},r),m("span",{className:"rate-limit-row-value"},m("span",{className:"rate-limit-percent"},td(n.remainingPercent)),o?m("span",{className:"rate-limit-reset"},`${l?.rateLimitResets??"resets"} ${o}`):null))}function G7({emptyLabel:t,highlightedIndex:e,items:n,onChoose:l,onHighlight:i,query:r}){return m("div",{className:"codex-top-tray-shell absolute z-20"},m("div",{className:"codex-top-tray-panel","cmdk-root":"","data-cmdk-root":!0},m("div",{className:"codex-top-tray-list","cmdk-list":"","data-cmdk-list":!0},n.length===0?m("div",{className:"codex-top-tray-empty","cmdk-empty":"","data-cmdk-empty":!0,"data-command-menu-empty-state":"true"},t):n.map((o,a)=>{let s=o.detail?"codex-top-tray-label max-w-[60%] flex-none truncate":"codex-top-tray-label min-w-0 flex-1 truncate",u=a9(o.label,r),c=u.some(f=>!f.isMatch);return m("button",{key:o.id,className:"codex-top-tray-item",type:"button","aria-selected":a===e?"true":void 0,"cmdk-item":"","data-selected":a===e?"true":void 0,"data-list-navigation-item":!0,onMouseEnter:()=>i(a),onMouseDown:f=>f.preventDefault(),onClick:()=>l(o)},m("div",{className:"codex-top-tray-copy flex w-full items-center gap-2"},m("span",{className:"codex-top-tray-icon icon-xs shrink-0","aria-hidden":!0},o.icon),m("div",{className:s},u.map((f,d)=>m("span",{key:`${f.text}-${d}`,className:!f.isMatch&&c?"text-token-description-foreground":void 0},f.text))),o.detail?m("span",{className:"codex-top-tray-detail min-w-0 flex-1 truncate text-sm text-token-description-foreground"},o.detail):null))}))))}function b3({icon:t,label:e,onClear:n}){return m("div",{className:"composer-mode-indicator flex min-w-0 items-center gap-1"},m("div",{className:"composer-mode-divider","aria-hidden":!0}),m("button",{className:`composer-mode-button group ${Ie} ${Qe} ${gn} rounded-full`,type:"button","aria-label":e,onClick:n},m("span",{className:"composer-mode-icon composer-mode-icon-default icon-xs shrink-0","aria-hidden":!0},t),m("span",{className:"composer-mode-icon composer-mode-icon-hover icon-xs shrink-0","aria-hidden":!0},ou("icon-xs")),m("span",{className:"composer-footer__label--sm composer-mode-label max-w-16 truncate"},e)))}function j7({hideLabel:t,label:e,onClear:n}){return m("button",{className:`composer-context-button group ${Ie} ${Qe} ${gn} min-w-0 rounded-full`,type:"button","aria-label":e,title:e,onClick:n},m("span",{className:"composer-context-icon composer-context-icon-default icon-xs shrink-0","aria-hidden":!0},O3("icon-xs")),m("span",{className:"composer-context-icon composer-context-icon-hover icon-xs shrink-0","aria-hidden":!0},ou("icon-xs")),t?null:m("span",{className:"composer-footer__label--sm composer-context-label max-w-20 truncate"},e))}function X7({copy:t,hideLabel:e=!1,isEnabled:n,isOpen:l,mode:i,onModeChange:r,onOpenChange:o}){let a=t?.changePermissions??"Change permissions",s=C3(t,i),u=n?["default","auto-review","full-access","custom"]:[],c=e?bg:gn,f=h=>{r(h),o(!1)},d=n&&l;return m("div",{className:"permissions-root relative inline-flex",onBlur:h=>{n&&!h.currentTarget.contains(h.relatedTarget)&&o(!1)}},m("button",{className:`permissions-trigger ${Ie} ${Qe} ${c} ${e?ro:"min-w-0"} rounded-full`,type:"button","aria-label":a,"aria-haspopup":n?"menu":void 0,"aria-expanded":n?d:void 0,"aria-disabled":n?void 0:!0,"data-permission-mode":i,"data-state":d?"open":"closed",disabled:!n,onClick:()=>{n&&o(!d)},onKeyDown:h=>{n&&(h.key==="ArrowDown"&&(h.preventDefault(),o(!0)),h.key==="Escape"&&(h.preventDefault(),o(!1)))}},N3(i,"icon-xs shrink-0"),e?null:m("span",{className:"permissions-trigger-label composer-footer__label--xs max-w-40 truncate whitespace-nowrap text-left"},s),n?m("span",{className:"permissions-trigger-chevron icon-2xs shrink-0","aria-hidden":!0},iu()):null),d?m("div",{className:"permissions-dropdown _content_1hiti_1 no-drag bg-token-dropdown-background/90 text-token-foreground ring-token-border z-50 m-px flex select-none flex-col overflow-y-auto rounded-xl ring-[0.5px] px-1 py-1 shadow-xl-spread backdrop-blur-sm",role:"menu","aria-label":a,"data-state":"open","data-side":"top",style:{"--radix-dropdown-menu-content-transform-origin":"left bottom"}},u.map(h=>m(K7,{isSelected:h===i,key:h,label:C3(t,h),mode:h,onSelect:()=>f(h)}))):null)}function K7({isSelected:t,label:e,mode:n,onSelect:l}){return m("button",{className:"permissions-item no-drag group hover:bg-token-list-hover-background focus:bg-token-list-hover-background cursor-interaction text-token-foreground outline-hidden rounded-lg px-[var(--padding-row-x)] py-[var(--padding-row-y)] text-sm",type:"button",role:"menuitemradio","aria-checked":t,"data-permission-mode":n,"data-selected":t?"true":void 0,onMouseDown:i=>i.preventDefault(),onClick:l},m("span",{className:"permissions-item-icon icon-xs shrink-0","aria-hidden":!0},N3(n,"icon-xs shrink-0")),m("span",{className:"permissions-item-label min-w-0 flex-1 truncate"},e),t?m("span",{className:"permissions-item-check icon-xs shrink-0","aria-hidden":!0},Kl()):null)}function I7({hasIdeContext:t,isAutoContextOn:e,isOpen:n,isPickingFiles:l,isPlanMode:i,onOpenChange:r,onPickFiles:o,onToggleAutoContext:a,onTogglePlanMode:s,state:u}){let c=u.context?.copy,f=c?.addFilesAndMore??"Add files and more",d=c?.addPhotosAndFiles??"Add photos & files",p=dh("skill",u,"").find(b=>b.id==="plan")??null;return m("div",{className:"add-context-root relative inline-flex",onBlur:b=>{b.currentTarget.contains(b.relatedTarget)||r(!1)}},m("button",{className:`codex-tool codex-tool-plus ${Ie} ${Qe} ${gn} ${ro} rounded-full`,type:"button","aria-label":f,"aria-haspopup":"menu","aria-expanded":n,"data-state":n?"open":"closed",onClick:()=>r(!n),onKeyDown:b=>{b.key==="ArrowDown"&&(b.preventDefault(),r(!0)),b.key==="Escape"&&(b.preventDefault(),r(!1))}},p9()),n?m("div",{className:"add-context-dropdown _content_1hiti_1 no-drag bg-token-dropdown-background/90 text-token-foreground ring-token-border z-50 m-px flex select-none flex-col overflow-y-auto rounded-xl ring-[0.5px] px-1 py-1 shadow-xl-spread backdrop-blur-sm",role:"menu","aria-label":f,"data-state":"open","data-side":"top",style:{"--radix-dropdown-menu-content-transform-origin":"left bottom"}},m(Q7,{disabled:l,icon:hh("icon-xs"),label:d,onSelect:o}),t||p?m(J7):null,t?m(S3,{checked:e,icon:O3("icon-sm"),label:c?.includeIdeContext??"Include IDE context",onSelect:a}):null,p?m(S3,{checked:i,icon:lu(),label:c?.planMode??"Plan mode",onSelect:s}):null):null)}function Q7({detail:t,disabled:e=!1,icon:n,label:l,onSelect:i}){return m("button",{className:"add-context-item group no-drag hover:bg-token-list-hover-background focus:bg-token-list-hover-background cursor-interaction text-token-foreground outline-hidden rounded-lg px-[var(--padding-row-x)] py-[var(--padding-row-y)] text-sm",disabled:e,type:"button",role:"menuitem",onMouseDown:r=>r.preventDefault(),onClick:e?void 0:i},m("span",{className:"add-context-item-icon icon-xs shrink-0","aria-hidden":!0},n),m("span",{className:"add-context-item-copy flex min-w-0 flex-1 items-center gap-2"},m("span",{className:"add-context-item-label min-w-0 truncate"},l),t?m("span",{className:"add-context-item-detail min-w-0 flex-1 truncate text-token-description-foreground"},t):null))}function S3({checked:t,icon:e,label:n,onSelect:l}){let i=t?"checked":"unchecked",r=t?"relative inline-flex h-4 w-7 shrink-0 items-center rounded-full bg-token-charts-blue transition-colors duration-200 ease-out":"relative inline-flex h-4 w-7 shrink-0 items-center rounded-full bg-token-foreground/10 transition-colors duration-200 ease-out";return m("button",{className:"add-context-item group no-drag hover:bg-token-list-hover-background focus:bg-token-list-hover-background cursor-interaction text-token-foreground outline-hidden rounded-lg px-[var(--padding-row-x)] py-[var(--padding-row-y)] text-sm",type:"button",role:"menuitemcheckbox","aria-checked":t,onMouseDown:o=>o.preventDefault(),onClick:l},m("span",{className:"add-context-item-icon icon-xs shrink-0","aria-hidden":!0},e),m("span",{className:"add-context-switch-row flex w-full min-w-0 items-center justify-between gap-2"},m("span",{className:"flex min-w-0 items-center gap-2"},m("span",{className:"add-context-item-label min-w-0 truncate"},n)),m("span",{className:r,"data-state":i,"aria-hidden":!0},m("span",{className:"h-3 w-3 rounded-full border border-[color:var(--gray-0)] bg-[color:var(--gray-0)] shadow-sm transition-transform duration-200 ease-out data-[state=unchecked]:translate-x-[2px] data-[state=checked]:translate-x-[14px]","data-state":i}))))}function J7(){return m("div",{className:"add-context-separator w-full px-[var(--padding-row-x)] py-1",role:"separator"},m("div",{className:"add-context-separator-line h-[1px] w-full bg-token-menu-border"}))}function F7(t){return dh("mention",t,"").find(e=>e.id==="workspace")??null}function dh(t,e,n){let l=e.context?.copy,i=t==="mention"?[...e.context?.workingDirectory?[{id:"workspace",icon:m9("icon-xs"),label:l?.mentionCurrentWorkspace??"Current workspace",detail:nu(e.context.workingDirectory),mention:{kind:"at",label:nu(e.context.workingDirectory),name:nu(e.context.workingDirectory),path:e.context.workingDirectory,fsPath:e.context.workingDirectory}}]:[],...e.providers.map(r=>({id:r.id,icon:Hg(r),label:r.displayName,detail:r.executableName,mention:{kind:"agent",label:r.displayName,name:r.id,displayName:r.displayName,path:`provider://${r.id}`,description:r.executableName}}))]:[{id:"plan",icon:"$",label:l?.skillPlan??"Plan",detail:"$plan",mention:{kind:"skill",label:"Plan",name:"plan",displayName:"Plan",path:"skill://plan"}},{id:"review",icon:"$",label:l?.skillCodeReview??"Code review",detail:"$codex-review",mention:{kind:"skill",label:"Code review",name:"codex-review",displayName:"Code review",path:"skill://codex-review"}},{id:"research",icon:"$",label:l?.skillResearch??"Research",detail:"$research",mention:{kind:"skill",label:"Research",name:"research",displayName:"Research",path:"skill://research"}}];return W7(i,n)}function W7(t,e){let n=e.trim();return n?t.map(l=>({item:l,score:o9(l.label,n,[l.detail,l.mention.name])})).filter(({score:l})=>l>0).sort((l,i)=>i.score-l.score).map(({item:l})=>l):t}var x3=1,P7=.9,$7=.8,e9=.17,uh=.1,ch=.999,t9=.9999,n9=.99,l9=/[\\/_+.#"@[({&]/,i9=/[\\/_+.#"@[({&]/g,r9=/[\s-]/,E3=/[\s-]/g;function o9(t,e,n){let l=n.length>0?`${t} ${n.join(" ")}`:t;return fh(l,e,v3(l),v3(e),0,0,{})}function v3(t){return t.toLowerCase().replace(E3," ")}function fh(t,e,n,l,i,r,o){if(r===e.length)return i===t.length?x3:n9;let a=`${i},${r}`;if(o[a]!==void 0)return o[a];let s=l.charAt(r),u=n.indexOf(s,i),c=0;for(;u>=0;){let f=fh(t,e,n,l,u+1,r+1,o);if(f>c){if(u===i)f*=x3;else if(l9.test(t.charAt(u-1))){f*=$7;let d=t.slice(i,u-1).match(i9);d&&i>0&&(f*=ch**d.length)}else if(r9.test(t.charAt(u-1))){f*=P7;let d=t.slice(i,u-1).match(E3);d&&i>0&&(f*=ch**d.length)}else f*=e9,i>0&&(f*=ch**(u-i));t.charAt(u)!==e.charAt(r)&&(f*=t9)}if(ff&&(f=d*uh)}f>c&&(c=f),u=n.indexOf(s,u+1)}return o[a]=c,c}function a9(t,e){let n=Array.from(t),l=e.trim();if(!l)return n.map(s=>({isMatch:!0,text:s}));let i=n.map(s=>s.toLowerCase()),r=Array.from(l.toLowerCase()),o=-1;for(let s=0;s<=i.length-r.length;s+=1)if(r.every((u,c)=>i[s+c]===u)){o=s;break}if(o>=0){let s=o+r.length;return n.map((u,c)=>({isMatch:c>=o&&c{let u=a{let l=`${n.kind}:${n.path}`;return e.has(l)?!1:(e.add(l),!0)})}function u9(t="icon-sm"){return m("svg",{className:t,width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":!0},m("path",{d:"M9.33467 16.6663V4.93978L4.6374 9.63704L4.1667 9.16634L3.69599 8.69661L9.52998 2.86263L9.63447 2.77767C9.8925 2.60753 10.2433 2.63564 10.4704 2.86263L16.3034 8.69661L16.3884 8.80111C16.5588 9.05922 16.5306 9.40982 16.3034 9.63704C16.0762 9.86414 15.7255 9.89242 15.4675 9.722L15.363 9.63704L10.6647 4.9388V16.6663C10.6647 17.0336 10.367 17.3314 9.99971 17.3314C9.63259 17.3312 9.33467 17.0335 9.33467 16.6663ZM4.6374 9.63704C4.3777 9.89674 3.95569 9.89674 3.69599 9.63704C3.43657 9.37744 3.43668 8.95628 3.69599 8.69661L4.6374 9.63704Z",fill:"currentColor"}))}function c9(){return m("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0},m("rect",{x:"4.75",y:"4.75",width:"6.5",height:"6.5",rx:"1",fill:"currentColor"}))}function f9(){return m("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0},m("path",{d:"M8 2.25a2 2 0 0 0-2 2v3.25a2 2 0 1 0 4 0V4.25a2 2 0 0 0-2-2ZM4 7.5a4 4 0 0 0 8 0M8 11.5v2.25",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}))}function d9(t="icon-sm"){return m("svg",{className:t,width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":!0},m("path",{d:"M10 5.14295V14.8441M10 5.14295C10 1.98209 14.8475 1.94468 14.8475 5.07797L14.8473 5.1067C17.1367 5.43539 18.0436 7.54498 16.4225 9.14006C17.8633 10.5577 17.3503 13.9054 15.4449 14.6301C14.8475 17.6527 10.8056 18.4821 10 14.8441M10 5.14295C10 1.98209 5.15249 1.94468 5.15249 5.07797L5.15265 5.1067C2.86325 5.43539 1.95642 7.54498 3.57746 9.14006C2.13674 10.5577 2.64974 13.9054 4.5551 14.6301C5.15249 17.6527 9.19444 18.4821 10 14.8441",stroke:"currentColor",strokeLinejoin:"round",strokeWidth:"1.33"}))}function iu(t="icon-2xs"){return m("svg",{className:t,width:"20",height:"21",viewBox:"0 0 20 21",fill:"none","aria-hidden":!0},m("path",{d:"M15.2793 7.71101C15.539 7.45131 15.961 7.45131 16.2207 7.71101C16.4804 7.97071 16.4804 8.39272 16.2207 8.65242L10.4707 14.4024C10.211 14.6621 9.78902 14.6621 9.52932 14.4024L3.77932 8.65242L3.69436 8.54792C3.52385 8.28979 3.55205 7.93828 3.77932 7.71101C4.00659 7.48374 4.3581 7.45554 4.61623 7.62605L4.72073 7.71101L10 12.9903L15.2793 7.71101Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"0.6"}))}function h9(t="icon-2xs"){return m("svg",{className:t,width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":!0},m("path",{d:"M7.52925 3.7793C7.75652 3.55203 8.10803 3.52383 8.36616 3.69434L8.47065 3.7793L14.2207 9.5293C14.4804 9.789 14.4804 10.211 14.2207 10.4707L8.47065 16.2207C8.21095 16.4804 7.78895 16.4804 7.52925 16.2207C7.26955 15.961 7.26955 15.539 7.52925 15.2793L12.8085 10L7.52925 4.7207L7.44429 4.61621C7.27378 4.35808 7.30198 4.00657 7.52925 3.7793Z",fill:"currentColor"}))}function ru(t="icon-sm"){return m("svg",{className:t,width:"21",height:"21",viewBox:"0 0 21 21",fill:"none","aria-hidden":!0},m("path",{d:"M13.468 11.1216C13.468 10.4107 13.468 9.91717 13.4367 9.53369C13.4137 9.25191 13.3758 9.0622 13.3244 8.91846L13.2687 8.78858C13.1148 8.48652 12.8803 8.23344 12.593 8.05713L12.466 7.98584C12.308 7.90546 12.0963 7.84854 11.7209 7.81787C11.3374 7.78656 10.8439 7.78662 10.133 7.78662H7.29999C6.58895 7.78662 6.09562 7.78654 5.7121 7.81787C5.43015 7.84091 5.24064 7.87872 5.09686 7.93018L4.96698 7.98584C4.66487 8.13977 4.41184 8.37419 4.23554 8.66162L4.16522 8.78858C4.08477 8.94657 4.02794 9.15811 3.99725 9.53369C3.96594 9.91718 3.96503 10.4107 3.96503 11.1216V13.9546C3.96503 14.6656 3.96592 15.159 3.99725 15.5425C4.02796 15.9182 4.08471 16.1296 4.16522 16.2876L4.23554 16.4136C4.41185 16.7012 4.66472 16.9353 4.96698 17.0894L5.09686 17.146C5.24061 17.1974 5.43024 17.2343 5.7121 17.2573C6.09562 17.2887 6.58895 17.2896 7.29999 17.2896H10.133C10.8439 17.2896 11.3374 17.2886 11.7209 17.2573C12.0965 17.2266 12.308 17.1698 12.466 17.0894L12.593 17.019C12.8804 16.8427 13.1148 16.5897 13.2687 16.2876L13.3244 16.1577C13.3759 16.0139 13.4137 15.8244 13.4367 15.5425C13.468 15.159 13.468 14.6656 13.468 13.9546V11.1216ZM14.798 13.1196C15.2528 13.118 15.6011 13.1147 15.8879 13.0913C16.2634 13.0606 16.475 13.0038 16.633 12.9233L16.759 12.8521C17.0466 12.6757 17.2808 12.4228 17.4348 12.1206L17.4914 11.9907C17.5428 11.847 17.5797 11.6572 17.6027 11.3755C17.634 10.992 17.6349 10.4985 17.6349 9.7876V6.95459C17.6349 6.24355 17.6341 5.75022 17.6027 5.3667C17.5797 5.08484 17.5428 4.89522 17.4914 4.75147L17.4348 4.62158C17.2807 4.31933 17.0466 4.06645 16.759 3.89014L16.633 3.81982C16.475 3.73932 16.2636 3.68256 15.8879 3.65186C15.5044 3.62052 15.011 3.61963 14.3 3.61963H11.467C10.7561 3.61963 10.2626 3.62054 9.87909 3.65186C9.59738 3.67487 9.40759 3.71179 9.26386 3.76318L9.13397 3.81982C8.83175 3.97382 8.57885 4.20802 8.40253 4.49561L8.33124 4.62158C8.25079 4.77957 8.19396 4.99114 8.16327 5.3667C8.13984 5.65352 8.13561 6.00178 8.13397 6.45654H10.133C10.822 6.45654 11.3791 6.4559 11.8293 6.49268C12.2873 6.5301 12.6937 6.6093 13.0705 6.80127L13.2883 6.92334C13.7839 7.22739 14.1878 7.66313 14.4533 8.18408L14.5197 8.32666C14.6642 8.66318 14.7291 9.02433 14.7619 9.42529C14.7987 9.8755 14.798 10.4326 14.798 11.1216V13.1196ZM18.965 9.7876C18.965 10.4766 18.9657 11.0337 18.9289 11.4839C18.8961 11.8848 18.8311 12.246 18.6867 12.5825L18.6203 12.7251C18.3548 13.246 17.9509 13.6818 17.4553 13.9858L17.2365 14.1079C16.8599 14.2998 16.4541 14.3791 15.9963 14.4165C15.6592 14.444 15.2624 14.4481 14.7951 14.4497C14.7935 14.917 14.7894 15.3138 14.7619 15.6509C14.7292 16.0516 14.664 16.4122 14.5197 16.7485L14.4533 16.8911C14.1878 17.4122 13.7841 17.8487 13.2883 18.1528L13.0705 18.2749C12.6937 18.4669 12.2873 18.5461 11.8293 18.5835C11.3791 18.6203 10.822 18.6196 10.133 18.6196H7.29999C6.6109 18.6196 6.05394 18.6203 5.6037 18.5835C5.20305 18.5508 4.84233 18.4855 4.50604 18.3413L4.36347 18.2749C3.84243 18.0094 3.40584 17.6056 3.10175 17.1099L2.97968 16.8911C2.78787 16.5145 2.70849 16.1087 2.67108 15.6509C2.6343 15.2006 2.63495 14.6437 2.63495 13.9546V11.1216C2.63495 10.4326 2.63431 9.8755 2.67108 9.42529C2.7085 8.96729 2.78771 8.56084 2.97968 8.18408L3.10175 7.96631C3.40585 7.47049 3.84235 7.06679 4.36347 6.80127L4.50604 6.73486C4.84236 6.59059 5.20302 6.52542 5.6037 6.49268C5.9405 6.46516 6.33707 6.4601 6.80389 6.4585C6.8055 5.99167 6.81056 5.5951 6.83807 5.2583C6.87549 4.80047 6.95482 4.39471 7.14667 4.01807L7.26874 3.79932C7.5728 3.30371 8.00855 2.89973 8.52948 2.63428L8.67206 2.56787C9.00854 2.42345 9.36978 2.35844 9.77069 2.32568C10.2209 2.28891 10.778 2.28955 11.467 2.28955H14.3C14.9891 2.28955 15.546 2.2889 15.9963 2.32568C16.4541 2.3631 16.8599 2.44247 17.2365 2.63428L17.4553 2.75635C17.951 3.06044 18.3548 3.49703 18.6203 4.01807L18.6867 4.16065C18.8309 4.49694 18.8962 4.85765 18.9289 5.2583C18.9657 5.70854 18.965 6.2655 18.965 6.95459V9.7876Z",fill:"currentColor"}))}function Kl(t){return m("svg",{className:t,width:"17",height:"17",viewBox:"0 0 17 17",fill:"none","aria-hidden":!0},m("path",{d:"M12.8961 3.64101C13.1297 3.41418 13.4984 3.37523 13.7779 3.56581C14.0571 3.75635 14.1554 4.11331 14.0299 4.41347L13.9615 4.53847L7.71151 13.7045C7.59411 13.8767 7.4063 13.9877 7.19881 14.0072C6.99136 14.0267 6.78564 13.9533 6.63826 13.806L2.88826 10.056L2.79842 9.9457C2.6192 9.67407 2.64927 9.30496 2.88826 9.06581C3.12738 8.82669 3.49647 8.79676 3.76815 8.97597L3.8785 9.06581L7.03084 12.2182L12.8053 3.74941L12.8961 3.64101Z",fill:"currentColor"}))}function ou(t="icon-sm"){return m("svg",{className:t,width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":!0},m("path",{d:"M5.96967 5.96967C6.26256 5.67678 6.73744 5.67678 7.03033 5.96967L10 8.93934L12.9697 5.96967C13.2626 5.67678 13.7374 5.67678 14.0303 5.96967C14.3232 6.26256 14.3232 6.73744 14.0303 7.03033L11.0607 10L14.0303 12.9697C14.3232 13.2626 14.3232 13.7374 14.0303 14.0303C13.7374 14.3232 13.2626 14.3232 12.9697 14.0303L10 11.0607L7.03033 14.0303C6.73744 14.3232 6.26256 14.3232 5.96967 14.0303C5.67678 13.7374 5.67678 13.2626 5.96967 12.9697L8.93934 10L5.96967 7.03033C5.67678 6.73744 5.67678 6.26256 5.96967 5.96967Z",fill:"currentColor"}))}function p9(){return m("svg",{className:"icon-sm",width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":!0},m("path",{d:"M9.33496 16.5V10.665H3.5C3.13273 10.665 2.83496 10.3673 2.83496 10C2.83496 9.63273 3.13273 9.33496 3.5 9.33496H9.33496V3.5C9.33496 3.13273 9.63273 2.83496 10 2.83496C10.3673 2.83496 10.665 3.13273 10.665 3.5V9.33496H16.5L16.6338 9.34863C16.9369 9.41057 17.165 9.67857 17.165 10C17.165 10.3214 16.9369 10.5894 16.6338 10.6514L16.5 10.665H10.665V16.5C10.665 16.8673 10.3673 17.165 10 17.165C9.63273 17.165 9.33496 16.8673 9.33496 16.5Z",fill:"currentColor"}))}function hh(t="icon-sm"){return m("svg",{className:t,width:"21",height:"21",viewBox:"0 0 21 21",fill:"none","aria-hidden":!0},m("path",{d:"M4.43945 12.8041V7.68261C4.43945 7.30642 4.74446 7.00141 5.12066 7.00141C5.49685 7.00141 5.80186 7.30642 5.80186 7.68261V12.8041C5.80186 15.2565 7.78984 17.2445 10.2422 17.2445C12.6945 17.2445 14.6825 15.2565 14.6825 12.8041V5.9751C14.6823 4.46587 13.4589 3.24247 11.9497 3.24229C10.4403 3.24229 9.21606 4.46576 9.21588 5.9751V12.8041C9.21588 13.3708 9.67553 13.8304 10.2422 13.8304C10.8088 13.8304 11.2685 13.3708 11.2685 12.8041V7.68261C11.2685 7.30642 11.5735 7.00141 11.9497 7.00141C12.3257 7.00159 12.6309 7.30653 12.6309 7.68261V12.8041C12.6309 14.1232 11.5612 15.1929 10.2422 15.1929C8.92314 15.1929 7.85347 14.1232 7.85347 12.8041V5.9751C7.85365 3.71337 9.68791 1.87988 11.9497 1.87988C14.2113 1.88006 16.0447 3.71348 16.0449 5.9751V12.8041C16.0449 16.0089 13.4469 18.6069 10.2422 18.6069C7.03745 18.6069 4.43945 16.0089 4.43945 12.8041Z",fill:"currentColor"}))}function m9(t="icon-sm"){return m("svg",{className:t,width:20,height:20,viewBox:"0 0 20 20",fill:"none","aria-hidden":!0},m("path",{d:cs,fill:"currentColor"}))}function lu(t="icon-sm"){return m("svg",{className:t,width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":!0},m("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.69336 11.0557C7.05891 11.1944 8.12484 12.3479 8.125 13.75L8.11035 14.0273C7.97144 15.3928 6.81814 16.459 5.41602 16.459L5.13965 16.4443C3.86514 16.3149 2.85128 15.3018 2.72168 14.0273L2.70801 13.75C2.70818 12.2546 3.92061 11.0423 5.41602 11.042L5.69336 11.0557ZM5.41602 12.3721C4.65515 12.3724 4.03826 12.9891 4.03809 13.75C4.03826 14.5109 4.65515 15.1286 5.41602 15.1289C6.17714 15.1289 6.79475 14.5111 6.79492 13.75C6.79475 12.9889 6.17714 12.3721 5.41602 12.3721Z",fill:"currentColor"}),m("path",{d:"M16.8008 13.0986C17.1036 13.1608 17.3311 13.4288 17.3311 13.75C17.3311 14.0712 17.1036 14.3392 16.8008 14.4014L16.666 14.415H10.833C10.4659 14.4149 10.168 14.1172 10.168 13.75C10.168 13.3828 10.4659 13.0851 10.833 13.085H16.666L16.8008 13.0986Z",fill:"currentColor"}),m("path",{d:"M16.8008 5.59863C17.1036 5.66081 17.3311 5.92879 17.3311 6.25C17.3311 6.57121 17.1036 6.83919 16.8008 6.90137L16.666 6.91504H10.833C10.4659 6.91491 10.168 6.61719 10.168 6.25C10.168 5.88281 10.4659 5.58509 10.833 5.58496H16.666L16.8008 5.59863Z",fill:"currentColor"}),m("path",{d:"M7.13311 3.76578C7.35346 3.47216 7.771 3.4128 8.06475 3.63297C8.35843 3.85336 8.41789 4.27084 8.19757 4.56461L5.19757 8.56461C5.0819 8.71866 4.90439 8.81462 4.71221 8.82828C4.5201 8.84178 4.33083 8.77209 4.19464 8.6359L2.69464 7.1359C2.43512 6.87623 2.43512 6.45415 2.69464 6.19449C2.95429 5.93484 3.37633 5.93493 3.63604 6.19449L4.59307 7.15152L7.13311 3.76578Z",fill:"currentColor"}))}function g9(t="icon-sm"){return m("svg",{className:t,width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":!0},m("path",{d:"M12.6683 4.16699C12.6683 3.84391 12.4065 3.58203 12.0834 3.58203C11.7603 3.58203 11.4984 3.84391 11.4984 4.16699V7.91699L11.4847 8.05078C11.4227 8.35375 11.1547 8.58203 10.8334 8.58203C10.4662 8.58203 10.1685 8.28411 10.1683 7.91699V3.75C10.1683 3.42691 9.90646 3.16504 9.58337 3.16504C9.26029 3.16504 8.99841 3.42691 8.99841 3.75V7.91699C8.99824 8.28411 8.70053 8.58203 8.33337 8.58203C7.96621 8.58203 7.66851 8.28411 7.66833 7.91699V5C7.66833 4.67691 7.40646 4.41504 7.08337 4.41504C6.76029 4.41504 6.49841 4.67691 6.49841 5V9.30371C6.53326 9.3429 6.56715 9.38359 6.59998 9.42578L8.02478 11.2588C8.25005 11.5486 8.19821 11.9659 7.90857 12.1914C7.6187 12.4169 7.20048 12.365 6.97498 12.0752L5.55017 10.2432C5.15812 9.7391 4.41813 9.73637 4.01501 10.1924C4.04396 10.426 4.11486 10.8323 4.25525 11.3486C4.44664 12.0525 4.75404 12.9113 5.21619 13.7383C6.14103 15.3931 7.62465 16.835 10.0004 16.835C12.8545 16.8348 15.1682 14.5211 15.1683 11.667V6.25C15.1683 5.92691 14.9065 5.66504 14.5834 5.66504C14.2603 5.66504 13.9984 5.92691 13.9984 6.25V9.16699C13.9982 9.53411 13.7005 9.83203 13.3334 9.83203C12.9662 9.83203 12.6685 9.53411 12.6683 9.16699V4.16699ZM13.9984 4.42578C14.1828 4.36671 14.3794 4.33496 14.5834 4.33496C15.641 4.33496 16.4984 5.19237 16.4984 6.25V11.667C16.4982 15.2557 13.589 18.1649 10.0004 18.165C6.95953 18.165 5.10939 16.2734 4.05505 14.3867C3.52774 13.4431 3.1843 12.4787 2.97205 11.6982C2.76447 10.9349 2.66834 10.2954 2.66833 10C2.66833 9.87959 2.70117 9.76148 2.76306 9.6582C3.28988 8.78018 4.26555 8.40372 5.16833 8.56152V5C5.16833 3.94237 6.02575 3.08496 7.08337 3.08496C7.31706 3.08496 7.54039 3.12845 7.74744 3.20508C7.98218 2.41297 8.7151 1.83496 9.58337 1.83496C10.1836 1.83496 10.7186 2.11176 11.0697 2.54395C11.3639 2.35978 11.7107 2.25195 12.0834 2.25195C13.141 2.25195 13.9984 3.10937 13.9984 4.16699V4.42578Z",fill:"currentColor"}))}function y9(t="icon-sm"){return m("svg",{className:t,width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":!0},m("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.06543 1.95123C9.66107 1.69076 10.3389 1.69071 10.9346 1.95123L15.9346 4.13873C16.7832 4.51008 17.3311 5.34917 17.3311 6.27545V10.5528C17.3309 14.6017 14.0489 17.8847 10 17.8848C5.95108 17.8846 2.66813 14.6017 2.66797 10.5528V6.27545C2.66797 5.34924 3.21695 4.51012 4.06543 4.13873L9.06543 1.95123ZM10.4014 3.16998C10.1456 3.05814 9.85444 3.05819 9.59863 3.16998L4.59863 5.35748C4.23427 5.51708 3.99805 5.87764 3.99805 6.27545V10.5528C3.99821 13.8671 6.68563 16.5546 10 16.5547C13.3144 16.5546 16.0008 13.8671 16.001 10.5528V6.27545C16.001 5.87756 15.7658 5.51703 15.4014 5.35748L10.4014 3.16998Z",fill:"currentColor"}),m("path",{d:"M13.4678 11.4318L13.333 11.4182H10.833C10.466 11.4183 10.1682 11.7162 10.168 12.0832C10.168 12.4504 10.4659 12.7481 10.833 12.7482H13.333L13.4678 12.7346C13.7706 12.6724 13.9981 12.4044 13.9981 12.0832C13.9979 11.7621 13.7706 11.494 13.4678 11.4318Z",fill:"currentColor"}),m("path",{d:"M7.65336 12.426C7.46431 12.7406 7.05607 12.8424 6.74125 12.6535C6.42646 12.4646 6.32395 12.0563 6.51274 11.7414L7.55668 10.0002L6.51274 8.25899C6.32395 7.94412 6.42646 7.53583 6.74125 7.34688C7.05607 7.15799 7.46431 7.25975 7.65336 7.57442L8.90336 9.6584C9.0296 9.86893 9.0296 10.1315 8.90336 10.342L7.65336 12.426Z",fill:"currentColor"}))}function b9(t="icon-sm"){return m("svg",{className:t,width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":!0},m("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.06543 1.95123C9.66107 1.69076 10.3389 1.69071 10.9346 1.95123L15.9346 4.13873C16.7832 4.51008 17.3311 5.34917 17.3311 6.27545V10.5528C17.3309 14.6017 14.0489 17.8847 10 17.8848C5.95108 17.8846 2.66813 14.6017 2.66797 10.5528V6.27545C2.66797 5.34924 3.21695 4.51012 4.06543 4.13873L9.06543 1.95123ZM10.4014 3.16998C10.1456 3.05814 9.85444 3.05819 9.59863 3.16998L4.59863 5.35748C4.23427 5.51708 3.99805 5.87764 3.99805 6.27545V10.5528C3.99821 13.8671 6.68563 16.5546 10 16.5547C13.3144 16.5546 16.0008 13.8671 16.001 10.5528V6.27545C16.001 5.87756 15.7658 5.51703 15.4014 5.35748L10.4014 3.16998Z",fill:"currentColor"}),m("path",{d:"M10.8883 13.1116C10.8883 13.6025 10.4903 14.0005 9.99936 14.0005C9.50844 14.0005 9.11047 13.6025 9.11047 13.1116C9.11047 12.6207 9.50844 12.2227 9.99936 12.2227C10.4903 12.2227 10.8883 12.6207 10.8883 13.1116Z",fill:"currentColor"}),m("path",{d:"M10.5169 10.8949L11.1135 7.31519C11.2283 6.62672 10.6974 6 9.99941 6C9.30145 6 8.77053 6.62672 8.88528 7.31519L9.4819 10.8949C9.52406 11.1479 9.74294 11.3333 9.99941 11.3333C10.2559 11.3333 10.4748 11.1479 10.5169 10.8949Z",fill:"currentColor"}))}function S9(t="icon-sm"){return m("svg",{className:t,width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":!0},m("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.99944 7.24939C11.5169 7.2495 12.7473 8.47995 12.7475 9.99744C12.7475 11.5151 11.517 12.7454 9.99944 12.7455C8.48176 12.7455 7.2514 11.5151 7.2514 9.99744C7.25155 8.47988 8.48186 7.24939 9.99944 7.24939ZM9.99944 8.57947C9.2164 8.57947 8.58163 9.21442 8.58148 9.99744C8.58148 10.7806 9.2163 11.4154 9.99944 11.4154C10.7825 11.4153 11.4174 10.7805 11.4174 9.99744C11.4173 9.21449 10.7824 8.57958 9.99944 8.57947Z",fill:"currentColor"}),m("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.6391 1.67517C11.2939 1.67532 11.8991 2.02577 12.226 2.59314L13.2485 4.36755H15.2963C15.9505 4.36758 16.555 4.71709 16.8823 5.28357L17.5219 6.39001C17.8489 6.95668 17.8481 7.65542 17.5209 8.22205L16.4975 9.99451L17.5239 11.7689C17.8519 12.3357 17.8521 13.0347 17.5248 13.6019L16.8862 14.7084C16.559 15.2747 15.9543 15.6243 15.3002 15.6244H13.2514L12.2299 17.3988C11.9029 17.9663 11.297 18.3168 10.642 18.3168L9.3637 18.3158C8.71064 18.3155 8.10718 17.9678 7.77972 17.4027L6.74847 15.6234L4.69964 15.6244C4.04558 15.6242 3.44087 15.2747 3.1137 14.7084L2.47503 13.6019C2.14791 13.0349 2.14836 12.3366 2.47601 11.7699L3.50237 9.99548L2.47894 8.22205C2.15175 7.65533 2.15174 6.95673 2.47894 6.39001L3.11761 5.28259C3.44458 4.71663 4.04894 4.36813 4.70257 4.36755L6.75042 4.36658L7.77581 2.59119C8.10301 2.02476 8.7076 1.67527 9.36175 1.67517H10.6391ZM9.36273 3.00623C9.1835 3.00623 9.01679 3.10199 8.92718 3.2572L7.82659 5.16345C7.63652 5.49253 7.28473 5.69529 6.90472 5.69568L4.70355 5.69763C4.52451 5.69782 4.3585 5.79355 4.26898 5.94861L3.6303 7.05505C3.54091 7.2102 3.54077 7.40192 3.6303 7.55701L4.73089 9.46326C4.92108 9.7929 4.92135 10.1992 4.73089 10.5287L3.62737 12.4359C3.5378 12.591 3.53792 12.7817 3.62737 12.9369L4.26605 14.0433C4.35567 14.1982 4.52067 14.2932 4.69964 14.2933L6.90276 14.2943C7.28242 14.2946 7.63335 14.497 7.82366 14.8256L8.93011 16.7357C9.01984 16.8905 9.18578 16.9857 9.36468 16.9857H10.642C10.8213 16.9857 10.987 16.89 11.0766 16.7347L12.1752 14.8275C12.3653 14.4975 12.7182 14.2943 13.0991 14.2943H15.3002C15.4794 14.2942 15.6452 14.1985 15.7348 14.0433L16.3725 12.9379C16.4621 12.7826 16.4621 12.5911 16.3725 12.4359L15.27 10.5287C15.1032 10.2404 15.0808 9.89331 15.2055 9.59021L15.269 9.46326L16.3696 7.55701C16.4591 7.40189 16.459 7.21022 16.3696 7.05505L15.7309 5.94861C15.6412 5.79363 15.4754 5.69863 15.2963 5.69861L13.0951 5.69763L12.9535 5.68884C12.6751 5.65158 12.4217 5.50519 12.2504 5.28259L12.1723 5.16443L11.0737 3.2572C10.9841 3.10175 10.8175 3.00525 10.6381 3.00525L9.36273 3.00623Z",fill:"currentColor"}))}function O3(t="icon-sm"){return m("svg",{className:t,width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":!0},m("path",{d:"M10.6878 9.46029L10.8421 9.49545L17.2913 11.43L17.4642 11.4974C18.2215 11.8649 18.2705 12.9544 17.5492 13.388L17.3822 13.4701L14.5872 14.5872L13.4701 17.3822C13.1135 18.2734 11.8913 18.2756 11.4974 17.4642L11.43 17.2913L9.49544 10.8421C9.26342 10.0687 9.92452 9.34418 10.6878 9.46029ZM12.4984 16.2288L13.3929 13.9954L13.4388 13.8949C13.5579 13.6675 13.7549 13.4891 13.9954 13.3929L16.2288 12.4984L10.9007 10.9007L12.4984 16.2288ZM5.90365 12.9749C6.16329 12.7153 6.58436 12.7154 6.84408 12.9749C7.10378 13.2346 7.10378 13.6557 6.84408 13.9154L5.0765 15.6829C4.8168 15.9426 4.39577 15.9426 4.13607 15.6829C3.87654 15.4232 3.87643 15.0022 4.13607 14.7425L5.90365 12.9749ZM2.83724 7.3265L5.25228 7.97299L5.37826 8.02084C5.65484 8.1591 5.80597 8.47712 5.72298 8.78744C5.63984 9.09774 5.34997 9.298 5.04134 9.27963L4.90853 9.25814L2.49349 8.61068L2.36752 8.56283C2.09082 8.42452 1.93961 8.10666 2.02279 7.79623C2.10599 7.4859 2.39574 7.28652 2.70443 7.30502L2.83724 7.3265ZM14.847 4.05111C15.1051 3.88059 15.4556 3.90894 15.6829 4.13607C15.9426 4.39577 15.9426 4.8168 15.6829 5.0765L13.9154 6.84408C13.6557 7.10378 13.2346 7.10378 12.9749 6.84408C12.7154 6.58437 12.7153 6.16329 12.9749 5.90365L14.7425 4.13607L14.847 4.05111ZM7.79623 2.02279C8.15098 1.92773 8.51562 2.13874 8.61068 2.49349L9.25814 4.90853L9.27962 5.04135C9.298 5.34998 9.09774 5.63984 8.78744 5.72299C8.47713 5.80592 8.15908 5.65484 8.02084 5.37826L7.97298 5.25228L7.3265 2.83724L7.30502 2.70443C7.28652 2.39577 7.48595 2.10603 7.79623 2.02279Z",fill:"currentColor"}))}var A3=document.getElementById("root");A3&&(Ff(),(0,k3.createRoot)(A3).render(D3.default.createElement(M3))); /*! Bundled license information: diff --git a/Resources/agent-session-react/index.html b/Resources/agent-session-react/index.html index 90ee6b008451..69f427859ca1 100644 --- a/Resources/agent-session-react/index.html +++ b/Resources/agent-session-react/index.html @@ -24,15 +24,15 @@ diff --git a/Resources/markdown-viewer/webviews-app/chunks/diffSurface.mjs b/Resources/markdown-viewer/webviews-app/chunks/diffSurface.mjs index 177d67e29494..ce1e5e9b34f9 100644 --- a/Resources/markdown-viewer/webviews-app/chunks/diffSurface.mjs +++ b/Resources/markdown-viewer/webviews-app/chunks/diffSurface.mjs @@ -150,4 +150,4 @@ ${o} background-color: light-dark(#ff9632, #e8821e); color: #1a1208; } -`;function Ot(){return typeof CSS<"u"&&"highlights"in CSS&&typeof Highlight=="function"}function At(){Ot()&&(CSS.highlights.delete(Qe),CSS.highlights.delete(Xe))}function Je(t,e=[]){for(const n of t.querySelectorAll("*")){const r=n.shadowRoot;r!=null&&(e.push(r),Je(r,e))}return e}const bt="[data-line-type]:is([data-line], [data-no-newline])";function Yr(t,e){const n=Array.from(t.querySelectorAll(bt));for(const r of e)n.push(...Array.from(r.querySelectorAll(bt)));return n}const Qr="[data-gutter], [data-gutter-buffer], [data-line-annotation], [data-gutter-utility-slot]";function Xr(t){const e=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode(o){const a=o.parentElement;return a==null||a.closest(Qr)!=null?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),n=[],r=[];let i="";for(let o=e.nextNode();o!=null;o=e.nextNode())n.push(o),r.push(i.length),i+=o.textContent??"";return{nodes:n,offsets:r,text:i}}function Jr(t,e,n){const r=(l,f)=>{for(let c=t.nodes.length-1;c>=0;c-=1){const d=t.offsets[c],u=t.nodes[c].textContent?.length??0;if(f?l>d&&l<=d+u:l>=d&&l(d.getAttribute("data-line")===i||d.getAttribute("data-alt-line")===i)&&Zr(d,r.side));if(o.length===0)return null;if(o.length===1)return o[0];const a=n.activeItemSpan;if(a!=null){const d=o.filter(u=>{const x=vt(u,t);return x>=a.top-1&&x=1)return d[0]}const l=t.scrollTop+t.clientHeight/2;let f=null,c=Number.POSITIVE_INFINITY;for(const d of o){const u=Math.abs(vt(d,t)-l);u{if(!(a.has(p)||typeof CSSStyleSheet!="function"))try{o??=(()=>{const h=new CSSStyleSheet;return h.replaceSync(Kr),h})(),p.adoptedStyleSheets=[...p.adoptedStyleSheets,o],a.add(p)}catch{}},c=new MutationObserver(()=>x()),d=()=>{const p=Je(e);for(const h of p)f(h),l.has(h)||(c.observe(h,{childList:!0,subtree:!0,characterData:!0}),l.add(h));return p},u=()=>{if(r=null,i)return;const p=d();ni(e,n(),p)},x=()=>{r==null&&!i&&(r=requestAnimationFrame(u))};return f(document),e.addEventListener("scroll",x,{passive:!0}),c.observe(e,{childList:!0,subtree:!0,characterData:!0}),d(),{repaint:x,dispose(){i=!0,r!=null&&(cancelAnimationFrame(r),r=null),e.removeEventListener("scroll",x),c.disconnect(),At()}}}function ii(t){const e=E.c(50),{items:n,open:r,query:i,dispatch:o,codeViewRef:a,viewerContainerRef:l}=t;let f;e[0]!==r||e[1]!==i?(f=r?i.toLowerCase():"",e[0]=r,e[1]=i,e[2]=f):f=e[2];const c=f;let d;e[3]!==n||e[4]!==c?(d=c===""?[]:Hr(n,c),e[3]=n,e[4]=c,e[5]=d):d=e[5];const u=d,[x,p]=S.useState(0),h=S.useRef(0),m=S.useRef(null),g=S.useRef(""),b=S.useRef(null),v=S.useRef(!1);let w;e[6]===Symbol.for("react.memo_cache_sentinel")?(w={query:"",active:null,activeItemSpan:null},e[6]=w):w=e[6];const k=S.useRef(w),C=u.length===0?0:Math.min(x,u.length-1),M=u[C]??null;let R;e[7]!==a?(R=$=>{a.current?.scrollTo({type:"line",id:$.itemId,lineNumber:$.lineNumber,side:$.side,align:"center",behavior:"instant"})},e[7]=a,e[8]=R):R=e[8];const j=R;let I;e[9]!==a||e[10]!==n?(I=$=>{const y=a.current?.getInstance();if(y==null)return null;const F=y.getTopForItem($.itemId);if(typeof F!="number")return null;let _=Number.POSITIVE_INFINITY;const Y=n.findIndex(q=>q.id===$.itemId);for(let q=Y+1;q>=0&&qF){_=ee;break}}return{top:F,bottom:_}},e[9]=a,e[10]=n,e[11]=I):I=e[11];const P=I;let L,U;e[12]!==u||e[13]!==c||e[14]!==j?(L=()=>{const $=g.current!==c;g.current=c;const y=qr(m.current,u,h.current);if(y!==h.current&&p(y),$){const F=u[y];F!=null&&j(F)}},U=[u,c,j],e[12]=u,e[13]=c,e[14]=j,e[15]=L,e[16]=U):(L=e[15],U=e[16]),S.useEffect(L,U);let O;e[17]!==l?(O=()=>{if(!v.current||b.current!=null)return;const $=l.current;$!=null&&(b.current=ri({container:$,getSnapshot:()=>k.current}),b.current.repaint())},e[17]=l,e[18]=O):O=e[18];const T=O;let z,W;e[19]!==P||e[20]!==M||e[21]!==C||e[22]!==T||e[23]!==c?(z=()=>{h.current=C,m.current=M,k.current={query:c,active:M,activeItemSpan:M==null?null:P(M)},T(),b.current?.repaint()},W=[c,C,M,P,T],e[19]=P,e[20]=M,e[21]=C,e[22]=T,e[23]=c,e[24]=z,e[25]=W):(z=e[24],W=e[25]),S.useEffect(z,W);let Q;e[26]!==T?(Q=$=>{v.current=$!=null,$!=null?T():(b.current?.dispose(),b.current=null)},e[26]=T,e[27]=Q):Q=e[27];const G=Q;let H;e[28]!==u||e[29]!==j?(H=$=>{const y=u[$];y!=null&&(p($),j(y))},e[28]=u,e[29]=j,e[30]=H):H=e[30];const B=H;let D;e[31]!==B||e[32]!==u.length?(D=()=>{u.length>0&&B((h.current+1)%u.length)},e[31]=B,e[32]=u.length,e[33]=D):D=e[33];const K=D;let N;e[34]!==B||e[35]!==u.length?(N=()=>{u.length>0&&B((h.current-1+u.length)%u.length)},e[34]=B,e[35]=u.length,e[36]=N):N=e[36];const X=N;let J;e[37]!==o?(J=$=>{o({type:"set-find-query",query:$})},e[37]=o,e[38]=J):J=e[38];const te=J;let Z;e[39]!==o?(Z=()=>{o({type:"set-find-open",open:!1})},e[39]=o,e[40]=Z):Z=e[40];const ne=Z;let re;return e[41]!==M||e[42]!==C||e[43]!==ne||e[44]!==G||e[45]!==K||e[46]!==X||e[47]!==u||e[48]!==te?(re={matches:u,activeIndex:C,activeMatch:M,setQuery:te,goToNext:K,goToPrevious:X,closeFind:ne,findBarRef:G},e[41]=M,e[42]=C,e[43]=ne,e[44]=G,e[45]=K,e[46]=X,e[47]=u,e[48]=te,e[49]=re):re=e[49],re}function oi(t,e){const n=E.c(4);let r,i;n[0]!==e||n[1]!==t?(r=()=>{const o=a=>{const l=a.metaKey||a.ctrlKey,f=a.key.toLowerCase();if(l&&!a.shiftKey&&!a.altKey&&f==="f"){a.preventDefault(),t({type:"request-find"});return}const c=e.current;if(c.open){if(l&&!a.altKey&&f==="g"){a.preventDefault(),a.shiftKey?c.controller.goToPrevious():c.controller.goToNext();return}if(a.key==="Escape"){const d=a.target;d instanceof Element&&d.closest("#viewer, #diff-find-bar")!=null&&c.controller.closeFind()}}};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},i=[t,e],n[0]=e,n[1]=t,n[2]=r,n[3]=i):(r=n[2],i=n[3]),S.useEffect(r,i)}const ai=/\b(Android|iPhone|iPad|iPod|Mobile)\b/i;function si(t){return ai.test(t??"")?1:3}function li(){return si(typeof navigator>"u"?void 0:navigator.userAgent)}const zt=new URL("./diff-worker.mjs",import.meta.url);function De(t,e){e&&(e.dataset.cmuxDiffWorkerUrl=t.workerURL,e.dataset.cmuxDiffWorkersCreated=String(t.created),e.dataset.cmuxDiffWorkerMessages=String(t.messages),e.dataset.cmuxDiffWorkerErrors=String(t.errors))}function ci(t){return{workerURL:t.href,created:0,messages:0,errors:0}}const di=ci(zt);function fi(){return typeof document>"u"?void 0:document.documentElement}function ui(t=zt,e=di,n=Worker,r=fi()){return{poolSize:li(),workerFactory:()=>{const i=new n(t,{type:"module"});return e&&(e.created+=1,De(e,r),i.addEventListener("message",()=>{e.messages+=1,De(e,r)}),i.addEventListener("error",()=>{e.errors+=1,De(e,r)})),i}}}const wt=new Set,pi="00000000-0000-0000-0000-000000000000",mi=["82%","64%","76%","58%","70%","46%"],hi=["58%","88%","72%","94%","64%","82%","52%","78%"];function gi(t,e){const n=t.payload??{},{layout:r,...i}=be(n.viewerOptions);return{activeItemId:"",activeTreePath:"",comments:[],copyFeedback:"",draft:null,fileSearchOpen:!1,fileSearchRequest:0,filesWidth:252,filesVisible:!0,findOpen:!1,findQuery:"",findRequest:0,items:[],languages:["text"],metrics:null,options:{collapsed:!1,diffIndicators:"bars",expandUnchanged:!1,lineNumbers:!0,showBackgrounds:!0,wordDiffs:!1,wordWrap:!1,...i,layout:Ii(n)},optionsOpen:!1,renderGeneration:0,status:e,treeSource:null}}function xi(t,e){switch(e.type){case"apply-persisted-options":{const{layout:n,...r}=e.prefs;return{...t,options:{...t.options,...r,...e.allowLayout&&n!=null?{layout:n}:{}}}}case"refresh":return{...t,activeItemId:"",activeTreePath:"",draft:null,items:[],languages:["text"],metrics:null,renderGeneration:t.renderGeneration+1,status:e.status,treeSource:null};case"append-items":{const n=e.items.map(i=>{fo(i);const o=nr(i,t.comments,t.draft);return t.options.collapsed?{...o,collapsed:!0}:o}),r=po(t.languages,n.flatMap(uo));return{...t,activeItemId:t.activeItemId||n[0]?.id||"",items:[...t.items,...n],languages:r,status:t.status.loading?se("",{loading:!1}):t.status}}case"reset-diff":return{...t,activeItemId:"",activeTreePath:"",draft:null,items:[],languages:["text"],metrics:null,status:e.status,treeSource:null};case"remove-comment":{const n=t.comments.filter(r=>r.id!==e.id);return{...t,comments:n,items:Ie(t.items,n,t.draft)}}case"rename-item":return{...t,activeItemId:t.activeItemId===e.oldId?e.newId:t.activeItemId,draft:t.draft?.itemId===e.oldId?{...t.draft,itemId:e.newId}:t.draft,items:t.items.map(n=>n.id===e.oldId||n.id===e.newId?{...n,id:e.newId,version:(n.version??0)+1}:n)};case"set-active-item":return{...t,activeItemId:e.itemId,activeTreePath:e.treePath??t.activeTreePath};case"replace-comments":return{...t,comments:e.comments,draft:null,items:Ie(t.items,e.comments,null)};case"set-copy-feedback":return{...t,copyFeedback:e.message};case"set-draft":return{...t,draft:e.draft,items:Ie(t.items,t.comments,e.draft)};case"set-file-search-open":return{...t,fileSearchOpen:e.open,filesVisible:e.open?!0:t.filesVisible};case"request-file-search":return{...t,fileSearchOpen:!0,fileSearchRequest:t.fileSearchRequest+1,filesVisible:!0};case"set-find-open":return{...t,findOpen:e.open};case"set-find-query":return{...t,findQuery:e.query};case"request-find":return{...t,findOpen:!0,findRequest:t.findRequest+1};case"set-files-width":return{...t,filesWidth:e.width};case"set-files-visible":return{...t,filesVisible:e.visible};case"set-metrics":return{...t,metrics:e.metrics};case"set-option":return e.key==="collapsed"?{...t,options:{...t.options,collapsed:!!e.value},items:t.items.map(n=>({...n,collapsed:!!e.value,version:(n.version??0)+1}))}:{...t,options:{...t.options,[e.key]:e.value}};case"set-options-open":return{...t,optionsOpen:e.open};case"set-status":return{...t,status:e.status};case"set-tree-source":{const n=e.source,r=t.activeItemId?n.treePathByItemId.get(t.activeItemId)??t.activeTreePath:t.activeTreePath;return{...t,activeTreePath:r,treeSource:n}}case"upsert-comment":{const r=t.comments.some(i=>i.id===e.comment.id)?t.comments.map(i=>i.id===e.comment.id?e.comment:i):[...t.comments,e.comment];return{...t,comments:r,items:Ie(t.items,r,t.draft)}}}}function bi({config:t,initialStatus:e}){const n=t.payload??{},r=S.useMemo(()=>Et(n.labels,{assertMissing:_t()}),[n.labels]),i=We(n.appearance),o=yo(n.transport),[a,l]=S.useState(Le(n.sessionSource)?n.sessionSource:null),[f,c]=S.useState(a),d=S.useRef(new Map);a?.kind==="branch"&&!d.current.has(a.repoRoot)&&d.current.set(a.repoRoot,a);const[u,x]=S.useState(n.patchURL),[p,h]=S.useReducer(xi,gi(t,e)),m=Re(p),g=S.useRef(null),b=S.useRef(0),v=S.useRef(null),w=S.useRef(null),k=S.useRef(null),C=ui(),M=Cr(p.options,i,p.languages),R=typeof n.repoRoot=="string"&&n.repoRoot!==""?n.repoRoot:null,j=ve(f??a)??R;S.useEffect(()=>{const y=typeof n.title=="string"?n.title.trim():"";if(y==="")return;const F=f??a;if(F?.kind==="patch"){document.title=y;return}const _=ve(F)??R,Y=Array.isArray(n.repoOptions)?n.repoOptions.find(ee=>ee?.value===_):void 0,q=typeof Y?.label=="string"?Y.label.trim():"";document.title=q===""?y:`${y} — ${q}`},[a,n.repoOptions,n.title,R,f]);const I=qe()&&j!=null,P=dr(n),L=wi({bridgeAvailable:I,dispatch:h,latestState:m,repoRoot:j}),U=Ir(p.options,i);U.onGutterUtilityClick=L.onGutterUtilityClick;const O=S.useCallback(()=>{const y=w.current;return o?y?(w.current=null,o.request({method:"sessionClose",params:y}).then(()=>{}).catch(()=>{w.current||(w.current=y)})):typeof n.capabilityToken!="string"?Promise.resolve():$t(o,{sessionId:pi,capabilityToken:n.capabilityToken}):Promise.resolve()},[n.capabilityToken,o]),T=S.useCallback(y=>{y.kind==="branch"&&d.current.set(y.repoRoot,y),c(y)},[]);go(p),mo(n,r,h,o),ao(t,o,r,h,m,x,w,O,a,T,p.renderGeneration),Mi(n,h),ur(I?j:null,L.onLoaded),bo(p.optionsOpen,h),wo(p.fileSearchOpen,h);const z=(y,F)=>{const _=y.metadata;return _.kind==="draft"?s.jsx(Rt,{labels:P,onCancel:()=>h({type:"set-draft",draft:null}),onSave:Y=>L.saveDraft(F,Y)}):s.jsx(fr,{comment:_.comment,labels:P,onDelete:()=>L.remove(_.comment),onSaveMessage:Y=>L.editMessage(_.comment,Y,F.fileDiff)})},W=Number.isFinite(p.metrics?.completedAt)&&(p.metrics?.completedAt??0)>0,Q=rr(p.items,p.comments,W),G=y=>{y.itemId!=null&&(y.anchor.state==="outdated"?g.current?.scrollTo({type:"item",id:y.itemId,align:"start",behavior:"smooth-auto"}):g.current?.scrollTo({type:"line",id:y.itemId,lineNumber:y.anchor.line,side:y.comment.side,align:"center",behavior:"smooth-auto"}),h({type:"set-active-item",itemId:y.itemId,treePath:p.treeSource?.treePathByItemId.get(y.itemId)}))},H=p.treeSource?.treePathByItemId.get(p.activeItemId)??p.activeTreePath,B=S.useRef(-1),D=S.useCallback(y=>{const F=m.current,_=ko(y,F.items);_&&(B.current=-1,g.current?.scrollTo({type:"item",id:_,align:"start",behavior:"smooth-auto"}),h({type:"set-active-item",itemId:_,treePath:F.treeSource?.treePathByItemId.get(_)}))},[m]),K=S.useCallback(y=>{const F=m.current,_=jo(F.items,b.current,q=>g.current?.getInstance()?.getTopForItem(q)),Y=So(_||F.activeItemId,F.items,y);Y&&D(Y)},[m,D]),N=S.useCallback(y=>{const F=m.current,_=_r(F.items),Y=Er(_,B.current,F.activeItemId,y);if(Y<0)return;const q=_[Y];B.current=Y,g.current?.scrollTo({type:"line",id:q.itemId,lineNumber:q.lineNumber,side:q.side,align:"center",behavior:"smooth-auto"}),h({type:"set-active-item",itemId:q.itemId,treePath:F.treeSource?.treePathByItemId.get(q.itemId)})},[m]),X=S.useCallback(y=>{b.current=y},[]),J=ii({items:p.items,open:p.findOpen,query:p.findQuery,dispatch:h,codeViewRef:g,viewerContainerRef:k}),te=Re({open:p.findOpen,controller:J});oi(h,te),xo(k,h,K,N,te);const Z=y=>{xe(y),h({type:"set-status",status:y})},ne=y=>{xt({layout:y}),h({type:"set-option",key:"layout",value:y})},re=(y,F)=>{h({type:"set-option",key:y,value:F}),y!=="collapsed"&&xt({[y]:F})},$=()=>{if(Vt(n,o,a)){O().then(()=>window.location.reload());return}B.current=-1;const y=se(r("loadingDiff"),{pending:!0});xe(y),h({type:"refresh",status:y}),x(void 0),O()};return s.jsxs("div",{id:"app","data-file-search-open":p.fileSearchOpen,children:[s.jsx(Li,{config:t,transport:o,label:r,onCopyGitApply:async()=>{try{const y=await ln(u,r,v.current);h({type:"set-copy-feedback",message:y})}catch{h({type:"set-copy-feedback",message:r("copyFailedGitApplyCommand")})}},onJump:D,onNavigate:y=>{Z(se(r("loadingDiff"),{pending:!0})),O(),window.location.href=an(y)},activeSessionSource:f??a,onSelectSessionSource:y=>{const F=f??a,_=y.kind==="branch"&&(F?.kind!=="branch"||y.baseRef==null)?d.current.get(y.repoRoot)??y:y;_.kind==="branch"&&d.current.set(_.repoRoot,_);const Y=se(r("loadingDiff"),{pending:!0});xe(Y),h({type:"reset-diff",status:Y}),x(void 0),O(),c(_),l(_)},onReload:$,onSetLayout:ne,onSetOption:re,dispatch:h,state:p}),s.jsxs("section",{id:"content",style:{"--cmux-diff-files-width":`${p.filesWidth}px`},children:[s.jsx(vi,{label:r,onClose:()=>et(h),open:p.fileSearchOpen}),s.jsx(Wi,{commentEntries:Q,commentLabels:P,hasDraft:p.draft!=null,label:r,onSelectComment:G,onSelectItem:D,selectedPath:H,dispatch:h,state:p}),s.jsxs("main",{id:"viewer","aria-label":r("diffViewer"),children:[p.findOpen?s.jsx(Ur,{controller:J,label:r,query:p.findQuery,requestToken:p.findRequest}):null,p.items.length>0?s.jsxs(qt,{poolOptions:C,highlighterOptions:M,children:[s.jsx(Ri,{codeViewRef:g,highlighterOptions:M}),s.jsx(Kt,{ref:g,className:"code-view-root",containerRef:k,items:p.items,onScroll:X,options:U,renderHeaderMetadata:y=>s.jsx(_n,{fileDiff:y.fileDiff,label:r}),renderAnnotation:(y,F)=>z(y,F)})]}):null]}),s.jsx(Qi,{label:r,status:p.status})]}),s.jsx("textarea",{ref:v,"aria-hidden":"true",readOnly:!0,tabIndex:-1,className:"copy-fallback-textarea"})]})}function vi(t){const e=E.c(8),{label:n,onClose:r,open:i}=t;if(!i)return null;let o;e[0]!==n?(o=n("hideFileSearch"),e[0]=n,e[1]=o):o=e[1];let a;e[2]!==n?(a=n("hideFileSearch"),e[2]=n,e[3]=a):a=e[3];let l;return e[4]!==r||e[5]!==o||e[6]!==a?(l=s.jsx("button",{id:"files-sidebar-backdrop",type:"button","aria-controls":"files-sidebar","aria-label":o,title:a,onClick:r}),e[4]=r,e[5]=o,e[6]=a,e[7]=l):l=e[7],l}function wi(t){const e=E.c(26),{bridgeAvailable:n,dispatch:r,latestState:i,repoRoot:o}=t,a=Re(o);let l;e[0]!==r?(l=v=>r({type:"replace-comments",comments:v}),e[0]=r,e[1]=l):l=e[1];const f=l;let c;e[2]!==r?(c=(v,w)=>{const k=v.side==="deletions"?"deletions":"additions";r({type:"set-draft",draft:{itemId:w.item.id,side:k,startLine:Math.min(v.start,v.end),endLine:Math.max(v.start,v.end)}})},e[2]=r,e[3]=c):c=e[3];const d=c;let u;e[4]!==a||e[5]!==n||e[6]!==r||e[7]!==i||e[8]!==o?(u=(v,w)=>{const k=i.current.draft;if(k==null||k.itemId!==v.id||w.trim()==="")return;const C={filePath:pe(v.fileDiff,""),side:k.side,startLine:k.startLine,endLine:k.endLine,lineText:Ue(v.fileDiff,k.side,k.endLine)??"",message:w},M={...C,submissionText:ut(C,v.fileDiff)};(n&&o!=null?ft(o,M):Promise.resolve(ji(M))).then(j=>{a.current===o&&(r({type:"upsert-comment",comment:j}),r({type:"set-draft",draft:null}))}).catch(Si)},e[4]=a,e[5]=n,e[6]=r,e[7]=i,e[8]=o,e[9]=u):u=e[9];const x=u;let p;e[10]!==a||e[11]!==n||e[12]!==r||e[13]!==o?(p=(v,w,k)=>{if(w.trim()==="")return;const C={...v,message:w,updatedAt:new Date().toISOString()},M={...C,submissionText:ut(C,k)};(n&&o!=null?ft(o,M):Promise.resolve(M)).then(j=>{a.current===o&&r({type:"upsert-comment",comment:j})}).catch(ki)},e[10]=a,e[11]=n,e[12]=r,e[13]=o,e[14]=p):p=e[14];const h=p;let m;e[15]!==a||e[16]!==n||e[17]!==r||e[18]!==o?(m=v=>{const w=o;n&&o!=null&&or(o,v.id).catch(yi),a.current===w&&r({type:"remove-comment",id:v.id})},e[15]=a,e[16]=n,e[17]=r,e[18]=o,e[19]=m):m=e[19];const g=m;let b;return e[20]!==h||e[21]!==d||e[22]!==f||e[23]!==g||e[24]!==x?(b={editMessage:h,onGutterUtilityClick:d,onLoaded:f,remove:g,saveDraft:x},e[20]=h,e[21]=d,e[22]=f,e[23]=g,e[24]=x,e[25]=b):b=e[25],b}function yi(t){return console.warn("cmux diff comment delete failed",t)}function ki(t){return console.warn("cmux diff comment edit failed",t)}function Si(t){return console.warn("cmux diff comment save failed",t)}function ji(t){const e=new Date().toISOString();return{...t,id:crypto.randomUUID(),createdAt:e,updatedAt:e}}function Ii(t){const e=Ci(t.layout);return t.layoutSource==="explicit"&&e?e:Ke().layout??e??"unified"}function Ci(t){return t==="split"||t==="unified"?t:null}function Mi(t,e){const n=E.c(4),r=S.useRef(!1);let i,o;n[0]!==e||n[1]!==t?(i=()=>{r.current||(r.current=!0,Dr().then(a=>{e({type:"apply-persisted-options",prefs:a,allowLayout:t.layoutSource!=="explicit"})}).catch(Pi))},o=[e,t],n[0]=e,n[1]=t,n[2]=i,n[3]=o):(i=n[2],o=n[3]),S.useEffect(i,o)}function Pi(){}function Ri(t){const{codeViewRef:e,highlighterOptions:n}=t;return Xi(n,e),null}function Li(t){const e=E.c(71),{activeSessionSource:n,config:r,dispatch:i,label:o,onCopyGitApply:a,onJump:l,onNavigate:f,onSelectSessionSource:c,onReload:d,onSetLayout:u,onSetOption:x,state:p,transport:h}=t;let m;e[0]!==r.payload?(m=r.payload??{},e[0]=r.payload,e[1]=m):m=e[1];const g=m,b=typeof g.externalURL=="string"&&g.externalURL.length>0?g.externalURL:null,v=S.useRef(null),w=Nr(v);let k;if(e[2]!==b||e[3]!==g||e[4]!==w){const X=[{id:"files-toggle",width:Oe},{id:"layout-toggle",width:Oe},...b?[{id:"external-link",width:Oe}]:[]];k=w==null?new Set:new Set(Fr({available:w,reserved:Ti+(Ni(g)?Fi:0),items:X}).overflow),e[2]=b,e[3]=g,e[4]=w,e[5]=k}else k=e[5];const C=k,M=!C.has("files-toggle"),R=!C.has("layout-toggle"),j=b!=null&&!C.has("external-link");let I;e[6]!==n||e[7]!==o||e[8]!==f||e[9]!==c||e[10]!==g||e[11]!==h?(I=s.jsx(_i,{activeSessionSource:n,label:o,onNavigate:f,onSelectSessionSource:c,payload:g,transport:h}),e[6]=n,e[7]=o,e[8]=f,e[9]=c,e[10]=g,e[11]=h,e[12]=I):I=e[12];let P;e[13]!==i?(P=()=>i({type:"set-file-search-open",open:!0}),e[13]=i,e[14]=P):P=e[14];let L;e[15]!==o||e[16]!==l||e[17]!==p.activeItemId||e[18]!==p.fileSearchOpen||e[19]!==p.items||e[20]!==P?(L=s.jsx("div",{className:"toolbar-middle flex min-w-0 flex-1 items-center justify-center gap-1.5",children:s.jsx($i,{items:p.items,label:o,onJump:l,onOpenSearch:P,searchOpen:p.fileSearchOpen,selectedItemId:p.activeItemId})}),e[15]=o,e[16]=l,e[17]=p.activeItemId,e[18]=p.fileSearchOpen,e[19]=p.items,e[20]=P,e[21]=L):L=e[21];let U;e[22]!==b||e[23]!==o||e[24]!==j?(U=j?s.jsx("a",{id:"external-link",className:"toolbar-icon",href:b??void 0,target:"_blank",rel:"noreferrer",title:o("openSourceURL"),"aria-label":o("openSourceURL"),children:s.jsx(ie,{name:"external"})}):null,e[22]=b,e[23]=o,e[24]=j,e[25]=U):U=e[25];let O;e[26]!==o||e[27]!==u||e[28]!==R||e[29]!==p.options?(O=R?s.jsx("button",{id:"layout-toggle",className:"toolbar-icon",type:"button",title:p.options.layout==="split"?o("switchToUnifiedDiff"):o("switchToSplitDiff"),"aria-label":p.options.layout==="split"?o("switchToUnifiedDiff"):o("switchToSplitDiff"),onClick:()=>u(p.options.layout==="split"?"unified":"split"),children:s.jsx(ie,{name:p.options.layout})}):null,e[26]=o,e[27]=u,e[28]=R,e[29]=p.options,e[30]=O):O=e[30];let T;e[31]!==o?(T=o("options"),e[31]=o,e[32]=T):T=e[32];let z;e[33]!==o?(z=o("options"),e[33]=o,e[34]=z):z=e[34];let W;e[35]!==i||e[36]!==p.optionsOpen?(W=()=>i({type:"set-options-open",open:!p.optionsOpen}),e[35]=i,e[36]=p.optionsOpen,e[37]=W):W=e[37];let Q;e[38]===Symbol.for("react.memo_cache_sentinel")?(Q=s.jsx(ie,{name:"dots"}),e[38]=Q):Q=e[38];let G;e[39]!==p.optionsOpen||e[40]!==W||e[41]!==T||e[42]!==z?(G=s.jsx("button",{id:"options-button",className:"toolbar-icon",type:"button",title:T,"aria-label":z,"aria-expanded":p.optionsOpen,"aria-controls":"options-menu",onClick:W,children:Q}),e[39]=p.optionsOpen,e[40]=W,e[41]=T,e[42]=z,e[43]=G):G=e[43];let H;e[44]!==i||e[45]!==o||e[46]!==M||e[47]!==p.filesVisible?(H=M?s.jsx("button",{id:"files-toggle",className:"toolbar-icon",type:"button",title:p.filesVisible?o("hideFiles"):o("showFiles"),"aria-label":p.filesVisible?o("hideFiles"):o("showFiles"),"aria-pressed":p.filesVisible,onClick:()=>i({type:"set-files-visible",visible:!p.filesVisible}),children:s.jsx(ie,{name:"files"})}):null,e[44]=i,e[45]=o,e[46]=M,e[47]=p.filesVisible,e[48]=H):H=e[48];let B;e[49]!==p.copyFeedback?(B=s.jsx("span",{id:"copy-feedback",className:"visually-hidden","aria-live":"polite",children:p.copyFeedback}),e[49]=p.copyFeedback,e[50]=B):B=e[50];let D;e[51]!==G||e[52]!==H||e[53]!==B||e[54]!==U||e[55]!==O?(D=s.jsxs("div",{className:"toolbar-actions flex items-center gap-1.5",children:[U,O,G,H,B]}),e[51]=G,e[52]=H,e[53]=B,e[54]=U,e[55]=O,e[56]=D):D=e[56];let K;e[57]!==i||e[58]!==b||e[59]!==o||e[60]!==a||e[61]!==d||e[62]!==u||e[63]!==x||e[64]!==p?(K=p.optionsOpen?s.jsx(Vi,{dispatch:i,externalURL:b,label:o,onCopyGitApply:a,onReload:d,onSetLayout:u,onSetOption:x,state:p}):null,e[57]=i,e[58]=b,e[59]=o,e[60]=a,e[61]=d,e[62]=u,e[63]=x,e[64]=p,e[65]=K):K=e[65];let N;return e[66]!==D||e[67]!==K||e[68]!==I||e[69]!==L?(N=s.jsxs("header",{id:"toolbar",ref:v,children:[I,L,D,K]}),e[66]=D,e[67]=K,e[68]=I,e[69]=L,e[70]=N):N=e[70],N}const Oe=28,Ti=248,Fi=60;function Ni(t){return Array.isArray(t?.repoOptions)&&t.repoOptions.length>=2}function _i(t){const e=E.c(31),{activeSessionSource:n,label:r,onNavigate:i,onSelectSessionSource:o,payload:a,transport:l}=t;let f;e[0]!==r?(f=r("diffTarget"),e[0]=r,e[1]=f):f=e[1];const c=a.sourceOptions;let d;e[2]!==n||e[3]!==o?(d=g=>o(lo(g,n)),e[2]=n,e[3]=o,e[4]=d):d=e[4];let u;e[5]!==n?(u=so(n),e[5]=n,e[6]=u):u=e[6];let x;e[7]!==i||e[8]!==a.sourceOptions||e[9]!==f||e[10]!==d||e[11]!==u?(x=s.jsx($e,{ariaLabel:f,fallbackValue:"",id:"source-select",options:c,onNavigate:i,onSelectSessionSource:d,selectedValue:u}),e[7]=i,e[8]=a.sourceOptions,e[9]=f,e[10]=d,e[11]=u,e[12]=x):x=e[12];let p;e[13]!==n||e[14]!==r||e[15]!==i||e[16]!==o||e[17]!==a.repoOptions||e[18]!==a.repoRoot?(p=n?.kind!=="patch"?s.jsx($e,{ariaLabel:r("repoPath"),fallbackValue:a.repoRoot??"",id:"repo-select",options:a.repoOptions,onNavigate:i,onSelectSessionSource:g=>o(co(g,n)),selectedOptionTitle:!0,selectedValue:ve(n)}):null,e[13]=n,e[14]=r,e[15]=i,e[16]=o,e[17]=a.repoOptions,e[18]=a.repoRoot,e[19]=p):p=e[19];let h;e[20]!==n||e[21]!==r||e[22]!==i||e[23]!==o||e[24]!==a||e[25]!==l?(h=s.jsx(Ei,{activeSessionSource:n,label:r,onNavigate:i,onSelectSessionSource:o,payload:a,transport:l}),e[20]=n,e[21]=r,e[22]=i,e[23]=o,e[24]=a,e[25]=l,e[26]=h):h=e[26];let m;return e[27]!==x||e[28]!==p||e[29]!==h?(m=s.jsxs("div",{className:"toolbar-left flex min-w-0 items-center gap-1.5",children:[x,p,h]}),e[27]=x,e[28]=p,e[29]=h,e[30]=m):m=e[30],m}function Ei(t){const e=E.c(29),{activeSessionSource:n,label:r,onNavigate:i,onSelectSessionSource:o,payload:a,transport:l}=t;if(n?.kind==="branch"&&l){const x=n.baseRef??"";let p,h,m;e[0]!==n.repoRoot||e[1]!==a.capabilityToken||e[2]!==x?(m={repoRoot:n.repoRoot,capabilityToken:a.capabilityToken,headRef:"HEAD",currentRef:x,currentReason:"",confidence:"high",aheadBehind:null,refsURL:"typed://branch-list",regenerateURLTemplate:"typed://branch-change/{ref}"},p=it,h=nt(m),e[0]=n.repoRoot,e[1]=a.capabilityToken,e[2]=x,e[3]=p,e[4]=h,e[5]=m):(p=e[3],h=e[4],m=e[5]);let g;e[6]!==n.repoRoot||e[7]!==o?(g=v=>o({kind:"branch",repoRoot:n.repoRoot,baseRef:v}),e[6]=n.repoRoot,e[7]=o,e[8]=g):g=e[8];let b;return e[9]!==p||e[10]!==r||e[11]!==i||e[12]!==h||e[13]!==g||e[14]!==l||e[15]!==m?(b=s.jsx(p,{label:r,onNavigate:i,onSelectBranchBase:g,picker:m,transport:l},h),e[9]=p,e[10]=r,e[11]=i,e[12]=h,e[13]=g,e[14]=l,e[15]=m,e[16]=b):b=e[16],b}let f;if(e[17]!==r||e[18]!==i||e[19]!==a||e[20]!==l){f=Symbol.for("react.early_return_sentinel");e:{const x=Bi(a);if(x){f=s.jsx(it,{label:r,onNavigate:i,picker:x,transport:l},nt(x));break e}}e[17]=r,e[18]=i,e[19]=a,e[20]=l,e[21]=f}else f=e[21];if(f!==Symbol.for("react.early_return_sentinel"))return f;let c;e[22]!==r?(c=r("branchBase"),e[22]=r,e[23]=c):c=e[23];const d=a.branchBaseRef??"";let u;return e[24]!==i||e[25]!==a.baseOptions||e[26]!==c||e[27]!==d?(u=s.jsx($e,{ariaLabel:c,fallbackValue:d,id:"base-select",options:a.baseOptions,onNavigate:i}),e[24]=i,e[25]=a.baseOptions,e[26]=c,e[27]=d,e[28]=u):u=e[28],u}function Bi(t){const e=t?.branchPicker;return Di(e)?e:null}function Di(t){return!!(t&&typeof t=="object"&&typeof t.refsURL=="string"&&t.refsURL!==""&&typeof t.regenerateURLTemplate=="string"&&t.regenerateURLTemplate!==""&&typeof t.currentRef=="string"&&typeof t.headRef=="string")}function $e(t){const e=E.c(22),{ariaLabel:n,fallbackValue:r,id:i,onNavigate:o,onSelectSessionSource:a,options:l,selectedOptionTitle:f,selectedValue:c}=t,d=f===void 0?!1:f;if(!Array.isArray(l)||l.length<2)return null;let u,x;e[0]!==n||e[1]!==r||e[2]!==l||e[3]!==d||e[4]!==c?(u=l.find(v=>v.value===c)??l.find(zi)??l.find(Ai),x=d?typeof u?.message=="string"&&u.message.trim()!==""?u.message:String(u?.value??r).trim()||n:n,e[0]=n,e[1]=r,e[2]=l,e[3]=d,e[4]=c,e[5]=u,e[6]=x):(u=e[5],x=e[6]);const p=x,h=u?.value??r;let m;e[7]!==r||e[8]!==o||e[9]!==a||e[10]!==l||e[11]!==u?.value?(m=v=>{const w=l.find(k=>k.value===v.currentTarget.value);if(Le(w?.sessionSource)&&a){a(w.sessionSource);return}if(!w?.url){v.currentTarget.value=u?.value??r;return}o(w.url)},e[7]=r,e[8]=o,e[9]=a,e[10]=l,e[11]=u?.value,e[12]=m):m=e[12];let g;e[13]!==l?(g=l.map(Oi),e[13]=l,e[14]=g):g=e[14];let b;return e[15]!==n||e[16]!==i||e[17]!==p||e[18]!==h||e[19]!==m||e[20]!==g?(b=s.jsx("select",{id:i,"aria-label":n,value:h,title:p,onChange:m,children:g}),e[15]=n,e[16]=i,e[17]=p,e[18]=h,e[19]=m,e[20]=g,e[21]=b):b=e[21],b}function Oi(t){return s.jsx("option",{value:t.value,disabled:t.disabled||!t.url&&!Le(t.sessionSource),title:t.message,children:t.label},t.value)}function Ai(t){return!t.disabled}function zi(t){return t.selected}function $i(t){const e=E.c(31),{items:n,label:r,onJump:i,onOpenSearch:o,searchOpen:a,selectedItemId:l}=t;if(n.length===0)return null;if(n.length>500){let h;e[0]!==r?(h=r("jumpToFile"),e[0]=r,e[1]=h):h=e[1];let m;e[2]!==r?(m=r("jumpToFile"),e[2]=r,e[3]=m):m=e[3];let g;e[4]!==r?(g=r("jumpToFile"),e[4]=r,e[5]=g):g=e[5];let b;return e[6]!==o||e[7]!==a||e[8]!==h||e[9]!==m||e[10]!==g?(b=s.jsx("button",{id:"jump-search-button",type:"button","aria-controls":"files-sidebar","aria-expanded":a,"aria-label":h,title:m,onClick:o,children:g}),e[6]=o,e[7]=a,e[8]=h,e[9]=m,e[10]=g,e[11]=b):b=e[11],b}let f;e[12]!==r?(f=r("jumpToFile"),e[12]=r,e[13]=f):f=e[13];let c;e[14]!==i?(c=h=>i(h.currentTarget.value),e[14]=i,e[15]=c):c=e[15];let d;e[16]!==r?(d=r("jumpToFile"),e[16]=r,e[17]=d):d=e[17];let u;e[18]!==d?(u=s.jsx("option",{value:"",children:d}),e[18]=d,e[19]=u):u=e[19];let x;if(e[20]!==n||e[21]!==r){let h;e[23]!==r?(h=m=>s.jsx("option",{value:m.id,children:pe(m.fileDiff,r("untitled"))},m.id),e[23]=r,e[24]=h):h=e[24],x=n.map(h),e[20]=n,e[21]=r,e[22]=x}else x=e[22];let p;return e[25]!==l||e[26]!==f||e[27]!==c||e[28]!==u||e[29]!==x?(p=s.jsxs("select",{id:"jump-select","aria-label":f,value:l,onChange:c,children:[u,x]}),e[25]=l,e[26]=f,e[27]=c,e[28]=u,e[29]=x,e[30]=p):p=e[30],p}function Vi(t){const e=E.c(137),{dispatch:n,externalURL:r,label:i,onCopyGitApply:o,onReload:a,onSetLayout:l,onSetOption:f,state:c}=t;let d;e[0]!==f||e[1]!==c.options?(d=V=>f(V,!c.options[V]),e[0]=f,e[1]=c.options,e[2]=d):d=e[2];const u=d;let x;e[3]!==i?(x=i("options"),e[3]=i,e[4]=x):x=e[4];let p;e[5]!==i?(p=i("refresh"),e[5]=i,e[6]=p):p=e[6];let h;e[7]!==a||e[8]!==p?(h=s.jsx(de,{icon:"refresh",label:p,onClick:a}),e[7]=a,e[8]=p,e[9]=h):h=e[9];let m;e[10]!==i||e[11]!==c.options.wordWrap?(m=c.options.wordWrap?i("disableWordWrap"):i("enableWordWrap"),e[10]=i,e[11]=c.options.wordWrap,e[12]=m):m=e[12];let g;e[13]!==u?(g=()=>u("wordWrap"),e[13]=u,e[14]=g):g=e[14];let b;e[15]!==c.options.wordWrap||e[16]!==m||e[17]!==g?(b=s.jsx(de,{checked:c.options.wordWrap,icon:"wrap",label:m,onClick:g}),e[15]=c.options.wordWrap,e[16]=m,e[17]=g,e[18]=b):b=e[18];const v=c.options.collapsed?"expand":"collapse";let w;e[19]!==i||e[20]!==c.options.collapsed?(w=c.options.collapsed?i("expandAllDiffs"):i("collapseAllDiffs"),e[19]=i,e[20]=c.options.collapsed,e[21]=w):w=e[21];let k;e[22]!==u?(k=()=>u("collapsed"),e[22]=u,e[23]=k):k=e[23];let C;e[24]!==c.options.collapsed||e[25]!==k||e[26]!==v||e[27]!==w?(C=s.jsx(de,{checked:c.options.collapsed,icon:v,label:w,onClick:k}),e[24]=c.options.collapsed,e[25]=k,e[26]=v,e[27]=w,e[28]=C):C=e[28];let M;e[29]===Symbol.for("react.memo_cache_sentinel")?(M=s.jsx("div",{className:"menu-separator"}),e[29]=M):M=e[29];let R;e[30]!==i||e[31]!==c.options.layout?(R=c.options.layout==="split"?i("switchToUnifiedDiff"):i("switchToSplitDiff"),e[30]=i,e[31]=c.options.layout,e[32]=R):R=e[32];let j;e[33]!==l||e[34]!==c.options.layout?(j=()=>l(c.options.layout==="split"?"unified":"split"),e[33]=l,e[34]=c.options.layout,e[35]=j):j=e[35];let I;e[36]!==c.options.layout||e[37]!==R||e[38]!==j?(I=s.jsx(de,{icon:c.options.layout,label:R,onClick:j}),e[36]=c.options.layout,e[37]=R,e[38]=j,e[39]=I):I=e[39];let P;e[40]!==r||e[41]!==i?(P=r?s.jsx(de,{icon:"external",label:i("openSourceURL"),onClick:()=>window.open(r,"_blank","noreferrer")}):null,e[40]=r,e[41]=i,e[42]=P):P=e[42];let L;e[43]!==i||e[44]!==c.filesVisible?(L=c.filesVisible?i("hideFiles"):i("showFiles"),e[43]=i,e[44]=c.filesVisible,e[45]=L):L=e[45];let U;e[46]!==n||e[47]!==c.filesVisible?(U=()=>n({type:"set-files-visible",visible:!c.filesVisible}),e[46]=n,e[47]=c.filesVisible,e[48]=U):U=e[48];let O;e[49]!==c.filesVisible||e[50]!==L||e[51]!==U?(O=s.jsx(de,{checked:c.filesVisible,icon:"files",label:L,onClick:U}),e[49]=c.filesVisible,e[50]=L,e[51]=U,e[52]=O):O=e[52];let T;e[53]!==i||e[54]!==c.options.expandUnchanged?(T=c.options.expandUnchanged?i("collapseUnchangedContext"):i("expandUnchangedContext"),e[53]=i,e[54]=c.options.expandUnchanged,e[55]=T):T=e[55];let z;e[56]!==u?(z=()=>u("expandUnchanged"),e[56]=u,e[57]=z):z=e[57];let W;e[58]!==c.options.expandUnchanged||e[59]!==T||e[60]!==z?(W=s.jsx(de,{checked:c.options.expandUnchanged,icon:"document",label:T,onClick:z}),e[58]=c.options.expandUnchanged,e[59]=T,e[60]=z,e[61]=W):W=e[61];let Q;e[62]!==i||e[63]!==c.options.showBackgrounds?(Q=c.options.showBackgrounds?i("hideBackgrounds"):i("showBackgrounds"),e[62]=i,e[63]=c.options.showBackgrounds,e[64]=Q):Q=e[64];let G;e[65]!==u?(G=()=>u("showBackgrounds"),e[65]=u,e[66]=G):G=e[66];let H;e[67]!==c.options.showBackgrounds||e[68]!==Q||e[69]!==G?(H=s.jsx(de,{checked:c.options.showBackgrounds,icon:"background",label:Q,onClick:G}),e[67]=c.options.showBackgrounds,e[68]=Q,e[69]=G,e[70]=H):H=e[70];let B;e[71]!==i||e[72]!==c.options.lineNumbers?(B=c.options.lineNumbers?i("hideLineNumbers"):i("showLineNumbers"),e[71]=i,e[72]=c.options.lineNumbers,e[73]=B):B=e[73];let D;e[74]!==u?(D=()=>u("lineNumbers"),e[74]=u,e[75]=D):D=e[75];let K;e[76]!==c.options.lineNumbers||e[77]!==B||e[78]!==D?(K=s.jsx(de,{checked:c.options.lineNumbers,icon:"numbers",label:B,onClick:D}),e[76]=c.options.lineNumbers,e[77]=B,e[78]=D,e[79]=K):K=e[79];let N;e[80]!==i||e[81]!==c.options.wordDiffs?(N=c.options.wordDiffs?i("disableWordDiffs"):i("enableWordDiffs"),e[80]=i,e[81]=c.options.wordDiffs,e[82]=N):N=e[82];let X;e[83]!==u?(X=()=>u("wordDiffs"),e[83]=u,e[84]=X):X=e[84];let J;e[85]!==c.options.wordDiffs||e[86]!==N||e[87]!==X?(J=s.jsx(de,{checked:c.options.wordDiffs,icon:"word",label:N,onClick:X}),e[85]=c.options.wordDiffs,e[86]=N,e[87]=X,e[88]=J):J=e[88];let te;e[89]===Symbol.for("react.memo_cache_sentinel")?(te=s.jsx(ie,{name:"bars"}),e[89]=te):te=e[89];let Z;e[90]!==i?(Z=i("indicatorStyle"),e[90]=i,e[91]=Z):Z=e[91];let ne;e[92]!==Z?(ne=s.jsx("span",{className:"menu-label",children:Z}),e[92]=Z,e[93]=ne):ne=e[93];let re;e[94]!==i?(re=i("bars"),e[94]=i,e[95]=re):re=e[95];let $;e[96]!==re?($={value:"bars",icon:"bars",label:re},e[96]=re,e[97]=$):$=e[97];let y;e[98]!==i?(y=i("classic"),e[98]=i,e[99]=y):y=e[99];let F;e[100]!==y?(F={value:"classic",icon:"classic",label:y},e[100]=y,e[101]=F):F=e[101];let _;e[102]!==i?(_=i("none"),e[102]=i,e[103]=_):_=e[103];let Y;e[104]!==_?(Y={value:"none",icon:"eye",label:_},e[104]=_,e[105]=Y):Y=e[105];let q;e[106]!==$||e[107]!==F||e[108]!==Y?(q=[$,F,Y],e[106]=$,e[107]=F,e[108]=Y,e[109]=q):q=e[109];let ee;e[110]!==f||e[111]!==c.options.diffIndicators||e[112]!==q?(ee=s.jsx("span",{className:"menu-segment-controls",children:q.map(V=>s.jsx("button",{type:"button",className:"segment-button",title:V.label,"aria-label":V.label,"aria-pressed":c.options.diffIndicators===V.value,onClick:()=>f("diffIndicators",V.value),children:s.jsx(ie,{name:V.icon})},V.value))}),e[110]=f,e[111]=c.options.diffIndicators,e[112]=q,e[113]=ee):ee=e[113];let oe;e[114]!==ne||e[115]!==ee?(oe=s.jsxs("div",{className:"menu-item menu-segment",children:[te,ne,ee]}),e[114]=ne,e[115]=ee,e[116]=oe):oe=e[116];let le;e[117]===Symbol.for("react.memo_cache_sentinel")?(le=s.jsx("div",{className:"menu-separator"}),e[117]=le):le=e[117];let ae;e[118]!==i?(ae=i("copyGitApplyCommand"),e[118]=i,e[119]=ae):ae=e[119];let ce;e[120]!==o||e[121]!==ae?(ce=s.jsx(de,{icon:"clipboard",label:ae,onClick:o}),e[120]=o,e[121]=ae,e[122]=ce):ce=e[122];let A;return e[123]!==C||e[124]!==I||e[125]!==P||e[126]!==O||e[127]!==x||e[128]!==W||e[129]!==H||e[130]!==K||e[131]!==J||e[132]!==h||e[133]!==oe||e[134]!==ce||e[135]!==b?(A=s.jsxs("div",{id:"options-menu","aria-label":x,children:[h,b,C,M,I,P,O,W,H,K,J,oe,le,ce]}),e[123]=C,e[124]=I,e[125]=P,e[126]=O,e[127]=x,e[128]=W,e[129]=H,e[130]=K,e[131]=J,e[132]=h,e[133]=oe,e[134]=ce,e[135]=b,e[136]=A):A=e[136],A}function de(t){const e=E.c(14),{checked:n,icon:r,label:i,onClick:o}=t,a=n??void 0;let l;e[0]!==r?(l=s.jsx(ie,{name:r}),e[0]=r,e[1]=l):l=e[1];let f;e[2]!==i?(f=s.jsx("span",{className:"menu-label",children:i}),e[2]=i,e[3]=f):f=e[3];let c;e[4]!==n?(c=n?s.jsx(ie,{name:"check"}):null,e[4]=n,e[5]=c):c=e[5];let d;e[6]!==c?(d=s.jsx("span",{className:"menu-check",children:c}),e[6]=c,e[7]=d):d=e[7];let u;return e[8]!==o||e[9]!==a||e[10]!==l||e[11]!==f||e[12]!==d?(u=s.jsxs("button",{type:"button",className:"menu-item","aria-pressed":a,onClick:o,children:[l,f,d]}),e[8]=o,e[9]=a,e[10]=l,e[11]=f,e[12]=d,e[13]=u):u=e[13],u}function Wi(t){const e=E.c(70),{commentEntries:n,commentLabels:r,dispatch:i,hasDraft:o,label:a,onSelectComment:l,onSelectItem:f,selectedPath:c,state:d}=t,u=S.useRef(null);let x;e[0]!==i?(x=N=>{const X=u.current;if(!X)return;const J=document.documentElement.clientWidth||window.innerWidth,te=Math.max(220,Math.min(520,Math.floor(J*.55))),Z=Math.max(180,Math.min(te,Math.round(X.startWidth-(N-X.startX))));i({type:"set-files-width",width:Z})},e[0]=i,e[1]=x):x=e[1];const p=x;let h;e[2]!==a?(h=a("changedFiles"),e[2]=a,e[3]=h):h=e[3];const m=!d.filesVisible,g=!d.filesVisible;let b;e[4]!==a?(b=a("files"),e[4]=a,e[5]=b):b=e[5];let v;e[6]!==d.filesWidth?(v=N=>{u.current={startWidth:d.filesWidth,startX:N.clientX},N.currentTarget.setPointerCapture(N.pointerId)},e[6]=d.filesWidth,e[7]=v):v=e[7];let w,k;e[8]!==p?(w=N=>p(N.clientX),k=N=>{p(N.clientX),u.current=null,N.currentTarget.releasePointerCapture(N.pointerId)},e[8]=p,e[9]=w,e[10]=k):(w=e[9],k=e[10]);let C;e[11]===Symbol.for("react.memo_cache_sentinel")?(C=()=>{u.current=null},e[11]=C):C=e[11];let M;e[12]!==i||e[13]!==d.filesWidth?(M=N=>{if(N.key!=="ArrowLeft"&&N.key!=="ArrowRight")return;N.preventDefault();const X=N.key==="ArrowLeft"?20:-20;i({type:"set-files-width",width:Math.max(180,Math.min(520,d.filesWidth+X))})},e[12]=i,e[13]=d.filesWidth,e[14]=M):M=e[14];let R;e[15]!==M||e[16]!==b||e[17]!==v||e[18]!==w||e[19]!==k?(R=s.jsx("button",{id:"files-resize-handle","aria-label":b,type:"button",tabIndex:0,onPointerDown:v,onPointerMove:w,onPointerUp:k,onPointerCancel:C,onKeyDown:M}),e[15]=M,e[16]=b,e[17]=v,e[18]=w,e[19]=k,e[20]=R):R=e[20];let j;e[21]!==a?(j=a("files"),e[21]=a,e[22]=j):j=e[22];let I;e[23]!==j?(I=s.jsx("span",{children:j}),e[23]=j,e[24]=I):I=e[24];const P=d.treeSource?.pathCount??0;let L;e[25]!==P?(L=s.jsx("span",{id:"files-count",children:P}),e[25]=P,e[26]=L):L=e[26];let U;e[27]!==I||e[28]!==L?(U=s.jsxs("span",{id:"files-title",children:[I,L]}),e[27]=I,e[28]=L,e[29]=U):U=e[29];let O;e[30]!==a||e[31]!==d.fileSearchOpen?(O=d.fileSearchOpen?a("hideFileSearch"):a("showFileSearch"),e[30]=a,e[31]=d.fileSearchOpen,e[32]=O):O=e[32];let T;e[33]!==a||e[34]!==d.fileSearchOpen?(T=d.fileSearchOpen?a("hideFileSearch"):a("showFileSearch"),e[33]=a,e[34]=d.fileSearchOpen,e[35]=T):T=e[35];const z=!d.treeSource;let W;e[36]!==i||e[37]!==d.fileSearchOpen?(W=()=>d.fileSearchOpen?et(i):i({type:"set-file-search-open",open:!0}),e[36]=i,e[37]=d.fileSearchOpen,e[38]=W):W=e[38];let Q;e[39]===Symbol.for("react.memo_cache_sentinel")?(Q=s.jsx(ie,{name:"search"}),e[39]=Q):Q=e[39];let G;e[40]!==d.fileSearchOpen||e[41]!==O||e[42]!==T||e[43]!==z||e[44]!==W?(G=s.jsx("span",{id:"files-header-actions",children:s.jsx("button",{id:"file-search-toggle",type:"button",title:O,"aria-label":T,"aria-pressed":d.fileSearchOpen,disabled:z,onClick:W,children:Q})}),e[40]=d.fileSearchOpen,e[41]=O,e[42]=T,e[43]=z,e[44]=W,e[45]=G):G=e[45];let H;e[46]!==U||e[47]!==G?(H=s.jsxs("div",{id:"files-header",children:[U,G]}),e[46]=U,e[47]=G,e[48]=H):H=e[48];let B;e[49]!==a||e[50]!==f||e[51]!==c||e[52]!==d.fileSearchOpen||e[53]!==d.fileSearchRequest||e[54]!==d.status||e[55]!==d.treeSource?(B=s.jsx("div",{id:"file-list",children:d.treeSource?s.jsx(Gi,{fileSearchOpen:d.fileSearchOpen,fileSearchRequest:d.fileSearchRequest,label:a,onSelectItem:f,selectedPath:c,source:d.treeSource}):d.status.loading||d.status.pending?s.jsx(Hi,{}):s.jsx("div",{className:"visually-hidden",children:d.status.message})}),e[49]=a,e[50]=f,e[51]=c,e[52]=d.fileSearchOpen,e[53]=d.fileSearchRequest,e[54]=d.status,e[55]=d.treeSource,e[56]=B):B=e[56];let D;e[57]!==n||e[58]!==r||e[59]!==o||e[60]!==l?(D=s.jsx(lr,{entries:n,hasDraft:o,labels:r,onSelect:l}),e[57]=n,e[58]=r,e[59]=o,e[60]=l,e[61]=D):D=e[61];let K;return e[62]!==R||e[63]!==h||e[64]!==H||e[65]!==B||e[66]!==D||e[67]!==m||e[68]!==g?(K=s.jsxs("aside",{id:"files-sidebar","aria-label":h,"aria-hidden":m,inert:g,children:[R,H,B,D]}),e[62]=R,e[63]=h,e[64]=H,e[65]=B,e[66]=D,e[67]=m,e[68]=g,e[69]=K):K=e[69],K}function Gi(t){const e=E.c(18),{fileSearchOpen:n,fileSearchRequest:r,label:i,onSelectItem:o,selectedPath:a,source:l}=t;let f;e[0]!==i||e[1]!==o||e[2]!==l?(f={label:i,onSelectItem:o,source:l},e[0]=i,e[1]=o,e[2]=l,e[3]=f):f=e[3];const c=Re(f);let d;e[4]!==l.paths?(d=()=>Ae(l.paths),e[4]=l.paths,e[5]=d):d=e[5];const[u]=S.useState(d);let x;e[6]!==a?(x=a?[a]:[],e[6]=a,e[7]=x):x=e[7];let p;e[8]===Symbol.for("react.memo_cache_sentinel")?(p=Wt(),e[8]=p):p=e[8];const h=l.gitStatus;let m;e[9]===Symbol.for("react.memo_cache_sentinel")?(m=Pr(),e[9]=m):m=e[9];let g;e[10]!==u||e[11]!==c||e[12]!==x||e[13]!==h?(g={flattenEmptyDirectories:!1,id:"cmux-diff-file-tree",initialExpansion:"open",initialSelectedPaths:x,initialVisibleRowCount:p,itemHeight:24,overscan:12,preparedInput:u,search:!0,searchBlurBehavior:"retain",stickyFolders:!0,gitStatus:h,sort:Ui,unsafeCSS:m,onSelectionChange(k){const C=k[k.length-1],M=c.current.source.pathToItemId.get(C);M&&c.current.onSelectItem(M)}},e[10]=u,e[11]=c,e[12]=x,e[13]=h,e[14]=g):g=e[14];const{model:b}=Zt(g);no(b,l),io(b,n,r),oo(b,a);let v;e[15]===Symbol.for("react.memo_cache_sentinel")?(v={height:"100%"},e[15]=v):v=e[15];let w;return e[16]!==b?(w=s.jsx(tn,{model:b,style:v}),e[16]=b,e[17]=w):w=e[17],w}function Ui(){return 0}function Hi(){const t=E.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=s.jsx("div",{className:"diff-loading-placeholder","aria-hidden":"true",children:mi.map(qi)}),t[0]=e):e=t[0],e}function qi(t,e){return s.jsxs("div",{className:"grid h-6 grid-cols-[16px_minmax(0,1fr)_44px] items-center gap-2 rounded-[5px] px-[7px]",children:[s.jsx("span",{className:"size-4 rounded-[5px] border border-[color-mix(in_lab,var(--cmux-diff-fg)_18%,transparent)]"}),s.jsx("span",{className:"h-[11px] rounded bg-[var(--cmux-diff-muted-bg)]",style:{width:t}}),s.jsx("span",{className:"h-[11px] justify-self-end rounded bg-[var(--cmux-diff-muted-bg)] opacity-70",style:{width:e%2===0?"34px":"24px"}})]},`${t}-${e}`)}function Ki(){const t=E.c(2);let e;t[0]===Symbol.for("react.memo_cache_sentinel")?(e=s.jsxs("div",{className:"mb-3 grid h-9 grid-cols-[72px_minmax(0,1fr)_96px] items-center gap-3 rounded-md bg-[color-mix(in_lab,var(--cmux-diff-fg)_5%,transparent)] px-3",children:[s.jsx("span",{className:"h-3 rounded bg-[var(--cmux-diff-muted-bg)]"}),s.jsx("span",{className:"h-3 w-2/5 rounded bg-[var(--cmux-diff-muted-bg)]"}),s.jsx("span",{className:"h-3 rounded bg-[var(--cmux-diff-muted-bg)] opacity-70"})]}),t[0]=e):e=t[0];let n;return t[1]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsxs("div",{className:"diff-loading-placeholder mx-3.5 mt-3.5 border-t border-[var(--cmux-diff-border)] pt-3","aria-hidden":"true",children:[e,s.jsx("div",{className:"space-y-[13px] px-3 py-1",children:hi.map(Yi)})]}),t[1]=n):n=t[1],n}function Yi(t,e){return s.jsxs("div",{className:"grid grid-cols-[42px_minmax(0,1fr)] items-center gap-4",children:[s.jsx("span",{className:"h-px bg-[color-mix(in_lab,var(--cmux-diff-fg)_10%,transparent)]"}),s.jsx("span",{className:"h-3 rounded bg-[var(--cmux-diff-muted-bg)]",style:{width:t}})]},`${t}-${e}`)}function Qi(t){const e=E.c(16),{label:n,status:r}=t;if(!r.loading&&!r.pending&&!r.statusOnly&&!r.error)return null;const i=r.error?"true":"false",o=r.pending?"true":"false";let a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=s.jsx("span",{id:"status-icon","aria-hidden":"true"}),e[0]=a):a=e[0];let l;e[1]!==n||e[2]!==r.message?(l=r.message||n("loadingDiff"),e[1]=n,e[2]=r.message,e[3]=l):l=e[3];let f;e[4]!==l?(f=s.jsx("span",{id:"status-text",children:l}),e[4]=l,e[5]=f):f=e[5];let c;e[6]!==i||e[7]!==o||e[8]!==f?(c=s.jsxs("div",{id:"status","data-error":i,"data-pending":o,children:[a,f]}),e[6]=i,e[7]=o,e[8]=f,e[9]=c):c=e[9];let d;e[10]!==r.loading||e[11]!==r.pending?(d=r.loading||r.pending?s.jsx(Ki,{}):null,e[10]=r.loading,e[11]=r.pending,e[12]=d):d=e[12];let u;return e[13]!==c||e[14]!==d?(u=s.jsxs("div",{id:"loading-layer","aria-live":"polite",children:[c,d]}),e[13]=c,e[14]=d,e[15]=u):u=e[15],u}function Re(t){const e=E.c(3),n=S.useRef(t);let r,i;return e[0]!==t?(r=()=>{n.current=t},i=[t],e[0]=t,e[1]=r,e[2]=i):(r=e[1],i=e[2]),S.useEffect(r,i),n}function Xi(t,e){const n=E.c(5),r=en(),i=S.useRef(null);let o,a;n[0]!==e||n[1]!==t||n[2]!==r?(o=()=>{if(!r||Zi(i.current,t))return;let l=!0;return i.current=t,r.setRenderOptions(t).then(()=>{l&&e.current?.getInstance()?.render(!0)}).catch(Ji),()=>{l=!1}},a=[e,t,r],n[0]=e,n[1]=t,n[2]=r,n[3]=o,n[4]=a):(o=n[3],a=n[4]),S.useEffect(o,a)}function Ji(t){return console.warn("cmux diff worker render options update failed",t)}function Zi(t,e){return t?.lineDiffType===e.lineDiffType&&eo(t?.langs,e.langs)&&t?.maxLineDiffLength===e.maxLineDiffLength&&t?.preferredHighlighter===e.preferredHighlighter&&to(t?.theme,e.theme)&&t?.tokenizeMaxLineLength===e.tokenizeMaxLineLength&&t?.useTokenTransformer===e.useTokenTransformer}function eo(t,e){return t===e?!0:t==null||e==null||t.length!==e.length?!1:t.every((n,r)=>n===e[r])}function to(t,e){return t===e?!0:typeof t!="object"||t==null||typeof e!="object"||e==null?!1:t.dark===e.dark&&t.light===e.light}function no(t,e){const n=E.c(4),r=S.useRef(null);let i,o;n[0]!==t||n[1]!==e?(i=()=>{const a=r.current;r.current=e;const l=wr(a,e,e.paths);let f=l.kind==="append"?l.requiresFullGitStatus:!1;if(l.kind==="append"){if(l.addedPaths.length>0)try{t.batch(l.addedPaths.map(ro)),f=!l.sourceFollowsPrevious}catch{const c=Ae(e.paths);t.resetPaths(e.paths,{preparedInput:c}),f=!0}}else{const c=Ae(e.paths);t.resetPaths(e.paths,{preparedInput:c}),f=!0}yr(t,e,f)},o=[t,e],n[0]=t,n[1]=e,n[2]=i,n[3]=o):(i=n[2],o=n[3]),S.useEffect(i,o)}function ro(t){return{type:"add",path:t}}function io(t,e,n){const r=E.c(7);let i;r[0]!==e||r[1]!==t?(i=()=>{if(e){const a=t.isSearchOpen();if(t.openSearch(a?t.getSearchValue():""),a){const l=t.getFileTreeContainer();(l?.shadowRoot??l?.getRootNode())?.querySelector("[data-file-tree-search-input]")?.focus()}}else t.closeSearch()},r[0]=e,r[1]=t,r[2]=i):i=r[2];let o;r[3]!==e||r[4]!==n||r[5]!==t?(o=[e,n,t],r[3]=e,r[4]=n,r[5]=t,r[6]=o):o=r[6],S.useEffect(i,o)}function oo(t,e){const n=E.c(4);let r,i;n[0]!==t||n[1]!==e?(r=()=>{kr(t,e)},i=[t,e],n[0]=t,n[1]=e,n[2]=r,n[3]=i):(r=n[2],i=n[3]),S.useEffect(r,i)}function ao(t,e,n,r,i,o,a,l,f,c,d){S.useEffect(()=>{if(Vt(t.payload,e,f))return;document.body.dataset.diffRenderGeneration=String(d);const u=t.payload??{},x=We(u.appearance);for(const g of[x.themes.light,x.themes.dark])g.name&&!wt.has(g.name)&&(Yt(g.name,()=>Promise.resolve(Rr(g))),wt.add(g.name));let p=!1;const h=new AbortController,m=()=>{l()};return window.addEventListener("pagehide",m),(async()=>{try{let g=u.patchURL;const b=Ze(u,e,f);if(b){const w=await e.request({method:"sessionOpen",params:b});if(w.type!=="sessionOpened")throw new ue("invalidResponse","Diff transport did not open a session");const k={sessionId:w.value.sessionId,capabilityToken:String(u.capabilityToken??"")};if(p){await $t(e,k);return}a.current=k,c(w.value.source),g=w.value.patch.id}if(p||!g)return;o(g);const v=[];r({type:"set-status",status:se(n("parsingDiff"),{loading:!0})}),await En({getCollapsed:()=>i.current.options.collapsed,initialFileTreeRowCount:Wt(),label:n,signal:h.signal,onBatch:w=>{p||(v.push(...w),r({type:"append-items",items:w}))},onComplete:w=>{if(p)return;r({type:"set-metrics",metrics:w});const k=v;if(k.length===0){const R=typeof u.emptyMessage=="string"?u.emptyMessage:n("noFileDiffs");r({type:"set-status",status:se(R,{error:!1,loading:!1,statusOnly:!0})});return}const C=Array.from(new Set([x.theme?.light,x.theme?.dark].filter(Boolean))),M=Array.from(new Set(k.flatMap(R=>{const j=R.fileDiff??{};return Nt(pe(j,""),j.lang,j,Ve)})));Jt({themes:C,langs:M.length>0?M:["text"]}).catch(R=>console.warn("cmux diff highlighter preload failed",R))},onMetrics:w=>{p||r({type:"set-metrics",metrics:w})},onRename:w=>{p||r({type:"rename-item",oldId:w.oldId,newId:w.newId})},onTreeSource:w=>{p||r({type:"set-tree-source",source:w})},parsePatchFiles:Xt,patchURL:g,processFile:Qt})}catch(g){if(p)return;const b=g instanceof ue&&g.code==="emptyDiff";b||console.error("cmux diff viewer render failed",String(g?.stack??g?.message??g));const v=typeof u.emptyMessage=="string"?u.emptyMessage:n("noFileDiffs");r({type:"set-status",status:se(b?v:n("renderFailed"),{error:!b,loading:!1,statusOnly:!0})})}})(),()=>{p=!0,h.abort(),window.removeEventListener("pagehide",m),l()}},[a,l,t,r,n,i,o,c,d,f,e])}function $t(t,e){return t.request({method:"sessionClose",params:e}).then(()=>{},()=>{})}function Ze(t,e,n){if(!e||typeof t?.capabilityToken!="string")return null;const r=n??t.sessionSource;return Le(r)?{source:r,capabilityToken:t.capabilityToken}:null}function Le(t){if(!t||typeof t!="object"||typeof t.kind!="string")return!1;const e=t;return e.kind==="patch"?typeof e.path=="string":e.kind==="unstaged"||e.kind==="staged"?typeof e.repoRoot=="string":e.kind==="branch"&&typeof e.repoRoot=="string"&&(e.baseRef==null||typeof e.baseRef=="string")}function so(t){return t?.kind??null}function ve(t){return t&&"repoRoot"in t?t.repoRoot:null}function lo(t,e){if(t.kind==="patch")return t;const n=ve(e);return n?t.kind==="branch"?t.repoRoot===n?{...t,repoRoot:n}:{kind:"branch",repoRoot:n}:{...t,repoRoot:n}:t}function co(t,e){const n=ve(t);return!n||!e||e.kind==="patch"?t:e.kind==="branch"?e.repoRoot===n?{...e,repoRoot:n}:{kind:"branch",repoRoot:n}:{...e,repoRoot:n}}function fo(t){const e=t.fileDiff;if(e==null)return;const n=Ft(pe(e,""),e.lang,Ve);e.lang=n}function uo(t){const e=t.fileDiff;return e==null?[]:Nt(pe(e,""),e.lang,e,Ve)}function po(t,e){const n=new Set(t);for(const r of e)r.trim().length>0&&n.add(r);return Array.from(n)}function Vt(t,e=null,n=null){return t?.pendingReplacement===!0?Ze(t,e,n)==null:typeof t?.statusMessage=="string"&&t.statusMessage.length>0}function mo(t,e,n,r){const i=E.c(6),o=S.useRef(!1);let a,l;i[0]!==n||i[1]!==e||i[2]!==t||i[3]!==r?(a=()=>{if(!o.current){if(o.current=!0,t.pendingReplacement===!0){if(n({type:"set-status",status:se(t.statusMessage??e("loadingDiff"),{loading:!0,pending:!0})}),Ze(t,r)||window.location.protocol==="cmux-diff-viewer:")return;fetch("/__cmux_diff_viewer_wait"+window.location.pathname,{cache:"no-store"}).then(ho).catch(f=>{document.documentElement.dataset.cmuxDiffWait="failed",n({type:"set-status",status:se(e("renderFailed"),{error:!0,loading:!1,statusOnly:!0})}),console.warn("cmux diff viewer deferred load failed",f)});return}typeof t.statusMessage=="string"&&t.statusMessage.length>0&&n({type:"set-status",status:se(t.statusMessage,{error:t.statusIsError===!0,loading:!1,statusOnly:!0})})}},l=[n,e,t,r],i[0]=n,i[1]=e,i[2]=t,i[3]=r,i[4]=a,i[5]=l):(a=i[4],l=i[5]),S.useEffect(a,l)}async function ho(t){if(!t.ok)throw new Error("replacement failed");(await t.text()).includes('data-cmux-diff-pending="true"')||window.location.reload()}function go(t){const e=E.c(10);let n;e[0]!==t.filesVisible||e[1]!==t.items||e[2]!==t.metrics||e[3]!==t.options.diffIndicators||e[4]!==t.options.layout||e[5]!==t.options.wordWrap||e[6]!==t.status?(n=()=>{document.body.dataset.filesHidden=t.filesVisible?"false":"true",document.body.dataset.loading=t.status.loading?"true":"false",document.documentElement.dataset.layout=t.options.layout,document.documentElement.dataset.wordWrap=String(t.options.wordWrap),document.documentElement.dataset.diffIndicators=t.options.diffIndicators,t.metrics&&(document.body.dataset.streamFileCount=String(t.metrics.fileCount??t.items.length),document.body.dataset.streamRenderableFileCount=String(t.metrics.renderableFileCount??t.items.length),document.body.dataset.streamFlushCount=String(t.metrics.flushCount??0),document.body.dataset.streamMaxBatchSize=String(t.metrics.maxBatchSize??0),document.body.dataset.streamTreeRefreshCount=String(t.metrics.treeRefreshCount??0),Number.isFinite(t.metrics.completedAt)&&t.metrics.completedAt>0&&(document.body.dataset.streamElapsedMs=String(Math.round(t.metrics.completedAt-t.metrics.startedAt)))),xe(t.status)},e[0]=t.filesVisible,e[1]=t.items,e[2]=t.metrics,e[3]=t.options.diffIndicators,e[4]=t.options.layout,e[5]=t.options.wordWrap,e[6]=t.status,e[7]=n):n=e[7];let r;e[8]!==t?(r=[t],e[8]=t,e[9]=r):r=e[9],S.useEffect(n,r)}function xo(t,e,n,r,i){const o=E.c(7);let a,l;o[0]!==e||o[1]!==i||o[2]!==n||o[3]!==r||o[4]!==t?(a=()=>{window.__cmuxPerformDiffViewerNavigationAction=c=>{const d=t.current;if(d&&CmuxViewerNavigation.performAction(c,d))return!0;const u=i.current;switch(c){case"diffViewerOpenFileSearch":return e({type:"request-file-search"}),!0;case"diffViewerNextFile":return d&&CmuxViewerNavigation.resetSmoothTarget(d),n(1),!0;case"diffViewerPreviousFile":return d&&CmuxViewerNavigation.resetSmoothTarget(d),n(-1),!0;case"diffViewerNextHunk":return d&&CmuxViewerNavigation.resetSmoothTarget(d),r(1),!0;case"diffViewerPreviousHunk":return d&&CmuxViewerNavigation.resetSmoothTarget(d),r(-1),!0;case"diffViewerOpenFind":return e({type:"request-find"}),!0;case"diffViewerFindNext":return u.open?(u.controller.goToNext(),!0):!1;case"diffViewerFindPrevious":return u.open?(u.controller.goToPrevious(),!0):!1;case"diffViewerCloseFind":return u.open?(u.controller.closeFind(),!0):!1}return!1},document.documentElement.dataset.cmuxViewerNavigationReady="true",document.dispatchEvent(new window.Event("cmux-diff-viewer-navigation-readiness-change"));const f=CmuxViewerNavigation.installManualInputReset({target:document,getScroller:()=>t.current});return()=>{delete window.__cmuxPerformDiffViewerNavigationAction,delete document.documentElement.dataset.cmuxViewerNavigationReady,document.dispatchEvent(new window.Event("cmux-diff-viewer-navigation-readiness-change")),f()}},l=[e,i,n,r,t],o[0]=e,o[1]=i,o[2]=n,o[3]=r,o[4]=t,o[5]=a,o[6]=l):(a=o[5],l=o[6]),S.useEffect(a,l)}function bo(t,e){const n=E.c(4);let r,i;n[0]!==e||n[1]!==t?(r=()=>{if(!t)return;const o=l=>{l.target instanceof Element&&l.target.closest("#toolbar")||e({type:"set-options-open",open:!1})},a=l=>{l.key==="Escape"&&e({type:"set-options-open",open:!1})};return document.addEventListener("click",o),document.addEventListener("keydown",a),()=>{document.removeEventListener("click",o),document.removeEventListener("keydown",a)}},i=[e,t],n[0]=e,n[1]=t,n[2]=r,n[3]=i):(r=n[2],i=n[3]),S.useEffect(r,i)}function et(t,e=document){t({type:"set-file-search-open",open:!1}),(e.getElementById("jump-search-button")??e.getElementById("jump-select"))?.focus()}function vo(t,e){return t==="Escape"&&e}function wo(t,e){const n=E.c(4);let r,i;n[0]!==e||n[1]!==t?(r=()=>{if(!t)return;const o=a=>{vo(a.key,window.matchMedia("(max-width: 520px)").matches)&&(a.preventDefault(),et(e))};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},i=[e,t],n[0]=e,n[1]=t,n[2]=r,n[3]=i):(r=n[2],i=n[3]),S.useEffect(r,i)}function yo(t){const e=S.useRef(void 0);return e.current===void 0&&(e.current=Vr(t)),S.useEffect(()=>{const n=e.current;return()=>n?.close()},[]),e.current}function ko(t,e){return e.some(n=>n.id===t)?t:e[0]?.id??""}function So(t,e,n){if(e.length===0)return"";const r=e.findIndex(o=>o.id===t);if(r<0)return n>0?e[0].id:e[e.length-1].id;const i=r+n;return i>=0&&i0?0:-1;for(;r<=i;){const a=Math.floor((r+i)/2),l=n(t[a].id);l!=null&&l<=e+1?(o=a,r=a+1):i=a-1}return o>=0?t[o].id:""}function Wt(){const t=window.visualViewport?.height??window.innerHeight;return!Number.isFinite(t)||t<=0?25:Math.min(96,Math.max(25,Math.ceil(t/24)))}const Io=`@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--font-weight-medium:500;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1);--blur-sm:8px;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1\\/2{top:50%}.right-2\\.5{right:calc(var(--spacing) * 2.5)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-\\[calc\\(100\\%\\+6px\\)\\]{bottom:calc(100% + 6px)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-px{margin:1px}.mx-3\\.5{margin-inline:calc(var(--spacing) * 3.5)}.ms-1{margin-inline-start:calc(var(--spacing) * 1)}.mt-1\\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-3\\.5{margin-top:calc(var(--spacing) * 3.5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-\\[3px\\]{margin-right:3px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-px{margin-bottom:1px}.ml-1\\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-\\[22px\\]{width:22px;height:22px}.\\!h-auto{height:auto!important}.h-0{height:calc(var(--spacing) * 0)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-\\[1lh\\]{height:1lh}.h-\\[1px\\]{height:1px}.h-\\[11px\\]{height:11px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\\[25dvh\\]{max-height:25dvh}.max-h-\\[140px\\]{max-height:140px}.max-h-none{max-height:none}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\\[1\\.25rem\\]{min-height:1.25rem}.w-2\\/5{width:40%}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-52{width:calc(var(--spacing) * 52)}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-16{max-width:calc(var(--spacing) * 16)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-\\[60\\%\\]{max-width:60%}.max-w-\\[77\\%\\]{max-width:77%}.max-w-\\[320px\\]{max-width:320px}.max-w-full{max-width:100%}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-56{min-width:calc(var(--spacing) * 56)}.min-w-max{min-width:max-content}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-\\[16px_minmax\\(0\\,1fr\\)_44px\\]{grid-template-columns:16px minmax(0,1fr) 44px}.grid-cols-\\[42px_minmax\\(0\\,1fr\\)\\]{grid-template-columns:42px minmax(0,1fr)}.grid-cols-\\[72px_minmax\\(0\\,1fr\\)_96px\\]{grid-template-columns:72px minmax(0,1fr) 96px}.grid-cols-\\[auto_minmax\\(0\\,1fr\\)_auto\\]{grid-template-columns:auto minmax(0,1fr) auto}.grid-cols-\\[minmax\\(0\\,auto\\)_auto_minmax\\(0\\,1fr\\)\\]{grid-template-columns:minmax(0,auto) auto minmax(0,1fr)}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-\\[5px\\]{gap:5px}:where(.space-y-\\[13px\\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(13px * var(--tw-space-y-reverse));margin-block-end:calc(13px * calc(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\\[5px\\]{border-radius:5px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-\\[color-mix\\(in_lab\\,var\\(--cmux-diff-fg\\)_18\\%\\,transparent\\)\\]{border-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.border-\\[color-mix\\(in_lab\\,var\\(--cmux-diff-fg\\)_18\\%\\,transparent\\)\\]{border-color:color-mix(in lab,var(--cmux-diff-fg) 18%,transparent)}}.border-\\[color\\:var\\(--gray-0\\)\\]{border-color:var(--gray-0)}.border-\\[var\\(--cmux-diff-border\\)\\]{border-color:var(--cmux-diff-border)}.border-transparent{border-color:#0000}.bg-\\[color-mix\\(in_lab\\,var\\(--cmux-diff-fg\\)_5\\%\\,transparent\\)\\]{background-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.bg-\\[color-mix\\(in_lab\\,var\\(--cmux-diff-fg\\)_5\\%\\,transparent\\)\\]{background-color:color-mix(in lab,var(--cmux-diff-fg) 5%,transparent)}}.bg-\\[color-mix\\(in_lab\\,var\\(--cmux-diff-fg\\)_10\\%\\,transparent\\)\\]{background-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.bg-\\[color-mix\\(in_lab\\,var\\(--cmux-diff-fg\\)_10\\%\\,transparent\\)\\]{background-color:color-mix(in lab,var(--cmux-diff-fg) 10%,transparent)}}.bg-\\[color\\:var\\(--gray-0\\)\\]{background-color:var(--gray-0)}.bg-\\[var\\(--cmux-diff-muted-bg\\)\\]{background-color:var(--cmux-diff-muted-bg)}.\\[mask-image\\:linear-gradient\\(to_right\\,black_calc\\(100\\%_-_0\\.25rem\\)\\,transparent\\)\\]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - .25rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - .25rem),#0000)}.\\[mask-repeat\\:no-repeat\\]{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.object-cover{object-fit:cover}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-2{padding:calc(var(--spacing) * 2)}.\\!px-0{padding-inline:calc(var(--spacing) * 0)!important}.px-0\\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-\\[7px\\]{padding-inline:7px}.px-\\[var\\(--padding-row-x\\)\\]{padding-inline:var(--padding-row-x)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-\\[var\\(--padding-row-y\\)\\]{padding-block:var(--padding-row-y)}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pr-0{padding-right:calc(var(--spacing) * 0)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-left{text-align:left}.align-bottom{vertical-align:bottom}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\\!leading-none{--tw-leading:1!important;line-height:1!important}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-\\[18px\\]{--tw-leading:18px;line-height:18px}.leading-\\[calc\\(var\\(--codex-chat-font-size\\)\\+8px\\)\\]{--tw-leading:calc(var(--codex-chat-font-size) + 8px);line-height:calc(var(--codex-chat-font-size) + 8px)}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.break-words{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.text-current{color:currentColor}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-\\[0\\.5px\\]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(.5px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.\\[--edge-fade-distance\\:2rem\\]{--edge-fade-distance:2rem}.group-focus-within\\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media(hover:hover){.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\\:bg-transparent:hover{background-color:#0000}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-40:disabled{opacity:.4}.data-\\[state\\=checked\\]\\:translate-x-\\[14px\\][data-state=checked]{--tw-translate-x:14px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\[state\\=unchecked\\]\\:translate-x-\\[2px\\][data-state=unchecked]{--tw-translate-x:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}@container (min-width:500px){.\\@\\[500px\\]\\:inline{display:inline}}.\\[\\&_\\.ProseMirror\\]\\:\\!h-5 .ProseMirror{height:calc(var(--spacing) * 5)!important}.\\[\\&_\\.ProseMirror\\]\\:h-auto .ProseMirror{height:auto}.\\[\\&_\\.ProseMirror\\]\\:\\!min-h-5 .ProseMirror{min-height:calc(var(--spacing) * 5)!important}.\\[\\&_\\.ProseMirror\\]\\:min-h-\\[2rem\\] .ProseMirror{min-height:2rem}.\\[\\&_\\.ProseMirror\\]\\:min-w-0 .ProseMirror{min-width:calc(var(--spacing) * 0)}.\\[\\&_\\.ProseMirror\\]\\:flex-1 .ProseMirror{flex:1}.\\[\\&_\\.ProseMirror\\]\\:resize-none .ProseMirror{resize:none}.\\[\\&_\\.ProseMirror\\]\\:overflow-hidden .ProseMirror{overflow:hidden}.\\[\\&_\\.ProseMirror\\]\\:leading-5 .ProseMirror{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.\\[\\&_\\.ProseMirror\\]\\:whitespace-nowrap .ProseMirror{white-space:nowrap}.\\[\\&_\\.ProseMirror\\]\\:focus-visible\\:outline-none .ProseMirror:focus-visible{--tw-outline-style:none;outline-style:none}.\\[\\&_\\.ProseMirror_p\\]\\:m-0 .ProseMirror p{margin:calc(var(--spacing) * 0)}.\\[\\&_\\.ProseMirror_p\\]\\:overflow-hidden .ProseMirror p{overflow:hidden}.\\[\\&_\\.ProseMirror_p\\]\\:text-ellipsis .ProseMirror p{text-overflow:ellipsis}.\\[\\&_\\.ProseMirror_p\\]\\:whitespace-nowrap .ProseMirror p{white-space:nowrap}.\\[\\&_\\.contain-inline-size\\]\\:\\[contain\\:initial\\] .contain-inline-size{contain:initial}.\\[\\&\\>\\*\\:last-child\\]\\:mb-0>:last-child{margin-bottom:calc(var(--spacing) * 0)}.\\[\\&\\>ol\\:first-child\\]\\:mt-0>ol:first-child,.\\[\\&\\>ul\\:first-child\\]\\:mt-0>ul:first-child{margin-top:calc(var(--spacing) * 0)}}:root{color-scheme:light dark;--cmux-diff-bg-light:#fff;--cmux-diff-bg-dark:#000;--cmux-diff-fg-light:#000;--cmux-diff-fg-dark:#fff;--cmux-diff-selection-bg-light:#abd8ff;--cmux-diff-selection-bg-dark:#3f638b;--cmux-diff-ui-font-family:system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;--cmux-diff-ui-font-size:12px;--cmux-diff-ui-line-height:16px;--cmux-diff-code-font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--cmux-diff-font-size:10px;--cmux-diff-line-height:20px;--cmux-diff-bg:var(--cmux-diff-bg-light);--cmux-diff-fg:var(--cmux-diff-fg-light);--cmux-diff-border:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){:root{--cmux-diff-border:color-mix(in lab, var(--cmux-diff-fg) 12%, transparent)}}:root{--cmux-diff-toolbar-bg:transparent;--cmux-diff-sidebar-bg:transparent;--cmux-diff-muted-bg:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){:root{--cmux-diff-muted-bg:color-mix(in lab, var(--cmux-diff-fg) 8%, transparent)}}:root{--cmux-diff-hover-bg:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){:root{--cmux-diff-hover-bg:color-mix(in lab, var(--cmux-diff-fg) 10%, transparent)}}:root{--cmux-diff-accent:light-dark(#0a84ff,#7ab7ff);--cmux-diff-text-muted:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){:root{--cmux-diff-text-muted:color-mix(in lab, var(--cmux-diff-fg) 72%, var(--cmux-diff-bg))}}:root{--cmux-diff-text-subtle:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){:root{--cmux-diff-text-subtle:color-mix(in lab, var(--cmux-diff-fg) 84%, var(--cmux-diff-bg))}}:root{--cmux-diff-surface-fill-light:transparent;--cmux-diff-surface-fill-dark:transparent;--cmux-diff-surface-fill:var(--cmux-diff-surface-fill-light);background:var(--cmux-diff-surface-fill);color:var(--cmux-diff-fg)}@media(prefers-color-scheme:dark){:root{--cmux-diff-bg:var(--cmux-diff-bg-dark);--cmux-diff-fg:var(--cmux-diff-fg-dark);--cmux-diff-surface-fill:var(--cmux-diff-surface-fill-dark)}}*{box-sizing:border-box}html,body{background:var(--cmux-diff-surface-fill);height:100%;overflow:hidden}body{background:var(--cmux-diff-surface-fill);height:100vh;min-height:0;color:var(--cmux-diff-fg);font-family:var(--cmux-diff-ui-font-family);font-size:var(--cmux-diff-ui-font-size);line-height:var(--cmux-diff-ui-line-height);flex-direction:column;margin:0;display:flex;overflow:hidden}#root{background:0 0;height:100%;min-height:0}#app{overscroll-behavior:contain;contain:strict;height:100vh;min-height:0;color:inherit;background:0 0;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);display:grid;overflow:hidden}.copy-fallback-textarea{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;top:0;left:-9999px}#toolbar{border-bottom:1px solid var(--cmux-diff-border);background:var(--cmux-diff-toolbar-bg);min-height:32px;color:var(--cmux-diff-fg);flex:none;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) minmax(0,auto);align-items:center;gap:7px;padding:3px 4px 3px 8px;display:grid;position:relative}@supports (color:color-mix(in lab,red,red)){#toolbar{color:color-mix(in lab,var(--cmux-diff-fg) 76%,var(--cmux-diff-bg))}}#toolbar{z-index:50}@media(min-width:521px){body[data-files-hidden=false] #toolbar{grid-template-columns:minmax(0,1fr) minmax(0,auto)}body[data-files-hidden=false] .toolbar-middle{display:none}}.toolbar-left,.toolbar-middle,.toolbar-actions{align-items:center;min-width:0;display:flex;overflow:clip visible}.toolbar-left,.toolbar-middle{gap:6px}.toolbar-left{justify-self:stretch;container:toolbar-left/inline-size}.toolbar-middle{justify-content:center}.toolbar-actions{justify-self:end;gap:4px}#source-select,#repo-select,#base-select,#jump-select,#jump-search-button{appearance:none;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(45deg,transparent 50%,currentcolor 50%) right 11px center / 4px 4px no-repeat,linear-gradient(135deg,currentcolor 50%,transparent 50%) right 7px center / 4px 4px no-repeat,var(--cmux-diff-fg);border:1px solid #0000;border-radius:6px;min-width:0;max-width:100%;height:24px;padding:0 24px 0 9px;overflow:hidden}@supports (color:color-mix(in lab,red,red)){#source-select,#repo-select,#base-select,#jump-select,#jump-search-button{background:linear-gradient(45deg,transparent 50%,currentcolor 50%) right 11px center / 4px 4px no-repeat,linear-gradient(135deg,currentcolor 50%,transparent 50%) right 7px center / 4px 4px no-repeat,color-mix(in lab,var(--cmux-diff-fg) 7%,transparent)}}#source-select,#repo-select,#base-select,#jump-select,#jump-search-button{color:inherit;font:inherit}#source-select{field-sizing:content;flex:0 3 auto;min-width:58px}#source-select:hover,#repo-select:hover,#base-select:hover,#jump-select:hover{border-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#source-select:hover,#repo-select:hover,#base-select:hover,#jump-select:hover{border-color:color-mix(in lab,var(--cmux-diff-fg) 24%,transparent)}}#source-select:hover,#repo-select:hover,#base-select:hover,#jump-select:hover{background-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#source-select:hover,#repo-select:hover,#base-select:hover,#jump-select:hover{background-color:color-mix(in lab,var(--cmux-diff-fg) 10%,transparent)}}#jump-search-button:hover{border-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#jump-search-button:hover{border-color:color-mix(in lab,var(--cmux-diff-fg) 24%,transparent)}}#jump-search-button:hover{background-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#jump-search-button:hover{background-color:color-mix(in lab,var(--cmux-diff-fg) 10%,transparent)}}#source-select[hidden],#repo-select[hidden],#base-select[hidden],#jump-select[hidden]{display:none}#jump-select{field-sizing:content;min-width:64px}#jump-search-button{cursor:pointer;background-image:none;min-width:64px;padding-right:9px}#repo-select{field-sizing:content;flex:0 5 auto;min-width:56px}#base-select{flex:0 120px}#source-select:focus,#repo-select:focus,#base-select:focus,#jump-select:focus,#jump-search-button:focus-visible,.base-picker-button:focus-visible,.base-picker-input:focus-visible,.toolbar-icon:focus-visible,.menu-item:focus-visible,.file-entry:focus-visible{outline:2px solid var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#source-select:focus,#repo-select:focus,#base-select:focus,#jump-select:focus,#jump-search-button:focus-visible,.base-picker-button:focus-visible,.base-picker-input:focus-visible,.toolbar-icon:focus-visible,.menu-item:focus-visible,.file-entry:focus-visible{outline:2px solid color-mix(in lab,var(--cmux-diff-fg) 36%,transparent)}}#source-select:focus,#repo-select:focus,#base-select:focus,#jump-select:focus,#jump-search-button:focus-visible,.base-picker-button:focus-visible,.base-picker-input:focus-visible,.toolbar-icon:focus-visible,.menu-item:focus-visible,.file-entry:focus-visible{outline-offset:1px}#base-picker{flex:0 auto;align-items:center;min-width:150px;display:flex;position:relative}.base-picker-button{border:1px solid var(--cmux-diff-fg);align-items:center;gap:5px;min-width:0;max-width:100%;height:24px;padding:0 7px 0 9px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.base-picker-button{border:1px solid color-mix(in lab,var(--cmux-diff-fg) 18%,transparent)}}.base-picker-button{background:var(--cmux-diff-fg);border-radius:6px}@supports (color:color-mix(in lab,red,red)){.base-picker-button{background:color-mix(in lab,var(--cmux-diff-fg) 11%,transparent)}}.base-picker-button{color:var(--cmux-diff-fg);font:inherit;cursor:pointer;font-weight:600}.base-picker-button:hover:not(:disabled),.base-picker-button[aria-expanded=true]{border-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.base-picker-button:hover:not(:disabled),.base-picker-button[aria-expanded=true]{border-color:color-mix(in lab,var(--cmux-diff-fg) 30%,transparent)}}.base-picker-button:hover:not(:disabled),.base-picker-button[aria-expanded=true]{background:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.base-picker-button:hover:not(:disabled),.base-picker-button[aria-expanded=true]{background:color-mix(in lab,var(--cmux-diff-fg) 15%,transparent)}}.base-picker-button:disabled{cursor:default;opacity:.85}.base-picker-button svg{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;opacity:.7;flex:none;width:12px;height:12px}.base-picker-label{align-items:center;gap:5px;min-width:0;display:inline-flex}.base-picker-prefix{color:var(--cmux-diff-fg);flex:none;font-weight:500}@supports (color:color-mix(in lab,red,red)){.base-picker-prefix{color:color-mix(in lab,var(--cmux-diff-fg) 60%,var(--cmux-diff-bg))}}.base-picker-head{text-overflow:ellipsis;white-space:nowrap;min-width:4ch;color:var(--cmux-diff-fg);flex:0 8 auto;font-weight:500;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.base-picker-head{color:color-mix(in lab,var(--cmux-diff-fg) 62%,var(--cmux-diff-bg))}}.base-picker-ref{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:6ch;overflow:hidden}.base-picker-meta{flex:0 1000 auto;align-items:center;gap:5px;min-width:0;display:inline-flex;overflow:hidden}.base-picker-reason{color:var(--cmux-diff-fg);flex:none;font-weight:500}@supports (color:color-mix(in lab,red,red)){.base-picker-reason{color:color-mix(in lab,var(--cmux-diff-fg) 64%,var(--cmux-diff-bg))}}.base-picker-reason{white-space:nowrap}.base-picker-reason-low{opacity:.6;font-style:italic}.base-picker-aheadbehind{font-variant-numeric:tabular-nums;color:var(--cmux-diff-fg);flex:none;font-weight:500}@supports (color:color-mix(in lab,red,red)){.base-picker-aheadbehind{color:color-mix(in lab,var(--cmux-diff-fg) 58%,var(--cmux-diff-bg))}}.base-picker-aheadbehind{white-space:nowrap}@container toolbar-left (max-width:380px){.base-picker-aheadbehind{display:none}}@container toolbar-left (max-width:312px){.base-picker-reason{display:none}}.base-picker-text{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.base-picker-spinner{border:1.6px solid var(--cmux-diff-fg);border-radius:50%;flex:none;width:12px;height:12px}@supports (color:color-mix(in lab,red,red)){.base-picker-spinner{border:1.6px solid color-mix(in lab,var(--cmux-diff-fg) 26%,transparent)}}.base-picker-spinner{border-top-color:var(--cmux-diff-fg);animation:.7s linear infinite base-picker-spin}@keyframes base-picker-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.base-picker-spinner{animation-duration:1.6s}}.base-picker-popover{border:1px solid var(--cmux-diff-fg);flex-direction:column;width:320px;max-width:min(86vw,360px);display:flex;position:fixed}@supports (color:color-mix(in lab,red,red)){.base-picker-popover{border:1px solid color-mix(in lab,var(--cmux-diff-fg) 13%,transparent)}}.base-picker-popover{background:var(--cmux-diff-bg);z-index:120;border-radius:8px;overflow:hidden;box-shadow:0 16px 34px lab(0% none none/.28)}.base-picker-search{border-bottom:1px solid var(--cmux-diff-fg);align-items:center;gap:6px;padding:7px 9px;display:flex}@supports (color:color-mix(in lab,red,red)){.base-picker-search{border-bottom:1px solid color-mix(in lab,var(--cmux-diff-fg) 11%,transparent)}}.base-picker-search svg{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;opacity:.55;flex:none;width:13px;height:13px}.base-picker-input{min-width:0;color:var(--cmux-diff-fg);font:inherit;background:0 0;border:0;outline:none;flex:auto}.base-picker-list{flex:auto;min-height:0;padding:4px;overflow-y:auto}.base-picker-status{color:var(--cmux-diff-fg);padding:12px 9px}@supports (color:color-mix(in lab,red,red)){.base-picker-status{color:color-mix(in lab,var(--cmux-diff-fg) 60%,var(--cmux-diff-bg))}}.base-picker-status{text-align:center}.base-picker-status-error{color:#ff5f56}@supports (color:color-mix(in lab,red,red)){.base-picker-status-error{color:color-mix(in lab,#ff5f56 70%,var(--cmux-diff-fg))}}.base-picker-group-header{letter-spacing:.06em;text-transform:uppercase;color:var(--cmux-diff-fg);padding:8px 8px 3px;font-size:10px;font-weight:600}@supports (color:color-mix(in lab,red,red)){.base-picker-group-header{color:color-mix(in lab,var(--cmux-diff-fg) 52%,var(--cmux-diff-bg))}}.base-picker-more{color:var(--cmux-diff-fg);padding:5px 8px 7px;font-size:11px}@supports (color:color-mix(in lab,red,red)){.base-picker-more{color:color-mix(in lab,var(--cmux-diff-fg) 48%,var(--cmux-diff-bg))}}.base-picker-more{cursor:default;-webkit-user-select:none;user-select:none}.base-picker-row{cursor:pointer;border-radius:6px;align-items:center;gap:8px;min-height:28px;padding:0 8px;display:flex}.base-picker-row-selected{background:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.base-picker-row-selected{background:color-mix(in lab,var(--cmux-diff-fg) 12%,transparent)}}.base-picker-row-primary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--cmux-diff-fg);flex:auto;overflow:hidden}.base-picker-row-primary strong{font-weight:700}.base-picker-row-secondary{text-overflow:ellipsis;white-space:nowrap;text-align:right;min-width:0;max-width:55%;color:var(--cmux-diff-fg);flex:0 auto;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.base-picker-row-secondary{color:color-mix(in lab,var(--cmux-diff-fg) 55%,var(--cmux-diff-bg))}}.base-picker-pill{text-transform:uppercase;letter-spacing:.04em;color:var(--cmux-diff-accent);background:var(--cmux-diff-accent);border-radius:999px;flex:none;padding:1px 6px;font-size:10px;font-weight:600}@supports (color:color-mix(in lab,red,red)){.base-picker-pill{background:color-mix(in lab,var(--cmux-diff-accent) 16%,transparent)}}@media(max-width:760px){#toolbar{grid-template-columns:minmax(0,1fr) minmax(0,auto);grid-template-areas:"source actions""jump actions"}.toolbar-left{grid-area:source}.toolbar-middle{grid-area:jump;justify-content:stretch}.toolbar-actions{grid-area:actions}}.toolbar-icon{width:20px;height:20px;color:var(--cmux-diff-fg);background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.toolbar-icon{color:color-mix(in lab,var(--cmux-diff-fg) 60%,var(--cmux-diff-bg))}}.toolbar-icon{cursor:pointer;padding:0}.toolbar-icon:hover,.toolbar-icon[aria-expanded=true]{border-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.toolbar-icon:hover,.toolbar-icon[aria-expanded=true]{border-color:color-mix(in lab,var(--cmux-diff-fg) 14%,transparent)}}.toolbar-icon:hover,.toolbar-icon[aria-expanded=true]{background:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.toolbar-icon:hover,.toolbar-icon[aria-expanded=true]{background:color-mix(in lab,var(--cmux-diff-fg) 9%,transparent)}}.toolbar-icon:hover,.toolbar-icon[aria-expanded=true],.toolbar-icon[aria-pressed=true]{color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.toolbar-icon[aria-pressed=true]{color:color-mix(in lab,var(--cmux-diff-fg) 78%,var(--cmux-diff-bg))}}.toolbar-icon[hidden]{display:none}.toolbar-icon svg,.menu-item svg{fill:none;stroke:currentColor;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px;display:block}#layout-toggle svg [data-diff-deletion],#layout-toggle svg [data-diff-addition]{stroke:none}#layout-toggle svg [data-diff-deletion]{fill:light-dark(var(--cmux-diff-deletion-fg-light),var(--cmux-diff-deletion-fg-dark))}#layout-toggle svg [data-diff-addition]{fill:light-dark(var(--cmux-diff-addition-fg-light),var(--cmux-diff-addition-fg-dark))}.toolbar-icon svg [data-precision-dot],.menu-item svg [data-precision-dot]{stroke-width:2px}#options-menu{border:1px solid var(--cmux-diff-fg);min-width:246px;padding:8px;position:absolute;top:calc(100% + 7px);right:10px}@supports (color:color-mix(in lab,red,red)){#options-menu{border:1px solid color-mix(in lab,var(--cmux-diff-fg) 13%,transparent)}}#options-menu{background:var(--cmux-diff-bg);z-index:100;border-radius:8px;box-shadow:0 16px 34px lab(0% none none/.28)}#options-menu[hidden]{display:none}.menu-separator{background:var(--cmux-diff-fg);height:1px;margin:7px 6px}@supports (color:color-mix(in lab,red,red)){.menu-separator{background:color-mix(in lab,var(--cmux-diff-fg) 12%,transparent)}}.menu-item{width:100%;min-height:31px;color:var(--cmux-diff-fg);background:0 0;border:0;border-radius:6px;grid-template-columns:22px minmax(0,1fr) 18px;align-items:center;gap:10px;display:grid}@supports (color:color-mix(in lab,red,red)){.menu-item{color:color-mix(in lab,var(--cmux-diff-fg) 86%,var(--cmux-diff-bg))}}.menu-item{font:inherit;text-align:left;padding:0 7px}.menu-item:hover:not(:disabled){background:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.menu-item:hover:not(:disabled){background:color-mix(in lab,var(--cmux-diff-fg) 10%,transparent)}}.menu-item:hover:not(:disabled){color:var(--cmux-diff-fg)}.menu-segment{cursor:default}.menu-segment:hover{background:0 0}.menu-segment-controls{background:0 0;border-radius:7px;justify-self:end;align-items:center;gap:2px;padding:2px;display:inline-flex}.segment-button{width:27px;height:24px;color:var(--cmux-diff-fg);background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.segment-button{color:color-mix(in lab,var(--cmux-diff-fg) 62%,var(--cmux-diff-bg))}}.segment-button{padding:0}.segment-button:hover,.segment-button[aria-pressed=true]{background:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.segment-button:hover,.segment-button[aria-pressed=true]{background:color-mix(in lab,var(--cmux-diff-fg) 12%,transparent)}}.segment-button:hover,.segment-button[aria-pressed=true],.menu-item:disabled{color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.menu-item:disabled{color:color-mix(in lab,var(--cmux-diff-fg) 36%,var(--cmux-diff-bg))}}.menu-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-check{justify-self:end}#content{--cmux-diff-files-width:252px;grid-template-columns:minmax(0,1fr) var(--cmux-diff-files-width);overscroll-behavior:contain;contain:strict;background:0 0;flex:auto;grid-template-rows:minmax(0,1fr);grid-template-areas:"viewer files";min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}body[data-files-hidden=true] #content{grid-template-columns:minmax(0,1fr) 0}body[data-status-only=true] #content{grid-template-columns:minmax(0,1fr);grid-template-areas:"viewer"}#files-sidebar{border-left:1px solid var(--cmux-diff-border);background:var(--cmux-diff-sidebar-bg);contain:strict;opacity:1;flex-direction:column;grid-area:files;width:100%;min-width:0;height:100%;min-height:0;transition:opacity .1s,visibility linear;display:flex;position:relative;overflow:hidden}#files-resize-handle{z-index:3;appearance:none;cursor:col-resize;background:0 0;border:0;outline:none;width:8px;margin:0;padding:0;position:absolute;top:0;bottom:0;left:0}#files-resize-handle:after{content:"";background:0 0;width:1px;position:absolute;top:0;bottom:0;left:0}body[data-files-hidden=true] #files-sidebar{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .1s,visibility 0s linear .1s}body[data-status-only=true] #files-sidebar,#files-sidebar-backdrop{display:none}#files-header{z-index:1;border-bottom:1px solid var(--cmux-diff-border);background:var(--cmux-diff-sidebar-bg);min-height:30px;color:var(--cmux-diff-text-muted);justify-content:space-between;align-items:center;gap:8px;padding:0 7px 0 10px;display:flex;position:relative}#files-title{align-items:center;gap:6px;min-width:0;display:inline-flex}#files-header-actions{flex:none;align-items:center;gap:2px;display:inline-flex}#file-search-toggle{width:24px;height:24px;color:var(--cmux-diff-text-muted);background:0 0;border:0;border-radius:5px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}#file-search-toggle:hover,#file-search-toggle[aria-pressed=true]{background:var(--cmux-diff-hover-bg);color:var(--cmux-diff-fg)}#file-search-toggle svg{fill:none;stroke:currentColor;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}#file-list{background:var(--cmux-diff-sidebar-bg);--trees-bg-override:var(--cmux-diff-sidebar-bg);--trees-fg-override:var(--cmux-diff-text-subtle);--trees-fg-muted-override:var(--cmux-diff-text-muted);--trees-bg-muted-override:var(--cmux-diff-hover-bg);--trees-selected-bg-override:var(--cmux-diff-fg);flex:auto;min-height:0;padding:6px 4px 6px 6px;overflow:hidden}@supports (color:color-mix(in lab,red,red)){#file-list{--trees-selected-bg-override:color-mix(in lab, var(--cmux-diff-fg) 11%, transparent)}}#file-list{--trees-selected-fg-override:var(--cmux-diff-fg);--trees-selected-focused-border-color-override:transparent;--trees-border-color-override:var(--cmux-diff-border);--trees-focus-ring-color-override:var(--cmux-diff-accent)}@supports (color:color-mix(in lab,red,red)){#file-list{--trees-focus-ring-color-override:color-mix(in lab, var(--cmux-diff-accent) 72%, transparent)}}#file-list{--trees-font-family-override:var(--cmux-diff-ui-font-family);--trees-font-size-override:var(--cmux-diff-ui-font-size);--trees-font-weight-semibold-override:500;--trees-density-override:.78;--trees-border-radius-override:5px;--trees-item-padding-x-override:7px;--trees-item-margin-x-override:0;--trees-padding-inline-override:8px;--trees-search-bg-override:var(--cmux-diff-bg)}@supports (color:color-mix(in lab,red,red)){#file-list{--trees-search-bg-override:color-mix(in lab, var(--cmux-diff-bg) 92%, var(--cmux-diff-fg))}}#file-list{--trees-status-added-override:light-dark(var(--cmux-diff-addition-fg-light),var(--cmux-diff-addition-fg-dark));--trees-status-modified-override:var(--cmux-diff-accent);--trees-status-renamed-override:light-dark(#a26300,#ffd166);--trees-status-deleted-override:light-dark(var(--cmux-diff-deletion-fg-light),var(--cmux-diff-deletion-fg-dark))}body[data-loading=false] .diff-loading-placeholder,body[data-loading=false]:not([data-status-only=true]) #loading-layer{display:none}#file-list file-tree-container{width:100%;height:100%;min-height:0;display:block}.file-entry{width:100%;min-height:30px;color:inherit;font:inherit;text-align:left;background:0 0;border:0;border-radius:6px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;padding:3px 7px;display:grid}.file-entry:hover,.file-entry[aria-current=true]{background:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.file-entry:hover,.file-entry[aria-current=true]{background:color-mix(in lab,var(--cmux-diff-fg) 9%,transparent)}}.file-status{width:17px;height:17px;color:var(--cmux-diff-text-muted);border:1px solid;border-radius:5px;justify-content:center;align-items:center;font-size:9px;line-height:1;display:inline-flex}.file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-stats{color:var(--cmux-diff-text-muted);gap:5px;display:inline-flex}.stat-add{color:light-dark(var(--cmux-diff-addition-fg-light),var(--cmux-diff-addition-fg-dark))}.stat-del{color:light-dark(var(--cmux-diff-deletion-fg-light),var(--cmux-diff-deletion-fg-dark))}#viewer{--diffs-font-family:var(--cmux-diff-code-font-family);--diffs-header-font-family:var(--cmux-diff-ui-font-family);--diffs-font-size:var(--cmux-diff-font-size);--diffs-line-height:var(--cmux-diff-line-height);--diffs-bg-selection-override:light-dark(var(--cmux-diff-selection-bg-light),var(--cmux-diff-selection-bg-dark));overscroll-behavior:contain;overflow-anchor:none;contain:strict;border-bottom:1px solid var(--cmux-diff-border);background:0 0;grid-area:viewer;width:100%;min-width:0;height:100%;min-height:0;position:relative;overflow:clip auto}.code-view-root{overscroll-behavior:contain;overflow-anchor:none;contain:strict;width:100%;min-width:0;height:100%;min-height:0;position:relative;overflow:clip auto}@media(max-width:520px){#content,body[data-files-hidden=true] #content{grid-template-columns:minmax(0,1fr);grid-template-areas:"viewer"}#files-sidebar{display:none}#app[data-file-search-open=true] #files-sidebar-backdrop{z-index:44;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:default;background:#00000061;border:0;width:100%;height:100%;margin:0;padding:0;display:block;position:absolute;inset:0}#app[data-file-search-open=true] #files-sidebar-backdrop:focus-visible{outline:2px solid var(--cmux-diff-accent);outline-offset:-2px}#app[data-file-search-open=true] #files-sidebar{z-index:45;visibility:visible;opacity:1;pointer-events:auto;border-left:1px solid var(--cmux-diff-border);background:var(--cmux-diff-bg);isolation:isolate;--cmux-diff-sidebar-bg:var(--cmux-diff-bg);width:min(88vw,360px);max-width:calc(100% - 32px);display:flex;position:absolute;inset:0 0 0 auto;box-shadow:-18px 0 42px #00000057}#app[data-file-search-open=true] #files-resize-handle{display:none}}@media(prefers-reduced-motion:reduce){#files-sidebar{transition:none}}#viewer diffs-container{--diffs-font-family:var(--cmux-diff-code-font-family);--diffs-header-font-family:var(--cmux-diff-ui-font-family);--diffs-font-size:var(--cmux-diff-font-size);--diffs-line-height:var(--cmux-diff-line-height);--diffs-bg-selection-override:light-dark(var(--cmux-diff-selection-bg-light),var(--cmux-diff-selection-bg-dark));contain:layout paint style;flex:auto;width:100%;min-height:30px;display:block;overflow:clip}#viewer diffs-container [data-diffs-header]{overflow-x:clip}#viewer diffs-container [data-diffs-header=default] [data-metadata]{flex-shrink:0}#loading-layer{z-index:4;pointer-events:none;contain:strict;background:0 0;grid-area:viewer;position:absolute;inset:0;overflow:hidden}body[data-status-only=true] #loading-layer{pointer-events:auto;justify-content:center;align-items:center;width:100%;height:100%;padding:32px;display:flex;position:static}#status{z-index:5;border:1px solid var(--cmux-diff-fg);align-items:center;gap:10px;max-width:calc(100% - 24px);min-height:32px;padding:8px 12px;display:flex;position:absolute;top:10px;left:12px}@supports (color:color-mix(in lab,red,red)){#status{border:1px solid color-mix(in lab,var(--cmux-diff-fg) 10%,transparent)}}#status{background:var(--cmux-diff-bg);font-family:var(--cmux-diff-ui-font-family);font-size:13px;line-height:var(--cmux-diff-ui-line-height);color:var(--cmux-diff-fg);border-radius:7px}@supports (color:color-mix(in lab,red,red)){#status{color:color-mix(in lab,var(--cmux-diff-fg) 70%,var(--cmux-diff-bg))}}body[data-status-only=true] #status{text-align:center;text-wrap:balance;width:auto;max-width:340px;min-height:0;color:var(--cmux-diff-fg);background:0 0;border:0;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:0;font-size:14px;line-height:1.55;position:static}@supports (color:color-mix(in lab,red,red)){body[data-status-only=true] #status{color:color-mix(in lab,var(--cmux-diff-fg) 58%,var(--cmux-diff-bg))}}body[data-status-only=true] #status-text{letter-spacing:.005em;font-weight:500}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}#status-icon{display:none}body[data-status-only=true] #status:not([data-error=true]):not([data-pending=true]) #status-icon{background:var(--cmux-diff-fg);border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;display:flex}@supports (color:color-mix(in lab,red,red)){body[data-status-only=true] #status:not([data-error=true]):not([data-pending=true]) #status-icon{background:color-mix(in lab,var(--cmux-diff-fg) 5%,transparent)}}body[data-status-only=true] #status:not([data-error=true]):not([data-pending=true]) #status-icon{border:1px solid var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){body[data-status-only=true] #status:not([data-error=true]):not([data-pending=true]) #status-icon{border:1px solid color-mix(in lab,var(--cmux-diff-fg) 8%,transparent)}}body[data-status-only=true] #status:not([data-error=true]):not([data-pending=true]) #status-icon:before{content:"";opacity:.8;background-color:currentColor;width:26px;height:26px;display:block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3Cpath d='M9 13h6'/%3E%3Cpath d='M9 17h4'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3Cpath d='M9 13h6'/%3E%3Cpath d='M9 17h4'/%3E%3C/svg%3E") 50%/contain no-repeat}#status[data-pending=true]:before,body[data-loading=true] #status:before{content:"";border:2px solid var(--cmux-diff-fg);flex:none;width:14px;height:14px}@supports (color:color-mix(in lab,red,red)){#status[data-pending=true]:before,body[data-loading=true] #status:before{border:2px solid color-mix(in lab,var(--cmux-diff-fg) 20%,transparent)}}#status[data-pending=true]:before,body[data-loading=true] #status:before{border-top-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#status[data-pending=true]:before,body[data-loading=true] #status:before{border-top-color:color-mix(in lab,var(--cmux-diff-fg) 70%,var(--cmux-diff-bg))}}#status[data-pending=true]:before,body[data-loading=true] #status:before{border-radius:50%;animation:.8s linear infinite cmuxDiffPendingSpin}#status[data-error=true]{color:light-dark(#b42318,#ff8a80)}@keyframes cmuxDiffPendingSpin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){#status[data-pending=true]:before,body[data-loading=true] #status:before{animation:none}}#comments-section{border-top:1px solid var(--cmux-diff-border);background:var(--cmux-diff-sidebar-bg);flex-direction:column;flex:none;min-height:0;max-height:40%;display:flex}#comments-header{min-height:30px;color:var(--cmux-diff-text-muted);font-size:var(--cmux-diff-ui-font-size);align-items:center;padding:0 10px;display:flex}#comments-list{flex-direction:column;gap:4px;min-height:0;padding:0 6px 6px;display:flex;overflow-y:auto}.comments-empty{color:var(--cmux-diff-text-muted);font-size:var(--cmux-diff-ui-font-size);padding:2px 7px 6px}.comment-entry{color:var(--cmux-diff-text-subtle);font:inherit;font-size:var(--cmux-diff-ui-font-size);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;flex-direction:column;gap:2px;padding:5px 7px;display:flex}.comment-entry:hover{background:var(--cmux-diff-hover-bg)}.comment-entry-header{justify-content:space-between;align-items:center;gap:6px;display:flex}.comment-entry-location{color:var(--cmux-diff-fg);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.comment-entry-badge{background:var(--cmux-diff-muted-bg);color:var(--cmux-diff-text-muted);font-size:calc(var(--cmux-diff-ui-font-size) - 1px);border-radius:4px;flex:none;padding:0 5px}.comment-entry-message{text-overflow:ellipsis;white-space:nowrap;color:var(--cmux-diff-text-muted);overflow:hidden}.comment-composer,.comment-card{border:1px solid var(--cmux-diff-border);background:light-dark(var(--cmux-diff-bg),var(--cmux-diff-bg));border-radius:10px;flex-direction:column;gap:8px;max-width:680px;margin:8px 12px;padding:10px 12px;display:flex}@supports (color:color-mix(in lab,red,red)){.comment-composer,.comment-card{background:light-dark(color-mix(in lab,var(--cmux-diff-bg) 92%,#fff),color-mix(in lab,var(--cmux-diff-bg) 90%,#fff))}}.comment-composer,.comment-card{color:var(--cmux-diff-fg);font-family:var(--cmux-diff-ui-font-family);font-size:13px;line-height:1.45;box-shadow:0 1px 2px lab(0% none none/.1),0 2px 8px lab(0% none none/.06)}.comment-composer:focus-within{border-color:var(--cmux-diff-accent)}@supports (color:color-mix(in lab,red,red)){.comment-composer:focus-within{border-color:color-mix(in lab,var(--cmux-diff-accent) 60%,var(--cmux-diff-border))}}.comment-composer:focus-within{box-shadow:0 0 0 3px var(--cmux-diff-accent)}@supports (color:color-mix(in lab,red,red)){.comment-composer:focus-within{box-shadow:0 0 0 3px color-mix(in lab,var(--cmux-diff-accent) 18%,transparent)}}.comment-composer-input{box-sizing:border-box;resize:none;width:100%;min-height:52px;color:var(--cmux-diff-fg);font:inherit;background:0 0;border:0;padding:0}.comment-composer-input::placeholder{color:var(--cmux-diff-text-muted)}.comment-composer-input:focus-visible{outline:none}.comment-composer-footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.comment-composer-buttons{gap:6px;display:inline-flex}.comment-button{color:var(--cmux-diff-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 12px;font-weight:500}.comment-button:hover:not(:disabled){background:var(--cmux-diff-hover-bg);color:var(--cmux-diff-fg)}.comment-button:disabled{opacity:.5;cursor:default}.comment-button-primary{background:var(--cmux-diff-accent);color:light-dark(#fff,#08233f)}.comment-button-primary:hover:not(:disabled){background:var(--cmux-diff-accent)}@supports (color:color-mix(in lab,red,red)){.comment-button-primary:hover:not(:disabled){background:color-mix(in lab,var(--cmux-diff-accent) 86%,var(--cmux-diff-fg))}}.comment-button-primary:hover:not(:disabled){color:light-dark(#fff,#08233f)}.comment-card-header{justify-content:space-between;align-items:center;gap:8px;min-height:20px;display:flex}.comment-card-location{font-weight:500;font-size:calc(var(--cmux-diff-ui-font-size) - 1px);color:var(--cmux-diff-text-muted)}.comment-card-actions{opacity:0;gap:2px;transition:opacity .1s;display:inline-flex}.comment-card:hover .comment-card-actions,.comment-card:focus-within .comment-card-actions{opacity:1}.comment-card-action{color:var(--cmux-diff-text-muted);font:inherit;font-size:calc(var(--cmux-diff-ui-font-size) - 1px);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:1px 6px}.comment-card-action:hover{background:var(--cmux-diff-hover-bg);color:var(--cmux-diff-fg)}.comment-card-message{white-space:pre-wrap;overflow-wrap:anywhere}#diff-find-anchor{z-index:60;pointer-events:none;position:absolute;top:0;right:0}#diff-find-bar{pointer-events:auto;border:1px solid var(--cmux-diff-fg);align-items:center;gap:4px;margin:10px 22px 0 0;padding:5px 6px;display:flex}@supports (color:color-mix(in lab,red,red)){#diff-find-bar{border:1px solid color-mix(in lab,var(--cmux-diff-fg) 13%,transparent)}}#diff-find-bar{background:var(--cmux-diff-bg);border-radius:8px;box-shadow:0 16px 34px lab(0% none none/.28)}#diff-find-input{background:var(--cmux-diff-fg);border:1px solid #0000;border-radius:6px;width:180px;padding:3px 7px}@supports (color:color-mix(in lab,red,red)){#diff-find-input{background:color-mix(in lab,var(--cmux-diff-fg) 7%,transparent)}}#diff-find-input{color:var(--cmux-diff-fg);font-family:var(--cmux-diff-ui-font-family);font-size:var(--cmux-diff-ui-font-size);outline:none}#diff-find-input:focus-visible{border-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#diff-find-input:focus-visible{border-color:color-mix(in lab,var(--cmux-diff-fg) 24%,transparent)}}#diff-find-count{text-align:right;min-width:40px;color:var(--cmux-diff-text-muted);font-family:var(--cmux-diff-ui-font-family);font-size:calc(var(--cmux-diff-ui-font-size) - 1px);font-variant-numeric:tabular-nums;padding:0 4px}#diff-find-bar .toolbar-icon:disabled{opacity:.4;cursor:default}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}`;function Co(){const t=document.getElementById("cmux-diff-viewer-config");if(!t?.textContent)throw new Error("Missing cmux diff viewer config");return JSON.parse(t.textContent)}function Fo(t){const e=Co();rn("diff",Io),dn(We(e.payload?.appearance)),typeof e.payload?.title=="string"&&e.payload.title.trim()!==""&&(document.title=e.payload.title);const n=Et(e.payload?.labels,{assertMissing:_t()}),r=Tr(e,n);document.body.dataset.filesHidden="false",xe(r);const i=on(()=>s.jsx(bi,{config:e,initialStatus:r}));Ut.createRoot(t).render(s.jsx(Ht,{router:i}))}export{Fo as mountDiffSurface}; +`;function Ot(){return typeof CSS<"u"&&"highlights"in CSS&&typeof Highlight=="function"}function At(){Ot()&&(CSS.highlights.delete(Qe),CSS.highlights.delete(Xe))}function Je(t,e=[]){for(const n of t.querySelectorAll("*")){const r=n.shadowRoot;r!=null&&(e.push(r),Je(r,e))}return e}const bt="[data-line-type]:is([data-line], [data-no-newline])";function Yr(t,e){const n=Array.from(t.querySelectorAll(bt));for(const r of e)n.push(...Array.from(r.querySelectorAll(bt)));return n}const Qr="[data-gutter], [data-gutter-buffer], [data-line-annotation], [data-gutter-utility-slot]";function Xr(t){const e=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode(o){const a=o.parentElement;return a==null||a.closest(Qr)!=null?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),n=[],r=[];let i="";for(let o=e.nextNode();o!=null;o=e.nextNode())n.push(o),r.push(i.length),i+=o.textContent??"";return{nodes:n,offsets:r,text:i}}function Jr(t,e,n){const r=(l,f)=>{for(let c=t.nodes.length-1;c>=0;c-=1){const d=t.offsets[c],u=t.nodes[c].textContent?.length??0;if(f?l>d&&l<=d+u:l>=d&&l(d.getAttribute("data-line")===i||d.getAttribute("data-alt-line")===i)&&Zr(d,r.side));if(o.length===0)return null;if(o.length===1)return o[0];const a=n.activeItemSpan;if(a!=null){const d=o.filter(u=>{const x=vt(u,t);return x>=a.top-1&&x=1)return d[0]}const l=t.scrollTop+t.clientHeight/2;let f=null,c=Number.POSITIVE_INFINITY;for(const d of o){const u=Math.abs(vt(d,t)-l);u{if(!(a.has(p)||typeof CSSStyleSheet!="function"))try{o??=(()=>{const h=new CSSStyleSheet;return h.replaceSync(Kr),h})(),p.adoptedStyleSheets=[...p.adoptedStyleSheets,o],a.add(p)}catch{}},c=new MutationObserver(()=>x()),d=()=>{const p=Je(e);for(const h of p)f(h),l.has(h)||(c.observe(h,{childList:!0,subtree:!0,characterData:!0}),l.add(h));return p},u=()=>{if(r=null,i)return;const p=d();ni(e,n(),p)},x=()=>{r==null&&!i&&(r=requestAnimationFrame(u))};return f(document),e.addEventListener("scroll",x,{passive:!0}),c.observe(e,{childList:!0,subtree:!0,characterData:!0}),d(),{repaint:x,dispose(){i=!0,r!=null&&(cancelAnimationFrame(r),r=null),e.removeEventListener("scroll",x),c.disconnect(),At()}}}function ii(t){const e=E.c(50),{items:n,open:r,query:i,dispatch:o,codeViewRef:a,viewerContainerRef:l}=t;let f;e[0]!==r||e[1]!==i?(f=r?i.toLowerCase():"",e[0]=r,e[1]=i,e[2]=f):f=e[2];const c=f;let d;e[3]!==n||e[4]!==c?(d=c===""?[]:Hr(n,c),e[3]=n,e[4]=c,e[5]=d):d=e[5];const u=d,[x,p]=S.useState(0),h=S.useRef(0),m=S.useRef(null),g=S.useRef(""),b=S.useRef(null),v=S.useRef(!1);let w;e[6]===Symbol.for("react.memo_cache_sentinel")?(w={query:"",active:null,activeItemSpan:null},e[6]=w):w=e[6];const k=S.useRef(w),C=u.length===0?0:Math.min(x,u.length-1),M=u[C]??null;let R;e[7]!==a?(R=$=>{a.current?.scrollTo({type:"line",id:$.itemId,lineNumber:$.lineNumber,side:$.side,align:"center",behavior:"instant"})},e[7]=a,e[8]=R):R=e[8];const j=R;let I;e[9]!==a||e[10]!==n?(I=$=>{const y=a.current?.getInstance();if(y==null)return null;const F=y.getTopForItem($.itemId);if(typeof F!="number")return null;let _=Number.POSITIVE_INFINITY;const Y=n.findIndex(q=>q.id===$.itemId);for(let q=Y+1;q>=0&&qF){_=ee;break}}return{top:F,bottom:_}},e[9]=a,e[10]=n,e[11]=I):I=e[11];const P=I;let L,U;e[12]!==u||e[13]!==c||e[14]!==j?(L=()=>{const $=g.current!==c;g.current=c;const y=qr(m.current,u,h.current);if(y!==h.current&&p(y),$){const F=u[y];F!=null&&j(F)}},U=[u,c,j],e[12]=u,e[13]=c,e[14]=j,e[15]=L,e[16]=U):(L=e[15],U=e[16]),S.useEffect(L,U);let O;e[17]!==l?(O=()=>{if(!v.current||b.current!=null)return;const $=l.current;$!=null&&(b.current=ri({container:$,getSnapshot:()=>k.current}),b.current.repaint())},e[17]=l,e[18]=O):O=e[18];const T=O;let z,W;e[19]!==P||e[20]!==M||e[21]!==C||e[22]!==T||e[23]!==c?(z=()=>{h.current=C,m.current=M,k.current={query:c,active:M,activeItemSpan:M==null?null:P(M)},T(),b.current?.repaint()},W=[c,C,M,P,T],e[19]=P,e[20]=M,e[21]=C,e[22]=T,e[23]=c,e[24]=z,e[25]=W):(z=e[24],W=e[25]),S.useEffect(z,W);let Q;e[26]!==T?(Q=$=>{v.current=$!=null,$!=null?T():(b.current?.dispose(),b.current=null)},e[26]=T,e[27]=Q):Q=e[27];const G=Q;let H;e[28]!==u||e[29]!==j?(H=$=>{const y=u[$];y!=null&&(p($),j(y))},e[28]=u,e[29]=j,e[30]=H):H=e[30];const B=H;let D;e[31]!==B||e[32]!==u.length?(D=()=>{u.length>0&&B((h.current+1)%u.length)},e[31]=B,e[32]=u.length,e[33]=D):D=e[33];const K=D;let N;e[34]!==B||e[35]!==u.length?(N=()=>{u.length>0&&B((h.current-1+u.length)%u.length)},e[34]=B,e[35]=u.length,e[36]=N):N=e[36];const X=N;let J;e[37]!==o?(J=$=>{o({type:"set-find-query",query:$})},e[37]=o,e[38]=J):J=e[38];const te=J;let Z;e[39]!==o?(Z=()=>{o({type:"set-find-open",open:!1})},e[39]=o,e[40]=Z):Z=e[40];const ne=Z;let re;return e[41]!==M||e[42]!==C||e[43]!==ne||e[44]!==G||e[45]!==K||e[46]!==X||e[47]!==u||e[48]!==te?(re={matches:u,activeIndex:C,activeMatch:M,setQuery:te,goToNext:K,goToPrevious:X,closeFind:ne,findBarRef:G},e[41]=M,e[42]=C,e[43]=ne,e[44]=G,e[45]=K,e[46]=X,e[47]=u,e[48]=te,e[49]=re):re=e[49],re}function oi(t,e){const n=E.c(4);let r,i;n[0]!==e||n[1]!==t?(r=()=>{const o=a=>{const l=a.metaKey||a.ctrlKey,f=a.key.toLowerCase();if(l&&!a.shiftKey&&!a.altKey&&f==="f"){a.preventDefault(),t({type:"request-find"});return}const c=e.current;if(c.open){if(l&&!a.altKey&&f==="g"){a.preventDefault(),a.shiftKey?c.controller.goToPrevious():c.controller.goToNext();return}if(a.key==="Escape"){const d=a.target;d instanceof Element&&d.closest("#viewer, #diff-find-bar")!=null&&c.controller.closeFind()}}};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},i=[t,e],n[0]=e,n[1]=t,n[2]=r,n[3]=i):(r=n[2],i=n[3]),S.useEffect(r,i)}const ai=/\b(Android|iPhone|iPad|iPod|Mobile)\b/i;function si(t){return ai.test(t??"")?1:3}function li(){return si(typeof navigator>"u"?void 0:navigator.userAgent)}const zt=new URL("./diff-worker.mjs",import.meta.url);function De(t,e){e&&(e.dataset.cmuxDiffWorkerUrl=t.workerURL,e.dataset.cmuxDiffWorkersCreated=String(t.created),e.dataset.cmuxDiffWorkerMessages=String(t.messages),e.dataset.cmuxDiffWorkerErrors=String(t.errors))}function ci(t){return{workerURL:t.href,created:0,messages:0,errors:0}}const di=ci(zt);function fi(){return typeof document>"u"?void 0:document.documentElement}function ui(t=zt,e=di,n=Worker,r=fi()){return{poolSize:li(),workerFactory:()=>{const i=new n(t,{type:"module"});return e&&(e.created+=1,De(e,r),i.addEventListener("message",()=>{e.messages+=1,De(e,r)}),i.addEventListener("error",()=>{e.errors+=1,De(e,r)})),i}}}const wt=new Set,pi="00000000-0000-0000-0000-000000000000",mi=["82%","64%","76%","58%","70%","46%"],hi=["58%","88%","72%","94%","64%","82%","52%","78%"];function gi(t,e){const n=t.payload??{},{layout:r,...i}=be(n.viewerOptions);return{activeItemId:"",activeTreePath:"",comments:[],copyFeedback:"",draft:null,fileSearchOpen:!1,fileSearchRequest:0,filesWidth:252,filesVisible:!0,findOpen:!1,findQuery:"",findRequest:0,items:[],languages:["text"],metrics:null,options:{collapsed:!1,diffIndicators:"bars",expandUnchanged:!1,lineNumbers:!0,showBackgrounds:!0,wordDiffs:!1,wordWrap:!1,...i,layout:Ii(n)},optionsOpen:!1,renderGeneration:0,status:e,treeSource:null}}function xi(t,e){switch(e.type){case"apply-persisted-options":{const{layout:n,...r}=e.prefs;return{...t,options:{...t.options,...r,...e.allowLayout&&n!=null?{layout:n}:{}}}}case"refresh":return{...t,activeItemId:"",activeTreePath:"",draft:null,items:[],languages:["text"],metrics:null,renderGeneration:t.renderGeneration+1,status:e.status,treeSource:null};case"append-items":{const n=e.items.map(i=>{fo(i);const o=nr(i,t.comments,t.draft);return t.options.collapsed?{...o,collapsed:!0}:o}),r=po(t.languages,n.flatMap(uo));return{...t,activeItemId:t.activeItemId||n[0]?.id||"",items:[...t.items,...n],languages:r,status:t.status.loading?se("",{loading:!1}):t.status}}case"reset-diff":return{...t,activeItemId:"",activeTreePath:"",draft:null,items:[],languages:["text"],metrics:null,status:e.status,treeSource:null};case"remove-comment":{const n=t.comments.filter(r=>r.id!==e.id);return{...t,comments:n,items:Ie(t.items,n,t.draft)}}case"rename-item":return{...t,activeItemId:t.activeItemId===e.oldId?e.newId:t.activeItemId,draft:t.draft?.itemId===e.oldId?{...t.draft,itemId:e.newId}:t.draft,items:t.items.map(n=>n.id===e.oldId||n.id===e.newId?{...n,id:e.newId,version:(n.version??0)+1}:n)};case"set-active-item":return{...t,activeItemId:e.itemId,activeTreePath:e.treePath??t.activeTreePath};case"replace-comments":return{...t,comments:e.comments,draft:null,items:Ie(t.items,e.comments,null)};case"set-copy-feedback":return{...t,copyFeedback:e.message};case"set-draft":return{...t,draft:e.draft,items:Ie(t.items,t.comments,e.draft)};case"set-file-search-open":return{...t,fileSearchOpen:e.open,filesVisible:e.open?!0:t.filesVisible};case"request-file-search":return{...t,fileSearchOpen:!0,fileSearchRequest:t.fileSearchRequest+1,filesVisible:!0};case"set-find-open":return{...t,findOpen:e.open};case"set-find-query":return{...t,findQuery:e.query};case"request-find":return{...t,findOpen:!0,findRequest:t.findRequest+1};case"set-files-width":return{...t,filesWidth:e.width};case"set-files-visible":return{...t,filesVisible:e.visible};case"set-metrics":return{...t,metrics:e.metrics};case"set-option":return e.key==="collapsed"?{...t,options:{...t.options,collapsed:!!e.value},items:t.items.map(n=>({...n,collapsed:!!e.value,version:(n.version??0)+1}))}:{...t,options:{...t.options,[e.key]:e.value}};case"set-options-open":return{...t,optionsOpen:e.open};case"set-status":return{...t,status:e.status};case"set-tree-source":{const n=e.source,r=t.activeItemId?n.treePathByItemId.get(t.activeItemId)??t.activeTreePath:t.activeTreePath;return{...t,activeTreePath:r,treeSource:n}}case"upsert-comment":{const r=t.comments.some(i=>i.id===e.comment.id)?t.comments.map(i=>i.id===e.comment.id?e.comment:i):[...t.comments,e.comment];return{...t,comments:r,items:Ie(t.items,r,t.draft)}}}}function bi({config:t,initialStatus:e}){const n=t.payload??{},r=S.useMemo(()=>Et(n.labels,{assertMissing:_t()}),[n.labels]),i=We(n.appearance),o=yo(n.transport),[a,l]=S.useState(Le(n.sessionSource)?n.sessionSource:null),[f,c]=S.useState(a),d=S.useRef(new Map);a?.kind==="branch"&&!d.current.has(a.repoRoot)&&d.current.set(a.repoRoot,a);const[u,x]=S.useState(n.patchURL),[p,h]=S.useReducer(xi,gi(t,e)),m=Re(p),g=S.useRef(null),b=S.useRef(0),v=S.useRef(null),w=S.useRef(null),k=S.useRef(null),C=ui(),M=Cr(p.options,i,p.languages),R=typeof n.repoRoot=="string"&&n.repoRoot!==""?n.repoRoot:null,j=ve(f??a)??R;S.useEffect(()=>{const y=typeof n.title=="string"?n.title.trim():"";if(y==="")return;const F=f??a;if(F?.kind==="patch"){document.title=y;return}const _=ve(F)??R,Y=Array.isArray(n.repoOptions)?n.repoOptions.find(ee=>ee?.value===_):void 0,q=typeof Y?.label=="string"?Y.label.trim():"";document.title=q===""?y:`${y} — ${q}`},[a,n.repoOptions,n.title,R,f]);const I=qe()&&j!=null,P=dr(n),L=wi({bridgeAvailable:I,dispatch:h,latestState:m,repoRoot:j}),U=Ir(p.options,i);U.onGutterUtilityClick=L.onGutterUtilityClick;const O=S.useCallback(()=>{const y=w.current;return o?y?(w.current=null,o.request({method:"sessionClose",params:y}).then(()=>{}).catch(()=>{w.current||(w.current=y)})):typeof n.capabilityToken!="string"?Promise.resolve():$t(o,{sessionId:pi,capabilityToken:n.capabilityToken}):Promise.resolve()},[n.capabilityToken,o]),T=S.useCallback(y=>{y.kind==="branch"&&d.current.set(y.repoRoot,y),c(y)},[]);go(p),mo(n,r,h,o),ao(t,o,r,h,m,x,w,O,a,T,p.renderGeneration),Mi(n,h),ur(I?j:null,L.onLoaded),bo(p.optionsOpen,h),wo(p.fileSearchOpen,h);const z=(y,F)=>{const _=y.metadata;return _.kind==="draft"?s.jsx(Rt,{labels:P,onCancel:()=>h({type:"set-draft",draft:null}),onSave:Y=>L.saveDraft(F,Y)}):s.jsx(fr,{comment:_.comment,labels:P,onDelete:()=>L.remove(_.comment),onSaveMessage:Y=>L.editMessage(_.comment,Y,F.fileDiff)})},W=Number.isFinite(p.metrics?.completedAt)&&(p.metrics?.completedAt??0)>0,Q=rr(p.items,p.comments,W),G=y=>{y.itemId!=null&&(y.anchor.state==="outdated"?g.current?.scrollTo({type:"item",id:y.itemId,align:"start",behavior:"smooth-auto"}):g.current?.scrollTo({type:"line",id:y.itemId,lineNumber:y.anchor.line,side:y.comment.side,align:"center",behavior:"smooth-auto"}),h({type:"set-active-item",itemId:y.itemId,treePath:p.treeSource?.treePathByItemId.get(y.itemId)}))},H=p.treeSource?.treePathByItemId.get(p.activeItemId)??p.activeTreePath,B=S.useRef(-1),D=S.useCallback(y=>{const F=m.current,_=ko(y,F.items);_&&(B.current=-1,g.current?.scrollTo({type:"item",id:_,align:"start",behavior:"smooth-auto"}),h({type:"set-active-item",itemId:_,treePath:F.treeSource?.treePathByItemId.get(_)}))},[m]),K=S.useCallback(y=>{const F=m.current,_=jo(F.items,b.current,q=>g.current?.getInstance()?.getTopForItem(q)),Y=So(_||F.activeItemId,F.items,y);Y&&D(Y)},[m,D]),N=S.useCallback(y=>{const F=m.current,_=_r(F.items),Y=Er(_,B.current,F.activeItemId,y);if(Y<0)return;const q=_[Y];B.current=Y,g.current?.scrollTo({type:"line",id:q.itemId,lineNumber:q.lineNumber,side:q.side,align:"center",behavior:"smooth-auto"}),h({type:"set-active-item",itemId:q.itemId,treePath:F.treeSource?.treePathByItemId.get(q.itemId)})},[m]),X=S.useCallback(y=>{b.current=y},[]),J=ii({items:p.items,open:p.findOpen,query:p.findQuery,dispatch:h,codeViewRef:g,viewerContainerRef:k}),te=Re({open:p.findOpen,controller:J});oi(h,te),xo(k,h,K,N,te);const Z=y=>{xe(y),h({type:"set-status",status:y})},ne=y=>{xt({layout:y}),h({type:"set-option",key:"layout",value:y})},re=(y,F)=>{h({type:"set-option",key:y,value:F}),y!=="collapsed"&&xt({[y]:F})},$=()=>{if(Vt(n,o,a)){O().then(()=>window.location.reload());return}B.current=-1;const y=se(r("loadingDiff"),{pending:!0});xe(y),h({type:"refresh",status:y}),x(void 0),O()};return s.jsxs("div",{id:"app","data-file-search-open":p.fileSearchOpen,children:[s.jsx(Li,{config:t,transport:o,label:r,onCopyGitApply:async()=>{try{const y=await ln(u,r,v.current);h({type:"set-copy-feedback",message:y})}catch{h({type:"set-copy-feedback",message:r("copyFailedGitApplyCommand")})}},onJump:D,onNavigate:y=>{Z(se(r("loadingDiff"),{pending:!0})),O(),window.location.href=an(y)},activeSessionSource:f??a,onSelectSessionSource:y=>{const F=f??a,_=y.kind==="branch"&&(F?.kind!=="branch"||y.baseRef==null)?d.current.get(y.repoRoot)??y:y;_.kind==="branch"&&d.current.set(_.repoRoot,_);const Y=se(r("loadingDiff"),{pending:!0});xe(Y),h({type:"reset-diff",status:Y}),x(void 0),O(),c(_),l(_)},onReload:$,onSetLayout:ne,onSetOption:re,dispatch:h,state:p}),s.jsxs("section",{id:"content",style:{"--cmux-diff-files-width":`${p.filesWidth}px`},children:[s.jsx(vi,{label:r,onClose:()=>et(h),open:p.fileSearchOpen}),s.jsx(Wi,{commentEntries:Q,commentLabels:P,hasDraft:p.draft!=null,label:r,onSelectComment:G,onSelectItem:D,selectedPath:H,dispatch:h,state:p}),s.jsxs("main",{id:"viewer","aria-label":r("diffViewer"),children:[p.findOpen?s.jsx(Ur,{controller:J,label:r,query:p.findQuery,requestToken:p.findRequest}):null,p.items.length>0?s.jsxs(qt,{poolOptions:C,highlighterOptions:M,children:[s.jsx(Ri,{codeViewRef:g,highlighterOptions:M}),s.jsx(Kt,{ref:g,className:"code-view-root",containerRef:k,items:p.items,onScroll:X,options:U,renderHeaderMetadata:y=>s.jsx(_n,{fileDiff:y.fileDiff,label:r}),renderAnnotation:(y,F)=>z(y,F)})]}):null]}),s.jsx(Qi,{label:r,status:p.status})]}),s.jsx("textarea",{ref:v,"aria-hidden":"true",readOnly:!0,tabIndex:-1,className:"copy-fallback-textarea"})]})}function vi(t){const e=E.c(8),{label:n,onClose:r,open:i}=t;if(!i)return null;let o;e[0]!==n?(o=n("hideFileSearch"),e[0]=n,e[1]=o):o=e[1];let a;e[2]!==n?(a=n("hideFileSearch"),e[2]=n,e[3]=a):a=e[3];let l;return e[4]!==r||e[5]!==o||e[6]!==a?(l=s.jsx("button",{id:"files-sidebar-backdrop",type:"button","aria-controls":"files-sidebar","aria-label":o,title:a,onClick:r}),e[4]=r,e[5]=o,e[6]=a,e[7]=l):l=e[7],l}function wi(t){const e=E.c(26),{bridgeAvailable:n,dispatch:r,latestState:i,repoRoot:o}=t,a=Re(o);let l;e[0]!==r?(l=v=>r({type:"replace-comments",comments:v}),e[0]=r,e[1]=l):l=e[1];const f=l;let c;e[2]!==r?(c=(v,w)=>{const k=v.side==="deletions"?"deletions":"additions";r({type:"set-draft",draft:{itemId:w.item.id,side:k,startLine:Math.min(v.start,v.end),endLine:Math.max(v.start,v.end)}})},e[2]=r,e[3]=c):c=e[3];const d=c;let u;e[4]!==a||e[5]!==n||e[6]!==r||e[7]!==i||e[8]!==o?(u=(v,w)=>{const k=i.current.draft;if(k==null||k.itemId!==v.id||w.trim()==="")return;const C={filePath:pe(v.fileDiff,""),side:k.side,startLine:k.startLine,endLine:k.endLine,lineText:Ue(v.fileDiff,k.side,k.endLine)??"",message:w},M={...C,submissionText:ut(C,v.fileDiff)};(n&&o!=null?ft(o,M):Promise.resolve(ji(M))).then(j=>{a.current===o&&(r({type:"upsert-comment",comment:j}),r({type:"set-draft",draft:null}))}).catch(Si)},e[4]=a,e[5]=n,e[6]=r,e[7]=i,e[8]=o,e[9]=u):u=e[9];const x=u;let p;e[10]!==a||e[11]!==n||e[12]!==r||e[13]!==o?(p=(v,w,k)=>{if(w.trim()==="")return;const C={...v,message:w,updatedAt:new Date().toISOString()},M={...C,submissionText:ut(C,k)};(n&&o!=null?ft(o,M):Promise.resolve(M)).then(j=>{a.current===o&&r({type:"upsert-comment",comment:j})}).catch(ki)},e[10]=a,e[11]=n,e[12]=r,e[13]=o,e[14]=p):p=e[14];const h=p;let m;e[15]!==a||e[16]!==n||e[17]!==r||e[18]!==o?(m=v=>{const w=o;n&&o!=null&&or(o,v.id).catch(yi),a.current===w&&r({type:"remove-comment",id:v.id})},e[15]=a,e[16]=n,e[17]=r,e[18]=o,e[19]=m):m=e[19];const g=m;let b;return e[20]!==h||e[21]!==d||e[22]!==f||e[23]!==g||e[24]!==x?(b={editMessage:h,onGutterUtilityClick:d,onLoaded:f,remove:g,saveDraft:x},e[20]=h,e[21]=d,e[22]=f,e[23]=g,e[24]=x,e[25]=b):b=e[25],b}function yi(t){return console.warn("cmux diff comment delete failed",t)}function ki(t){return console.warn("cmux diff comment edit failed",t)}function Si(t){return console.warn("cmux diff comment save failed",t)}function ji(t){const e=new Date().toISOString();return{...t,id:crypto.randomUUID(),createdAt:e,updatedAt:e}}function Ii(t){const e=Ci(t.layout);return t.layoutSource==="explicit"&&e?e:Ke().layout??e??"unified"}function Ci(t){return t==="split"||t==="unified"?t:null}function Mi(t,e){const n=E.c(4),r=S.useRef(!1);let i,o;n[0]!==e||n[1]!==t?(i=()=>{r.current||(r.current=!0,Dr().then(a=>{e({type:"apply-persisted-options",prefs:a,allowLayout:t.layoutSource!=="explicit"})}).catch(Pi))},o=[e,t],n[0]=e,n[1]=t,n[2]=i,n[3]=o):(i=n[2],o=n[3]),S.useEffect(i,o)}function Pi(){}function Ri(t){const{codeViewRef:e,highlighterOptions:n}=t;return Xi(n,e),null}function Li(t){const e=E.c(71),{activeSessionSource:n,config:r,dispatch:i,label:o,onCopyGitApply:a,onJump:l,onNavigate:f,onSelectSessionSource:c,onReload:d,onSetLayout:u,onSetOption:x,state:p,transport:h}=t;let m;e[0]!==r.payload?(m=r.payload??{},e[0]=r.payload,e[1]=m):m=e[1];const g=m,b=typeof g.externalURL=="string"&&g.externalURL.length>0?g.externalURL:null,v=S.useRef(null),w=Nr(v);let k;if(e[2]!==b||e[3]!==g||e[4]!==w){const X=[{id:"files-toggle",width:Oe},{id:"layout-toggle",width:Oe},...b?[{id:"external-link",width:Oe}]:[]];k=w==null?new Set:new Set(Fr({available:w,reserved:Ti+(Ni(g)?Fi:0),items:X}).overflow),e[2]=b,e[3]=g,e[4]=w,e[5]=k}else k=e[5];const C=k,M=!C.has("files-toggle"),R=!C.has("layout-toggle"),j=b!=null&&!C.has("external-link");let I;e[6]!==n||e[7]!==o||e[8]!==f||e[9]!==c||e[10]!==g||e[11]!==h?(I=s.jsx(_i,{activeSessionSource:n,label:o,onNavigate:f,onSelectSessionSource:c,payload:g,transport:h}),e[6]=n,e[7]=o,e[8]=f,e[9]=c,e[10]=g,e[11]=h,e[12]=I):I=e[12];let P;e[13]!==i?(P=()=>i({type:"set-file-search-open",open:!0}),e[13]=i,e[14]=P):P=e[14];let L;e[15]!==o||e[16]!==l||e[17]!==p.activeItemId||e[18]!==p.fileSearchOpen||e[19]!==p.items||e[20]!==P?(L=s.jsx("div",{className:"toolbar-middle flex min-w-0 flex-1 items-center justify-center gap-1.5",children:s.jsx($i,{items:p.items,label:o,onJump:l,onOpenSearch:P,searchOpen:p.fileSearchOpen,selectedItemId:p.activeItemId})}),e[15]=o,e[16]=l,e[17]=p.activeItemId,e[18]=p.fileSearchOpen,e[19]=p.items,e[20]=P,e[21]=L):L=e[21];let U;e[22]!==b||e[23]!==o||e[24]!==j?(U=j?s.jsx("a",{id:"external-link",className:"toolbar-icon",href:b??void 0,target:"_blank",rel:"noreferrer",title:o("openSourceURL"),"aria-label":o("openSourceURL"),children:s.jsx(ie,{name:"external"})}):null,e[22]=b,e[23]=o,e[24]=j,e[25]=U):U=e[25];let O;e[26]!==o||e[27]!==u||e[28]!==R||e[29]!==p.options?(O=R?s.jsx("button",{id:"layout-toggle",className:"toolbar-icon",type:"button",title:p.options.layout==="split"?o("switchToUnifiedDiff"):o("switchToSplitDiff"),"aria-label":p.options.layout==="split"?o("switchToUnifiedDiff"):o("switchToSplitDiff"),onClick:()=>u(p.options.layout==="split"?"unified":"split"),children:s.jsx(ie,{name:p.options.layout})}):null,e[26]=o,e[27]=u,e[28]=R,e[29]=p.options,e[30]=O):O=e[30];let T;e[31]!==o?(T=o("options"),e[31]=o,e[32]=T):T=e[32];let z;e[33]!==o?(z=o("options"),e[33]=o,e[34]=z):z=e[34];let W;e[35]!==i||e[36]!==p.optionsOpen?(W=()=>i({type:"set-options-open",open:!p.optionsOpen}),e[35]=i,e[36]=p.optionsOpen,e[37]=W):W=e[37];let Q;e[38]===Symbol.for("react.memo_cache_sentinel")?(Q=s.jsx(ie,{name:"dots"}),e[38]=Q):Q=e[38];let G;e[39]!==p.optionsOpen||e[40]!==W||e[41]!==T||e[42]!==z?(G=s.jsx("button",{id:"options-button",className:"toolbar-icon",type:"button",title:T,"aria-label":z,"aria-expanded":p.optionsOpen,"aria-controls":"options-menu",onClick:W,children:Q}),e[39]=p.optionsOpen,e[40]=W,e[41]=T,e[42]=z,e[43]=G):G=e[43];let H;e[44]!==i||e[45]!==o||e[46]!==M||e[47]!==p.filesVisible?(H=M?s.jsx("button",{id:"files-toggle",className:"toolbar-icon",type:"button",title:p.filesVisible?o("hideFiles"):o("showFiles"),"aria-label":p.filesVisible?o("hideFiles"):o("showFiles"),"aria-pressed":p.filesVisible,onClick:()=>i({type:"set-files-visible",visible:!p.filesVisible}),children:s.jsx(ie,{name:"files"})}):null,e[44]=i,e[45]=o,e[46]=M,e[47]=p.filesVisible,e[48]=H):H=e[48];let B;e[49]!==p.copyFeedback?(B=s.jsx("span",{id:"copy-feedback",className:"visually-hidden","aria-live":"polite",children:p.copyFeedback}),e[49]=p.copyFeedback,e[50]=B):B=e[50];let D;e[51]!==G||e[52]!==H||e[53]!==B||e[54]!==U||e[55]!==O?(D=s.jsxs("div",{className:"toolbar-actions flex items-center gap-1.5",children:[U,O,G,H,B]}),e[51]=G,e[52]=H,e[53]=B,e[54]=U,e[55]=O,e[56]=D):D=e[56];let K;e[57]!==i||e[58]!==b||e[59]!==o||e[60]!==a||e[61]!==d||e[62]!==u||e[63]!==x||e[64]!==p?(K=p.optionsOpen?s.jsx(Vi,{dispatch:i,externalURL:b,label:o,onCopyGitApply:a,onReload:d,onSetLayout:u,onSetOption:x,state:p}):null,e[57]=i,e[58]=b,e[59]=o,e[60]=a,e[61]=d,e[62]=u,e[63]=x,e[64]=p,e[65]=K):K=e[65];let N;return e[66]!==D||e[67]!==K||e[68]!==I||e[69]!==L?(N=s.jsxs("header",{id:"toolbar",ref:v,children:[I,L,D,K]}),e[66]=D,e[67]=K,e[68]=I,e[69]=L,e[70]=N):N=e[70],N}const Oe=28,Ti=248,Fi=60;function Ni(t){return Array.isArray(t?.repoOptions)&&t.repoOptions.length>=2}function _i(t){const e=E.c(31),{activeSessionSource:n,label:r,onNavigate:i,onSelectSessionSource:o,payload:a,transport:l}=t;let f;e[0]!==r?(f=r("diffTarget"),e[0]=r,e[1]=f):f=e[1];const c=a.sourceOptions;let d;e[2]!==n||e[3]!==o?(d=g=>o(lo(g,n)),e[2]=n,e[3]=o,e[4]=d):d=e[4];let u;e[5]!==n?(u=so(n),e[5]=n,e[6]=u):u=e[6];let x;e[7]!==i||e[8]!==a.sourceOptions||e[9]!==f||e[10]!==d||e[11]!==u?(x=s.jsx($e,{ariaLabel:f,fallbackValue:"",id:"source-select",options:c,onNavigate:i,onSelectSessionSource:d,selectedValue:u}),e[7]=i,e[8]=a.sourceOptions,e[9]=f,e[10]=d,e[11]=u,e[12]=x):x=e[12];let p;e[13]!==n||e[14]!==r||e[15]!==i||e[16]!==o||e[17]!==a.repoOptions||e[18]!==a.repoRoot?(p=n?.kind!=="patch"?s.jsx($e,{ariaLabel:r("repoPath"),fallbackValue:a.repoRoot??"",id:"repo-select",options:a.repoOptions,onNavigate:i,onSelectSessionSource:g=>o(co(g,n)),selectedOptionTitle:!0,selectedValue:ve(n)}):null,e[13]=n,e[14]=r,e[15]=i,e[16]=o,e[17]=a.repoOptions,e[18]=a.repoRoot,e[19]=p):p=e[19];let h;e[20]!==n||e[21]!==r||e[22]!==i||e[23]!==o||e[24]!==a||e[25]!==l?(h=s.jsx(Ei,{activeSessionSource:n,label:r,onNavigate:i,onSelectSessionSource:o,payload:a,transport:l}),e[20]=n,e[21]=r,e[22]=i,e[23]=o,e[24]=a,e[25]=l,e[26]=h):h=e[26];let m;return e[27]!==x||e[28]!==p||e[29]!==h?(m=s.jsxs("div",{className:"toolbar-left flex min-w-0 items-center gap-1.5",children:[x,p,h]}),e[27]=x,e[28]=p,e[29]=h,e[30]=m):m=e[30],m}function Ei(t){const e=E.c(29),{activeSessionSource:n,label:r,onNavigate:i,onSelectSessionSource:o,payload:a,transport:l}=t;if(n?.kind==="branch"&&l){const x=n.baseRef??"";let p,h,m;e[0]!==n.repoRoot||e[1]!==a.capabilityToken||e[2]!==x?(m={repoRoot:n.repoRoot,capabilityToken:a.capabilityToken,headRef:"HEAD",currentRef:x,currentReason:"",confidence:"high",aheadBehind:null,refsURL:"typed://branch-list",regenerateURLTemplate:"typed://branch-change/{ref}"},p=it,h=nt(m),e[0]=n.repoRoot,e[1]=a.capabilityToken,e[2]=x,e[3]=p,e[4]=h,e[5]=m):(p=e[3],h=e[4],m=e[5]);let g;e[6]!==n.repoRoot||e[7]!==o?(g=v=>o({kind:"branch",repoRoot:n.repoRoot,baseRef:v}),e[6]=n.repoRoot,e[7]=o,e[8]=g):g=e[8];let b;return e[9]!==p||e[10]!==r||e[11]!==i||e[12]!==h||e[13]!==g||e[14]!==l||e[15]!==m?(b=s.jsx(p,{label:r,onNavigate:i,onSelectBranchBase:g,picker:m,transport:l},h),e[9]=p,e[10]=r,e[11]=i,e[12]=h,e[13]=g,e[14]=l,e[15]=m,e[16]=b):b=e[16],b}let f;if(e[17]!==r||e[18]!==i||e[19]!==a||e[20]!==l){f=Symbol.for("react.early_return_sentinel");e:{const x=Bi(a);if(x){f=s.jsx(it,{label:r,onNavigate:i,picker:x,transport:l},nt(x));break e}}e[17]=r,e[18]=i,e[19]=a,e[20]=l,e[21]=f}else f=e[21];if(f!==Symbol.for("react.early_return_sentinel"))return f;let c;e[22]!==r?(c=r("branchBase"),e[22]=r,e[23]=c):c=e[23];const d=a.branchBaseRef??"";let u;return e[24]!==i||e[25]!==a.baseOptions||e[26]!==c||e[27]!==d?(u=s.jsx($e,{ariaLabel:c,fallbackValue:d,id:"base-select",options:a.baseOptions,onNavigate:i}),e[24]=i,e[25]=a.baseOptions,e[26]=c,e[27]=d,e[28]=u):u=e[28],u}function Bi(t){const e=t?.branchPicker;return Di(e)?e:null}function Di(t){return!!(t&&typeof t=="object"&&typeof t.refsURL=="string"&&t.refsURL!==""&&typeof t.regenerateURLTemplate=="string"&&t.regenerateURLTemplate!==""&&typeof t.currentRef=="string"&&typeof t.headRef=="string")}function $e(t){const e=E.c(22),{ariaLabel:n,fallbackValue:r,id:i,onNavigate:o,onSelectSessionSource:a,options:l,selectedOptionTitle:f,selectedValue:c}=t,d=f===void 0?!1:f;if(!Array.isArray(l)||l.length<2)return null;let u,x;e[0]!==n||e[1]!==r||e[2]!==l||e[3]!==d||e[4]!==c?(u=l.find(v=>v.value===c)??l.find(zi)??l.find(Ai),x=d?typeof u?.message=="string"&&u.message.trim()!==""?u.message:String(u?.value??r).trim()||n:n,e[0]=n,e[1]=r,e[2]=l,e[3]=d,e[4]=c,e[5]=u,e[6]=x):(u=e[5],x=e[6]);const p=x,h=u?.value??r;let m;e[7]!==r||e[8]!==o||e[9]!==a||e[10]!==l||e[11]!==u?.value?(m=v=>{const w=l.find(k=>k.value===v.currentTarget.value);if(Le(w?.sessionSource)&&a){a(w.sessionSource);return}if(!w?.url){v.currentTarget.value=u?.value??r;return}o(w.url)},e[7]=r,e[8]=o,e[9]=a,e[10]=l,e[11]=u?.value,e[12]=m):m=e[12];let g;e[13]!==l?(g=l.map(Oi),e[13]=l,e[14]=g):g=e[14];let b;return e[15]!==n||e[16]!==i||e[17]!==p||e[18]!==h||e[19]!==m||e[20]!==g?(b=s.jsx("select",{id:i,"aria-label":n,value:h,title:p,onChange:m,children:g}),e[15]=n,e[16]=i,e[17]=p,e[18]=h,e[19]=m,e[20]=g,e[21]=b):b=e[21],b}function Oi(t){return s.jsx("option",{value:t.value,disabled:t.disabled||!t.url&&!Le(t.sessionSource),title:t.message,children:t.label},t.value)}function Ai(t){return!t.disabled}function zi(t){return t.selected}function $i(t){const e=E.c(31),{items:n,label:r,onJump:i,onOpenSearch:o,searchOpen:a,selectedItemId:l}=t;if(n.length===0)return null;if(n.length>500){let h;e[0]!==r?(h=r("jumpToFile"),e[0]=r,e[1]=h):h=e[1];let m;e[2]!==r?(m=r("jumpToFile"),e[2]=r,e[3]=m):m=e[3];let g;e[4]!==r?(g=r("jumpToFile"),e[4]=r,e[5]=g):g=e[5];let b;return e[6]!==o||e[7]!==a||e[8]!==h||e[9]!==m||e[10]!==g?(b=s.jsx("button",{id:"jump-search-button",type:"button","aria-controls":"files-sidebar","aria-expanded":a,"aria-label":h,title:m,onClick:o,children:g}),e[6]=o,e[7]=a,e[8]=h,e[9]=m,e[10]=g,e[11]=b):b=e[11],b}let f;e[12]!==r?(f=r("jumpToFile"),e[12]=r,e[13]=f):f=e[13];let c;e[14]!==i?(c=h=>i(h.currentTarget.value),e[14]=i,e[15]=c):c=e[15];let d;e[16]!==r?(d=r("jumpToFile"),e[16]=r,e[17]=d):d=e[17];let u;e[18]!==d?(u=s.jsx("option",{value:"",children:d}),e[18]=d,e[19]=u):u=e[19];let x;if(e[20]!==n||e[21]!==r){let h;e[23]!==r?(h=m=>s.jsx("option",{value:m.id,children:pe(m.fileDiff,r("untitled"))},m.id),e[23]=r,e[24]=h):h=e[24],x=n.map(h),e[20]=n,e[21]=r,e[22]=x}else x=e[22];let p;return e[25]!==l||e[26]!==f||e[27]!==c||e[28]!==u||e[29]!==x?(p=s.jsxs("select",{id:"jump-select","aria-label":f,value:l,onChange:c,children:[u,x]}),e[25]=l,e[26]=f,e[27]=c,e[28]=u,e[29]=x,e[30]=p):p=e[30],p}function Vi(t){const e=E.c(137),{dispatch:n,externalURL:r,label:i,onCopyGitApply:o,onReload:a,onSetLayout:l,onSetOption:f,state:c}=t;let d;e[0]!==f||e[1]!==c.options?(d=V=>f(V,!c.options[V]),e[0]=f,e[1]=c.options,e[2]=d):d=e[2];const u=d;let x;e[3]!==i?(x=i("options"),e[3]=i,e[4]=x):x=e[4];let p;e[5]!==i?(p=i("refresh"),e[5]=i,e[6]=p):p=e[6];let h;e[7]!==a||e[8]!==p?(h=s.jsx(de,{icon:"refresh",label:p,onClick:a}),e[7]=a,e[8]=p,e[9]=h):h=e[9];let m;e[10]!==i||e[11]!==c.options.wordWrap?(m=c.options.wordWrap?i("disableWordWrap"):i("enableWordWrap"),e[10]=i,e[11]=c.options.wordWrap,e[12]=m):m=e[12];let g;e[13]!==u?(g=()=>u("wordWrap"),e[13]=u,e[14]=g):g=e[14];let b;e[15]!==c.options.wordWrap||e[16]!==m||e[17]!==g?(b=s.jsx(de,{checked:c.options.wordWrap,icon:"wrap",label:m,onClick:g}),e[15]=c.options.wordWrap,e[16]=m,e[17]=g,e[18]=b):b=e[18];const v=c.options.collapsed?"expand":"collapse";let w;e[19]!==i||e[20]!==c.options.collapsed?(w=c.options.collapsed?i("expandAllDiffs"):i("collapseAllDiffs"),e[19]=i,e[20]=c.options.collapsed,e[21]=w):w=e[21];let k;e[22]!==u?(k=()=>u("collapsed"),e[22]=u,e[23]=k):k=e[23];let C;e[24]!==c.options.collapsed||e[25]!==k||e[26]!==v||e[27]!==w?(C=s.jsx(de,{checked:c.options.collapsed,icon:v,label:w,onClick:k}),e[24]=c.options.collapsed,e[25]=k,e[26]=v,e[27]=w,e[28]=C):C=e[28];let M;e[29]===Symbol.for("react.memo_cache_sentinel")?(M=s.jsx("div",{className:"menu-separator"}),e[29]=M):M=e[29];let R;e[30]!==i||e[31]!==c.options.layout?(R=c.options.layout==="split"?i("switchToUnifiedDiff"):i("switchToSplitDiff"),e[30]=i,e[31]=c.options.layout,e[32]=R):R=e[32];let j;e[33]!==l||e[34]!==c.options.layout?(j=()=>l(c.options.layout==="split"?"unified":"split"),e[33]=l,e[34]=c.options.layout,e[35]=j):j=e[35];let I;e[36]!==c.options.layout||e[37]!==R||e[38]!==j?(I=s.jsx(de,{icon:c.options.layout,label:R,onClick:j}),e[36]=c.options.layout,e[37]=R,e[38]=j,e[39]=I):I=e[39];let P;e[40]!==r||e[41]!==i?(P=r?s.jsx(de,{icon:"external",label:i("openSourceURL"),onClick:()=>window.open(r,"_blank","noreferrer")}):null,e[40]=r,e[41]=i,e[42]=P):P=e[42];let L;e[43]!==i||e[44]!==c.filesVisible?(L=c.filesVisible?i("hideFiles"):i("showFiles"),e[43]=i,e[44]=c.filesVisible,e[45]=L):L=e[45];let U;e[46]!==n||e[47]!==c.filesVisible?(U=()=>n({type:"set-files-visible",visible:!c.filesVisible}),e[46]=n,e[47]=c.filesVisible,e[48]=U):U=e[48];let O;e[49]!==c.filesVisible||e[50]!==L||e[51]!==U?(O=s.jsx(de,{checked:c.filesVisible,icon:"files",label:L,onClick:U}),e[49]=c.filesVisible,e[50]=L,e[51]=U,e[52]=O):O=e[52];let T;e[53]!==i||e[54]!==c.options.expandUnchanged?(T=c.options.expandUnchanged?i("collapseUnchangedContext"):i("expandUnchangedContext"),e[53]=i,e[54]=c.options.expandUnchanged,e[55]=T):T=e[55];let z;e[56]!==u?(z=()=>u("expandUnchanged"),e[56]=u,e[57]=z):z=e[57];let W;e[58]!==c.options.expandUnchanged||e[59]!==T||e[60]!==z?(W=s.jsx(de,{checked:c.options.expandUnchanged,icon:"document",label:T,onClick:z}),e[58]=c.options.expandUnchanged,e[59]=T,e[60]=z,e[61]=W):W=e[61];let Q;e[62]!==i||e[63]!==c.options.showBackgrounds?(Q=c.options.showBackgrounds?i("hideBackgrounds"):i("showBackgrounds"),e[62]=i,e[63]=c.options.showBackgrounds,e[64]=Q):Q=e[64];let G;e[65]!==u?(G=()=>u("showBackgrounds"),e[65]=u,e[66]=G):G=e[66];let H;e[67]!==c.options.showBackgrounds||e[68]!==Q||e[69]!==G?(H=s.jsx(de,{checked:c.options.showBackgrounds,icon:"background",label:Q,onClick:G}),e[67]=c.options.showBackgrounds,e[68]=Q,e[69]=G,e[70]=H):H=e[70];let B;e[71]!==i||e[72]!==c.options.lineNumbers?(B=c.options.lineNumbers?i("hideLineNumbers"):i("showLineNumbers"),e[71]=i,e[72]=c.options.lineNumbers,e[73]=B):B=e[73];let D;e[74]!==u?(D=()=>u("lineNumbers"),e[74]=u,e[75]=D):D=e[75];let K;e[76]!==c.options.lineNumbers||e[77]!==B||e[78]!==D?(K=s.jsx(de,{checked:c.options.lineNumbers,icon:"numbers",label:B,onClick:D}),e[76]=c.options.lineNumbers,e[77]=B,e[78]=D,e[79]=K):K=e[79];let N;e[80]!==i||e[81]!==c.options.wordDiffs?(N=c.options.wordDiffs?i("disableWordDiffs"):i("enableWordDiffs"),e[80]=i,e[81]=c.options.wordDiffs,e[82]=N):N=e[82];let X;e[83]!==u?(X=()=>u("wordDiffs"),e[83]=u,e[84]=X):X=e[84];let J;e[85]!==c.options.wordDiffs||e[86]!==N||e[87]!==X?(J=s.jsx(de,{checked:c.options.wordDiffs,icon:"word",label:N,onClick:X}),e[85]=c.options.wordDiffs,e[86]=N,e[87]=X,e[88]=J):J=e[88];let te;e[89]===Symbol.for("react.memo_cache_sentinel")?(te=s.jsx(ie,{name:"bars"}),e[89]=te):te=e[89];let Z;e[90]!==i?(Z=i("indicatorStyle"),e[90]=i,e[91]=Z):Z=e[91];let ne;e[92]!==Z?(ne=s.jsx("span",{className:"menu-label",children:Z}),e[92]=Z,e[93]=ne):ne=e[93];let re;e[94]!==i?(re=i("bars"),e[94]=i,e[95]=re):re=e[95];let $;e[96]!==re?($={value:"bars",icon:"bars",label:re},e[96]=re,e[97]=$):$=e[97];let y;e[98]!==i?(y=i("classic"),e[98]=i,e[99]=y):y=e[99];let F;e[100]!==y?(F={value:"classic",icon:"classic",label:y},e[100]=y,e[101]=F):F=e[101];let _;e[102]!==i?(_=i("none"),e[102]=i,e[103]=_):_=e[103];let Y;e[104]!==_?(Y={value:"none",icon:"eye",label:_},e[104]=_,e[105]=Y):Y=e[105];let q;e[106]!==$||e[107]!==F||e[108]!==Y?(q=[$,F,Y],e[106]=$,e[107]=F,e[108]=Y,e[109]=q):q=e[109];let ee;e[110]!==f||e[111]!==c.options.diffIndicators||e[112]!==q?(ee=s.jsx("span",{className:"menu-segment-controls",children:q.map(V=>s.jsx("button",{type:"button",className:"segment-button",title:V.label,"aria-label":V.label,"aria-pressed":c.options.diffIndicators===V.value,onClick:()=>f("diffIndicators",V.value),children:s.jsx(ie,{name:V.icon})},V.value))}),e[110]=f,e[111]=c.options.diffIndicators,e[112]=q,e[113]=ee):ee=e[113];let oe;e[114]!==ne||e[115]!==ee?(oe=s.jsxs("div",{className:"menu-item menu-segment",children:[te,ne,ee]}),e[114]=ne,e[115]=ee,e[116]=oe):oe=e[116];let le;e[117]===Symbol.for("react.memo_cache_sentinel")?(le=s.jsx("div",{className:"menu-separator"}),e[117]=le):le=e[117];let ae;e[118]!==i?(ae=i("copyGitApplyCommand"),e[118]=i,e[119]=ae):ae=e[119];let ce;e[120]!==o||e[121]!==ae?(ce=s.jsx(de,{icon:"clipboard",label:ae,onClick:o}),e[120]=o,e[121]=ae,e[122]=ce):ce=e[122];let A;return e[123]!==C||e[124]!==I||e[125]!==P||e[126]!==O||e[127]!==x||e[128]!==W||e[129]!==H||e[130]!==K||e[131]!==J||e[132]!==h||e[133]!==oe||e[134]!==ce||e[135]!==b?(A=s.jsxs("div",{id:"options-menu","aria-label":x,children:[h,b,C,M,I,P,O,W,H,K,J,oe,le,ce]}),e[123]=C,e[124]=I,e[125]=P,e[126]=O,e[127]=x,e[128]=W,e[129]=H,e[130]=K,e[131]=J,e[132]=h,e[133]=oe,e[134]=ce,e[135]=b,e[136]=A):A=e[136],A}function de(t){const e=E.c(14),{checked:n,icon:r,label:i,onClick:o}=t,a=n??void 0;let l;e[0]!==r?(l=s.jsx(ie,{name:r}),e[0]=r,e[1]=l):l=e[1];let f;e[2]!==i?(f=s.jsx("span",{className:"menu-label",children:i}),e[2]=i,e[3]=f):f=e[3];let c;e[4]!==n?(c=n?s.jsx(ie,{name:"check"}):null,e[4]=n,e[5]=c):c=e[5];let d;e[6]!==c?(d=s.jsx("span",{className:"menu-check",children:c}),e[6]=c,e[7]=d):d=e[7];let u;return e[8]!==o||e[9]!==a||e[10]!==l||e[11]!==f||e[12]!==d?(u=s.jsxs("button",{type:"button",className:"menu-item","aria-pressed":a,onClick:o,children:[l,f,d]}),e[8]=o,e[9]=a,e[10]=l,e[11]=f,e[12]=d,e[13]=u):u=e[13],u}function Wi(t){const e=E.c(70),{commentEntries:n,commentLabels:r,dispatch:i,hasDraft:o,label:a,onSelectComment:l,onSelectItem:f,selectedPath:c,state:d}=t,u=S.useRef(null);let x;e[0]!==i?(x=N=>{const X=u.current;if(!X)return;const J=document.documentElement.clientWidth||window.innerWidth,te=Math.max(220,Math.min(520,Math.floor(J*.55))),Z=Math.max(180,Math.min(te,Math.round(X.startWidth-(N-X.startX))));i({type:"set-files-width",width:Z})},e[0]=i,e[1]=x):x=e[1];const p=x;let h;e[2]!==a?(h=a("changedFiles"),e[2]=a,e[3]=h):h=e[3];const m=!d.filesVisible,g=!d.filesVisible;let b;e[4]!==a?(b=a("files"),e[4]=a,e[5]=b):b=e[5];let v;e[6]!==d.filesWidth?(v=N=>{u.current={startWidth:d.filesWidth,startX:N.clientX},N.currentTarget.setPointerCapture(N.pointerId)},e[6]=d.filesWidth,e[7]=v):v=e[7];let w,k;e[8]!==p?(w=N=>p(N.clientX),k=N=>{p(N.clientX),u.current=null,N.currentTarget.releasePointerCapture(N.pointerId)},e[8]=p,e[9]=w,e[10]=k):(w=e[9],k=e[10]);let C;e[11]===Symbol.for("react.memo_cache_sentinel")?(C=()=>{u.current=null},e[11]=C):C=e[11];let M;e[12]!==i||e[13]!==d.filesWidth?(M=N=>{if(N.key!=="ArrowLeft"&&N.key!=="ArrowRight")return;N.preventDefault();const X=N.key==="ArrowLeft"?20:-20;i({type:"set-files-width",width:Math.max(180,Math.min(520,d.filesWidth+X))})},e[12]=i,e[13]=d.filesWidth,e[14]=M):M=e[14];let R;e[15]!==M||e[16]!==b||e[17]!==v||e[18]!==w||e[19]!==k?(R=s.jsx("button",{id:"files-resize-handle","aria-label":b,type:"button",tabIndex:0,onPointerDown:v,onPointerMove:w,onPointerUp:k,onPointerCancel:C,onKeyDown:M}),e[15]=M,e[16]=b,e[17]=v,e[18]=w,e[19]=k,e[20]=R):R=e[20];let j;e[21]!==a?(j=a("files"),e[21]=a,e[22]=j):j=e[22];let I;e[23]!==j?(I=s.jsx("span",{children:j}),e[23]=j,e[24]=I):I=e[24];const P=d.treeSource?.pathCount??0;let L;e[25]!==P?(L=s.jsx("span",{id:"files-count",children:P}),e[25]=P,e[26]=L):L=e[26];let U;e[27]!==I||e[28]!==L?(U=s.jsxs("span",{id:"files-title",children:[I,L]}),e[27]=I,e[28]=L,e[29]=U):U=e[29];let O;e[30]!==a||e[31]!==d.fileSearchOpen?(O=d.fileSearchOpen?a("hideFileSearch"):a("showFileSearch"),e[30]=a,e[31]=d.fileSearchOpen,e[32]=O):O=e[32];let T;e[33]!==a||e[34]!==d.fileSearchOpen?(T=d.fileSearchOpen?a("hideFileSearch"):a("showFileSearch"),e[33]=a,e[34]=d.fileSearchOpen,e[35]=T):T=e[35];const z=!d.treeSource;let W;e[36]!==i||e[37]!==d.fileSearchOpen?(W=()=>d.fileSearchOpen?et(i):i({type:"set-file-search-open",open:!0}),e[36]=i,e[37]=d.fileSearchOpen,e[38]=W):W=e[38];let Q;e[39]===Symbol.for("react.memo_cache_sentinel")?(Q=s.jsx(ie,{name:"search"}),e[39]=Q):Q=e[39];let G;e[40]!==d.fileSearchOpen||e[41]!==O||e[42]!==T||e[43]!==z||e[44]!==W?(G=s.jsx("span",{id:"files-header-actions",children:s.jsx("button",{id:"file-search-toggle",type:"button",title:O,"aria-label":T,"aria-pressed":d.fileSearchOpen,disabled:z,onClick:W,children:Q})}),e[40]=d.fileSearchOpen,e[41]=O,e[42]=T,e[43]=z,e[44]=W,e[45]=G):G=e[45];let H;e[46]!==U||e[47]!==G?(H=s.jsxs("div",{id:"files-header",children:[U,G]}),e[46]=U,e[47]=G,e[48]=H):H=e[48];let B;e[49]!==a||e[50]!==f||e[51]!==c||e[52]!==d.fileSearchOpen||e[53]!==d.fileSearchRequest||e[54]!==d.status||e[55]!==d.treeSource?(B=s.jsx("div",{id:"file-list",children:d.treeSource?s.jsx(Gi,{fileSearchOpen:d.fileSearchOpen,fileSearchRequest:d.fileSearchRequest,label:a,onSelectItem:f,selectedPath:c,source:d.treeSource}):d.status.loading||d.status.pending?s.jsx(Hi,{}):s.jsx("div",{className:"visually-hidden",children:d.status.message})}),e[49]=a,e[50]=f,e[51]=c,e[52]=d.fileSearchOpen,e[53]=d.fileSearchRequest,e[54]=d.status,e[55]=d.treeSource,e[56]=B):B=e[56];let D;e[57]!==n||e[58]!==r||e[59]!==o||e[60]!==l?(D=s.jsx(lr,{entries:n,hasDraft:o,labels:r,onSelect:l}),e[57]=n,e[58]=r,e[59]=o,e[60]=l,e[61]=D):D=e[61];let K;return e[62]!==R||e[63]!==h||e[64]!==H||e[65]!==B||e[66]!==D||e[67]!==m||e[68]!==g?(K=s.jsxs("aside",{id:"files-sidebar","aria-label":h,"aria-hidden":m,inert:g,children:[R,H,B,D]}),e[62]=R,e[63]=h,e[64]=H,e[65]=B,e[66]=D,e[67]=m,e[68]=g,e[69]=K):K=e[69],K}function Gi(t){const e=E.c(18),{fileSearchOpen:n,fileSearchRequest:r,label:i,onSelectItem:o,selectedPath:a,source:l}=t;let f;e[0]!==i||e[1]!==o||e[2]!==l?(f={label:i,onSelectItem:o,source:l},e[0]=i,e[1]=o,e[2]=l,e[3]=f):f=e[3];const c=Re(f);let d;e[4]!==l.paths?(d=()=>Ae(l.paths),e[4]=l.paths,e[5]=d):d=e[5];const[u]=S.useState(d);let x;e[6]!==a?(x=a?[a]:[],e[6]=a,e[7]=x):x=e[7];let p;e[8]===Symbol.for("react.memo_cache_sentinel")?(p=Wt(),e[8]=p):p=e[8];const h=l.gitStatus;let m;e[9]===Symbol.for("react.memo_cache_sentinel")?(m=Pr(),e[9]=m):m=e[9];let g;e[10]!==u||e[11]!==c||e[12]!==x||e[13]!==h?(g={flattenEmptyDirectories:!1,id:"cmux-diff-file-tree",initialExpansion:"open",initialSelectedPaths:x,initialVisibleRowCount:p,itemHeight:24,overscan:12,preparedInput:u,search:!0,searchBlurBehavior:"retain",stickyFolders:!0,gitStatus:h,sort:Ui,unsafeCSS:m,onSelectionChange(k){const C=k[k.length-1],M=c.current.source.pathToItemId.get(C);M&&c.current.onSelectItem(M)}},e[10]=u,e[11]=c,e[12]=x,e[13]=h,e[14]=g):g=e[14];const{model:b}=Zt(g);no(b,l),io(b,n,r),oo(b,a);let v;e[15]===Symbol.for("react.memo_cache_sentinel")?(v={height:"100%"},e[15]=v):v=e[15];let w;return e[16]!==b?(w=s.jsx(tn,{model:b,style:v}),e[16]=b,e[17]=w):w=e[17],w}function Ui(){return 0}function Hi(){const t=E.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=s.jsx("div",{className:"diff-loading-placeholder","aria-hidden":"true",children:mi.map(qi)}),t[0]=e):e=t[0],e}function qi(t,e){return s.jsxs("div",{className:"grid h-6 grid-cols-[16px_minmax(0,1fr)_44px] items-center gap-2 rounded-[5px] px-[7px]",children:[s.jsx("span",{className:"size-4 rounded-[5px] border border-[color-mix(in_lab,var(--cmux-diff-fg)_18%,transparent)]"}),s.jsx("span",{className:"h-[11px] rounded bg-[var(--cmux-diff-muted-bg)]",style:{width:t}}),s.jsx("span",{className:"h-[11px] justify-self-end rounded bg-[var(--cmux-diff-muted-bg)] opacity-70",style:{width:e%2===0?"34px":"24px"}})]},`${t}-${e}`)}function Ki(){const t=E.c(2);let e;t[0]===Symbol.for("react.memo_cache_sentinel")?(e=s.jsxs("div",{className:"mb-3 grid h-9 grid-cols-[72px_minmax(0,1fr)_96px] items-center gap-3 rounded-md bg-[color-mix(in_lab,var(--cmux-diff-fg)_5%,transparent)] px-3",children:[s.jsx("span",{className:"h-3 rounded bg-[var(--cmux-diff-muted-bg)]"}),s.jsx("span",{className:"h-3 w-2/5 rounded bg-[var(--cmux-diff-muted-bg)]"}),s.jsx("span",{className:"h-3 rounded bg-[var(--cmux-diff-muted-bg)] opacity-70"})]}),t[0]=e):e=t[0];let n;return t[1]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsxs("div",{className:"diff-loading-placeholder mx-3.5 mt-3.5 border-t border-[var(--cmux-diff-border)] pt-3","aria-hidden":"true",children:[e,s.jsx("div",{className:"space-y-[13px] px-3 py-1",children:hi.map(Yi)})]}),t[1]=n):n=t[1],n}function Yi(t,e){return s.jsxs("div",{className:"grid grid-cols-[42px_minmax(0,1fr)] items-center gap-4",children:[s.jsx("span",{className:"h-px bg-[color-mix(in_lab,var(--cmux-diff-fg)_10%,transparent)]"}),s.jsx("span",{className:"h-3 rounded bg-[var(--cmux-diff-muted-bg)]",style:{width:t}})]},`${t}-${e}`)}function Qi(t){const e=E.c(16),{label:n,status:r}=t;if(!r.loading&&!r.pending&&!r.statusOnly&&!r.error)return null;const i=r.error?"true":"false",o=r.pending?"true":"false";let a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=s.jsx("span",{id:"status-icon","aria-hidden":"true"}),e[0]=a):a=e[0];let l;e[1]!==n||e[2]!==r.message?(l=r.message||n("loadingDiff"),e[1]=n,e[2]=r.message,e[3]=l):l=e[3];let f;e[4]!==l?(f=s.jsx("span",{id:"status-text",children:l}),e[4]=l,e[5]=f):f=e[5];let c;e[6]!==i||e[7]!==o||e[8]!==f?(c=s.jsxs("div",{id:"status","data-error":i,"data-pending":o,children:[a,f]}),e[6]=i,e[7]=o,e[8]=f,e[9]=c):c=e[9];let d;e[10]!==r.loading||e[11]!==r.pending?(d=r.loading||r.pending?s.jsx(Ki,{}):null,e[10]=r.loading,e[11]=r.pending,e[12]=d):d=e[12];let u;return e[13]!==c||e[14]!==d?(u=s.jsxs("div",{id:"loading-layer","aria-live":"polite",children:[c,d]}),e[13]=c,e[14]=d,e[15]=u):u=e[15],u}function Re(t){const e=E.c(3),n=S.useRef(t);let r,i;return e[0]!==t?(r=()=>{n.current=t},i=[t],e[0]=t,e[1]=r,e[2]=i):(r=e[1],i=e[2]),S.useEffect(r,i),n}function Xi(t,e){const n=E.c(5),r=en(),i=S.useRef(null);let o,a;n[0]!==e||n[1]!==t||n[2]!==r?(o=()=>{if(!r||Zi(i.current,t))return;let l=!0;return i.current=t,r.setRenderOptions(t).then(()=>{l&&e.current?.getInstance()?.render(!0)}).catch(Ji),()=>{l=!1}},a=[e,t,r],n[0]=e,n[1]=t,n[2]=r,n[3]=o,n[4]=a):(o=n[3],a=n[4]),S.useEffect(o,a)}function Ji(t){return console.warn("cmux diff worker render options update failed",t)}function Zi(t,e){return t?.lineDiffType===e.lineDiffType&&eo(t?.langs,e.langs)&&t?.maxLineDiffLength===e.maxLineDiffLength&&t?.preferredHighlighter===e.preferredHighlighter&&to(t?.theme,e.theme)&&t?.tokenizeMaxLineLength===e.tokenizeMaxLineLength&&t?.useTokenTransformer===e.useTokenTransformer}function eo(t,e){return t===e?!0:t==null||e==null||t.length!==e.length?!1:t.every((n,r)=>n===e[r])}function to(t,e){return t===e?!0:typeof t!="object"||t==null||typeof e!="object"||e==null?!1:t.dark===e.dark&&t.light===e.light}function no(t,e){const n=E.c(4),r=S.useRef(null);let i,o;n[0]!==t||n[1]!==e?(i=()=>{const a=r.current;r.current=e;const l=wr(a,e,e.paths);let f=l.kind==="append"?l.requiresFullGitStatus:!1;if(l.kind==="append"){if(l.addedPaths.length>0)try{t.batch(l.addedPaths.map(ro)),f=!l.sourceFollowsPrevious}catch{const c=Ae(e.paths);t.resetPaths(e.paths,{preparedInput:c}),f=!0}}else{const c=Ae(e.paths);t.resetPaths(e.paths,{preparedInput:c}),f=!0}yr(t,e,f)},o=[t,e],n[0]=t,n[1]=e,n[2]=i,n[3]=o):(i=n[2],o=n[3]),S.useEffect(i,o)}function ro(t){return{type:"add",path:t}}function io(t,e,n){const r=E.c(7);let i;r[0]!==e||r[1]!==t?(i=()=>{if(e){const a=t.isSearchOpen();if(t.openSearch(a?t.getSearchValue():""),a){const l=t.getFileTreeContainer();(l?.shadowRoot??l?.getRootNode())?.querySelector("[data-file-tree-search-input]")?.focus()}}else t.closeSearch()},r[0]=e,r[1]=t,r[2]=i):i=r[2];let o;r[3]!==e||r[4]!==n||r[5]!==t?(o=[e,n,t],r[3]=e,r[4]=n,r[5]=t,r[6]=o):o=r[6],S.useEffect(i,o)}function oo(t,e){const n=E.c(4);let r,i;n[0]!==t||n[1]!==e?(r=()=>{kr(t,e)},i=[t,e],n[0]=t,n[1]=e,n[2]=r,n[3]=i):(r=n[2],i=n[3]),S.useEffect(r,i)}function ao(t,e,n,r,i,o,a,l,f,c,d){S.useEffect(()=>{if(Vt(t.payload,e,f))return;document.body.dataset.diffRenderGeneration=String(d);const u=t.payload??{},x=We(u.appearance);for(const g of[x.themes.light,x.themes.dark])g.name&&!wt.has(g.name)&&(Yt(g.name,()=>Promise.resolve(Rr(g))),wt.add(g.name));let p=!1;const h=new AbortController,m=()=>{l()};return window.addEventListener("pagehide",m),(async()=>{try{let g=u.patchURL;const b=Ze(u,e,f);if(b){const w=await e.request({method:"sessionOpen",params:b});if(w.type!=="sessionOpened")throw new ue("invalidResponse","Diff transport did not open a session");const k={sessionId:w.value.sessionId,capabilityToken:String(u.capabilityToken??"")};if(p){await $t(e,k);return}a.current=k,c(w.value.source),g=w.value.patch.id}if(p||!g)return;o(g);const v=[];r({type:"set-status",status:se(n("parsingDiff"),{loading:!0})}),await En({getCollapsed:()=>i.current.options.collapsed,initialFileTreeRowCount:Wt(),label:n,signal:h.signal,onBatch:w=>{p||(v.push(...w),r({type:"append-items",items:w}))},onComplete:w=>{if(p)return;r({type:"set-metrics",metrics:w});const k=v;if(k.length===0){const R=typeof u.emptyMessage=="string"?u.emptyMessage:n("noFileDiffs");r({type:"set-status",status:se(R,{error:!1,loading:!1,statusOnly:!0})});return}const C=Array.from(new Set([x.theme?.light,x.theme?.dark].filter(Boolean))),M=Array.from(new Set(k.flatMap(R=>{const j=R.fileDiff??{};return Nt(pe(j,""),j.lang,j,Ve)})));Jt({themes:C,langs:M.length>0?M:["text"]}).catch(R=>console.warn("cmux diff highlighter preload failed",R))},onMetrics:w=>{p||r({type:"set-metrics",metrics:w})},onRename:w=>{p||r({type:"rename-item",oldId:w.oldId,newId:w.newId})},onTreeSource:w=>{p||r({type:"set-tree-source",source:w})},parsePatchFiles:Xt,patchURL:g,processFile:Qt})}catch(g){if(p)return;const b=g instanceof ue&&g.code==="emptyDiff";b||console.error("cmux diff viewer render failed",String(g?.stack??g?.message??g));const v=typeof u.emptyMessage=="string"?u.emptyMessage:n("noFileDiffs");r({type:"set-status",status:se(b?v:n("renderFailed"),{error:!b,loading:!1,statusOnly:!0})})}})(),()=>{p=!0,h.abort(),window.removeEventListener("pagehide",m),l()}},[a,l,t,r,n,i,o,c,d,f,e])}function $t(t,e){return t.request({method:"sessionClose",params:e}).then(()=>{},()=>{})}function Ze(t,e,n){if(!e||typeof t?.capabilityToken!="string")return null;const r=n??t.sessionSource;return Le(r)?{source:r,capabilityToken:t.capabilityToken}:null}function Le(t){if(!t||typeof t!="object"||typeof t.kind!="string")return!1;const e=t;return e.kind==="patch"?typeof e.path=="string":e.kind==="unstaged"||e.kind==="staged"?typeof e.repoRoot=="string":e.kind==="branch"&&typeof e.repoRoot=="string"&&(e.baseRef==null||typeof e.baseRef=="string")}function so(t){return t?.kind??null}function ve(t){return t&&"repoRoot"in t?t.repoRoot:null}function lo(t,e){if(t.kind==="patch")return t;const n=ve(e);return n?t.kind==="branch"?t.repoRoot===n?{...t,repoRoot:n}:{kind:"branch",repoRoot:n}:{...t,repoRoot:n}:t}function co(t,e){const n=ve(t);return!n||!e||e.kind==="patch"?t:e.kind==="branch"?e.repoRoot===n?{...e,repoRoot:n}:{kind:"branch",repoRoot:n}:{...e,repoRoot:n}}function fo(t){const e=t.fileDiff;if(e==null)return;const n=Ft(pe(e,""),e.lang,Ve);e.lang=n}function uo(t){const e=t.fileDiff;return e==null?[]:Nt(pe(e,""),e.lang,e,Ve)}function po(t,e){const n=new Set(t);for(const r of e)r.trim().length>0&&n.add(r);return Array.from(n)}function Vt(t,e=null,n=null){return t?.pendingReplacement===!0?Ze(t,e,n)==null:typeof t?.statusMessage=="string"&&t.statusMessage.length>0}function mo(t,e,n,r){const i=E.c(6),o=S.useRef(!1);let a,l;i[0]!==n||i[1]!==e||i[2]!==t||i[3]!==r?(a=()=>{if(!o.current){if(o.current=!0,t.pendingReplacement===!0){if(n({type:"set-status",status:se(t.statusMessage??e("loadingDiff"),{loading:!0,pending:!0})}),Ze(t,r)||window.location.protocol==="cmux-diff-viewer:")return;fetch("/__cmux_diff_viewer_wait"+window.location.pathname,{cache:"no-store"}).then(ho).catch(f=>{document.documentElement.dataset.cmuxDiffWait="failed",n({type:"set-status",status:se(e("renderFailed"),{error:!0,loading:!1,statusOnly:!0})}),console.warn("cmux diff viewer deferred load failed",f)});return}typeof t.statusMessage=="string"&&t.statusMessage.length>0&&n({type:"set-status",status:se(t.statusMessage,{error:t.statusIsError===!0,loading:!1,statusOnly:!0})})}},l=[n,e,t,r],i[0]=n,i[1]=e,i[2]=t,i[3]=r,i[4]=a,i[5]=l):(a=i[4],l=i[5]),S.useEffect(a,l)}async function ho(t){if(!t.ok)throw new Error("replacement failed");(await t.text()).includes('data-cmux-diff-pending="true"')||window.location.reload()}function go(t){const e=E.c(10);let n;e[0]!==t.filesVisible||e[1]!==t.items||e[2]!==t.metrics||e[3]!==t.options.diffIndicators||e[4]!==t.options.layout||e[5]!==t.options.wordWrap||e[6]!==t.status?(n=()=>{document.body.dataset.filesHidden=t.filesVisible?"false":"true",document.body.dataset.loading=t.status.loading?"true":"false",document.documentElement.dataset.layout=t.options.layout,document.documentElement.dataset.wordWrap=String(t.options.wordWrap),document.documentElement.dataset.diffIndicators=t.options.diffIndicators,t.metrics&&(document.body.dataset.streamFileCount=String(t.metrics.fileCount??t.items.length),document.body.dataset.streamRenderableFileCount=String(t.metrics.renderableFileCount??t.items.length),document.body.dataset.streamFlushCount=String(t.metrics.flushCount??0),document.body.dataset.streamMaxBatchSize=String(t.metrics.maxBatchSize??0),document.body.dataset.streamTreeRefreshCount=String(t.metrics.treeRefreshCount??0),Number.isFinite(t.metrics.completedAt)&&t.metrics.completedAt>0&&(document.body.dataset.streamElapsedMs=String(Math.round(t.metrics.completedAt-t.metrics.startedAt)))),xe(t.status)},e[0]=t.filesVisible,e[1]=t.items,e[2]=t.metrics,e[3]=t.options.diffIndicators,e[4]=t.options.layout,e[5]=t.options.wordWrap,e[6]=t.status,e[7]=n):n=e[7];let r;e[8]!==t?(r=[t],e[8]=t,e[9]=r):r=e[9],S.useEffect(n,r)}function xo(t,e,n,r,i){const o=E.c(7);let a,l;o[0]!==e||o[1]!==i||o[2]!==n||o[3]!==r||o[4]!==t?(a=()=>{window.__cmuxPerformDiffViewerNavigationAction=c=>{const d=t.current;if(d&&CmuxViewerNavigation.performAction(c,d))return!0;const u=i.current;switch(c){case"diffViewerOpenFileSearch":return e({type:"request-file-search"}),!0;case"diffViewerNextFile":return d&&CmuxViewerNavigation.resetSmoothTarget(d),n(1),!0;case"diffViewerPreviousFile":return d&&CmuxViewerNavigation.resetSmoothTarget(d),n(-1),!0;case"diffViewerNextHunk":return d&&CmuxViewerNavigation.resetSmoothTarget(d),r(1),!0;case"diffViewerPreviousHunk":return d&&CmuxViewerNavigation.resetSmoothTarget(d),r(-1),!0;case"diffViewerOpenFind":return e({type:"request-find"}),!0;case"diffViewerFindNext":return u.open?(u.controller.goToNext(),!0):!1;case"diffViewerFindPrevious":return u.open?(u.controller.goToPrevious(),!0):!1;case"diffViewerCloseFind":return u.open?(u.controller.closeFind(),!0):!1}return!1},document.documentElement.dataset.cmuxViewerNavigationReady="true",document.dispatchEvent(new window.Event("cmux-diff-viewer-navigation-readiness-change"));const f=CmuxViewerNavigation.installManualInputReset({target:document,getScroller:()=>t.current});return()=>{delete window.__cmuxPerformDiffViewerNavigationAction,delete document.documentElement.dataset.cmuxViewerNavigationReady,document.dispatchEvent(new window.Event("cmux-diff-viewer-navigation-readiness-change")),f()}},l=[e,i,n,r,t],o[0]=e,o[1]=i,o[2]=n,o[3]=r,o[4]=t,o[5]=a,o[6]=l):(a=o[5],l=o[6]),S.useEffect(a,l)}function bo(t,e){const n=E.c(4);let r,i;n[0]!==e||n[1]!==t?(r=()=>{if(!t)return;const o=l=>{l.target instanceof Element&&l.target.closest("#toolbar")||e({type:"set-options-open",open:!1})},a=l=>{l.key==="Escape"&&e({type:"set-options-open",open:!1})};return document.addEventListener("click",o),document.addEventListener("keydown",a),()=>{document.removeEventListener("click",o),document.removeEventListener("keydown",a)}},i=[e,t],n[0]=e,n[1]=t,n[2]=r,n[3]=i):(r=n[2],i=n[3]),S.useEffect(r,i)}function et(t,e=document){t({type:"set-file-search-open",open:!1}),(e.getElementById("jump-search-button")??e.getElementById("jump-select"))?.focus()}function vo(t,e){return t==="Escape"&&e}function wo(t,e){const n=E.c(4);let r,i;n[0]!==e||n[1]!==t?(r=()=>{if(!t)return;const o=a=>{vo(a.key,window.matchMedia("(max-width: 520px)").matches)&&(a.preventDefault(),et(e))};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},i=[e,t],n[0]=e,n[1]=t,n[2]=r,n[3]=i):(r=n[2],i=n[3]),S.useEffect(r,i)}function yo(t){const e=S.useRef(void 0);return e.current===void 0&&(e.current=Vr(t)),S.useEffect(()=>{const n=e.current;return()=>n?.close()},[]),e.current}function ko(t,e){return e.some(n=>n.id===t)?t:e[0]?.id??""}function So(t,e,n){if(e.length===0)return"";const r=e.findIndex(o=>o.id===t);if(r<0)return n>0?e[0].id:e[e.length-1].id;const i=r+n;return i>=0&&i0?0:-1;for(;r<=i;){const a=Math.floor((r+i)/2),l=n(t[a].id);l!=null&&l<=e+1?(o=a,r=a+1):i=a-1}return o>=0?t[o].id:""}function Wt(){const t=window.visualViewport?.height??window.innerHeight;return!Number.isFinite(t)||t<=0?25:Math.min(96,Math.max(25,Math.ceil(t/24)))}const Io=`@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--font-weight-medium:500;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1);--blur-sm:8px;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1\\/2{top:50%}.right-2\\.5{right:calc(var(--spacing) * 2.5)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-\\[calc\\(100\\%\\+6px\\)\\]{bottom:calc(100% + 6px)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing) * 0)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-px{margin:1px}.mx-3\\.5{margin-inline:calc(var(--spacing) * 3.5)}.ms-1{margin-inline-start:calc(var(--spacing) * 1)}.mt-1\\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-3\\.5{margin-top:calc(var(--spacing) * 3.5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-\\[3px\\]{margin-right:3px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-px{margin-bottom:1px}.ml-1\\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-\\[22px\\]{width:22px;height:22px}.\\!h-auto{height:auto!important}.h-0{height:calc(var(--spacing) * 0)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-\\[1lh\\]{height:1lh}.h-\\[1px\\]{height:1px}.h-\\[11px\\]{height:11px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\\[25dvh\\]{max-height:25dvh}.max-h-\\[140px\\]{max-height:140px}.max-h-none{max-height:none}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\\[1\\.25rem\\]{min-height:1.25rem}.w-2\\/5{width:40%}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-52{width:calc(var(--spacing) * 52)}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-16{max-width:calc(var(--spacing) * 16)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-\\[60\\%\\]{max-width:60%}.max-w-\\[77\\%\\]{max-width:77%}.max-w-\\[320px\\]{max-width:320px}.max-w-full{max-width:100%}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-56{min-width:calc(var(--spacing) * 56)}.min-w-max{min-width:max-content}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-\\[16px_minmax\\(0\\,1fr\\)_44px\\]{grid-template-columns:16px minmax(0,1fr) 44px}.grid-cols-\\[42px_minmax\\(0\\,1fr\\)\\]{grid-template-columns:42px minmax(0,1fr)}.grid-cols-\\[72px_minmax\\(0\\,1fr\\)_96px\\]{grid-template-columns:72px minmax(0,1fr) 96px}.grid-cols-\\[auto_minmax\\(0\\,1fr\\)_auto\\]{grid-template-columns:auto minmax(0,1fr) auto}.grid-cols-\\[minmax\\(0\\,auto\\)_auto_minmax\\(0\\,1fr\\)\\]{grid-template-columns:minmax(0,auto) auto minmax(0,1fr)}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-\\[5px\\]{gap:5px}:where(.space-y-\\[13px\\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(13px * var(--tw-space-y-reverse));margin-block-end:calc(13px * calc(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\\[5px\\]{border-radius:5px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-\\[color-mix\\(in_lab\\,var\\(--cmux-diff-fg\\)_18\\%\\,transparent\\)\\]{border-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.border-\\[color-mix\\(in_lab\\,var\\(--cmux-diff-fg\\)_18\\%\\,transparent\\)\\]{border-color:color-mix(in lab,var(--cmux-diff-fg) 18%,transparent)}}.border-\\[color\\:var\\(--gray-0\\)\\]{border-color:var(--gray-0)}.border-\\[var\\(--cmux-diff-border\\)\\]{border-color:var(--cmux-diff-border)}.border-transparent{border-color:#0000}.bg-\\[color-mix\\(in_lab\\,var\\(--cmux-diff-fg\\)_5\\%\\,transparent\\)\\]{background-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.bg-\\[color-mix\\(in_lab\\,var\\(--cmux-diff-fg\\)_5\\%\\,transparent\\)\\]{background-color:color-mix(in lab,var(--cmux-diff-fg) 5%,transparent)}}.bg-\\[color-mix\\(in_lab\\,var\\(--cmux-diff-fg\\)_10\\%\\,transparent\\)\\]{background-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.bg-\\[color-mix\\(in_lab\\,var\\(--cmux-diff-fg\\)_10\\%\\,transparent\\)\\]{background-color:color-mix(in lab,var(--cmux-diff-fg) 10%,transparent)}}.bg-\\[color\\:var\\(--gray-0\\)\\]{background-color:var(--gray-0)}.bg-\\[var\\(--cmux-diff-muted-bg\\)\\]{background-color:var(--cmux-diff-muted-bg)}.\\[mask-image\\:linear-gradient\\(to_right\\,black_calc\\(100\\%_-_0\\.25rem\\)\\,transparent\\)\\]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - .25rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - .25rem),#0000)}.\\[mask-repeat\\:no-repeat\\]{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.object-cover{object-fit:cover}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-2{padding:calc(var(--spacing) * 2)}.\\!px-0{padding-inline:calc(var(--spacing) * 0)!important}.px-0\\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-\\[7px\\]{padding-inline:7px}.px-\\[var\\(--padding-row-x\\)\\]{padding-inline:var(--padding-row-x)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-\\[var\\(--padding-row-y\\)\\]{padding-block:var(--padding-row-y)}.pt-0\\.5{padding-top:calc(var(--spacing) * .5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pr-0{padding-right:calc(var(--spacing) * 0)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-left{text-align:left}.align-bottom{vertical-align:bottom}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\\!leading-none{--tw-leading:1!important;line-height:1!important}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-\\[18px\\]{--tw-leading:18px;line-height:18px}.leading-\\[calc\\(var\\(--codex-chat-font-size\\)\\+8px\\)\\]{--tw-leading:calc(var(--codex-chat-font-size) + 8px);line-height:calc(var(--codex-chat-font-size) + 8px)}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.break-words{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.text-current{color:currentColor}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-\\[0\\.5px\\]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(.5px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.\\[--edge-fade-distance\\:2rem\\]{--edge-fade-distance:2rem}.group-focus-within\\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media(hover:hover){.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\\:bg-transparent:hover{background-color:#0000}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-40:disabled{opacity:.4}.data-\\[state\\=checked\\]\\:translate-x-\\[14px\\][data-state=checked]{--tw-translate-x:14px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\[state\\=unchecked\\]\\:translate-x-\\[2px\\][data-state=unchecked]{--tw-translate-x:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}@container (min-width:500px){.\\@\\[500px\\]\\:inline{display:inline}}.\\[\\&_\\.ProseMirror\\]\\:\\!h-5 .ProseMirror{height:calc(var(--spacing) * 5)!important}.\\[\\&_\\.ProseMirror\\]\\:h-auto .ProseMirror{height:auto}.\\[\\&_\\.ProseMirror\\]\\:\\!min-h-5 .ProseMirror{min-height:calc(var(--spacing) * 5)!important}.\\[\\&_\\.ProseMirror\\]\\:min-h-\\[2rem\\] .ProseMirror{min-height:2rem}.\\[\\&_\\.ProseMirror\\]\\:min-w-0 .ProseMirror{min-width:calc(var(--spacing) * 0)}.\\[\\&_\\.ProseMirror\\]\\:flex-1 .ProseMirror{flex:1}.\\[\\&_\\.ProseMirror\\]\\:resize-none .ProseMirror{resize:none}.\\[\\&_\\.ProseMirror\\]\\:overflow-hidden .ProseMirror{overflow:hidden}.\\[\\&_\\.ProseMirror\\]\\:leading-5 .ProseMirror{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.\\[\\&_\\.ProseMirror\\]\\:whitespace-nowrap .ProseMirror{white-space:nowrap}.\\[\\&_\\.ProseMirror\\]\\:focus-visible\\:outline-none .ProseMirror:focus-visible{--tw-outline-style:none;outline-style:none}.\\[\\&_\\.ProseMirror_p\\]\\:m-0 .ProseMirror p{margin:calc(var(--spacing) * 0)}.\\[\\&_\\.ProseMirror_p\\]\\:overflow-hidden .ProseMirror p{overflow:hidden}.\\[\\&_\\.ProseMirror_p\\]\\:text-ellipsis .ProseMirror p{text-overflow:ellipsis}.\\[\\&_\\.ProseMirror_p\\]\\:whitespace-nowrap .ProseMirror p{white-space:nowrap}.\\[\\&_\\.contain-inline-size\\]\\:\\[contain\\:initial\\] .contain-inline-size{contain:initial}.\\[\\&\\>\\*\\:last-child\\]\\:mb-0>:last-child{margin-bottom:calc(var(--spacing) * 0)}.\\[\\&\\>ol\\:first-child\\]\\:mt-0>ol:first-child,.\\[\\&\\>ul\\:first-child\\]\\:mt-0>ul:first-child{margin-top:calc(var(--spacing) * 0)}}:root{color-scheme:light dark;--cmux-diff-bg-light:#fff;--cmux-diff-bg-dark:#000;--cmux-diff-fg-light:#000;--cmux-diff-fg-dark:#fff;--cmux-diff-selection-bg-light:#abd8ff;--cmux-diff-selection-bg-dark:#3f638b;--cmux-diff-ui-font-family:system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;--cmux-diff-ui-font-size:12px;--cmux-diff-ui-line-height:16px;--cmux-diff-code-font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--cmux-diff-font-size:10px;--cmux-diff-line-height:20px;--cmux-diff-bg:var(--cmux-diff-bg-light);--cmux-diff-fg:var(--cmux-diff-fg-light);--cmux-diff-border:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){:root{--cmux-diff-border:color-mix(in lab, var(--cmux-diff-fg) 12%, transparent)}}:root{--cmux-diff-toolbar-bg:transparent;--cmux-diff-sidebar-bg:transparent;--cmux-diff-muted-bg:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){:root{--cmux-diff-muted-bg:color-mix(in lab, var(--cmux-diff-fg) 8%, transparent)}}:root{--cmux-diff-hover-bg:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){:root{--cmux-diff-hover-bg:color-mix(in lab, var(--cmux-diff-fg) 10%, transparent)}}:root{--cmux-diff-accent:light-dark(#0a84ff,#7ab7ff);--cmux-diff-text-muted:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){:root{--cmux-diff-text-muted:color-mix(in lab, var(--cmux-diff-fg) 72%, var(--cmux-diff-bg))}}:root{--cmux-diff-text-subtle:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){:root{--cmux-diff-text-subtle:color-mix(in lab, var(--cmux-diff-fg) 84%, var(--cmux-diff-bg))}}:root{--cmux-diff-surface-fill-light:transparent;--cmux-diff-surface-fill-dark:transparent;--cmux-diff-surface-fill:var(--cmux-diff-surface-fill-light);background:var(--cmux-diff-surface-fill);color:var(--cmux-diff-fg)}@media(prefers-color-scheme:dark){:root{--cmux-diff-bg:var(--cmux-diff-bg-dark);--cmux-diff-fg:var(--cmux-diff-fg-dark);--cmux-diff-surface-fill:var(--cmux-diff-surface-fill-dark)}}*{box-sizing:border-box}html,body{background:var(--cmux-diff-surface-fill);height:100%;overflow:hidden}body{background:var(--cmux-diff-surface-fill);height:100vh;min-height:0;color:var(--cmux-diff-fg);font-family:var(--cmux-diff-ui-font-family);font-size:var(--cmux-diff-ui-font-size);line-height:var(--cmux-diff-ui-line-height);flex-direction:column;margin:0;display:flex;overflow:hidden}#root{background:0 0;height:100%;min-height:0}#app{overscroll-behavior:contain;contain:strict;height:100vh;min-height:0;color:inherit;background:0 0;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);display:grid;overflow:hidden}.copy-fallback-textarea{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;top:0;left:-9999px}#toolbar{border-bottom:1px solid var(--cmux-diff-border);background:var(--cmux-diff-toolbar-bg);min-height:32px;color:var(--cmux-diff-fg);flex:none;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) minmax(0,auto);align-items:center;gap:7px;padding:3px 4px 3px 8px;display:grid;position:relative}@supports (color:color-mix(in lab,red,red)){#toolbar{color:color-mix(in lab,var(--cmux-diff-fg) 76%,var(--cmux-diff-bg))}}#toolbar{z-index:50}@media(min-width:521px){body[data-files-hidden=false] #toolbar{grid-template-columns:minmax(0,1fr) minmax(0,auto)}body[data-files-hidden=false] .toolbar-middle{display:none}}.toolbar-left,.toolbar-middle,.toolbar-actions{align-items:center;min-width:0;display:flex;overflow:clip visible}.toolbar-left,.toolbar-middle{gap:6px}.toolbar-left{justify-self:stretch;container:toolbar-left/inline-size}.toolbar-middle{justify-content:center}.toolbar-actions{justify-self:end;gap:4px}#source-select,#repo-select,#base-select,#jump-select,#jump-search-button{appearance:none;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(45deg,transparent 50%,currentcolor 50%) right 11px center / 4px 4px no-repeat,linear-gradient(135deg,currentcolor 50%,transparent 50%) right 7px center / 4px 4px no-repeat,var(--cmux-diff-fg);border:1px solid #0000;border-radius:6px;min-width:0;max-width:100%;height:24px;padding:0 24px 0 9px;overflow:hidden}@supports (color:color-mix(in lab,red,red)){#source-select,#repo-select,#base-select,#jump-select,#jump-search-button{background:linear-gradient(45deg,transparent 50%,currentcolor 50%) right 11px center / 4px 4px no-repeat,linear-gradient(135deg,currentcolor 50%,transparent 50%) right 7px center / 4px 4px no-repeat,color-mix(in lab,var(--cmux-diff-fg) 7%,transparent)}}#source-select,#repo-select,#base-select,#jump-select,#jump-search-button{color:inherit;font:inherit}#source-select{field-sizing:content;flex:0 3 auto;min-width:58px}#source-select:hover,#repo-select:hover,#base-select:hover,#jump-select:hover{border-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#source-select:hover,#repo-select:hover,#base-select:hover,#jump-select:hover{border-color:color-mix(in lab,var(--cmux-diff-fg) 24%,transparent)}}#source-select:hover,#repo-select:hover,#base-select:hover,#jump-select:hover{background-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#source-select:hover,#repo-select:hover,#base-select:hover,#jump-select:hover{background-color:color-mix(in lab,var(--cmux-diff-fg) 10%,transparent)}}#jump-search-button:hover{border-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#jump-search-button:hover{border-color:color-mix(in lab,var(--cmux-diff-fg) 24%,transparent)}}#jump-search-button:hover{background-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#jump-search-button:hover{background-color:color-mix(in lab,var(--cmux-diff-fg) 10%,transparent)}}#source-select[hidden],#repo-select[hidden],#base-select[hidden],#jump-select[hidden]{display:none}#jump-select{field-sizing:content;min-width:64px}#jump-search-button{cursor:pointer;background-image:none;min-width:64px;padding-right:9px}#repo-select{field-sizing:content;flex:0 5 auto;min-width:56px}#base-select{flex:0 120px}#source-select:focus,#repo-select:focus,#base-select:focus,#jump-select:focus,#jump-search-button:focus-visible,.base-picker-button:focus-visible,.base-picker-input:focus-visible,.toolbar-icon:focus-visible,.menu-item:focus-visible,.file-entry:focus-visible{outline:2px solid var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#source-select:focus,#repo-select:focus,#base-select:focus,#jump-select:focus,#jump-search-button:focus-visible,.base-picker-button:focus-visible,.base-picker-input:focus-visible,.toolbar-icon:focus-visible,.menu-item:focus-visible,.file-entry:focus-visible{outline:2px solid color-mix(in lab,var(--cmux-diff-fg) 36%,transparent)}}#source-select:focus,#repo-select:focus,#base-select:focus,#jump-select:focus,#jump-search-button:focus-visible,.base-picker-button:focus-visible,.base-picker-input:focus-visible,.toolbar-icon:focus-visible,.menu-item:focus-visible,.file-entry:focus-visible{outline-offset:1px}#base-picker{flex:0 auto;align-items:center;min-width:150px;display:flex;position:relative}.base-picker-button{border:1px solid var(--cmux-diff-fg);align-items:center;gap:5px;min-width:0;max-width:100%;height:24px;padding:0 7px 0 9px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.base-picker-button{border:1px solid color-mix(in lab,var(--cmux-diff-fg) 18%,transparent)}}.base-picker-button{background:var(--cmux-diff-fg);border-radius:6px}@supports (color:color-mix(in lab,red,red)){.base-picker-button{background:color-mix(in lab,var(--cmux-diff-fg) 11%,transparent)}}.base-picker-button{color:var(--cmux-diff-fg);font:inherit;cursor:pointer;font-weight:600}.base-picker-button:hover:not(:disabled),.base-picker-button[aria-expanded=true]{border-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.base-picker-button:hover:not(:disabled),.base-picker-button[aria-expanded=true]{border-color:color-mix(in lab,var(--cmux-diff-fg) 30%,transparent)}}.base-picker-button:hover:not(:disabled),.base-picker-button[aria-expanded=true]{background:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.base-picker-button:hover:not(:disabled),.base-picker-button[aria-expanded=true]{background:color-mix(in lab,var(--cmux-diff-fg) 15%,transparent)}}.base-picker-button:disabled{cursor:default;opacity:.85}.base-picker-button svg{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;opacity:.7;flex:none;width:12px;height:12px}.base-picker-label{align-items:center;gap:5px;min-width:0;display:inline-flex}.base-picker-prefix{color:var(--cmux-diff-fg);flex:none;font-weight:500}@supports (color:color-mix(in lab,red,red)){.base-picker-prefix{color:color-mix(in lab,var(--cmux-diff-fg) 60%,var(--cmux-diff-bg))}}.base-picker-head{text-overflow:ellipsis;white-space:nowrap;min-width:4ch;color:var(--cmux-diff-fg);flex:0 8 auto;font-weight:500;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.base-picker-head{color:color-mix(in lab,var(--cmux-diff-fg) 62%,var(--cmux-diff-bg))}}.base-picker-ref{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:6ch;overflow:hidden}.base-picker-meta{flex:0 1000 auto;align-items:center;gap:5px;min-width:0;display:inline-flex;overflow:hidden}.base-picker-reason{color:var(--cmux-diff-fg);flex:none;font-weight:500}@supports (color:color-mix(in lab,red,red)){.base-picker-reason{color:color-mix(in lab,var(--cmux-diff-fg) 64%,var(--cmux-diff-bg))}}.base-picker-reason{white-space:nowrap}.base-picker-reason-low{opacity:.6;font-style:italic}.base-picker-aheadbehind{font-variant-numeric:tabular-nums;color:var(--cmux-diff-fg);flex:none;font-weight:500}@supports (color:color-mix(in lab,red,red)){.base-picker-aheadbehind{color:color-mix(in lab,var(--cmux-diff-fg) 58%,var(--cmux-diff-bg))}}.base-picker-aheadbehind{white-space:nowrap}@container toolbar-left (max-width:380px){.base-picker-aheadbehind{display:none}}@container toolbar-left (max-width:312px){.base-picker-reason{display:none}}.base-picker-text{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.base-picker-spinner{border:1.6px solid var(--cmux-diff-fg);border-radius:50%;flex:none;width:12px;height:12px}@supports (color:color-mix(in lab,red,red)){.base-picker-spinner{border:1.6px solid color-mix(in lab,var(--cmux-diff-fg) 26%,transparent)}}.base-picker-spinner{border-top-color:var(--cmux-diff-fg);animation:.7s linear infinite base-picker-spin}@keyframes base-picker-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.base-picker-spinner{animation-duration:1.6s}}.base-picker-popover{border:1px solid var(--cmux-diff-fg);flex-direction:column;width:320px;max-width:min(86vw,360px);display:flex;position:fixed}@supports (color:color-mix(in lab,red,red)){.base-picker-popover{border:1px solid color-mix(in lab,var(--cmux-diff-fg) 13%,transparent)}}.base-picker-popover{background:var(--cmux-diff-bg);z-index:120;border-radius:8px;overflow:hidden;box-shadow:0 16px 34px lab(0% none none/.28)}.base-picker-search{border-bottom:1px solid var(--cmux-diff-fg);align-items:center;gap:6px;padding:7px 9px;display:flex}@supports (color:color-mix(in lab,red,red)){.base-picker-search{border-bottom:1px solid color-mix(in lab,var(--cmux-diff-fg) 11%,transparent)}}.base-picker-search svg{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;opacity:.55;flex:none;width:13px;height:13px}.base-picker-input{min-width:0;color:var(--cmux-diff-fg);font:inherit;background:0 0;border:0;outline:none;flex:auto}.base-picker-list{flex:auto;min-height:0;padding:4px;overflow-y:auto}.base-picker-status{color:var(--cmux-diff-fg);padding:12px 9px}@supports (color:color-mix(in lab,red,red)){.base-picker-status{color:color-mix(in lab,var(--cmux-diff-fg) 60%,var(--cmux-diff-bg))}}.base-picker-status{text-align:center}.base-picker-status-error{color:#ff5f56}@supports (color:color-mix(in lab,red,red)){.base-picker-status-error{color:color-mix(in lab,#ff5f56 70%,var(--cmux-diff-fg))}}.base-picker-group-header{letter-spacing:.06em;text-transform:uppercase;color:var(--cmux-diff-fg);padding:8px 8px 3px;font-size:10px;font-weight:600}@supports (color:color-mix(in lab,red,red)){.base-picker-group-header{color:color-mix(in lab,var(--cmux-diff-fg) 52%,var(--cmux-diff-bg))}}.base-picker-more{color:var(--cmux-diff-fg);padding:5px 8px 7px;font-size:11px}@supports (color:color-mix(in lab,red,red)){.base-picker-more{color:color-mix(in lab,var(--cmux-diff-fg) 48%,var(--cmux-diff-bg))}}.base-picker-more{cursor:default;-webkit-user-select:none;user-select:none}.base-picker-row{cursor:pointer;border-radius:6px;align-items:center;gap:8px;min-height:28px;padding:0 8px;display:flex}.base-picker-row-selected{background:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.base-picker-row-selected{background:color-mix(in lab,var(--cmux-diff-fg) 12%,transparent)}}.base-picker-row-primary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--cmux-diff-fg);flex:auto;overflow:hidden}.base-picker-row-primary strong{font-weight:700}.base-picker-row-secondary{text-overflow:ellipsis;white-space:nowrap;text-align:right;min-width:0;max-width:55%;color:var(--cmux-diff-fg);flex:0 auto;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.base-picker-row-secondary{color:color-mix(in lab,var(--cmux-diff-fg) 55%,var(--cmux-diff-bg))}}.base-picker-pill{text-transform:uppercase;letter-spacing:.04em;color:var(--cmux-diff-accent);background:var(--cmux-diff-accent);border-radius:999px;flex:none;padding:1px 6px;font-size:10px;font-weight:600}@supports (color:color-mix(in lab,red,red)){.base-picker-pill{background:color-mix(in lab,var(--cmux-diff-accent) 16%,transparent)}}@media(max-width:760px){#toolbar{grid-template-columns:minmax(0,1fr) minmax(0,auto);grid-template-areas:"source actions""jump actions"}.toolbar-left{grid-area:source}.toolbar-middle{grid-area:jump;justify-content:stretch}.toolbar-actions{grid-area:actions}}.toolbar-icon{width:20px;height:20px;color:var(--cmux-diff-fg);background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.toolbar-icon{color:color-mix(in lab,var(--cmux-diff-fg) 60%,var(--cmux-diff-bg))}}.toolbar-icon{cursor:pointer;padding:0}.toolbar-icon:hover,.toolbar-icon[aria-expanded=true]{border-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.toolbar-icon:hover,.toolbar-icon[aria-expanded=true]{border-color:color-mix(in lab,var(--cmux-diff-fg) 14%,transparent)}}.toolbar-icon:hover,.toolbar-icon[aria-expanded=true]{background:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.toolbar-icon:hover,.toolbar-icon[aria-expanded=true]{background:color-mix(in lab,var(--cmux-diff-fg) 9%,transparent)}}.toolbar-icon:hover,.toolbar-icon[aria-expanded=true],.toolbar-icon[aria-pressed=true]{color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.toolbar-icon[aria-pressed=true]{color:color-mix(in lab,var(--cmux-diff-fg) 78%,var(--cmux-diff-bg))}}.toolbar-icon[hidden]{display:none}.toolbar-icon svg,.menu-item svg{fill:none;stroke:currentColor;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px;display:block}#layout-toggle svg [data-diff-deletion],#layout-toggle svg [data-diff-addition]{stroke:none}#layout-toggle svg [data-diff-deletion]{fill:light-dark(var(--cmux-diff-deletion-fg-light),var(--cmux-diff-deletion-fg-dark))}#layout-toggle svg [data-diff-addition]{fill:light-dark(var(--cmux-diff-addition-fg-light),var(--cmux-diff-addition-fg-dark))}.toolbar-icon svg [data-precision-dot],.menu-item svg [data-precision-dot]{stroke-width:2px}#options-menu{border:1px solid var(--cmux-diff-fg);min-width:246px;padding:8px;position:absolute;top:calc(100% + 7px);right:10px}@supports (color:color-mix(in lab,red,red)){#options-menu{border:1px solid color-mix(in lab,var(--cmux-diff-fg) 13%,transparent)}}#options-menu{background:var(--cmux-diff-bg);z-index:100;border-radius:8px;box-shadow:0 16px 34px lab(0% none none/.28)}#options-menu[hidden]{display:none}.menu-separator{background:var(--cmux-diff-fg);height:1px;margin:7px 6px}@supports (color:color-mix(in lab,red,red)){.menu-separator{background:color-mix(in lab,var(--cmux-diff-fg) 12%,transparent)}}.menu-item{width:100%;min-height:31px;color:var(--cmux-diff-fg);background:0 0;border:0;border-radius:6px;grid-template-columns:22px minmax(0,1fr) 18px;align-items:center;gap:10px;display:grid}@supports (color:color-mix(in lab,red,red)){.menu-item{color:color-mix(in lab,var(--cmux-diff-fg) 86%,var(--cmux-diff-bg))}}.menu-item{font:inherit;text-align:left;padding:0 7px}.menu-item:hover:not(:disabled){background:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.menu-item:hover:not(:disabled){background:color-mix(in lab,var(--cmux-diff-fg) 10%,transparent)}}.menu-item:hover:not(:disabled){color:var(--cmux-diff-fg)}.menu-segment{cursor:default}.menu-segment:hover{background:0 0}.menu-segment-controls{background:0 0;border-radius:7px;justify-self:end;align-items:center;gap:2px;padding:2px;display:inline-flex}.segment-button{width:27px;height:24px;color:var(--cmux-diff-fg);background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.segment-button{color:color-mix(in lab,var(--cmux-diff-fg) 62%,var(--cmux-diff-bg))}}.segment-button{padding:0}.segment-button:hover,.segment-button[aria-pressed=true]{background:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.segment-button:hover,.segment-button[aria-pressed=true]{background:color-mix(in lab,var(--cmux-diff-fg) 12%,transparent)}}.segment-button:hover,.segment-button[aria-pressed=true],.menu-item:disabled{color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.menu-item:disabled{color:color-mix(in lab,var(--cmux-diff-fg) 36%,var(--cmux-diff-bg))}}.menu-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-check{justify-self:end}#content{--cmux-diff-files-width:252px;grid-template-columns:minmax(0,1fr) var(--cmux-diff-files-width);overscroll-behavior:contain;contain:strict;background:0 0;flex:auto;grid-template-rows:minmax(0,1fr);grid-template-areas:"viewer files";min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}body[data-files-hidden=true] #content{grid-template-columns:minmax(0,1fr) 0}body[data-status-only=true] #content{grid-template-columns:minmax(0,1fr);grid-template-areas:"viewer"}#files-sidebar{border-left:1px solid var(--cmux-diff-border);background:var(--cmux-diff-sidebar-bg);contain:strict;opacity:1;flex-direction:column;grid-area:files;width:100%;min-width:0;height:100%;min-height:0;transition:opacity .1s,visibility linear;display:flex;position:relative;overflow:hidden}#files-resize-handle{z-index:3;appearance:none;cursor:col-resize;background:0 0;border:0;outline:none;width:8px;margin:0;padding:0;position:absolute;top:0;bottom:0;left:0}#files-resize-handle:after{content:"";background:0 0;width:1px;position:absolute;top:0;bottom:0;left:0}body[data-files-hidden=true] #files-sidebar{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .1s,visibility 0s linear .1s}body[data-status-only=true] #files-sidebar,#files-sidebar-backdrop{display:none}#files-header{z-index:1;border-bottom:1px solid var(--cmux-diff-border);background:var(--cmux-diff-sidebar-bg);min-height:30px;color:var(--cmux-diff-text-muted);justify-content:space-between;align-items:center;gap:8px;padding:0 7px 0 10px;display:flex;position:relative}#files-title{align-items:center;gap:6px;min-width:0;display:inline-flex}#files-header-actions{flex:none;align-items:center;gap:2px;display:inline-flex}#file-search-toggle{width:24px;height:24px;color:var(--cmux-diff-text-muted);background:0 0;border:0;border-radius:5px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}#file-search-toggle:hover,#file-search-toggle[aria-pressed=true]{background:var(--cmux-diff-hover-bg);color:var(--cmux-diff-fg)}#file-search-toggle svg{fill:none;stroke:currentColor;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}#file-list{background:var(--cmux-diff-sidebar-bg);--trees-bg-override:var(--cmux-diff-sidebar-bg);--trees-fg-override:var(--cmux-diff-text-subtle);--trees-fg-muted-override:var(--cmux-diff-text-muted);--trees-bg-muted-override:var(--cmux-diff-hover-bg);--trees-selected-bg-override:var(--cmux-diff-fg);flex:auto;min-height:0;padding:6px 4px 6px 6px;overflow:hidden}@supports (color:color-mix(in lab,red,red)){#file-list{--trees-selected-bg-override:color-mix(in lab, var(--cmux-diff-fg) 11%, transparent)}}#file-list{--trees-selected-fg-override:var(--cmux-diff-fg);--trees-selected-focused-border-color-override:transparent;--trees-border-color-override:var(--cmux-diff-border);--trees-focus-ring-color-override:var(--cmux-diff-accent)}@supports (color:color-mix(in lab,red,red)){#file-list{--trees-focus-ring-color-override:color-mix(in lab, var(--cmux-diff-accent) 72%, transparent)}}#file-list{--trees-font-family-override:var(--cmux-diff-ui-font-family);--trees-font-size-override:var(--cmux-diff-ui-font-size);--trees-font-weight-semibold-override:500;--trees-density-override:.78;--trees-border-radius-override:5px;--trees-item-padding-x-override:7px;--trees-item-margin-x-override:0;--trees-padding-inline-override:8px;--trees-search-bg-override:var(--cmux-diff-bg)}@supports (color:color-mix(in lab,red,red)){#file-list{--trees-search-bg-override:color-mix(in lab, var(--cmux-diff-bg) 92%, var(--cmux-diff-fg))}}#file-list{--trees-status-added-override:light-dark(var(--cmux-diff-addition-fg-light),var(--cmux-diff-addition-fg-dark));--trees-status-modified-override:var(--cmux-diff-accent);--trees-status-renamed-override:light-dark(#a26300,#ffd166);--trees-status-deleted-override:light-dark(var(--cmux-diff-deletion-fg-light),var(--cmux-diff-deletion-fg-dark))}body[data-loading=false] .diff-loading-placeholder,body[data-loading=false]:not([data-status-only=true]) #loading-layer{display:none}#file-list file-tree-container{width:100%;height:100%;min-height:0;display:block}.file-entry{width:100%;min-height:30px;color:inherit;font:inherit;text-align:left;background:0 0;border:0;border-radius:6px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;padding:3px 7px;display:grid}.file-entry:hover,.file-entry[aria-current=true]{background:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){.file-entry:hover,.file-entry[aria-current=true]{background:color-mix(in lab,var(--cmux-diff-fg) 9%,transparent)}}.file-status{width:17px;height:17px;color:var(--cmux-diff-text-muted);border:1px solid;border-radius:5px;justify-content:center;align-items:center;font-size:9px;line-height:1;display:inline-flex}.file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-stats{color:var(--cmux-diff-text-muted);gap:5px;display:inline-flex}.stat-add{color:light-dark(var(--cmux-diff-addition-fg-light),var(--cmux-diff-addition-fg-dark))}.stat-del{color:light-dark(var(--cmux-diff-deletion-fg-light),var(--cmux-diff-deletion-fg-dark))}#viewer{--diffs-font-family:var(--cmux-diff-code-font-family);--diffs-header-font-family:var(--cmux-diff-ui-font-family);--diffs-font-size:var(--cmux-diff-font-size);--diffs-line-height:var(--cmux-diff-line-height);--diffs-bg-selection-override:light-dark(var(--cmux-diff-selection-bg-light),var(--cmux-diff-selection-bg-dark));overscroll-behavior:contain;overflow-anchor:none;contain:strict;border-bottom:1px solid var(--cmux-diff-border);background:0 0;grid-area:viewer;width:100%;min-width:0;height:100%;min-height:0;position:relative;overflow:clip auto}.code-view-root{overscroll-behavior:contain;overflow-anchor:none;contain:strict;width:100%;min-width:0;height:100%;min-height:0;position:relative;overflow:clip auto}@media(max-width:520px){#content,body[data-files-hidden=true] #content{grid-template-columns:minmax(0,1fr);grid-template-areas:"viewer"}#files-sidebar{display:none}#app[data-file-search-open=true] #files-sidebar-backdrop{z-index:44;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:default;background:#00000061;border:0;width:100%;height:100%;margin:0;padding:0;display:block;position:absolute;inset:0}#app[data-file-search-open=true] #files-sidebar-backdrop:focus-visible{outline:2px solid var(--cmux-diff-accent);outline-offset:-2px}#app[data-file-search-open=true] #files-sidebar{z-index:45;visibility:visible;opacity:1;pointer-events:auto;border-left:1px solid var(--cmux-diff-border);background:var(--cmux-diff-bg);isolation:isolate;--cmux-diff-sidebar-bg:var(--cmux-diff-bg);width:min(88vw,360px);max-width:calc(100% - 32px);display:flex;position:absolute;inset:0 0 0 auto;box-shadow:-18px 0 42px #00000057}#app[data-file-search-open=true] #files-resize-handle{display:none}}@media(prefers-reduced-motion:reduce){#files-sidebar{transition:none}}#viewer diffs-container{--diffs-font-family:var(--cmux-diff-code-font-family);--diffs-header-font-family:var(--cmux-diff-ui-font-family);--diffs-font-size:var(--cmux-diff-font-size);--diffs-line-height:var(--cmux-diff-line-height);--diffs-bg-selection-override:light-dark(var(--cmux-diff-selection-bg-light),var(--cmux-diff-selection-bg-dark));contain:layout paint style;flex:auto;width:100%;min-height:30px;display:block;overflow:clip}#viewer diffs-container [data-diffs-header]{overflow-x:clip}#viewer diffs-container [data-diffs-header=default] [data-metadata]{flex-shrink:0}#loading-layer{z-index:4;pointer-events:none;contain:strict;background:0 0;grid-area:viewer;position:absolute;inset:0;overflow:hidden}body[data-status-only=true] #loading-layer{pointer-events:auto;justify-content:center;align-items:center;width:100%;height:100%;padding:32px;display:flex;position:static}#status{z-index:5;border:1px solid var(--cmux-diff-fg);align-items:center;gap:10px;max-width:calc(100% - 24px);min-height:32px;padding:8px 12px;display:flex;position:absolute;top:10px;left:12px}@supports (color:color-mix(in lab,red,red)){#status{border:1px solid color-mix(in lab,var(--cmux-diff-fg) 10%,transparent)}}#status{background:var(--cmux-diff-bg);font-family:var(--cmux-diff-ui-font-family);font-size:13px;line-height:var(--cmux-diff-ui-line-height);color:var(--cmux-diff-fg);border-radius:7px}@supports (color:color-mix(in lab,red,red)){#status{color:color-mix(in lab,var(--cmux-diff-fg) 70%,var(--cmux-diff-bg))}}body[data-status-only=true] #status{text-align:center;text-wrap:balance;width:auto;max-width:340px;min-height:0;color:var(--cmux-diff-fg);background:0 0;border:0;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:0;font-size:14px;line-height:1.55;position:static}@supports (color:color-mix(in lab,red,red)){body[data-status-only=true] #status{color:color-mix(in lab,var(--cmux-diff-fg) 58%,var(--cmux-diff-bg))}}body[data-status-only=true] #status-text{letter-spacing:.005em;font-weight:500}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}#status-icon{display:none}body[data-status-only=true] #status:not([data-error=true]):not([data-pending=true]) #status-icon{background:var(--cmux-diff-fg);border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;display:flex}@supports (color:color-mix(in lab,red,red)){body[data-status-only=true] #status:not([data-error=true]):not([data-pending=true]) #status-icon{background:color-mix(in lab,var(--cmux-diff-fg) 5%,transparent)}}body[data-status-only=true] #status:not([data-error=true]):not([data-pending=true]) #status-icon{border:1px solid var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){body[data-status-only=true] #status:not([data-error=true]):not([data-pending=true]) #status-icon{border:1px solid color-mix(in lab,var(--cmux-diff-fg) 8%,transparent)}}body[data-status-only=true] #status:not([data-error=true]):not([data-pending=true]) #status-icon:before{content:"";opacity:.8;background-color:currentColor;width:26px;height:26px;display:block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3Cpath d='M9 13h6'/%3E%3Cpath d='M9 17h4'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3Cpath d='M9 13h6'/%3E%3Cpath d='M9 17h4'/%3E%3C/svg%3E") 50%/contain no-repeat}#status[data-pending=true]:before,body[data-loading=true] #status:before{content:"";border:2px solid var(--cmux-diff-fg);flex:none;width:14px;height:14px}@supports (color:color-mix(in lab,red,red)){#status[data-pending=true]:before,body[data-loading=true] #status:before{border:2px solid color-mix(in lab,var(--cmux-diff-fg) 20%,transparent)}}#status[data-pending=true]:before,body[data-loading=true] #status:before{border-top-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#status[data-pending=true]:before,body[data-loading=true] #status:before{border-top-color:color-mix(in lab,var(--cmux-diff-fg) 70%,var(--cmux-diff-bg))}}#status[data-pending=true]:before,body[data-loading=true] #status:before{border-radius:50%;animation:.8s linear infinite cmuxDiffPendingSpin}#status[data-error=true]{color:light-dark(#b42318,#ff8a80)}@keyframes cmuxDiffPendingSpin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){#status[data-pending=true]:before,body[data-loading=true] #status:before{animation:none}}#comments-section{border-top:1px solid var(--cmux-diff-border);background:var(--cmux-diff-sidebar-bg);flex-direction:column;flex:none;min-height:0;max-height:40%;display:flex}#comments-header{min-height:30px;color:var(--cmux-diff-text-muted);font-size:var(--cmux-diff-ui-font-size);align-items:center;padding:0 10px;display:flex}#comments-list{flex-direction:column;gap:4px;min-height:0;padding:0 6px 6px;display:flex;overflow-y:auto}.comments-empty{color:var(--cmux-diff-text-muted);font-size:var(--cmux-diff-ui-font-size);padding:2px 7px 6px}.comment-entry{color:var(--cmux-diff-text-subtle);font:inherit;font-size:var(--cmux-diff-ui-font-size);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;flex-direction:column;gap:2px;padding:5px 7px;display:flex}.comment-entry:hover{background:var(--cmux-diff-hover-bg)}.comment-entry-header{justify-content:space-between;align-items:center;gap:6px;display:flex}.comment-entry-location{color:var(--cmux-diff-fg);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.comment-entry-badge{background:var(--cmux-diff-muted-bg);color:var(--cmux-diff-text-muted);font-size:calc(var(--cmux-diff-ui-font-size) - 1px);border-radius:4px;flex:none;padding:0 5px}.comment-entry-message{text-overflow:ellipsis;white-space:nowrap;color:var(--cmux-diff-text-muted);overflow:hidden}.comment-composer,.comment-card{border:1px solid var(--cmux-diff-border);background:light-dark(var(--cmux-diff-bg),var(--cmux-diff-bg));border-radius:10px;flex-direction:column;gap:8px;max-width:680px;margin:8px 12px;padding:10px 12px;display:flex}@supports (color:color-mix(in lab,red,red)){.comment-composer,.comment-card{background:light-dark(color-mix(in lab,var(--cmux-diff-bg) 92%,#fff),color-mix(in lab,var(--cmux-diff-bg) 90%,#fff))}}.comment-composer,.comment-card{color:var(--cmux-diff-fg);font-family:var(--cmux-diff-ui-font-family);font-size:13px;line-height:1.45;box-shadow:0 1px 2px lab(0% none none/.1),0 2px 8px lab(0% none none/.06)}.comment-composer:focus-within{border-color:var(--cmux-diff-accent)}@supports (color:color-mix(in lab,red,red)){.comment-composer:focus-within{border-color:color-mix(in lab,var(--cmux-diff-accent) 60%,var(--cmux-diff-border))}}.comment-composer:focus-within{box-shadow:0 0 0 3px var(--cmux-diff-accent)}@supports (color:color-mix(in lab,red,red)){.comment-composer:focus-within{box-shadow:0 0 0 3px color-mix(in lab,var(--cmux-diff-accent) 18%,transparent)}}.comment-composer-input{box-sizing:border-box;resize:none;width:100%;min-height:52px;color:var(--cmux-diff-fg);font:inherit;background:0 0;border:0;padding:0}.comment-composer-input::placeholder{color:var(--cmux-diff-text-muted)}.comment-composer-input:focus-visible{outline:none}.comment-composer-footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.comment-composer-buttons{gap:6px;display:inline-flex}.comment-button{color:var(--cmux-diff-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 12px;font-weight:500}.comment-button:hover:not(:disabled){background:var(--cmux-diff-hover-bg);color:var(--cmux-diff-fg)}.comment-button:disabled{opacity:.5;cursor:default}.comment-button-primary{background:var(--cmux-diff-accent);color:light-dark(#fff,#08233f)}.comment-button-primary:hover:not(:disabled){background:var(--cmux-diff-accent)}@supports (color:color-mix(in lab,red,red)){.comment-button-primary:hover:not(:disabled){background:color-mix(in lab,var(--cmux-diff-accent) 86%,var(--cmux-diff-fg))}}.comment-button-primary:hover:not(:disabled){color:light-dark(#fff,#08233f)}.comment-card-header{justify-content:space-between;align-items:center;gap:8px;min-height:20px;display:flex}.comment-card-location{font-weight:500;font-size:calc(var(--cmux-diff-ui-font-size) - 1px);color:var(--cmux-diff-text-muted)}.comment-card-actions{opacity:0;gap:2px;transition:opacity .1s;display:inline-flex}.comment-card:hover .comment-card-actions,.comment-card:focus-within .comment-card-actions{opacity:1}.comment-card-action{color:var(--cmux-diff-text-muted);font:inherit;font-size:calc(var(--cmux-diff-ui-font-size) - 1px);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:1px 6px}.comment-card-action:hover{background:var(--cmux-diff-hover-bg);color:var(--cmux-diff-fg)}.comment-card-message{white-space:pre-wrap;overflow-wrap:anywhere}#diff-find-anchor{z-index:60;pointer-events:none;position:absolute;top:0;right:0}#diff-find-bar{pointer-events:auto;border:1px solid var(--cmux-diff-fg);align-items:center;gap:4px;margin:10px 22px 0 0;padding:5px 6px;display:flex}@supports (color:color-mix(in lab,red,red)){#diff-find-bar{border:1px solid color-mix(in lab,var(--cmux-diff-fg) 13%,transparent)}}#diff-find-bar{background:var(--cmux-diff-bg);border-radius:8px;box-shadow:0 16px 34px lab(0% none none/.28)}#diff-find-input{background:var(--cmux-diff-fg);border:1px solid #0000;border-radius:6px;width:180px;padding:3px 7px}@supports (color:color-mix(in lab,red,red)){#diff-find-input{background:color-mix(in lab,var(--cmux-diff-fg) 7%,transparent)}}#diff-find-input{color:var(--cmux-diff-fg);font-family:var(--cmux-diff-ui-font-family);font-size:var(--cmux-diff-ui-font-size);outline:none}#diff-find-input:focus-visible{border-color:var(--cmux-diff-fg)}@supports (color:color-mix(in lab,red,red)){#diff-find-input:focus-visible{border-color:color-mix(in lab,var(--cmux-diff-fg) 24%,transparent)}}#diff-find-count{text-align:right;min-width:40px;color:var(--cmux-diff-text-muted);font-family:var(--cmux-diff-ui-font-family);font-size:calc(var(--cmux-diff-ui-font-size) - 1px);font-variant-numeric:tabular-nums;padding:0 4px}#diff-find-bar .toolbar-icon:disabled{opacity:.4;cursor:default}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}`;function Co(){const t=document.getElementById("cmux-diff-viewer-config");if(!t?.textContent)throw new Error("Missing cmux diff viewer config");return JSON.parse(t.textContent)}function Fo(t){const e=Co();rn("diff",Io),dn(We(e.payload?.appearance)),typeof e.payload?.title=="string"&&e.payload.title.trim()!==""&&(document.title=e.payload.title);const n=Et(e.payload?.labels,{assertMissing:_t()}),r=Tr(e,n);document.body.dataset.filesHidden="false",xe(r);const i=on(()=>s.jsx(bi,{config:e,initialStatus:r}));Ut.createRoot(t).render(s.jsx(Ht,{router:i}))}export{Fo as mountDiffSurface}; diff --git a/Sources/AgentSessionRendererKind.swift b/Sources/AgentSessionRendererKind.swift index 36c2382e0ad6..4600133fbd63 100644 --- a/Sources/AgentSessionRendererKind.swift +++ b/Sources/AgentSessionRendererKind.swift @@ -1,6 +1,9 @@ import Foundation +import CmuxSettings enum AgentSessionRendererKind: String, CaseIterable, Codable, Identifiable, Sendable { + case native + case typescript case react case solid @@ -8,6 +11,10 @@ enum AgentSessionRendererKind: String, CaseIterable, Codable, Identifiable, Send var displayName: String { switch self { + case .native: + return String(localized: "agentSession.renderer.native", defaultValue: "Native") + case .typescript: + return String(localized: "agentSession.renderer.typescript", defaultValue: "TypeScript") case .react: return String(localized: "agentSession.renderer.react", defaultValue: "React") case .solid: @@ -17,10 +24,19 @@ enum AgentSessionRendererKind: String, CaseIterable, Codable, Identifiable, Send var resourceHTMLPathComponents: [String] { switch self { + case .native, .typescript: + return [] case .react: return ["markdown-viewer", "webviews-app", "agent-session.html"] case .solid: return ["agent-session-solid", "index.html"] } } + + static func configured() -> Self { + let store = JSONConfigStore(fileURL: CmuxConfigLocation().userConfigFile) + return store.snapshotValue(for: SettingCatalog().app.agentSessionRenderer) == "typescript" + ? .typescript + : .native + } } diff --git a/Sources/Panels/AcpmuxChatWebRenderer.swift b/Sources/Panels/AcpmuxChatWebRenderer.swift new file mode 100644 index 000000000000..ca4e195088f7 --- /dev/null +++ b/Sources/Panels/AcpmuxChatWebRenderer.swift @@ -0,0 +1,319 @@ +import AppKit +import CmuxAcpmux +import CmuxFoundation +import Observation +import SwiftUI +import WebKit + +/// Hosts the optional TypeScript transcript renderer. Swift starts the daemon and +/// hands the page an authenticated endpoint; the page is the acpmux client. +struct AcpmuxChatWebRenderer: NSViewRepresentable { + let panel: AgentSessionPanel + let isFocused: Bool + let backgroundColor: NSColor + let theme: AgentSessionWebTheme + let onRequestPanelFocus: () -> Void + + func makeCoordinator() -> AcpmuxChatWebRendererCoordinator { + AcpmuxChatWebRendererCoordinator(panel: panel, theme: theme) + } + + func makeNSView(context: Context) -> NSView { + panel.startChatIfNeeded() + let host = AgentSessionWebHostView() + host.wantsLayer = true + host.layer?.backgroundColor = backgroundColor.cgColor + return host + } + + func updateNSView(_ nsView: NSView, context: Context) { + guard let host = nsView as? AgentSessionWebHostView else { return } + let coordinator = context.coordinator + coordinator.bind(theme: theme, isFocused: isFocused) + let webView = coordinator.ensureWebView(onPointerDown: onRequestPanelFocus) + webView.navigationDelegate = coordinator + webView.uiDelegate = coordinator + webView.onPointerDown = onRequestPanelFocus + webView.underPageBackgroundColor = backgroundColor + webView.layer?.backgroundColor = backgroundColor.cgColor + host.attachWebView(webView) + host.onDidMoveToWindow = { [weak coordinator] in coordinator?.loadShellIfNeeded() } + coordinator.loadShellIfNeeded() + if isFocused { coordinator.focus() } + } + + static func dismantleNSView(_ nsView: NSView, coordinator: AcpmuxChatWebRendererCoordinator) { + guard let host = nsView as? AgentSessionWebHostView else { return } + host.detachHostedWebViewIfOwned(coordinator.webView) + coordinator.close() + } +} + +@MainActor +final class AcpmuxChatWebRendererCoordinator: NSObject, WKNavigationDelegate, WKUIDelegate, WKScriptMessageHandlerWithReply { + private let panel: AgentSessionPanel + private let model: AcpmuxChatSessionModel + private var theme: AgentSessionWebTheme + var webView: AgentSessionWebView? + private var loaded = false + private var trustedURL: URL? + private var isFocused = false + private var lastFlingStats: [String: Any] = [:] + private let customizationWatchers: [FileWatcher] + private var customizationTasks: [Task] = [] + + init(panel: AgentSessionPanel, theme: AgentSessionWebTheme) { + self.panel = panel + self.model = panel.chatModel + self.theme = theme + let directory = FileManager.default.homeDirectoryForCurrentUser + .appending(path: ".config/cmux/agent-pane") + self.customizationWatchers = [ + FileWatcher(path: directory.path, throttle: .milliseconds(150)), + FileWatcher(path: directory.appending(path: "theme.css").path, throttle: .milliseconds(150)), + FileWatcher(path: directory.appending(path: "registry.js").path, throttle: .milliseconds(150)), + FileWatcher(path: directory.appending(path: "layout.json").path, throttle: .milliseconds(150)), + ] + super.init() +#if DEBUG + panel.onWebRendererDebugAction = { [weak self] action, params in + self?.performDebugAction(action, params: params) + } +#endif + for watcher in customizationWatchers { + customizationTasks.append(Task { [weak self] in + for await _ in watcher.events { + self?.sendCustomization() + } + }) + } + sendCustomization() + } + + func bind(theme: AgentSessionWebTheme, isFocused: Bool) { + self.theme = theme + self.isFocused = isFocused + if loaded { applyTheme() } + } + + func ensureWebView(onPointerDown: @escaping () -> Void) -> AgentSessionWebView { + if let webView { + webView.onPointerDown = onPointerDown + return webView + } + let configuration = WKWebViewConfiguration() + configuration.userContentController.addScriptMessageHandler( + self, + contentWorld: .page, + name: AgentSessionBridgeContract.handlerName + ) + let webView = AgentSessionWebView(frame: .zero, configuration: configuration) + webView.onPointerDown = onPointerDown + webView.setValue(false, forKey: "drawsBackground") + webView.allowsBackForwardNavigationGestures = false + webView.allowsLinkPreview = false + if #available(macOS 13.3, *) { webView.isInspectable = false } + self.webView = webView + return webView + } + + func loadShellIfNeeded() { + guard !loaded, let webView, webView.window != nil, + let resourceURL = Bundle.main.resourceURL else { return } + let url = resourceURL.appendingPathComponent("acpmux-agent-session/index.html") + trustedURL = url.standardizedFileURL.resolvingSymlinksInPath() + webView.loadFileURL(url, allowingReadAccessTo: resourceURL) + loaded = true + } + + func focus() { _ = webView?.window?.makeFirstResponder(webView) } + + func close() { +#if DEBUG + panel.onWebRendererDebugAction = nil +#endif + customizationTasks.forEach { $0.cancel() } + customizationTasks.removeAll() + for watcher in customizationWatchers { + Task { await watcher.stop() } + } + webView?.configuration.userContentController.removeScriptMessageHandler( + forName: AgentSessionBridgeContract.handlerName, + contentWorld: .page + ) + webView?.stopLoading() + webView = nil + loaded = false + } + +#if DEBUG + private func performDebugAction(_ action: String, params: [String: Any]) -> [String: Any]? { + switch action { + case "seed_rows": + let count = (params["count"] as? Int) ?? 5_000 + webView?.evaluateJavaScript("window.cmuxAcpmuxDebug?.seedRows(\(count)); true;") { _, _ in } + return ["rows": count] + case "fling": + let seconds = (params["seconds"] as? Double) ?? 3 + let script = "window.cmuxAcpmuxDebug?.startFling(\(seconds)); true;" + webView?.evaluateJavaScript(script) { _, _ in } + return [:] + case "fling_stats": + webView?.evaluateJavaScript("window.cmuxAcpmuxDebug?.flingStats()") { [weak self] value, _ in + Task { @MainActor in self?.lastFlingStats = value as? [String: Any] ?? [:] } + } + return lastFlingStats + default: + return nil + } + } +#endif + + func userContentController( + _ userContentController: WKUserContentController, + didReceive message: WKScriptMessage, + replyHandler: @escaping (Any?, String?) -> Void + ) { + guard message.frameInfo.isMainFrame, + Self.isTrusted(message.frameInfo.request.url, expected: trustedURL) else { + replyHandler(["ok": false, "error": ["code": "untrusted_frame"]], nil) + return + } + Task { @MainActor [weak self] in + guard let self else { return } + do { + let request = try Self.decodeRequest(message.body) + let value = try await handle(request) + replyHandler(["ok": true, "value": value], nil) + } catch { + replyHandler(["ok": false, "error": ["userMessage": error.localizedDescription]], nil) + } + } + } + + func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { + applyTheme() + sendCustomization() + if isFocused { focus() } + } + + func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { + guard let url = navigationAction.request.url else { decisionHandler(.cancel); return } + if Self.isTrusted(url, expected: trustedURL) || Self.isTrustedFragment(url, expected: trustedURL) { + decisionHandler(.allow) + } else { + decisionHandler(.cancel) + } + } + + private func handle(_ request: Request) async throws -> Any { + switch request.method { + case "ready": + let endpoint = try await model.webSocketEndpoint() + applyTheme() + sendCustomization() + return Self.jsonObject(AcpmuxWebHostHandshake(endpoint: endpoint.endpoint, token: endpoint.token, sessionId: model.sessionId, newSessionHarness: model.newSessionHarness, workingDirectory: panel.workingDirectory)) ?? [:] + case "chat.persistSession": + guard let sessionId = request.string("sessionId"), !sessionId.isEmpty else { + throw NSError(domain: "AcpmuxWebBridge", code: 3, userInfo: [NSLocalizedDescriptionKey: "Missing acpmux session id"]) + } + model.rememberSession(sessionId: sessionId) + return NSNull() + case "native.copy": + guard let text = request.string("text") else { + throw NSError(domain: "AcpmuxWebBridge", code: 4, userInfo: [NSLocalizedDescriptionKey: "Missing clipboard text"]) + } + NSPasteboard.general.clearContents() + guard NSPasteboard.general.setString(text, forType: .string) else { + throw NSError(domain: "AcpmuxWebBridge", code: 5, userInfo: [NSLocalizedDescriptionKey: "Unable to write the clipboard"]) + } + return NSNull() + case "native.openURL": + guard let rawURL = request.string("url"), let url = URL(string: rawURL), + ["http", "https"].contains(url.scheme?.lowercased()) else { + throw NSError(domain: "AcpmuxWebBridge", code: 6, userInfo: [NSLocalizedDescriptionKey: "Only HTTP and HTTPS links can be opened"]) + } + guard NSWorkspace.shared.open(url) else { + throw NSError(domain: "AcpmuxWebBridge", code: 7, userInfo: [NSLocalizedDescriptionKey: "Unable to open the link"]) + } + return NSNull() + case "native.openFile": + guard let path = request.string("path"), !path.isEmpty else { + throw NSError(domain: "AcpmuxWebBridge", code: 8, userInfo: [NSLocalizedDescriptionKey: "Missing file path"]) + } + guard NSWorkspace.shared.open(URL(fileURLWithPath: path)) else { + throw NSError(domain: "AcpmuxWebBridge", code: 9, userInfo: [NSLocalizedDescriptionKey: "Unable to open the file"]) + } + return NSNull() + case "native.focus": + focus() + return NSNull() + default: + throw NSError(domain: "AcpmuxWebBridge", code: 1, userInfo: [NSLocalizedDescriptionKey: "Unsupported bridge request"]) + } + return NSNull() + } + + private func applyTheme() { + guard let webView, + let data = try? JSONSerialization.data(withJSONObject: theme.dictionary), + let json = String(data: data, encoding: .utf8) else { return } + webView.evaluateJavaScript("window.cmuxAcpmuxBridge?.applyTheme(\(json));") { _, _ in } + } + + private func sendCustomization() { + guard let webView, loaded else { return } + let directory = FileManager.default.homeDirectoryForCurrentUser.appending(path: ".config/cmux/agent-pane") + let fileManager = FileManager.default + let themeCSS = try? String(contentsOf: directory.appending(path: "theme.css"), encoding: .utf8) + let registryJS = try? String(contentsOf: directory.appending(path: "registry.js"), encoding: .utf8) + var layout: [String: Any] = [:] + if let data = try? Data(contentsOf: directory.appending(path: "layout.json")), + let decoded = try? JSONSerialization.jsonObject(with: data) as? [String: Any] { + layout = decoded + } + let payload: [String: Any] = [ + "themeCSS": themeCSS as Any, + "registryJS": registryJS as Any, + "layout": layout, + ] + guard JSONSerialization.isValidJSONObject(payload), + let data = try? JSONSerialization.data(withJSONObject: payload), + let json = String(data: data, encoding: .utf8) else { return } + webView.evaluateJavaScript("window.cmuxAcpmuxBridge?.applyCustomization(\(json));") { _, _ in } + _ = fileManager + } + + private static func jsonObject(_ value: T) -> Any? { + guard let data = try? JSONEncoder().encode(value), + let object = try? JSONSerialization.jsonObject(with: data) else { return nil } + return object + } + + private static func isTrusted(_ candidate: URL?, expected: URL?) -> Bool { + guard let candidate, let expected, candidate.isFileURL, expected.isFileURL else { return false } + return candidate.standardizedFileURL.resolvingSymlinksInPath() == expected.standardizedFileURL.resolvingSymlinksInPath() + } + + private static func isTrustedFragment(_ candidate: URL, expected: URL?) -> Bool { + guard candidate.fragment != nil, var base = URLComponents(url: candidate, resolvingAgainstBaseURL: false), + let expected, var expectedBase = URLComponents(url: expected, resolvingAgainstBaseURL: false) else { return false } + base.fragment = nil + expectedBase.fragment = nil + return isTrusted(base.url, expected: expectedBase.url) + } + + private struct Request { + let method: String + let params: [String: Any] + func string(_ key: String) -> String? { params[key] as? String } + } + + private static func decodeRequest(_ body: Any) throws -> Request { + guard let object = body as? [String: Any], + let method = object["method"] as? String else { + throw NSError(domain: "AcpmuxWebBridge", code: 2, userInfo: [NSLocalizedDescriptionKey: "Invalid bridge request"]) + } + return Request(method: method, params: object["params"] as? [String: Any] ?? [:]) + } +} diff --git a/Sources/Panels/AgentSessionPanel.swift b/Sources/Panels/AgentSessionPanel.swift index 162e55c46d77..0aaf6f41bedc 100644 --- a/Sources/Panels/AgentSessionPanel.swift +++ b/Sources/Panels/AgentSessionPanel.swift @@ -27,6 +27,9 @@ final class AgentSessionPanel: Panel { private(set) var displayTitle: String /// Composer command routing from the web renderer. The native pane does not run terminal commands. var onRunCommand: ((String) throws -> [String: Any])? +#if DEBUG + var onWebRendererDebugAction: ((String, [String: Any]) -> [String: Any]?)? +#endif var displayIcon: String? { "bubble.left.and.bubble.right" } private(set) var isDirty: Bool = false var onDisplayStateChanged: ((String, Bool) -> Void)? { @@ -82,6 +85,10 @@ final class AgentSessionPanel: Panel { return pane } + func startChatIfNeeded() { + chatModel.start() + } + private func observeChatModel() { withObservationTracking { let title = chatModel.summary?.displayTitle ?? Self.defaultTitle @@ -117,6 +124,9 @@ final class AgentSessionPanel: Panel { #if DEBUG /// Scripted pane interactions for DEBUG animation recordings. func performDebugChatAction(_ action: String, params: [String: Any]) -> [String: Any]? { + if let onWebRendererDebugAction { + return onWebRendererDebugAction(action, params) + } chatPane?.performDebugAction(action, params: params) } #endif diff --git a/Sources/Panels/AgentSessionPanelView.swift b/Sources/Panels/AgentSessionPanelView.swift index 988ecf94f6cc..e11969f1f421 100644 --- a/Sources/Panels/AgentSessionPanelView.swift +++ b/Sources/Panels/AgentSessionPanelView.swift @@ -14,10 +14,20 @@ struct AgentSessionPanelView: View { var body: some View { Group { if isVisibleInUI { - AcpmuxChatPaneRepresentable( - panel: panel, - theme: AcpmuxChatTheme.resolve(appearance: appearance, accent: cmuxAccent) - ) + if panel.rendererKind == .typescript { + AcpmuxChatWebRenderer( + panel: panel, + isFocused: isFocused, + backgroundColor: appearance.contentBackgroundColor, + theme: AgentSessionWebTheme.resolve(appearance: appearance), + onRequestPanelFocus: onRequestPanelFocus + ) + } else { + AcpmuxChatPaneRepresentable( + panel: panel, + theme: AcpmuxChatTheme.resolve(appearance: appearance, accent: cmuxAccent) + ) + } .id(panel.id) .frame(maxWidth: .infinity, maxHeight: .infinity) .zIndex(Double(portalPriority)) diff --git a/Sources/SettingsSearchIndex.swift b/Sources/SettingsSearchIndex.swift index df2e59d7599b..bdd9f161dc31 100644 --- a/Sources/SettingsSearchIndex.swift +++ b/Sources/SettingsSearchIndex.swift @@ -34,6 +34,7 @@ enum SettingsSearchIndex { setting(.app, "supported-file-previews", String(localized: "settings.app.openSupportedFilesInCmux", defaultValue: "Open Supported Files in cmux"), "cmd click file preview pdf image audio video quick look editor"), setting(.app, "terminal-config", String(localized: "settings.app.configWindow", defaultValue: "Terminal Config"), "ghostty config merged preview macos-option-as-alt option as alt left option right option alt key meta"), setting(.app, "markdown-viewer", String(localized: "settings.app.openMarkdownInCmuxViewer", defaultValue: "Open Markdown in cmux Viewer"), "md markdown viewer"), + setting(.app, "agent-session-renderer", String(localized: "settings.agentSession.renderer", defaultValue: "Agent Session Renderer"), "agentSession.renderer native TypeScript React chat pane acpmux"), setting(.app, "markdown-font-size", String(localized: "settings.app.markdownFontSize", defaultValue: "Markdown Viewer Font Size"), "md markdown viewer font size points zoom scale text bigger smaller"), setting(.app, "markdown-font-family", String(localized: "settings.app.markdownFontFamily", defaultValue: "Markdown Viewer Font"), "markdown.fontFamily md markdown viewer font font-family family typeface system stack custom"), setting(.app, "markdown-max-width", String(localized: "settings.app.markdownMaxWidth", defaultValue: "Markdown Viewer Max Width"), "markdown.maxWidth md markdown viewer width column reading line length pixels px"), @@ -333,6 +334,7 @@ enum SettingsSearchIndex { "workspaceColors.notificationBadgeColor": settingID(for: .workspaceColors, idSuffix: "badge"), "sidebarAppearance.matchTerminalBackground": settingID(for: .sidebarAppearance, idSuffix: "match-terminal"), "customSidebars.renderer": settingID(for: .customSidebars, idSuffix: "renderer"), + "agentSession.renderer": settingID(for: .app, idSuffix: "agent-session-renderer"), "automation.socketControlMode": settingID(for: .automation, idSuffix: "socket-mode"), "automation.socketPassword": settingID(for: .automation, idSuffix: "socket-password"), "automation.claudeCodeIntegration": settingID(for: .automation, idSuffix: "claude-code"), diff --git a/Sources/TerminalController+ControlSurfaceContext2.swift b/Sources/TerminalController+ControlSurfaceContext2.swift index aa1e064caa3d..61ebff7499fe 100644 --- a/Sources/TerminalController+ControlSurfaceContext2.swift +++ b/Sources/TerminalController+ControlSurfaceContext2.swift @@ -353,7 +353,7 @@ extension TerminalController { let panelType = inputs.typeRaw.flatMap { surfacePanelType(forRawToken: $0) } ?? .terminal var providerID: AgentSessionProviderID = .codex - var rendererKind: AgentSessionRendererKind = .react + var rendererKind: AgentSessionRendererKind = .configured() if panelType == .agentSession { if let providerRaw = inputs.providerRaw { switch v2NormalizedToken(providerRaw) { @@ -365,6 +365,8 @@ extension TerminalController { } if let rendererRaw = inputs.rendererRaw { switch v2NormalizedToken(rendererRaw) { + case "native": rendererKind = .native + case "typescript", "ts": rendererKind = .typescript case "react": rendererKind = .react case "solid": rendererKind = .solid default: return .invalidRenderer(rawValue: rendererRaw) diff --git a/Sources/TerminalController.swift b/Sources/TerminalController.swift index 949c587de2f8..0205409f7cdf 100644 --- a/Sources/TerminalController.swift +++ b/Sources/TerminalController.swift @@ -5280,7 +5280,7 @@ class TerminalController { default: return ( .codex, - .react, + .native, .err( code: "invalid_params", message: "Invalid provider (codex|claude|opencode)", @@ -5295,6 +5295,10 @@ class TerminalController { let rendererKind: AgentSessionRendererKind if let rendererRaw { switch v2NormalizedToken(rendererRaw) { + case "native": + rendererKind = .native + case "typescript", "ts": + rendererKind = .typescript case "react": rendererKind = .react case "solid": @@ -5302,16 +5306,16 @@ class TerminalController { default: return ( providerID, - .react, + .native, .err( code: "invalid_params", - message: "Invalid renderer (react|solid)", + message: "Invalid renderer (native|typescript|react|solid)", data: ["renderer": rendererRaw] ) ) } } else { - rendererKind = .react + rendererKind = .configured() } return (providerID, rendererKind, nil) diff --git a/Sources/Workspace.swift b/Sources/Workspace.swift index 3a2a154e625c..e034e0bcbb8d 100644 --- a/Sources/Workspace.swift +++ b/Sources/Workspace.swift @@ -10621,7 +10621,7 @@ final class Workspace: Identifiable, ObservableObject, FilePreviewTabMetadataHos func newAgentSessionSurface( inPane paneId: PaneID, providerID: AgentSessionProviderID = .codex, - rendererKind: AgentSessionRendererKind, + rendererKind: AgentSessionRendererKind? = nil, workingDirectory: String? = nil, acpmuxSessionId: String? = nil, focus: Bool? = nil, @@ -10642,7 +10642,7 @@ final class Workspace: Identifiable, ObservableObject, FilePreviewTabMetadataHos let agentPanel = AgentSessionPanel( workspaceId: id, - rendererKind: rendererKind, + rendererKind: rendererKind ?? .configured(), initialProviderID: providerID, workingDirectory: directory, acpmuxSessionId: acpmuxSessionId diff --git a/cmux.xcodeproj/project.pbxproj b/cmux.xcodeproj/project.pbxproj index 06b6036fffcc..a39857e065bc 100644 --- a/cmux.xcodeproj/project.pbxproj +++ b/cmux.xcodeproj/project.pbxproj @@ -21,6 +21,7 @@ A5C017000000000000000007 /* AccountSignInView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5C017000000000000000008 /* AccountSignInView.swift */; }; D0B102020000000000000001 /* AcknowledgmentsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B103020000000000000001 /* AcknowledgmentsView.swift */; }; D0B102010000000000000001 /* AcknowledgmentsWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B103010000000000000001 /* AcknowledgmentsWindowController.swift */; }; + 9B9ABEED81415993310ABFA5 /* acpmux-agent-session in Resources */ = {isa = PBXBuildFile; fileRef = 9C9ABEED81415993310ABFA5 /* acpmux-agent-session */; }; AE9894C2C654DA172D7F6466 /* AcpmuxBubblePath.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA48C75ACD383B75B39B9D28 /* AcpmuxBubblePath.swift */; }; 8F50E8969074B2940650060B /* AcpmuxChatConnectorFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F6103F4CD1BBBCC136A75A4 /* AcpmuxChatConnectorFactory.swift */; }; E889AFF3636FAD17F9BAFF92 /* AcpmuxChatHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 680B68232C2E828EC8959222 /* AcpmuxChatHeaderView.swift */; }; @@ -28,6 +29,7 @@ C6F223CD8940C9B23BAFA3A6 /* AcpmuxChatPaneView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3966F42C70F1FB3B005D97F4 /* AcpmuxChatPaneView.swift */; }; 28764616EBBB107A57F3CD03 /* AcpmuxChatTextRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDF66A15515094E2BA4B1511 /* AcpmuxChatTextRenderer.swift */; }; 0FAB8E99714F862D6B33AB56 /* AcpmuxChatTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBCF4B1984E3F50A490E0E38 /* AcpmuxChatTheme.swift */; }; + 93BB8673E4EAA682F6BDF809 /* AcpmuxChatWebRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B9ABEED81415993310ABFA4 /* AcpmuxChatWebRenderer.swift */; }; 47B46CB5997B0BEAF1485921 /* AcpmuxChipButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AE791F8DB15DA66276BBA60 /* AcpmuxChipButton.swift */; }; 4BE4AD2B8729479CB021D9B3 /* AcpmuxComposerTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1682F8EB802F8126AA9768DE /* AcpmuxComposerTextView.swift */; }; 4B659FCAA38B4A064E898DAD /* AcpmuxComposerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59A5EF06E729024F46CD1630 /* AcpmuxComposerView.swift */; }; @@ -4395,6 +4397,7 @@ A5C017000000000000000008 /* AccountSignInView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSignInView.swift; sourceTree = ""; }; D0B103020000000000000001 /* AcknowledgmentsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App/About/AcknowledgmentsView.swift; sourceTree = ""; }; D0B103010000000000000001 /* AcknowledgmentsWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App/About/AcknowledgmentsWindowController.swift; sourceTree = ""; }; + 9C9ABEED81415993310ABFA5 /* acpmux-agent-session */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "acpmux-agent-session"; sourceTree = ""; }; CA48C75ACD383B75B39B9D28 /* AcpmuxBubblePath.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Panels/AcpmuxChat/AcpmuxBubblePath.swift; sourceTree = ""; }; 0F6103F4CD1BBBCC136A75A4 /* AcpmuxChatConnectorFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Panels/AcpmuxChat/AcpmuxChatConnectorFactory.swift; sourceTree = ""; }; 680B68232C2E828EC8959222 /* AcpmuxChatHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Panels/AcpmuxChat/AcpmuxChatHeaderView.swift; sourceTree = ""; }; @@ -4402,6 +4405,7 @@ 3966F42C70F1FB3B005D97F4 /* AcpmuxChatPaneView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Panels/AcpmuxChat/AcpmuxChatPaneView.swift; sourceTree = ""; }; CDF66A15515094E2BA4B1511 /* AcpmuxChatTextRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Panels/AcpmuxChat/AcpmuxChatTextRenderer.swift; sourceTree = ""; }; BBCF4B1984E3F50A490E0E38 /* AcpmuxChatTheme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Panels/AcpmuxChat/AcpmuxChatTheme.swift; sourceTree = ""; }; + 9B9ABEED81415993310ABFA4 /* AcpmuxChatWebRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Panels/AcpmuxChatWebRenderer.swift; sourceTree = ""; }; 1AE791F8DB15DA66276BBA60 /* AcpmuxChipButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Panels/AcpmuxChat/AcpmuxChipButton.swift; sourceTree = ""; }; 1682F8EB802F8126AA9768DE /* AcpmuxComposerTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Panels/AcpmuxChat/AcpmuxComposerTextView.swift; sourceTree = ""; }; 59A5EF06E729024F46CD1630 /* AcpmuxComposerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Panels/AcpmuxChat/AcpmuxComposerView.swift; sourceTree = ""; }; @@ -8746,6 +8750,7 @@ A9D9000000000000000F0016 /* markdown-viewer */, A9E010000000000000000006 /* agent-session-react */, A9E010000000000000000007 /* agent-session-solid */, + 9C9ABEED81415993310ABFA5 /* acpmux-agent-session */, A5001622 /* cmux.sdef */, ); @@ -11404,6 +11409,7 @@ 2A6AE29EA7AF1FB12876663D /* UpdateRelaunchAgentClassification.swift */, 3E494FDF2D8061EDBCF12CE0 /* DebugWindowRecorder.swift */, 5B0BD23016CCA92209074B6B /* TerminalController+DebugWindowRecord.swift */, + 9B9ABEED81415993310ABFA4 /* AcpmuxChatWebRenderer.swift */, ); path = Sources; sourceTree = ""; @@ -13346,6 +13352,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 9B9ABEED81415993310ABFA5 /* acpmux-agent-session in Resources */, A9E020000000000000000006 /* agent-session-react in Resources */, A9E020000000000000000007 /* agent-session-solid in Resources */, A5001100 /* Assets.xcassets in Resources */, @@ -13655,6 +13662,7 @@ C6F223CD8940C9B23BAFA3A6 /* AcpmuxChatPaneView.swift in Sources */, 28764616EBBB107A57F3CD03 /* AcpmuxChatTextRenderer.swift in Sources */, 0FAB8E99714F862D6B33AB56 /* AcpmuxChatTheme.swift in Sources */, + 93BB8673E4EAA682F6BDF809 /* AcpmuxChatWebRenderer.swift in Sources */, 47B46CB5997B0BEAF1485921 /* AcpmuxChipButton.swift in Sources */, 4BE4AD2B8729479CB021D9B3 /* AcpmuxComposerTextView.swift in Sources */, 4B659FCAA38B4A064E898DAD /* AcpmuxComposerView.swift in Sources */, diff --git a/scripts/build-agent-session-web.sh b/scripts/build-agent-session-web.sh index 8f860ee08177..1b9f293ce122 100755 --- a/scripts/build-agent-session-web.sh +++ b/scripts/build-agent-session-web.sh @@ -4,6 +4,7 @@ set -eu ROOT="$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)" OUT_REACT="$ROOT/Resources/agent-session-react" OUT_SOLID="$ROOT/Resources/agent-session-solid" +OUT_ACPMUX="$ROOT/Resources/acpmux-agent-session" MARKED_JS="$ROOT/Resources/markdown-viewer/marked.min.js" if ! command -v bun >/dev/null 2>&1; then @@ -21,8 +22,10 @@ if [ ! -f "$MARKED_JS" ]; then exit 1 fi -rm -rf "$OUT_REACT" "$OUT_SOLID" -mkdir -p "$OUT_REACT/assets" "$OUT_SOLID/assets" +cd "$ROOT/webviews" + +rm -rf "$OUT_REACT" "$OUT_SOLID" "$OUT_ACPMUX" +mkdir -p "$OUT_REACT/assets" "$OUT_SOLID/assets" "$OUT_ACPMUX/assets" bunx esbuild "$ROOT/webviews/src/agent-session/react/standalone.ts" \ --bundle \ @@ -42,11 +45,22 @@ bunx esbuild "$ROOT/webviews/src/agent-session/solid/main.ts" \ --minify \ --outfile="$OUT_SOLID/assets/app.js" -bunx tailwindcss \ +bunx esbuild "$ROOT/webviews/src/agent-session/acpmux/main.tsx" \ + --bundle \ + --format=esm \ + --platform=browser \ + --target=es2022 \ + '--define:process.env.NODE_ENV="production"' \ + --minify \ + --outfile="$OUT_ACPMUX/assets/app.js" + +bunx @tailwindcss/cli@4.3.0 \ -i "$ROOT/webviews/src/agent-session/shared/styles.css" \ -o "$OUT_REACT/assets/styles.css" \ --minify cp "$OUT_REACT/assets/styles.css" "$OUT_SOLID/assets/styles.css" +cp "$OUT_REACT/assets/styles.css" "$OUT_ACPMUX/assets/styles.css" +cat "$ROOT/webviews/src/agent-session/acpmux/styles.css" >> "$OUT_ACPMUX/assets/styles.css" strip_trailing_line_whitespace() { /usr/bin/perl -0pi -e 's/[ \t]+(?=\r?\n)//g; s/[ \t]+\z//' "$@" @@ -55,8 +69,10 @@ strip_trailing_line_whitespace() { strip_trailing_line_whitespace \ "$OUT_REACT/assets/app.js" \ "$OUT_SOLID/assets/app.js" \ + "$OUT_ACPMUX/assets/app.js" \ "$OUT_REACT/assets/styles.css" \ - "$OUT_SOLID/assets/styles.css" + "$OUT_SOLID/assets/styles.css" \ + "$OUT_ACPMUX/assets/styles.css" write_index() { out_dir="$1" @@ -89,5 +105,6 @@ write_index() { write_index "$OUT_REACT" write_index "$OUT_SOLID" +write_index "$OUT_ACPMUX" -strip_trailing_line_whitespace "$OUT_REACT/index.html" "$OUT_SOLID/index.html" +strip_trailing_line_whitespace "$OUT_REACT/index.html" "$OUT_SOLID/index.html" "$OUT_ACPMUX/index.html" diff --git a/scripts/localization-allowed-omissions.json b/scripts/localization-allowed-omissions.json index 2416f0ba9a3b..ff35bfdd3f44 100644 --- a/scripts/localization-allowed-omissions.json +++ b/scripts/localization-allowed-omissions.json @@ -1,4 +1,30 @@ { + "agentSession.renderer.typescript": { + "source": "TypeScript", + "identityLocales": { + "de": "TypeScript is the product and programming-language name.", + "fr": "TypeScript is the product and programming-language name.", + "ar": "TypeScript is the product and programming-language name.", + "es": "TypeScript is the product and programming-language name.", + "zh-Hant": "TypeScript is the product and programming-language name.", + "zh-Hans": "TypeScript is the product and programming-language name.", + "ko": "TypeScript is the product and programming-language name.", + "ja": "TypeScript is the product and programming-language name." + } + }, + "settings.agentSession.renderer.typescript": { + "source": "TypeScript (React)", + "identityLocales": { + "de": "TypeScript and React are product and programming-language names.", + "fr": "TypeScript and React are product and programming-language names.", + "ar": "TypeScript and React are product and programming-language names.", + "es": "TypeScript and React are product and programming-language names.", + "zh-Hant": "TypeScript and React are product and programming-language names.", + "zh-Hans": "TypeScript and React are product and programming-language names.", + "ko": "TypeScript and React are product and programming-language names.", + "ja": "TypeScript and React are product and programming-language names." + } + }, "mobile.ios106PairingUpdate.releaseLabel": { "source": "1.0.6 · September 2026", "identityLocales": { diff --git a/web/data/cmux.schema.json b/web/data/cmux.schema.json index 3155707711ae..923a977b8771 100644 --- a/web/data/cmux.schema.json +++ b/web/data/cmux.schema.json @@ -556,6 +556,21 @@ "default": "automatic", "description": "Dock and app switcher icon style." }, + "agentSession": { + "x-cmux-scopes": ["global"], + "title": "agentSession", + "type": "object", + "additionalProperties": false, + "description": "Agent session pane renderer settings.", + "properties": { + "renderer": { + "type": "string", + "enum": ["native", "typescript"], + "default": "native", + "description": "Renderer for new agent session panes. TypeScript uses the React web renderer over the acpmux bridge." + } + } + }, "windowTitleTemplate": { "type": "string", "default": "", diff --git a/webviews/bun.lock b/webviews/bun.lock index d180aebd15c3..be7b43e4083f 100644 --- a/webviews/bun.lock +++ b/webviews/bun.lock @@ -5,10 +5,12 @@ "": { "name": "@cmux/webviews", "dependencies": { + "@chenglou/pretext": "0.0.9", "@pierre/diffs": "1.2.7", "@pierre/trees": "1.0.0-beta.4", "@tanstack/react-router": "1.170.11", "@vitejs/plugin-react": "^5.1.2", + "marked": "17.0.5", "prosemirror-commands": "^1.7.1", "prosemirror-model": "^1.25.7", "prosemirror-state": "^1.4.4", @@ -83,6 +85,8 @@ "@bramus/specificity": ["@bramus/specificity@2.4.2", "", { "dependencies": { "css-tree": "^3.0.0" }, "bin": { "specificity": "bin/cli.js" } }, "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw=="], + "@chenglou/pretext": ["@chenglou/pretext@0.0.9", "", {}, "sha512-vInlpC//3vjRfWTs78k2BBIq/0bUdpjIp8TIn9fXe0NvnChhTQZfjioVzERQQbkQvCVpPpw7PDOrTWMHpq27VA=="], + "@csstools/color-helpers": ["@csstools/color-helpers@6.0.2", "", {}, "sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q=="], "@csstools/css-calc": ["@csstools/css-calc@3.2.1", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" } }, "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg=="], @@ -739,6 +743,8 @@ "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + "marked": ["marked@17.0.5", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-6hLvc0/JEbRjRgzI6wnT2P1XuM1/RrrDEX0kPt0N7jGm1133g6X7DlxFasUIx+72aKAr904GTxhSLDrd5DIlZg=="], + "mdast-util-to-hast": ["mdast-util-to-hast@13.2.1", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA=="], "mdn-data": ["mdn-data@2.27.1", "", {}, "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ=="], diff --git a/webviews/package.json b/webviews/package.json index d1f86276e412..18bcbb1bc77e 100644 --- a/webviews/package.json +++ b/webviews/package.json @@ -6,6 +6,8 @@ "scripts": { "build": "bun run verify:tanstack-router && bun run typecheck && vite build", "benchmark": "bun run bench/diff-stream.bench.ts", + "preview:dev": "vite --config vite.config.acpmux-preview.mjs", + "preview:build": "vite build --config vite.config.acpmux-preview.mjs", "lint": "oxlint . --react-plugin --jsx-a11y-plugin --import-plugin", "lint:ci": "oxlint . --react-plugin --jsx-a11y-plugin --import-plugin --deny-warnings", "lint:fix": "oxlint . --react-plugin --jsx-a11y-plugin --import-plugin --fix", @@ -16,10 +18,12 @@ "react-doctor:ci": "react-doctor . --full --no-score --fail-on none" }, "dependencies": { + "@chenglou/pretext": "0.0.9", "@pierre/diffs": "1.2.7", "@pierre/trees": "1.0.0-beta.4", "@tanstack/react-router": "1.170.11", "@vitejs/plugin-react": "^5.1.2", + "marked": "17.0.5", "prosemirror-commands": "^1.7.1", "prosemirror-model": "^1.25.7", "prosemirror-state": "^1.4.4", diff --git a/webviews/src/agent-session/acpmux-preview/PreviewApp.tsx b/webviews/src/agent-session/acpmux-preview/PreviewApp.tsx new file mode 100644 index 000000000000..8d758bf2eb16 --- /dev/null +++ b/webviews/src/agent-session/acpmux-preview/PreviewApp.tsx @@ -0,0 +1,198 @@ +import React, { useEffect, useMemo, useRef, useState } from "react"; +import { createRoot } from "react-dom/client"; +import { AcpmuxApp } from "../acpmux/App"; +import { applyAgentTheme } from "../shared/theme"; +import type { AcpmuxRow, AcpmuxSnapshot } from "../acpmux/model"; +import { previewFixtures, type PreviewFixture } from "./fixtures"; + +type BridgeMessage = { id?: string; method?: string; params?: Record }; + +type PreviewSocketMessage = { id?: number; method?: string; params?: Record }; + +class PreviewSocket { + static bridge: MockBridge | undefined; + readyState = 0; + onopen?: (event: Event) => void; + onmessage?: (event: MessageEvent) => void; + onerror?: (event: Event) => void; + onclose?: (event: CloseEvent) => void; + private readonly bridge: MockBridge | undefined; + + constructor(_url: string) { + this.bridge = PreviewSocket.bridge; + window.setTimeout(() => { + if (this.readyState !== 0) return; + this.readyState = 1; + this.onopen?.(new Event("open")); + }, 0); + } + + send(raw: string): void { + if (this.readyState !== 1) return; + try { this.bridge?.handleSocket(this, JSON.parse(raw) as PreviewSocketMessage); } catch { this.onerror?.(new Event("error")); } + } + + close(): void { + if (this.readyState === 3) return; + this.readyState = 3; + this.onclose?.(new CloseEvent("close")); + } + + deliver(message: Record): void { + if (this.readyState !== 1) return; + this.onmessage?.({ data: JSON.stringify(message) } as MessageEvent); + } +} + +class MockBridge { + private snapshot: AcpmuxSnapshot; + private replayTimer: number | undefined; + private fixture: PreviewFixture; + private socket?: PreviewSocket; + private nextSeq = 1; + + constructor(fixture: PreviewFixture) { this.fixture = fixture; this.snapshot = structuredClone(fixture.snapshot); } + + install(): void { + PreviewSocket.bridge = this; + window.WebSocket = PreviewSocket as unknown as typeof WebSocket; + window.webkit = { messageHandlers: { agentSession: { postMessage: (message: unknown) => Promise.resolve(this.handle(message as BridgeMessage)) } } } as unknown as typeof window.webkit; + } + + select(fixture: PreviewFixture): void { + if (this.replayTimer) window.clearTimeout(this.replayTimer); + this.fixture = fixture; + this.snapshot = structuredClone(fixture.snapshot); + this.socket?.close(); + } + + emit(): void { window.cmuxAcpmuxBridge?.receive(structuredClone(this.snapshot)); } + + replay(): void { + if (!this.fixture.replay?.length) return; + const previousText = new Map(); + const events = this.fixture.replay; + let index = 0; + const tick = () => { + const row = events[index]; + if (!row) return; + const previous = previousText.get(row.id) ?? ""; + const text = row.text ?? ""; + const delta = text.startsWith(previous) ? text.slice(previous.length) : text; + previousText.set(row.id, text); + if (delta || row.kind !== "assistant") this.socket?.deliver(this.eventMessage(row, delta)); + index += 1; + const nextAt = events[index]?.at ?? row.at; + this.replayTimer = window.setTimeout(tick, Math.max(0, nextAt - row.at)); + }; + tick(); + } + + handleSocket(socket: PreviewSocket, message: PreviewSocketMessage): void { + this.socket = socket; + const reply = (result: unknown) => socket.deliver({ jsonrpc: "2.0", id: message.id, result }); + switch (message.method) { + case "initialize": reply({ protocolVersion: 1 }); return; + case "_acpmux/watch": reply({ sessions: this.snapshot.sessions }); return; + case "_acpmux/harnesses": reply({ harnesses: this.snapshot.catalog }); return; + case "_acpmux/attach": { + const summary = this.snapshot.summary ?? { sessionId: this.snapshot.sessionId ?? "preview-session" }; + const events = this.fixture.id === "streaming-replay" ? [] : this.snapshotToEvents(this.snapshot.rows); + reply({ session: summary, events }); + return; + } + case "session/new": { + const sessionId = `preview-session-${Date.now()}`; + this.snapshot = { ...this.snapshot, sessionId, sessions: [...this.snapshot.sessions, { sessionId, title: "New preview session" }] }; + reply({ sessionId }); + return; + } + case "session/prompt": { + const text = String(message.params?.prompt?.[0]?.text ?? ""); + const promptId = String(message.params?._meta?.acpmux?.promptId ?? `preview-user-${Date.now()}`); + const user: AcpmuxRow = { id: promptId, version: 1, at: Date.now(), kind: "user", text }; + reply(null); + window.setTimeout(() => { + this.socket?.deliver(this.eventMessage(user)); + const assistant: AcpmuxRow = { id: `preview-assistant-${Date.now()}`, version: 1, at: Date.now(), kind: "assistant", text: `Preview response for “${text}”`, streaming: true }; + this.socket?.deliver(this.eventMessage(assistant)); + this.socket?.deliver({ jsonrpc: "2.0", method: "_acpmux/event", params: { sessionId: this.snapshot.sessionId, seq: this.nextSeq++, at: Date.now(), dir: "mux", kind: "turn_result", msg: { status: "completed" } } }); + }, 120); + return; + } + case "_acpmux/permission_respond": + reply(null); + this.socket?.deliver({ jsonrpc: "2.0", method: "_acpmux/event", params: { sessionId: this.snapshot.sessionId, seq: this.nextSeq++, at: Date.now(), dir: "mux", kind: "permission_decision", msg: {} } }); + return; + default: reply(null); + } + } + + private snapshotToEvents(rows: AcpmuxRow[]): Record[] { return rows.map((row) => this.eventMessage(row)); } + + private eventMessage(row: AcpmuxRow, text = row.text ?? ""): Record { + const seq = this.nextSeq++; + if (row.kind === "user") return { jsonrpc: "2.0", method: "_acpmux/event", params: { sessionId: this.snapshot.sessionId, seq, at: row.at, dir: "mux", kind: "user_message", msg: { text, promptId: row.id } } }; + if (row.kind === "assistant") return { jsonrpc: "2.0", method: "_acpmux/event", params: { sessionId: this.snapshot.sessionId, seq, at: row.at, dir: "in", kind: "agent_message_chunk", msg: { method: "session/update", params: { update: { sessionUpdate: "agent_message_chunk", messageId: row.id, content: { type: "text", text } } } } } }; + if (row.kind === "plan") return { jsonrpc: "2.0", method: "_acpmux/event", params: { sessionId: this.snapshot.sessionId, seq, at: row.at, dir: "in", kind: "agent_thought_chunk", msg: { method: "session/update", params: { update: { sessionUpdate: "agent_thought_chunk", content: { type: "text", text } } } } } }; + if (row.kind === "activity") return { jsonrpc: "2.0", method: "_acpmux/event", params: { sessionId: this.snapshot.sessionId, seq, at: row.at, dir: "in", kind: "tool_call", msg: { method: "session/update", params: { update: { sessionUpdate: "tool_call", toolCallId: row.items?.[0]?.tool?.id ?? row.id, title: row.items?.[0]?.text ?? "Tool call", status: "completed" } } } } }; + return { jsonrpc: "2.0", method: "_acpmux/event", params: { sessionId: this.snapshot.sessionId, seq, at: row.at, dir: "mux", kind: "turn_result", msg: { status: "completed" } } }; + } + + private handle(message: BridgeMessage): { ok: true; value: unknown } { + switch (message.method) { + case "ready": this.emit(); return { ok: true, value: { protocolVersion: 1, transport: "acpmux-websocket", endpoint: "ws://preview.invalid/acpmux", token: "preview-token", sessionId: this.snapshot.sessionId } }; + case "chat.send": { + const text = String(message.params?.text ?? ""); + const user: AcpmuxRow = { id: `preview-user-${Date.now()}`, version: 1, at: Date.now(), kind: "user", text }; + this.snapshot = { ...this.snapshot, rows: [...this.snapshot.rows, user], isWorking: true }; + this.emit(); + window.setTimeout(() => { const assistant: AcpmuxRow = { id: `preview-assistant-${Date.now()}`, version: 1, at: Date.now(), kind: "assistant", text: `Preview response for “${text}”`, streaming: false }; this.snapshot = { ...this.snapshot, rows: [...this.snapshot.rows, assistant], isWorking: false }; this.emit(); }, 400); + break; + } + case "chat.cancel": this.snapshot = { ...this.snapshot, isWorking: false }; this.emit(); break; + case "chat.permission": this.snapshot = { ...this.snapshot, permission: undefined }; this.emit(); break; + default: break; + } + return { ok: true, value: null }; + } +} + +function PreviewControls({ bridge, onFixture, width, onWidth }: { bridge: MockBridge; onFixture: (fixture: PreviewFixture) => void; width: number; onWidth: (width: number) => void }) { + const [fixtureId, setFixtureId] = useState(previewFixtures[0].id); + const [dark, setDark] = useState(true); + const [fps, setFps] = useState("—"); + const frameTimes = useRef([]); + const previousFrame = useRef(performance.now()); + const fixture = previewFixtures.find((candidate) => candidate.id === fixtureId) ?? previewFixtures[0]; + useEffect(() => { + let frame = 0; + const tick = (now: number) => { frameTimes.current.push(now - previousFrame.current); previousFrame.current = now; if (frame++ % 30 === 0) { const values = frameTimes.current.slice(-60); const average = values.reduce((sum, value) => sum + value, 0) / Math.max(1, values.length); setFps(`${(1000 / average).toFixed(0)} FPS · ${average.toFixed(2)} ms`); } requestAnimationFrame(tick); }; + const id = requestAnimationFrame(tick); + return () => cancelAnimationFrame(id); + }, []); + const applyThemeFile = (css: string) => { let style = document.getElementById("acpmux-user-theme") as HTMLStyleElement | null; if (!style) { style = document.createElement("style"); style.id = "acpmux-user-theme"; document.head.append(style); } style.textContent = css; }; + return