diff --git a/tests/web/app-render.spec.ts b/tests/web/app-render.spec.ts index 5f8122ff..025eb652 100644 --- a/tests/web/app-render.spec.ts +++ b/tests/web/app-render.spec.ts @@ -1602,3 +1602,423 @@ it("preserves an edited recovered draft when late evidence arrives", () => { expect(input.value).toBe("edited"); expect(acknowledge).toHaveBeenCalledWith("unknown-command"); }); + +function deferred() { + let resolve!: (value: T) => void; + const promise = new Promise((next) => { + resolve = next; + }); + return { promise, resolve }; +} + +it("keeps a retyped draft when an earlier send settles", async () => { + const result = deferred(); + const store = createWebStore(); + const sendPrompt = vi.fn(() => result.promise); + const snapshot = activeSnapshot(); + snapshot.runtime.status = "idle"; + const props = { + snapshot, + selectedPath: "/tmp/session", + selectedWorkspace: "/tmp", + sessionSwitching: false, + promptAdmissionPending: false, + liveRunning: false, + landing: false, + activeTurn: null, + turnCancellationPending: false, + turnTerminalStatus: null, + pendingFollowUpsReceipt: null, + thinkingPendingLevel: null, + actions: { ...store.getState().actions, sendPrompt }, + }; + renderWithI18n(createElement(Composer, props)); + const input = screen.getByRole("textbox"); + + fireEvent.change(input, { target: { value: "first" } }); + fireEvent.click(screen.getByRole("button", { name: i18n.t("send") })); + fireEvent.change(input, { target: { value: "second" } }); + fireEvent.change(input, { target: { value: "first" } }); + + await act(async () => { + result.resolve(true); + await result.promise; + }); + + expect(input.value).toBe("first"); +}); + +it("keeps a draft after a failed send", async () => { + const result = deferred(); + const store = createWebStore(); + const sendPrompt = vi.fn(() => result.promise); + const snapshot = activeSnapshot(); + snapshot.runtime.status = "idle"; + renderWithI18n( + createElement(Composer, { + snapshot, + selectedPath: "/tmp/session", + selectedWorkspace: "/tmp", + sessionSwitching: false, + promptAdmissionPending: false, + liveRunning: false, + landing: false, + activeTurn: null, + turnCancellationPending: false, + turnTerminalStatus: null, + pendingFollowUpsReceipt: null, + thinkingPendingLevel: null, + actions: { ...store.getState().actions, sendPrompt }, + }), + ); + const input = screen.getByRole("textbox"); + + fireEvent.change(input, { target: { value: "keep me" } }); + fireEvent.click(screen.getByRole("button", { name: i18n.t("send") })); + await act(async () => { + result.resolve(false); + await result.promise; + }); + + expect(input.value).toBe("keep me"); +}); + +it("clears an old session draft without letting its late send clear the new one", async () => { + const result = deferred(); + const store = createWebStore(); + const sendPrompt = vi.fn(() => result.promise); + const snapshot = activeSnapshot(); + snapshot.runtime.status = "idle"; + const props = { + snapshot, + selectedPath: "/tmp/session", + selectedWorkspace: "/tmp", + sessionSwitching: false, + promptAdmissionPending: false, + liveRunning: false, + landing: false, + activeTurn: null, + turnCancellationPending: false, + turnTerminalStatus: null, + pendingFollowUpsReceipt: null, + thinkingPendingLevel: null, + actions: { ...store.getState().actions, sendPrompt }, + }; + const view = renderWithI18n(createElement(Composer, props)); + const input = screen.getByRole("textbox"); + fireEvent.change(input, { target: { value: "old session" } }); + fireEvent.click(screen.getByRole("button", { name: i18n.t("send") })); + + const nextSnapshot = { + ...snapshot, + currentSessionId: "next-session", + selectedSession: { + ...snapshot.selectedSession!, + id: "next-session", + path: "/tmp/next-session", + }, + }; + view.rerender( + createElement( + I18nextProvider, + { i18n }, + createElement(Composer, { + ...props, + snapshot: nextSnapshot, + selectedPath: "/tmp/next-session", + }), + ), + ); + expect(input.value).toBe(""); + + fireEvent.change(input, { target: { value: "new session" } }); + await act(async () => { + result.resolve(true); + await result.promise; + }); + + expect(input.value).toBe("new session"); +}); + +it("clears an active Session draft when switching to another workspace", () => { + const store = createWebStore(); + const snapshot = activeSnapshot(); + snapshot.workspaces = [ + { path: "/tmp", name: "A", current: true }, + { path: "/tmp/other", name: "B", current: false }, + ]; + const props = { + snapshot, + selectedPath: "/tmp/session", + selectedWorkspace: "/tmp", + sessionSwitching: false, + promptAdmissionPending: false, + liveRunning: false, + landing: false, + activeTurn: null, + turnCancellationPending: false, + turnTerminalStatus: null, + pendingFollowUpsReceipt: null, + thinkingPendingLevel: null, + actions: store.getState().actions, + }; + const view = renderWithI18n(createElement(Composer, props)); + const input = screen.getByRole("textbox"); + fireEvent.change(input, { target: { value: "Session A draft" } }); + + view.rerender( + createElement( + I18nextProvider, + { i18n }, + createElement(Composer, { + ...props, + selectedWorkspace: "/tmp/other", + workspaceDraft: true, + selectedPath: "/tmp/session", + }), + ), + ); + + expect(input.value).toBe(""); +}); + +it("transfers an unsent draft through manual new-session creation", () => { + const store = createWebStore(); + const snapshot = activeSnapshot(); + const props = { + snapshot, + selectedPath: "/tmp/session", + selectedWorkspace: "/tmp", + sessionSwitching: false, + promptAdmissionPending: false, + liveRunning: false, + landing: false, + activeTurn: null, + turnCancellationPending: false, + turnTerminalStatus: null, + pendingFollowUpsReceipt: null, + thinkingPendingLevel: null, + actions: store.getState().actions, + }; + const view = renderWithI18n(createElement(Composer, props)); + const input = screen.getByRole("textbox"); + fireEvent.change(input, { target: { value: "keep this draft" } }); + + view.rerender( + createElement( + I18nextProvider, + { i18n }, + createElement(Composer, { + ...props, + workspaceDraft: true, + selectedPath: null, + sessionSwitching: true, + }), + ), + ); + expect(input.value).toBe("keep this draft"); + + const createdSnapshot = { + ...snapshot, + currentSessionId: "created-session", + selectedSession: { + ...snapshot.selectedSession!, + id: "created-session", + path: "/tmp/created-session", + }, + }; + view.rerender( + createElement( + I18nextProvider, + { i18n }, + createElement(Composer, { + ...props, + snapshot: createdSnapshot, + selectedPath: "/tmp/created-session", + sessionSwitching: false, + }), + ), + ); + expect(input.value).toBe("keep this draft"); +}); + +it("ignores a rapid second Enter while admission is pending", async () => { + const result = deferred(); + const store = createWebStore(); + const sendPrompt = vi.fn(() => result.promise); + const snapshot = activeSnapshot(); + snapshot.runtime.status = "idle"; + renderWithI18n( + createElement(Composer, { + snapshot, + selectedPath: "/tmp/session", + selectedWorkspace: "/tmp", + sessionSwitching: false, + promptAdmissionPending: false, + liveRunning: false, + landing: false, + activeTurn: null, + turnCancellationPending: false, + turnTerminalStatus: null, + pendingFollowUpsReceipt: null, + thinkingPendingLevel: null, + actions: { ...store.getState().actions, sendPrompt }, + }), + ); + const input = screen.getByRole("textbox"); + fireEvent.change(input, { target: { value: "once" } }); + fireEvent.keyDown(input, { + key: "Enter", + nativeEvent: { isComposing: false }, + }); + fireEvent.keyDown(input, { + key: "Enter", + nativeEvent: { isComposing: false }, + }); + + expect(sendPrompt).toHaveBeenCalledOnce(); + await act(async () => { + result.resolve(true); + await result.promise; + }); + expect(input.value).toBe(""); +}); + +it("transfers a new-session draft until its first send is accepted", async () => { + const result = deferred(); + const store = createWebStore(); + const sendPrompt = vi.fn(() => result.promise); + const draftSnapshot = activeSnapshot(); + draftSnapshot.runtime.status = "idle"; + delete draftSnapshot.currentSessionId; + delete draftSnapshot.selectedSession; + draftSnapshot.sessions = []; + const props = { + snapshot: draftSnapshot, + selectedPath: null, + selectedWorkspace: "/tmp", + sessionSwitching: false, + promptAdmissionPending: false, + liveRunning: false, + landing: true, + activeTurn: null, + turnCancellationPending: false, + turnTerminalStatus: null, + pendingFollowUpsReceipt: null, + thinkingPendingLevel: null, + actions: { ...store.getState().actions, sendPrompt }, + }; + const view = renderWithI18n(createElement(Composer, props)); + const input = screen.getByRole("textbox"); + fireEvent.change(input, { target: { value: "first prompt" } }); + fireEvent.click(screen.getByRole("button", { name: i18n.t("send") })); + + const createdSnapshot = { + ...draftSnapshot, + currentSessionId: "created-session", + selectedSession: { + id: "created-session", + path: "/tmp/created-session", + cwd: "/tmp", + entries: [], + bytes: 0, + truncation, + }, + }; + view.rerender( + createElement( + I18nextProvider, + { i18n }, + createElement(Composer, { + ...props, + snapshot: createdSnapshot, + selectedPath: "/tmp/created-session", + sessionSwitching: true, + landing: false, + }), + ), + ); + expect(input.value).toBe("first prompt"); + + await act(async () => { + result.resolve(true); + await result.promise; + }); + expect(input.value).toBe(""); +}); + +it("keeps a retyped recovery draft when sending as new settles", async () => { + const result = deferred(); + const store = createWebStore(); + const sendPrompt = vi.fn(() => result.promise); + const snapshot = activeSnapshot(); + snapshot.runtime.status = "idle"; + const props = { + snapshot, + selectedPath: "/tmp/session", + selectedWorkspace: "/tmp", + sessionSwitching: false, + promptAdmissionPending: false, + promptAdmissionRecovery: { + sessionId: "session", + content: "first", + commandId: "unknown-command", + optimisticKey: "optimistic-unknown-command", + phase: "ready" as const, + }, + liveRunning: false, + landing: false, + activeTurn: null, + turnCancellationPending: false, + turnTerminalStatus: null, + pendingFollowUpsReceipt: null, + thinkingPendingLevel: null, + actions: { ...store.getState().actions, sendPromptAsNew: sendPrompt }, + }; + renderWithI18n(createElement(Composer, props)); + const input = screen.getByRole("textbox"); + + fireEvent.change(input, { target: { value: "first" } }); + fireEvent.click(screen.getByRole("button", { name: "Send as new message" })); + fireEvent.change(input, { target: { value: "second" } }); + fireEvent.change(input, { target: { value: "first" } }); + + await act(async () => { + result.resolve(true); + await result.promise; + }); + + expect(input.value).toBe("first"); +}); + +it("keeps the draft when a creation path arrives before failed canonical confirmation", async () => { + const result = deferred(); + const snapshot = idleThinkingSnapshot(); + const base = thinkingProps(snapshot); + const props = { + ...base, + workspaceDraft: true, + selectedPath: null as string | null, + actions: { ...base.actions, sendPrompt: vi.fn(() => result.promise) }, + }; + const view = renderWithI18n(createElement(Composer, props)); + const input = screen.getByRole("textbox"); + fireEvent.change(input, { target: { value: "keep creation draft" } }); + fireEvent.click(screen.getByRole("button", { name: i18n.t("send") })); + view.rerender( + createElement( + I18nextProvider, + { i18n }, + createElement(Composer, { + ...props, + selectedPath: "/tmp/created-session.jsonl", + }), + ), + ); + expect(input.value).toBe("keep creation draft"); + await act(async () => { + result.resolve(false); + await result.promise; + }); + expect(input.value).toBe("keep creation draft"); +}); diff --git a/tests/web/openpi-web.e2e.ts b/tests/web/openpi-web.e2e.ts index ed13b1c1..c332091e 100644 --- a/tests/web/openpi-web.e2e.ts +++ b/tests/web/openpi-web.e2e.ts @@ -1401,13 +1401,14 @@ test("workspace selection survives refresh and creates the exact native Session const { path: canonicalWorkspace } = await imported.json(); const before = await page.request.get("/api/snapshot", { headers }); const initial = await before.json(); - const workspaceName = canonicalWorkspace.split("/").at(-1); + const workspaceName = canonicalWorkspace.split(/[\\/]/u).at(-1); const prompts: Array<{ sessionId: string; content: string }> = []; // Only intercept model admission. Workspace import, snapshots and native // Session creation use the isolated real Host and Pi runtime. await page.route("**/api/prompt", async (route) => { const body = route.request().postDataJSON(); prompts.push({ sessionId: body.sessionId, content: body.content }); + await new Promise((resolve) => setTimeout(resolve, 150)); await route.fulfill({ status: 202, json: { id: body.commandId, accepted: true }, @@ -1432,11 +1433,11 @@ test("workspace selection survives refresh and creates the exact native Session }); await refresh; await expect(picker).toHaveText(workspaceName); - await page - .getByRole("textbox", { name: "描述任务" }) - .fill("Only work in the selected repository"); - await page.getByRole("button", { name: "发送", exact: true }).click(); + const input = page.getByRole("textbox", { name: "描述任务" }); + await input.fill("Only work in the selected repository"); + await Promise.all([input.press("Enter"), input.press("Enter")]); await expect.poll(() => prompts.length).toBe(1); + await expect(input).toHaveValue(""); const after = await page.request.get("/api/snapshot", { headers }); const current = await after.json(); expect(current.selectedSession.cwd).toBe(canonicalWorkspace); diff --git a/web/dist/app.js b/web/dist/app.js index 105c1944..89523e67 100644 --- a/web/dist/app.js +++ b/web/dist/app.js @@ -47,7 +47,7 @@ Try polyfilling it using "@formatjs/intl-pluralrules" `)}\n}`);let o=``;t.length>0&&(o=`@scope (${r}) to (${i}) {\n${t.join(` `)}\n}`);let s=Ns(e);return s&&(o=o?`${o}\n\n${s}`:s),{prose:a,component:o}}function Is(e,t=!1){let n=(0,w.useCallback)(t=>{let n=window.matchMedia(e);return n.addEventListener(`change`,t),()=>n.removeEventListener(`change`,t)},[e]),r=(0,w.useCallback)(()=>window.matchMedia(e).matches,[e]),i=(0,w.useCallback)(()=>t,[t]);return(0,w.useSyncExternalStore)(n,r,i)}var Ls=(0,w.createContext)(null);Ls.displayName=`ThemeContext`;function Rs(){return typeof document>`u`?null:document.documentElement.getAttribute(Zr(`theme`))}function zs(){return null}function Bs(){return null}var Vs=new Set,Hs=null;function Us(){for(let e of Vs)e()}function Ws(e){return Vs.add(e),Vs.size===1&&typeof MutationObserver<`u`&&(Hs=new MutationObserver(Us),Hs.observe(document.documentElement,{attributes:!0,attributeFilter:[Zr(`theme`)]})),()=>{Vs.delete(e),Vs.size===0&&Hs&&(Hs.disconnect(),Hs=null)}}function Gs(){return()=>{}}function Ks(e){return(0,w.useSyncExternalStore)(e?Gs:Ws,e?Bs:Rs,zs)}function qs(){let e=(0,w.use)(Ls),t=Ks(e!=null);return e?.theme.name??t}var Js={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`,width:`1em`,height:`1em`,"aria-hidden":!0},Ys={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,width:`1em`,height:`1em`,"aria-hidden":!0},Xs={close:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M6 6l12 12M6 18L18 6`})}),chevronDown:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M6 9l6 6 6-6`})}),"numberInput:stepperDown":(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M7.5 9.75l4.5 4.5 4.5-4.5`})}),chevronLeft:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M15 6l-6 6 6 6`})}),chevronRight:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M9 6l6 6-6 6`})}),chevronsLeft:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M18 6l-6 6 6 6M11 6l-6 6 6 6`})}),chevronsRight:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M6 6l6 6-6 6M13 6l6 6-6 6`})}),check:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M5 13l4 4L19 7`})}),success:(0,V.jsx)(`svg`,{...Ys,children:(0,V.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M12 3a9 9 0 100 18 9 9 0 000-18zm4.06 6.56a.75.75 0 00-1.12-1l-3.94 4.4-1.94-1.94a.75.75 0 00-1.06 1.06l2.5 2.5a.75.75 0 001.09-.03l4.47-5z`})}),error:(0,V.jsx)(`svg`,{...Ys,children:(0,V.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M12 3a9 9 0 100 18 9 9 0 000-18zm-2.47 5.47a.75.75 0 00-1.06 1.06L10.94 12l-2.47 2.47a.75.75 0 101.06 1.06L12 13.06l2.47 2.47a.75.75 0 101.06-1.06L13.06 12l2.47-2.47a.75.75 0 00-1.06-1.06L12 10.94l-2.47-2.47z`})}),warning:(0,V.jsx)(`svg`,{...Ys,children:(0,V.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M10.29 3.86L2.07 19.05A2 2 0 003.78 22h16.44a2 2 0 001.71-2.95L13.71 3.86a2 2 0 00-3.42 0zM12 9a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0112 9zm0 9a1 1 0 100-2 1 1 0 000 2z`})}),info:(0,V.jsx)(`svg`,{...Ys,children:(0,V.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M12 3a9 9 0 100 18 9 9 0 000-18zm0 4a1 1 0 100 2 1 1 0 000-2zm-.75 3.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5z`})}),calendar:(0,V.jsxs)(`svg`,{...Js,children:[(0,V.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`18`,rx:`2`}),(0,V.jsx)(`path`,{d:`M16 2v4M8 2v4M3 10h18`})]}),clock:(0,V.jsxs)(`svg`,{...Js,children:[(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,V.jsx)(`path`,{d:`M12 7v5l3 3`})]}),externalLink:(0,V.jsxs)(`svg`,{...Js,children:[(0,V.jsx)(`path`,{d:`M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6`}),(0,V.jsx)(`path`,{d:`M15 3h6v6`}),(0,V.jsx)(`path`,{d:`M10 14L21 3`})]}),menu:(0,V.jsx)(`svg`,{...Js,strokeWidth:2,children:(0,V.jsx)(`path`,{d:`M4 6h16M4 12h16M4 18h16`})}),moreHorizontal:(0,V.jsxs)(`svg`,{...Ys,children:[(0,V.jsx)(`circle`,{cx:`5`,cy:`12`,r:`1.5`}),(0,V.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.5`}),(0,V.jsx)(`circle`,{cx:`19`,cy:`12`,r:`1.5`})]}),search:(0,V.jsxs)(`svg`,{...Js,children:[(0,V.jsx)(`circle`,{cx:`11`,cy:`11`,r:`8`}),(0,V.jsx)(`path`,{d:`M21 21l-4.35-4.35`})]}),arrowUp:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M12 19V5m0 0l-7 7m7-7l7 7`})}),arrowDown:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M12 5v14m0 0l7-7m-7 7l-7-7`})}),arrowsUpDown:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M3 7.5L7.5 3m0 0L12 7.5M7.5 3v13.5m13.5 0L16.5 21m0 0L12 16.5m4.5 4.5V7.5`})}),funnel:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 01-.659 1.591l-5.432 5.432a2.25 2.25 0 00-.659 1.591v2.927a2.25 2.25 0 01-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 00-.659-1.591L3.659 7.409A2.25 2.25 0 013 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0112 3z`})}),eyeSlash:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M3.98 8.223A10.477 10.477 0 001.934 12c1.292 4.338 5.31 7.5 10.066 7.5.993 0 1.953-.138 2.863-.395M6.228 6.228A10.45 10.45 0 0112 4.5c4.756 0 8.773 3.162 10.065 7.498a10.523 10.523 0 01-4.293 5.774M6.228 6.228L3 3m3.228 3.228l3.65 3.65m7.894 7.894L21 21m-3.228-3.228l-3.65-3.65m0 0a3 3 0 10-4.243-4.243m4.242 4.242L9.88 9.88`})}),viewColumns:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M9 4.5v15m6-15v15m-10.875 0h15.75c.621 0 1.125-.504 1.125-1.125V5.625c0-.621-.504-1.125-1.125-1.125H4.125C3.504 4.5 3 5.004 3 5.625v12.75c0 .621.504 1.125 1.125 1.125z`})}),copy:(0,V.jsxs)(`svg`,{...Js,children:[(0,V.jsx)(`path`,{d:`M8 4v12a2 2 0 002 2h8a2 2 0 002-2V7.242a2 2 0 00-.602-1.43L16.083 2.57A2 2 0 0014.685 2H10a2 2 0 00-2 2z`}),(0,V.jsx)(`path`,{d:`M16 18v2a2 2 0 01-2 2H6a2 2 0 01-2-2V9a2 2 0 012-2h2`})]}),checkDouble:(0,V.jsxs)(`svg`,{...Js,children:[(0,V.jsx)(`path`,{d:`M2 13l4 4L14 7`}),(0,V.jsx)(`path`,{d:`M9 13l4 4L21 7`})]}),wrench:(0,V.jsx)(`svg`,{...Js,children:(0,V.jsx)(`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z`})}),stop:(0,V.jsx)(`svg`,{...Ys,children:(0,V.jsx)(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`})}),microphone:(0,V.jsxs)(`svg`,{...Js,children:[(0,V.jsx)(`path`,{d:`M12 2a3 3 0 00-3 3v6a3 3 0 006 0V5a3 3 0 00-3-3z`}),(0,V.jsx)(`path`,{d:`M19 10v1a7 7 0 01-14 0v-1`}),(0,V.jsx)(`path`,{d:`M12 18v4m-4 0h8`})]})},Zs={};function Qs(e){return e==null?null:typeof e==`string`?ls(e)?.icons??null:e.icons??null}function $s(e,t){return Qs(t)?.[e]??Zs[e]??Xs[e]}var ec={root:{kmuXW:`x2lah0s`,$$css:!0},span:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kmuXW:`x2lah0s`,$$css:!0}},tc={primary:{kMwMTN:`xtbr613`,$$css:!0},secondary:{kMwMTN:`xv9yike`,$$css:!0},tertiary:{kMwMTN:`xv9yike`,$$css:!0},disabled:{kMwMTN:`xqa6c3m`,$$css:!0},accent:{kMwMTN:`xqwr325`,$$css:!0},success:{kMwMTN:`xtjic6`,$$css:!0},error:{kMwMTN:`xjt36v0`,$$css:!0},warning:{kMwMTN:`xs3pv69`,$$css:!0},inherit:{kMwMTN:`x1heor9g`,$$css:!0},blue:{kMwMTN:`x1fns2mt`,$$css:!0},red:{kMwMTN:`xeffzf7`,$$css:!0},green:{kMwMTN:`xmxeech`,$$css:!0},gray:{kMwMTN:`x1eyinzz`,$$css:!0},cyan:{kMwMTN:`x157w0xa`,$$css:!0},teal:{kMwMTN:`x1f3zxcb`,$$css:!0},yellow:{kMwMTN:`x1g6zdft`,$$css:!0},orange:{kMwMTN:`xxu74a4`,$$css:!0},pink:{kMwMTN:`x1kxxfg5`,$$css:!0},purple:{kMwMTN:`xzdw94u`,$$css:!0}},nc={xsm:{kzqmXN:`x1jw3ynk`,kZKoxP:`xvle69y`,$$css:!0},sm:{kzqmXN:`xcdlrvm`,kZKoxP:`x1l36t39`,$$css:!0},md:{kzqmXN:`xwqq7k2`,kZKoxP:`xmll18r`,$$css:!0},lg:{kzqmXN:`xp8d6y2`,kZKoxP:`xam5rvr`,$$css:!0}},rc={xsm:{kzqmXN:`x1jw3ynk`,kZKoxP:`xvle69y`,kGuDYH:`xboafo0`,$$css:!0},sm:{kzqmXN:`xcdlrvm`,kZKoxP:`x1l36t39`,kGuDYH:`x1jchvi3`,$$css:!0},md:{kzqmXN:`xwqq7k2`,kZKoxP:`xmll18r`,kGuDYH:`x1603h9y`,$$css:!0},lg:{kzqmXN:`xp8d6y2`,kZKoxP:`xam5rvr`,kGuDYH:`xngnso2`,$$css:!0}};function ic(e){return e!=null&&e!==``?{role:`img`,"aria-label":e}:{"aria-hidden":`true`}}function ac({icon:e,color:t=`inherit`,size:n=`md`,label:r,ref:i,className:a,style:o,xstyle:s,...c}){let l=ic(r);return typeof e==`string`?(0,V.jsx)(oc,{name:e,color:t,size:n,a11yProps:l,className:a,style:o,xstyle:s,spanProps:c}):(0,V.jsx)(e,{ref:i,...l,...H(ri(`icon`,{size:n,color:t}),bn(ec.root,tc[t],nc[n],s),a??void 0,o),...c})}ac.displayName=`Icon`;function oc({name:e,color:t,size:n,a11yProps:r,className:i,style:a,xstyle:o,spanProps:s}){let c=$s(e,qs());if(c==null)return null;let l=s??{};return(0,V.jsx)(`span`,{...r,...l,...H(ri(`icon`,{size:n,color:t}),bn(ec.span,tc[t],rc[n],o),i??void 0,a),children:c})}function sc(e,t){return typeof e==`string`||typeof e==`function`||typeof e==`object`&&e&&`render`in e?(0,V.jsx)(ac,{icon:e,...t}):e}var cc=[`noopener`,`noreferrer`];function lc(e,t){if(e!==`_blank`)return{target:e,rel:t};let n=t?.split(/\s+/).filter(Boolean)??[];for(let e of cc)n.includes(e)||n.push(e);return{target:e,rel:n.join(` `)}}var uc=[`button`,`a`,`input`,`select`,`textarea`,`[role="button"]`,`[role="link"]`,`[role="checkbox"]`,`[role="radio"]`,`[role="switch"]`,`[role="tab"]`,`[role="menuitem"]`,`[role="option"]`,`[role="combobox"]`,`[role="listbox"]`,`[role="slider"]`,`[role="spinbutton"]`,`[data-pressable-container]`].join(`,`),dc=`[aria-readonly="true"]`;function fc(e,t){let n=e;for(;n!=null&&n!==t&&n!==document.body;){if(n.matches(uc)&&!n.matches(dc))return!0;n=n.parentElement}return!1}function pc(e){if(typeof document>`u`||!(`getSelection`in document))return!1;let t=document.getSelection();return t==null||t.isCollapsed?!1:e.contains(t.anchorNode)}function mc({containerRef:e,interactiveRef:t,onClick:n,href:r,target:i,disabled:a=!1}){return(0,w.useEffect)(()=>{let t=e.current;t&&t.setAttribute(`data-pressable-container`,`true`)},[e]),{onClick:(0,w.useCallback)(o=>{if(a)return;let s=e.current;if(!s||pc(s))return;let c=o.target;if(c instanceof Element&&!(c!==o.currentTarget&&fc(c,s))&&(n?.(o),!o.defaultPrevented&&(r!=null&&(i===`_blank`||o.ctrlKey||o.metaKey?window.open(r,`_blank`,`noopener`):t?.current?t.current.click():window.location.href=r),r==null&&n==null&&t?.current))){let e=new MouseEvent(`click`,{bubbles:o.bubbles,cancelable:o.cancelable,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey,button:o.button});t.current.dispatchEvent(e),o.stopPropagation()}},[e,t,n,r,i,a]),onMouseUp:(0,w.useCallback)(t=>{if(a)return;let n=e.current;if(!n)return;let i=t.target;i instanceof Element&&t.button===1&&r!=null&&(i===t.currentTarget||!fc(i,n))&&window.open(r,`_blank`,`noopener`)},[e,r,a])}}var hc=new Set([`option`,`tab`,`row`,`gridcell`,`columnheader`,`rowheader`,`treeitem`]),gc={root:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x1txdalj`,kg3NbH:`xf314gf`,kVAEAm:`x1n2onr6`,kB7OPa:`x9f619`,k9WMMc:`x1yc453h`,kaIpWk:`xh6dtrn`,$$css:!0},alignStart:{kGNEyG:`x1cy8zhl`,$$css:!0},interactive:{kkrTdU:`x1ypdohk x16khyan`,k1ekBW:`x15406qy`,kIyJzY:`xkvfbh3`,kAMwcw:`xlr8y92`,$$css:!0},highlighted:{kWkggS:`x1lmrjuc`,$$css:!0},selected:{kWkggS:`xgcxg3y`,$$css:!0},disabled:{kkrTdU:`xt0e3qv`,kfzvcC:`x47corl`,$$css:!0},inlineLabel:{kmuXW:`x2lah0s`,$$css:!0},inlineDescription:{kmuXW:`xs83m0k`,k7Eaqz:`xeuugli`,$$css:!0},label:{kMwMTN:`x5tbw38`,kGuDYH:`xjm74w1`,kLWn49:`xw6l6zx`,$$css:!0},labelSingleTruncate:{kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0},labelMultiTruncate:{kVQacm:`xb3r6kr`,k1xSpc:`x104kibb`,kgKLqz:`x1ua5tub`,$$css:!0},description:{kMwMTN:`x1gb3s7i`,kGuDYH:`x141an7d`,kLWn49:`x1ltkj2j`,$$css:!0},descriptionSingleTruncate:{kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0},descriptionMultiTruncate:{kVQacm:`xb3r6kr`,k1xSpc:`x104kibb`,kgKLqz:`x1ua5tub`,$$css:!0}},_c={lineClamp:e=>[{kJFfOR:e==null?e:`x1yhjpo9`,$$css:!0},{"--x-WebkitLineClamp":e??void 0}]},vc={compact:{k8WAf4:`xu0wf1k`,$$css:!0},balanced:{k8WAf4:`xce4md1`,$$css:!0},spacious:{k8WAf4:`x8o8v82`,kg3NbH:`xrrkdod`,$$css:!0}};function yc({as:e=`div`,marker:t,startContent:n,label:r,description:i,endContent:a,align:o=`center`,density:s=`balanced`,labelLines:c,descriptionLines:l,layout:u=`stacked`,onClick:d,interactiveRef:f,href:p,target:m,rel:h,isHighlighted:g=!1,isSelected:_=!1,isDisabled:v=!1,xstyle:y,className:b,style:x,ref:S,role:C,...T}){let E=va(),D=f!=null,O=(0,w.useRef)(null),{onClick:k}=mc({containerRef:O,interactiveRef:f??void 0,disabled:v});ts(`Item`,"`interactiveRef` is mutually exclusive with `onClick`/`href`. In delegation mode the row only forwards clicks to the referenced control, so `onClick`/`href` are ignored. Drop one of them.",D&&(d!=null||p!=null));let A=d!=null||p!=null||D,{target:j,rel:M}=lc(m,h),N=C!=null,P=C!=null&&hc.has(C),ee=typeof r==`string`,F=typeof i==`string`,I=c==null?ee?gc.labelSingleTruncate:null:c===1?gc.labelSingleTruncate:gc.labelMultiTruncate,L=u===`inline`&&i!=null,te=l==null?F||L?gc.descriptionSingleTruncate:null:l===1?gc.descriptionSingleTruncate:gc.descriptionMultiTruncate,ne=(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{...bn(gc.label,L&&gc.inlineLabel,I,c!=null&&c>1&&_c.lineClamp(c)),children:r}),i!=null&&(0,V.jsx)(`span`,{...bn(gc.description,L&&gc.inlineDescription,te,l!=null&&l>1&&_c.lineClamp(l)),children:i})]}),re=e=>{v||e.target.closest(`button, a, input, select, textarea`)||d?.(e)},R=(0,V.jsxs)(V.Fragment,{children:[t,n!=null&&(0,V.jsx)(`span`,{className:`x3psx0u x78zum5`,children:n}),N||D?(0,V.jsx)(`span`,{...{0:{className:`x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h`},2:{className:`x78zum5 x98rzlu xeuugli x1yc453h x1q0g3np x6s0dn4 x1lfs0n9`},1:{className:`x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h xbyyjgo`},3:{className:`x78zum5 x98rzlu xeuugli x1yc453h x1q0g3np x6s0dn4 x1lfs0n9 xbyyjgo`}}[!!L<<1|!!v<<0],children:ne}):p==null?d==null?(0,V.jsx)(`span`,{...{0:{className:`x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h`},2:{className:`x78zum5 x98rzlu xeuugli x1yc453h x1q0g3np x6s0dn4 x1lfs0n9`},1:{className:`x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h xbyyjgo`},3:{className:`x78zum5 x98rzlu xeuugli x1yc453h x1q0g3np x6s0dn4 x1lfs0n9 xbyyjgo`}}[!!L<<1|!!v<<0],children:ne}):(0,V.jsx)(`button`,{type:`button`,onClick:d,disabled:v,...{0:{className:`xmper1u x16khyan xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1a2a7pz`},2:{className:`xmper1u x16khyan xln7xf2 x1heor9g x78zum5 x98rzlu xeuugli x1yc453h x1a2a7pz x1q0g3np x6s0dn4 x1lfs0n9`},1:{className:`xmper1u x16khyan xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1a2a7pz xbyyjgo`},3:{className:`xmper1u x16khyan xln7xf2 x1heor9g x78zum5 x98rzlu xeuugli x1yc453h x1a2a7pz x1q0g3np x6s0dn4 x1lfs0n9 xbyyjgo`}}[!!L<<1|!!v<<0],children:ne}):(0,V.jsx)(E,{href:p,target:j,rel:M,"aria-disabled":v||void 0,tabIndex:v?-1:void 0,...{0:{className:`xmper1u x16khyan xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz`},2:{className:`xmper1u x16khyan xln7xf2 x1heor9g x78zum5 x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz x1q0g3np x6s0dn4 x1lfs0n9`},1:{className:`xmper1u x16khyan xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz xbyyjgo`},3:{className:`xmper1u x16khyan xln7xf2 x1heor9g x78zum5 x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz x1q0g3np x6s0dn4 x1lfs0n9 xbyyjgo`}}[!!L<<1|!!v<<0],children:ne}),a!=null&&(0,V.jsx)(`span`,{...{0:{className:`x3psx0u x78zum5 xvc5jky`},1:{className:`x3psx0u x78zum5 xvc5jky xbyyjgo`}}[!!v<<0],children:a})]}),z=Bi(S,O);return(0,V.jsx)(e,{ref:D?z:S,...T,"aria-selected":P&&_||void 0,"aria-current":T[`aria-current`]??(_&&!P?!0:void 0),"aria-disabled":v||void 0,...H(ri(`item`,{density:s,align:o}),zi.focusWithin(gc.root,vc[s],o===`start`&&gc.alignStart,A&&gc.interactive,A&&ya.backgroundColor,g&&gc.highlighted,_&&gc.selected,v&&!N&&gc.disabled,y),b,x),role:C,onClick:D?k:N?d:A?re:void 0,children:R})}yc.displayName=`Item`;var bc=(0,w.createContext)(null);bc.displayName=`DropdownMenuContext`;function xc(){return(0,w.use)(bc)}var Sc=(0,w.createContext)(null);Sc.displayName=`DropdownMenuRadioGroupContext`;function Cc(e,t){if(t||e.pointerType!==`mouse`)return;let n=e.currentTarget;n!==n.ownerDocument.activeElement&&n.focus()}var wc={root:{kB7OPa:`x9f619`,kzqmXN:`xh8yej3`,k8WAf4:`xce4md1`,kg3NbH:`xf314gf`,kaIpWk:`x1ws5lxm`,kMv6JI:`x9ynric`,kGuDYH:`xcr08ib`,kMwMTN:`x1tgivj0`,kWkggS:`xjbqb8w x1c52tdz`,kkrTdU:`x1ypdohk x16khyan`,k9WMMc:`x1yc453h`,kI3sdo:`x1a2a7pz`,$$css:!0},disabled:{kSiTet:`xbyyjgo`,kkrTdU:`xt0e3qv`,$$css:!0},destructive:{kMwMTN:`xjt36v0`,"--_item-label-color":`xufyqxy`,"--_item-description-color":`xqlix59`,$$css:!0}},Tc={sm:{k8WAf4:`xu0wf1k`,kg3NbH:`xf314gf`,$$css:!0},md:{k8WAf4:`x1vofgu7`,$$css:!0},lg:{$$css:!0}};function Ec({icon:e,label:t,description:n,onClick:r,isDisabled:i=!1,endContent:a,hasCloseOnSelect:o=!0,variant:s=`default`,xstyle:c,className:l,style:u}){let d=xc(),f=d?.menuSize??`md`,p=(0,w.useCallback)(()=>{i||(r?.(),o&&d?.closeMenu())},[i,r,o,d]),m=(0,w.useCallback)(e=>Cc(e,i),[i]),h=s===`destructive`;return(0,V.jsx)(yc,{role:`menuitem`,tabIndex:i?void 0:-1,onPointerMove:m,startContent:e?sc(e,{size:`sm`,color:h?`error`:`secondary`}):void 0,label:t,description:n,endContent:a,onClick:p,isDisabled:i,xstyle:[wc.root,Tc[f],h&&wc.destructive,i&&wc.disabled,c],...H(ri(`dropdown-menu-item`,{size:f,variant:h?`destructive`:null}),{className:l,style:u})})}Ec.displayName=`DropdownMenuItem`;var Dc={horizontal:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kzqmXN:`xh8yej3`,$$css:!0},vertical:{k1xSpc:`x3nfvp2`,kXwgrk:`xdt5ytf`,kGNEyG:`x6s0dn4`,kZKoxP:`x5yr21d`,$$css:!0}},Oc={horizontalLine:{kZKoxP:`xsyqizj`,kzQI83:`x1iyjqo2`,kmuXW:`xs83m0k`,$$css:!0},verticalLine:{kzqmXN:`xjk4fl7`,kzQI83:`x1iyjqo2`,kmuXW:`xs83m0k`,$$css:!0},subtle:{kWkggS:`x1m4xfpy`,$$css:!0},strong:{kWkggS:`x7njt3n`,$$css:!0}},kc={horizontal:{keTefX:`xojxgvx`,k71WvV:`x1fcf3bl`,kzqmXN:`xx6qvi6`,$$css:!0},vertical:{keoZOQ:`x1sa9bsh`,k1K539:`x6h7pi7`,kZKoxP:`x12qplqi`,$$css:!0}};function Ac({orientation:e=`horizontal`,label:t,variant:n=`subtle`,isFullBleed:r=!1,xstyle:i,className:a,style:o,ref:s,"aria-label":c,"aria-labelledby":l,...u}){let d=e===`horizontal`,f=(0,w.useId)(),p=l??(t&&c==null?f:void 0);return(0,V.jsxs)(`div`,{ref:s,...u,role:`separator`,"aria-orientation":e,"aria-label":c,"aria-labelledby":p,...H(ri(`divider`,{variant:n,orientation:e}),bn(d?Dc.horizontal:Dc.vertical,r&&(d?kc.horizontal:kc.vertical),i),a,o),children:[(0,V.jsx)(`div`,{...bn(d?Oc.horizontalLine:Oc.verticalLine,Oc[n])}),t&&(0,V.jsx)(`div`,{id:f,...{0:{className:`x2lah0s xrrkdod x141an7d x1ltkj2j xv1l7n4`},1:{className:`x2lah0s x141an7d x1ltkj2j xv1l7n4 xnjsko4 x8o8v82`}}[!d<<0],children:t}),t&&(0,V.jsx)(`div`,{...bn(d?Oc.horizontalLine:Oc.verticalLine,Oc[n])})]})}Ac.displayName=`Divider`;var jc={divider:{kqGvvJ:`xsq74q5`,$$css:!0}},Mc=ri(`dropdown-menu-divider`).className;function Nc({xstyle:e,className:t,style:n,ref:r}){return(0,V.jsx)(Ac,{ref:r,xstyle:[jc.divider,e],className:t?`${Mc} ${t}`:Mc,style:n})}Nc.displayName=`DropdownMenuDivider`;function Pc(e){return!e||typeof window>`u`?!1:window.getComputedStyle(e).direction===`rtl`}var Fc=typeof window<`u`?w.useLayoutEffect:w.useEffect,Ic=new Set([`text`,`search`,`url`,`tel`,`email`,`password`,`number`]);function Lc(e){if(e.isContentEditable)return e;let t=e.closest(`[contenteditable]`);return t&&t.getAttribute(`contenteditable`)!==`false`?t:null}function Rc(e,t){if(!(e instanceof HTMLElement))return!1;let n=Lc(e);if(n){let e=typeof window<`u`?window.getSelection():null;return e&&e.rangeCount>0&&!e.isCollapsed?!0:(n.textContent??``).length>0}let r=e.tagName===`TEXTAREA`,i=e.tagName===`INPUT`&&Ic.has(e.type);if(!r&&!i)return!1;let{selectionStart:a,selectionEnd:o,value:s}=e;return a!==o||a==null?!0:t===`ArrowLeft`||t===`ArrowUp`||t===`Home`?a>0:t===`ArrowRight`||t===`ArrowDown`||t===`End`?ae.getAttribute(`aria-disabled`)===`true`||e.disabled===!0||e.hasAttribute(`disabled`),[]),f=(0,w.useCallback)(()=>{let e=u.current;if(!e)return[];let r=Array.from(e.querySelectorAll(t));return n?r.filter(t=>t.closest(n)===e):r},[t,n]),p=(0,w.useCallback)(e=>{let t=u.current;if(!t||!n)return!0;let r=e.target;return!r||r.closest(n)===t},[n]),m=(0,w.useCallback)((e,t,n,r)=>{let i=e.length;if(i===0)return-1;let a=t;for(let t=0;t=i){if(!r)return-1;a=(a+i)%i}let t=e[a];if(t&&!d(t))return a;a+=n}return-1},[d]),h=(0,w.useCallback)(()=>{let e=f(),t=document.activeElement;return e.findIndex(e=>e===t||e.contains(t))},[f]),g=(0,w.useCallback)((e,t)=>{e.getAttribute(`tabindex`)!==String(t)&&e.setAttribute(`tabindex`,String(t))},[]),_=(0,w.useCallback)(()=>{let e=f(),t=e.filter(e=>!d(e));if(t.length===0)return;let n=t.find(e=>e.getAttribute(`tabindex`)===`0`)??t[0];for(let t of e)g(t,t===n?0:-1)},[f,d,g]);Fc(()=>{c&&_()});let v=(0,w.useCallback)((e,t)=>{let n=e[t];if(n){if(c)for(let t of e)g(t,t===n?0:-1);n.focus()}},[c,g]),y=(0,w.useCallback)(e=>{let t=f();if(t.length===0)return;let n=Math.max(0,Math.min(e,t.length-1));v(t,n)},[f,v]),b=(0,w.useCallback)(()=>{let e=f(),t=m(e,0,1,!1);return t!==-1&&(v(e,t),!0)},[f,m,v]),x=(0,w.useCallback)(()=>{let e=f(),t=m(e,e.length-1,-1,!1);return t!==-1&&(v(e,t),!0)},[f,m,v]),S=(0,w.useCallback)(()=>{c&&_()},[c,_]);return{listRef:u,handleKeyDown:(0,w.useCallback)(e=>{if(e.ctrlKey||e.metaKey||e.altKey||!p(e))return;if(e.key===`Escape`){i&&(e.preventDefault(),i());return}let t=a===`horizontal`||a===`both`,n=a===`vertical`||a===`both`,c=[],d=[];if(t){let t=e.key===`ArrowLeft`||e.key===`ArrowRight`?s??Pc(u.current):!1;c.push(t?`ArrowLeft`:`ArrowRight`),d.push(t?`ArrowRight`:`ArrowLeft`)}n&&(c.push(`ArrowDown`),d.push(`ArrowUp`));let g=c.includes(e.key),_=d.includes(e.key),y=o&&e.key===`Home`,S=o&&e.key===`End`;if(!g&&!_&&!y&&!S||l&&(Rc(e.target,e.key)||Rc(document.activeElement,e.key)))return;let C=h(),w=f();if(g){let e=C===-1?0:C+1,t=m(w,e,1,r);t!==-1&&v(w,t)}else if(_){let e=C===-1?w.length-1:C-1,t=m(w,e,-1,r);t!==-1&&v(w,t)}else y?b():S&&x();e.preventDefault()},[h,f,r,a,s,o,l,m,v,b,x,i,p]),handleFocus:S,focusItem:y,focusFirst:b,focusLast:x,ownsEvent:p,getItems:f}}var Bc=500,Vc=300;function Hc(e){let{show:t,hide:n,isOpen:r,isEnabled:i,showDelay:a=150,hideDelay:o=200,clickGuardMs:s=Bc,itemSelector:c,popoverId:l,ownsFocus:u=!0}=e,d=Is(`(hover: hover)`),f=(0,w.useRef)(null),p=(0,w.useRef)(null),m=(0,w.useRef)(null),h=(0,w.useRef)(!1),g=(0,w.useRef)(0),_=(0,w.useRef)(0),v=(0,w.useRef)(r);Fc(()=>{let e=v.current;v.current=r,e&&!r&&(h.current=!1,_.current=0,g.current=Date.now())},[r]);let y=(0,w.useCallback)(()=>{f.current&&=(clearTimeout(f.current),null),p.current&&=(clearTimeout(p.current),null)},[]),b=(0,w.useRef)(()=>{}),{listRef:x,handleKeyDown:S,focusFirst:C}=zc({itemSelector:c,onEscape:()=>b.current()}),T=(0,w.useCallback)(()=>{let e=x.current?.contains(document.activeElement)??!1;n(),e&&m.current?.focus()},[n,x]);(0,w.useEffect)(()=>{b.current=()=>{y(),T()}},[y,T]),(0,w.useEffect)(()=>()=>y(),[y]);let E=(0,w.useCallback)(()=>{C()||x.current?.focus()},[C,x]),D=(0,w.useCallback)(()=>{if(!u){t();return}t({skipAutoFocus:!0}),E()},[u,t,E]),O=(0,w.useCallback)(()=>s>0&&_.current>0&&Date.now()-_.current{if(l&&e?.preventDefault(),y(),e!=null&&e.detail===0){g.current=0,h.current=!1,_.current=0,r?u&&E():D();return}if(!r){g.current=0,h.current=!1,_.current=0,D();return}if(O()){u&&E();return}T()},[l,y,r,u,O,D,E,T]),A=(0,w.useCallback)(()=>{if(!d||g.current>0&&Date.now()-g.current{_.current=Date.now(),t({skipAutoFocus:!0})};a>0?f.current=setTimeout(e,a):e()},[d,r,y,t,a]),j=(0,w.useCallback)(()=>{g.current=0,h.current&&(y(),p.current=setTimeout(()=>{n()},o))},[y,n,o]),M=(0,w.useCallback)(()=>{y()},[y]),N=(0,w.useCallback)(e=>{m.current=e},[]),P=(0,w.useCallback)(()=>{},[]),ee=(0,w.useCallback)(e=>{},[]),F=(0,w.useCallback)(e=>{},[]);return i?{triggerProps:{onClick:k,onMouseEnter:A,onMouseLeave:j,...l?{popoverTarget:l}:null},contentProps:{onMouseEnter:M,onMouseLeave:j,onKeyDown:S},menuRef:x,focusFirst:C,focusMenu:E,confirmHoverOpen:O,close:T,setTriggerEl:N}:{triggerProps:{onClick:P,onMouseEnter:P,onMouseLeave:P},contentProps:{onMouseEnter:P,onMouseLeave:P,onKeyDown:F},menuRef:x,focusFirst:C,focusMenu:E,confirmHoverOpen:O,close:T,setTriggerEl:ee}}function Uc(e){return e.key.length===1&&!e.ctrlKey&&!e.metaKey&&e.key!==` `}function Wc(e){let{getItemLabels:t,onMatch:n,getCurrentIndex:r,resetMs:i=750,isDisabled:a}=e,o=(0,w.useRef)(``),s=(0,w.useRef)(void 0),c=(0,w.useCallback)(()=>{o.current=``,s.current&&=(clearTimeout(s.current),void 0)},[]),l=(0,w.useCallback)(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{o.current=``,s.current=void 0},i)},[i]);return{onKeyDown:(0,w.useCallback)(e=>{let i=e.key===` `&&!e.ctrlKey&&!e.metaKey&&o.current.length>0;if(!Uc(e)&&!i)return!1;let s=t();if(s.length===0)return!1;let c=e.key.toLowerCase(),u=o.current.length>0&&o.current.split(``).every(e=>e===c)?c:o.current+c;o.current=u,l();let d=r?.()??-1,f=s.length,p=d>=0,m=p?d:0,h=p&&u.length===1?1:0;for(let e=0;e`[role="${e}"]:not([aria-disabled="true"])`).join(`,`),qc=`[role="menu"]`,Jc={root:{kB7OPa:`x9f619`,kzqmXN:`xh8yej3`,k8WAf4:`xce4md1`,kg3NbH:`xf314gf`,kaIpWk:`x1ws5lxm`,kMv6JI:`x9ynric`,kGuDYH:`xcr08ib`,kMwMTN:`x1tgivj0`,kWkggS:`xjbqb8w x1c52tdz`,kkrTdU:`x1ypdohk x16khyan`,k9WMMc:`x1yc453h`,kI3sdo:`x1a2a7pz`,$$css:!0},open:{kWkggS:`x1lmrjuc`,$$css:!0},disabled:{kSiTet:`xbyyjgo`,kkrTdU:`xt0e3qv`,$$css:!0}},Yc={sm:{k8WAf4:`xu0wf1k`,kg3NbH:`xf314gf`,$$css:!0},md:{k8WAf4:`x1vofgu7`,$$css:!0},lg:{$$css:!0}},Xc={popover:{k7Eaqz:`x5w4yej`,$$css:!0},popoverCustomWidth:e=>[{k7Eaqz:(typeof e==`number`?`${e}px`:e)==null?typeof e==`number`?`${e}px`:e:`xkj4a21`,$$css:!0},{"--x-minWidth":(e=>typeof e==`number`?e+`px`:e??void 0)(typeof e==`number`?`${e}px`:e)}]};function Zc(e){let{icon:t,label:n,description:r,isDisabled:i=!1,hasSpinner:a=!1,menuWidth:o,onOpenChange:s,children:c,xstyle:l,className:u,style:d,"data-testid":f,menuDataTestId:p}=e,m=xc(),h=m?.menuSize??`md`,g=!i,_=(0,w.useId)(),v=(0,w.useId)(),y=(0,w.useRef)(null),[b,x]=(0,w.useState)(!1),S=er({mode:`context`,lightDismiss:!1,onShow:(0,w.useCallback)(()=>{x(!0),s?.(!0)},[s]),onHide:(0,w.useCallback)(()=>{x(!1),s?.(!1)},[s])}),C=(0,w.useCallback)(()=>{g&&S.show()},[g,S]),T=(0,w.useCallback)(()=>{S.hide()},[S]),{listRef:E,handleKeyDown:D,focusFirst:O,focusItem:k,ownsEvent:A,getItems:j}=zc({itemSelector:Kc,boundarySelector:qc,wrap:!1,onEscape:()=>I({focusTrigger:!0})}),M=Wc({getItemLabels:()=>j().map(e=>e.textContent),onMatch:k,getCurrentIndex:()=>j().findIndex(e=>e===document.activeElement||e.contains(document.activeElement))}),{triggerProps:N,contentProps:P,confirmHoverOpen:ee}=Hc({show:C,hide:T,isOpen:b,isEnabled:g}),F=(0,w.useCallback)(e=>{g&&(S.show(),e?.focusFirst&&(O()||E.current?.focus()))},[g,S,O,E]),I=(0,w.useCallback)(e=>{S.hide(),e?.focusTrigger!==!1&&y.current?.focus()},[S]),L=(0,w.useCallback)(e=>{y.current=e,S.ref(e)},[S]),te=(0,w.useCallback)(()=>{if(!i)if(b){if(ee()){O()||E.current?.focus();return}I({focusTrigger:!0})}else F({focusFirst:!0})},[i,b,F,I,ee,O,E]),ne=(0,w.useCallback)(e=>{if(i)return;let t=typeof window<`u`&&y.current&&window.getComputedStyle(y.current).direction===`rtl`?`ArrowLeft`:`ArrowRight`;(e.key===t||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.stopPropagation(),F({focusFirst:!0}))},[i,F]),re=(0,w.useCallback)(e=>Cc(e,i),[i]),R=(0,w.useCallback)(e=>{if(!A(e))return;if(e.key===`Escape`){e.preventDefault(),e.stopPropagation(),I({focusTrigger:!0});return}if(e.key===`Enter`||e.key===` `){e.preventDefault();let t=document.activeElement;t&&Gc.has(t.getAttribute(`role`)??``)&&t.click();return}let t=typeof window<`u`&&E.current&&window.getComputedStyle(E.current).direction===`rtl`?`ArrowRight`:`ArrowLeft`;if(e.key===t){e.preventDefault(),I({focusTrigger:!0});return}if(M.onKeyDown(e)){e.preventDefault();return}D(e)},[A,I,D,M,E]),z=(0,w.useMemo)(()=>({menuSize:h,closeMenu:()=>{I({focusTrigger:!1}),m?.closeMenu()}}),[h,I,m]),ie=a?(0,V.jsx)(`span`,{className:`x78zum5 x6s0dn4`,children:(0,V.jsx)(la,{size:`sm`})}):(0,V.jsx)(`span`,{className:`x78zum5 x6s0dn4`,children:(0,V.jsx)(ac,{icon:`chevronRight`,size:`sm`,color:`secondary`,...ri(`dropdown-menu-indicator-icon`)})}),ae=o?Xc.popoverCustomWidth(o):Xc.popover;return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(yc,{ref:e=>L(e),id:v,role:`menuitem`,tabIndex:i?void 0:-1,"aria-haspopup":`menu`,"aria-expanded":b,"aria-controls":b?_:void 0,"aria-disabled":i||void 0,"data-testid":f,onMouseEnter:N.onMouseEnter,onMouseLeave:N.onMouseLeave,onPointerMove:re,startContent:t?sc(t,{size:`sm`,color:`secondary`}):void 0,label:n,description:r,endContent:ie,onClick:te,onKeyDown:ne,isDisabled:i,xstyle:[Jc.root,Yc[h],b&&Jc.open,i&&Jc.disabled,l],...H(ri(`dropdown-menu-item`,{size:h}),{className:u,style:d})}),S.render((0,V.jsx)(`div`,{ref:E,id:_,role:`menu`,tabIndex:-1,"aria-labelledby":v,onKeyDown:R,onMouseEnter:P.onMouseEnter,onMouseLeave:P.onMouseLeave,"data-testid":p,...H(ri(`dropdown-menu`),{className:`x9f619 x78zum5 xdt5ytf x1lsbc85 xuyqlj2 x1odjw0f x1fcsqxe xgory14 x9epnlk x1n97fys x1prclbq x1i5ehqx x1hc1fzr x19991ni xuedmi6 xlr8y92`}),children:(0,V.jsx)(bc,{value:z,children:c})}),{placement:`end`,alignment:`start`,offset:In[`--spacing-1`],xstyle:[ae,Gr.end]})]})}Zc.displayName=`DropdownMenuSubMenu`;function Qc(e,t){return`item-${e.id??t}`}function $c(e,t){return`section-${e.id??t}`}function el(e,t){let{items:n,id:r,...i}=e;return(0,V.jsx)(Ec,{...i},Qc(e,t))}function tl(e){let t=[];for(let n=0;n0?t.push((0,V.jsx)(Zc,{icon:r.icon,label:r.label,isDisabled:r.isDisabled,children:tl(r.items)},Qc(r,n))):t.push(el(r,n)))}return t}var nl={dropdown:{kB7OPa:`x9f619`,k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kOIVth:`x1lsbc85`,kskxy:`xuyqlj2`,kORKVm:`x1odjw0f`,"--_dropdown-menu-radius":`x1fcsqxe`,"--_dropdown-menu-padding":`xgory14`,kmVPX3:`x9epnlk`,kaIpWk:`x1n97fys`,kSiTet:`x1hc1fzr`,k1ekBW:`x19991ni`,kIyJzY:`xuedmi6`,kAMwcw:`xlr8y92`,$$css:!0},popover:{k7Eaqz:`xrzjruh`,$$css:!0},popoverCustomWidth:e=>[{k7Eaqz:(typeof e==`number`?`${e}px`:e)==null?typeof e==`number`?`${e}px`:e:`xkj4a21`,$$css:!0},{"--x-minWidth":(e=>typeof e==`number`?e+`px`:e??void 0)(typeof e==`number`?`${e}px`:e)}]},rl=`@astryx.dropdownMenu.label`;function il({button:e,isMenuOpen:t,onOpenChange:n,menuWidth:r,onClick:i,hasChevron:a=!0,placement:o=`below`,alignment:s=`start`,className:c,style:l,xstyle:u,"data-testid":d,...f}){let p=Go(),m=e??{label:p(rl)},h=(`items`in f?f.items:void 0)??[],g=f.children,{items:_,children:v,...y}=f,b=(0,w.useId)(),x=m.size??`md`,S=(0,w.useRef)(null),[C,T]=(0,w.useState)(!1),E=t!==void 0,D=E?t:C,O=(0,w.useCallback)(()=>{n?.(!1),E||T(!1),S.current?.focus()},[E,n]),k=(0,w.useRef)(!1),A=(0,w.useRef)(`keyboard`),j=as({onHide:O,onShow:(0,w.useCallback)(()=>{n?.(!0),E||T(!0)},[E,n]),hasLightDismiss:!0,hasCloseButton:!1,hasAutoFocus:!1,role:`none`}),M=(0,w.useCallback)(()=>{j.hide()},[j]),{listRef:N,handleKeyDown:P,focusFirst:ee,focusItem:F,ownsEvent:I,getItems:L}=zc({itemSelector:Kc,boundarySelector:qc,wrap:!1,onEscape:M}),te=Wc({getItemLabels:()=>L().map(e=>e.textContent),onMatch:F,getCurrentIndex:()=>L().findIndex(e=>e===document.activeElement||e.contains(document.activeElement))});(0,w.useEffect)(()=>{E&&(t&&!j.isOpen?(k.current=!0,j.show()):!t&&j.isOpen&&j.hide())},[t,E,j]),(0,w.useEffect)(()=>{!j.isOpen||!k.current||(k.current=!1,requestAnimationFrame(()=>{(A.current===`pointer`||!ee())&&N.current?.focus(),A.current=`keyboard`}))},[j.isOpen,ee,N]);let ne=(0,w.useCallback)(e=>{if(I(e)){if(e.key===`Enter`||e.key===` `){e.preventDefault();let t=document.activeElement;t&&Gc.has(t.getAttribute(`role`)??``)&&t.click();return}if(e.key===`Tab`){M();return}if(te.onKeyDown(e)){e.preventDefault();return}P(e)}},[P,M,te,I]),re=(0,w.useCallback)((e=`keyboard`)=>{A.current=e,k.current=!0,j.show()},[j]),R=(0,w.useCallback)(e=>{if(j.wasJustDismissed())return;i?.();let r=e.detail===0?`keyboard`:`pointer`;E?(t||(A.current=r),n?.(!t)):j.isOpen?j.hide():re(r)},[i,E,n,t,j,re]),z=(0,w.useCallback)(e=>{j.isOpen||(e.key===`ArrowDown`||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),re())},[j.isOpen,re]),ie=m.isIconOnly===!0,ae=m.endContent??(a&&!ie?(0,V.jsx)(ac,{icon:`chevronDown`,size:`sm`,color:`inherit`}):void 0),oe=r?nl.popoverCustomWidth(r):nl.popover,se=(0,w.useMemo)(()=>({closeMenu:M,menuSize:x}),[M,x]),ce=f.items===void 0?g:tl(h);return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(es,{...m,ref:e=>{S.current=e,j.triggerRef(e);let t=m.ref;typeof t==`function`?t(e):t&&(t.current=e)},tooltip:D?void 0:m.tooltip,endContent:ae,onClick:R,onKeyDown:z,"aria-haspopup":`menu`,"aria-expanded":D,"aria-controls":b,"data-testid":d}),j.render((0,V.jsx)(`div`,{...y,ref:N,id:b,role:`menu`,tabIndex:-1,"aria-label":m.label,onKeyDown:ne,...H(ri(`dropdown-menu`),bn(nl.dropdown,u),c,l),children:(0,V.jsx)(bc,{value:se,children:ce})}),{placement:o,alignment:s,offset:In[`--spacing-1`],xstyle:[oe,Gr[o]]})]})}il.displayName=`DropdownMenu`;var al=s({Tooltip:()=>cl});function ol(e){return typeof e==`string`||typeof e==`number`}function sl(...e){let t=e.filter(Boolean);return t.length>0?t.join(` `):void 0}function cl({children:e,anchorRef:t,content:n,placement:r=`above`,alignment:i=`center`,delay:a=200,hideDelay:o=0,focusTrigger:s=`auto`,touchTrigger:c=`auto`,isEnabled:l=!0,onOpenChange:u,hasHoverIndication:d=`auto`,isOpen:f,isDefaultOpen:p}){let m=(0,w.useRef)(null),h=e!=null&&ol(e),g=d===!0||d===`auto`&&h,_=si({placement:r,alignment:i,delay:a,hideDelay:o,focusTrigger:s,touchTrigger:c,isEnabled:l,isOpen:f,isDefaultOpen:p,onShow:(0,w.useCallback)(()=>{u?.(!0)},[u]),onHide:(0,w.useCallback)(()=>{u?.(!1)},[u])});return Fc(()=>{if(!t)return;let e=t.current;if(!e)return;_.ref(e);let n=e.getAttribute(`aria-describedby`);return e.setAttribute(`aria-describedby`,sl(n,_.describedBy)??``),()=>{_.ref(null),n?e.setAttribute(`aria-describedby`,n):e.removeAttribute(`aria-describedby`)}},[t,_.ref,_.describedBy]),Fc(()=>{if(t||h)return;let e=m.current;if(!e)return;let n=e.firstElementChild;if(!n)return;_.ref(n);let r=n.getAttribute(`aria-describedby`);return n.setAttribute(`aria-describedby`,sl(r,_.describedBy)??``),()=>{_.ref(null),r?n.setAttribute(`aria-describedby`,r):n.removeAttribute(`aria-describedby`)}},[t,h,_.ref,_.describedBy]),t&&e==null?(0,V.jsx)(V.Fragment,{children:_.renderTooltip(n)}):h?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{ref:_.ref,tabIndex:0,"aria-describedby":_.describedBy,...{0:{className:`xt0psk2`},1:{className:`xt0psk2 xujl8zx xev0dqp xycaml9 xrys4gj`}}[!!g<<0],children:e}),_.renderTooltip(n)]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{ref:m,className:`xjp7ctv`,children:e}),_.renderTooltip(n)]})}cl.displayName=`Tooltip`;function ll(e,t){return e.name?.trim()||e.firstMessage?.trim()||t}function ul(e){return e.split(/[\\/]/u).filter(Boolean).at(-1)||e}function dl(e,t=96){let n=String(e??``).replace(/\s+/gu,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function fl(e){let t=Date.now()-new Date(e).getTime();return Number.isFinite(t)?t<6e4?`now`:t<36e5?`${Math.floor(t/6e4)}m`:t<864e5?`${Math.floor(t/36e5)}h`:new Date(e).toLocaleDateString(void 0,{day:`numeric`,month:`short`}):``}function pl(e){if(!e)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}function ml(e,t=Date.now()){if(typeof e!=`number`)return``;let n=Math.max(0,Math.round((t-e)/1e3)),r=Math.floor(n/60),i=n%60;return r>0?`${r}m${String(i).padStart(2,`0`)}s`:`${i}s`}function hl(e){let t=e.split(` -`).map(e=>e.trim()).find(Boolean)??``;return t.length>60?`${t.slice(0,60)}…`:t}function gl(e){return e===`running`?`running`:e===`done`||e===`completed`?`done`:[`error`,`failed`,`aborted`,`killed`,`timed_out`].includes(e)?`error`:e===`uncertain`?`warn`:`unknown`}function _l({kind:e,label:t,status:n,onClick:r}){return(0,V.jsxs)(r?`button`:`span`,{className:`activity-chip ${e} ${n}`,type:r?`button`:void 0,onClick:r,children:[n===`running`?(0,V.jsx)(`i`,{className:`activity-chip-dot`}):n===`done`?(0,V.jsx)(L,{}):n===`error`?(0,V.jsx)(Re,{}):(0,V.jsx)(`span`,{className:`activity-chip-glyph`,children:`?`}),(0,V.jsx)(`span`,{className:`activity-chip-text`,children:t})]})}function vl({snapshot:e,onInspectTerminal:t}){let[,n]=(0,w.useState)(0),r=e?.runtime.capabilities,i=[...r?.subagents?.items??[],...r?.workflows?.items??[],...r?.[`background-terminals`]?.items??[]].some(e=>e.status===`running`);(0,w.useEffect)(()=>{if(!i)return;let e=window.setInterval(()=>n(e=>e+1),1e3);return()=>window.clearInterval(e)},[i]);let a=[];for(let e of r?.workflows?.items??[]){let t=e.agents.total-e.agents.running,n=e.agents.total?` · ${t}/${e.agents.total} agents`:``,r=e.status===`running`&&e.currentPhase?` · ${e.currentPhase}`:``,i=ml(e.startedAt,e.finishedAt);a.push({key:`workflow-${e.runId}`,kind:`workflow`,label:`${e.name||e.runId}${r}${n}${i?` · ${i}`:``}`,status:gl(e.status)})}for(let e of r?.subagents?.items??[]){let t=ml(e.createdAt,e.settledAt);a.push({key:`subagent-${e.id}`,kind:`subagent`,label:`${e.title||e.id}${t?` · ${t}`:``}`,status:gl(e.status)})}for(let e of r?.[`background-terminals`]?.items??[]){let n=ml(e.createdAt,e.settledAt);a.push({key:`terminal-${e.id}`,onClick:t?()=>t(e.id):void 0,kind:`terminal`,label:`${e.title||e.id}${n?` · ${n}`:``}`,status:gl(e.status)})}a.sort((e,t)=>Number(t.status===`running`)-Number(e.status===`running`));let o=a.slice(0,5),s=a.length-o.length+(r?.subagents?.omitted??0)+(r?.workflows?.omitted??0)+(r?.[`background-terminals`]?.omitted??0);return!o.length&&!s?null:(0,V.jsxs)(`div`,{className:`activity-bar`,role:`status`,"aria-label":`Runtime activity`,children:[o.map(({key:e,...t})=>(0,V.jsx)(_l,{...t},e)),s>0&&(0,V.jsxs)(`span`,{className:`activity-chip more`,children:[`+`,s]})]})}var yl=`data-astryx-live-region`,bl=`position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;inset-block-start:0;inset-inline-start:0;pointer-events:none;user-select:none;`,xl=2e3,Sl={polite:null,assertive:null};function Cl(e){let t=Sl[e];t!=null&&(clearTimeout(t),Sl[e]=null)}function wl(e,t){Cl(e),Sl[e]=setTimeout(()=>{Sl[e]=null,t.textContent=``},xl)}var Tl=null;function El(e){let t=document.createElement(`div`);return t.setAttribute(yl,e),t.setAttribute(`aria-live`,e),t.setAttribute(`aria-atomic`,`true`),t.setAttribute(`role`,e===`assertive`?`alert`:`status`),t.style.cssText=bl,document.body.appendChild(t),t}function Dl(){return typeof document>`u`?null:Tl?(Tl.polite.isConnected||document.body.appendChild(Tl.polite),Tl.assertive.isConnected||document.body.appendChild(Tl.assertive),Tl):(Tl={polite:El(`polite`),assertive:El(`assertive`)},Tl)}function Ol(e,t){let n=Dl();if(!n)return;let r=t===`assertive`?n.assertive:n.polite;r.textContent=``,requestAnimationFrame(()=>{r.textContent=e}),wl(t,r)}function kl(e){if(Cl(e),!Tl)return;let t=e===`assertive`?Tl.assertive:Tl.polite;t.textContent=``}function Al(){return(0,w.useCallback)((e,t=`polite`)=>{if(!e){kl(t);return}Ol(e,t)},[])}var jl={settle(){},release(){}};function Ml(e){if(typeof window>`u`||typeof document>`u`)return jl;let t=document.documentElement,n=t.clientWidth;if(n===0)return jl;let r=t.style.scrollbarGutter,i=e.style.paddingRight,a=e.getBoundingClientRect().width,o=!1,s=!1,c=!1;return window.innerWidth>n&&(t.style.scrollbarGutter=`stable`,o=!0),{settle(){if(c)return;c=!0;let t=e.getBoundingClientRect().width-a;if(t<=0)return;let n=Number.parseFloat(window.getComputedStyle(e).paddingRight)||0;e.style.paddingRight=`${n+t}px`,s=!0},release(){s&&=(e.style.paddingRight=i,!1),o&&=(t.style.scrollbarGutter=r,!1)}}}var Nl=0,Pl=null;function Fl(e){(0,w.useEffect)(()=>{if(!e)return;let{body:t}=document;if(Nl===0){let e=window.scrollX,n=window.scrollY,r=Ml(t);Pl={scrollX:e,scrollY:n,overflow:t.style.overflow,position:t.style.position,top:t.style.top,left:t.style.left,right:t.style.right,gutter:r},t.style.overflow=`hidden`,t.style.position=`fixed`,t.style.top=`-${n}px`,t.style.left=`0`,t.style.right=`0`,r.settle()}return Nl+=1,()=>{if(--Nl,Nl!==0||Pl==null)return;let e=Pl;Pl=null,t.style.overflow=e.overflow,t.style.position=e.position,t.style.top=e.top,t.style.left=e.left,t.style.right=e.right,e.gutter.release(),window.scrollTo(e.scrollX,e.scrollY)}},[e])}var Il=!1;typeof window<`u`&&requestAnimationFrame(()=>{Il=!0});var Ll={slideDown:{kKVMdj:`x1srr2gu x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},slideUp:{kKVMdj:`x1dvww92 x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},fadeIn:{kKVMdj:`xqcmdr3 x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},scaleIn:{kKVMdj:`x97zbip x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0}};function Rl(e=`slideDown`){let[t]=(0,w.useState)(()=>Il);return t?Ll[e]:null}var zl=new Set([`text`,`password`,`email`,`number`,`search`,`tel`,`url`,`date`,`datetime-local`,`month`,`time`,`week`]),Bl=new Set([`true`,`menu`,`listbox`,`tree`,`grid`,`dialog`]);function K(e){if(e.getAttribute(`role`)===`combobox`)return!0;let t=e.getAttribute(`aria-haspopup`);return t!=null&&Bl.has(t)}function q({containerRef:e,inputRef:t,disabled:n=!1}){return mc({containerRef:e,interactiveRef:t,onClick:(0,w.useCallback)(()=>{let e=t.current;e!=null&&(e instanceof HTMLElement&&K(e)?e.click():e instanceof HTMLInputElement&&zl.has(e.type)||e instanceof HTMLTextAreaElement?e.focus():e instanceof HTMLElement?e.click():`focus`in e&&e.focus())},[t]),disabled:n})}var Vl=(0,w.createContext)({direction:`vertical`});Vl.displayName=`FormLayoutContext`;var Hl={label:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`xzye2dw`,kMv6JI:`x9ynric`,kGuDYH:`xcr08ib`,kLWn49:`x1kq96og`,k63SB2:`x1e4wzip`,kMwMTN:`xv1l7n4`,kkrTdU:`x1ypdohk x16khyan`,$$css:!0},labelDisabled:{kMwMTN:`xnbbluu`,kkrTdU:`xt0e3qv`,$$css:!0},srOnly:{ksu8eU:`xng3xce`,kMcinP:`xzpqnlu`,kZKoxP:`xjm9jq1`,kLqNvP:`x1o0tod`,kogj98:`xkdpibf`,kVQacm:`xb3r6kr`,kmVPX3:`x1717udv`,kfzvcC:`x47corl`,kVAEAm:`x10l6tqk`,k87sOh:`x13vifvy`,kfSwDN:`x87ps6o`,khDVqt:`xuxw1ft`,kzqmXN:`x1i1rx1s`,$$css:!0}};function Ul({label:e,inputID:t,labelID:n,isGroupLabel:r=!1,isLabelHidden:i=!1,isDisabled:a=!1,isOptional:o=!1,isRequired:s=!1,labelIcon:c,labelTooltip:l,description:u,descriptionID:d,className:f,style:p,xstyle:m,ref:h,...g}){let _=Go(),{defaultOptionality:v}=(0,w.use)(Vl),y=o&&v!==`optional`?_(`@astryx.field.optional`):s&&v!==`required`?_(`@astryx.field.required`):null,b=r?`span`:`label`,x=!r&&t!=null,S=(0,w.useRef)(null),C=q({containerRef:S,inputRef:(0,w.useMemo)(()=>({get current(){return t==null?null:S.current?.ownerDocument.getElementById(t)??null},set current(e){}}),[t]),disabled:!x}),T=(0,V.jsxs)(V.Fragment,{children:[c&&sc(c,{size:`sm`,color:`inherit`}),e,y&&(0,V.jsxs)(`span`,{className:`x1sodnla x141an7d x1ltkj2j xv1l7n4`,children:[(0,V.jsx)(`span`,{"aria-hidden":`true`,children:` ∙ `}),y]}),l&&(0,V.jsx)(cl,{content:l,placement:`above`,children:(0,V.jsx)(ac,{icon:`info`,size:`sm`,color:`inherit`})})]});return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(b,{ref:h,id:n,htmlFor:r?void 0:t,...g,...H(ri(`field-label`),bn(Hl.label,a&&Hl.labelDisabled,i&&Hl.srOnly,m),f,p),children:T}),u&&(0,V.jsx)(`span`,{ref:x?S:void 0,id:d,...x?C:void 0,...{0:{className:`x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4`},2:{className:`x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4 x1ypdohk x16khyan`},1:{className:`x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4 xng3xce xzpqnlu xjm9jq1 x1o0tod xkdpibf xb3r6kr x1717udv x47corl x10l6tqk x13vifvy x87ps6o xuxw1ft x1i1rx1s`},3:{className:`x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4 x1ypdohk x16khyan xng3xce xzpqnlu xjm9jq1 x1o0tod xkdpibf xb3r6kr x1717udv x47corl x10l6tqk x13vifvy x87ps6o xuxw1ft x1i1rx1s`}}[!!x<<1|!!i<<0],children:u})]})}Ul.displayName=`FieldLabel`;var Wl={warning:`warning`,error:`error`,success:`success`},Gl={base:{kMv6JI:`x9ynric`,kGuDYH:`x141an7d`,kLWn49:`x1ltkj2j`,$$css:!0},attached:{keoZOQ:`x1c40v9y`,kLKAdn:`x1ak3mig`,kGO01o:`x1wesfrj`,kg3NbH:`xf314gf`,kVL7Gh:`xquck67`,kT0f0o:`x14i3lts`,$$css:!0},detached:{keoZOQ:`xcsaf9d`,k8WAf4:`xce4md1`,kg3NbH:`xf314gf`,kaIpWk:`xh6dtrn`,$$css:!0}},Kl={warning:{kWkggS:`x24i8r5`,kMwMTN:`xdhq94a`,$$css:!0},error:{kWkggS:`x1pritpl`,kMwMTN:`x1joocv1`,$$css:!0},success:{kWkggS:`xu13z74`,kMwMTN:`xltfdvo`,$$css:!0}};function ql({ref:e,type:t,message:n,id:r,variant:i=`attached`,xstyle:a,className:o,style:s,...c}){let l=Rl(`slideDown`),u=Al();return(0,w.useEffect)(()=>{n&&u(n,t===`error`?`assertive`:`polite`)},[u,n,t]),(0,V.jsx)(`div`,{ref:e,id:r,...c,...H(ri(`field-status`,{type:t,variant:i}),bn(Gl.base,l,i===`attached`?Gl.attached:Gl.detached,Kl[t],a),o,s),children:i===`detached`?(0,V.jsxs)(`span`,{className:`x78zum5 x1cy8zhl xzye2dw`,children:[(0,V.jsx)(`span`,{className:`x3nfvp2 x6s0dn4 x14o5nre x2lah0s`,children:(0,V.jsx)(ac,{icon:Wl[t],size:`sm`,color:`inherit`,...ri(`field-status-icon`,{type:t})})}),(0,V.jsx)(`span`,{children:n})]}):n})}ql.displayName=`FieldStatus`;var Jl={container:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,$$css:!0},containerGap:{kOIVth:`xzye2dw`,$$css:!0},horizontalLabels:{k1xSpc:`xjp7ctv`,$$css:!0}},Yl={width:e=>[{kzqmXN:e==null?e:`x5lhr3w`,$$css:!0},{"--x-width":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}]};function Xl({label:e,isLabelHidden:t=!1,description:n,inputID:r,labelID:i,isGroupLabel:a=!1,descriptionID:o,isOptional:s=!1,isRequired:c=!1,isDisabled:l=!1,labelIcon:u,status:d,labelTooltip:f,statusVariant:p=`attached`,width:m,xstyle:h,children:g,className:_,style:v,ref:y,...b}){let{direction:x}=(0,w.use)(Vl),S=x===`horizontal-labels`,C=o??(n?`${r}-desc`:void 0),T=d?.messageID??(d?.message?`${r}-status`:void 0);ts(`Field`,`isOptional and isRequired are mutually exclusive. isOptional takes precedence.`,s&&c);let E=(0,V.jsx)(Ul,{label:e,inputID:r,labelID:i,isGroupLabel:a,isLabelHidden:t,isDisabled:l,isOptional:s,isRequired:c,labelIcon:u,labelTooltip:f,description:S?void 0:n,descriptionID:S?void 0:C}),D=d?.message&&p!==`tooltip`?(0,V.jsx)(ql,{type:d.type,message:d.message,id:T,variant:p}):null;return S?(0,V.jsxs)(`div`,{ref:y,...H(ri(`field`,{layout:`horizontal-labels`}),bn(Jl.horizontalLabels,h),_,v),...b,children:[(0,V.jsx)(`div`,{className:`x1enrzb7`,children:E}),(0,V.jsxs)(`div`,{className:`x78zum5 xdt5ytf xc8icb0`,children:[n&&(0,V.jsx)(Yi,{type:`supporting`,display:`block`,id:C,children:n}),g,D]})]}):(0,V.jsxs)(`div`,{ref:y,...H(ri(`field`),bn(Jl.container,!t&&Jl.containerGap,m!=null&&Yl.width(m),h),_,v),...b,children:[E,p===`attached`?(0,V.jsxs)(`div`,{className:`x78zum5 xdt5ytf xc8icb0`,children:[g,D]}):(0,V.jsxs)(V.Fragment,{children:[g,D]})]})}Xl.displayName=`Field`;var Zl={base:{kB7OPa:`x9f619`,kVAEAm:`x1n2onr6`,kY2c9j:`x1vjfegm`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x1txdalj`,k8WAf4:`xu0wf1k`,kg3NbH:`xf314gf`,kMzoRj:`x1litavf`,ksu8eU:`x1y0btm7`,kVAM5u:`xvy26l8 x6q1khz`,"--_field-radius":`x1832zxr`,kaIpWk:`xvdfih8`,kWkggS:`x10xzikg`,k1ekBW:`x12zzom9`,kIyJzY:`xuedmi6 x12w9bfk`,kAMwcw:`xlr8y92`,kGVxlE:`x1gnnqk1 x1xqjsvb xuihb5h`,kI3sdo:`x1a2a7pz`,$$css:!0},disabled:{kkrTdU:`xt0e3qv`,kSiTet:`xbyyjgo`,kVAM5u:`xvy26l8`,kGVxlE:`x1gnnqk1`,$$css:!0}};function Ql({isRequired:e=!1,isOptional:t=!1}){let{defaultOptionality:n}=(0,w.use)(Vl);return!t&&(e||n===`required`)}var $l={triggerContainer:{kVAEAm:`x1n2onr6`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kjj79g:`x1qughib`,kOIVth:`x1txdalj`,kzqmXN:`xh8yej3`,k8WAf4:`xce4md1`,kg3NbH:`xrrkdod`,kMv6JI:`x9ynric`,kGuDYH:`xcr08ib xdk3u5w`,kLWn49:`x1kq96og`,kMwMTN:`x1tgivj0`,kkrTdU:`x1ypdohk x16khyan`,$$css:!0},trigger:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kjj79g:`x1qughib`,kOIVth:`x1txdalj`,kzQI83:`x1iyjqo2`,kmuXW:`xs83m0k`,kCS8Yb:`x1r8uery`,k7Eaqz:`xeuugli`,kmVPX3:`x1717udv`,kogj98:`x1ghz6dp`,kMzoRj:`xc342km`,ksu8eU:`xng3xce`,kWkggS:`xjbqb8w`,kMv6JI:`xjb2p0i`,kGuDYH:`x1qlqyl8`,kLWn49:`x15bjb6t`,kMwMTN:`x1heor9g`,kkrTdU:`x1ypdohk x16khyan`,kI3sdo:`x1a2a7pz`,kaIpWk:`xh6dtrn`,$$css:!0},triggerText:{kzQI83:`x1iyjqo2`,k7Eaqz:`xeuugli`,kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,k9WMMc:`x1yc453h`,$$css:!0},placeholder:{kMwMTN:`xv1l7n4`,$$css:!0},triggerGhost:{kzqmXN:`x14atkfc`,kMzoRj:`xc342km`,kWkggS:`xjbqb8w`,kGVxlE:`x1gnnqk1 x1s17dad x15ysqaf`,k63SB2:`x1e4wzip`,k1ekBW:`xrafxwg`,k3aq6I:`x3oybdh xk4oym4`,$$css:!0},triggerGhostDisabled:{kKwaWg:`x18o3ruo`,k3aq6I:`x1c071of x1pdlv7q`,$$css:!0},triggerIcon:{kmuXW:`x2lah0s`,$$css:!0},triggerIconRotation:{k1ekBW:`x11xpdln`,kIyJzY:`xuedmi6`,kAMwcw:`xlr8y92`,k3nNDw:`x1g0ag68`,$$css:!0},triggerIconOpen:{k3aq6I:`x19jd1h0`,$$css:!0},popover:{k7Eaqz:`xrzjruh`,$$css:!0},content:{kB7OPa:`x9f619`,kskxy:`xpnbb6b`,kVQacm:`xysyzu8`,kmVPX3:`x1b2ylru`,$$css:!0},sm:{kZKoxP:`x6k0iem`,$$css:!0},md:{kZKoxP:`x1ueg155`,$$css:!0},lg:{kZKoxP:`xssyfek`,$$css:!0},disabled:{kkrTdU:`xt0e3qv`,$$css:!0}};function eu({label:e,value:t,onChange:n,changeAction:r,children:i,triggerLabel:a,placeholder:o,isLabelHidden:s=!1,description:c,isOptional:l=!1,isRequired:u=!1,isDisabled:d=!1,isLoading:f=!1,status:p,statusVariant:m=`attached`,labelTooltip:h,size:g=`md`,variant:_=`input`,startIcon:v,width:y,placement:b=`below`,alignment:x=`start`,handleRef:S,onOpenChange:C,contentXstyle:T,xstyle:E,className:D,style:O,"data-testid":k,onClick:A,...j}){let M=Go(),N=Ql({isRequired:u,isOptional:l}),P=o??M(`@astryx.selector.placeholder`),ee=_===`ghost`&&m===`attached`?`detached`:m,F=(0,w.useId)(),I=(0,w.useId)(),L=(0,w.useId)(),te=(0,w.useId)(),ne=(0,w.useId)(),re=[c?te:null,p?.message?ne:null].filter(e=>e!=null).join(` `)||void 0,R=(0,w.useRef)(null),[z,ie]=(0,w.useTransition)(),[ae,oe]=(0,w.useOptimistic)(t),se=f||z,ce=is({dialogLabel:e,hasCloseButton:!1,hasAutoFocus:!0,surfaceTarget:`complex-selector-popup`,onShow:(0,w.useCallback)(()=>{C?.(!0)},[C]),onHide:(0,w.useCallback)(()=>{R.current?.focus(),C?.(!1)},[C])}),le=ce.isOpen,ue=(0,w.useCallback)(()=>{d||(ce.isOpen?ce.hide():ce.show())},[d,ce]),de=(0,w.useCallback)(()=>{ce.hide()},[ce]);(0,w.useImperativeHandle)(S,()=>({open:()=>{d||ce.show()},close:()=>ce.hide(),toggle:()=>{d||(ce.isOpen?ce.hide():ce.show())},isOpen:()=>ce.isOpen}),[d,ce]);let fe=(0,w.useCallback)(e=>{n?.(e),r&&ie(async()=>{oe(e),await r(e)})},[r,n,oe,ie]),pe=a??P,me=sc(v,{size:`sm`,color:`secondary`}),he=(0,V.jsx)(`div`,{id:L,...bn($l.content,T),children:i(ae,fe,de,{isOpen:le,isBusy:se,triggerId:F,contentId:L})}),ge=(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{ref:ce.triggerRef,"data-testid":k,...j,onClick:U(A,ue),...H(ri(`complex-selector`,{variant:_,size:g,status:p?.type??null}),bn(Zl.base,$l.triggerContainer,$l[g],Li.focusWithin,_===`ghost`&&$l.triggerGhost,_===`ghost`&&ya.backgroundImage,d&&Zl.disabled,_===`ghost`&&d&&$l.triggerGhostDisabled,d&&$l.disabled,a==null&&$l.placeholder,E),D,O),children:[ji(me)&&me,(0,V.jsx)(`button`,{ref:R,id:F,type:`button`,"aria-haspopup":`dialog`,"aria-expanded":le,"aria-controls":L,"aria-describedby":re,"aria-labelledby":I,"aria-required":N?`true`:void 0,"aria-invalid":p?.type===`error`?`true`:void 0,"aria-busy":se||void 0,disabled:d,onKeyDown:e=>{e.key===`ArrowDown`&&!le&&!d&&(e.preventDefault(),ce.show())},className:`x78zum5 x6s0dn4 x1qughib x1txdalj x1iyjqo2 xs83m0k x1r8uery xeuugli x1717udv x1ghz6dp xc342km xng3xce xjbqb8w xjb2p0i x1qlqyl8 x15bjb6t x1heor9g x1ypdohk x16khyan x1a2a7pz xh6dtrn`,children:(0,V.jsx)(`span`,{className:`x1iyjqo2 xeuugli xb3r6kr xlyipyv xuxw1ft x1yc453h`,children:pe})}),se&&(0,V.jsx)(la,{size:`sm`}),(0,V.jsx)(ac,{icon:`chevronDown`,size:`sm`,color:`secondary`,xstyle:[$l.triggerIcon,$l.triggerIconRotation,le&&$l.triggerIconOpen],...ri(`complex-selector-indicator-icon`,{state:le?`expanded`:`collapsed`})})]}),ce.render(he,{placement:b,alignment:x,offset:In[`--spacing-1`],xstyle:[$l.popover,Gr[b]]})]});return(0,V.jsx)(Xl,{label:e,isLabelHidden:s,description:c,inputID:F,descriptionID:c?te:void 0,labelID:I,isOptional:l,isRequired:u,isDisabled:d,status:p?{type:p.type,message:p.message,messageID:p.message?ne:void 0}:void 0,statusVariant:ee,labelTooltip:h,width:y,children:ge})}eu.displayName=`ComplexSelector`;function tu(e){let t=`${e.provider}/${e.id}`;return e.label===t?t:`${e.label} (${t})`}var nu=250;function ru(e){let{t}=sn(),[n,r]=(0,w.useState)(``),i=(0,w.useRef)([]),a=e.draftModel??e.currentModel,o=e.snapshot?.models??[],s=(e.snapshot?.truncation.modelsOmitted??0)>0,c=n.trim(),l=e.modelSearch.query===c,u=!!c&&(!l||e.modelSearch.status===`loading`),d=c?l?e.modelSearch.models:[]:o,f=e.actions.searchModels,p=e.snapshot?.generatedAt;(0,w.useEffect)(()=>{if(!c||!p)return;let e=window.setTimeout(()=>{f(c)},nu);return()=>window.clearTimeout(e)},[c,f,p]);let m=()=>{r(``),e.actions.clearModelSearch()},h=(t,n)=>{e.actions.selectModel(`${t.provider}/${t.id}`),n()},g=a?tu(a):t(`noModels`),_=a?g:t(`selectModel`),v=e.sessionSwitching||e.modelSelectionPending||e.promptAdmissionPending||!e.workspaceDraft&&!!e.snapshot?.selectedSession&&e.snapshot?.selectedSession?.id!==e.snapshot?.currentSessionId||e.liveRunning||!o.length&&!s;return(0,V.jsx)(eu,{className:`model-selector model-picker`,label:_,isLabelHidden:!0,value:a?`${a.provider}/${a.id}`:``,triggerLabel:(0,V.jsx)(`span`,{className:`model-picker-label`,children:g}),placeholder:t(`noModels`),variant:`ghost`,size:`sm`,placement:`above`,alignment:`end`,isDisabled:v,isLoading:e.modelSelectionPending,onOpenChange:e=>{e||m()},children:(f,p,m)=>(0,V.jsxs)(`div`,{className:`model-search-panel ${s?`searchable`:``}`,children:[s&&(0,V.jsx)(`p`,{className:`model-search-truncation`,role:`status`,children:t(`modelsTruncated`,{shown:o.length,omitted:e.snapshot?.truncation.modelsOmitted??0})}),s&&(0,V.jsxs)(`label`,{className:`model-search-input`,children:[(0,V.jsx)(De,{"aria-hidden":`true`}),(0,V.jsx)(`span`,{className:`sr-only`,children:t(`searchModels`)}),(0,V.jsx)(`input`,{value:n,placeholder:t(`searchModelsPlaceholder`),onChange:t=>{let n=t.currentTarget.value;r(n),n.trim()||e.actions.clearModelSearch()},onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),m())}})]}),u&&(0,V.jsx)(`p`,{className:`model-search-status`,role:`status`,children:t(`searchingModels`)}),c&&l&&e.modelSearch.status===`error`&&(0,V.jsx)(`p`,{className:`model-search-status model-search-error`,role:`alert`,children:e.modelSearch.error??t(`modelSearchFailed`)}),c&&l&&e.modelSearch.status===`ready`&&e.modelSearch.totalMatches===0&&(0,V.jsx)(`p`,{className:`model-search-status`,role:`status`,children:t(`noMatchingModels`)}),c&&l&&e.modelSearch.status===`ready`&&e.modelSearch.matchesOmitted>0&&(0,V.jsx)(`p`,{className:`model-search-status`,role:`status`,children:t(`modelSearchTruncated`,{omitted:e.modelSearch.matchesOmitted})}),(0,V.jsx)(`div`,{className:`model-search-options`,role:`listbox`,"aria-label":t(`selectModel`),"aria-busy":u,children:d.map((e,t)=>{let n=a?.provider===e.provider&&a.id===e.id;return(0,V.jsxs)(`button`,{className:`model-search-option`,type:`button`,role:`option`,"aria-selected":n,ref:e=>{i.current[t]=e},onClick:()=>h(e,m),onKeyDownCapture:e=>{let n=e.key===`ArrowDown`?Math.min(t+1,d.length-1):e.key===`ArrowUp`?Math.max(t-1,0):e.key===`Home`?0:e.key===`End`?d.length-1:null;n!==null&&n!==t&&(e.preventDefault(),e.stopPropagation(),i.current[n]?.focus())},children:[(0,V.jsx)(`span`,{className:`model-menu-item-label`,children:tu(e)}),n&&(0,V.jsx)(L,{"aria-hidden":`true`})]},`${e.provider}/${e.id}`)})})]})})}var iu=`openpi-slash-command-list`;function au(e){return`openpi-slash-command-${e}`}function ou(e,t){let n=t.trim().toLocaleLowerCase(),r=n?e.filter(e=>[e.name,e.description,e.source].some(e=>e?.toLocaleLowerCase().includes(n))):[...e];return[...r.filter(e=>e.availability===`available`),...r.filter(e=>e.availability===`unsupported`)]}function su({source:e}){return e===`extension`?(0,V.jsx)(Te,{}):e===`prompt`?(0,V.jsx)(me,{}):(0,V.jsx)(Ae,{})}function cu(e){let{t}=sn(),n=(0,w.useRef)(null);(0,w.useLayoutEffect)(()=>{let t=n.current,r=t?.parentElement;if(!t||!r||!e.preferBelow)return;let i=()=>{let e=window.visualViewport,n=e?.offsetTop??0,i=e?.height??window.innerHeight,a=n+i,o=r.getBoundingClientRect(),s=Math.max(0,a-o.bottom-8-12),c=Math.max(0,o.top-n-8-12),l=s>=Math.min(t.scrollHeight,224,i*.32)||s>=c?`below`:`above`,u=l===`below`?s:c;t.dataset.placement=l,t.style.setProperty(`--slash-command-available-height`,`${Math.floor(u)}px`)};i();let a=new ResizeObserver(i);return a.observe(t),a.observe(r),window.addEventListener(`resize`,i),window.visualViewport?.addEventListener(`resize`,i),window.visualViewport?.addEventListener(`scroll`,i),()=>{a.disconnect(),window.removeEventListener(`resize`,i),window.visualViewport?.removeEventListener(`resize`,i),window.visualViewport?.removeEventListener(`scroll`,i)}},[e.preferBelow]);let r=e.commands[e.activeIndex];return(0,w.useEffect)(()=>{r&&(n.current?.querySelector(`[data-command-index="${e.activeIndex}"]`))?.scrollIntoView?.({block:`nearest`,inline:`nearest`})},[r,e.activeIndex]),e.draft?(0,V.jsx)(`div`,{ref:n,className:`slash-command-menu slash-command-state`,role:`status`,children:t(`commandSessionRequired`)}):e.commandDiscovery.status===`idle`||e.commandDiscovery.status===`loading`?(0,V.jsx)(`div`,{ref:n,className:`slash-command-menu slash-command-state`,role:`status`,children:t(`commandsLoading`)}):e.commandDiscovery.status===`error`?(0,V.jsxs)(`div`,{ref:n,className:`slash-command-menu slash-command-state`,role:`alert`,children:[(0,V.jsx)(`strong`,{children:t(`commandsUnavailable`)}),(0,V.jsx)(`span`,{children:e.commandDiscovery.error})]}):e.commandDiscovery.status===`ready`&&e.commands.length===0?(0,V.jsx)(`div`,{ref:n,className:`slash-command-menu slash-command-state`,role:`status`,children:t(`commandsNoMatch`)}):(0,V.jsxs)(`div`,{ref:n,className:`slash-command-menu`,children:[(0,V.jsx)(`div`,{id:iu,role:`listbox`,"aria-label":t(`commands`),children:e.commands.map((n,r)=>{let i=n.availability===`unsupported`;return(0,V.jsxs)(`button`,{id:au(r),"data-command-index":r,className:`slash-command-option`,type:`button`,role:`option`,"aria-selected":r===e.activeIndex,"aria-disabled":i,disabled:i,onMouseEnter:()=>e.onSelect(r),onMouseDown:e=>e.preventDefault(),onClick:()=>e.onComplete(n),children:[(0,V.jsx)(`span`,{className:`slash-command-icon`,children:(0,V.jsx)(su,{source:n.source})}),(0,V.jsxs)(`span`,{className:`slash-command-copy`,children:[(0,V.jsxs)(`span`,{className:`slash-command-heading`,children:[(0,V.jsxs)(`strong`,{children:[`/`,n.name]}),(0,V.jsx)(`span`,{children:t(`commandSource_${n.source}`)})]}),n.description&&(0,V.jsx)(`span`,{children:n.description})]}),(0,V.jsx)(`span`,{className:`slash-command-support`,children:i?t(`commandUnsupported`):n.argumentHint?t(`commandAcceptsArguments`):null})]},`${n.source}:${n.name}`)})}),e.commandDiscovery.commandsOmitted>0&&(0,V.jsx)(`div`,{className:`slash-command-bounded`,role:`status`,children:t(`commandsBounded`,{count:e.commandDiscovery.commandsOmitted})})]})}function lu(e){let{t}=sn(),[n,r]=(0,w.useState)(``),i=e.modelSearch??{query:``,status:`idle`,models:[],totalMatches:0,matchesOmitted:0,error:null},[a,o]=(0,w.useState)(0),[s,c]=(0,w.useState)(!1),[l,u]=(0,w.useState)(!1),[d,f]=(0,w.useState)(0),p=(0,w.useRef)(null),m=(0,w.useRef)(null),h=(0,w.useRef)(!1),g=e.snapshot?.selectedSession,_=!!(!e.workspaceDraft&&g?.id&&g.id===e.snapshot?.currentSessionId),v=!!(e.selectedWorkspace&&(e.workspaceDraft||!g&&!e.snapshot?.currentSessionId)),y=_||v,b=!e.workspaceDraft&&(e.snapshot?.runtime.status===`running`||e.liveRunning),x=_&&b&&!!(e.activeTurn??e.snapshot?.runtime.activeTurn),S=e.sessionSwitching||!y&&!!e.selectedWorkspace,C=e.commandDiscovery??{sessionId:null,status:`idle`,commands:[],totalAvailable:0,commandsOmitted:0,error:null},T=/^\/[^\s/]*$/u.test(n)&&a>0,E=s&&T&&!l&&y&&!e.sessionSwitching,D=_?g?.id:null,O=T?n.slice(1):``,k=(0,w.useMemo)(()=>ou(C.commands,O),[O,C.commands]),A=E&&!e.workspaceDraft&&C.status===`ready`&&k.length>0;(0,w.useEffect)(()=>{let t=E&&!h.current;h.current=E,!(!E||e.workspaceDraft||!D||C.status!==`idle`&&!(t&&C.status===`error`))&&e.actions.discoverCommands()},[C.status,E,e.actions,e.workspaceDraft,D]),(0,w.useEffect)(()=>{let e=k.findIndex(e=>e.availability===`available`);f(e>=0?e:0)},[k]),(0,w.useEffect)(()=>{let t=e.promptAdmissionRecovery,n=t?.commandId??null;m.current!==n&&(m.current=n,t&&r(e=>e||t.content))},[e.promptAdmissionRecovery]),(0,w.useEffect)(()=>{let t=e.promptAdmissionResolution;t&&(n.trim()===t.content&&(r(``),p.current&&(p.current.style.height=`auto`,p.current.style.overflowY=`hidden`)),e.actions.acknowledgePromptAdmissionResolution(t.commandId))},[n,e.actions,e.promptAdmissionResolution]);let j=()=>{r(``),p.current&&(p.current.style.height=`auto`,p.current.style.overflowY=`hidden`)},M=e=>{e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,220)}px`,e.style.overflowY=e.scrollHeight>220?`auto`:`hidden`},N=async t=>{if(t?.preventDefault(),!e.selectedWorkspace){await e.actions.chooseWorkspace();return}await e.actions.sendPrompt(n)&&j()},P=async()=>{await e.actions.sendPromptAsNew(n)&&j()},F=e=>{if(e.availability!==`available`)return;let t=`/${e.name} `;r(t),o(t.length),u(!0),queueMicrotask(()=>{p.current?.focus(),p.current?.setSelectionRange(t.length,t.length)})},I=e=>{if(!k.length)return;let t=d;for(let n=0;n({id:t.path,label:t.name,icon:(0,V.jsx)(he,{}),endContent:t.path===e.selectedWorkspace?(0,V.jsx)(L,{}):void 0,onClick:()=>e.actions.setWorkspace(t.path)})),{type:`divider`},{id:`add`,label:t(`addWorkspaceMenu`),icon:(0,V.jsx)(we,{}),onClick:()=>void e.actions.chooseWorkspace()}],ne=e.draftModel??e.snapshot?.models.find(e=>e.current)??e.snapshot?.models[0],re=e.selectedWorkspace?e.landing?t(`promptTask`):t(_?`promptMessage`:`promptReadonly`):t(`promptStart`),R=e.snapshot?.thinking,z=R?.level??null,ie=e.thinkingPendingLevel??null,ae=ie??z,oe=R?.supported??!1,se=R?!R.available.includes(z??``):!1,ce=(R?.available??[]).map(t=>({id:t,label:t,endContent:t===ae?(0,V.jsx)(L,{}):void 0,onClick:()=>void e.actions.selectThinking(t)})),le=R?oe?e.workspaceDraft?`thinkingDraftHint`:_?b?`thinkingLockedRunning`:e.modelSelectionPending?`thinkingModelPendingHint`:null:`thinkingInactiveHint`:`thinkingUnsupportedHint`:null,ue=oe?`${t(`thinkingLevel`)}: ${ae??t(`unknownState`)}`:t(`thinkingUnsupported`),de=R?[...se?[{id:`thinking-level-mismatch`,label:t(`thinkingLevelMismatch`),isDisabled:!0},{type:`divider`}]:[],{type:`section`,id:`thinking-level`,title:t(`thinkingLevel`),items:ce}]:[],fe=e.thinkingPendingLevel===null?e.workspaceDraft?t(`enterHint`):e.turnCancellationPending?t(`stoppingTurn`):e.turnTerminalStatus===`cancelled`?t(`stoppedTurn`):e.pendingFollowUpsReceipt===null?t(y?b?`queuedHint`:`enterHint`:`activeOnlyHint`):e.pendingFollowUpsReceipt>0?t(`pendingFollowUpsHint`,{count:e.pendingFollowUpsReceipt}):t(`acceptedHint`):t(`thinkingPendingHint`);return(0,V.jsxs)(`div`,{className:`composer-dock`,children:[_&&(0,V.jsx)(vl,{snapshot:e.snapshot,onInspectTerminal:e.onInspect}),e.landing&&(0,V.jsx)(`div`,{className:`workspace-picker-row`,children:(0,V.jsx)(il,{className:`workspace-picker-menu`,button:{label:e.selectedWorkspace?ul(e.selectedWorkspace):t(`selectWorkspace`),icon:(0,V.jsx)(he,{}),size:`md`,variant:`ghost`,className:`workspace-picker`},items:te,menuWidth:240,placement:`above`,alignment:`start`,hasChevron:!0})}),e.promptAdmissionRecovery&&(0,V.jsxs)(`section`,{className:`prompt-recovery`,role:`alert`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:t(`promptAdmissionUnknown`)}),(0,V.jsx)(`span`,{children:e.promptAdmissionRecovery.phase===`checking`?t(`promptAdmissionCheckingDetail`):e.promptAdmissionRecovery.phase===`verification-failed`?t(`promptAdmissionVerificationFailedDetail`):t(`promptAdmissionUnknownDetail`)})]}),(0,V.jsxs)(`div`,{className:`prompt-recovery-actions`,children:[(0,V.jsx)(`button`,{type:`button`,disabled:e.promptAdmissionRecovery.phase===`submitting`,onClick:e.actions.abandonPromptAdmission,children:t(`abandonAdmission`)}),e.promptAdmissionRecovery.phase===`verification-failed`&&(0,V.jsx)(`button`,{type:`button`,onClick:()=>void e.actions.checkPromptAdmissionRecovery(),children:t(`retryAdmissionCheck`)}),(0,V.jsx)(`button`,{type:`button`,className:`primary`,disabled:e.promptAdmissionRecovery.phase!==`ready`||!n.trim(),onClick:()=>void P(),children:e.promptAdmissionRecovery.phase===`submitting`?t(`sendingAsNew`):t(`sendAsNew`)})]})]}),(0,V.jsxs)(`form`,{className:`composer ${e.selectedWorkspace?``:`dormant`}`,onSubmit:e=>void N(e),children:[!e.selectedWorkspace&&(0,V.jsx)(`button`,{className:`dormant-overlay`,type:`button`,"aria-label":t(`selectWorkspace`),onClick:()=>void e.actions.chooseWorkspace()}),(0,V.jsx)(`textarea`,{ref:p,value:n,rows:1,disabled:S,readOnly:!e.selectedWorkspace,"aria-label":t(`describeTask`),"aria-autocomplete":`list`,"aria-controls":A?iu:void 0,"aria-activedescendant":A&&k[d]?au(d):void 0,placeholder:re,onChange:e=>{r(e.target.value),o(e.target.selectionStart),u(!1),M(e.currentTarget)},onClick:e=>o(e.currentTarget.selectionStart),onSelect:e=>o(e.currentTarget.selectionStart),onFocus:()=>{c(!0),u(!1)},onBlur:()=>c(!1),onKeyDown:e=>{if(E){if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault(),I(e.key===`ArrowDown`?1:-1);return}if(e.key===`Escape`){e.preventDefault(),u(!0);return}if((e.key===`Tab`||e.key===`Enter`&&!e.shiftKey)&&!e.nativeEvent.isComposing){let t=k[d];if(t){e.preventDefault(),F(t);return}}}e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),N())}}),E&&(0,V.jsx)(cu,{activeIndex:d,commandDiscovery:C,commands:k,draft:!!e.workspaceDraft,preferBelow:e.landing,onComplete:F,onSelect:f}),(0,V.jsxs)(`div`,{className:`composer-toolbar`,children:[e.onInspect&&(0,V.jsx)(`button`,{type:`button`,className:`icon-button`,"aria-label":t(`runtimeStatus`),title:t(`runtimeStatus`),disabled:!_||e.sessionSwitching,onClick:()=>e.onInspect?.(),children:(0,V.jsx)(ke,{})}),(0,V.jsx)(`div`,{className:`model-picker-wrap`,children:(0,V.jsx)(ru,{snapshot:e.snapshot,currentModel:ne,draftModel:e.draftModel,modelSearch:i,modelSelectionPending:!!e.modelSelectionPending,promptAdmissionPending:e.promptAdmissionPending,sessionSwitching:e.sessionSwitching,liveRunning:b,workspaceDraft:!!e.workspaceDraft,actions:e.actions})}),R&&(0,V.jsx)(`div`,{className:`thinking-picker-wrap`,"data-level":z??`none`,"data-pending":ie!==null,"data-warning":se,title:le?t(le):void 0,children:(0,V.jsx)(il,{className:`thinking-menu`,button:{label:ue,icon:(0,V.jsx)(ee,{}),isIconOnly:!0,size:`sm`,variant:`ghost`,className:`thinking-picker`,isDisabled:le!==null||ce.length===0},items:de,menuWidth:220,placement:`above`,alignment:`end`,hasChevron:!1})}),x?(0,V.jsx)(cl,{content:t(`stopTurn`),placement:`above`,children:(0,V.jsx)(`button`,{className:`send-button`,type:`button`,"aria-label":t(`stopTurn`),disabled:e.turnCancellationPending||e.sessionSwitching,onClick:()=>void e.actions.cancelActiveTurn(),children:(0,V.jsx)(Me,{})})}):(0,V.jsx)(cl,{content:t(`send`),placement:`above`,children:(0,V.jsx)(`button`,{className:`send-button`,type:`submit`,"aria-label":t(`send`),disabled:e.sessionSwitching||e.modelSelectionPending||e.thinkingPendingLevel!==null||!y||!e.selectedWorkspace||e.promptAdmissionPending||!!e.promptAdmissionRecovery||!!e.promptAdmissionResolution||!n.trim(),children:(0,V.jsx)(Oe,{})})})]}),(0,V.jsx)(`div`,{className:`composer-hint`,"aria-live":`polite`,children:fe})]})]})}var uu={container:{kB7OPa:`x9f619`,kZCmMZ:`x1c35znw`,kwRFfy:`x64h4k7`,kLKAdn:`x14m0hsi`,kGO01o:`xc1wllq`,$$css:!0}},du=In[`--spacing-4`],fu=`var(--astryx-card-padding, ${du})`,pu=`var(--astryx-card-padding-inline, ${fu})`;`${pu}`,`${pu}`,`${fu}`,`${fu}`;var mu=`var(--_section-padding-propagated, ${`var(--astryx-section-padding, ${du})`})`,hu=`var(--astryx-section-padding-inline, ${mu})`;`${hu}`,`${hu}`,`${mu}`,`${mu}`;var gu=`var(--astryx-dialog-padding, ${du})`,_u=`var(--astryx-dialog-padding-inline, ${gu})`;`${_u}`,`${_u}`,`${gu}`,`${gu}`;var vu={card:{containerPaddingInlineStart:{"--container-padding-inline-start":`xjmlhfd`,$$css:!0},containerPaddingInlineEnd:{"--container-padding-inline-end":`x1ihxwbr`,$$css:!0},containerPaddingBlockStart:{"--container-padding-block-start":`x1rqz8me`,$$css:!0},containerPaddingBlockEnd:{"--container-padding-block-end":`x1omyuck`,$$css:!0},layoutPaddingOuterX:{"--layout-padding-outer-x":`x14rzhog`,$$css:!0},layoutPaddingOuterY:{"--layout-padding-outer-y":`xjej9fs`,$$css:!0},layoutPaddingInnerX:{"--layout-padding-inner-x":`x4poyjn`,$$css:!0},layoutPaddingInnerY:{"--layout-padding-inner-y":`x1u1kw4e`,$$css:!0}},section:{containerPaddingInlineStart:{"--container-padding-inline-start":`x19lemt0`,$$css:!0},containerPaddingInlineEnd:{"--container-padding-inline-end":`xu1wldr`,$$css:!0},containerPaddingBlockStart:{"--container-padding-block-start":`xnw7zt4`,$$css:!0},containerPaddingBlockEnd:{"--container-padding-block-end":`xek4msv`,$$css:!0},layoutPaddingOuterX:{"--layout-padding-outer-x":`x15i0zw9`,$$css:!0},layoutPaddingOuterY:{"--layout-padding-outer-y":`x1vw4zgg`,$$css:!0},layoutPaddingInnerX:{"--layout-padding-inner-x":`x1v3gmnx`,$$css:!0},layoutPaddingInnerY:{"--layout-padding-inner-y":`x15yx5hm`,$$css:!0}},dialog:{containerPaddingInlineStart:{"--container-padding-inline-start":`x1tewnwq`,$$css:!0},containerPaddingInlineEnd:{"--container-padding-inline-end":`x11h1f2o`,$$css:!0},containerPaddingBlockStart:{"--container-padding-block-start":`x1g2kccc`,$$css:!0},containerPaddingBlockEnd:{"--container-padding-block-end":`x1gvthzm`,$$css:!0},layoutPaddingOuterX:{"--layout-padding-outer-x":`x1hsjncj`,$$css:!0},layoutPaddingOuterY:{"--layout-padding-outer-y":`x1pui4bz`,$$css:!0},layoutPaddingInnerX:{"--layout-padding-inner-x":`x2so38`,$$css:!0},layoutPaddingInnerY:{"--layout-padding-inner-y":`xinu7xd`,$$css:!0}}},yu={spacing0:{"--container-padding-inline-start":`x1gu2k80`,$$css:!0},spacing0_5:{"--container-padding-inline-start":`x14ws0sr`,$$css:!0},spacing1:{"--container-padding-inline-start":`x1cvlban`,$$css:!0},spacing1_5:{"--container-padding-inline-start":`x176g23i`,$$css:!0},spacing2:{"--container-padding-inline-start":`x1xlrr2o`,$$css:!0},spacing3:{"--container-padding-inline-start":`xfdwxua`,$$css:!0},spacing4:{"--container-padding-inline-start":`x1dlhslv`,$$css:!0},spacing5:{"--container-padding-inline-start":`x1s81nki`,$$css:!0},spacing6:{"--container-padding-inline-start":`x1ep0dkj`,$$css:!0},spacing7:{"--container-padding-inline-start":`x157xojc`,$$css:!0},spacing8:{"--container-padding-inline-start":`xw1diwv`,$$css:!0},spacing9:{"--container-padding-inline-start":`xraca2a`,$$css:!0},spacing10:{"--container-padding-inline-start":`xserb3f`,$$css:!0},spacing11:{"--container-padding-inline-start":`xziclwo`,$$css:!0},spacing12:{"--container-padding-inline-start":`x1iiwihq`,$$css:!0}},bu={spacing0:{"--container-padding-inline-end":`x91ghl5`,$$css:!0},spacing0_5:{"--container-padding-inline-end":`x1wz3t3y`,$$css:!0},spacing1:{"--container-padding-inline-end":`x2oyxnl`,$$css:!0},spacing1_5:{"--container-padding-inline-end":`xntetml`,$$css:!0},spacing2:{"--container-padding-inline-end":`xcas3b9`,$$css:!0},spacing3:{"--container-padding-inline-end":`xu0ipoa`,$$css:!0},spacing4:{"--container-padding-inline-end":`xs0pscg`,$$css:!0},spacing5:{"--container-padding-inline-end":`xgkj7vj`,$$css:!0},spacing6:{"--container-padding-inline-end":`x94cj42`,$$css:!0},spacing7:{"--container-padding-inline-end":`x11tj35w`,$$css:!0},spacing8:{"--container-padding-inline-end":`x1b9k1pi`,$$css:!0},spacing9:{"--container-padding-inline-end":`x19w02kr`,$$css:!0},spacing10:{"--container-padding-inline-end":`xx5lg5w`,$$css:!0},spacing11:{"--container-padding-inline-end":`x1nmgbqg`,$$css:!0},spacing12:{"--container-padding-inline-end":`x1wsfsk2`,$$css:!0}},xu={spacing0:{"--container-padding-block-start":`x1i3qcxz`,$$css:!0},spacing0_5:{"--container-padding-block-start":`xvdf9ev`,$$css:!0},spacing1:{"--container-padding-block-start":`xnsckjb`,$$css:!0},spacing1_5:{"--container-padding-block-start":`x1kbx601`,$$css:!0},spacing2:{"--container-padding-block-start":`xa8b4fq`,$$css:!0},spacing3:{"--container-padding-block-start":`x11k4f5r`,$$css:!0},spacing4:{"--container-padding-block-start":`xm01sq8`,$$css:!0},spacing5:{"--container-padding-block-start":`xp8wdkl`,$$css:!0},spacing6:{"--container-padding-block-start":`x1hmud4d`,$$css:!0},spacing7:{"--container-padding-block-start":`x1c00sag`,$$css:!0},spacing8:{"--container-padding-block-start":`xfv60at`,$$css:!0},spacing9:{"--container-padding-block-start":`x14fzdu7`,$$css:!0},spacing10:{"--container-padding-block-start":`x17h9kl7`,$$css:!0},spacing11:{"--container-padding-block-start":`x1rdjxae`,$$css:!0},spacing12:{"--container-padding-block-start":`xecwdl6`,$$css:!0}},Su={spacing0:{"--container-padding-block-end":`xkunwnr`,$$css:!0},spacing0_5:{"--container-padding-block-end":`x1cao3zv`,$$css:!0},spacing1:{"--container-padding-block-end":`x57a7ii`,$$css:!0},spacing1_5:{"--container-padding-block-end":`xv53x8y`,$$css:!0},spacing2:{"--container-padding-block-end":`x1lsgcmx`,$$css:!0},spacing3:{"--container-padding-block-end":`x1q3ppug`,$$css:!0},spacing4:{"--container-padding-block-end":`x4hfsld`,$$css:!0},spacing5:{"--container-padding-block-end":`xbib2ws`,$$css:!0},spacing6:{"--container-padding-block-end":`x1q8d17g`,$$css:!0},spacing7:{"--container-padding-block-end":`x1yqogew`,$$css:!0},spacing8:{"--container-padding-block-end":`x8lgq76`,$$css:!0},spacing9:{"--container-padding-block-end":`x1f7f9rt`,$$css:!0},spacing10:{"--container-padding-block-end":`x15vxphk`,$$css:!0},spacing11:{"--container-padding-block-end":`x4bg2x9`,$$css:!0},spacing12:{"--container-padding-block-end":`x186mjxr`,$$css:!0}},Cu={spacing0:{"--layout-padding-outer-x":`xswhm3q`,$$css:!0},spacing0_5:{"--layout-padding-outer-x":`xihiwg7`,$$css:!0},spacing1:{"--layout-padding-outer-x":`xc96xmq`,$$css:!0},spacing1_5:{"--layout-padding-outer-x":`x1u93lgd`,$$css:!0},spacing2:{"--layout-padding-outer-x":`x15dxnc0`,$$css:!0},spacing3:{"--layout-padding-outer-x":`xadgj3j`,$$css:!0},spacing4:{"--layout-padding-outer-x":`x1v56qcf`,$$css:!0},spacing5:{"--layout-padding-outer-x":`x1nzs0gl`,$$css:!0},spacing6:{"--layout-padding-outer-x":`x1c3n52a`,$$css:!0},spacing7:{"--layout-padding-outer-x":`x1gfiokx`,$$css:!0},spacing8:{"--layout-padding-outer-x":`x1t3kfz`,$$css:!0},spacing9:{"--layout-padding-outer-x":`xzr4qsh`,$$css:!0},spacing10:{"--layout-padding-outer-x":`x1jdf5a4`,$$css:!0},spacing11:{"--layout-padding-outer-x":`x1hct0t0`,$$css:!0},spacing12:{"--layout-padding-outer-x":`x11cyqoe`,$$css:!0}},wu={spacing0:{"--layout-padding-outer-y":`x1mzf5mb`,$$css:!0},spacing0_5:{"--layout-padding-outer-y":`x1vj96e0`,$$css:!0},spacing1:{"--layout-padding-outer-y":`x1gpfxoh`,$$css:!0},spacing1_5:{"--layout-padding-outer-y":`xd3dqby`,$$css:!0},spacing2:{"--layout-padding-outer-y":`x10pz7y9`,$$css:!0},spacing3:{"--layout-padding-outer-y":`x1p6yq3h`,$$css:!0},spacing4:{"--layout-padding-outer-y":`xx738ci`,$$css:!0},spacing5:{"--layout-padding-outer-y":`x6yxws5`,$$css:!0},spacing6:{"--layout-padding-outer-y":`x180vrwl`,$$css:!0},spacing7:{"--layout-padding-outer-y":`x1q6rme1`,$$css:!0},spacing8:{"--layout-padding-outer-y":`xid7e43`,$$css:!0},spacing9:{"--layout-padding-outer-y":`x1t5kicu`,$$css:!0},spacing10:{"--layout-padding-outer-y":`x26l4wa`,$$css:!0},spacing11:{"--layout-padding-outer-y":`x10zktp0`,$$css:!0},spacing12:{"--layout-padding-outer-y":`x1yz3n6a`,$$css:!0}},Tu={spacing0:{"--layout-padding-inner-x":`xj1bl4l`,$$css:!0},spacing0_5:{"--layout-padding-inner-x":`xlriy2h`,$$css:!0},spacing1:{"--layout-padding-inner-x":`x6uuyak`,$$css:!0},spacing1_5:{"--layout-padding-inner-x":`xd38f90`,$$css:!0},spacing2:{"--layout-padding-inner-x":`xxqksqd`,$$css:!0},spacing3:{"--layout-padding-inner-x":`x1fyui2f`,$$css:!0},spacing4:{"--layout-padding-inner-x":`x1i2ajwi`,$$css:!0},spacing5:{"--layout-padding-inner-x":`x1tac27u`,$$css:!0},spacing6:{"--layout-padding-inner-x":`x1ntgf3t`,$$css:!0},spacing7:{"--layout-padding-inner-x":`xhjd9tl`,$$css:!0},spacing8:{"--layout-padding-inner-x":`xn7c84u`,$$css:!0},spacing9:{"--layout-padding-inner-x":`xeqkbsz`,$$css:!0},spacing10:{"--layout-padding-inner-x":`x1vf4qco`,$$css:!0},spacing11:{"--layout-padding-inner-x":`xsmamsf`,$$css:!0},spacing12:{"--layout-padding-inner-x":`x2xk2xj`,$$css:!0}},Eu={spacing0:{"--layout-padding-inner-y":`xwuefyo`,$$css:!0},spacing0_5:{"--layout-padding-inner-y":`x180h0y5`,$$css:!0},spacing1:{"--layout-padding-inner-y":`xmpug6m`,$$css:!0},spacing1_5:{"--layout-padding-inner-y":`x1g8jpzm`,$$css:!0},spacing2:{"--layout-padding-inner-y":`x1lksgje`,$$css:!0},spacing3:{"--layout-padding-inner-y":`x4j7gld`,$$css:!0},spacing4:{"--layout-padding-inner-y":`x1s3ehtl`,$$css:!0},spacing5:{"--layout-padding-inner-y":`x1rj5eim`,$$css:!0},spacing6:{"--layout-padding-inner-y":`x1ftgg6u`,$$css:!0},spacing7:{"--layout-padding-inner-y":`x1ho74vh`,$$css:!0},spacing8:{"--layout-padding-inner-y":`xm2cs6f`,$$css:!0},spacing9:{"--layout-padding-inner-y":`x1vsq92b`,$$css:!0},spacing10:{"--layout-padding-inner-y":`x18gbwmk`,$$css:!0},spacing11:{"--layout-padding-inner-y":`x14zymzj`,$$css:!0},spacing12:{"--layout-padding-inner-y":`xzfpkx9`,$$css:!0}},Du={containerMaxHeight:e=>[{"--container-max-height":e==null?e:`x18nyedi`,$$css:!0},{"--x---container-max-height":e??void 0}]};function Ou({padding:e=`spacing4`,paddingOuterX:t,paddingOuterY:n,paddingInnerX:r,paddingInnerY:i,useThemeDefault:a,maxHeight:o}){let s=t??e,c=n??e,l=r??e,u=i??e,d=o?Du.containerMaxHeight(o):null;if(a){let e=vu[a];return[uu.container,e.containerPaddingInlineStart,e.containerPaddingInlineEnd,e.containerPaddingBlockStart,e.containerPaddingBlockEnd,e.layoutPaddingOuterX,e.layoutPaddingOuterY,e.layoutPaddingInnerX,e.layoutPaddingInnerY,d]}return[uu.container,yu[s],bu[s],xu[c],Su[c],Cu[s],wu[c],Tu[l],Eu[u],d]}var ku=(0,w.createContext)(null);ku.displayName=`DialogContext`;function Au(e,t=16){let n=e.getBoundingClientRect(),r=n.left+n.width/2-window.innerWidth/2,i=n.top+n.height/2-window.innerHeight/2,a=Math.sqrt(r*r+i*i)||1;return{x:Math.round(r/a*t),y:Math.round(i/a*t)}}`${In[`--spacing-4`]}`,`${In[`--spacing-4`]}`,`${In[`--spacing-4`]}`,`${In[`--spacing-4`]}`,`${In[`--spacing-4`]}`,`${In[`--spacing-4`]}`;var ju={dialog:{kVAEAm:`xixxii4`,kogj98:`x1bpp3o7`,kmVPX3:`x1717udv`,kWkggS:`x10xzikg`,"--_dialog-radius":`xvuvksw`,kaIpWk:`xuacgfc`,kGVxlE:`x1kcpxr7`,k1xSpc:`x1s85apg`,kXwgrk:`xdt5ytf`,kZKoxP:`xg7h5cd`,kZeWKH:`xish69e`,kSiTet:`xg01cxk`,k44tkh:`xqgcaz`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},open:{k1xSpc:`x78zum5`,kSiTet:`x1hc1fzr`,kKVMdj:`x1ewfqum x1aquc0h`,$$css:!0},backdrop:{kGyWv1:`xnixb3f`,kba3nw:`x1abwkk1`,$$css:!0},fullscreen:{kzqmXN:`x1o6l61p`,kZKoxP:`xtdtrs8`,ks0D6T:`xlbgzzq`,kskxy:`x1wj9ous`,kaIpWk:`x2u8bby`,kogj98:`x1ghz6dp`,kpwlN0:`x10a8y8t`,$$css:!0},fullscreenOpen:{kKVMdj:`xqcmdr3 x1aquc0h`,$$css:!0},fullscreenSafeArea:{kLKAdn:`x15ld1ci`,kGO01o:`x1rgxemn`,kZCmMZ:`xqmdmw x1i7f2ot`,kwRFfy:`x1by8st6 xtjjor6`,$$css:!0},inner:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kUk6DE:`x12lumcd`,kAzted:`x2lwn1j`,kVQacm:`xb3r6kr`,kaIpWk:`x1pjcqnp`,$$css:!0},inlineWrapper:{kmVPX3:`x1717udv`,kWkggS:`x10xzikg`,"--_dialog-radius":`xvuvksw`,kaIpWk:`xuacgfc`,kGVxlE:`x1kcpxr7`,k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kZKoxP:`xg7h5cd`,kZeWKH:`xish69e`,$$css:!0}},Mu=In[`--spacing-4`],Nu=`min(100%, ${`calc(100dvw - ${Mu} - ${Mu})`})`;function Pu(e){return typeof e==`number`?`${e}px`:e}function Fu(e,t){return{width:Pu(e),maxWidth:Nu,maxHeight:Pu(t)}}var Iu={kogj98:`x1ghz6dp`,$$css:!0},Lu={sizing:(e,t,n)=>[{kzqmXN:e==null?e:`x5lhr3w`,ks0D6T:t==null?t:`xf68679`,kskxy:n==null?n:`x1jols5v`,$$css:!0},{"--x-width":(e=>typeof e==`number`?e+`px`:e??void 0)(e),"--x-maxWidth":(e=>typeof e==`number`?e+`px`:e??void 0)(t),"--x-maxHeight":(e=>typeof e==`number`?e+`px`:e??void 0)(n)}],position:(e,t,n,r)=>[Iu,{k87sOh:e==null?e:`xjbys53`,kLqNvP:t==null?t:`x1lxsm33`,kt4wiu:n==null?n:`xqxgn94`,krVfgx:r==null?r:`x1nqzi6q`,$$css:!0},{"--x-top":(e=>typeof e==`number`?e+`px`:e??void 0)(e),"--x-insetInlineStart":(e=>typeof e==`number`?e+`px`:e??void 0)(t),"--x-insetInlineEnd":(e=>typeof e==`number`?e+`px`:e??void 0)(n),"--x-bottom":(e=>typeof e==`number`?e+`px`:e??void 0)(r)}]};function Ru(e){return typeof e==`number`?`${e}px`:e}function zu(e){let{top:t,bottom:n,start:r,end:i}=e;return{top:t===void 0?`auto`:Ru(t),bottom:n===void 0?`auto`:Ru(n),insetInlineStart:r===void 0?`auto`:Ru(r),insetInlineEnd:i===void 0?`auto`:Ru(i)}}function Bu({isOpen:e,isInline:t=!1,onOpenChange:n,width:r=400,maxHeight:i=`75dvh`,position:a,variant:o=`standard`,purpose:s=`info`,padding:c,children:l,xstyle:u,className:d,style:f,ref:p,...m}){let h=c==null,g=c??4,_=Bn[g],v=o===`fullscreen`,y=v?null:Fu(r,i),b=(0,w.useId)(),x=(0,w.useMemo)(()=>({isInline:t,titleId:b}),[t,b]),S=m[`aria-label`]!=null||m[`aria-labelledby`]!=null,C=(0,w.useRef)(null),T=Bi(p,(0,w.useCallback)(e=>{C.current=e,!(!e||S)&&(e.querySelector(`#${CSS.escape(b)}`)==null?e.removeAttribute(`aria-labelledby`):e.setAttribute(`aria-labelledby`,b))},[b,S])),E=(0,w.useRef)(null),D=s!==`required`,O=s===`info`;(0,w.useEffect)(()=>{if(t)return;let n=C.current;if(n)if(e){E.current=document.activeElement;let e=E.current;if(e&&e!==document.body){let t=Au(e);n.style.setProperty(`--dialog-dir-x`,`${t.x}px`),n.style.setProperty(`--dialog-dir-y`,`${t.y}px`)}else n.style.setProperty(`--dialog-dir-x`,`0px`),n.style.setProperty(`--dialog-dir-y`,`16px`);if(!n.open){n.showModal();let e=n.querySelector(`[data-autofocus]`);e&&e.focus()}}else n.open&&n.close(),E.current?.focus(),E.current=null},[e,t]),Fl(e&&!t);let{shouldDismissOnCloseRequest:k}=Er({isActive:e,isEnabled:!t,escapeBehavior:D?`close`:`block`,onDismiss:()=>{n(!1)}}),A=(0,w.useRef)(!1);(0,w.useEffect)(()=>{let n=C.current?.querySelector(`#${CSS.escape(b)}`)!=null;e&&!t&&!S&&!n&&!A.current&&(A.current=!0)},[e,t,S,b]);let j=e=>{e.target===e.currentTarget&&O&&n(!1)},M=e=>{e.preventDefault(),k()&&D&&n(!1)},N=(0,V.jsx)(`div`,{...bn(ju.inner,...Ou(h?{useThemeDefault:`dialog`,maxHeight:y?.maxHeight}:{paddingInnerX:_,paddingInnerY:_,paddingOuterX:_,paddingOuterY:_,maxHeight:y?.maxHeight}),!h&&g!==4&&Vn[g],!h&&g!==4&&Hn[g],!h&&g!==4&&Un[g],!h&&g!==4&&Wn[g],v&&h&&ju.fullscreenSafeArea),children:(0,V.jsx)(ku,{value:x,children:l})}),P=a!=null&&!v,{open:ee,...F}=m;return t?e?(0,V.jsx)(`div`,{...F,...H(ri(`dialog`,{variant:o}),bn(ju.inlineWrapper,Gn.reset,y&&Lu.sizing(y.width,y.maxWidth,y.maxHeight),v&&ju.fullscreen,u),d,f),"data-testid":m[`data-testid`],children:(0,V.jsx)(ar,{children:N})}):null:(0,V.jsx)(`dialog`,{ref:T,...F,...H(ri(`dialog`,{variant:o}),zi.focusVisible(ju.dialog,Gn.reset,e&&ju.open,ju.backdrop,y&&Lu.sizing(y.width,y.maxWidth,y.maxHeight),P&&(()=>{let e=zu(a);return Lu.position(e.top,e.insetInlineStart,e.insetInlineEnd,e.bottom)})(),v&&ju.fullscreen,v&&e&&ju.fullscreenOpen,u),d,f),onClick:j,onCancel:M,"aria-modal":`true`,...s===`required`?{role:`alertdialog`}:void 0,children:(0,V.jsx)(ar,{children:N})})}Bu.displayName=`Dialog`;function Vu(e){return!!e.trim()&&!e.startsWith(`#`)&&!e.startsWith(`//`)&&(!/^[a-z][a-z\d+.-]*:/iu.test(e)||/^[a-z]:[\\/]/iu.test(e))}var Hu=12288;function Uu(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function Wu(e,t=!1){let n=t?e.slice(-24576):e.slice(0,Hu*2),r=n.replace(/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\|$)/gu,``).replace(/(?:\x1b\[|\x9b)[0-?]*[ -/]*[@-~]/gu,``).replace(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u202a-\u202e\u2066-\u2069]/gu,``).split(` +`).map(e=>e.trim()).find(Boolean)??``;return t.length>60?`${t.slice(0,60)}…`:t}function gl(e){return e===`running`?`running`:e===`done`||e===`completed`?`done`:[`error`,`failed`,`aborted`,`killed`,`timed_out`].includes(e)?`error`:e===`uncertain`?`warn`:`unknown`}function _l({kind:e,label:t,status:n,onClick:r}){return(0,V.jsxs)(r?`button`:`span`,{className:`activity-chip ${e} ${n}`,type:r?`button`:void 0,onClick:r,children:[n===`running`?(0,V.jsx)(`i`,{className:`activity-chip-dot`}):n===`done`?(0,V.jsx)(L,{}):n===`error`?(0,V.jsx)(Re,{}):(0,V.jsx)(`span`,{className:`activity-chip-glyph`,children:`?`}),(0,V.jsx)(`span`,{className:`activity-chip-text`,children:t})]})}function vl({snapshot:e,onInspectTerminal:t}){let[,n]=(0,w.useState)(0),r=e?.runtime.capabilities,i=[...r?.subagents?.items??[],...r?.workflows?.items??[],...r?.[`background-terminals`]?.items??[]].some(e=>e.status===`running`);(0,w.useEffect)(()=>{if(!i)return;let e=window.setInterval(()=>n(e=>e+1),1e3);return()=>window.clearInterval(e)},[i]);let a=[];for(let e of r?.workflows?.items??[]){let t=e.agents.total-e.agents.running,n=e.agents.total?` · ${t}/${e.agents.total} agents`:``,r=e.status===`running`&&e.currentPhase?` · ${e.currentPhase}`:``,i=ml(e.startedAt,e.finishedAt);a.push({key:`workflow-${e.runId}`,kind:`workflow`,label:`${e.name||e.runId}${r}${n}${i?` · ${i}`:``}`,status:gl(e.status)})}for(let e of r?.subagents?.items??[]){let t=ml(e.createdAt,e.settledAt);a.push({key:`subagent-${e.id}`,kind:`subagent`,label:`${e.title||e.id}${t?` · ${t}`:``}`,status:gl(e.status)})}for(let e of r?.[`background-terminals`]?.items??[]){let n=ml(e.createdAt,e.settledAt);a.push({key:`terminal-${e.id}`,onClick:t?()=>t(e.id):void 0,kind:`terminal`,label:`${e.title||e.id}${n?` · ${n}`:``}`,status:gl(e.status)})}a.sort((e,t)=>Number(t.status===`running`)-Number(e.status===`running`));let o=a.slice(0,5),s=a.length-o.length+(r?.subagents?.omitted??0)+(r?.workflows?.omitted??0)+(r?.[`background-terminals`]?.omitted??0);return!o.length&&!s?null:(0,V.jsxs)(`div`,{className:`activity-bar`,role:`status`,"aria-label":`Runtime activity`,children:[o.map(({key:e,...t})=>(0,V.jsx)(_l,{...t},e)),s>0&&(0,V.jsxs)(`span`,{className:`activity-chip more`,children:[`+`,s]})]})}var yl=`data-astryx-live-region`,bl=`position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;inset-block-start:0;inset-inline-start:0;pointer-events:none;user-select:none;`,xl=2e3,Sl={polite:null,assertive:null};function Cl(e){let t=Sl[e];t!=null&&(clearTimeout(t),Sl[e]=null)}function wl(e,t){Cl(e),Sl[e]=setTimeout(()=>{Sl[e]=null,t.textContent=``},xl)}var Tl=null;function El(e){let t=document.createElement(`div`);return t.setAttribute(yl,e),t.setAttribute(`aria-live`,e),t.setAttribute(`aria-atomic`,`true`),t.setAttribute(`role`,e===`assertive`?`alert`:`status`),t.style.cssText=bl,document.body.appendChild(t),t}function Dl(){return typeof document>`u`?null:Tl?(Tl.polite.isConnected||document.body.appendChild(Tl.polite),Tl.assertive.isConnected||document.body.appendChild(Tl.assertive),Tl):(Tl={polite:El(`polite`),assertive:El(`assertive`)},Tl)}function Ol(e,t){let n=Dl();if(!n)return;let r=t===`assertive`?n.assertive:n.polite;r.textContent=``,requestAnimationFrame(()=>{r.textContent=e}),wl(t,r)}function kl(e){if(Cl(e),!Tl)return;let t=e===`assertive`?Tl.assertive:Tl.polite;t.textContent=``}function Al(){return(0,w.useCallback)((e,t=`polite`)=>{if(!e){kl(t);return}Ol(e,t)},[])}var jl={settle(){},release(){}};function Ml(e){if(typeof window>`u`||typeof document>`u`)return jl;let t=document.documentElement,n=t.clientWidth;if(n===0)return jl;let r=t.style.scrollbarGutter,i=e.style.paddingRight,a=e.getBoundingClientRect().width,o=!1,s=!1,c=!1;return window.innerWidth>n&&(t.style.scrollbarGutter=`stable`,o=!0),{settle(){if(c)return;c=!0;let t=e.getBoundingClientRect().width-a;if(t<=0)return;let n=Number.parseFloat(window.getComputedStyle(e).paddingRight)||0;e.style.paddingRight=`${n+t}px`,s=!0},release(){s&&=(e.style.paddingRight=i,!1),o&&=(t.style.scrollbarGutter=r,!1)}}}var Nl=0,Pl=null;function Fl(e){(0,w.useEffect)(()=>{if(!e)return;let{body:t}=document;if(Nl===0){let e=window.scrollX,n=window.scrollY,r=Ml(t);Pl={scrollX:e,scrollY:n,overflow:t.style.overflow,position:t.style.position,top:t.style.top,left:t.style.left,right:t.style.right,gutter:r},t.style.overflow=`hidden`,t.style.position=`fixed`,t.style.top=`-${n}px`,t.style.left=`0`,t.style.right=`0`,r.settle()}return Nl+=1,()=>{if(--Nl,Nl!==0||Pl==null)return;let e=Pl;Pl=null,t.style.overflow=e.overflow,t.style.position=e.position,t.style.top=e.top,t.style.left=e.left,t.style.right=e.right,e.gutter.release(),window.scrollTo(e.scrollX,e.scrollY)}},[e])}var Il=!1;typeof window<`u`&&requestAnimationFrame(()=>{Il=!0});var Ll={slideDown:{kKVMdj:`x1srr2gu x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},slideUp:{kKVMdj:`x1dvww92 x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},fadeIn:{kKVMdj:`xqcmdr3 x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},scaleIn:{kKVMdj:`x97zbip x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0}};function Rl(e=`slideDown`){let[t]=(0,w.useState)(()=>Il);return t?Ll[e]:null}var zl=new Set([`text`,`password`,`email`,`number`,`search`,`tel`,`url`,`date`,`datetime-local`,`month`,`time`,`week`]),Bl=new Set([`true`,`menu`,`listbox`,`tree`,`grid`,`dialog`]);function K(e){if(e.getAttribute(`role`)===`combobox`)return!0;let t=e.getAttribute(`aria-haspopup`);return t!=null&&Bl.has(t)}function q({containerRef:e,inputRef:t,disabled:n=!1}){return mc({containerRef:e,interactiveRef:t,onClick:(0,w.useCallback)(()=>{let e=t.current;e!=null&&(e instanceof HTMLElement&&K(e)?e.click():e instanceof HTMLInputElement&&zl.has(e.type)||e instanceof HTMLTextAreaElement?e.focus():e instanceof HTMLElement?e.click():`focus`in e&&e.focus())},[t]),disabled:n})}var Vl=(0,w.createContext)({direction:`vertical`});Vl.displayName=`FormLayoutContext`;var Hl={label:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`xzye2dw`,kMv6JI:`x9ynric`,kGuDYH:`xcr08ib`,kLWn49:`x1kq96og`,k63SB2:`x1e4wzip`,kMwMTN:`xv1l7n4`,kkrTdU:`x1ypdohk x16khyan`,$$css:!0},labelDisabled:{kMwMTN:`xnbbluu`,kkrTdU:`xt0e3qv`,$$css:!0},srOnly:{ksu8eU:`xng3xce`,kMcinP:`xzpqnlu`,kZKoxP:`xjm9jq1`,kLqNvP:`x1o0tod`,kogj98:`xkdpibf`,kVQacm:`xb3r6kr`,kmVPX3:`x1717udv`,kfzvcC:`x47corl`,kVAEAm:`x10l6tqk`,k87sOh:`x13vifvy`,kfSwDN:`x87ps6o`,khDVqt:`xuxw1ft`,kzqmXN:`x1i1rx1s`,$$css:!0}};function Ul({label:e,inputID:t,labelID:n,isGroupLabel:r=!1,isLabelHidden:i=!1,isDisabled:a=!1,isOptional:o=!1,isRequired:s=!1,labelIcon:c,labelTooltip:l,description:u,descriptionID:d,className:f,style:p,xstyle:m,ref:h,...g}){let _=Go(),{defaultOptionality:v}=(0,w.use)(Vl),y=o&&v!==`optional`?_(`@astryx.field.optional`):s&&v!==`required`?_(`@astryx.field.required`):null,b=r?`span`:`label`,x=!r&&t!=null,S=(0,w.useRef)(null),C=q({containerRef:S,inputRef:(0,w.useMemo)(()=>({get current(){return t==null?null:S.current?.ownerDocument.getElementById(t)??null},set current(e){}}),[t]),disabled:!x}),T=(0,V.jsxs)(V.Fragment,{children:[c&&sc(c,{size:`sm`,color:`inherit`}),e,y&&(0,V.jsxs)(`span`,{className:`x1sodnla x141an7d x1ltkj2j xv1l7n4`,children:[(0,V.jsx)(`span`,{"aria-hidden":`true`,children:` ∙ `}),y]}),l&&(0,V.jsx)(cl,{content:l,placement:`above`,children:(0,V.jsx)(ac,{icon:`info`,size:`sm`,color:`inherit`})})]});return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(b,{ref:h,id:n,htmlFor:r?void 0:t,...g,...H(ri(`field-label`),bn(Hl.label,a&&Hl.labelDisabled,i&&Hl.srOnly,m),f,p),children:T}),u&&(0,V.jsx)(`span`,{ref:x?S:void 0,id:d,...x?C:void 0,...{0:{className:`x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4`},2:{className:`x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4 x1ypdohk x16khyan`},1:{className:`x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4 xng3xce xzpqnlu xjm9jq1 x1o0tod xkdpibf xb3r6kr x1717udv x47corl x10l6tqk x13vifvy x87ps6o xuxw1ft x1i1rx1s`},3:{className:`x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4 x1ypdohk x16khyan xng3xce xzpqnlu xjm9jq1 x1o0tod xkdpibf xb3r6kr x1717udv x47corl x10l6tqk x13vifvy x87ps6o xuxw1ft x1i1rx1s`}}[!!x<<1|!!i<<0],children:u})]})}Ul.displayName=`FieldLabel`;var Wl={warning:`warning`,error:`error`,success:`success`},Gl={base:{kMv6JI:`x9ynric`,kGuDYH:`x141an7d`,kLWn49:`x1ltkj2j`,$$css:!0},attached:{keoZOQ:`x1c40v9y`,kLKAdn:`x1ak3mig`,kGO01o:`x1wesfrj`,kg3NbH:`xf314gf`,kVL7Gh:`xquck67`,kT0f0o:`x14i3lts`,$$css:!0},detached:{keoZOQ:`xcsaf9d`,k8WAf4:`xce4md1`,kg3NbH:`xf314gf`,kaIpWk:`xh6dtrn`,$$css:!0}},Kl={warning:{kWkggS:`x24i8r5`,kMwMTN:`xdhq94a`,$$css:!0},error:{kWkggS:`x1pritpl`,kMwMTN:`x1joocv1`,$$css:!0},success:{kWkggS:`xu13z74`,kMwMTN:`xltfdvo`,$$css:!0}};function ql({ref:e,type:t,message:n,id:r,variant:i=`attached`,xstyle:a,className:o,style:s,...c}){let l=Rl(`slideDown`),u=Al();return(0,w.useEffect)(()=>{n&&u(n,t===`error`?`assertive`:`polite`)},[u,n,t]),(0,V.jsx)(`div`,{ref:e,id:r,...c,...H(ri(`field-status`,{type:t,variant:i}),bn(Gl.base,l,i===`attached`?Gl.attached:Gl.detached,Kl[t],a),o,s),children:i===`detached`?(0,V.jsxs)(`span`,{className:`x78zum5 x1cy8zhl xzye2dw`,children:[(0,V.jsx)(`span`,{className:`x3nfvp2 x6s0dn4 x14o5nre x2lah0s`,children:(0,V.jsx)(ac,{icon:Wl[t],size:`sm`,color:`inherit`,...ri(`field-status-icon`,{type:t})})}),(0,V.jsx)(`span`,{children:n})]}):n})}ql.displayName=`FieldStatus`;var Jl={container:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,$$css:!0},containerGap:{kOIVth:`xzye2dw`,$$css:!0},horizontalLabels:{k1xSpc:`xjp7ctv`,$$css:!0}},Yl={width:e=>[{kzqmXN:e==null?e:`x5lhr3w`,$$css:!0},{"--x-width":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}]};function Xl({label:e,isLabelHidden:t=!1,description:n,inputID:r,labelID:i,isGroupLabel:a=!1,descriptionID:o,isOptional:s=!1,isRequired:c=!1,isDisabled:l=!1,labelIcon:u,status:d,labelTooltip:f,statusVariant:p=`attached`,width:m,xstyle:h,children:g,className:_,style:v,ref:y,...b}){let{direction:x}=(0,w.use)(Vl),S=x===`horizontal-labels`,C=o??(n?`${r}-desc`:void 0),T=d?.messageID??(d?.message?`${r}-status`:void 0);ts(`Field`,`isOptional and isRequired are mutually exclusive. isOptional takes precedence.`,s&&c);let E=(0,V.jsx)(Ul,{label:e,inputID:r,labelID:i,isGroupLabel:a,isLabelHidden:t,isDisabled:l,isOptional:s,isRequired:c,labelIcon:u,labelTooltip:f,description:S?void 0:n,descriptionID:S?void 0:C}),D=d?.message&&p!==`tooltip`?(0,V.jsx)(ql,{type:d.type,message:d.message,id:T,variant:p}):null;return S?(0,V.jsxs)(`div`,{ref:y,...H(ri(`field`,{layout:`horizontal-labels`}),bn(Jl.horizontalLabels,h),_,v),...b,children:[(0,V.jsx)(`div`,{className:`x1enrzb7`,children:E}),(0,V.jsxs)(`div`,{className:`x78zum5 xdt5ytf xc8icb0`,children:[n&&(0,V.jsx)(Yi,{type:`supporting`,display:`block`,id:C,children:n}),g,D]})]}):(0,V.jsxs)(`div`,{ref:y,...H(ri(`field`),bn(Jl.container,!t&&Jl.containerGap,m!=null&&Yl.width(m),h),_,v),...b,children:[E,p===`attached`?(0,V.jsxs)(`div`,{className:`x78zum5 xdt5ytf xc8icb0`,children:[g,D]}):(0,V.jsxs)(V.Fragment,{children:[g,D]})]})}Xl.displayName=`Field`;var Zl={base:{kB7OPa:`x9f619`,kVAEAm:`x1n2onr6`,kY2c9j:`x1vjfegm`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x1txdalj`,k8WAf4:`xu0wf1k`,kg3NbH:`xf314gf`,kMzoRj:`x1litavf`,ksu8eU:`x1y0btm7`,kVAM5u:`xvy26l8 x6q1khz`,"--_field-radius":`x1832zxr`,kaIpWk:`xvdfih8`,kWkggS:`x10xzikg`,k1ekBW:`x12zzom9`,kIyJzY:`xuedmi6 x12w9bfk`,kAMwcw:`xlr8y92`,kGVxlE:`x1gnnqk1 x1xqjsvb xuihb5h`,kI3sdo:`x1a2a7pz`,$$css:!0},disabled:{kkrTdU:`xt0e3qv`,kSiTet:`xbyyjgo`,kVAM5u:`xvy26l8`,kGVxlE:`x1gnnqk1`,$$css:!0}};function Ql({isRequired:e=!1,isOptional:t=!1}){let{defaultOptionality:n}=(0,w.use)(Vl);return!t&&(e||n===`required`)}var $l={triggerContainer:{kVAEAm:`x1n2onr6`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kjj79g:`x1qughib`,kOIVth:`x1txdalj`,kzqmXN:`xh8yej3`,k8WAf4:`xce4md1`,kg3NbH:`xrrkdod`,kMv6JI:`x9ynric`,kGuDYH:`xcr08ib xdk3u5w`,kLWn49:`x1kq96og`,kMwMTN:`x1tgivj0`,kkrTdU:`x1ypdohk x16khyan`,$$css:!0},trigger:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kjj79g:`x1qughib`,kOIVth:`x1txdalj`,kzQI83:`x1iyjqo2`,kmuXW:`xs83m0k`,kCS8Yb:`x1r8uery`,k7Eaqz:`xeuugli`,kmVPX3:`x1717udv`,kogj98:`x1ghz6dp`,kMzoRj:`xc342km`,ksu8eU:`xng3xce`,kWkggS:`xjbqb8w`,kMv6JI:`xjb2p0i`,kGuDYH:`x1qlqyl8`,kLWn49:`x15bjb6t`,kMwMTN:`x1heor9g`,kkrTdU:`x1ypdohk x16khyan`,kI3sdo:`x1a2a7pz`,kaIpWk:`xh6dtrn`,$$css:!0},triggerText:{kzQI83:`x1iyjqo2`,k7Eaqz:`xeuugli`,kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,k9WMMc:`x1yc453h`,$$css:!0},placeholder:{kMwMTN:`xv1l7n4`,$$css:!0},triggerGhost:{kzqmXN:`x14atkfc`,kMzoRj:`xc342km`,kWkggS:`xjbqb8w`,kGVxlE:`x1gnnqk1 x1s17dad x15ysqaf`,k63SB2:`x1e4wzip`,k1ekBW:`xrafxwg`,k3aq6I:`x3oybdh xk4oym4`,$$css:!0},triggerGhostDisabled:{kKwaWg:`x18o3ruo`,k3aq6I:`x1c071of x1pdlv7q`,$$css:!0},triggerIcon:{kmuXW:`x2lah0s`,$$css:!0},triggerIconRotation:{k1ekBW:`x11xpdln`,kIyJzY:`xuedmi6`,kAMwcw:`xlr8y92`,k3nNDw:`x1g0ag68`,$$css:!0},triggerIconOpen:{k3aq6I:`x19jd1h0`,$$css:!0},popover:{k7Eaqz:`xrzjruh`,$$css:!0},content:{kB7OPa:`x9f619`,kskxy:`xpnbb6b`,kVQacm:`xysyzu8`,kmVPX3:`x1b2ylru`,$$css:!0},sm:{kZKoxP:`x6k0iem`,$$css:!0},md:{kZKoxP:`x1ueg155`,$$css:!0},lg:{kZKoxP:`xssyfek`,$$css:!0},disabled:{kkrTdU:`xt0e3qv`,$$css:!0}};function eu({label:e,value:t,onChange:n,changeAction:r,children:i,triggerLabel:a,placeholder:o,isLabelHidden:s=!1,description:c,isOptional:l=!1,isRequired:u=!1,isDisabled:d=!1,isLoading:f=!1,status:p,statusVariant:m=`attached`,labelTooltip:h,size:g=`md`,variant:_=`input`,startIcon:v,width:y,placement:b=`below`,alignment:x=`start`,handleRef:S,onOpenChange:C,contentXstyle:T,xstyle:E,className:D,style:O,"data-testid":k,onClick:A,...j}){let M=Go(),N=Ql({isRequired:u,isOptional:l}),P=o??M(`@astryx.selector.placeholder`),ee=_===`ghost`&&m===`attached`?`detached`:m,F=(0,w.useId)(),I=(0,w.useId)(),L=(0,w.useId)(),te=(0,w.useId)(),ne=(0,w.useId)(),re=[c?te:null,p?.message?ne:null].filter(e=>e!=null).join(` `)||void 0,R=(0,w.useRef)(null),[z,ie]=(0,w.useTransition)(),[ae,oe]=(0,w.useOptimistic)(t),se=f||z,ce=is({dialogLabel:e,hasCloseButton:!1,hasAutoFocus:!0,surfaceTarget:`complex-selector-popup`,onShow:(0,w.useCallback)(()=>{C?.(!0)},[C]),onHide:(0,w.useCallback)(()=>{R.current?.focus(),C?.(!1)},[C])}),le=ce.isOpen,ue=(0,w.useCallback)(()=>{d||(ce.isOpen?ce.hide():ce.show())},[d,ce]),de=(0,w.useCallback)(()=>{ce.hide()},[ce]);(0,w.useImperativeHandle)(S,()=>({open:()=>{d||ce.show()},close:()=>ce.hide(),toggle:()=>{d||(ce.isOpen?ce.hide():ce.show())},isOpen:()=>ce.isOpen}),[d,ce]);let fe=(0,w.useCallback)(e=>{n?.(e),r&&ie(async()=>{oe(e),await r(e)})},[r,n,oe,ie]),pe=a??P,me=sc(v,{size:`sm`,color:`secondary`}),he=(0,V.jsx)(`div`,{id:L,...bn($l.content,T),children:i(ae,fe,de,{isOpen:le,isBusy:se,triggerId:F,contentId:L})}),ge=(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{ref:ce.triggerRef,"data-testid":k,...j,onClick:U(A,ue),...H(ri(`complex-selector`,{variant:_,size:g,status:p?.type??null}),bn(Zl.base,$l.triggerContainer,$l[g],Li.focusWithin,_===`ghost`&&$l.triggerGhost,_===`ghost`&&ya.backgroundImage,d&&Zl.disabled,_===`ghost`&&d&&$l.triggerGhostDisabled,d&&$l.disabled,a==null&&$l.placeholder,E),D,O),children:[ji(me)&&me,(0,V.jsx)(`button`,{ref:R,id:F,type:`button`,"aria-haspopup":`dialog`,"aria-expanded":le,"aria-controls":L,"aria-describedby":re,"aria-labelledby":I,"aria-required":N?`true`:void 0,"aria-invalid":p?.type===`error`?`true`:void 0,"aria-busy":se||void 0,disabled:d,onKeyDown:e=>{e.key===`ArrowDown`&&!le&&!d&&(e.preventDefault(),ce.show())},className:`x78zum5 x6s0dn4 x1qughib x1txdalj x1iyjqo2 xs83m0k x1r8uery xeuugli x1717udv x1ghz6dp xc342km xng3xce xjbqb8w xjb2p0i x1qlqyl8 x15bjb6t x1heor9g x1ypdohk x16khyan x1a2a7pz xh6dtrn`,children:(0,V.jsx)(`span`,{className:`x1iyjqo2 xeuugli xb3r6kr xlyipyv xuxw1ft x1yc453h`,children:pe})}),se&&(0,V.jsx)(la,{size:`sm`}),(0,V.jsx)(ac,{icon:`chevronDown`,size:`sm`,color:`secondary`,xstyle:[$l.triggerIcon,$l.triggerIconRotation,le&&$l.triggerIconOpen],...ri(`complex-selector-indicator-icon`,{state:le?`expanded`:`collapsed`})})]}),ce.render(he,{placement:b,alignment:x,offset:In[`--spacing-1`],xstyle:[$l.popover,Gr[b]]})]});return(0,V.jsx)(Xl,{label:e,isLabelHidden:s,description:c,inputID:F,descriptionID:c?te:void 0,labelID:I,isOptional:l,isRequired:u,isDisabled:d,status:p?{type:p.type,message:p.message,messageID:p.message?ne:void 0}:void 0,statusVariant:ee,labelTooltip:h,width:y,children:ge})}eu.displayName=`ComplexSelector`;function tu(e){let t=`${e.provider}/${e.id}`;return e.label===t?t:`${e.label} (${t})`}var nu=250;function ru(e){let{t}=sn(),[n,r]=(0,w.useState)(``),i=(0,w.useRef)([]),a=e.draftModel??e.currentModel,o=e.snapshot?.models??[],s=(e.snapshot?.truncation.modelsOmitted??0)>0,c=n.trim(),l=e.modelSearch.query===c,u=!!c&&(!l||e.modelSearch.status===`loading`),d=c?l?e.modelSearch.models:[]:o,f=e.actions.searchModels,p=e.snapshot?.generatedAt;(0,w.useEffect)(()=>{if(!c||!p)return;let e=window.setTimeout(()=>{f(c)},nu);return()=>window.clearTimeout(e)},[c,f,p]);let m=()=>{r(``),e.actions.clearModelSearch()},h=(t,n)=>{e.actions.selectModel(`${t.provider}/${t.id}`),n()},g=a?tu(a):t(`noModels`),_=a?g:t(`selectModel`),v=e.sessionSwitching||e.modelSelectionPending||e.promptAdmissionPending||!e.workspaceDraft&&!!e.snapshot?.selectedSession&&e.snapshot?.selectedSession?.id!==e.snapshot?.currentSessionId||e.liveRunning||!o.length&&!s;return(0,V.jsx)(eu,{className:`model-selector model-picker`,label:_,isLabelHidden:!0,value:a?`${a.provider}/${a.id}`:``,triggerLabel:(0,V.jsx)(`span`,{className:`model-picker-label`,children:g}),placeholder:t(`noModels`),variant:`ghost`,size:`sm`,placement:`above`,alignment:`end`,isDisabled:v,isLoading:e.modelSelectionPending,onOpenChange:e=>{e||m()},children:(f,p,m)=>(0,V.jsxs)(`div`,{className:`model-search-panel ${s?`searchable`:``}`,children:[s&&(0,V.jsx)(`p`,{className:`model-search-truncation`,role:`status`,children:t(`modelsTruncated`,{shown:o.length,omitted:e.snapshot?.truncation.modelsOmitted??0})}),s&&(0,V.jsxs)(`label`,{className:`model-search-input`,children:[(0,V.jsx)(De,{"aria-hidden":`true`}),(0,V.jsx)(`span`,{className:`sr-only`,children:t(`searchModels`)}),(0,V.jsx)(`input`,{value:n,placeholder:t(`searchModelsPlaceholder`),onChange:t=>{let n=t.currentTarget.value;r(n),n.trim()||e.actions.clearModelSearch()},onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),m())}})]}),u&&(0,V.jsx)(`p`,{className:`model-search-status`,role:`status`,children:t(`searchingModels`)}),c&&l&&e.modelSearch.status===`error`&&(0,V.jsx)(`p`,{className:`model-search-status model-search-error`,role:`alert`,children:e.modelSearch.error??t(`modelSearchFailed`)}),c&&l&&e.modelSearch.status===`ready`&&e.modelSearch.totalMatches===0&&(0,V.jsx)(`p`,{className:`model-search-status`,role:`status`,children:t(`noMatchingModels`)}),c&&l&&e.modelSearch.status===`ready`&&e.modelSearch.matchesOmitted>0&&(0,V.jsx)(`p`,{className:`model-search-status`,role:`status`,children:t(`modelSearchTruncated`,{omitted:e.modelSearch.matchesOmitted})}),(0,V.jsx)(`div`,{className:`model-search-options`,role:`listbox`,"aria-label":t(`selectModel`),"aria-busy":u,children:d.map((e,t)=>{let n=a?.provider===e.provider&&a.id===e.id;return(0,V.jsxs)(`button`,{className:`model-search-option`,type:`button`,role:`option`,"aria-selected":n,ref:e=>{i.current[t]=e},onClick:()=>h(e,m),onKeyDownCapture:e=>{let n=e.key===`ArrowDown`?Math.min(t+1,d.length-1):e.key===`ArrowUp`?Math.max(t-1,0):e.key===`Home`?0:e.key===`End`?d.length-1:null;n!==null&&n!==t&&(e.preventDefault(),e.stopPropagation(),i.current[n]?.focus())},children:[(0,V.jsx)(`span`,{className:`model-menu-item-label`,children:tu(e)}),n&&(0,V.jsx)(L,{"aria-hidden":`true`})]},`${e.provider}/${e.id}`)})})]})})}var iu=`openpi-slash-command-list`;function au(e){return`openpi-slash-command-${e}`}function ou(e,t){let n=t.trim().toLocaleLowerCase(),r=n?e.filter(e=>[e.name,e.description,e.source].some(e=>e?.toLocaleLowerCase().includes(n))):[...e];return[...r.filter(e=>e.availability===`available`),...r.filter(e=>e.availability===`unsupported`)]}function su({source:e}){return e===`extension`?(0,V.jsx)(Te,{}):e===`prompt`?(0,V.jsx)(me,{}):(0,V.jsx)(Ae,{})}function cu(e){let{t}=sn(),n=(0,w.useRef)(null);(0,w.useLayoutEffect)(()=>{let t=n.current,r=t?.parentElement;if(!t||!r||!e.preferBelow)return;let i=()=>{let e=window.visualViewport,n=e?.offsetTop??0,i=e?.height??window.innerHeight,a=n+i,o=r.getBoundingClientRect(),s=Math.max(0,a-o.bottom-8-12),c=Math.max(0,o.top-n-8-12),l=s>=Math.min(t.scrollHeight,224,i*.32)||s>=c?`below`:`above`,u=l===`below`?s:c;t.dataset.placement=l,t.style.setProperty(`--slash-command-available-height`,`${Math.floor(u)}px`)};i();let a=new ResizeObserver(i);return a.observe(t),a.observe(r),window.addEventListener(`resize`,i),window.visualViewport?.addEventListener(`resize`,i),window.visualViewport?.addEventListener(`scroll`,i),()=>{a.disconnect(),window.removeEventListener(`resize`,i),window.visualViewport?.removeEventListener(`resize`,i),window.visualViewport?.removeEventListener(`scroll`,i)}},[e.preferBelow]);let r=e.commands[e.activeIndex];return(0,w.useEffect)(()=>{r&&(n.current?.querySelector(`[data-command-index="${e.activeIndex}"]`))?.scrollIntoView?.({block:`nearest`,inline:`nearest`})},[r,e.activeIndex]),e.draft?(0,V.jsx)(`div`,{ref:n,className:`slash-command-menu slash-command-state`,role:`status`,children:t(`commandSessionRequired`)}):e.commandDiscovery.status===`idle`||e.commandDiscovery.status===`loading`?(0,V.jsx)(`div`,{ref:n,className:`slash-command-menu slash-command-state`,role:`status`,children:t(`commandsLoading`)}):e.commandDiscovery.status===`error`?(0,V.jsxs)(`div`,{ref:n,className:`slash-command-menu slash-command-state`,role:`alert`,children:[(0,V.jsx)(`strong`,{children:t(`commandsUnavailable`)}),(0,V.jsx)(`span`,{children:e.commandDiscovery.error})]}):e.commandDiscovery.status===`ready`&&e.commands.length===0?(0,V.jsx)(`div`,{ref:n,className:`slash-command-menu slash-command-state`,role:`status`,children:t(`commandsNoMatch`)}):(0,V.jsxs)(`div`,{ref:n,className:`slash-command-menu`,children:[(0,V.jsx)(`div`,{id:iu,role:`listbox`,"aria-label":t(`commands`),children:e.commands.map((n,r)=>{let i=n.availability===`unsupported`;return(0,V.jsxs)(`button`,{id:au(r),"data-command-index":r,className:`slash-command-option`,type:`button`,role:`option`,"aria-selected":r===e.activeIndex,"aria-disabled":i,disabled:i,onMouseEnter:()=>e.onSelect(r),onMouseDown:e=>e.preventDefault(),onClick:()=>e.onComplete(n),children:[(0,V.jsx)(`span`,{className:`slash-command-icon`,children:(0,V.jsx)(su,{source:n.source})}),(0,V.jsxs)(`span`,{className:`slash-command-copy`,children:[(0,V.jsxs)(`span`,{className:`slash-command-heading`,children:[(0,V.jsxs)(`strong`,{children:[`/`,n.name]}),(0,V.jsx)(`span`,{children:t(`commandSource_${n.source}`)})]}),n.description&&(0,V.jsx)(`span`,{children:n.description})]}),(0,V.jsx)(`span`,{className:`slash-command-support`,children:i?t(`commandUnsupported`):n.argumentHint?t(`commandAcceptsArguments`):null})]},`${n.source}:${n.name}`)})}),e.commandDiscovery.commandsOmitted>0&&(0,V.jsx)(`div`,{className:`slash-command-bounded`,role:`status`,children:t(`commandsBounded`,{count:e.commandDiscovery.commandsOmitted})})]})}function lu(e){let{t}=sn(),[n,r]=(0,w.useState)(``),i=e.modelSearch??{query:``,status:`idle`,models:[],totalMatches:0,matchesOmitted:0,error:null},[a,o]=(0,w.useState)(0),[s,c]=(0,w.useState)(!1),[l,u]=(0,w.useState)(!1),[d,f]=(0,w.useState)(0),p=(0,w.useRef)(null),m=(0,w.useRef)(null),h=(0,w.useRef)(!1),g=e.snapshot?.selectedSession,_=e.selectedPath===void 0?g?.path??null:e.selectedPath,v=g?.cwd===e.selectedWorkspace?_:null,y=(e.workspaceDraft?null:v)??(e.selectedWorkspace?`new:${e.selectedWorkspace}`:`none`),b=(0,w.useRef)(y),x=(0,w.useRef)(0),S=(0,w.useRef)(!1),C=(0,w.useRef)(null),T=!!(!e.workspaceDraft&&g?.id&&g.id===e.snapshot?.currentSessionId),E=!!(e.selectedWorkspace&&(e.workspaceDraft||!g&&!e.snapshot?.currentSessionId)),D=T||E,O=!e.workspaceDraft&&(e.snapshot?.runtime.status===`running`||e.liveRunning),k=T&&O&&!!(e.activeTurn??e.snapshot?.runtime.activeTurn),A=e.sessionSwitching||!D&&!!e.selectedWorkspace,j=e.commandDiscovery??{sessionId:null,status:`idle`,commands:[],totalAvailable:0,commandsOmitted:0,error:null},M=/^\/[^\s/]*$/u.test(n)&&a>0,N=s&&M&&!l&&D&&!e.sessionSwitching,P=T?g?.id:null,F=M?n.slice(1):``,I=(0,w.useMemo)(()=>ou(j.commands,F),[F,j.commands]),te=N&&!e.workspaceDraft&&j.status===`ready`&&I.length>0;(0,w.useEffect)(()=>{let t=N&&!h.current;h.current=N,!(!N||e.workspaceDraft||!P||j.status!==`idle`&&!(t&&j.status===`error`))&&e.actions.discoverCommands()},[j.status,N,e.actions,e.workspaceDraft,P]),(0,w.useEffect)(()=>{let e=I.findIndex(e=>e.availability===`available`);f(e>=0?e:0)},[I]),(0,w.useEffect)(()=>{let t=e.promptAdmissionRecovery,n=t?.commandId??null;m.current!==n&&(m.current=n,t&&r(e=>e||t.content))},[e.promptAdmissionRecovery]),(0,w.useEffect)(()=>{let t=e.promptAdmissionResolution;t&&(n.trim()===t.content&&(r(``),p.current&&(p.current.style.height=`auto`,p.current.style.overflowY=`hidden`)),e.actions.acknowledgePromptAdmissionResolution(t.commandId))},[n,e.actions,e.promptAdmissionResolution]),(0,w.useEffect)(()=>{let t=b.current;if(t===y)return;b.current=y;let n=C.current;if(!e.workspaceDraft&&(S.current||n?.canTransferToCreatedSession&&n.scope===t)&&v&&e.snapshot?.selectedSession?.path===v&&e.snapshot?.selectedSession?.cwd===e.selectedWorkspace){n?.canTransferToCreatedSession&&(n.scope=y),S.current=!1;return}if(e.workspaceDraft&&e.selectedWorkspace&&y===`new:${e.selectedWorkspace}`&&e.snapshot?.selectedSession?.cwd===e.selectedWorkspace){S.current=!0;return}x.current+=1,r(``),n?.scope===t&&(n.canTransferToCreatedSession=!1)},[y,e.snapshot?.selectedSession?.path,e.snapshot?.selectedSession?.cwd,e.selectedWorkspace,e.workspaceDraft,v]);let ne=e=>{e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,220)}px`,e.style.overflowY=e.scrollHeight>220?`auto`:`hidden`},re=async t=>{if(C.current)return;if(!e.selectedWorkspace){await e.actions.chooseWorkspace();return}let i={revision:x.current,scope:b.current,canTransferToCreatedSession:E};C.current=i;try{await t(n)&&C.current===i&&b.current===i.scope&&x.current===i.revision&&(x.current+=1,r(``),p.current&&(p.current.style.height=`auto`,p.current.style.overflowY=`hidden`))}finally{C.current===i&&(C.current=null)}},R=async t=>{t?.preventDefault(),await re(e.actions.sendPrompt)},z=()=>re(e.actions.sendPromptAsNew),ie=e=>{if(e.availability!==`available`)return;let t=`/${e.name} `;x.current+=1,r(t),o(t.length),u(!0),queueMicrotask(()=>{p.current?.focus(),p.current?.setSelectionRange(t.length,t.length)})},ae=e=>{if(!I.length)return;let t=d;for(let n=0;n({id:t.path,label:t.name,icon:(0,V.jsx)(he,{}),endContent:t.path===e.selectedWorkspace?(0,V.jsx)(L,{}):void 0,onClick:()=>e.actions.setWorkspace(t.path)})),{type:`divider`},{id:`add`,label:t(`addWorkspaceMenu`),icon:(0,V.jsx)(we,{}),onClick:()=>void e.actions.chooseWorkspace()}],se=e.draftModel??e.snapshot?.models.find(e=>e.current)??e.snapshot?.models[0],ce=e.selectedWorkspace?e.landing?t(`promptTask`):t(T?`promptMessage`:`promptReadonly`):t(`promptStart`),le=e.snapshot?.thinking,ue=le?.level??null,de=e.thinkingPendingLevel??null,fe=de??ue,pe=le?.supported??!1,me=le?!le.available.includes(ue??``):!1,ge=(le?.available??[]).map(t=>({id:t,label:t,endContent:t===fe?(0,V.jsx)(L,{}):void 0,onClick:()=>void e.actions.selectThinking(t)})),_e=le?pe?e.workspaceDraft?`thinkingDraftHint`:T?O?`thinkingLockedRunning`:e.modelSelectionPending?`thinkingModelPendingHint`:null:`thinkingInactiveHint`:`thinkingUnsupportedHint`:null,ve=pe?`${t(`thinkingLevel`)}: ${fe??t(`unknownState`)}`:t(`thinkingUnsupported`),ye=le?[...me?[{id:`thinking-level-mismatch`,label:t(`thinkingLevelMismatch`),isDisabled:!0},{type:`divider`}]:[],{type:`section`,id:`thinking-level`,title:t(`thinkingLevel`),items:ge}]:[],be=e.thinkingPendingLevel===null?e.workspaceDraft?t(`enterHint`):e.turnCancellationPending?t(`stoppingTurn`):e.turnTerminalStatus===`cancelled`?t(`stoppedTurn`):e.pendingFollowUpsReceipt===null?t(D?O?`queuedHint`:`enterHint`:`activeOnlyHint`):e.pendingFollowUpsReceipt>0?t(`pendingFollowUpsHint`,{count:e.pendingFollowUpsReceipt}):t(`acceptedHint`):t(`thinkingPendingHint`);return(0,V.jsxs)(`div`,{className:`composer-dock`,children:[T&&(0,V.jsx)(vl,{snapshot:e.snapshot,onInspectTerminal:e.onInspect}),e.landing&&(0,V.jsx)(`div`,{className:`workspace-picker-row`,children:(0,V.jsx)(il,{className:`workspace-picker-menu`,button:{label:e.selectedWorkspace?ul(e.selectedWorkspace):t(`selectWorkspace`),icon:(0,V.jsx)(he,{}),size:`md`,variant:`ghost`,className:`workspace-picker`},items:oe,menuWidth:240,placement:`above`,alignment:`start`,hasChevron:!0})}),e.promptAdmissionRecovery&&(0,V.jsxs)(`section`,{className:`prompt-recovery`,role:`alert`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`strong`,{children:t(`promptAdmissionUnknown`)}),(0,V.jsx)(`span`,{children:e.promptAdmissionRecovery.phase===`checking`?t(`promptAdmissionCheckingDetail`):e.promptAdmissionRecovery.phase===`verification-failed`?t(`promptAdmissionVerificationFailedDetail`):t(`promptAdmissionUnknownDetail`)})]}),(0,V.jsxs)(`div`,{className:`prompt-recovery-actions`,children:[(0,V.jsx)(`button`,{type:`button`,disabled:e.promptAdmissionRecovery.phase===`submitting`,onClick:e.actions.abandonPromptAdmission,children:t(`abandonAdmission`)}),e.promptAdmissionRecovery.phase===`verification-failed`&&(0,V.jsx)(`button`,{type:`button`,onClick:()=>void e.actions.checkPromptAdmissionRecovery(),children:t(`retryAdmissionCheck`)}),(0,V.jsx)(`button`,{type:`button`,className:`primary`,disabled:e.promptAdmissionRecovery.phase!==`ready`||!n.trim(),onClick:()=>void z(),children:e.promptAdmissionRecovery.phase===`submitting`?t(`sendingAsNew`):t(`sendAsNew`)})]})]}),(0,V.jsxs)(`form`,{className:`composer ${e.selectedWorkspace?``:`dormant`}`,onSubmit:e=>void R(e),children:[!e.selectedWorkspace&&(0,V.jsx)(`button`,{className:`dormant-overlay`,type:`button`,"aria-label":t(`selectWorkspace`),onClick:()=>void e.actions.chooseWorkspace()}),(0,V.jsx)(`textarea`,{ref:p,value:n,rows:1,disabled:A,readOnly:!e.selectedWorkspace,"aria-label":t(`describeTask`),"aria-autocomplete":`list`,"aria-controls":te?iu:void 0,"aria-activedescendant":te&&I[d]?au(d):void 0,placeholder:ce,onChange:e=>{x.current+=1,r(e.target.value),o(e.target.selectionStart),u(!1),ne(e.currentTarget)},onClick:e=>o(e.currentTarget.selectionStart),onSelect:e=>o(e.currentTarget.selectionStart),onFocus:()=>{c(!0),u(!1)},onBlur:()=>c(!1),onKeyDown:e=>{if(N){if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault(),ae(e.key===`ArrowDown`?1:-1);return}if(e.key===`Escape`){e.preventDefault(),u(!0);return}if((e.key===`Tab`||e.key===`Enter`&&!e.shiftKey)&&!e.nativeEvent.isComposing){let t=I[d];if(t){e.preventDefault(),ie(t);return}}}e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),R())}}),N&&(0,V.jsx)(cu,{activeIndex:d,commandDiscovery:j,commands:I,draft:!!e.workspaceDraft,preferBelow:e.landing,onComplete:ie,onSelect:f}),(0,V.jsxs)(`div`,{className:`composer-toolbar`,children:[e.onInspect&&(0,V.jsx)(`button`,{type:`button`,className:`icon-button`,"aria-label":t(`runtimeStatus`),title:t(`runtimeStatus`),disabled:!T||e.sessionSwitching,onClick:()=>e.onInspect?.(),children:(0,V.jsx)(ke,{})}),(0,V.jsx)(`div`,{className:`model-picker-wrap`,children:(0,V.jsx)(ru,{snapshot:e.snapshot,currentModel:se,draftModel:e.draftModel,modelSearch:i,modelSelectionPending:!!e.modelSelectionPending,promptAdmissionPending:e.promptAdmissionPending,sessionSwitching:e.sessionSwitching,liveRunning:O,workspaceDraft:!!e.workspaceDraft,actions:e.actions})}),le&&(0,V.jsx)(`div`,{className:`thinking-picker-wrap`,"data-level":ue??`none`,"data-pending":de!==null,"data-warning":me,title:_e?t(_e):void 0,children:(0,V.jsx)(il,{className:`thinking-menu`,button:{label:ve,icon:(0,V.jsx)(ee,{}),isIconOnly:!0,size:`sm`,variant:`ghost`,className:`thinking-picker`,isDisabled:_e!==null||ge.length===0},items:ye,menuWidth:220,placement:`above`,alignment:`end`,hasChevron:!1})}),k?(0,V.jsx)(cl,{content:t(`stopTurn`),placement:`above`,children:(0,V.jsx)(`button`,{className:`send-button`,type:`button`,"aria-label":t(`stopTurn`),disabled:e.turnCancellationPending||e.sessionSwitching,onClick:()=>void e.actions.cancelActiveTurn(),children:(0,V.jsx)(Me,{})})}):(0,V.jsx)(cl,{content:t(`send`),placement:`above`,children:(0,V.jsx)(`button`,{className:`send-button`,type:`submit`,"aria-label":t(`send`),disabled:e.sessionSwitching||e.modelSelectionPending||e.thinkingPendingLevel!==null||!D||!e.selectedWorkspace||e.promptAdmissionPending||!!e.promptAdmissionRecovery||!!e.promptAdmissionResolution||!n.trim(),children:(0,V.jsx)(Oe,{})})})]}),(0,V.jsx)(`div`,{className:`composer-hint`,"aria-live":`polite`,children:be})]})]})}var uu={container:{kB7OPa:`x9f619`,kZCmMZ:`x1c35znw`,kwRFfy:`x64h4k7`,kLKAdn:`x14m0hsi`,kGO01o:`xc1wllq`,$$css:!0}},du=In[`--spacing-4`],fu=`var(--astryx-card-padding, ${du})`,pu=`var(--astryx-card-padding-inline, ${fu})`;`${pu}`,`${pu}`,`${fu}`,`${fu}`;var mu=`var(--_section-padding-propagated, ${`var(--astryx-section-padding, ${du})`})`,hu=`var(--astryx-section-padding-inline, ${mu})`;`${hu}`,`${hu}`,`${mu}`,`${mu}`;var gu=`var(--astryx-dialog-padding, ${du})`,_u=`var(--astryx-dialog-padding-inline, ${gu})`;`${_u}`,`${_u}`,`${gu}`,`${gu}`;var vu={card:{containerPaddingInlineStart:{"--container-padding-inline-start":`xjmlhfd`,$$css:!0},containerPaddingInlineEnd:{"--container-padding-inline-end":`x1ihxwbr`,$$css:!0},containerPaddingBlockStart:{"--container-padding-block-start":`x1rqz8me`,$$css:!0},containerPaddingBlockEnd:{"--container-padding-block-end":`x1omyuck`,$$css:!0},layoutPaddingOuterX:{"--layout-padding-outer-x":`x14rzhog`,$$css:!0},layoutPaddingOuterY:{"--layout-padding-outer-y":`xjej9fs`,$$css:!0},layoutPaddingInnerX:{"--layout-padding-inner-x":`x4poyjn`,$$css:!0},layoutPaddingInnerY:{"--layout-padding-inner-y":`x1u1kw4e`,$$css:!0}},section:{containerPaddingInlineStart:{"--container-padding-inline-start":`x19lemt0`,$$css:!0},containerPaddingInlineEnd:{"--container-padding-inline-end":`xu1wldr`,$$css:!0},containerPaddingBlockStart:{"--container-padding-block-start":`xnw7zt4`,$$css:!0},containerPaddingBlockEnd:{"--container-padding-block-end":`xek4msv`,$$css:!0},layoutPaddingOuterX:{"--layout-padding-outer-x":`x15i0zw9`,$$css:!0},layoutPaddingOuterY:{"--layout-padding-outer-y":`x1vw4zgg`,$$css:!0},layoutPaddingInnerX:{"--layout-padding-inner-x":`x1v3gmnx`,$$css:!0},layoutPaddingInnerY:{"--layout-padding-inner-y":`x15yx5hm`,$$css:!0}},dialog:{containerPaddingInlineStart:{"--container-padding-inline-start":`x1tewnwq`,$$css:!0},containerPaddingInlineEnd:{"--container-padding-inline-end":`x11h1f2o`,$$css:!0},containerPaddingBlockStart:{"--container-padding-block-start":`x1g2kccc`,$$css:!0},containerPaddingBlockEnd:{"--container-padding-block-end":`x1gvthzm`,$$css:!0},layoutPaddingOuterX:{"--layout-padding-outer-x":`x1hsjncj`,$$css:!0},layoutPaddingOuterY:{"--layout-padding-outer-y":`x1pui4bz`,$$css:!0},layoutPaddingInnerX:{"--layout-padding-inner-x":`x2so38`,$$css:!0},layoutPaddingInnerY:{"--layout-padding-inner-y":`xinu7xd`,$$css:!0}}},yu={spacing0:{"--container-padding-inline-start":`x1gu2k80`,$$css:!0},spacing0_5:{"--container-padding-inline-start":`x14ws0sr`,$$css:!0},spacing1:{"--container-padding-inline-start":`x1cvlban`,$$css:!0},spacing1_5:{"--container-padding-inline-start":`x176g23i`,$$css:!0},spacing2:{"--container-padding-inline-start":`x1xlrr2o`,$$css:!0},spacing3:{"--container-padding-inline-start":`xfdwxua`,$$css:!0},spacing4:{"--container-padding-inline-start":`x1dlhslv`,$$css:!0},spacing5:{"--container-padding-inline-start":`x1s81nki`,$$css:!0},spacing6:{"--container-padding-inline-start":`x1ep0dkj`,$$css:!0},spacing7:{"--container-padding-inline-start":`x157xojc`,$$css:!0},spacing8:{"--container-padding-inline-start":`xw1diwv`,$$css:!0},spacing9:{"--container-padding-inline-start":`xraca2a`,$$css:!0},spacing10:{"--container-padding-inline-start":`xserb3f`,$$css:!0},spacing11:{"--container-padding-inline-start":`xziclwo`,$$css:!0},spacing12:{"--container-padding-inline-start":`x1iiwihq`,$$css:!0}},bu={spacing0:{"--container-padding-inline-end":`x91ghl5`,$$css:!0},spacing0_5:{"--container-padding-inline-end":`x1wz3t3y`,$$css:!0},spacing1:{"--container-padding-inline-end":`x2oyxnl`,$$css:!0},spacing1_5:{"--container-padding-inline-end":`xntetml`,$$css:!0},spacing2:{"--container-padding-inline-end":`xcas3b9`,$$css:!0},spacing3:{"--container-padding-inline-end":`xu0ipoa`,$$css:!0},spacing4:{"--container-padding-inline-end":`xs0pscg`,$$css:!0},spacing5:{"--container-padding-inline-end":`xgkj7vj`,$$css:!0},spacing6:{"--container-padding-inline-end":`x94cj42`,$$css:!0},spacing7:{"--container-padding-inline-end":`x11tj35w`,$$css:!0},spacing8:{"--container-padding-inline-end":`x1b9k1pi`,$$css:!0},spacing9:{"--container-padding-inline-end":`x19w02kr`,$$css:!0},spacing10:{"--container-padding-inline-end":`xx5lg5w`,$$css:!0},spacing11:{"--container-padding-inline-end":`x1nmgbqg`,$$css:!0},spacing12:{"--container-padding-inline-end":`x1wsfsk2`,$$css:!0}},xu={spacing0:{"--container-padding-block-start":`x1i3qcxz`,$$css:!0},spacing0_5:{"--container-padding-block-start":`xvdf9ev`,$$css:!0},spacing1:{"--container-padding-block-start":`xnsckjb`,$$css:!0},spacing1_5:{"--container-padding-block-start":`x1kbx601`,$$css:!0},spacing2:{"--container-padding-block-start":`xa8b4fq`,$$css:!0},spacing3:{"--container-padding-block-start":`x11k4f5r`,$$css:!0},spacing4:{"--container-padding-block-start":`xm01sq8`,$$css:!0},spacing5:{"--container-padding-block-start":`xp8wdkl`,$$css:!0},spacing6:{"--container-padding-block-start":`x1hmud4d`,$$css:!0},spacing7:{"--container-padding-block-start":`x1c00sag`,$$css:!0},spacing8:{"--container-padding-block-start":`xfv60at`,$$css:!0},spacing9:{"--container-padding-block-start":`x14fzdu7`,$$css:!0},spacing10:{"--container-padding-block-start":`x17h9kl7`,$$css:!0},spacing11:{"--container-padding-block-start":`x1rdjxae`,$$css:!0},spacing12:{"--container-padding-block-start":`xecwdl6`,$$css:!0}},Su={spacing0:{"--container-padding-block-end":`xkunwnr`,$$css:!0},spacing0_5:{"--container-padding-block-end":`x1cao3zv`,$$css:!0},spacing1:{"--container-padding-block-end":`x57a7ii`,$$css:!0},spacing1_5:{"--container-padding-block-end":`xv53x8y`,$$css:!0},spacing2:{"--container-padding-block-end":`x1lsgcmx`,$$css:!0},spacing3:{"--container-padding-block-end":`x1q3ppug`,$$css:!0},spacing4:{"--container-padding-block-end":`x4hfsld`,$$css:!0},spacing5:{"--container-padding-block-end":`xbib2ws`,$$css:!0},spacing6:{"--container-padding-block-end":`x1q8d17g`,$$css:!0},spacing7:{"--container-padding-block-end":`x1yqogew`,$$css:!0},spacing8:{"--container-padding-block-end":`x8lgq76`,$$css:!0},spacing9:{"--container-padding-block-end":`x1f7f9rt`,$$css:!0},spacing10:{"--container-padding-block-end":`x15vxphk`,$$css:!0},spacing11:{"--container-padding-block-end":`x4bg2x9`,$$css:!0},spacing12:{"--container-padding-block-end":`x186mjxr`,$$css:!0}},Cu={spacing0:{"--layout-padding-outer-x":`xswhm3q`,$$css:!0},spacing0_5:{"--layout-padding-outer-x":`xihiwg7`,$$css:!0},spacing1:{"--layout-padding-outer-x":`xc96xmq`,$$css:!0},spacing1_5:{"--layout-padding-outer-x":`x1u93lgd`,$$css:!0},spacing2:{"--layout-padding-outer-x":`x15dxnc0`,$$css:!0},spacing3:{"--layout-padding-outer-x":`xadgj3j`,$$css:!0},spacing4:{"--layout-padding-outer-x":`x1v56qcf`,$$css:!0},spacing5:{"--layout-padding-outer-x":`x1nzs0gl`,$$css:!0},spacing6:{"--layout-padding-outer-x":`x1c3n52a`,$$css:!0},spacing7:{"--layout-padding-outer-x":`x1gfiokx`,$$css:!0},spacing8:{"--layout-padding-outer-x":`x1t3kfz`,$$css:!0},spacing9:{"--layout-padding-outer-x":`xzr4qsh`,$$css:!0},spacing10:{"--layout-padding-outer-x":`x1jdf5a4`,$$css:!0},spacing11:{"--layout-padding-outer-x":`x1hct0t0`,$$css:!0},spacing12:{"--layout-padding-outer-x":`x11cyqoe`,$$css:!0}},wu={spacing0:{"--layout-padding-outer-y":`x1mzf5mb`,$$css:!0},spacing0_5:{"--layout-padding-outer-y":`x1vj96e0`,$$css:!0},spacing1:{"--layout-padding-outer-y":`x1gpfxoh`,$$css:!0},spacing1_5:{"--layout-padding-outer-y":`xd3dqby`,$$css:!0},spacing2:{"--layout-padding-outer-y":`x10pz7y9`,$$css:!0},spacing3:{"--layout-padding-outer-y":`x1p6yq3h`,$$css:!0},spacing4:{"--layout-padding-outer-y":`xx738ci`,$$css:!0},spacing5:{"--layout-padding-outer-y":`x6yxws5`,$$css:!0},spacing6:{"--layout-padding-outer-y":`x180vrwl`,$$css:!0},spacing7:{"--layout-padding-outer-y":`x1q6rme1`,$$css:!0},spacing8:{"--layout-padding-outer-y":`xid7e43`,$$css:!0},spacing9:{"--layout-padding-outer-y":`x1t5kicu`,$$css:!0},spacing10:{"--layout-padding-outer-y":`x26l4wa`,$$css:!0},spacing11:{"--layout-padding-outer-y":`x10zktp0`,$$css:!0},spacing12:{"--layout-padding-outer-y":`x1yz3n6a`,$$css:!0}},Tu={spacing0:{"--layout-padding-inner-x":`xj1bl4l`,$$css:!0},spacing0_5:{"--layout-padding-inner-x":`xlriy2h`,$$css:!0},spacing1:{"--layout-padding-inner-x":`x6uuyak`,$$css:!0},spacing1_5:{"--layout-padding-inner-x":`xd38f90`,$$css:!0},spacing2:{"--layout-padding-inner-x":`xxqksqd`,$$css:!0},spacing3:{"--layout-padding-inner-x":`x1fyui2f`,$$css:!0},spacing4:{"--layout-padding-inner-x":`x1i2ajwi`,$$css:!0},spacing5:{"--layout-padding-inner-x":`x1tac27u`,$$css:!0},spacing6:{"--layout-padding-inner-x":`x1ntgf3t`,$$css:!0},spacing7:{"--layout-padding-inner-x":`xhjd9tl`,$$css:!0},spacing8:{"--layout-padding-inner-x":`xn7c84u`,$$css:!0},spacing9:{"--layout-padding-inner-x":`xeqkbsz`,$$css:!0},spacing10:{"--layout-padding-inner-x":`x1vf4qco`,$$css:!0},spacing11:{"--layout-padding-inner-x":`xsmamsf`,$$css:!0},spacing12:{"--layout-padding-inner-x":`x2xk2xj`,$$css:!0}},Eu={spacing0:{"--layout-padding-inner-y":`xwuefyo`,$$css:!0},spacing0_5:{"--layout-padding-inner-y":`x180h0y5`,$$css:!0},spacing1:{"--layout-padding-inner-y":`xmpug6m`,$$css:!0},spacing1_5:{"--layout-padding-inner-y":`x1g8jpzm`,$$css:!0},spacing2:{"--layout-padding-inner-y":`x1lksgje`,$$css:!0},spacing3:{"--layout-padding-inner-y":`x4j7gld`,$$css:!0},spacing4:{"--layout-padding-inner-y":`x1s3ehtl`,$$css:!0},spacing5:{"--layout-padding-inner-y":`x1rj5eim`,$$css:!0},spacing6:{"--layout-padding-inner-y":`x1ftgg6u`,$$css:!0},spacing7:{"--layout-padding-inner-y":`x1ho74vh`,$$css:!0},spacing8:{"--layout-padding-inner-y":`xm2cs6f`,$$css:!0},spacing9:{"--layout-padding-inner-y":`x1vsq92b`,$$css:!0},spacing10:{"--layout-padding-inner-y":`x18gbwmk`,$$css:!0},spacing11:{"--layout-padding-inner-y":`x14zymzj`,$$css:!0},spacing12:{"--layout-padding-inner-y":`xzfpkx9`,$$css:!0}},Du={containerMaxHeight:e=>[{"--container-max-height":e==null?e:`x18nyedi`,$$css:!0},{"--x---container-max-height":e??void 0}]};function Ou({padding:e=`spacing4`,paddingOuterX:t,paddingOuterY:n,paddingInnerX:r,paddingInnerY:i,useThemeDefault:a,maxHeight:o}){let s=t??e,c=n??e,l=r??e,u=i??e,d=o?Du.containerMaxHeight(o):null;if(a){let e=vu[a];return[uu.container,e.containerPaddingInlineStart,e.containerPaddingInlineEnd,e.containerPaddingBlockStart,e.containerPaddingBlockEnd,e.layoutPaddingOuterX,e.layoutPaddingOuterY,e.layoutPaddingInnerX,e.layoutPaddingInnerY,d]}return[uu.container,yu[s],bu[s],xu[c],Su[c],Cu[s],wu[c],Tu[l],Eu[u],d]}var ku=(0,w.createContext)(null);ku.displayName=`DialogContext`;function Au(e,t=16){let n=e.getBoundingClientRect(),r=n.left+n.width/2-window.innerWidth/2,i=n.top+n.height/2-window.innerHeight/2,a=Math.sqrt(r*r+i*i)||1;return{x:Math.round(r/a*t),y:Math.round(i/a*t)}}`${In[`--spacing-4`]}`,`${In[`--spacing-4`]}`,`${In[`--spacing-4`]}`,`${In[`--spacing-4`]}`,`${In[`--spacing-4`]}`,`${In[`--spacing-4`]}`;var ju={dialog:{kVAEAm:`xixxii4`,kogj98:`x1bpp3o7`,kmVPX3:`x1717udv`,kWkggS:`x10xzikg`,"--_dialog-radius":`xvuvksw`,kaIpWk:`xuacgfc`,kGVxlE:`x1kcpxr7`,k1xSpc:`x1s85apg`,kXwgrk:`xdt5ytf`,kZKoxP:`xg7h5cd`,kZeWKH:`xish69e`,kSiTet:`xg01cxk`,k44tkh:`xqgcaz`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},open:{k1xSpc:`x78zum5`,kSiTet:`x1hc1fzr`,kKVMdj:`x1ewfqum x1aquc0h`,$$css:!0},backdrop:{kGyWv1:`xnixb3f`,kba3nw:`x1abwkk1`,$$css:!0},fullscreen:{kzqmXN:`x1o6l61p`,kZKoxP:`xtdtrs8`,ks0D6T:`xlbgzzq`,kskxy:`x1wj9ous`,kaIpWk:`x2u8bby`,kogj98:`x1ghz6dp`,kpwlN0:`x10a8y8t`,$$css:!0},fullscreenOpen:{kKVMdj:`xqcmdr3 x1aquc0h`,$$css:!0},fullscreenSafeArea:{kLKAdn:`x15ld1ci`,kGO01o:`x1rgxemn`,kZCmMZ:`xqmdmw x1i7f2ot`,kwRFfy:`x1by8st6 xtjjor6`,$$css:!0},inner:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kUk6DE:`x12lumcd`,kAzted:`x2lwn1j`,kVQacm:`xb3r6kr`,kaIpWk:`x1pjcqnp`,$$css:!0},inlineWrapper:{kmVPX3:`x1717udv`,kWkggS:`x10xzikg`,"--_dialog-radius":`xvuvksw`,kaIpWk:`xuacgfc`,kGVxlE:`x1kcpxr7`,k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kZKoxP:`xg7h5cd`,kZeWKH:`xish69e`,$$css:!0}},Mu=In[`--spacing-4`],Nu=`min(100%, ${`calc(100dvw - ${Mu} - ${Mu})`})`;function Pu(e){return typeof e==`number`?`${e}px`:e}function Fu(e,t){return{width:Pu(e),maxWidth:Nu,maxHeight:Pu(t)}}var Iu={kogj98:`x1ghz6dp`,$$css:!0},Lu={sizing:(e,t,n)=>[{kzqmXN:e==null?e:`x5lhr3w`,ks0D6T:t==null?t:`xf68679`,kskxy:n==null?n:`x1jols5v`,$$css:!0},{"--x-width":(e=>typeof e==`number`?e+`px`:e??void 0)(e),"--x-maxWidth":(e=>typeof e==`number`?e+`px`:e??void 0)(t),"--x-maxHeight":(e=>typeof e==`number`?e+`px`:e??void 0)(n)}],position:(e,t,n,r)=>[Iu,{k87sOh:e==null?e:`xjbys53`,kLqNvP:t==null?t:`x1lxsm33`,kt4wiu:n==null?n:`xqxgn94`,krVfgx:r==null?r:`x1nqzi6q`,$$css:!0},{"--x-top":(e=>typeof e==`number`?e+`px`:e??void 0)(e),"--x-insetInlineStart":(e=>typeof e==`number`?e+`px`:e??void 0)(t),"--x-insetInlineEnd":(e=>typeof e==`number`?e+`px`:e??void 0)(n),"--x-bottom":(e=>typeof e==`number`?e+`px`:e??void 0)(r)}]};function Ru(e){return typeof e==`number`?`${e}px`:e}function zu(e){let{top:t,bottom:n,start:r,end:i}=e;return{top:t===void 0?`auto`:Ru(t),bottom:n===void 0?`auto`:Ru(n),insetInlineStart:r===void 0?`auto`:Ru(r),insetInlineEnd:i===void 0?`auto`:Ru(i)}}function Bu({isOpen:e,isInline:t=!1,onOpenChange:n,width:r=400,maxHeight:i=`75dvh`,position:a,variant:o=`standard`,purpose:s=`info`,padding:c,children:l,xstyle:u,className:d,style:f,ref:p,...m}){let h=c==null,g=c??4,_=Bn[g],v=o===`fullscreen`,y=v?null:Fu(r,i),b=(0,w.useId)(),x=(0,w.useMemo)(()=>({isInline:t,titleId:b}),[t,b]),S=m[`aria-label`]!=null||m[`aria-labelledby`]!=null,C=(0,w.useRef)(null),T=Bi(p,(0,w.useCallback)(e=>{C.current=e,!(!e||S)&&(e.querySelector(`#${CSS.escape(b)}`)==null?e.removeAttribute(`aria-labelledby`):e.setAttribute(`aria-labelledby`,b))},[b,S])),E=(0,w.useRef)(null),D=s!==`required`,O=s===`info`;(0,w.useEffect)(()=>{if(t)return;let n=C.current;if(n)if(e){E.current=document.activeElement;let e=E.current;if(e&&e!==document.body){let t=Au(e);n.style.setProperty(`--dialog-dir-x`,`${t.x}px`),n.style.setProperty(`--dialog-dir-y`,`${t.y}px`)}else n.style.setProperty(`--dialog-dir-x`,`0px`),n.style.setProperty(`--dialog-dir-y`,`16px`);if(!n.open){n.showModal();let e=n.querySelector(`[data-autofocus]`);e&&e.focus()}}else n.open&&n.close(),E.current?.focus(),E.current=null},[e,t]),Fl(e&&!t);let{shouldDismissOnCloseRequest:k}=Er({isActive:e,isEnabled:!t,escapeBehavior:D?`close`:`block`,onDismiss:()=>{n(!1)}}),A=(0,w.useRef)(!1);(0,w.useEffect)(()=>{let n=C.current?.querySelector(`#${CSS.escape(b)}`)!=null;e&&!t&&!S&&!n&&!A.current&&(A.current=!0)},[e,t,S,b]);let j=e=>{e.target===e.currentTarget&&O&&n(!1)},M=e=>{e.preventDefault(),k()&&D&&n(!1)},N=(0,V.jsx)(`div`,{...bn(ju.inner,...Ou(h?{useThemeDefault:`dialog`,maxHeight:y?.maxHeight}:{paddingInnerX:_,paddingInnerY:_,paddingOuterX:_,paddingOuterY:_,maxHeight:y?.maxHeight}),!h&&g!==4&&Vn[g],!h&&g!==4&&Hn[g],!h&&g!==4&&Un[g],!h&&g!==4&&Wn[g],v&&h&&ju.fullscreenSafeArea),children:(0,V.jsx)(ku,{value:x,children:l})}),P=a!=null&&!v,{open:ee,...F}=m;return t?e?(0,V.jsx)(`div`,{...F,...H(ri(`dialog`,{variant:o}),bn(ju.inlineWrapper,Gn.reset,y&&Lu.sizing(y.width,y.maxWidth,y.maxHeight),v&&ju.fullscreen,u),d,f),"data-testid":m[`data-testid`],children:(0,V.jsx)(ar,{children:N})}):null:(0,V.jsx)(`dialog`,{ref:T,...F,...H(ri(`dialog`,{variant:o}),zi.focusVisible(ju.dialog,Gn.reset,e&&ju.open,ju.backdrop,y&&Lu.sizing(y.width,y.maxWidth,y.maxHeight),P&&(()=>{let e=zu(a);return Lu.position(e.top,e.insetInlineStart,e.insetInlineEnd,e.bottom)})(),v&&ju.fullscreen,v&&e&&ju.fullscreenOpen,u),d,f),onClick:j,onCancel:M,"aria-modal":`true`,...s===`required`?{role:`alertdialog`}:void 0,children:(0,V.jsx)(ar,{children:N})})}Bu.displayName=`Dialog`;function Vu(e){return!!e.trim()&&!e.startsWith(`#`)&&!e.startsWith(`//`)&&(!/^[a-z][a-z\d+.-]*:/iu.test(e)||/^[a-z]:[\\/]/iu.test(e))}var Hu=12288;function Uu(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function Wu(e,t=!1){let n=t?e.slice(-24576):e.slice(0,Hu*2),r=n.replace(/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\|$)/gu,``).replace(/(?:\x1b\[|\x9b)[0-?]*[ -/]*[@-~]/gu,``).replace(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u202a-\u202e\u2066-\u2069]/gu,``).split(` `),i=(t?r.slice(-300):r.slice(0,300)).join(` `),a=new TextEncoder().encode(i),o=t?Math.max(0,a.length-Hu):0,s=t?a.length:Math.min(a.length,Hu);for(;oo&&(a[s]&192)==128;)s--;return{text:new TextDecoder().decode(a.subarray(o,s)),truncated:e.length>n.length||r.length>300||a.length>12288}}function Gu(e){if(e.evidenceArguments)return e.evidenceArguments;try{return Uu(JSON.parse(e.arguments))}catch{return{}}}function Ku(e){return[`read`,`write`,`edit`,`bash`,`bg_start`,`bg_status`].includes(e)}function qu(e,t){if(e===`bash`&&t?.terminalReceipt)return t.terminalReceipt;let n=Uu(t?.details);if(e.startsWith(`bg_`)){let e=n.status;if(e===`running`)return{state:`running`};if([`done`,`failed`,`killed`,`timed_out`].includes(String(e)))return{state:e===`killed`?`cancelled`:e===`timed_out`?`timed_out`:e===`failed`?`failed`:`returned`,exitCode:typeof n.exitCode==`number`?n.exitCode:void 0,signal:typeof n.signal==`string`?Wu(n.signal).text:void 0}}if(e===`bash`&&t?.isError===!0&&!t.truncation){let e=t.content.trimEnd().split(` `).at(-1);if(e===`Command aborted`)return{state:`cancelled`};if(/^Command timed out after \d+(?:\.\d+)? seconds$/u.test(e??``))return{state:`timed_out`};let n=/^Command exited with code (-?\d+)$/u.exec(e??``);if(n)return{state:`failed`,exitCode:Number(n[1])}}}function Ju(e){let t=/^\s*Tests\s+((?:\d+ (?:passed|failed|skipped|todo)(?:\s*\|\s*)?)+)\s*\((\d+)\)\s*$/mu.exec(e);if(t){let n=Number(/(\d+) passed/u.exec(t[1])?.[1]??0),r=Number(/(\d+) failed/u.exec(t[1])?.[1]??0),i=Number(t[2]);if(Number.isSafeInteger(i)&&n+r<=i)return{format:`Vitest`,tests:i,passed:n,failed:r,cancelled:0,failures:Yu(e,/^\s*(?:FAIL\s|×\s)/u)}}let n=/^Ran (\d+) tests? across \d+ files?\./mu.exec(e),r=/^\s*(\d+) pass\s*$/mu.exec(e),i=/^\s*(\d+) fail\s*$/mu.exec(e);if(n&&r&&i){let t=Number(n[1]),a=Number(r[1]),o=Number(i[1]);if(Number.isSafeInteger(t)&&a+o<=t)return{format:`Bun`,tests:t,passed:a,failed:o,cancelled:0,failures:Yu(e,/^\s*\(fail\) /u)}}let a=t=>{let n=RegExp(`^[#ℹ] ${t} (\\d+)$`,`mu`).exec(e),r=n?Number(n[1]):void 0;return r!==void 0&&Number.isSafeInteger(r)?r:void 0},o=a(`tests`),s=a(`pass`),c=a(`fail`),l=a(`cancelled`)??0;if(o===void 0||s===void 0||c===void 0||s+c+l>o)return;let u=Yu(e,/^(?:\s*not ok \d+\b|✖ )/u);return{format:/^ℹ tests /mu.test(e)?`Node`:`TAP`,tests:o,passed:s,failed:c,cancelled:l,failures:u}}function Yu(e,t){return e.split(` @@ -94,4 +94,4 @@ Try polyfilling it using "@formatjs/intl-pluralrules" `,t);continue}let r=e.charCodeAt(t);if(Jx(e,t,r)){let r=e.charCodeAt(t+5)===Gx?t+6:t+5,o=e.slice(r,n);if(f===0&&e.charCodeAt(n+1)===Ux){u!==void 0&&a?.(u),i?.({id:u,event:p,data:o}),u=void 0,d=``,p=void 0,t=n+2,n=e.indexOf(` `,t);continue}d=f===0?o:`${d}\n${o}`,f++}else Yx(e,t,r)?p=e.slice(e.charCodeAt(t+6)===Gx?t+7:t+6,n)||void 0:C(e,t,n);t=n+1,n=e.indexOf(` `,t)}return e.slice(t)}for(;t20?`${e.slice(0,20)}…`:e}"`,{type:`unknown-field`,field:e,value:t,line:n}))}}function T(){u!==void 0&&a?.(u),f>0&&i?.({id:u,event:p,data:d}),u=void 0,d=``,f=0,p=void 0}function E(e={}){if(e.consume&&s.length>0){let e=s.join(``);C(e,0,e.length)}l=!0,u=void 0,d=``,f=0,p=void 0,s.length=0,c=0,m=!1,h=!1,g=!1}return{feed:_,reset:E}}function Jx(e,t,n){return n===100&&e.charCodeAt(t+1)===97&&e.charCodeAt(t+2)===116&&e.charCodeAt(t+3)===97&&e.charCodeAt(t+4)===58}function Yx(e,t,n){return n===101&&e.charCodeAt(t+1)===118&&e.charCodeAt(t+2)===101&&e.charCodeAt(t+3)===110&&e.charCodeAt(t+4)===116&&e.charCodeAt(t+5)===58}function Xx(e,t){let n=1;for(;nt.abort();e.signal.addEventListener(`abort`,n,{once:!0}),e.signal.aborted&&n();let r=window.setTimeout(n,45e3),i=await fetch(`/events?cursor=${e.cursor}`,{headers:e.client.headers(),signal:t.signal}).finally(()=>{window.clearTimeout(r),e.signal.removeEventListener(`abort`,n)});if(i.status===409)throw new Zx(`event replay expired`);if(!i.ok||!i.body)throw Error(`event connection failed`);e.onConnected();let a=e.cursor,o=0,s=qx({onComment(t){t.trim()===`heartbeat`&&++o>=4&&(o=0,e.onHeartbeat?.())},onEvent(t){let n=JSON.parse(t.data);if(!Number.isSafeInteger(n.sequence))throw new Zx(`invalid event cursor`);if(!(n.sequence<=a)){if(n.sequence!==a+1)throw new Zx(`event cursor gap`);if(a=n.sequence,n.type===`state_invalidated`)throw new Zx(`state invalidated`);e.onEvent(n)}}}),c=i.body.getReader(),l=new TextDecoder;try{for(;!e.signal.aborted;){let t,n,r=c.read(),i=new Promise((r,i)=>{n=()=>i(Error(`event stream aborted`)),e.signal.addEventListener(`abort`,n,{once:!0}),e.signal.aborted&&n(),t=window.setTimeout(()=>i(Error(`event stream stalled`)),45e3)}),{done:a,value:o}=await Promise.race([r,i]).finally(()=>{window.clearTimeout(t),n&&e.signal.removeEventListener(`abort`,n)});if(a)throw Error(`event connection closed`);s.feed(l.decode(o,{stream:!0}))}}finally{await c.cancel().catch(()=>void 0)}}function $x(e,t,n){if([`session_start`,`session_switched`,`session_created`].includes(t))return[];if([`agent_settled`,`turn_settled`].includes(t))return e.map(e=>e.state===`running`?{...e,state:`unknown`}:e);if(!t.startsWith(`tool_execution_`))return e;let r=n.toolCallId;if(typeof r!=`string`||r.length>500)return e;let i=e.find(e=>e.call.id===r);if(i&&i.state!==`running`&&(i.state!==`unknown`||t!==`tool_execution_end`))return e;let a=Uu(n.call),o=a.type===`toolCall`&&typeof a.name==`string`&&typeof a.arguments==`string`?a:i?.call;if(!o||o.evidenceTruncated&&o.id?.includes(`[truncated]`))return e;let s=Uu(n.result),c={call:o,result:typeof s.content==`string`?s:i?.result,state:t===`tool_execution_end`?n.isError===!0?`failed`:`returned`:`running`},l=[...e.filter(e=>e.call.id!==r),c].slice(-32);for(;l.length>0&&new TextEncoder().encode(JSON.stringify(l)).byteLength>524288;)l.shift();return l}var eS=`openpi.collapsed-workspaces`,tS=`openpi.sidebar-collapsed`,nS=new Set([`agent_start`,`turn_started`,`turn_settled`,`agent_settled`,`prompt_settled`,`message_end`,`tool_execution_end`,`session_start`,`session_switched`,`session_progress`,`prompt_failed`,`model_select`,`workspace_imported`,`workspace_removed`,`workspace_renamed`,`session_renamed`,`session_archived`,`session_unarchived`,`session_created`,`prompt_accepted`,`runtime_changed`]);function rS(e){try{let t=JSON.parse(window.sessionStorage.getItem(e)||`[]`);return new Set(Array.isArray(t)?t.filter(e=>typeof e==`string`):[])}catch{return new Set}}function iS(e){try{return window.sessionStorage.getItem(e)===`true`}catch{return!1}}function aS(e,t){try{window.sessionStorage.setItem(e,JSON.stringify(t))}catch{}}function oS(e,t){return t.aborted?Promise.resolve():new Promise(n=>{let r=()=>{window.clearTimeout(i),t.removeEventListener(`abort`,r),n()},i=window.setTimeout(r,e);t.addEventListener(`abort`,r,{once:!0})})}function sS(e=new ed,t={}){let n=t.consumeEvents??Qx,r=0,i=0,a=0,o=null,s=null,c=null,l=null,u=Promise.resolve(),d=null,f=!1,p=!1,m=null,h=null,g=0,_=null,v=0,y=!1,b=0,x=0,S=null,C=-1,w=null,T=0,E=new Set,D=new Set,O=(e,t)=>{if(typeof t==`string`)for(e.add(t);e.size>32;){let t=e.values().next().value;t&&e.delete(t)}},k=()=>({activeTurn:null,turnCancellationPending:!1,turnTerminalStatus:null,pendingFollowUpsReceipt:null,liveMessages:[],liveRunning:!1,livePhase:`idle`,liveRetry:null,thinkingStarts:{},thinkingDurations:{}}),A=()=>(g++,h?.abort(),h=null,{modelSearch:{query:``,status:`idle`,models:[],totalMatches:0,matchesOmitted:0,error:null}}),j=()=>({sessionId:null,status:`idle`,commands:[],totalAvailable:0,commandsOmitted:0,error:null}),M=(e,t)=>({liveRunning:t===`running`||!e,livePhase:t===`running`?`running`:e?`idle`:`preparing`});return un((t,N)=>{let P=e=>{t({notice:e instanceof Error?e.message:String(e)})},ee=e=>{let t=N().snapshot;return e.epoch===r&&N().selectedWorkspace===e.workspacePath&&t?.currentSessionId===e.sessionId&&t.selectedSession?.id===e.sessionId&&t.selectedSession.cwd===e.workspacePath&&(!e.sessionPath||t.selectedSession.path===e.sessionPath)},F=()=>{T++,w?.abort(),w=null,t({commandDiscovery:j()})},I=async(n,i,a)=>{if(N().modelSelectionPending)return!1;t({modelSelectionPending:!0});try{let o=await e.selectModel(n.provider,n.id,a);if(i!==r||a!==N().snapshot?.selectedSession?.id)return!1;if(o.provider!==n.provider||o.id!==n.id||!o.current)throw Error(`Model selection was not confirmed. Please select a model again.`);if(!await N().actions.refreshSnapshot({epoch:i})||i!==r||a!==N().snapshot?.selectedSession?.id)return!1;let s=N().snapshot?.models.find(e=>e.current);if(s?.provider!==n.provider||s.id!==n.id)throw Error(`The Session model changed. Please select a model again.`);return t({draftModel:null,notice:null}),!0}catch(e){return i===r&&a===N().snapshot?.selectedSession?.id&&P(e),!1}finally{i===r&&t({modelSelectionPending:!1})}},L=(e=160)=>{if(f){p=!0;return}d===null&&(d=window.setTimeout(async()=>{d=null,f=!0;try{await N().actions.refreshSnapshot()}finally{f=!1,p&&(p=!1,L())}},e))},te=()=>{S=null,x=0,C=-1},ne=()=>{let e=N().snapshot;if(!e)return;S&&C!==r&&te();let n=e.thinking;if(n){if(!S||n.revision>=x){S=n,x=n.revision,C=r;return}n!==S&&t({snapshot:{...e,thinking:S}})}},re=e=>{S&&C!==r&&te(),e&&e.revision>=x&&(S=e,x=e.revision,C=r),ne()},R=()=>{_=null,v++,y=!1,t({thinkingPendingLevel:null})},z=async()=>{let t=r,n=N().snapshot?.selectedSession?.id;if(n)try{let i=await e.thinking(n,new AbortController().signal);if(t!==r||n!==N().snapshot?.selectedSession?.id)return;re(i)}catch{}},ie=async()=>{if(y)return;y=!0;let n=++b;try{for(;_!==null;){let n=_,i=v,a=r,o=N().snapshot?.selectedSession?.id;if(!o||N().modelSelectionPending){R();return}if(N().snapshot?.thinking?.level===n){i===v&&(_=null,t({thinkingPendingLevel:null}));continue}let s;try{s=await e.setThinkingLevel(o,n)}catch(e){if(a!==r)return;if(i!==v)continue;R(),P(e),z();return}if(a!==r||o!==N().snapshot?.selectedSession?.id)return;if(i===v){if(s.level!==n){R(),P(Error(Pt.t(`thinkingNotConfirmed`)));return}re(s),_=null,t({thinkingPendingLevel:null}),L();return}}}finally{n===b&&(y=!1)}},ae=e=>{let n=N(),i=e.detail??{},a=i.sessionId,l=[`session_start`,`session_switched`,`session_created`].includes(e.type);if(n.cursor!==null&&e.sequence<=n.cursor)return;t({cursor:e.sequence});let u=n.promptAdmissionRecovery,d=u?.commandId;if(typeof i.commandId==`string`&&i.commandId===d&&[`prompt_accepted`,`prompt_failed`,`prompt_settled`,`turn_started`,`turn_settled`].includes(e.type)){let r=e.type!==`prompt_failed`;t({promptAdmissionRecovery:null,promptAdmissionResolution:r&&u?{commandId:u.commandId,content:u.content}:n.promptAdmissionResolution,liveMessages:r&&u&&!n.liveMessages.some(e=>e.key===u.optimisticKey)?[...n.liveMessages,{key:u.optimisticKey,message:{role:`user`,content:u.content}}].slice(-8):n.liveMessages})}if(e.type===`runtime_changed`&&t(A()),e.type===`runtime_changed`&&F(),n.sessionSwitching&&!l){L();return}if(typeof a==`string`&&a!==n.snapshot?.currentSessionId&&!l){L();return}if(n.snapshot){let r=$x(n.snapshot.runtime.liveTools??[],e.type,i);t({snapshot:{...n.snapshot,runtime:{...n.snapshot.runtime,liveTools:r}}})}if(l){let l=i.commandId;if(typeof l==`string`&&D.has(l)){L();return}let d=i.sessionPath,f=n.snapshot?.sessions.some(e=>e.path===d),p=!1;if(c?.kind===`select`?p=c.expectedPath===d:(c?.kind===`create`&&c.commandId===l&&e.type===`session_switched`&&typeof a==`string`&&(!c.expectedSessionId||c.expectedSessionId===a)&&(typeof d!=`string`||!f)||c?.kind===`create`&&c.commandId===l&&e.type===`session_created`&&typeof a==`string`&&(!c.expectedSessionId||a===c.expectedSessionId))&&(p=!0),p&&c?.epoch!==r)return;if(p)t(k());else{F();let e=++r;R(),o=null,s=null,t({...k(),promptAdmissionPending:!1,promptAdmissionRecovery:null,promptAdmissionResolution:u?{commandId:u.commandId,content:u.content}:n.promptAdmissionResolution,selectedPath:typeof d==`string`?d:null,draftModel:n.workspaceDraft?n.draftModel:null,modelSelectionPending:!1,sessionSwitching:!0}),N().actions.refreshSnapshot({epoch:e}).then(n=>{e===r&&t({selectedPath:n?N().selectedPath:null,sessionSwitching:!1})})}}else if(e.type===`prompt_accepted`){let e=E.has(String(i.commandId??``));t({...M(e,n.livePhase),liveRetry:null,pendingFollowUpsReceipt:Number.isInteger(i.pendingFollowUps)?Number(i.pendingFollowUps):n.pendingFollowUpsReceipt})}else if(e.type===`turn_started`)t({activeTurn:{sessionId:String(i.sessionId),commandId:String(i.commandId),epoch:Number(i.epoch)},liveRunning:!0,livePhase:`running`,liveRetry:null,turnTerminalStatus:null});else if(e.type===`agent_start`)t({...i.activeTurn?{activeTurn:i.activeTurn}:{},liveRunning:!0,livePhase:`running`,liveRetry:null});else if(e.type===`turn_settled`){O(E,i.commandId);let e=n.activeTurn;e?.sessionId===i.sessionId&&e?.commandId===i.commandId&&e?.epoch===i.epoch&&t({activeTurn:null,liveRunning:!1,livePhase:`idle`,liveRetry:null,turnTerminalStatus:typeof i.outcome==`string`?i.outcome:null})}else if(e.type===`agent_settled`)t({pendingFollowUpsReceipt:null,...n.activeTurn?{}:{liveRunning:!1,livePhase:`idle`,liveRetry:null}});else if(e.type===`prompt_settled`)O(E,i.commandId),n.livePhase!==`running`&&t({liveRunning:!1,livePhase:`idle`,liveRetry:null});else if(i.message&&typeof i.message==`object`){let r=i.message,a=n.liveMessages;r.role===`user`&&(a=a.filter(e=>!e.key.startsWith(`optimistic-`)||e.message.content!==r.content));let o=typeof i.messageKey==`string`?i.messageKey:`${r.role||`message`}-${e.sequence}`,s={key:o,message:r},c=a.findIndex(e=>e.key===o);a=c>=0?a.map((e,t)=>t===c?s:e):[...a,s].slice(-8);let l={...n.thinkingStarts},u={...n.thinkingDurations};r.parts?.some(e=>e.type===`thinking`)&&(l[o]??=Date.now(),e.type===`message_end`&&(u[o]=Date.now()-l[o])),t({liveMessages:a,thinkingDurations:u,thinkingStarts:l})}if(e.type===`prompt_failed`&&(O(E,i.commandId),t({liveMessages:N().liveMessages.filter(e=>!e.key.startsWith(`optimistic-`)),liveRunning:!1,livePhase:`idle`,liveRetry:null,notice:typeof i.error==`string`?i.error:`Prompt failed`})),e.type===`auto_retry_start`&&t({liveRunning:!0,livePhase:`running`,liveRetry:{attempt:Number(i.attempt)||0,maxAttempts:Number(i.maxAttempts)||0}}),e.type===`thinking_level_changed`){let t=N().snapshot?.thinking;t&&typeof i.level==`string`&&re({...t,level:i.level,revision:e.sequence})}nS.has(e.type)&&L()},oe=async r=>{let i=500;for(;!r.aborted;){let a=!1;try{if(N().cursor===null){if(a=!0,!await N().actions.refreshSnapshot({resetCursor:!0}))throw Error(`snapshot unavailable`);a=!1}if(r.aborted)return;await n({client:e,cursor:N().cursor??0,onConnected:()=>{i=500,t({connection:`connected`})},onEvent:ae,onHeartbeat:()=>L(0),signal:r})}catch(e){if(r.aborted)return;t({connection:`reconnecting`}),!a&&await N().actions.refreshSnapshot({resetCursor:!0})||t(k()),await oS(i,r),i=Math.min(i*2,5e3),e instanceof SyntaxError&&t({notice:`Invalid event data`})}}},se={start(){m||(m=new AbortController,oe(m.signal))},stop(){m?.abort(),m=null,d!==null&&window.clearTimeout(d),d=null,R(),F()},async refreshSnapshot(n={}){let a=n.epoch??r,o=++i,c=N().selectedPath;try{let l=await e.snapshot(c);if(a!==r||o!==i)return!1;let u=typeof l.currentSessionId==`string`,d=u?l.sessions.find(e=>e.id===l.currentSessionId):void 0,f=u?l.selectedSession?.id===l.currentSessionId:l.selectedSession===void 0,p=!c||l.sessions.some(e=>e.path===c),m=!c||l.selectedSession?.path===c;if(!p||!m||!f)return t({selectedPath:null}),!n.canonicalRetry&&se.refreshSnapshot({...n,canonicalRetry:!0,epoch:a});let h=l.selectedSession?.cwd,g=l.workspaces.find(e=>e.current)?.path,_=l.workspaces.some(e=>e.path===N().selectedWorkspace)?N().selectedWorkspace:void 0,v=N().workspaceDraft?N().selectedWorkspace:l.workspaces.some(e=>e.path===h)?h:g??_??null,y=n.resetCursor;return y&&te(),N().snapshot?.currentSessionId!==l.currentSessionId&&F(),t({...y?k():{},connection:N().connection===`connecting`?`connecting`:N().connection,cursor:y||N().cursor===null?l.cursor:Math.max(N().cursor??0,l.cursor),activeTurn:l.runtime.activeTurn??null,livePhase:l.runtime.status===`running`?`running`:!N().promptAdmissionPending&&!s?`idle`:N().livePhase,liveRetry:l.runtime.status!==`running`&&!N().promptAdmissionPending&&!s?null:N().liveRetry,liveRunning:l.runtime.status===`running`?!0:!N().promptAdmissionPending&&!s?!1:N().liveRunning,selectedPath:d?.path??l.selectedSession?.path??null,selectedWorkspace:v,snapshot:l,...A()}),re(),!0}catch(e){return a!==r||o!==i?!1:(t({connection:`unavailable`}),P(e),!1)}},async chooseWorkspace(){let t=r;try{let n=await e.chooseWorkspace();if(t!==r||n.cancelled||!n.path)return;se.setWorkspace(n.path),await se.refreshSnapshot()}catch(e){t===r&&P(e)}},setWorkspace(e){let n=N();e===n.selectedWorkspace&&!n.sessionSwitching||(++r,l=null,R(),F(),o=null,s=null,t({...k(),...A(),selectedWorkspace:e,workspaceDraft:!0,sessionSwitching:!1,modelSelectionPending:!1,promptAdmissionPending:!1,promptAdmissionRecovery:null,promptAdmissionResolution:n.promptAdmissionRecovery?{commandId:n.promptAdmissionRecovery.commandId,content:n.promptAdmissionRecovery.content}:n.promptAdmissionResolution,notice:null}))},async renameWorkspace(t,n){try{await e.renameWorkspace(t,n),await se.refreshSnapshot()}catch(e){throw P(e),e}},async removeWorkspace(n){try{await e.removeWorkspace(n),N().selectedWorkspace===n&&F(),t({selectedPath:null,selectedWorkspace:N().selectedWorkspace===n?null:N().selectedWorkspace}),await se.refreshSnapshot()}catch(e){P(e)}},async createSession(n){if(!n||N().modelSelectionPending)return null;let i=N(),a=++r;R(),F();let d=(l?.workspacePath===n?l.commandId:void 0)??globalThis.crypto?.randomUUID?.()??`web-create-${Date.now()}-${a}`;l={workspacePath:n,commandId:d},o=null,s=null,t({...k(),...A(),mobileSidebarOpen:!1,promptAdmissionPending:!1,promptAdmissionRecovery:null,promptAdmissionResolution:i.promptAdmissionRecovery?{commandId:i.promptAdmissionRecovery.commandId,content:i.promptAdmissionRecovery.content}:i.promptAdmissionResolution,selectedPath:null,selectedWorkspace:n,workspaceDraft:!0,sessionSwitching:!0});let f=null,p=u.then(async()=>{if(a===r){c={commandId:d,epoch:a,expectedPath:null,kind:`create`};try{let i=await e.createSession(n,d);if(a!==r)return;if(i.cancelled||i.commandId!==d||typeof i.sessionId!=`string`||!i.sessionId||i.sessionId.length>128||i.sessionPath!==void 0&&!i.sessionPath)throw Error(`Session creation did not return a valid target identity.`);let o={epoch:a,sessionId:i.sessionId,sessionPath:i.sessionPath??null,workspacePath:n};c?.epoch===a&&(c.expectedSessionId=o.sessionId,c.expectedPath=o.sessionPath),t({selectedPath:o.sessionPath});let s=await se.refreshSnapshot({epoch:a});if(!s&&a===r&&(s=await se.refreshSnapshot({epoch:a})),a!==r)return;if(!s)throw Error(`The created Session could not be confirmed. Please try again.`);if(!ee(o)){l=null,P(Error(`The created Session is no longer active in the selected workspace. Please try again.`));return}t({workspaceDraft:!1,notice:null});let u=N().draftModel;if(u&&!await I(u,a,o.sessionId))return;if(N().workspaceDraft||!ee(o)){l=null,P(Error(`The created Session is no longer active in the selected workspace. Please try again.`));return}f=o,l=null}catch(e){if(a!==r)return;t({selectedPath:null}),P(e),await se.refreshSnapshot({epoch:a})}finally{O(D,d),c?.epoch===a&&(c=null),a===r&&t({sessionSwitching:!1})}}});return u=p.catch(()=>void 0),await p,a===r?f:null},async selectSession(n){if(!n)return;l=null;let i=N();F(),t({...A(),workspaceDraft:!1,draftModel:null,modelSelectionPending:!1});let a=++r;R(),o=null,s=null,t({...k(),mobileSidebarOpen:!1,promptAdmissionPending:!1,promptAdmissionRecovery:null,promptAdmissionResolution:i.promptAdmissionRecovery?{commandId:i.promptAdmissionRecovery.commandId,content:i.promptAdmissionRecovery.content}:i.promptAdmissionResolution,selectedPath:n,sessionSwitching:!0});let d=u.then(async()=>{if(a===r){c={epoch:a,expectedPath:n,kind:`select`};try{if(await e.selectSession(n),a!==r)return;await se.refreshSnapshot({epoch:a})||t({selectedPath:null})}catch(e){if(a!==r)return;t({selectedPath:null}),P(e),await se.refreshSnapshot({epoch:a})}finally{c?.epoch===a&&(c=null),a===r&&t({sessionSwitching:!1})}}});u=d.catch(()=>void 0),await d},async renameSession(t,n){try{await e.renameSession(t,n),await se.refreshSnapshot()}catch(e){throw P(e),e}},async archiveSession(t){try{await e.archiveSession(t),await se.refreshSnapshot()}catch(e){P(e)}},async unarchiveSession(t){let n=r;try{return await e.unarchiveSession(t),n!==r||await se.refreshSnapshot({epoch:n})}catch(e){return n===r&&P(e),!1}},async selectModel(e){let[n,...i]=e.split(`/`),a=i.join(`/`),o=N();if(!n||!a||o.sessionSwitching||o.modelSelectionPending||o.promptAdmissionPending||!o.workspaceDraft&&(o.liveRunning||o.snapshot?.runtime.status===`running`))return;let s=o.snapshot?.selectedSession?.id;if(o.workspaceDraft||!s&&!o.snapshot?.currentSessionId){let e=[...o.snapshot?.models??[],...o.modelSearch.models].find(e=>e.provider===n&&e.id===a);e&&t({draftModel:e,notice:null});return}!s||s!==o.snapshot?.currentSessionId||(R(),await I({provider:n,id:a},r,s))},async searchModels(n){let a=n.trim();if(!a){t(A());return}h?.abort();let o=new AbortController;h=o;let s=++g,c=r,l=i,u=N().snapshot?.currentSessionId;t({modelSearch:{query:a,status:`loading`,models:[],totalMatches:0,matchesOmitted:0,error:null}});try{let n=await e.searchModels(a,u,o.signal);if(o.signal.aborted||c!==r||l!==i||s!==g)return;t({modelSearch:{query:a,status:`ready`,models:n.models,totalMatches:n.totalMatches,matchesOmitted:n.truncation.matchesOmitted,error:null}})}catch(e){if(o.signal.aborted||c!==r||l!==i||s!==g)return;t({modelSearch:{query:a,status:`error`,models:[],totalMatches:0,matchesOmitted:0,error:e instanceof Error?e.message:String(e)}})}finally{h===o&&(h=null)}},clearModelSearch(){t(A())},selectThinking(e){let n=N(),r=n.snapshot?.thinking,i=n.snapshot?.selectedSession?.id;!e||!r?.supported||n.sessionSwitching||n.modelSelectionPending||n.workspaceDraft||!i||i!==n.snapshot?.currentSessionId||n.liveRunning||n.snapshot?.runtime.status===`running`||e!==(n.thinkingPendingLevel??r.level)&&(_=e,v++,t({thinkingPendingLevel:e}),ie())},async cancelActiveTurn(){let n=N().activeTurn??N().snapshot?.runtime.activeTurn;if(!n||N().turnCancellationPending||N().sessionSwitching)return;let i=r;t({turnCancellationPending:!0});try{await e.cancelActiveTurn(n)}catch(e){if(i!==r)return;await se.refreshSnapshot({epoch:i}),i===r&&P(e)}finally{i===r&&t({turnCancellationPending:!1})}},async sendPrompt(n){let i=n.trim(),c=N(),l=c.promptAdmissionRecovery,u=l?.phase===`submitting`?l:null,d=c.selectedWorkspace;if(!d||!i||c.sessionSwitching||c.promptAdmissionPending||l&&!u||c.promptAdmissionResolution||c.modelSelectionPending||c.thinkingPendingLevel!==null)return!1;let f=N().workspaceDraft||!N().snapshot?.selectedSession?.id,p=f?await se.createSession(d):null;if(f&&!p)return N().notice||t({notice:`The active Session changed before the first message was sent. Your message was not sent.`}),!1;if(f&&N().draftModel)return!1;let m=N().snapshot?.selectedSession,h=p??(m?{epoch:r,sessionId:m.id,sessionPath:m.path,workspacePath:d}:null);if(!h||N().workspaceDraft||!ee(h)||N().sessionSwitching||N().promptAdmissionPending||u&&(N().promptAdmissionRecovery?.commandId!==u.commandId||N().promptAdmissionRecovery?.phase!==`submitting`))return!1;let{epoch:g,sessionId:_}=h,v=N().draftModel;if(v&&!await I(v,g,_)||N().workspaceDraft||!ee(h)||u&&(N().promptAdmissionRecovery?.commandId!==u.commandId||N().promptAdmissionRecovery?.phase!==`submitting`))return!1;let y=++a,b=s?.sessionId===_&&s.content===i,x=b?s.commandId:globalThis.crypto?.randomUUID?.()??`web-prompt-${Date.now()}-${y}`,S=b?s.optimisticKey:`optimistic-${x}`;s={sessionId:_,content:i,commandId:x,optimisticKey:S},o=y,t({liveMessages:b?N().liveMessages:[...N().liveMessages,{key:S,message:{role:`user`,content:i}}].slice(-8),notice:null,pendingFollowUpsReceipt:null,turnTerminalStatus:null,promptAdmissionPending:!0,scrollToBottom:N().scrollToBottom+1});try{let n=await e.prompt(_,i,x,b);if(g!==r||o!==y)return!1;let a=E.has(n.id);return s?.commandId===x&&(s=null),t({...M(a,N().livePhase),pendingFollowUpsReceipt:n.pendingFollowUps??null,...u&&N().promptAdmissionRecovery?.commandId===u.commandId?{promptAdmissionRecovery:null}:{}}),L(120),!0}catch(e){if(g!==r||o!==y)return!1;if(e instanceof Qu&&e.code===`COMMAND_ADMISSION_UNKNOWN`&&s?.commandId===x){let e=s;s=null,t({liveRunning:!1,livePhase:`idle`,liveRetry:null,notice:null,promptAdmissionPending:!1,promptAdmissionRecovery:{...e,phase:`checking`}});let n=await se.refreshSnapshot({resetCursor:!0,epoch:g}),r=N().promptAdmissionRecovery;return r?.commandId===x&&t({promptAdmissionRecovery:{...r,phase:n?`ready`:`verification-failed`}}),!1}return e instanceof Qu&&[`WORKSPACE_REQUIRED`,`SESSION_CONFLICT`,`PROMPT_REJECTED`,`COMMAND_CONFLICT`,`PROMPT_ADMISSION_CAPACITY`].includes(e.code??``)?(s?.commandId===x&&(s=null),t({liveMessages:N().liveMessages.filter(e=>e.key!==S),livePhase:`idle`,liveRetry:null,liveRunning:!1}),P(e),!1):(t({liveRunning:!0,livePhase:N().livePhase===`running`?`running`:`preparing`,liveRetry:null}),P(e),!1)}finally{g===r&&o===y&&(o=null,t({promptAdmissionPending:!1}))}},async checkPromptAdmissionRecovery(){let e=N().promptAdmissionRecovery;if(!e||e.phase!==`verification-failed`)return;let n=r;t({notice:null,promptAdmissionRecovery:{...e,phase:`checking`}});let i=await se.refreshSnapshot({resetCursor:!0,epoch:n}),a=N().promptAdmissionRecovery;a?.commandId===e.commandId&&a.phase===`checking`&&t({promptAdmissionRecovery:{...a,phase:i?`ready`:`verification-failed`}})},async sendPromptAsNew(e){let n=N().promptAdmissionRecovery;if(!n||n.phase!==`ready`||n.sessionId!==N().snapshot?.selectedSession?.id)return!1;let r=e.trim();if(!r)return!1;t({promptAdmissionRecovery:{...n,phase:`submitting`},notice:null});let i=!1;try{return i=await se.sendPrompt(r),i}finally{let e=N().promptAdmissionRecovery;e?.commandId===n.commandId&&e.phase===`submitting`&&t({promptAdmissionRecovery:i?null:{...e,phase:`ready`}})}},abandonPromptAdmission(){let e=N().promptAdmissionRecovery;!e||e.phase===`submitting`||t({liveMessages:N().liveMessages.filter(t=>t.key!==e.optimisticKey),notice:null,promptAdmissionRecovery:null})},acknowledgePromptAdmissionResolution(e){N().promptAdmissionResolution?.commandId===e&&t({promptAdmissionResolution:null})},async discoverCommands(){let n=N(),i=n.snapshot?.selectedSession?.id;if(n.workspaceDraft||!i||i!==n.snapshot?.currentSessionId||n.sessionSwitching){F();return}if(n.commandDiscovery.sessionId===i&&(n.commandDiscovery.status===`loading`||n.commandDiscovery.status===`ready`))return;let a=r,o=++T;w?.abort();let s=new AbortController;w=s,t({commandDiscovery:{sessionId:i,status:`loading`,commands:[],totalAvailable:0,commandsOmitted:0,error:null}});try{let n=await e.commands(i,s.signal);if(s.signal.aborted||a!==r||o!==T||i!==N().snapshot?.currentSessionId)return;t({commandDiscovery:{sessionId:i,status:`ready`,commands:n.commands,totalAvailable:n.totalAvailable,commandsOmitted:n.truncation.commandsOmitted,error:null}})}catch(e){if(s.signal.aborted||a!==r||o!==T)return;t({commandDiscovery:{sessionId:i,status:`error`,commands:[],totalAvailable:0,commandsOmitted:0,error:e instanceof Error?e.message:String(e)}})}finally{w===s&&(w=null)}},clearCommandDiscovery:F,setQuery(e){t({query:e})},setSearchOpen(e){t({searchOpen:e,...e?{}:{query:``}})},toggleWorkspace(e){let n=new Set(N().collapsed);n.has(e)?n.delete(e):n.add(e),aS(eS,[...n]),t({collapsed:n})},toggleSidebar(e){if(e){t({mobileSidebarOpen:!N().mobileSidebarOpen});return}let n=!N().sidebarCollapsed;try{window.sessionStorage.setItem(tS,String(n))}catch{}t({sidebarCollapsed:n})},closeMobileSidebar(){t({mobileSidebarOpen:!1})},clearNotice(){t({notice:null})}};return{activeTurn:null,turnCancellationPending:!1,turnTerminalStatus:null,pendingFollowUpsReceipt:null,snapshot:null,cursor:null,selectedPath:null,selectedWorkspace:null,workspaceDraft:!1,draftModel:null,modelSelectionPending:!1,modelSearch:{query:``,status:`idle`,models:[],totalMatches:0,matchesOmitted:0,error:null},collapsed:rS(eS),sidebarCollapsed:iS(tS),mobileSidebarOpen:!1,query:``,searchOpen:!1,connection:`connecting`,notice:null,liveMessages:[],liveRunning:!1,livePhase:`idle`,liveRetry:null,thinkingStarts:{},thinkingDurations:{},promptAdmissionPending:!1,promptAdmissionRecovery:null,promptAdmissionResolution:null,sessionSwitching:!1,scrollToBottom:0,thinkingPendingLevel:null,commandDiscovery:j(),actions:se}})}var cS=sS();function lS(){let e=fn(cS),{t}=sn(),{actions:n}=e,r=(0,w.useRef)(null),[i,a]=(0,w.useState)(()=>window.matchMedia?.(`(max-width: 760px)`).matches??!1),o=i&&e.mobileSidebarOpen;(0,w.useEffect)(()=>{let e=window.matchMedia?.(`(max-width: 760px)`);if(!e)return;let t=()=>{a(e.matches),e.matches||n.closeMobileSidebar()};return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[n]);let[s,c]=(0,w.useState)(`chat`),[l,u]=(0,w.useState)(null),d=e.snapshot?.models.find(e=>e.current),f=JSON.stringify([d?.provider,d?.id]),p=t=>{let n=e.snapshot,r=n?.selectedSession;e.workspaceDraft||!n||!r||e.sessionSwitching||r.id!==n.currentSessionId||u({sessionId:r.id,sessionPath:r.path,cwd:r.cwd,model:d?.label??``,modelKey:f,terminalId:t})},m=l&&!e.workspaceDraft&&!e.sessionSwitching&&l.sessionId===e.snapshot?.currentSessionId&&l.sessionPath===e.snapshot?.selectedSession?.path&&l.modelKey===f;(0,w.useEffect)(()=>{l&&!m&&u(null)},[l,m]),(0,w.useEffect)(()=>(n.start(),n.stop),[n]);let h=e.workspaceDraft?void 0:e.snapshot?.selectedSession,g=h?.entries.some(e=>e.type===`message`&&e.message)||e.liveMessages.length>0,_=!h||!g,v=(0,w.useCallback)(e=>n.sendPrompt(e),[n]);return(0,V.jsxs)(`div`,{className:`app-shell ${e.sidebarCollapsed?`sidebar-collapsed`:``} ${e.mobileSidebarOpen?`sidebar-open`:``}`,children:[(0,V.jsx)(rd,{snapshot:e.snapshot,selectedPath:e.workspaceDraft?null:e.selectedPath,selectedWorkspace:e.selectedWorkspace,collapsed:e.collapsed,query:e.query,searchOpen:e.searchOpen,mobileOpen:o,returnFocusRef:r,actions:n}),e.sidebarCollapsed&&(0,V.jsx)(`button`,{className:`sidebar-expand`,type:`button`,"aria-label":t(`expandSidebar`),title:t(`expandSidebar`),onClick:()=>n.toggleSidebar(!1),children:(0,V.jsx)(Se,{})}),(0,V.jsxs)(`main`,{inert:o,className:`conversation-shell ${h?`has-view`:``} ${_&&(e.workspaceDraft||s===`chat`)?`landing`:``}`,children:[(0,V.jsx)(`h1`,{className:`sr-only`,children:`OpenPI`}),(0,V.jsxs)(`header`,{className:`mobile-header`,children:[(0,V.jsx)(`button`,{ref:r,type:`button`,"aria-label":t(`openSidebar`),"aria-controls":`session-sidebar`,"aria-expanded":o,onClick:()=>n.toggleSidebar(!0),children:(0,V.jsx)(be,{})}),(0,V.jsx)(`span`,{className:`connection-state ${e.connection}`,children:t(e.connection)})]}),h&&(0,V.jsxs)(`fieldset`,{className:`conversation-view-switch`,"aria-label":t(`conversationView`),children:[(0,V.jsx)(`button`,{type:`button`,"aria-pressed":s===`chat`,onClick:()=>c(`chat`),children:t(`chatView`)}),(0,V.jsx)(`button`,{type:`button`,"aria-pressed":s===`trajectory`,onClick:()=>c(`trajectory`),children:t(`trajectory`)})]}),e.sessionSwitching?(0,V.jsx)(`div`,{className:`conversation switching`,role:`status`,children:(0,V.jsxs)(`div`,{className:`conversation-running`,children:[(0,V.jsx)(`span`,{className:`conversation-running-dot`}),(0,V.jsx)(`span`,{children:t(`switchingSession`)})]})}):s===`trajectory`&&h&&e.snapshot?(0,V.jsx)(od,{snapshot:e.snapshot,running:e.liveRunning},h.path):_?(0,V.jsx)(`section`,{className:`conversation landing-conversation`,"aria-label":`Conversation`,children:(0,V.jsx)(`div`,{className:`landing-welcome`,children:(0,V.jsx)(hn,{animated:!0})})}):e.snapshot?(0,V.jsx)(zx,{snapshot:e.snapshot,liveMessages:e.liveMessages,liveRunning:e.liveRunning,livePhase:e.livePhase,liveRetry:e.liveRetry,thinkingStarts:e.thinkingStarts,thinkingDurations:e.thinkingDurations,scrollToBottom:e.scrollToBottom,onResend:v}):null,(0,V.jsx)(lu,{workspaceDraft:e.workspaceDraft,draftModel:e.draftModel,modelSelectionPending:e.modelSelectionPending,modelSearch:e.modelSearch,thinkingPendingLevel:e.thinkingPendingLevel,onInspect:p,activeTurn:e.activeTurn,turnCancellationPending:e.turnCancellationPending,turnTerminalStatus:e.turnTerminalStatus,pendingFollowUpsReceipt:e.pendingFollowUpsReceipt,commandDiscovery:e.commandDiscovery,snapshot:e.snapshot,selectedWorkspace:e.selectedWorkspace,sessionSwitching:e.sessionSwitching,promptAdmissionPending:e.promptAdmissionPending,promptAdmissionRecovery:e.promptAdmissionRecovery,promptAdmissionResolution:e.promptAdmissionResolution,liveRunning:e.liveRunning,landing:_,actions:n}),e.notice&&(0,V.jsxs)(`div`,{className:`notice`,role:`alert`,children:[(0,V.jsx)(`span`,{children:e.notice}),(0,V.jsx)(`button`,{type:`button`,"aria-label":t(`close`),onClick:n.clearNotice,children:(0,V.jsx)(Re,{})})]})]}),m&&(0,V.jsx)(td,{target:l,onClose:()=>u(null)},`${l.sessionId}:${l.sessionPath}:${l.terminalId??`status`}`),(0,V.jsx)(`button`,{className:`sidebar-scrim`,type:`button`,tabIndex:-1,"aria-hidden":`true`,"aria-label":t(`close`),onClick:n.closeMobileSidebar})]})}var uS={base:{k1xSpc:`xjp7ctv`,kMwMTN:`x1tgivj0`,kMv6JI:`x9ynric`,$$css:!0},light:{kQNsl9:`x19aimcq`,$$css:!0},dark:{kQNsl9:`xntwwlm`,$$css:!0},system:{kQNsl9:`x108lcm5`,$$css:!0}},dS=w.createContext(!1);dS.displayName=`ThemeNestingContext`;var fS=new Set,pS=0;function mS(e){let t=(0,w.useId)();(0,w.useInsertionEffect)(()=>{if(e.__built)return;let n=`astryx-theme-${e.name}`;if(fS.has(n))return;`${e.name}`,`${e.name}${e.name}${e.name}${e.name}`;let{prose:r,component:i}=Fs(e),a=Ps();fS.add(n);let o=[()=>fS.delete(n)];if(a){if(pS++===0){let e=document.createElement(`style`);e.setAttribute(Zr(`theme-base`),``),e.textContent=`@layer astryx-base {\n${a}\n}`,document.head.appendChild(e)}o.push(()=>{--pS===0&&document.querySelector(`style[${Zr(`theme-base`)}]`)?.remove()})}if(r){let n=document.createElement(`style`);n.setAttribute(Zr(`theme-prose`),e.name),n.setAttribute(Zr(`id`),t),n.textContent=`@layer reset {\n${r}\n}`,document.head.appendChild(n)}if(i){let n=document.createElement(`style`);n.setAttribute(Zr(`theme`),e.name),n.setAttribute(Zr(`id`),t),n.textContent=`@layer astryx-theme {\n${i}\n}`,document.head.appendChild(n)}return(r||i)&&o.push(()=>{let n=document.querySelector(`style[${Zr(`theme-prose`)}="${e.name}"][${Zr(`id`)}="${t}"]`),r=document.querySelector(`style[${Zr(`theme`)}="${e.name}"][${Zr(`id`)}="${t}"]`);n?.remove(),r?.remove()}),()=>{for(let e of o)e()}},[e,t])}function hS(e,t,n){Fc(()=>{if(!e&&!(typeof document>`u`))return t===`light`||t===`dark`?document.documentElement.setAttribute(`data-theme`,t):document.documentElement.removeAttribute(`data-theme`),document.documentElement.setAttribute(Zr(`theme`),n),()=>{document.documentElement.removeAttribute(`data-theme`),document.documentElement.removeAttribute(Zr(`theme`))}},[e,t,n])}function gS({theme:e,mode:t=`system`,children:n}){let r=(0,w.use)(dS);cs(e),mS(e),hS(r,t,e.name);let i=t===`dark`?uS.dark:t===`light`?uS.light:uS.system,a=(0,w.useMemo)(()=>({theme:e,mode:t}),[e,t]);return(0,V.jsx)(Ls,{value:a,children:(0,V.jsx)(dS,{value:!0,children:(0,V.jsx)(`div`,{...bn(uS.base,i),"data-astryx-theme":e.name,"data-theme":t===`system`?void 0:t,children:n})})})}gS.displayName=`Theme`;var _S={size:`1em`,"aria-hidden":!0},vS={name:`neutral`,__built:!0,tokens:{"--font-size-4xs":`0.375rem`,"--font-size-3xs":`0.4375rem`,"--font-size-2xs":`0.5rem`,"--font-size-xs":`0.625rem`,"--font-size-sm":`0.75rem`,"--font-size-base":`0.875rem`,"--font-size-lg":`1.0625rem`,"--font-size-xl":`1.25rem`,"--font-size-2xl":`1.5rem`,"--font-size-3xl":`1.8125rem`,"--font-size-4xl":`2.1875rem`,"--font-size-5xl":`2.625rem`,"--text-heading-1-size":`var(--font-size-2xl)`,"--text-heading-1-weight":`var(--font-weight-semibold)`,"--text-heading-1-leading":`1.3333`,"--text-heading-2-size":`var(--font-size-xl)`,"--text-heading-2-weight":`var(--font-weight-semibold)`,"--text-heading-2-leading":`1.4`,"--text-heading-3-size":`var(--font-size-lg)`,"--text-heading-3-weight":`var(--font-weight-bold)`,"--text-heading-3-leading":`1.4118`,"--text-heading-4-size":`var(--font-size-base)`,"--text-heading-4-weight":`var(--font-weight-bold)`,"--text-heading-4-leading":`1.4286`,"--text-heading-5-size":`var(--font-size-sm)`,"--text-heading-5-weight":`var(--font-weight-semibold)`,"--text-heading-5-leading":`1.6667`,"--text-heading-6-size":`var(--font-size-xs)`,"--text-heading-6-weight":`var(--font-weight-semibold)`,"--text-heading-6-leading":`1.6`,"--text-body-size":`var(--font-size-base)`,"--text-body-weight":`var(--font-weight-normal)`,"--text-body-leading":`1.4286`,"--text-large-size":`var(--font-size-lg)`,"--text-large-weight":`var(--font-weight-semibold)`,"--text-large-leading":`1.4118`,"--text-label-size":`var(--font-size-base)`,"--text-label-weight":`var(--font-weight-medium)`,"--text-label-leading":`1.4286`,"--text-code-size":`var(--font-size-base)`,"--text-code-weight":`var(--font-weight-normal)`,"--text-code-leading":`1.4286`,"--text-supporting-size":`var(--font-size-sm)`,"--text-supporting-weight":`var(--font-weight-normal)`,"--text-supporting-leading":`1.6667`,"--text-display-1-size":`var(--font-size-5xl)`,"--text-display-1-weight":`var(--font-weight-normal)`,"--text-display-1-leading":`1.2381`,"--text-display-2-size":`var(--font-size-4xl)`,"--text-display-2-weight":`var(--font-weight-normal)`,"--text-display-2-leading":`1.2571`,"--text-display-3-size":`var(--font-size-3xl)`,"--text-display-3-weight":`var(--font-weight-normal)`,"--text-display-3-leading":`1.3793`,"--duration-fast-min":`95ms`,"--duration-fast":`125ms`,"--duration-fast-max":`165ms`,"--duration-medium-min":`225ms`,"--duration-medium":`300ms`,"--duration-medium-max":`400ms`,"--duration-slow-min":`525ms`,"--duration-slow":`700ms`,"--duration-slow-max":`935ms`,"--font-family-body":`Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`,"--font-family-heading":`Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`,"--font-family-code":`ui-monospace, "SF Mono", Monaco, Consolas, "Liberation Mono", "Courier New", monospace`,"--color-syntax-keyword":`light-dark(#700084, #efa8ff)`,"--color-syntax-string":`light-dark(#005600, #a6d2a2)`,"--color-syntax-comment":`light-dark(#737373, #a3a3a3)`,"--color-syntax-number":`light-dark(#6e3500, #ffb37f)`,"--color-syntax-function":`light-dark(#00458c, #a0caff)`,"--color-syntax-type":`light-dark(#700084, #efa8ff)`,"--color-syntax-variable":`light-dark(#171717, #e5e5e5)`,"--color-syntax-operator":`light-dark(#737373, #a3a3a3)`,"--color-syntax-constant":`light-dark(#6e3500, #ffb37f)`,"--color-syntax-tag":`light-dark(#89001a, #ffaeaa)`,"--color-syntax-attribute":`light-dark(#584400, #eec12f)`,"--color-syntax-property":`light-dark(#005348, #83dac9)`,"--color-syntax-punctuation":`light-dark(#6e6e6e, #a0a0a0)`,"--color-syntax-background":`light-dark(#fafafa, #0a0a0a)`,"--color-background-surface":`light-dark(#ffffff, #262626)`,"--color-background-body":`light-dark(#f1f1f1, #1b1b1b)`,"--color-background-card":`light-dark(#ffffff, #1b1b1b)`,"--color-background-popover":`light-dark(#ffffff, #1b1b1b)`,"--color-background-muted":`light-dark(#f1f1f1, #1b1b1b)`,"--color-accent":`light-dark(#262626, #ebebeb)`,"--color-accent-muted":`light-dark(#f1f1f1, #262626)`,"--color-neutral":`light-dark(#0000000F, #FFFFFF1A)`,"--color-overlay":`light-dark(#00000080, #000000CC)`,"--color-overlay-hover":`light-dark(#0000000D, #FFFFFF0D)`,"--color-overlay-pressed":`light-dark(#0000001A, #FFFFFF1A)`,"--color-text-primary":`light-dark(#171717, #fafafa)`,"--color-text-secondary":`light-dark(#525252, #a3a3a3)`,"--color-text-disabled":`light-dark(#a3a3a3, #525252)`,"--color-text-accent":`light-dark(#262626, #ebebeb)`,"--color-on-dark":`#ffffff`,"--color-on-light":`#171717`,"--color-on-accent":`light-dark(#ffffff, #171717)`,"--color-on-success":`light-dark(#ffffff, #171717)`,"--color-on-error":`light-dark(#ffffff, #171717)`,"--color-on-warning":`#171717`,"--color-icon-accent":`light-dark(#262626, #ebebeb)`,"--color-icon-primary":`light-dark(#171717, #fafafa)`,"--color-icon-secondary":`light-dark(#737373, #a3a3a3)`,"--color-icon-disabled":`light-dark(#a3a3a3, #525252)`,"--color-success":`light-dark(#007004, #9fe59b)`,"--color-error":`light-dark(#a50c25, #ffc6c1)`,"--color-warning":`light-dark(#745b00, #fdcf4f)`,"--color-success-muted":`light-dark(#c5e5c0, #84c9803D)`,"--color-error-muted":`light-dark(#facecb, #ff9e973D)`,"--color-warning-muted":`light-dark(#f8da9d, #deb4333D)`,"--color-border":`light-dark(#00000014, #FFFFFF1A)`,"--color-border-emphasized":`light-dark(#d4d4d4, #525252)`,"--color-skeleton":`light-dark(#ebebeb, #525252)`,"--color-shadow":`light-dark(#0000001A, #0000004D)`,"--color-tint-hover":`light-dark(black, white)`,"--color-background-red":`light-dark(#facecb, #ff9e973D)`,"--color-border-red":`light-dark(#e6bab8, #ff6f6c)`,"--color-icon-red":`light-dark(#89001a, #ff9e97)`,"--color-text-red":`light-dark(#89001a, #ffc6c1)`,"--color-background-orange":`light-dark(#fad0b5, #ffa2583D)`,"--color-border-orange":`light-dark(#e6bda2, #e2883e)`,"--color-icon-orange":`light-dark(#6e3500, #ffa258)`,"--color-text-orange":`light-dark(#6e3500, #ffc9a2)`,"--color-background-yellow":`light-dark(#f8da9d, #deb4333D)`,"--color-border-yellow":`light-dark(#e4c279, #c0990e)`,"--color-icon-yellow":`light-dark(#584400, #deb433)`,"--color-text-yellow":`light-dark(#584400, #fdcf4f)`,"--color-background-green":`light-dark(#c5e5c0, #84c9803D)`,"--color-border-green":`light-dark(#b2d1ac, #69ad67)`,"--color-icon-green":`light-dark(#0c5700, #84c980)`,"--color-text-green":`light-dark(#0c5700, #9fe59b)`,"--color-background-teal":`light-dark(#a5e3d6, #7ec6b83D)`,"--color-border-teal":`light-dark(#94d6c8, #63ab9d)`,"--color-icon-teal":`light-dark(#005348, #7ec6b8)`,"--color-text-teal":`light-dark(#005348, #99e2d3)`,"--color-background-cyan":`light-dark(#a3e0ef, #83c2d43D)`,"--color-border-cyan":`light-dark(#91d3e3, #67a7b8)`,"--color-icon-cyan":`light-dark(#00505f, #83c2d4)`,"--color-text-cyan":`light-dark(#00505f, #9edef0)`,"--color-background-blue":`light-dark(#c4ddfb, #9eb7ff3D)`,"--color-border-blue":`light-dark(#b1c9e7, #6d9cfe)`,"--color-icon-blue":`light-dark(#00458c, #9eb7ff)`,"--color-text-blue":`light-dark(#00458c, #c7d3ff)`,"--color-background-purple":`light-dark(#eccef3, #f297ff3D)`,"--color-border-purple":`light-dark(#d8bbdf, #dd74f0)`,"--color-icon-purple":`light-dark(#700084, #f297ff)`,"--color-text-purple":`light-dark(#700084, #fac1ff)`,"--color-background-pink":`light-dark(#fccadc, #ff99c33D)`,"--color-border-pink":`light-dark(#e7b7c8, #f273aa)`,"--color-icon-pink":`light-dark(#83004b, #ff99c3)`,"--color-text-pink":`light-dark(#83004b, #ffc3da)`,"--color-background-gray":`light-dark(#e5e5e5, var(--color-neutral))`,"--color-border-gray":`light-dark(#d4d4d4, #262626)`,"--color-icon-gray":`light-dark(#525252, #a3a3a3)`,"--color-text-gray":`light-dark(#262626, #e5e5e5)`,"--radius-none":`0px`,"--radius-inner":`0.375rem`,"--radius-element":`0.625rem`,"--radius-container":`0.75rem`,"--radius-page":`1.75rem`,"--radius-full":`9999px`,"--shadow-low":`0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 25%)), 0 4px 8px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 40%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 8%))`,"--shadow-med":`0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 35%)), 0 4px 12px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 12%))`,"--shadow-high":`0 4px 6px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), 0 12px 24px light-dark(oklch(0 0 0 / 15%), oklch(0 0 0 / 70%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 15%))`,"--shadow-inset-hover":`inset 0px 0px 0px 2px #0074e24D`,"--shadow-inset-selected":`inset 0px 0px 0px 2px #0074e280`,"--shadow-inset-success":`inset 0px 0px 0px 2px #1981004D`,"--shadow-inset-warning":`inset 0px 0px 0px 2px #ffce2f4D`,"--shadow-inset-error":`inset 0px 0px 0px 2px #e33f4a4D`},components:{heading:{"level:1":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-heading-1-size)`,fontWeight:`var(--text-heading-1-weight)`,lineHeight:`var(--text-heading-1-leading)`},"level:2":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-heading-2-size)`,fontWeight:`var(--text-heading-2-weight)`,lineHeight:`var(--text-heading-2-leading)`},"level:3":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-heading-3-size)`,fontWeight:`var(--text-heading-3-weight)`,lineHeight:`var(--text-heading-3-leading)`},"level:4":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-heading-4-size)`,fontWeight:`var(--text-heading-4-weight)`,lineHeight:`var(--text-heading-4-leading)`},"level:5":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-heading-5-size)`,fontWeight:`var(--text-heading-5-weight)`,lineHeight:`var(--text-heading-5-leading)`},"level:6":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-heading-6-size)`,fontWeight:`var(--text-heading-6-weight)`,lineHeight:`var(--text-heading-6-leading)`},"type:display-1":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-display-1-size)`,lineHeight:`var(--text-display-1-leading)`},"type:display-2":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-display-2-size)`,lineHeight:`var(--text-display-2-leading)`},"type:display-3":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-display-3-size)`,lineHeight:`var(--text-display-3-leading)`}},text:{"type:body":{fontFamily:`var(--font-family-body)`,fontSize:`var(--text-body-size)`,lineHeight:`var(--text-body-leading)`},"type:large":{fontFamily:`var(--font-family-body)`,fontSize:`var(--text-large-size)`,lineHeight:`var(--text-large-leading)`},"type:label":{fontFamily:`var(--font-family-body)`,fontSize:`var(--text-label-size)`,lineHeight:`var(--text-label-leading)`},"type:code":{fontFamily:`var(--font-family-code)`,fontSize:`var(--text-code-size)`,lineHeight:`var(--text-code-leading)`},"type:supporting":{fontFamily:`var(--font-family-body)`,fontSize:`var(--text-supporting-size)`,lineHeight:`var(--text-supporting-leading)`},"type:display-1":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-display-1-size)`,lineHeight:`var(--text-display-1-leading)`},"type:display-2":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-display-2-size)`,lineHeight:`var(--text-display-2-leading)`},"type:display-3":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-display-3-size)`,lineHeight:`var(--text-display-3-leading)`}},button:{"variant:destructive":{backgroundColor:`var(--color-error-muted)`,color:`var(--color-error)`}},badge:{"variant:info":{backgroundColor:`light-dark(#0074e2, #6d9cfe)`,color:`light-dark(#ffffff, #171717)`},"variant:neutral":{backgroundColor:`var(--color-background-gray)`,color:`var(--color-text-gray)`},"variant:success":{backgroundColor:`light-dark(#198100, #64af4c)`,color:`light-dark(#ffffff, #171717)`},"variant:warning":{backgroundColor:`#ffce2f`,color:`#171717`},"variant:error":{backgroundColor:`light-dark(#c9303a, #ff705d)`,color:`light-dark(#ffffff, #171717)`},"variant:red":{backgroundColor:`var(--color-background-red)`,color:`var(--color-text-red)`},"variant:orange":{backgroundColor:`var(--color-background-orange)`,color:`var(--color-text-orange)`},"variant:yellow":{backgroundColor:`var(--color-background-yellow)`,color:`var(--color-text-yellow)`},"variant:green":{backgroundColor:`var(--color-background-green)`,color:`var(--color-text-green)`},"variant:teal":{backgroundColor:`var(--color-background-teal)`,color:`var(--color-text-teal)`},"variant:cyan":{backgroundColor:`var(--color-background-cyan)`,color:`var(--color-text-cyan)`},"variant:blue":{backgroundColor:`var(--color-background-blue)`,color:`var(--color-text-blue)`},"variant:purple":{backgroundColor:`var(--color-background-purple)`,color:`var(--color-text-purple)`},"variant:pink":{backgroundColor:`var(--color-background-pink)`,color:`var(--color-text-pink)`},"variant:gray":{backgroundColor:`var(--color-background-gray)`,color:`var(--color-text-gray)`}},statusdot:{"variant:success":{backgroundColor:`light-dark(#198100, #64af4c)`},"variant:warning":{backgroundColor:`#ffce2f`},"variant:error":{backgroundColor:`light-dark(#c9303a, #ff705d)`},"variant:accent":{backgroundColor:`light-dark(#0074e2, #6d9cfe)`}},banner:{"status:info":{"--color-accent-muted":`var(--color-background-blue)`,"--color-text-primary":`var(--color-text-blue)`,"--color-text-secondary":`var(--color-text-blue)`,"--color-accent":`var(--color-text-blue)`},"status:success":{"--color-text-primary":`var(--color-text-green)`,"--color-text-secondary":`var(--color-text-green)`,"--color-success":`var(--color-text-green)`},"status:warning":{"--color-text-primary":`var(--color-text-yellow)`,"--color-text-secondary":`var(--color-text-yellow)`,"--color-warning":`var(--color-text-yellow)`},"status:error":{"--color-text-primary":`var(--color-text-red)`,"--color-text-secondary":`var(--color-text-red)`,"--color-error":`var(--color-text-red)`}},switch:{base:{"--color-background-gray":`var(--color-border-emphasized)`}},progressbar:{base:{"--color-background-muted":`var(--color-border-emphasized)`},"variant:accent":{"--color-accent":`#0074e2`},"variant:success":{"--color-success":`#198100`},"variant:warning":{"--color-warning":`#ffce2f`},"variant:error":{"--color-error":`#c9303a`}},card:{base:{padding:`var(--spacing-3)`}},section:{base:{padding:`var(--spacing-3)`}}},__onDark:{tokens:{"color-scheme":`dark`,"--color-text-primary":`var(--color-on-dark)`,"--color-icon-primary":`var(--color-on-dark)`,"--color-accent":`var(--color-on-dark)`}},__onLight:{tokens:{"color-scheme":`light`,"--color-text-primary":`var(--color-on-light)`,"--color-icon-primary":`var(--color-on-light)`,"--color-accent":`var(--color-on-light)`}},icons:{close:(0,V.jsx)(Re,{..._S}),chevronDown:(0,V.jsx)(te,{..._S}),chevronLeft:(0,V.jsx)(ne,{..._S}),chevronRight:(0,V.jsx)(re,{..._S}),chevronsLeft:(0,V.jsx)(R,{..._S}),chevronsRight:(0,V.jsx)(z,{..._S}),check:(0,V.jsx)(L,{..._S}),success:(0,V.jsx)(ie,{..._S}),error:(0,V.jsx)(ae,{..._S}),warning:(0,V.jsx)(Fe,{..._S}),info:(0,V.jsx)(ve,{..._S}),calendar:(0,V.jsx)(F,{..._S}),clock:(0,V.jsx)(se,{..._S}),externalLink:(0,V.jsx)(de,{..._S}),menu:(0,V.jsx)(be,{..._S}),moreHorizontal:(0,V.jsx)(ue,{..._S}),search:(0,V.jsx)(De,{..._S}),arrowUp:(0,V.jsx)(N,{..._S}),arrowDown:(0,V.jsx)(j,{..._S}),arrowsUpDown:(0,V.jsx)(M,{..._S}),funnel:(0,V.jsx)(ge,{..._S}),eyeSlash:(0,V.jsx)(fe,{..._S}),viewColumns:(0,V.jsx)(ce,{..._S}),copy:(0,V.jsx)(le,{..._S}),checkDouble:(0,V.jsx)(I,{..._S}),wrench:(0,V.jsx)(Le,{..._S}),stop:(0,V.jsx)(Me,{..._S}),microphone:(0,V.jsx)(xe,{..._S})}};function yS({children:e}){let t=fn(cS,e=>e.snapshot?.preferences?.theme)??`system`,[n,r]=(0,w.useState)(()=>window.matchMedia?.(`(prefers-color-scheme: dark)`).matches??!1);(0,w.useEffect)(()=>{let e=window.matchMedia?.(`(prefers-color-scheme: dark)`);if(!e)return;let t=()=>r(e.matches);return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let i=t===`dark`||t===`system`&&n?`dark`:`light`;return(0,w.useEffect)(()=>{document.documentElement.dataset.theme=i},[i]),(0,V.jsx)(cn,{i18n:Pt,children:(0,V.jsx)(gS,{theme:vS,mode:i,children:e})})}var bS=document.getElementById(`root`);if(!bS)throw Error(`OpenPI Web root is missing`);(0,ze.createRoot)(bS).render((0,V.jsx)(w.StrictMode,{children:(0,V.jsx)(yS,{children:(0,V.jsx)(lS,{})})})); \ No newline at end of file +`,t),i=-1;if(n!==-1&&r!==-1?i=n20?`${e.slice(0,20)}…`:e}"`,{type:`unknown-field`,field:e,value:t,line:n}))}}function T(){u!==void 0&&a?.(u),f>0&&i?.({id:u,event:p,data:d}),u=void 0,d=``,f=0,p=void 0}function E(e={}){if(e.consume&&s.length>0){let e=s.join(``);C(e,0,e.length)}l=!0,u=void 0,d=``,f=0,p=void 0,s.length=0,c=0,m=!1,h=!1,g=!1}return{feed:_,reset:E}}function Jx(e,t,n){return n===100&&e.charCodeAt(t+1)===97&&e.charCodeAt(t+2)===116&&e.charCodeAt(t+3)===97&&e.charCodeAt(t+4)===58}function Yx(e,t,n){return n===101&&e.charCodeAt(t+1)===118&&e.charCodeAt(t+2)===101&&e.charCodeAt(t+3)===110&&e.charCodeAt(t+4)===116&&e.charCodeAt(t+5)===58}function Xx(e,t){let n=1;for(;nt.abort();e.signal.addEventListener(`abort`,n,{once:!0}),e.signal.aborted&&n();let r=window.setTimeout(n,45e3),i=await fetch(`/events?cursor=${e.cursor}`,{headers:e.client.headers(),signal:t.signal}).finally(()=>{window.clearTimeout(r),e.signal.removeEventListener(`abort`,n)});if(i.status===409)throw new Zx(`event replay expired`);if(!i.ok||!i.body)throw Error(`event connection failed`);e.onConnected();let a=e.cursor,o=0,s=qx({onComment(t){t.trim()===`heartbeat`&&++o>=4&&(o=0,e.onHeartbeat?.())},onEvent(t){let n=JSON.parse(t.data);if(!Number.isSafeInteger(n.sequence))throw new Zx(`invalid event cursor`);if(!(n.sequence<=a)){if(n.sequence!==a+1)throw new Zx(`event cursor gap`);if(a=n.sequence,n.type===`state_invalidated`)throw new Zx(`state invalidated`);e.onEvent(n)}}}),c=i.body.getReader(),l=new TextDecoder;try{for(;!e.signal.aborted;){let t,n,r=c.read(),i=new Promise((r,i)=>{n=()=>i(Error(`event stream aborted`)),e.signal.addEventListener(`abort`,n,{once:!0}),e.signal.aborted&&n(),t=window.setTimeout(()=>i(Error(`event stream stalled`)),45e3)}),{done:a,value:o}=await Promise.race([r,i]).finally(()=>{window.clearTimeout(t),n&&e.signal.removeEventListener(`abort`,n)});if(a)throw Error(`event connection closed`);s.feed(l.decode(o,{stream:!0}))}}finally{await c.cancel().catch(()=>void 0)}}function $x(e,t,n){if([`session_start`,`session_switched`,`session_created`].includes(t))return[];if([`agent_settled`,`turn_settled`].includes(t))return e.map(e=>e.state===`running`?{...e,state:`unknown`}:e);if(!t.startsWith(`tool_execution_`))return e;let r=n.toolCallId;if(typeof r!=`string`||r.length>500)return e;let i=e.find(e=>e.call.id===r);if(i&&i.state!==`running`&&(i.state!==`unknown`||t!==`tool_execution_end`))return e;let a=Uu(n.call),o=a.type===`toolCall`&&typeof a.name==`string`&&typeof a.arguments==`string`?a:i?.call;if(!o||o.evidenceTruncated&&o.id?.includes(`[truncated]`))return e;let s=Uu(n.result),c={call:o,result:typeof s.content==`string`?s:i?.result,state:t===`tool_execution_end`?n.isError===!0?`failed`:`returned`:`running`},l=[...e.filter(e=>e.call.id!==r),c].slice(-32);for(;l.length>0&&new TextEncoder().encode(JSON.stringify(l)).byteLength>524288;)l.shift();return l}var eS=`openpi.collapsed-workspaces`,tS=`openpi.sidebar-collapsed`,nS=new Set([`agent_start`,`turn_started`,`turn_settled`,`agent_settled`,`prompt_settled`,`message_end`,`tool_execution_end`,`session_start`,`session_switched`,`session_progress`,`prompt_failed`,`model_select`,`workspace_imported`,`workspace_removed`,`workspace_renamed`,`session_renamed`,`session_archived`,`session_unarchived`,`session_created`,`prompt_accepted`,`runtime_changed`]);function rS(e){try{let t=JSON.parse(window.sessionStorage.getItem(e)||`[]`);return new Set(Array.isArray(t)?t.filter(e=>typeof e==`string`):[])}catch{return new Set}}function iS(e){try{return window.sessionStorage.getItem(e)===`true`}catch{return!1}}function aS(e,t){try{window.sessionStorage.setItem(e,JSON.stringify(t))}catch{}}function oS(e,t){return t.aborted?Promise.resolve():new Promise(n=>{let r=()=>{window.clearTimeout(i),t.removeEventListener(`abort`,r),n()},i=window.setTimeout(r,e);t.addEventListener(`abort`,r,{once:!0})})}function sS(e=new ed,t={}){let n=t.consumeEvents??Qx,r=0,i=0,a=0,o=null,s=null,c=null,l=null,u=Promise.resolve(),d=null,f=!1,p=!1,m=null,h=null,g=0,_=null,v=0,y=!1,b=0,x=0,S=null,C=-1,w=null,T=0,E=new Set,D=new Set,O=(e,t)=>{if(typeof t==`string`)for(e.add(t);e.size>32;){let t=e.values().next().value;t&&e.delete(t)}},k=()=>({activeTurn:null,turnCancellationPending:!1,turnTerminalStatus:null,pendingFollowUpsReceipt:null,liveMessages:[],liveRunning:!1,livePhase:`idle`,liveRetry:null,thinkingStarts:{},thinkingDurations:{}}),A=()=>(g++,h?.abort(),h=null,{modelSearch:{query:``,status:`idle`,models:[],totalMatches:0,matchesOmitted:0,error:null}}),j=()=>({sessionId:null,status:`idle`,commands:[],totalAvailable:0,commandsOmitted:0,error:null}),M=(e,t)=>({liveRunning:t===`running`||!e,livePhase:t===`running`?`running`:e?`idle`:`preparing`});return un((t,N)=>{let P=e=>{t({notice:e instanceof Error?e.message:String(e)})},ee=e=>{let t=N().snapshot;return e.epoch===r&&N().selectedWorkspace===e.workspacePath&&t?.currentSessionId===e.sessionId&&t.selectedSession?.id===e.sessionId&&t.selectedSession.cwd===e.workspacePath&&(!e.sessionPath||t.selectedSession.path===e.sessionPath)},F=()=>{T++,w?.abort(),w=null,t({commandDiscovery:j()})},I=async(n,i,a)=>{if(N().modelSelectionPending)return!1;t({modelSelectionPending:!0});try{let o=await e.selectModel(n.provider,n.id,a);if(i!==r||a!==N().snapshot?.selectedSession?.id)return!1;if(o.provider!==n.provider||o.id!==n.id||!o.current)throw Error(`Model selection was not confirmed. Please select a model again.`);if(!await N().actions.refreshSnapshot({epoch:i})||i!==r||a!==N().snapshot?.selectedSession?.id)return!1;let s=N().snapshot?.models.find(e=>e.current);if(s?.provider!==n.provider||s.id!==n.id)throw Error(`The Session model changed. Please select a model again.`);return t({draftModel:null,notice:null}),!0}catch(e){return i===r&&a===N().snapshot?.selectedSession?.id&&P(e),!1}finally{i===r&&t({modelSelectionPending:!1})}},L=(e=160)=>{if(f){p=!0;return}d===null&&(d=window.setTimeout(async()=>{d=null,f=!0;try{await N().actions.refreshSnapshot()}finally{f=!1,p&&(p=!1,L())}},e))},te=()=>{S=null,x=0,C=-1},ne=()=>{let e=N().snapshot;if(!e)return;S&&C!==r&&te();let n=e.thinking;if(n){if(!S||n.revision>=x){S=n,x=n.revision,C=r;return}n!==S&&t({snapshot:{...e,thinking:S}})}},re=e=>{S&&C!==r&&te(),e&&e.revision>=x&&(S=e,x=e.revision,C=r),ne()},R=()=>{_=null,v++,y=!1,t({thinkingPendingLevel:null})},z=async()=>{let t=r,n=N().snapshot?.selectedSession?.id;if(n)try{let i=await e.thinking(n,new AbortController().signal);if(t!==r||n!==N().snapshot?.selectedSession?.id)return;re(i)}catch{}},ie=async()=>{if(y)return;y=!0;let n=++b;try{for(;_!==null;){let n=_,i=v,a=r,o=N().snapshot?.selectedSession?.id;if(!o||N().modelSelectionPending){R();return}if(N().snapshot?.thinking?.level===n){i===v&&(_=null,t({thinkingPendingLevel:null}));continue}let s;try{s=await e.setThinkingLevel(o,n)}catch(e){if(a!==r)return;if(i!==v)continue;R(),P(e),z();return}if(a!==r||o!==N().snapshot?.selectedSession?.id)return;if(i===v){if(s.level!==n){R(),P(Error(Pt.t(`thinkingNotConfirmed`)));return}re(s),_=null,t({thinkingPendingLevel:null}),L();return}}}finally{n===b&&(y=!1)}},ae=e=>{let n=N(),i=e.detail??{},a=i.sessionId,l=[`session_start`,`session_switched`,`session_created`].includes(e.type);if(n.cursor!==null&&e.sequence<=n.cursor)return;t({cursor:e.sequence});let u=n.promptAdmissionRecovery,d=u?.commandId;if(typeof i.commandId==`string`&&i.commandId===d&&[`prompt_accepted`,`prompt_failed`,`prompt_settled`,`turn_started`,`turn_settled`].includes(e.type)){let r=e.type!==`prompt_failed`;t({promptAdmissionRecovery:null,promptAdmissionResolution:r&&u?{commandId:u.commandId,content:u.content}:n.promptAdmissionResolution,liveMessages:r&&u&&!n.liveMessages.some(e=>e.key===u.optimisticKey)?[...n.liveMessages,{key:u.optimisticKey,message:{role:`user`,content:u.content}}].slice(-8):n.liveMessages})}if(e.type===`runtime_changed`&&t(A()),e.type===`runtime_changed`&&F(),n.sessionSwitching&&!l){L();return}if(typeof a==`string`&&a!==n.snapshot?.currentSessionId&&!l){L();return}if(n.snapshot){let r=$x(n.snapshot.runtime.liveTools??[],e.type,i);t({snapshot:{...n.snapshot,runtime:{...n.snapshot.runtime,liveTools:r}}})}if(l){let l=i.commandId;if(typeof l==`string`&&D.has(l)){L();return}let d=i.sessionPath,f=n.snapshot?.sessions.some(e=>e.path===d),p=!1;if(c?.kind===`select`?p=c.expectedPath===d:(c?.kind===`create`&&c.commandId===l&&e.type===`session_switched`&&typeof a==`string`&&(!c.expectedSessionId||c.expectedSessionId===a)&&(typeof d!=`string`||!f)||c?.kind===`create`&&c.commandId===l&&e.type===`session_created`&&typeof a==`string`&&(!c.expectedSessionId||a===c.expectedSessionId))&&(p=!0),p&&c?.epoch!==r)return;if(p)t(k());else{F();let e=++r;R(),o=null,s=null,t({...k(),promptAdmissionPending:!1,promptAdmissionRecovery:null,promptAdmissionResolution:u?{commandId:u.commandId,content:u.content}:n.promptAdmissionResolution,selectedPath:typeof d==`string`?d:null,draftModel:n.workspaceDraft?n.draftModel:null,modelSelectionPending:!1,sessionSwitching:!0}),N().actions.refreshSnapshot({epoch:e}).then(n=>{e===r&&t({selectedPath:n?N().selectedPath:null,sessionSwitching:!1})})}}else if(e.type===`prompt_accepted`){let e=E.has(String(i.commandId??``));t({...M(e,n.livePhase),liveRetry:null,pendingFollowUpsReceipt:Number.isInteger(i.pendingFollowUps)?Number(i.pendingFollowUps):n.pendingFollowUpsReceipt})}else if(e.type===`turn_started`)t({activeTurn:{sessionId:String(i.sessionId),commandId:String(i.commandId),epoch:Number(i.epoch)},liveRunning:!0,livePhase:`running`,liveRetry:null,turnTerminalStatus:null});else if(e.type===`agent_start`)t({...i.activeTurn?{activeTurn:i.activeTurn}:{},liveRunning:!0,livePhase:`running`,liveRetry:null});else if(e.type===`turn_settled`){O(E,i.commandId);let e=n.activeTurn;e?.sessionId===i.sessionId&&e?.commandId===i.commandId&&e?.epoch===i.epoch&&t({activeTurn:null,liveRunning:!1,livePhase:`idle`,liveRetry:null,turnTerminalStatus:typeof i.outcome==`string`?i.outcome:null})}else if(e.type===`agent_settled`)t({pendingFollowUpsReceipt:null,...n.activeTurn?{}:{liveRunning:!1,livePhase:`idle`,liveRetry:null}});else if(e.type===`prompt_settled`)O(E,i.commandId),n.livePhase!==`running`&&t({liveRunning:!1,livePhase:`idle`,liveRetry:null});else if(i.message&&typeof i.message==`object`){let r=i.message,a=n.liveMessages;r.role===`user`&&(a=a.filter(e=>!e.key.startsWith(`optimistic-`)||e.message.content!==r.content));let o=typeof i.messageKey==`string`?i.messageKey:`${r.role||`message`}-${e.sequence}`,s={key:o,message:r},c=a.findIndex(e=>e.key===o);a=c>=0?a.map((e,t)=>t===c?s:e):[...a,s].slice(-8);let l={...n.thinkingStarts},u={...n.thinkingDurations};r.parts?.some(e=>e.type===`thinking`)&&(l[o]??=Date.now(),e.type===`message_end`&&(u[o]=Date.now()-l[o])),t({liveMessages:a,thinkingDurations:u,thinkingStarts:l})}if(e.type===`prompt_failed`&&(O(E,i.commandId),t({liveMessages:N().liveMessages.filter(e=>!e.key.startsWith(`optimistic-`)),liveRunning:!1,livePhase:`idle`,liveRetry:null,notice:typeof i.error==`string`?i.error:`Prompt failed`})),e.type===`auto_retry_start`&&t({liveRunning:!0,livePhase:`running`,liveRetry:{attempt:Number(i.attempt)||0,maxAttempts:Number(i.maxAttempts)||0}}),e.type===`thinking_level_changed`){let t=N().snapshot?.thinking;t&&typeof i.level==`string`&&re({...t,level:i.level,revision:e.sequence})}nS.has(e.type)&&L()},oe=async r=>{let i=500;for(;!r.aborted;){let a=!1;try{if(N().cursor===null){if(a=!0,!await N().actions.refreshSnapshot({resetCursor:!0}))throw Error(`snapshot unavailable`);a=!1}if(r.aborted)return;await n({client:e,cursor:N().cursor??0,onConnected:()=>{i=500,t({connection:`connected`})},onEvent:ae,onHeartbeat:()=>L(0),signal:r})}catch(e){if(r.aborted)return;t({connection:`reconnecting`}),!a&&await N().actions.refreshSnapshot({resetCursor:!0})||t(k()),await oS(i,r),i=Math.min(i*2,5e3),e instanceof SyntaxError&&t({notice:`Invalid event data`})}}},se={start(){m||(m=new AbortController,oe(m.signal))},stop(){m?.abort(),m=null,d!==null&&window.clearTimeout(d),d=null,R(),F()},async refreshSnapshot(n={}){let a=n.epoch??r,o=++i,c=N().selectedPath;try{let l=await e.snapshot(c);if(a!==r||o!==i)return!1;let u=typeof l.currentSessionId==`string`,d=u?l.sessions.find(e=>e.id===l.currentSessionId):void 0,f=u?l.selectedSession?.id===l.currentSessionId:l.selectedSession===void 0,p=!c||l.sessions.some(e=>e.path===c),m=!c||l.selectedSession?.path===c;if(!p||!m||!f)return t({selectedPath:null}),!n.canonicalRetry&&se.refreshSnapshot({...n,canonicalRetry:!0,epoch:a});let h=l.selectedSession?.cwd,g=l.workspaces.find(e=>e.current)?.path,_=l.workspaces.some(e=>e.path===N().selectedWorkspace)?N().selectedWorkspace:void 0,v=N().workspaceDraft?N().selectedWorkspace:l.workspaces.some(e=>e.path===h)?h:g??_??null,y=n.resetCursor;return y&&te(),N().snapshot?.currentSessionId!==l.currentSessionId&&F(),t({...y?k():{},connection:N().connection===`connecting`?`connecting`:N().connection,cursor:y||N().cursor===null?l.cursor:Math.max(N().cursor??0,l.cursor),activeTurn:l.runtime.activeTurn??null,livePhase:l.runtime.status===`running`?`running`:!N().promptAdmissionPending&&!s?`idle`:N().livePhase,liveRetry:l.runtime.status!==`running`&&!N().promptAdmissionPending&&!s?null:N().liveRetry,liveRunning:l.runtime.status===`running`?!0:!N().promptAdmissionPending&&!s?!1:N().liveRunning,selectedPath:d?.path??l.selectedSession?.path??null,selectedWorkspace:v,snapshot:l,...A()}),re(),!0}catch(e){return a!==r||o!==i?!1:(t({connection:`unavailable`}),P(e),!1)}},async chooseWorkspace(){let t=r;try{let n=await e.chooseWorkspace();if(t!==r||n.cancelled||!n.path)return;se.setWorkspace(n.path),await se.refreshSnapshot()}catch(e){t===r&&P(e)}},setWorkspace(e){let n=N();e===n.selectedWorkspace&&!n.sessionSwitching||(++r,l=null,R(),F(),o=null,s=null,t({...k(),...A(),selectedWorkspace:e,workspaceDraft:!0,sessionSwitching:!1,modelSelectionPending:!1,promptAdmissionPending:!1,promptAdmissionRecovery:null,promptAdmissionResolution:n.promptAdmissionRecovery?{commandId:n.promptAdmissionRecovery.commandId,content:n.promptAdmissionRecovery.content}:n.promptAdmissionResolution,notice:null}))},async renameWorkspace(t,n){try{await e.renameWorkspace(t,n),await se.refreshSnapshot()}catch(e){throw P(e),e}},async removeWorkspace(n){try{await e.removeWorkspace(n),N().selectedWorkspace===n&&F(),t({selectedPath:null,selectedWorkspace:N().selectedWorkspace===n?null:N().selectedWorkspace}),await se.refreshSnapshot()}catch(e){P(e)}},async createSession(n){if(!n||N().modelSelectionPending)return null;let i=N(),a=++r;R(),F();let d=(l?.workspacePath===n?l.commandId:void 0)??globalThis.crypto?.randomUUID?.()??`web-create-${Date.now()}-${a}`;l={workspacePath:n,commandId:d},o=null,s=null,t({...k(),...A(),mobileSidebarOpen:!1,promptAdmissionPending:!1,promptAdmissionRecovery:null,promptAdmissionResolution:i.promptAdmissionRecovery?{commandId:i.promptAdmissionRecovery.commandId,content:i.promptAdmissionRecovery.content}:i.promptAdmissionResolution,selectedPath:null,selectedWorkspace:n,workspaceDraft:!0,sessionSwitching:!0});let f=null,p=u.then(async()=>{if(a===r){c={commandId:d,epoch:a,expectedPath:null,kind:`create`};try{let i=await e.createSession(n,d);if(a!==r)return;if(i.cancelled||i.commandId!==d||typeof i.sessionId!=`string`||!i.sessionId||i.sessionId.length>128||i.sessionPath!==void 0&&!i.sessionPath)throw Error(`Session creation did not return a valid target identity.`);let o={epoch:a,sessionId:i.sessionId,sessionPath:i.sessionPath??null,workspacePath:n};c?.epoch===a&&(c.expectedSessionId=o.sessionId,c.expectedPath=o.sessionPath),t({selectedPath:o.sessionPath});let s=await se.refreshSnapshot({epoch:a});if(!s&&a===r&&(s=await se.refreshSnapshot({epoch:a})),a!==r)return;if(!s)throw Error(`The created Session could not be confirmed. Please try again.`);if(!ee(o)){l=null,P(Error(`The created Session is no longer active in the selected workspace. Please try again.`));return}t({workspaceDraft:!1,notice:null});let u=N().draftModel;if(u&&!await I(u,a,o.sessionId))return;if(N().workspaceDraft||!ee(o)){l=null,P(Error(`The created Session is no longer active in the selected workspace. Please try again.`));return}f=o,l=null}catch(e){if(a!==r)return;t({selectedPath:null}),P(e),await se.refreshSnapshot({epoch:a})}finally{O(D,d),c?.epoch===a&&(c=null),a===r&&t({sessionSwitching:!1})}}});return u=p.catch(()=>void 0),await p,a===r?f:null},async selectSession(n){if(!n)return;l=null;let i=N();F(),t({...A(),workspaceDraft:!1,draftModel:null,modelSelectionPending:!1});let a=++r;R(),o=null,s=null,t({...k(),mobileSidebarOpen:!1,promptAdmissionPending:!1,promptAdmissionRecovery:null,promptAdmissionResolution:i.promptAdmissionRecovery?{commandId:i.promptAdmissionRecovery.commandId,content:i.promptAdmissionRecovery.content}:i.promptAdmissionResolution,selectedPath:n,sessionSwitching:!0});let d=u.then(async()=>{if(a===r){c={epoch:a,expectedPath:n,kind:`select`};try{if(await e.selectSession(n),a!==r)return;await se.refreshSnapshot({epoch:a})||t({selectedPath:null})}catch(e){if(a!==r)return;t({selectedPath:null}),P(e),await se.refreshSnapshot({epoch:a})}finally{c?.epoch===a&&(c=null),a===r&&t({sessionSwitching:!1})}}});u=d.catch(()=>void 0),await d},async renameSession(t,n){try{await e.renameSession(t,n),await se.refreshSnapshot()}catch(e){throw P(e),e}},async archiveSession(t){try{await e.archiveSession(t),await se.refreshSnapshot()}catch(e){P(e)}},async unarchiveSession(t){let n=r;try{return await e.unarchiveSession(t),n!==r||await se.refreshSnapshot({epoch:n})}catch(e){return n===r&&P(e),!1}},async selectModel(e){let[n,...i]=e.split(`/`),a=i.join(`/`),o=N();if(!n||!a||o.sessionSwitching||o.modelSelectionPending||o.promptAdmissionPending||!o.workspaceDraft&&(o.liveRunning||o.snapshot?.runtime.status===`running`))return;let s=o.snapshot?.selectedSession?.id;if(o.workspaceDraft||!s&&!o.snapshot?.currentSessionId){let e=[...o.snapshot?.models??[],...o.modelSearch.models].find(e=>e.provider===n&&e.id===a);e&&t({draftModel:e,notice:null});return}!s||s!==o.snapshot?.currentSessionId||(R(),await I({provider:n,id:a},r,s))},async searchModels(n){let a=n.trim();if(!a){t(A());return}h?.abort();let o=new AbortController;h=o;let s=++g,c=r,l=i,u=N().snapshot?.currentSessionId;t({modelSearch:{query:a,status:`loading`,models:[],totalMatches:0,matchesOmitted:0,error:null}});try{let n=await e.searchModels(a,u,o.signal);if(o.signal.aborted||c!==r||l!==i||s!==g)return;t({modelSearch:{query:a,status:`ready`,models:n.models,totalMatches:n.totalMatches,matchesOmitted:n.truncation.matchesOmitted,error:null}})}catch(e){if(o.signal.aborted||c!==r||l!==i||s!==g)return;t({modelSearch:{query:a,status:`error`,models:[],totalMatches:0,matchesOmitted:0,error:e instanceof Error?e.message:String(e)}})}finally{h===o&&(h=null)}},clearModelSearch(){t(A())},selectThinking(e){let n=N(),r=n.snapshot?.thinking,i=n.snapshot?.selectedSession?.id;!e||!r?.supported||n.sessionSwitching||n.modelSelectionPending||n.workspaceDraft||!i||i!==n.snapshot?.currentSessionId||n.liveRunning||n.snapshot?.runtime.status===`running`||e!==(n.thinkingPendingLevel??r.level)&&(_=e,v++,t({thinkingPendingLevel:e}),ie())},async cancelActiveTurn(){let n=N().activeTurn??N().snapshot?.runtime.activeTurn;if(!n||N().turnCancellationPending||N().sessionSwitching)return;let i=r;t({turnCancellationPending:!0});try{await e.cancelActiveTurn(n)}catch(e){if(i!==r)return;await se.refreshSnapshot({epoch:i}),i===r&&P(e)}finally{i===r&&t({turnCancellationPending:!1})}},async sendPrompt(n){let i=n.trim(),c=N(),l=c.promptAdmissionRecovery,u=l?.phase===`submitting`?l:null,d=c.selectedWorkspace;if(!d||!i||c.sessionSwitching||c.promptAdmissionPending||l&&!u||c.promptAdmissionResolution||c.modelSelectionPending||c.thinkingPendingLevel!==null)return!1;let f=N().workspaceDraft||!N().snapshot?.selectedSession?.id,p=f?await se.createSession(d):null;if(f&&!p)return N().notice||t({notice:`The active Session changed before the first message was sent. Your message was not sent.`}),!1;if(f&&N().draftModel)return!1;let m=N().snapshot?.selectedSession,h=p??(m?{epoch:r,sessionId:m.id,sessionPath:m.path,workspacePath:d}:null);if(!h||N().workspaceDraft||!ee(h)||N().sessionSwitching||N().promptAdmissionPending||u&&(N().promptAdmissionRecovery?.commandId!==u.commandId||N().promptAdmissionRecovery?.phase!==`submitting`))return!1;let{epoch:g,sessionId:_}=h,v=N().draftModel;if(v&&!await I(v,g,_)||N().workspaceDraft||!ee(h)||u&&(N().promptAdmissionRecovery?.commandId!==u.commandId||N().promptAdmissionRecovery?.phase!==`submitting`))return!1;let y=++a,b=s?.sessionId===_&&s.content===i,x=b?s.commandId:globalThis.crypto?.randomUUID?.()??`web-prompt-${Date.now()}-${y}`,S=b?s.optimisticKey:`optimistic-${x}`;s={sessionId:_,content:i,commandId:x,optimisticKey:S},o=y,t({liveMessages:b?N().liveMessages:[...N().liveMessages,{key:S,message:{role:`user`,content:i}}].slice(-8),notice:null,pendingFollowUpsReceipt:null,turnTerminalStatus:null,promptAdmissionPending:!0,scrollToBottom:N().scrollToBottom+1});try{let n=await e.prompt(_,i,x,b);if(g!==r||o!==y)return!1;let a=E.has(n.id);return s?.commandId===x&&(s=null),t({...M(a,N().livePhase),pendingFollowUpsReceipt:n.pendingFollowUps??null,...u&&N().promptAdmissionRecovery?.commandId===u.commandId?{promptAdmissionRecovery:null}:{}}),L(120),!0}catch(e){if(g!==r||o!==y)return!1;if(e instanceof Qu&&e.code===`COMMAND_ADMISSION_UNKNOWN`&&s?.commandId===x){let e=s;s=null,t({liveRunning:!1,livePhase:`idle`,liveRetry:null,notice:null,promptAdmissionPending:!1,promptAdmissionRecovery:{...e,phase:`checking`}});let n=await se.refreshSnapshot({resetCursor:!0,epoch:g}),r=N().promptAdmissionRecovery;return r?.commandId===x&&t({promptAdmissionRecovery:{...r,phase:n?`ready`:`verification-failed`}}),!1}return e instanceof Qu&&[`WORKSPACE_REQUIRED`,`SESSION_CONFLICT`,`PROMPT_REJECTED`,`COMMAND_CONFLICT`,`PROMPT_ADMISSION_CAPACITY`].includes(e.code??``)?(s?.commandId===x&&(s=null),t({liveMessages:N().liveMessages.filter(e=>e.key!==S),livePhase:`idle`,liveRetry:null,liveRunning:!1}),P(e),!1):(t({liveRunning:!0,livePhase:N().livePhase===`running`?`running`:`preparing`,liveRetry:null}),P(e),!1)}finally{g===r&&o===y&&(o=null,t({promptAdmissionPending:!1}))}},async checkPromptAdmissionRecovery(){let e=N().promptAdmissionRecovery;if(!e||e.phase!==`verification-failed`)return;let n=r;t({notice:null,promptAdmissionRecovery:{...e,phase:`checking`}});let i=await se.refreshSnapshot({resetCursor:!0,epoch:n}),a=N().promptAdmissionRecovery;a?.commandId===e.commandId&&a.phase===`checking`&&t({promptAdmissionRecovery:{...a,phase:i?`ready`:`verification-failed`}})},async sendPromptAsNew(e){let n=N().promptAdmissionRecovery;if(!n||n.phase!==`ready`||n.sessionId!==N().snapshot?.selectedSession?.id)return!1;let r=e.trim();if(!r)return!1;t({promptAdmissionRecovery:{...n,phase:`submitting`},notice:null});let i=!1;try{return i=await se.sendPrompt(r),i}finally{let e=N().promptAdmissionRecovery;e?.commandId===n.commandId&&e.phase===`submitting`&&t({promptAdmissionRecovery:i?null:{...e,phase:`ready`}})}},abandonPromptAdmission(){let e=N().promptAdmissionRecovery;!e||e.phase===`submitting`||t({liveMessages:N().liveMessages.filter(t=>t.key!==e.optimisticKey),notice:null,promptAdmissionRecovery:null})},acknowledgePromptAdmissionResolution(e){N().promptAdmissionResolution?.commandId===e&&t({promptAdmissionResolution:null})},async discoverCommands(){let n=N(),i=n.snapshot?.selectedSession?.id;if(n.workspaceDraft||!i||i!==n.snapshot?.currentSessionId||n.sessionSwitching){F();return}if(n.commandDiscovery.sessionId===i&&(n.commandDiscovery.status===`loading`||n.commandDiscovery.status===`ready`))return;let a=r,o=++T;w?.abort();let s=new AbortController;w=s,t({commandDiscovery:{sessionId:i,status:`loading`,commands:[],totalAvailable:0,commandsOmitted:0,error:null}});try{let n=await e.commands(i,s.signal);if(s.signal.aborted||a!==r||o!==T||i!==N().snapshot?.currentSessionId)return;t({commandDiscovery:{sessionId:i,status:`ready`,commands:n.commands,totalAvailable:n.totalAvailable,commandsOmitted:n.truncation.commandsOmitted,error:null}})}catch(e){if(s.signal.aborted||a!==r||o!==T)return;t({commandDiscovery:{sessionId:i,status:`error`,commands:[],totalAvailable:0,commandsOmitted:0,error:e instanceof Error?e.message:String(e)}})}finally{w===s&&(w=null)}},clearCommandDiscovery:F,setQuery(e){t({query:e})},setSearchOpen(e){t({searchOpen:e,...e?{}:{query:``}})},toggleWorkspace(e){let n=new Set(N().collapsed);n.has(e)?n.delete(e):n.add(e),aS(eS,[...n]),t({collapsed:n})},toggleSidebar(e){if(e){t({mobileSidebarOpen:!N().mobileSidebarOpen});return}let n=!N().sidebarCollapsed;try{window.sessionStorage.setItem(tS,String(n))}catch{}t({sidebarCollapsed:n})},closeMobileSidebar(){t({mobileSidebarOpen:!1})},clearNotice(){t({notice:null})}};return{activeTurn:null,turnCancellationPending:!1,turnTerminalStatus:null,pendingFollowUpsReceipt:null,snapshot:null,cursor:null,selectedPath:null,selectedWorkspace:null,workspaceDraft:!1,draftModel:null,modelSelectionPending:!1,modelSearch:{query:``,status:`idle`,models:[],totalMatches:0,matchesOmitted:0,error:null},collapsed:rS(eS),sidebarCollapsed:iS(tS),mobileSidebarOpen:!1,query:``,searchOpen:!1,connection:`connecting`,notice:null,liveMessages:[],liveRunning:!1,livePhase:`idle`,liveRetry:null,thinkingStarts:{},thinkingDurations:{},promptAdmissionPending:!1,promptAdmissionRecovery:null,promptAdmissionResolution:null,sessionSwitching:!1,scrollToBottom:0,thinkingPendingLevel:null,commandDiscovery:j(),actions:se}})}var cS=sS();function lS(){let e=fn(cS),{t}=sn(),{actions:n}=e,r=(0,w.useRef)(null),[i,a]=(0,w.useState)(()=>window.matchMedia?.(`(max-width: 760px)`).matches??!1),o=i&&e.mobileSidebarOpen;(0,w.useEffect)(()=>{let e=window.matchMedia?.(`(max-width: 760px)`);if(!e)return;let t=()=>{a(e.matches),e.matches||n.closeMobileSidebar()};return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[n]);let[s,c]=(0,w.useState)(`chat`),[l,u]=(0,w.useState)(null),d=e.snapshot?.models.find(e=>e.current),f=JSON.stringify([d?.provider,d?.id]),p=t=>{let n=e.snapshot,r=n?.selectedSession;e.workspaceDraft||!n||!r||e.sessionSwitching||r.id!==n.currentSessionId||u({sessionId:r.id,sessionPath:r.path,cwd:r.cwd,model:d?.label??``,modelKey:f,terminalId:t})},m=l&&!e.workspaceDraft&&!e.sessionSwitching&&l.sessionId===e.snapshot?.currentSessionId&&l.sessionPath===e.snapshot?.selectedSession?.path&&l.modelKey===f;(0,w.useEffect)(()=>{l&&!m&&u(null)},[l,m]),(0,w.useEffect)(()=>(n.start(),n.stop),[n]);let h=e.workspaceDraft?void 0:e.snapshot?.selectedSession,g=h?.entries.some(e=>e.type===`message`&&e.message)||e.liveMessages.length>0,_=!h||!g,v=(0,w.useCallback)(e=>n.sendPrompt(e),[n]);return(0,V.jsxs)(`div`,{className:`app-shell ${e.sidebarCollapsed?`sidebar-collapsed`:``} ${e.mobileSidebarOpen?`sidebar-open`:``}`,children:[(0,V.jsx)(rd,{snapshot:e.snapshot,selectedPath:e.workspaceDraft?null:e.selectedPath,selectedWorkspace:e.selectedWorkspace,collapsed:e.collapsed,query:e.query,searchOpen:e.searchOpen,mobileOpen:o,returnFocusRef:r,actions:n}),e.sidebarCollapsed&&(0,V.jsx)(`button`,{className:`sidebar-expand`,type:`button`,"aria-label":t(`expandSidebar`),title:t(`expandSidebar`),onClick:()=>n.toggleSidebar(!1),children:(0,V.jsx)(Se,{})}),(0,V.jsxs)(`main`,{inert:o,className:`conversation-shell ${h?`has-view`:``} ${_&&(e.workspaceDraft||s===`chat`)?`landing`:``}`,children:[(0,V.jsx)(`h1`,{className:`sr-only`,children:`OpenPI`}),(0,V.jsxs)(`header`,{className:`mobile-header`,children:[(0,V.jsx)(`button`,{ref:r,type:`button`,"aria-label":t(`openSidebar`),"aria-controls":`session-sidebar`,"aria-expanded":o,onClick:()=>n.toggleSidebar(!0),children:(0,V.jsx)(be,{})}),(0,V.jsx)(`span`,{className:`connection-state ${e.connection}`,children:t(e.connection)})]}),h&&(0,V.jsxs)(`fieldset`,{className:`conversation-view-switch`,"aria-label":t(`conversationView`),children:[(0,V.jsx)(`button`,{type:`button`,"aria-pressed":s===`chat`,onClick:()=>c(`chat`),children:t(`chatView`)}),(0,V.jsx)(`button`,{type:`button`,"aria-pressed":s===`trajectory`,onClick:()=>c(`trajectory`),children:t(`trajectory`)})]}),e.sessionSwitching?(0,V.jsx)(`div`,{className:`conversation switching`,role:`status`,children:(0,V.jsxs)(`div`,{className:`conversation-running`,children:[(0,V.jsx)(`span`,{className:`conversation-running-dot`}),(0,V.jsx)(`span`,{children:t(`switchingSession`)})]})}):s===`trajectory`&&h&&e.snapshot?(0,V.jsx)(od,{snapshot:e.snapshot,running:e.liveRunning},h.path):_?(0,V.jsx)(`section`,{className:`conversation landing-conversation`,"aria-label":`Conversation`,children:(0,V.jsx)(`div`,{className:`landing-welcome`,children:(0,V.jsx)(hn,{animated:!0})})}):e.snapshot?(0,V.jsx)(zx,{snapshot:e.snapshot,liveMessages:e.liveMessages,liveRunning:e.liveRunning,livePhase:e.livePhase,liveRetry:e.liveRetry,thinkingStarts:e.thinkingStarts,thinkingDurations:e.thinkingDurations,scrollToBottom:e.scrollToBottom,onResend:v}):null,(0,V.jsx)(lu,{workspaceDraft:e.workspaceDraft,draftModel:e.draftModel,modelSelectionPending:e.modelSelectionPending,modelSearch:e.modelSearch,thinkingPendingLevel:e.thinkingPendingLevel,onInspect:p,activeTurn:e.activeTurn,turnCancellationPending:e.turnCancellationPending,turnTerminalStatus:e.turnTerminalStatus,pendingFollowUpsReceipt:e.pendingFollowUpsReceipt,commandDiscovery:e.commandDiscovery,snapshot:e.snapshot,selectedPath:e.selectedPath,selectedWorkspace:e.selectedWorkspace,sessionSwitching:e.sessionSwitching,promptAdmissionPending:e.promptAdmissionPending,promptAdmissionRecovery:e.promptAdmissionRecovery,promptAdmissionResolution:e.promptAdmissionResolution,liveRunning:e.liveRunning,landing:_,actions:n}),e.notice&&(0,V.jsxs)(`div`,{className:`notice`,role:`alert`,children:[(0,V.jsx)(`span`,{children:e.notice}),(0,V.jsx)(`button`,{type:`button`,"aria-label":t(`close`),onClick:n.clearNotice,children:(0,V.jsx)(Re,{})})]})]}),m&&(0,V.jsx)(td,{target:l,onClose:()=>u(null)},`${l.sessionId}:${l.sessionPath}:${l.terminalId??`status`}`),(0,V.jsx)(`button`,{className:`sidebar-scrim`,type:`button`,tabIndex:-1,"aria-hidden":`true`,"aria-label":t(`close`),onClick:n.closeMobileSidebar})]})}var uS={base:{k1xSpc:`xjp7ctv`,kMwMTN:`x1tgivj0`,kMv6JI:`x9ynric`,$$css:!0},light:{kQNsl9:`x19aimcq`,$$css:!0},dark:{kQNsl9:`xntwwlm`,$$css:!0},system:{kQNsl9:`x108lcm5`,$$css:!0}},dS=w.createContext(!1);dS.displayName=`ThemeNestingContext`;var fS=new Set,pS=0;function mS(e){let t=(0,w.useId)();(0,w.useInsertionEffect)(()=>{if(e.__built)return;let n=`astryx-theme-${e.name}`;if(fS.has(n))return;`${e.name}`,`${e.name}${e.name}${e.name}${e.name}`;let{prose:r,component:i}=Fs(e),a=Ps();fS.add(n);let o=[()=>fS.delete(n)];if(a){if(pS++===0){let e=document.createElement(`style`);e.setAttribute(Zr(`theme-base`),``),e.textContent=`@layer astryx-base {\n${a}\n}`,document.head.appendChild(e)}o.push(()=>{--pS===0&&document.querySelector(`style[${Zr(`theme-base`)}]`)?.remove()})}if(r){let n=document.createElement(`style`);n.setAttribute(Zr(`theme-prose`),e.name),n.setAttribute(Zr(`id`),t),n.textContent=`@layer reset {\n${r}\n}`,document.head.appendChild(n)}if(i){let n=document.createElement(`style`);n.setAttribute(Zr(`theme`),e.name),n.setAttribute(Zr(`id`),t),n.textContent=`@layer astryx-theme {\n${i}\n}`,document.head.appendChild(n)}return(r||i)&&o.push(()=>{let n=document.querySelector(`style[${Zr(`theme-prose`)}="${e.name}"][${Zr(`id`)}="${t}"]`),r=document.querySelector(`style[${Zr(`theme`)}="${e.name}"][${Zr(`id`)}="${t}"]`);n?.remove(),r?.remove()}),()=>{for(let e of o)e()}},[e,t])}function hS(e,t,n){Fc(()=>{if(!e&&!(typeof document>`u`))return t===`light`||t===`dark`?document.documentElement.setAttribute(`data-theme`,t):document.documentElement.removeAttribute(`data-theme`),document.documentElement.setAttribute(Zr(`theme`),n),()=>{document.documentElement.removeAttribute(`data-theme`),document.documentElement.removeAttribute(Zr(`theme`))}},[e,t,n])}function gS({theme:e,mode:t=`system`,children:n}){let r=(0,w.use)(dS);cs(e),mS(e),hS(r,t,e.name);let i=t===`dark`?uS.dark:t===`light`?uS.light:uS.system,a=(0,w.useMemo)(()=>({theme:e,mode:t}),[e,t]);return(0,V.jsx)(Ls,{value:a,children:(0,V.jsx)(dS,{value:!0,children:(0,V.jsx)(`div`,{...bn(uS.base,i),"data-astryx-theme":e.name,"data-theme":t===`system`?void 0:t,children:n})})})}gS.displayName=`Theme`;var _S={size:`1em`,"aria-hidden":!0},vS={name:`neutral`,__built:!0,tokens:{"--font-size-4xs":`0.375rem`,"--font-size-3xs":`0.4375rem`,"--font-size-2xs":`0.5rem`,"--font-size-xs":`0.625rem`,"--font-size-sm":`0.75rem`,"--font-size-base":`0.875rem`,"--font-size-lg":`1.0625rem`,"--font-size-xl":`1.25rem`,"--font-size-2xl":`1.5rem`,"--font-size-3xl":`1.8125rem`,"--font-size-4xl":`2.1875rem`,"--font-size-5xl":`2.625rem`,"--text-heading-1-size":`var(--font-size-2xl)`,"--text-heading-1-weight":`var(--font-weight-semibold)`,"--text-heading-1-leading":`1.3333`,"--text-heading-2-size":`var(--font-size-xl)`,"--text-heading-2-weight":`var(--font-weight-semibold)`,"--text-heading-2-leading":`1.4`,"--text-heading-3-size":`var(--font-size-lg)`,"--text-heading-3-weight":`var(--font-weight-bold)`,"--text-heading-3-leading":`1.4118`,"--text-heading-4-size":`var(--font-size-base)`,"--text-heading-4-weight":`var(--font-weight-bold)`,"--text-heading-4-leading":`1.4286`,"--text-heading-5-size":`var(--font-size-sm)`,"--text-heading-5-weight":`var(--font-weight-semibold)`,"--text-heading-5-leading":`1.6667`,"--text-heading-6-size":`var(--font-size-xs)`,"--text-heading-6-weight":`var(--font-weight-semibold)`,"--text-heading-6-leading":`1.6`,"--text-body-size":`var(--font-size-base)`,"--text-body-weight":`var(--font-weight-normal)`,"--text-body-leading":`1.4286`,"--text-large-size":`var(--font-size-lg)`,"--text-large-weight":`var(--font-weight-semibold)`,"--text-large-leading":`1.4118`,"--text-label-size":`var(--font-size-base)`,"--text-label-weight":`var(--font-weight-medium)`,"--text-label-leading":`1.4286`,"--text-code-size":`var(--font-size-base)`,"--text-code-weight":`var(--font-weight-normal)`,"--text-code-leading":`1.4286`,"--text-supporting-size":`var(--font-size-sm)`,"--text-supporting-weight":`var(--font-weight-normal)`,"--text-supporting-leading":`1.6667`,"--text-display-1-size":`var(--font-size-5xl)`,"--text-display-1-weight":`var(--font-weight-normal)`,"--text-display-1-leading":`1.2381`,"--text-display-2-size":`var(--font-size-4xl)`,"--text-display-2-weight":`var(--font-weight-normal)`,"--text-display-2-leading":`1.2571`,"--text-display-3-size":`var(--font-size-3xl)`,"--text-display-3-weight":`var(--font-weight-normal)`,"--text-display-3-leading":`1.3793`,"--duration-fast-min":`95ms`,"--duration-fast":`125ms`,"--duration-fast-max":`165ms`,"--duration-medium-min":`225ms`,"--duration-medium":`300ms`,"--duration-medium-max":`400ms`,"--duration-slow-min":`525ms`,"--duration-slow":`700ms`,"--duration-slow-max":`935ms`,"--font-family-body":`Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`,"--font-family-heading":`Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`,"--font-family-code":`ui-monospace, "SF Mono", Monaco, Consolas, "Liberation Mono", "Courier New", monospace`,"--color-syntax-keyword":`light-dark(#700084, #efa8ff)`,"--color-syntax-string":`light-dark(#005600, #a6d2a2)`,"--color-syntax-comment":`light-dark(#737373, #a3a3a3)`,"--color-syntax-number":`light-dark(#6e3500, #ffb37f)`,"--color-syntax-function":`light-dark(#00458c, #a0caff)`,"--color-syntax-type":`light-dark(#700084, #efa8ff)`,"--color-syntax-variable":`light-dark(#171717, #e5e5e5)`,"--color-syntax-operator":`light-dark(#737373, #a3a3a3)`,"--color-syntax-constant":`light-dark(#6e3500, #ffb37f)`,"--color-syntax-tag":`light-dark(#89001a, #ffaeaa)`,"--color-syntax-attribute":`light-dark(#584400, #eec12f)`,"--color-syntax-property":`light-dark(#005348, #83dac9)`,"--color-syntax-punctuation":`light-dark(#6e6e6e, #a0a0a0)`,"--color-syntax-background":`light-dark(#fafafa, #0a0a0a)`,"--color-background-surface":`light-dark(#ffffff, #262626)`,"--color-background-body":`light-dark(#f1f1f1, #1b1b1b)`,"--color-background-card":`light-dark(#ffffff, #1b1b1b)`,"--color-background-popover":`light-dark(#ffffff, #1b1b1b)`,"--color-background-muted":`light-dark(#f1f1f1, #1b1b1b)`,"--color-accent":`light-dark(#262626, #ebebeb)`,"--color-accent-muted":`light-dark(#f1f1f1, #262626)`,"--color-neutral":`light-dark(#0000000F, #FFFFFF1A)`,"--color-overlay":`light-dark(#00000080, #000000CC)`,"--color-overlay-hover":`light-dark(#0000000D, #FFFFFF0D)`,"--color-overlay-pressed":`light-dark(#0000001A, #FFFFFF1A)`,"--color-text-primary":`light-dark(#171717, #fafafa)`,"--color-text-secondary":`light-dark(#525252, #a3a3a3)`,"--color-text-disabled":`light-dark(#a3a3a3, #525252)`,"--color-text-accent":`light-dark(#262626, #ebebeb)`,"--color-on-dark":`#ffffff`,"--color-on-light":`#171717`,"--color-on-accent":`light-dark(#ffffff, #171717)`,"--color-on-success":`light-dark(#ffffff, #171717)`,"--color-on-error":`light-dark(#ffffff, #171717)`,"--color-on-warning":`#171717`,"--color-icon-accent":`light-dark(#262626, #ebebeb)`,"--color-icon-primary":`light-dark(#171717, #fafafa)`,"--color-icon-secondary":`light-dark(#737373, #a3a3a3)`,"--color-icon-disabled":`light-dark(#a3a3a3, #525252)`,"--color-success":`light-dark(#007004, #9fe59b)`,"--color-error":`light-dark(#a50c25, #ffc6c1)`,"--color-warning":`light-dark(#745b00, #fdcf4f)`,"--color-success-muted":`light-dark(#c5e5c0, #84c9803D)`,"--color-error-muted":`light-dark(#facecb, #ff9e973D)`,"--color-warning-muted":`light-dark(#f8da9d, #deb4333D)`,"--color-border":`light-dark(#00000014, #FFFFFF1A)`,"--color-border-emphasized":`light-dark(#d4d4d4, #525252)`,"--color-skeleton":`light-dark(#ebebeb, #525252)`,"--color-shadow":`light-dark(#0000001A, #0000004D)`,"--color-tint-hover":`light-dark(black, white)`,"--color-background-red":`light-dark(#facecb, #ff9e973D)`,"--color-border-red":`light-dark(#e6bab8, #ff6f6c)`,"--color-icon-red":`light-dark(#89001a, #ff9e97)`,"--color-text-red":`light-dark(#89001a, #ffc6c1)`,"--color-background-orange":`light-dark(#fad0b5, #ffa2583D)`,"--color-border-orange":`light-dark(#e6bda2, #e2883e)`,"--color-icon-orange":`light-dark(#6e3500, #ffa258)`,"--color-text-orange":`light-dark(#6e3500, #ffc9a2)`,"--color-background-yellow":`light-dark(#f8da9d, #deb4333D)`,"--color-border-yellow":`light-dark(#e4c279, #c0990e)`,"--color-icon-yellow":`light-dark(#584400, #deb433)`,"--color-text-yellow":`light-dark(#584400, #fdcf4f)`,"--color-background-green":`light-dark(#c5e5c0, #84c9803D)`,"--color-border-green":`light-dark(#b2d1ac, #69ad67)`,"--color-icon-green":`light-dark(#0c5700, #84c980)`,"--color-text-green":`light-dark(#0c5700, #9fe59b)`,"--color-background-teal":`light-dark(#a5e3d6, #7ec6b83D)`,"--color-border-teal":`light-dark(#94d6c8, #63ab9d)`,"--color-icon-teal":`light-dark(#005348, #7ec6b8)`,"--color-text-teal":`light-dark(#005348, #99e2d3)`,"--color-background-cyan":`light-dark(#a3e0ef, #83c2d43D)`,"--color-border-cyan":`light-dark(#91d3e3, #67a7b8)`,"--color-icon-cyan":`light-dark(#00505f, #83c2d4)`,"--color-text-cyan":`light-dark(#00505f, #9edef0)`,"--color-background-blue":`light-dark(#c4ddfb, #9eb7ff3D)`,"--color-border-blue":`light-dark(#b1c9e7, #6d9cfe)`,"--color-icon-blue":`light-dark(#00458c, #9eb7ff)`,"--color-text-blue":`light-dark(#00458c, #c7d3ff)`,"--color-background-purple":`light-dark(#eccef3, #f297ff3D)`,"--color-border-purple":`light-dark(#d8bbdf, #dd74f0)`,"--color-icon-purple":`light-dark(#700084, #f297ff)`,"--color-text-purple":`light-dark(#700084, #fac1ff)`,"--color-background-pink":`light-dark(#fccadc, #ff99c33D)`,"--color-border-pink":`light-dark(#e7b7c8, #f273aa)`,"--color-icon-pink":`light-dark(#83004b, #ff99c3)`,"--color-text-pink":`light-dark(#83004b, #ffc3da)`,"--color-background-gray":`light-dark(#e5e5e5, var(--color-neutral))`,"--color-border-gray":`light-dark(#d4d4d4, #262626)`,"--color-icon-gray":`light-dark(#525252, #a3a3a3)`,"--color-text-gray":`light-dark(#262626, #e5e5e5)`,"--radius-none":`0px`,"--radius-inner":`0.375rem`,"--radius-element":`0.625rem`,"--radius-container":`0.75rem`,"--radius-page":`1.75rem`,"--radius-full":`9999px`,"--shadow-low":`0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 25%)), 0 4px 8px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 40%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 8%))`,"--shadow-med":`0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 35%)), 0 4px 12px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 12%))`,"--shadow-high":`0 4px 6px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), 0 12px 24px light-dark(oklch(0 0 0 / 15%), oklch(0 0 0 / 70%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 15%))`,"--shadow-inset-hover":`inset 0px 0px 0px 2px #0074e24D`,"--shadow-inset-selected":`inset 0px 0px 0px 2px #0074e280`,"--shadow-inset-success":`inset 0px 0px 0px 2px #1981004D`,"--shadow-inset-warning":`inset 0px 0px 0px 2px #ffce2f4D`,"--shadow-inset-error":`inset 0px 0px 0px 2px #e33f4a4D`},components:{heading:{"level:1":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-heading-1-size)`,fontWeight:`var(--text-heading-1-weight)`,lineHeight:`var(--text-heading-1-leading)`},"level:2":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-heading-2-size)`,fontWeight:`var(--text-heading-2-weight)`,lineHeight:`var(--text-heading-2-leading)`},"level:3":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-heading-3-size)`,fontWeight:`var(--text-heading-3-weight)`,lineHeight:`var(--text-heading-3-leading)`},"level:4":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-heading-4-size)`,fontWeight:`var(--text-heading-4-weight)`,lineHeight:`var(--text-heading-4-leading)`},"level:5":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-heading-5-size)`,fontWeight:`var(--text-heading-5-weight)`,lineHeight:`var(--text-heading-5-leading)`},"level:6":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-heading-6-size)`,fontWeight:`var(--text-heading-6-weight)`,lineHeight:`var(--text-heading-6-leading)`},"type:display-1":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-display-1-size)`,lineHeight:`var(--text-display-1-leading)`},"type:display-2":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-display-2-size)`,lineHeight:`var(--text-display-2-leading)`},"type:display-3":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-display-3-size)`,lineHeight:`var(--text-display-3-leading)`}},text:{"type:body":{fontFamily:`var(--font-family-body)`,fontSize:`var(--text-body-size)`,lineHeight:`var(--text-body-leading)`},"type:large":{fontFamily:`var(--font-family-body)`,fontSize:`var(--text-large-size)`,lineHeight:`var(--text-large-leading)`},"type:label":{fontFamily:`var(--font-family-body)`,fontSize:`var(--text-label-size)`,lineHeight:`var(--text-label-leading)`},"type:code":{fontFamily:`var(--font-family-code)`,fontSize:`var(--text-code-size)`,lineHeight:`var(--text-code-leading)`},"type:supporting":{fontFamily:`var(--font-family-body)`,fontSize:`var(--text-supporting-size)`,lineHeight:`var(--text-supporting-leading)`},"type:display-1":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-display-1-size)`,lineHeight:`var(--text-display-1-leading)`},"type:display-2":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-display-2-size)`,lineHeight:`var(--text-display-2-leading)`},"type:display-3":{fontFamily:`var(--font-family-heading)`,fontSize:`var(--text-display-3-size)`,lineHeight:`var(--text-display-3-leading)`}},button:{"variant:destructive":{backgroundColor:`var(--color-error-muted)`,color:`var(--color-error)`}},badge:{"variant:info":{backgroundColor:`light-dark(#0074e2, #6d9cfe)`,color:`light-dark(#ffffff, #171717)`},"variant:neutral":{backgroundColor:`var(--color-background-gray)`,color:`var(--color-text-gray)`},"variant:success":{backgroundColor:`light-dark(#198100, #64af4c)`,color:`light-dark(#ffffff, #171717)`},"variant:warning":{backgroundColor:`#ffce2f`,color:`#171717`},"variant:error":{backgroundColor:`light-dark(#c9303a, #ff705d)`,color:`light-dark(#ffffff, #171717)`},"variant:red":{backgroundColor:`var(--color-background-red)`,color:`var(--color-text-red)`},"variant:orange":{backgroundColor:`var(--color-background-orange)`,color:`var(--color-text-orange)`},"variant:yellow":{backgroundColor:`var(--color-background-yellow)`,color:`var(--color-text-yellow)`},"variant:green":{backgroundColor:`var(--color-background-green)`,color:`var(--color-text-green)`},"variant:teal":{backgroundColor:`var(--color-background-teal)`,color:`var(--color-text-teal)`},"variant:cyan":{backgroundColor:`var(--color-background-cyan)`,color:`var(--color-text-cyan)`},"variant:blue":{backgroundColor:`var(--color-background-blue)`,color:`var(--color-text-blue)`},"variant:purple":{backgroundColor:`var(--color-background-purple)`,color:`var(--color-text-purple)`},"variant:pink":{backgroundColor:`var(--color-background-pink)`,color:`var(--color-text-pink)`},"variant:gray":{backgroundColor:`var(--color-background-gray)`,color:`var(--color-text-gray)`}},statusdot:{"variant:success":{backgroundColor:`light-dark(#198100, #64af4c)`},"variant:warning":{backgroundColor:`#ffce2f`},"variant:error":{backgroundColor:`light-dark(#c9303a, #ff705d)`},"variant:accent":{backgroundColor:`light-dark(#0074e2, #6d9cfe)`}},banner:{"status:info":{"--color-accent-muted":`var(--color-background-blue)`,"--color-text-primary":`var(--color-text-blue)`,"--color-text-secondary":`var(--color-text-blue)`,"--color-accent":`var(--color-text-blue)`},"status:success":{"--color-text-primary":`var(--color-text-green)`,"--color-text-secondary":`var(--color-text-green)`,"--color-success":`var(--color-text-green)`},"status:warning":{"--color-text-primary":`var(--color-text-yellow)`,"--color-text-secondary":`var(--color-text-yellow)`,"--color-warning":`var(--color-text-yellow)`},"status:error":{"--color-text-primary":`var(--color-text-red)`,"--color-text-secondary":`var(--color-text-red)`,"--color-error":`var(--color-text-red)`}},switch:{base:{"--color-background-gray":`var(--color-border-emphasized)`}},progressbar:{base:{"--color-background-muted":`var(--color-border-emphasized)`},"variant:accent":{"--color-accent":`#0074e2`},"variant:success":{"--color-success":`#198100`},"variant:warning":{"--color-warning":`#ffce2f`},"variant:error":{"--color-error":`#c9303a`}},card:{base:{padding:`var(--spacing-3)`}},section:{base:{padding:`var(--spacing-3)`}}},__onDark:{tokens:{"color-scheme":`dark`,"--color-text-primary":`var(--color-on-dark)`,"--color-icon-primary":`var(--color-on-dark)`,"--color-accent":`var(--color-on-dark)`}},__onLight:{tokens:{"color-scheme":`light`,"--color-text-primary":`var(--color-on-light)`,"--color-icon-primary":`var(--color-on-light)`,"--color-accent":`var(--color-on-light)`}},icons:{close:(0,V.jsx)(Re,{..._S}),chevronDown:(0,V.jsx)(te,{..._S}),chevronLeft:(0,V.jsx)(ne,{..._S}),chevronRight:(0,V.jsx)(re,{..._S}),chevronsLeft:(0,V.jsx)(R,{..._S}),chevronsRight:(0,V.jsx)(z,{..._S}),check:(0,V.jsx)(L,{..._S}),success:(0,V.jsx)(ie,{..._S}),error:(0,V.jsx)(ae,{..._S}),warning:(0,V.jsx)(Fe,{..._S}),info:(0,V.jsx)(ve,{..._S}),calendar:(0,V.jsx)(F,{..._S}),clock:(0,V.jsx)(se,{..._S}),externalLink:(0,V.jsx)(de,{..._S}),menu:(0,V.jsx)(be,{..._S}),moreHorizontal:(0,V.jsx)(ue,{..._S}),search:(0,V.jsx)(De,{..._S}),arrowUp:(0,V.jsx)(N,{..._S}),arrowDown:(0,V.jsx)(j,{..._S}),arrowsUpDown:(0,V.jsx)(M,{..._S}),funnel:(0,V.jsx)(ge,{..._S}),eyeSlash:(0,V.jsx)(fe,{..._S}),viewColumns:(0,V.jsx)(ce,{..._S}),copy:(0,V.jsx)(le,{..._S}),checkDouble:(0,V.jsx)(I,{..._S}),wrench:(0,V.jsx)(Le,{..._S}),stop:(0,V.jsx)(Me,{..._S}),microphone:(0,V.jsx)(xe,{..._S})}};function yS({children:e}){let t=fn(cS,e=>e.snapshot?.preferences?.theme)??`system`,[n,r]=(0,w.useState)(()=>window.matchMedia?.(`(prefers-color-scheme: dark)`).matches??!1);(0,w.useEffect)(()=>{let e=window.matchMedia?.(`(prefers-color-scheme: dark)`);if(!e)return;let t=()=>r(e.matches);return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let i=t===`dark`||t===`system`&&n?`dark`:`light`;return(0,w.useEffect)(()=>{document.documentElement.dataset.theme=i},[i]),(0,V.jsx)(cn,{i18n:Pt,children:(0,V.jsx)(gS,{theme:vS,mode:i,children:e})})}var bS=document.getElementById(`root`);if(!bS)throw Error(`OpenPI Web root is missing`);(0,ze.createRoot)(bS).render((0,V.jsx)(w.StrictMode,{children:(0,V.jsx)(yS,{children:(0,V.jsx)(lS,{})})})); \ No newline at end of file diff --git a/web/ui/src/app/App.tsx b/web/ui/src/app/App.tsx index 90206580..d6e94a87 100644 --- a/web/ui/src/app/App.tsx +++ b/web/ui/src/app/App.tsx @@ -201,6 +201,7 @@ export function App() { pendingFollowUpsReceipt={state.pendingFollowUpsReceipt} commandDiscovery={state.commandDiscovery} snapshot={state.snapshot} + selectedPath={state.selectedPath} selectedWorkspace={state.selectedWorkspace} sessionSwitching={state.sessionSwitching} promptAdmissionPending={state.promptAdmissionPending} diff --git a/web/ui/src/features/composer/Composer.tsx b/web/ui/src/features/composer/Composer.tsx index c0dfb8ba..eafe7d3b 100644 --- a/web/ui/src/features/composer/Composer.tsx +++ b/web/ui/src/features/composer/Composer.tsx @@ -31,6 +31,7 @@ interface ComposerProps { thinkingPendingLevel: WebStoreState["thinkingPendingLevel"]; onInspect?: (terminalId?: string) => void; snapshot: WebSnapshot | null; + selectedPath?: string | null; selectedWorkspace: string | null; sessionSwitching: boolean; promptAdmissionPending: boolean; @@ -67,6 +68,23 @@ export function Composer(props: ComposerProps) { const restoredRecoveryCommandId = useRef(null); const commandMenuWasOpen = useRef(false); const selected = props.snapshot?.selectedSession; + const selectedPath = + props.selectedPath === undefined + ? (selected?.path ?? null) + : props.selectedPath; + const sessionPath = + selected?.cwd === props.selectedWorkspace ? selectedPath : null; + const draftScope = + (props.workspaceDraft ? null : sessionPath) ?? + (props.selectedWorkspace ? `new:${props.selectedWorkspace}` : "none"); + const draftScopeRef = useRef(draftScope); + const draftRevision = useRef(0); + const transferDraftToCreatedSession = useRef(false); + const pendingSubmission = useRef<{ + revision: number; + scope: string; + canTransferToCreatedSession: boolean; + } | null>(null); const active = Boolean( !props.workspaceDraft && selected?.id && @@ -164,13 +182,50 @@ export function Composer(props: ComposerProps) { props.actions.acknowledgePromptAdmissionResolution(resolution.commandId); }, [prompt, props.actions, props.promptAdmissionResolution]); - const clearPrompt = () => { + useEffect(() => { + const previousScope = draftScopeRef.current; + if (previousScope === draftScope) return; + draftScopeRef.current = draftScope; + + const submission = pendingSubmission.current; + const createdSession = + !props.workspaceDraft && + (transferDraftToCreatedSession.current || + (submission?.canTransferToCreatedSession && + submission.scope === previousScope)) && + Boolean(sessionPath) && + props.snapshot?.selectedSession?.path === sessionPath && + props.snapshot?.selectedSession?.cwd === props.selectedWorkspace; + if (createdSession) { + if (submission?.canTransferToCreatedSession) + submission.scope = draftScope; + transferDraftToCreatedSession.current = false; + return; + } + + const startingNewSession = + props.workspaceDraft && + props.selectedWorkspace && + draftScope === `new:${props.selectedWorkspace}` && + props.snapshot?.selectedSession?.cwd === props.selectedWorkspace; + if (startingNewSession) { + transferDraftToCreatedSession.current = true; + return; + } + + draftRevision.current += 1; setPrompt(""); - if (textarea.current) { - textarea.current.style.height = "auto"; - textarea.current.style.overflowY = "hidden"; + if (submission?.scope === previousScope) { + submission.canTransferToCreatedSession = false; } - }; + }, [ + draftScope, + props.snapshot?.selectedSession?.path, + props.snapshot?.selectedSession?.cwd, + props.selectedWorkspace, + props.workspaceDraft, + sessionPath, + ]); const resize = (element: HTMLTextAreaElement) => { element.style.height = "auto"; @@ -178,24 +233,53 @@ export function Composer(props: ComposerProps) { element.style.overflowY = element.scrollHeight > 220 ? "auto" : "hidden"; }; - const send = async (event?: FormEvent) => { - event?.preventDefault(); + const sendDraft = async ( + sendPrompt: (content: string) => Promise, + ) => { + if (pendingSubmission.current) return; if (!props.selectedWorkspace) { await props.actions.chooseWorkspace(); return; } - if (await props.actions.sendPrompt(prompt)) { - clearPrompt(); + const submission = { + revision: draftRevision.current, + scope: draftScopeRef.current, + canTransferToCreatedSession: draftSession, + }; + pendingSubmission.current = submission; + try { + if (await sendPrompt(prompt)) { + if ( + pendingSubmission.current === submission && + draftScopeRef.current === submission.scope && + draftRevision.current === submission.revision + ) { + draftRevision.current += 1; + setPrompt(""); + if (textarea.current) { + textarea.current.style.height = "auto"; + textarea.current.style.overflowY = "hidden"; + } + } + } + } finally { + if (pendingSubmission.current === submission) { + pendingSubmission.current = null; + } } }; - const sendAsNew = async () => { - if (await props.actions.sendPromptAsNew(prompt)) clearPrompt(); + const send = async (event?: FormEvent) => { + event?.preventDefault(); + await sendDraft(props.actions.sendPrompt); }; + const sendAsNew = () => sendDraft(props.actions.sendPromptAsNew); + const completeCommand = (command: (typeof filteredCommands)[number]) => { if (command.availability !== "available") return; const value = `/${command.name} `; + draftRevision.current += 1; setPrompt(value); setCursor(value.length); setMenuDismissed(true); @@ -418,6 +502,7 @@ export function Composer(props: ComposerProps) { } placeholder={placeholder} onChange={(event) => { + draftRevision.current += 1; setPrompt(event.target.value); setCursor(event.target.selectionStart); setMenuDismissed(false);