@av-pi-studio/web-client 0.0.117 → 0.0.118
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -12
- package/dist/web/assets/BinaryFallbackViewer-6oStgFbx.js +1 -0
- package/dist/web/assets/{ChatPanel-Dh8HDToX.js → ChatPanel-BVw71R5q.js} +5 -5
- package/dist/web/assets/CodeView-DBvTM0BW.js +1 -0
- package/dist/web/assets/{DiffView-H0nfCGhg.js → DiffView-Bp1YwIcs.js} +1 -1
- package/dist/web/assets/FilePanel-Bl5ytI3U.js +1 -0
- package/dist/web/assets/HtmlViewer-D52zbW1I.js +1 -0
- package/dist/web/assets/ImageViewer-DyQNZCKd.js +1 -0
- package/dist/web/assets/MarkdownFileViewer-BZJbZEGK.js +1 -0
- package/dist/web/assets/ModelProvidersPanel-DoQ6F0J7.js +1 -0
- package/dist/web/assets/MoleculeViewerPanel-CUgDBSd_.js +1 -0
- package/dist/web/assets/PdfViewer-BHiGul5n.js +1 -0
- package/dist/web/assets/SaveFileButton-469govDl.js +1 -0
- package/dist/web/assets/SettingsDialog-D2rCwciZ.js +8 -0
- package/dist/web/assets/SkillsPanel-Bwa_B9KI.js +1 -0
- package/dist/web/assets/{StatusBadge-4Ta2PiFt.js → StatusBadge-eoBBn7zF.js} +1 -1
- package/dist/web/assets/{Switch-DrRVfYsF.js → Switch-DvBJf8Rd.js} +1 -1
- package/dist/web/assets/TerminalPanel-B8j4fo6Z.js +1 -0
- package/dist/web/assets/TextViewer-DNjD6up3.js +1 -0
- package/dist/web/assets/VideoViewer-BeiZJGIs.js +1 -0
- package/dist/web/assets/ViewersPanel-DbKljM62.js +1 -0
- package/dist/web/assets/{abnfDiagram-N423BO3Z-DAM-L4Gi.js → abnfDiagram-N423BO3Z-CpfpOF_O.js} +1 -1
- package/dist/web/assets/{arc-B5fbklv-.js → arc-DBTSI6_N.js} +1 -1
- package/dist/web/assets/{architectureDiagram-T3A2C74G-g5YdBqOD.js → architectureDiagram-T3A2C74G-BSevfMW_.js} +1 -1
- package/dist/web/assets/{blockDiagram-VBNYF7ZC-CnQe9SwF.js → blockDiagram-VBNYF7ZC-mjH_gzpo.js} +1 -1
- package/dist/web/assets/{c4Diagram-5PPSVZJV-hnI3bmAh.js → c4Diagram-5PPSVZJV-CKvGPw0r.js} +1 -1
- package/dist/web/assets/channel-DewxN4Jo.js +1 -0
- package/dist/web/assets/{chunk-2GRJ4B5K-ga2EpiBM.js → chunk-2GRJ4B5K-DX9yxpY8.js} +1 -1
- package/dist/web/assets/{chunk-2Q5K7J3B-8EL89tcM.js → chunk-2Q5K7J3B-CLN7DvaK.js} +1 -1
- package/dist/web/assets/{chunk-5RXB4S5H-ny9nLzV7.js → chunk-5RXB4S5H-_JxweRkX.js} +1 -1
- package/dist/web/assets/{chunk-5VM5RSS4-D8AiE16-.js → chunk-5VM5RSS4-3BAvSy1_.js} +1 -1
- package/dist/web/assets/{chunk-6Q2QTUOP-BEyDElR_.js → chunk-6Q2QTUOP-DQLD88Lm.js} +1 -1
- package/dist/web/assets/{chunk-GF5L2VYU-BOQX5MLe.js → chunk-GF5L2VYU-D-1fx8P7.js} +1 -1
- package/dist/web/assets/{chunk-JWPE2WC7-DZ7yLQfa.js → chunk-JWPE2WC7-C2fToatl.js} +1 -1
- package/dist/web/assets/{chunk-KBJHAD2P-ogydf6uq.js → chunk-KBJHAD2P-DHjSexvX.js} +1 -1
- package/dist/web/assets/{chunk-RYQCIY6F-B4kX-J9n.js → chunk-RYQCIY6F-DsVSVTjX.js} +1 -1
- package/dist/web/assets/{chunk-XXDRQBXY-CJ0O9VGU.js → chunk-XXDRQBXY-Csxxsn8g.js} +1 -1
- package/dist/web/assets/classDiagram-JCYQIIEL-YbS66O-E.js +1 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-YbS66O-E.js +1 -0
- package/dist/web/assets/{cose-bilkent-JH36ORCC-lwzifGUR.js → cose-bilkent-JH36ORCC-DIVX_YPY.js} +1 -1
- package/dist/web/assets/{cynefin-VYW2F7L2-UwoALUYS.js → cynefin-VYW2F7L2-fVS7Seyd.js} +1 -1
- package/dist/web/assets/{cynefinDiagram-MW4NZA55-Dal57Q23.js → cynefinDiagram-MW4NZA55-krsTOg0x.js} +1 -1
- package/dist/web/assets/{dagre-VZM6K2ZE-CKlrZnar.js → dagre-VZM6K2ZE-Byz_9-UR.js} +1 -1
- package/dist/web/assets/{diagram-7IWD3JNH-FMn1vsHL.js → diagram-7IWD3JNH-CAwWHICT.js} +1 -1
- package/dist/web/assets/{diagram-B4RE2ZJO-CI5rpxKQ.js → diagram-B4RE2ZJO-zvv-V2co.js} +1 -1
- package/dist/web/assets/{diagram-LBJQPF4R-BOVH3I-f.js → diagram-LBJQPF4R-i5y2WTdZ.js} +1 -1
- package/dist/web/assets/{diagram-Q27KOJAE-DmuUX06N.js → diagram-Q27KOJAE-B1inWemu.js} +1 -1
- package/dist/web/assets/{diagram-UB23O5K3-Cw9DrP-K.js → diagram-UB23O5K3-Dh89SZOh.js} +1 -1
- package/dist/web/assets/{ebnfDiagram-BXEA7PRR-f4TEQ7_W.js → ebnfDiagram-BXEA7PRR-su2ygatX.js} +1 -1
- package/dist/web/assets/{erDiagram-JOGREHBK-CF47Mcra.js → erDiagram-JOGREHBK-BbsgEzQn.js} +1 -1
- package/dist/web/assets/{flowDiagram-UKHOOZJN-rdiIClpu.js → flowDiagram-UKHOOZJN-Chl_0-ag.js} +1 -1
- package/dist/web/assets/{ganttDiagram-PKOTCBZU-BBqllMXi.js → ganttDiagram-PKOTCBZU-CYMojHU0.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-6sOrT3Es.js → gitGraphDiagram-DS77QQ5N-BZQF2UJa.js} +1 -1
- package/dist/web/assets/{graph-DUOUaKTD.js → graph-q4AqDxwU.js} +1 -1
- package/dist/web/assets/{href-resolution-XVtyCiRv.js → href-resolution-A_PcAhnr.js} +1 -1
- package/dist/web/assets/{index-DbyP1ZAT.css → index-Dg0mhDS9.css} +1 -1
- package/dist/web/assets/index-DjRqFIN0.js +19 -0
- package/dist/web/assets/{infoDiagram-6WML65LV-B8DQ1Ntn.js → infoDiagram-6WML65LV-L2kKwrdb.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-CL_6Xhdk.js → ishikawaDiagram-WSZJBQD7-B-hdpT0j.js} +1 -1
- package/dist/web/assets/{journeyDiagram-NVQOT4AX-iO2oB_PM.js → journeyDiagram-NVQOT4AX-DtZbDU0g.js} +1 -1
- package/dist/web/assets/{kanban-definition-27J2QSJJ-Bq5zUdk6.js → kanban-definition-27J2QSJJ-BNVi4euz.js} +1 -1
- package/dist/web/assets/{layout-CKWK6l6a.js → layout-ZLTTNfUo.js} +1 -1
- package/dist/web/assets/{linear-hDCiku2e.js → linear-Dg9CPt0k.js} +1 -1
- package/dist/web/assets/markdown-lfaaW_Mn.js +5 -0
- package/dist/web/assets/{mermaid.core-CHAol8ex.js → mermaid.core-524tR-D2.js} +4 -4
- package/dist/web/assets/{mindmap-definition-FAOFIHXS-BBmO4Gks.js → mindmap-definition-FAOFIHXS-CJKkZcYQ.js} +1 -1
- package/dist/web/assets/{ordinal-Bt4q2WDw.js → ordinal-B7gl1e82.js} +1 -1
- package/dist/web/assets/{pegDiagram-VL7TDLO6-DqQhyw9T.js → pegDiagram-VL7TDLO6-C29SbD0M.js} +1 -1
- package/dist/web/assets/{pieDiagram-7S7Q4E2Y-BS5cr7Al.js → pieDiagram-7S7Q4E2Y-BpeO9BuX.js} +1 -1
- package/dist/web/assets/{provider-auth-store-B0otZuIW.js → provider-auth-store-CpmUGwuu.js} +1 -1
- package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-BLDUr9qC.js → quadrantDiagram-CIZ2JOQS-yU4K00QE.js} +1 -1
- package/dist/web/assets/{railroadDiagram-AXF67PYL-VFMEovCO.js → railroadDiagram-AXF67PYL-DIkSup17.js} +1 -1
- package/dist/web/assets/{requirementDiagram-LRYGKXZP-B1AZqGHF.js → requirementDiagram-LRYGKXZP-DB5tgpS1.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-W5VNT64P-DsZPKpe8.js → sankeyDiagram-W5VNT64P-DYPa3r0S.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-SI44F4Z6-BiJ-GnCG.js → sequenceDiagram-SI44F4Z6-C_rD0zxP.js} +1 -1
- package/dist/web/assets/{sizeCapture-X5ZJPWSS-C2FFfWkK.js → sizeCapture-X5ZJPWSS-DzC-Nn78.js} +1 -1
- package/dist/web/assets/{stateDiagram-OKZ733FA-qFV_v5ZT.js → stateDiagram-OKZ733FA-DQdSURcD.js} +1 -1
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-BCmrjJ-P.js +1 -0
- package/dist/web/assets/{swimlanes-SLNWSIFB-9sGFMDql.js → swimlanes-SLNWSIFB-BA-Oww3o.js} +2 -2
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BtietnZ5.js +8 -0
- package/dist/web/assets/{timeline-definition-Z64GVDOM-D3ypJvTh.js → timeline-definition-Z64GVDOM-C7JXpk1W.js} +1 -1
- package/dist/web/assets/use-file-download-FoQrf961.js +1 -0
- package/dist/web/assets/{use-file-watch-Ca_f0M8P.js → use-file-watch-Th-A-3Ws.js} +1 -1
- package/dist/web/assets/{use-provider-auth-list-BfHGDiIE.js → use-provider-auth-list-D5pguVWm.js} +1 -1
- package/dist/web/assets/{vendor-dnd-CayJj8TC.js → vendor-dnd-vJGfGIIi.js} +1 -1
- package/dist/web/assets/{vendor-highlight-2yu9fuIs.js → vendor-highlight-DaCUEPaW.js} +1 -1
- package/dist/web/assets/{vendor-icons-DEs9VPZK.js → vendor-icons-CSCeICuX.js} +1 -1
- package/dist/web/assets/{vendor-markdown-BdpekPki.js → vendor-markdown-Bo-Xpsuy.js} +1 -1
- package/dist/web/assets/{vendor-molviewer-DeAF8d5d.js → vendor-molviewer-7FbONJs2.js} +1 -1
- package/dist/web/assets/{vendor-overlays-SaWbfdX8.js → vendor-overlays-DjMT65Ip.js} +1 -1
- package/dist/web/assets/{vendor-pdfjs-BrYGnqfM.js → vendor-pdfjs-BSchhGel.js} +2 -2
- package/dist/web/assets/{vendor-query-i7fr__Xm.js → vendor-query-CDNPrdQ8.js} +1 -1
- package/dist/web/assets/{vendor-react-DQUAl2K8.js → vendor-react-Dka9ZH0B.js} +1 -1
- package/dist/web/assets/{vendor-D3SOLPPh.js → vendor-z183l2lP.js} +6 -6
- package/dist/web/assets/{vennDiagram-T6HMQDX7-CL6HBdNJ.js → vennDiagram-T6HMQDX7-C_y33Ta5.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-T6FBY63Y-CovrUiAA.js → wardleyDiagram-T6FBY63Y-gxOBkNAp.js} +1 -1
- package/dist/web/assets/{xychartDiagram-ELKLHX3M-B4B84nxd.js → xychartDiagram-ELKLHX3M-BEdGwPiU.js} +1 -1
- package/dist/web/index.html +9 -8
- package/package.json +5 -42
- package/dist/web/assets/BinaryFallbackViewer-BtxtcHuV.js +0 -1
- package/dist/web/assets/CodeView-CAB3SZYK.js +0 -1
- package/dist/web/assets/FilePanel-C8cn3iJj.js +0 -1
- package/dist/web/assets/HtmlViewer-C6i8TGWc.js +0 -1
- package/dist/web/assets/ImageViewer-CyNec5RW.js +0 -1
- package/dist/web/assets/MarkdownFileViewer-Ck__w_R6.js +0 -1
- package/dist/web/assets/ModelProvidersPanel-BzCxTWcG.js +0 -1
- package/dist/web/assets/MoleculeViewerPanel-Dm74U_GU.js +0 -1
- package/dist/web/assets/PdfViewer-DP5N6Zq4.js +0 -1
- package/dist/web/assets/SettingsDialog-DFOcdK5d.js +0 -8
- package/dist/web/assets/SkillsPanel-B1rX9W8m.js +0 -1
- package/dist/web/assets/TerminalPanel-Bl7fG-P0.js +0 -1
- package/dist/web/assets/TextViewer-C6sO1Esy.js +0 -1
- package/dist/web/assets/VideoViewer-cj1hw5cl.js +0 -1
- package/dist/web/assets/ViewersPanel-DtgabN6n.js +0 -1
- package/dist/web/assets/channel-BC5O3Fw2.js +0 -1
- package/dist/web/assets/classDiagram-JCYQIIEL-DtNk70ER.js +0 -1
- package/dist/web/assets/classDiagram-v2-OCEON4UE-DtNk70ER.js +0 -1
- package/dist/web/assets/index-DVjN3uZm.js +0 -19
- package/dist/web/assets/markdown-DNjz8eN5.js +0 -5
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-BLx9oVo-.js +0 -1
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-DXJEgu0Z.js +0 -8
- package/dist/web/assets/use-file-download-DF0pV2Qv.js +0 -1
package/README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# `@av-pi-studio/web-client`
|
|
2
2
|
|
|
3
|
-
The
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
`
|
|
3
|
+
The Pi-Studio browser app: a thin Vite shell that renders `@av-pi-studio/workbench` (the
|
|
4
|
+
application — chat, timelines, terminals, files, git; see `packages/workbench/README.md`) with a
|
|
5
|
+
browser host. Ships as a prebuilt static SPA (`dist/web`), served by `pi-studio ui`,
|
|
6
|
+
`docker/web-client.Dockerfile`, or any static file host.
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -24,8 +24,8 @@ With both variables unset, the build is byte-for-byte the default **Pi-Studio**
|
|
|
24
24
|
| `PI_STUDIO_BRAND_ICON` | _(unset → `public/favicon.svg`)_ | Path to a `.svg`, `.png`, or `.ico` file that replaces the favicon |
|
|
25
25
|
|
|
26
26
|
Both are read once, at Vite config-eval time, by `vite.config.ts`'s `brandHtmlPlugin` (backed by
|
|
27
|
-
the pure resolver in `src/brand/build-brand.ts`) — they apply identically to `npm run dev
|
|
28
|
-
`npm run build:web
|
|
27
|
+
the pure resolver in `src/brand/build-brand.ts`) — they apply identically to `npm run dev` and
|
|
28
|
+
`npm run build:web`.
|
|
29
29
|
|
|
30
30
|
### Usage
|
|
31
31
|
|
|
@@ -97,9 +97,9 @@ npm run build:web -w @av-pi-studio/web-client # browser build (dist/web)
|
|
|
97
97
|
npx vitest run packages/web-client
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
`
|
|
104
|
-
|
|
105
|
-
for
|
|
100
|
+
This package is the shell only: `src/main.tsx` (stylesheets, `createBrowserHost` with the build-time
|
|
101
|
+
brand title/version and the pdf.js worker, `<Workbench>`), `src/global.css` (the `#root` rule),
|
|
102
|
+
`src/brand/build-brand.ts` and `vite.config.ts`. The application is `@av-pi-studio/workbench`
|
|
103
|
+
(`packages/workbench`) and the design system `@av-pi-studio/ui-library` (`packages/ui-library`);
|
|
104
|
+
both are devDependencies resolved from source through Vite aliases and bundled into the SPA. See
|
|
105
|
+
`AGENTS.md` for this package and `packages/workbench/AGENTS.md` for the application.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as i}from"./vendor-react-Dka9ZH0B.js";import{S as o}from"./SaveFileButton-469govDl.js";import{F as n}from"./vendor-icons-CSCeICuX.js";import"./index-DjRqFIN0.js";import"./vendor-z183l2lP.js";import"./vendor-query-CDNPrdQ8.js";import"./vendor-overlays-DjMT65Ip.js";import"./vendor-dnd-vJGfGIIi.js";import"./vendor-pdfjs-BSchhGel.js";const t="_wrap_inn1j_1",a="_name_inn1j_12",e={wrap:t,name:a};function _({path:r,workspaceCwd:m}){const s=r.split("/").pop()||r;return i.jsxs("div",{className:e.wrap,children:[i.jsx(n,{size:32}),i.jsx("div",{className:e.name,children:s}),i.jsx("div",{children:"No preview available for this file type."}),i.jsx(o,{path:r})]})}export{_ as BinaryFallbackViewer};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{r as h,j as t}from"./vendor-react-
|
|
1
|
+
import{r as h,j as t}from"./vendor-react-Dka9ZH0B.js";import{a as cn,b as ln,m as dn,u as Le}from"./vendor-query-CDNPrdQ8.js";import{O as Be,Q as M,R as un,u as J,U as mn,I as O,W as fn,X as pn,B as z,y as hn,Y as _t,S as ne,J as _n,D as gn,z as xn,Z as gt,s as xt,n as kt,_ as kn,$ as vn,a0 as jn,q as vt,a1 as yn,E as bn,a2 as ve,r as Oe,a3 as Ie,a4 as Nn,a5 as fe,k as Sn,a6 as Cn,a7 as ke,a8 as wn,a9 as Dn,aa as Tn,ab as rt,ac as En,K as Bn,ad as Rn,ae as An,af as it,ag as Ln,P as ct}from"./index-DjRqFIN0.js";import{L as On,G as In,S as Pn,e as qn,P as zn,f as Fn,g as jt,h as ye,C as pe,B as Mn,i as yt,b as he,A as $n,j as Kn,k as Hn,U as Wn,l as bt,m as Un,n as Gn,o as Vn,p as Xn,q as lt,r as Yn,N as Jn,s as Qn,t as Zn}from"./vendor-icons-CSCeICuX.js";import{u as es}from"./use-provider-auth-list-D5pguVWm.js";import{N as w}from"./vendor-z183l2lP.js";import{S as Nt,M as Pe,r as ts}from"./markdown-lfaaW_Mn.js";import{D as ns,p as ss}from"./DiffView-Bp1YwIcs.js";import{R as qe,T as ze,I as St}from"./vendor-overlays-DjMT65Ip.js";import"./vendor-dnd-vJGfGIIi.js";import"./vendor-pdfjs-BSchhGel.js";import"./vendor-highlight-DaCUEPaW.js";import"./vendor-markdown-Bo-Xpsuy.js";import"./href-resolution-A_PcAhnr.js";function Ct(e,n){if(n.trim()==="")return e;const s=n.toLowerCase();return e.filter(o=>o.label.toLowerCase().includes(s)||o.description!==void 0&&o.description.toLowerCase().includes(s))}function os(e,n={}){const s=new Map;for(const m of e){const u=m.group??"",f=s.get(u);f?f.push(m):s.set(u,[m])}const o=s.get("");s.delete("");const a=[...s.keys()],{priorityGroup:i,ungroupedLabel:c}=n;i!==void 0&&s.has(i)&&(a.splice(a.indexOf(i),1),a.unshift(i));const l=a.map(m=>({key:m,label:m,options:s.get(m)??[]}));return o&&l.push({key:"",label:c,options:o}),l}const as={shell:jt,read:Fn,edit:zn,write:qn,search:Pn,fetch:In,task:On};function rs(e){return as[e.kind]??jt}function wt(e){switch(e.kind){case"read":case"write":case"edit":return e.path??null;default:return null}}function is(e){return e.kind==="write"||e.kind==="edit"||e.kind==="shell"}function cs(e){const n=[];if(e.kind==="edit"&&e.diff)n.push({kind:"diff",patch:e.diff});else{const s=Be(e);s&&n.push({kind:"code",text:s})}return e.output&&n.push({kind:"code",text:e.output}),n}const dt={shell:{label:"SHELL",token:"statusInfo"},read:{label:"READ",token:"statusInfo"},write:{label:"WRITE",token:"statusSuccess"},edit:{label:"EDIT",token:"statusWarning"},search:{label:"SEARCH",token:"statusInfo"},fetch:{label:"FETCH",token:"statusInfo"},task:{label:"TASK",token:"foregroundMuted"}};function ls(e){return dt[e.kind]??dt.task}function ds(e){if(!e)return{added:0,removed:0};let n=0,s=0;for(const o of e.split(`
|
|
2
2
|
`))o.startsWith("+++")||o.startsWith("---")||(o.startsWith("+")?n++:o.startsWith("-")&&s++);return{added:n,removed:s}}function us(e){return e?(e.endsWith(`
|
|
3
3
|
`)?e.slice(0,-1):e).split(`
|
|
4
4
|
`).length:0}const ms=500;let we;function fs(e,n,s,o){clearTimeout(we),we=setTimeout(()=>{we=void 0,e.invalidateQueries({queryKey:["file"]}),e.invalidateQueries({queryKey:["explorer"]}),n&&s&&n.connection.request("checkout_refresh_request",{cwd:s}).catch(()=>{})},ms)}function ps({sessionId:e,event:n,timestamp:s,client:o,queryClient:a}){const i=M.getState();switch(i.applyStreamEvent(e,n,s),n.kind){case"turn_started":i.setStatus(e,"running");break;case"turn_completed":i.setStatus(e,"idle");break;case"turn_failed":i.setStatus(e,"error");break;case"turn_canceled":i.setStatus(e,"idle");break;case"compaction":n.phase==="completed"&&n.estimatedTokensAfter!==void 0&&un(e,n.estimatedTokensAfter);break;case"tool_call":{if(n.status==="completed"&&is(n.tool)){const c=i.sessions[e],l=(c==null?void 0:c.cwd)||null;fs(a,o,l,wt(n.tool))}break}}}function hs(e){const n=J(a=>a.client),s=M(a=>{var i;return((i=a.sessions[e])==null?void 0:i.agentId)??null}),o=cn();h.useEffect(()=>!n||!s?void 0:n.agent(s).timeline.subscribe((i,c)=>{const l=typeof c.timestamp=="number"?new Date(c.timestamp).toISOString():c.timestamp;ps({sessionId:e,event:i,timestamp:l,client:n,queryClient:o})}),[n,s,e,o])}const Dt=64;function De(e){return e.clientHeight>0}function _s(e,n,s,o=Dt){switch(n.kind){case"scroll":return De(s)?s.scrollHeight-s.scrollTop-s.clientHeight<=o?{pinned:!0,stick:!1}:{pinned:n.gesture?!1:e,stick:!1}:{pinned:e,stick:!1};case"tail":return{pinned:e,stick:e&&De(s)};case"shown":return{pinned:e,stick:e};case"pin":return{pinned:!0,stick:De(s)}}}function gs(e){const n=e[e.length-1];return(n==null?void 0:n.kind)==="user"?n.id:null}const xs="_shellRow_1kabp_2",ks="_rail_1kabp_10",vs="_disc_1kabp_18",js="_connector_1kabp_28",ys="_content_1kabp_2",bs="_metaLine_1kabp_40",Ns="_metaTime_1kabp_52",Ss="_forkButton_1kabp_66",U={shellRow:xs,rail:ks,disc:vs,connector:js,content:ys,metaLine:bs,metaTime:Ns,forkButton:Ss};function X({disc:e,discClassName:n,connector:s,meta:o,metaTrailing:a,className:i,children:c}){return t.jsxs("div",{className:U.shellRow,children:[t.jsxs("div",{className:U.rail,children:[t.jsx("span",{className:w(U.disc,n),children:e}),s&&t.jsx("span",{className:U.connector})]}),t.jsxs("div",{className:w(U.content,i),children:[o&&t.jsxs("div",{className:U.metaLine,children:[o,a]}),c]})]})}function ut(e){return typeof e=="number"?e:Date.parse(e)}function Cs(e,n){const s=ut(e.entry.createdAt),o=ut(n.entry.createdAt);return s!==o?s-o:e.entry.requestId<n.entry.requestId?-1:e.entry.requestId>n.entry.requestId?1:0}function ws(e,n){return[...e.map(o=>({kind:"pending",entry:o})),...n.map(o=>({kind:"resolved",entry:o}))].toSorted(Cs)}function Ds(e){return e.entry.requestId}function Tt(e){return e.receivedAt===void 0}const Ts=4;function Es(e,n){let s=0;const o=e.map(l=>l.kind!=="pending"?{item:l,collapsed:!1}:(s++,{item:l,collapsed:!n&&s>Ts})),a=o.filter(l=>l.collapsed).length,i=o.findIndex(l=>l.collapsed),c=[];return o.forEach((l,m)=>{m===i&&c.push({kind:"more",count:a}),c.push({kind:"card",item:l.item,collapsed:l.collapsed})}),c}function Bs(e,n){if(e.timeoutMs===void 0)return{show:!1,fraction:0,approximate:!1};const s=mn(e,n)??0;return{show:!0,fraction:Math.max(0,Math.min(1,s/e.timeoutMs)),approximate:e.receivedAt===void 0}}function Et(e){return e==="editor"}const Rs="Esc again to dismiss — the extension gets an empty answer";function As(e,n){return n?{kind:"warning",text:Rs}:{kind:"keys",segments:[{key:Et(e)?"⇧↵":"↵",label:"submit"},{key:"Esc",label:"dismiss"}]}}function Ls(e){return e?{armed:!1,resolve:!0}:{armed:!0,resolve:!1}}const Os=5,Is=40,Ps=6;function qs(e){return{mode:e.length>=Os||e.some(s=>s.length>Is)?"stack":"row",scrolls:e.length>Ps}}function Re(e){const n=e.split(`
|
|
5
|
-
`),s=[];let o=!1;for(const a of n)if(a===""){if(o)continue;o=!0,s.push("")}else o=!1,s.push(a);return s}function zs(e,n){return{title:Re(e),...n!==void 0?{message:Re(n)}:{}}}const Fs="_askDisc_ffqf1_5",Ms="_card_ffqf1_9",$s="_cardInert_ffqf1_41",
|
|
5
|
+
`),s=[];let o=!1;for(const a of n)if(a===""){if(o)continue;o=!0,s.push("")}else o=!1,s.push(a);return s}function zs(e,n){return{title:Re(e),...n!==void 0?{message:Re(n)}:{}}}const Fs="_askDisc_ffqf1_5",Ms="_card_ffqf1_9",$s="_cardInert_ffqf1_41",Ks="_askDiscInert_ffqf1_47",Hs="_reconnectingNote_ffqf1_52",Ws="_reconnectingDot_ffqf1_61",Us="_deadlineBar_ffqf1_71",Gs="_deadlineApproximate_ffqf1_80",Vs="_header_ffqf1_85",Xs="_askBadge_ffqf1_16",Ys="_methodName_ffqf1_101",Js="_title_ffqf1_107",Qs="_titleEmphasised_ffqf1_115",Zs="_message_ffqf1_119",eo="_emptyOptionsNote_ffqf1_127",to="_controls_ffqf1_133",no="_controlsStack_ffqf1_141",so="_controlsScroll_ffqf1_148",oo="_optionButton_ffqf1_153",ao="_field_ffqf1_161",ro="_editorField_ffqf1_168",io="_rawPayload_ffqf1_176",co="_resolvedCard_ffqf1_190",lo="_askBadgeNeutral_ffqf1_204",uo="_resolvedMethodName_ffqf1_209",mo="_outcome_ffqf1_218",fo="_outcomeSuccess_ffqf1_229",po="_outcomeText_ffqf1_233",ho="_hint_ffqf1_255",_o="_hintKey_ffqf1_270",go="_hintSep_ffqf1_278",xo="_recoveredChip_ffqf1_285",ko="_collapsedPendingCard_ffqf1_297",vo="_moreRow_ffqf1_303",g={askDisc:Fs,card:Ms,cardInert:$s,askDiscInert:Ks,reconnectingNote:Hs,reconnectingDot:Ws,deadlineBar:Us,deadlineApproximate:Gs,header:Vs,askBadge:Xs,methodName:Ys,title:Js,titleEmphasised:Qs,message:Zs,emptyOptionsNote:eo,controls:to,controlsStack:no,controlsScroll:so,optionButton:oo,field:ao,editorField:ro,rawPayload:io,resolvedCard:co,askBadgeNeutral:lo,resolvedMethodName:uo,outcome:mo,outcomeSuccess:fo,outcomeText:po,hint:ho,hintKey:_o,hintSep:go,recoveredChip:xo,collapsedPendingCard:ko,moreRow:vo},jo=250,yo=320;function se(e,n){const s=e[n];return typeof s=="string"?s:void 0}function bo(e,n){const s=e[n];return Array.isArray(s)?s.filter(o=>typeof o=="string"):[]}function No({item:e,connector:n,collapsed:s=!1,autoFocus:o=!1,sessionTitle:a}){return e.kind==="resolved"?t.jsx(wo,{entry:e.entry,connector:n}):s?t.jsx(So,{entry:e.entry,connector:n}):t.jsx(To,{entry:e.entry,connector:n,autoFocus:o,sessionTitle:a})}function Bt(){return t.jsx("span",{className:g.recoveredChip,children:"still waiting"})}function So({entry:e,connector:n}){return t.jsx(X,{disc:t.jsx(O,{icon:ye,size:"xs",color:"var(--pi-color-statusWarning)"}),discClassName:g.askDisc,connector:n,children:t.jsxs("div",{className:w(g.resolvedCard,g.collapsedPendingCard),children:[t.jsx("span",{className:g.askBadge,children:"ASK"}),t.jsx("span",{className:g.resolvedMethodName,children:e.method}),Tt(e)&&t.jsx(Bt,{})]})})}function Co({count:e,connector:n,onExpand:s}){return t.jsx(X,{disc:t.jsx(O,{icon:ye,size:"xs",color:"var(--pi-color-foregroundMuted)"}),discClassName:g.askDiscInert,connector:n,children:t.jsxs("button",{type:"button",className:g.moreRow,onClick:s,children:[e," more waiting"]})})}function wo({entry:e,connector:n}){const s=fn(e);return t.jsx(X,{disc:t.jsx(O,{icon:ye,size:"xs",color:"var(--pi-color-foregroundMuted)"}),discClassName:g.askDiscInert,connector:n,children:t.jsxs("div",{className:g.resolvedCard,children:[t.jsx("span",{className:w(g.askBadge,g.askBadgeNeutral),children:"ASK"}),t.jsx("span",{className:g.resolvedMethodName,children:e.method}),t.jsxs("span",{className:w(g.outcome,s.tone==="success"&&g.outcomeSuccess),children:[s.glyph==="check"&&t.jsx(pe,{size:11,"aria-hidden":!0}),t.jsx("span",{className:w(s.truncate&&g.outcomeText),children:s.text})]})]})})}function Q(e,n){return e.answerable?e.submitting?n?{loading:!0,style:{opacity:1}}:{disabled:!0}:{}:{disabled:!0,style:{opacity:1}}}function Do({hint:e}){return e.kind==="warning"?t.jsx("p",{className:g.hint,children:e.text}):t.jsx("p",{className:g.hint,children:e.segments.map((n,s)=>t.jsxs(h.Fragment,{children:[s>0&&t.jsx("span",{className:g.hintSep,children:"·"}),t.jsx("span",{className:g.hintKey,children:n.key}),n.label]},n.label))})}function To({entry:e,connector:n,autoFocus:s=!1,sessionTitle:o}){const[a,i]=h.useState(()=>Date.now()),c=Bs(e,a),[l,m]=h.useState(!1),u=h.useRef(null),f=h.useRef(null),d=h.useRef(null);h.useEffect(()=>{if(!c.show)return;const b=setInterval(()=>i(Date.now()),jo);return()=>clearInterval(b)},[e.requestId,e.timeoutMs,c.show]),h.useEffect(()=>{var B,A;if(!s||!e.answerable)return;const b=document.activeElement;(b instanceof HTMLTextAreaElement||b instanceof HTMLInputElement)&&b.value.length>0&&!((B=u.current)!=null&&B.contains(b))||(A=f.current)==null||A.focus()},[s,e.answerable]);function x(b){var N,B;e.answerable&&(b.target.closest("button, input, textarea, a, select")||(N=u.current)!=null&&N.contains(document.activeElement)||(B=u.current)==null||B.focus())}function D(b){pn(e.requestId,b)}function q(b){var B;if(b.key!=="Escape"||!e.answerable)return;b.preventDefault(),b.stopPropagation();const N=Ls(l);if(m(N.armed),!N.resolve){(B=d.current)==null||B.focus();return}d.current?d.current.click():D({cancelled:!0})}function G(b){b.currentTarget.contains(b.relatedTarget)||m(!1)}return t.jsxs(X,{disc:t.jsx(O,{icon:ye,size:"xs",color:e.answerable?"var(--pi-color-statusWarning)":"var(--pi-color-foregroundMuted)"}),discClassName:e.answerable?g.askDisc:g.askDiscInert,connector:n,children:[t.jsxs("div",{ref:u,className:w(g.card,!e.answerable&&g.cardInert),role:"group","aria-label":`Question in ${o}`,tabIndex:-1,onKeyDown:q,onMouseDown:x,onBlur:G,children:[c.show&&t.jsx("div",{className:w(g.deadlineBar,c.approximate&&g.deadlineApproximate),style:{width:`${c.fraction*100}%`}}),t.jsxs("div",{className:g.header,children:[t.jsx("span",{className:w(g.askBadge,!e.answerable&&g.askBadgeNeutral),"aria-hidden":"true",children:"ASK"}),t.jsx("span",{className:g.methodName,children:e.method}),Tt(e)&&t.jsx(Bt,{})]}),t.jsx(Eo,{entry:e,onSubmit:D,primaryRef:f,dismissRef:d})]}),t.jsx(Do,{hint:As(e.method,l)}),!e.answerable&&t.jsxs("p",{className:g.reconnectingNote,children:[t.jsx("span",{className:g.reconnectingDot}),"Reconnecting — you can answer again in a moment"]})]})}function Eo({entry:e,onSubmit:n,primaryRef:s,dismissRef:o}){const{method:a,payload:i}=e;return a==="select"?t.jsx(Bo,{entry:e,payload:i,onSubmit:n,primaryRef:s,dismissRef:o}):a==="confirm"?t.jsx(Ro,{entry:e,payload:i,onSubmit:n,primaryRef:s,dismissRef:o}):a==="input"?t.jsx(Ao,{entry:e,payload:i,onSubmit:n,primaryRef:s}):a==="editor"?t.jsx(Lo,{entry:e,payload:i,onSubmit:n,primaryRef:s,dismissRef:o}):t.jsx(Oo,{entry:e,method:a,payload:i,onSubmit:n,primaryRef:s,dismissRef:o})}function je({text:e}){return t.jsx("div",{className:g.title,children:Re(e).join(`
|
|
6
6
|
`)})}function Bo({entry:e,payload:n,onSubmit:s,primaryRef:o,dismissRef:a}){const i=se(n,"title")??"",c=bo(n,"options"),[l,m]=h.useState(null);if(c.length===0){const f=Q(e,l===0);return t.jsxs(t.Fragment,{children:[t.jsx(je,{text:i}),t.jsx("p",{className:g.emptyOptionsNote,children:"The extension offered no options."}),t.jsx("div",{className:g.controls,children:t.jsx(z,{ref:d=>{o.current=d,a.current=d},size:"xs",variant:"secondary",onClick:()=>{m(0),s({cancelled:!0})},...f,children:"Cancel"})})]})}const u=qs(c);return t.jsxs(t.Fragment,{children:[t.jsx(je,{text:i}),t.jsx("div",{className:w(g.controls,u.mode==="stack"&&g.controlsStack,u.scrolls&&g.controlsScroll),children:c.map((f,d)=>t.jsx(z,{ref:d===0?x=>{o.current=x}:void 0,size:"xs",variant:"secondary",className:g.optionButton,onClick:()=>{m(d),s({value:f})},...Q(e,l===d),children:f},d))})]})}function Ro({entry:e,payload:n,onSubmit:s,primaryRef:o,dismissRef:a}){const i=se(n,"title")??"",c=se(n,"message"),l=zs(i,c),[m,u]=h.useState(null);return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:w(g.title,l.message&&g.titleEmphasised),children:l.title.join(`
|
|
7
7
|
`)}),l.message&&t.jsx("div",{className:g.message,children:l.message.join(`
|
|
8
|
-
`)}),t.jsxs("div",{className:g.controls,children:[t.jsx(z,{ref:f=>{o.current=f},size:"xs",variant:"default",onClick:()=>{u("yes"),s({confirmed:!0})},...Q(e,m==="yes"),children:"Yes"}),t.jsx(z,{ref:f=>{a.current=f},size:"xs",variant:"secondary",onClick:()=>{u("no"),s({confirmed:!1})},...Q(e,m==="no"),children:"No"})]})]})}function Ao({entry:e,payload:n,onSubmit:s,primaryRef:o}){const a=se(n,"title")??"",i=se(n,"placeholder"),[c,l]=h.useState(""),m=Q(e,e.submitting===!0),u=m.disabled===!0||m.loading===!0;return t.jsxs(t.Fragment,{children:[t.jsx(je,{text:a}),t.jsxs("div",{className:g.controls,children:[t.jsx(hn,{ref:f=>{o.current=f},className:g.field,value:c,placeholder:i,disabled:u,onChange:f=>l(f.target.value),onKeyDown:f=>{f.key!=="Enter"||u||(f.preventDefault(),f.stopPropagation(),s({value:c}))}}),t.jsx(z,{size:"xs",variant:"default",onClick:()=>s({value:c}),...m,children:"Submit"})]})]})}function Lo({entry:e,payload:n,onSubmit:s,primaryRef:o,dismissRef:a}){const i=se(n,"title")??"",c=se(n,"prefill")??"",[l,m]=h.useState(c),[u,f]=h.useState(null);return t.jsxs(t.Fragment,{children:[t.jsx(je,{text:i}),t.jsx(_t,{ref:d=>{o.current=d},className:g.editorField,rows:3,value:l,disabled:!e.answerable||e.submitting,onChange:d=>{m(d.target.value);const x=d.target;x.style.height="auto",x.style.height=`${Math.min(x.scrollHeight,yo)}px`},onKeyDown:d=>{d.key!=="Enter"||d.shiftKey!==Et(e.method)||(d.preventDefault(),d.stopPropagation(),f("submit"),s({value:l}))}}),t.jsxs("div",{className:g.controls,children:[t.jsx(z,{size:"xs",variant:"default",onClick:()=>{f("submit"),s({value:l})},...Q(e,u==="submit"),children:"Submit"}),t.jsx(z,{ref:d=>{a.current=d},size:"xs",variant:"secondary",onClick:()=>{f("cancel"),s({cancelled:!0})},...Q(e,u==="cancel"),children:"Cancel"})]})]})}function Oo({entry:e,method:n,payload:s,onSubmit:o,primaryRef:a,dismissRef:i}){const c={method:n,...s},l=Q(e,e.submitting===!0);return t.jsxs(t.Fragment,{children:[t.jsx("p",{className:g.title,children:"This extension asked something this version of Pi-Studio can't display."}),t.jsx("pre",{className:g.rawPayload,children:JSON.stringify(c,null,2)}),t.jsx("div",{className:g.controls,children:t.jsx(z,{ref:m=>{a.current=m,i.current=m},size:"xs",variant:"secondary",onClick:()=>o({cancelled:!0}),...l,children:"Cancel"})})]})}function mt(e){if(e===void 0)return null;const n=typeof e=="number"?e:Date.parse(e);return Number.isNaN(n)?null:n}function Io(e,n,s,o){if(n.length===0)return e.map(s);const a=[];let i=0;const c=l=>{for(;i<e.length;){const m=e[i];if(m===void 0)break;if(l!==null){const u=mt(m.timestamp);if(u!==null&&u>l)break}a.push(s(m)),i++}};for(const l of n){if(l.kind==="more"){a.push(o(l));continue}c(mt(l.item.entry.createdAt)),a.push(o(l))}for(;i<e.length;i++){const l=e[i];l!==void 0&&a.push(s(l))}return a}function Po(e,n){return!e||n===void 0?!1:n.every(s=>s.configured===!1)}const qo=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ft(e){return String(e).padStart(2,"0")}function Fe(e){if(!e)return;const n=new Date(e);if(!Number.isNaN(n.getTime()))return`${qo[n.getMonth()]} ${n.getDate()}, ${ft(n.getHours())}:${ft(n.getMinutes())}`}const zo="_queuedBadge_1mki8_8",Fo="_finalChip_1mki8_20",Mo="_userDisc_1mki8_30",$o="_userAligned_1mki8_34",
|
|
8
|
+
`)}),t.jsxs("div",{className:g.controls,children:[t.jsx(z,{ref:f=>{o.current=f},size:"xs",variant:"default",onClick:()=>{u("yes"),s({confirmed:!0})},...Q(e,m==="yes"),children:"Yes"}),t.jsx(z,{ref:f=>{a.current=f},size:"xs",variant:"secondary",onClick:()=>{u("no"),s({confirmed:!1})},...Q(e,m==="no"),children:"No"})]})]})}function Ao({entry:e,payload:n,onSubmit:s,primaryRef:o}){const a=se(n,"title")??"",i=se(n,"placeholder"),[c,l]=h.useState(""),m=Q(e,e.submitting===!0),u=m.disabled===!0||m.loading===!0;return t.jsxs(t.Fragment,{children:[t.jsx(je,{text:a}),t.jsxs("div",{className:g.controls,children:[t.jsx(hn,{ref:f=>{o.current=f},className:g.field,value:c,placeholder:i,disabled:u,onChange:f=>l(f.target.value),onKeyDown:f=>{f.key!=="Enter"||u||(f.preventDefault(),f.stopPropagation(),s({value:c}))}}),t.jsx(z,{size:"xs",variant:"default",onClick:()=>s({value:c}),...m,children:"Submit"})]})]})}function Lo({entry:e,payload:n,onSubmit:s,primaryRef:o,dismissRef:a}){const i=se(n,"title")??"",c=se(n,"prefill")??"",[l,m]=h.useState(c),[u,f]=h.useState(null);return t.jsxs(t.Fragment,{children:[t.jsx(je,{text:i}),t.jsx(_t,{ref:d=>{o.current=d},className:g.editorField,rows:3,value:l,disabled:!e.answerable||e.submitting,onChange:d=>{m(d.target.value);const x=d.target;x.style.height="auto",x.style.height=`${Math.min(x.scrollHeight,yo)}px`},onKeyDown:d=>{d.key!=="Enter"||d.shiftKey!==Et(e.method)||(d.preventDefault(),d.stopPropagation(),f("submit"),s({value:l}))}}),t.jsxs("div",{className:g.controls,children:[t.jsx(z,{size:"xs",variant:"default",onClick:()=>{f("submit"),s({value:l})},...Q(e,u==="submit"),children:"Submit"}),t.jsx(z,{ref:d=>{a.current=d},size:"xs",variant:"secondary",onClick:()=>{f("cancel"),s({cancelled:!0})},...Q(e,u==="cancel"),children:"Cancel"})]})]})}function Oo({entry:e,method:n,payload:s,onSubmit:o,primaryRef:a,dismissRef:i}){const c={method:n,...s},l=Q(e,e.submitting===!0);return t.jsxs(t.Fragment,{children:[t.jsx("p",{className:g.title,children:"This extension asked something this version of Pi-Studio can't display."}),t.jsx("pre",{className:g.rawPayload,children:JSON.stringify(c,null,2)}),t.jsx("div",{className:g.controls,children:t.jsx(z,{ref:m=>{a.current=m,i.current=m},size:"xs",variant:"secondary",onClick:()=>o({cancelled:!0}),...l,children:"Cancel"})})]})}function mt(e){if(e===void 0)return null;const n=typeof e=="number"?e:Date.parse(e);return Number.isNaN(n)?null:n}function Io(e,n,s,o){if(n.length===0)return e.map(s);const a=[];let i=0;const c=l=>{for(;i<e.length;){const m=e[i];if(m===void 0)break;if(l!==null){const u=mt(m.timestamp);if(u!==null&&u>l)break}a.push(s(m)),i++}};for(const l of n){if(l.kind==="more"){a.push(o(l));continue}c(mt(l.item.entry.createdAt)),a.push(o(l))}for(;i<e.length;i++){const l=e[i];l!==void 0&&a.push(s(l))}return a}function Po(e,n){return!e||n===void 0?!1:n.every(s=>s.configured===!1)}const qo=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ft(e){return String(e).padStart(2,"0")}function Fe(e){if(!e)return;const n=new Date(e);if(!Number.isNaN(n.getTime()))return`${qo[n.getMonth()]} ${n.getDate()}, ${ft(n.getHours())}:${ft(n.getMinutes())}`}const zo="_queuedBadge_1mki8_8",Fo="_finalChip_1mki8_20",Mo="_userDisc_1mki8_30",$o="_userAligned_1mki8_34",Ko="_userPendingRow_1mki8_40",Ho="_userBubble_1mki8_44",Wo="_userBubbleFailed_1mki8_58",Uo="_userImages_1mki8_63",Go="_userImage_1mki8_63",Vo="_imageDialog_1mki8_79",Xo="_imageDialogPreview_1mki8_83",Yo="_assistantDisc_1mki8_93",Jo="_assistantBody_1mki8_97",Qo="_reasoningDisc_1mki8_108",Zo="_reasoningBody_1mki8_112",ea="_toolDisc_1mki8_123",ta="_toolCardBody_1mki8_127",na="_toolCardBodyRunning_1mki8_134",sa="_toolCardBodyCompleted_1mki8_138",oa="_toolCardBodyCanceled_1mki8_142",aa="_toolCardBodyError_1mki8_146",ra="_toolHeader_1mki8_150",ia="_toolHeaderRunning_1mki8_176",ca="_toolChevron_1mki8_186",la="_toolChevronOpen_1mki8_192",da="_kindBadge_1mki8_196",ua="_toolPath_1mki8_208",ma="_toolTrailing_1mki8_217",fa="_toolStatusRunning_1mki8_225",pa="_toolStatusSuccess_1mki8_232",ha="_toolStatusError_1mki8_236",_a="_toolStatusUnknown_1mki8_240",ga="_toolDiffAdded_1mki8_244",xa="_toolDiffRemoved_1mki8_248",ka="_toolOpenButton_1mki8_252",va="_toolLiveTail_1mki8_270",ja="_toolBody_1mki8_277",ya="_toolCode_1mki8_283",ba="_toolOutputStrip_1mki8_294",Na="_toolDiffPreview_1mki8_304",Sa="_toolDiffPreviewLine_1mki8_312",Ca="_toolDiffPreviewAdd_1mki8_316",wa="_toolDiffPreviewDel_1mki8_321",Da="_toolDiffPreviewMore_1mki8_326",Ta="_errorDisc_1mki8_333",Ea="_errorCard_1mki8_337",Ba="_errorLead_1mki8_346",Ra="_systemRow_1mki8_353",Aa="_compactionRow_1mki8_362",La="_compactionRowFailed_1mki8_368",Oa="_compactionDivider_1mki8_372",Ia="_compactionRule_1mki8_378",Pa="_compactionLabel_1mki8_384",qa="_compactionText_1mki8_391",za="_compactionToggle_1mki8_397",Fa="_compactionSummary_1mki8_414",p={queuedBadge:zo,finalChip:Fo,userDisc:Mo,userAligned:$o,userPendingRow:Ko,userBubble:Ho,userBubbleFailed:Wo,userImages:Uo,userImage:Go,imageDialog:Vo,imageDialogPreview:Xo,assistantDisc:Yo,assistantBody:Jo,reasoningDisc:Qo,reasoningBody:Zo,toolDisc:ea,toolCardBody:ta,toolCardBodyRunning:na,toolCardBodyCompleted:sa,toolCardBodyCanceled:oa,toolCardBodyError:aa,toolHeader:ra,toolHeaderRunning:ia,toolChevron:ca,toolChevronOpen:la,kindBadge:da,toolPath:ua,toolTrailing:ma,toolStatusRunning:fa,toolStatusSuccess:pa,toolStatusError:ha,toolStatusUnknown:_a,toolDiffAdded:ga,toolDiffRemoved:xa,toolOpenButton:ka,toolLiveTail:va,toolBody:ja,toolCode:ya,toolOutputStrip:ba,toolDiffPreview:Na,toolDiffPreviewLine:Sa,toolDiffPreviewAdd:Ca,toolDiffPreviewDel:wa,toolDiffPreviewMore:Da,errorDisc:Ta,errorCard:Ea,errorLead:Ba,systemRow:Ra,compactionRow:Aa,compactionRowFailed:La,compactionDivider:Oa,compactionRule:Ia,compactionLabel:Pa,compactionText:qa,compactionToggle:za,compactionSummary:Fa};function Ma({row:e,assetBase:n=null,owningPaneId:s=null,workspaceCwd:o=null,connector:a}){const i=Fe(e.timestamp);return t.jsx(X,{disc:t.jsx(O,{icon:Mn,size:"xs",color:"var(--pi-color-accentForeground)"}),discClassName:p.assistantDisc,connector:a,meta:t.jsxs(t.Fragment,{children:["Assistant",i&&t.jsxs("span",{className:U.metaTime,children:[" · ",i]})]}),children:t.jsx("div",{className:p.assistantBody,children:e.streaming?t.jsx(Nt,{text:e.text,assetBase:n,owningPaneId:s,workspaceCwd:o}):t.jsx(Pe,{text:e.text,assetBase:n,owningPaneId:s,workspaceCwd:o})})})}function $a({row:e,owningPaneId:n=null,workspaceCwd:s=null,connector:o}){const a=Fe(e.timestamp);return t.jsx(X,{disc:t.jsx(O,{icon:yt,size:"xs",color:"var(--pi-color-foregroundMuted)"}),discClassName:p.reasoningDisc,connector:o,meta:t.jsxs(t.Fragment,{children:["Reasoning",a&&t.jsxs("span",{className:U.metaTime,children:[" · ",a]})]}),metaTrailing:!e.streaming&&t.jsx("span",{className:p.finalChip,children:"final"}),children:t.jsx("div",{className:p.reasoningBody,children:e.streaming?t.jsx(Nt,{text:e.text,owningPaneId:n,workspaceCwd:s}):t.jsx(Pe,{text:e.text,owningPaneId:n,workspaceCwd:s})})})}const Ka=12;function Ha(e,n=Ka){const s=e.replace(/\r?\n$/,"").split(/\r?\n/);return s.length<=n?s.join(`
|
|
9
9
|
`):s.slice(-n).join(`
|
|
10
|
-
`)}function Wa(e){const n=ss(e).filter(o=>o.kind==="add"||o.kind==="del"),s=n[0];return s?{text:s.text,kind:s.kind,moreCount:n.length-1}:null}function Ua(e){return e.status==="completed"?t.jsx("span",{className:p.toolStatusSuccess,children:"✓ completed"}):e.status==="error"?t.jsx("span",{className:p.toolStatusError,children:e.statusText||"error"}):e.status==="canceled"?t.jsx("span",{className:p.toolStatusUnknown,children:e.statusText||"canceled"}):e.statusText&&e.statusText!=="running"?t.jsx("span",{className:p.toolStatusUnknown,children:e.statusText}):t.jsxs("span",{className:p.toolStatusRunning,children:[t.jsx(ne,{size:"xs",color:"var(--pi-color-accentBright)"}),"running"]})}function Ga({row:e,assetBase:n=null,owningPaneId:s=null,workspaceCwd:o=null,connector:a}){const[i,c]=h.useState(!1),l=ls(e.tool),m=cs(e.tool),u=m.length>0,f=us(e.tool.output),d=e.tool.kind==="edit"||e.tool.kind==="write"?wt(e.tool):null,x=e.tool.kind==="edit"?ds(e.tool.diff):null,D=e.tool.kind==="edit"&&e.tool.diff&&!i?Wa(e.tool.diff):null;function q(){u&&c(N=>!N)}function G(N){N.target===N.currentTarget&&(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),q())}function b(N){if(N.stopPropagation(),!d)return;const B=ts(n,s,o);_n(d,B.workspaceCwd,B.targetPaneId)}return t.jsx(X,{disc:t.jsx(O,{icon:rs(e.tool),size:"xs",color:"var(--pi-color-foregroundMuted)"}),discClassName:p.toolDisc,connector:a,children:t.jsxs("div",{className:w(p.toolCardBody,e.status==="running"&&p.toolCardBodyRunning,e.status==="completed"&&p.toolCardBodyCompleted,e.status==="error"&&p.toolCardBodyError,e.status==="canceled"&&p.toolCardBodyCanceled),children:[t.jsxs("div",{role:"button",tabIndex:u?0:-1,"aria-expanded":u?i:void 0,"aria-disabled":!u,className:w(p.toolHeader,e.status==="running"&&p.toolHeaderRunning),onClick:q,onKeyDown:G,children:[u&&t.jsx(he,{size:12,className:w(p.toolChevron,i&&p.toolChevronOpen)}),t.jsx("span",{className:p.kindBadge,style:{"--kindToken":`var(--pi-color-${l.token})`},children:l.label}),t.jsx("span",{className:p.toolPath,title:Be(e.tool),children:Be(e.tool)}),t.jsxs("span",{className:p.toolTrailing,children:[x&&(x.added>0||x.removed>0)&&t.jsxs(t.Fragment,{children:[t.jsxs("span",{className:p.toolDiffAdded,children:["+",x.added]}),t.jsxs("span",{className:p.toolDiffRemoved,children:["−",x.removed]})]}),Ua(e),d&&t.jsxs("button",{type:"button",className:p.toolOpenButton,onClick:b,onKeyDown:N=>N.stopPropagation(),children:["Open",t.jsx($n,{size:10})]})]})]}),e.status==="running"&&e.tool.output&&t.jsx("pre",{className:w(p.toolCode,p.toolLiveTail),children:Ka(e.tool.output)}),f>0&&t.jsxs("div",{className:p.toolOutputStrip,children:["output · ",f," lines"]}),D&&t.jsxs("div",{className:p.toolDiffPreview,children:[t.jsx("div",{className:w(p.toolDiffPreviewLine,D.kind==="add"?p.toolDiffPreviewAdd:p.toolDiffPreviewDel),children:D.text}),D.moreCount>0&&t.jsxs("div",{className:p.toolDiffPreviewMore,children:["… ",D.moreCount," more lines"]})]}),i&&u&&t.jsx("div",{className:p.toolBody,children:m.map((N,B)=>N.kind==="diff"?t.jsx(ns,{patch:N.patch},B):t.jsx("pre",{className:p.toolCode,children:N.text},B))})]})})}const Va="Fork from here",Xa="Fork conversation from this message";function Ya({row:e,connector:n,onFork:s}){const[o,a]=h.useState(null),i=Fe(e.timestamp);return t.jsxs(X,{disc:t.jsx(O,{icon:Wn,size:"xs",color:"var(--pi-color-successForeground)"}),discClassName:p.userDisc,connector:n,className:w(p.userAligned,e.pending&&p.userPendingRow),meta:t.jsxs(t.Fragment,{children:["You",i&&t.jsxs("span",{className:U.metaTime,children:[" · ",i]}),e.failed&&" · failed to send"]}),metaTrailing:t.jsxs(t.Fragment,{children:[e.queued&&!e.failed&&t.jsxs("span",{className:p.queuedBadge,children:[t.jsx(Hn,{size:9}),"queued"]}),s&&t.jsx(xn,{className:U.forkButton,hoverBase:"var(--pi-color-surface3)",title:Va,"aria-label":Xa,onClick:s,children:t.jsx(Kn,{size:13,strokeWidth:1.8,"aria-hidden":"true"})})]}),children:[t.jsx("span",{className:w(p.userBubble,e.failed&&p.userBubbleFailed),children:e.text}),e.images&&e.images.length>0&&t.jsx("div",{className:p.userImages,children:e.images.map((c,l)=>{const m=`data:${c.mimeType??"image/png"};base64,${c.data??""}`;return t.jsx("img",{className:p.userImage,src:m,alt:"",role:"button",tabIndex:0,onClick:()=>a(m),onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&a(m)}},l)})}),t.jsx(gn,{open:o!==null,onOpenChange:c=>{c||a(null)},title:"Image",width:"auto",bare:!0,className:p.imageDialog,children:o&&t.jsx("img",{className:p.imageDialogPreview,src:o,alt:""})})]})}function Ja({row:e,connector:n}){return t.jsx(X,{disc:t.jsx(O,{icon:bt,size:"xs",color:"var(--pi-color-destructive)"}),discClassName:p.errorDisc,connector:n,children:t.jsxs("div",{className:p.errorCard,children:[t.jsx("span",{className:p.errorLead,children:"Error"})," · ",e.text]})})}function Qa({row:e}){return t.jsx("div",{className:p.systemRow,children:e.text})}function Za({row:e,assetBase:n=null,owningPaneId:s=null,workspaceCwd:o=null}){const[a,i]=h.useState(!1),c=gt(e),l=e.phase==="completed"&&!!e.summary,m=t.jsx("span",{className:p.compactionText,children:c});return t.jsxs("div",{className:w(p.compactionRow,e.phase==="failed"&&p.compactionRowFailed),children:[t.jsxs("div",{className:p.compactionDivider,children:[t.jsx("span",{className:p.compactionRule,"aria-hidden":"true"}),t.jsxs("span",{className:p.compactionLabel,children:[e.phase==="started"&&t.jsx(ne,{size:"xs","aria-label":"Compacting context"}),e.phase==="failed"&&t.jsx(O,{icon:bt,size:"xs",color:"var(--pi-color-statusDanger)"}),l?t.jsxs("button",{type:"button",className:p.compactionToggle,"aria-expanded":a,onClick:()=>i(u=>!u),children:[t.jsx(he,{size:12,className:w(p.toolChevron,a&&p.toolChevronOpen)}),m]}):m]}),t.jsx("span",{className:p.compactionRule,"aria-hidden":"true"})]}),l&&a&&t.jsx("div",{className:p.compactionSummary,children:t.jsx(Pe,{text:e.summary,assetBase:n,owningPaneId:s,workspaceCwd:o})})]})}const er=500;function tr(e,n){const s=h.useRef(!0),[o,a]=h.useState(!0),i=h.useRef(0),c=h.useCallback(u=>{const f=n.current,d=f?{scrollTop:f.scrollTop,scrollHeight:f.scrollHeight,clientHeight:f.clientHeight}:{scrollTop:0,scrollHeight:0,clientHeight:0},x=_s(s.current,u,d);x.pinned!==s.current&&(s.current=x.pinned,a(x.pinned)),x.stick&&e.options.count>0&&e.scrollToEnd({behavior:"auto"})},[n,e]);h.useEffect(()=>{const u=n.current;if(!u)return;const f=()=>{i.current=performance.now()},d=()=>{c({kind:"scroll",gesture:performance.now()-i.current<er})};u.addEventListener("scroll",d,{passive:!0}),u.addEventListener("wheel",f,{passive:!0}),u.addEventListener("touchmove",f,{passive:!0}),u.addEventListener("pointerdown",f,{passive:!0}),u.addEventListener("keydown",f,{passive:!0});const x=new ResizeObserver(()=>{u.clientHeight>0&&c({kind:"shown"})});return x.observe(u),()=>{x.disconnect(),u.removeEventListener("scroll",d),u.removeEventListener("wheel",f),u.removeEventListener("touchmove",f),u.removeEventListener("pointerdown",f),u.removeEventListener("keydown",f)}},[c,n]);const l=h.useCallback(()=>c({kind:"tail"}),[c]),m=h.useCallback(()=>c({kind:"pin"}),[c]);return{pinned:o,followTail:l,pinToBottom:m}}const nr="_root_1xg4h_6",sr="_viewport_1xg4h_13",or="_inner_1xg4h_20",ar="_rowWrap_1xg4h_25",rr="_empty_1xg4h_35",ir="_nudge_1xg4h_47",cr="_jumpToLatest_1xg4h_56",te={root:nr,viewport:sr,inner:or,rowWrap:ar,empty:rr,nudge:ir,jumpToLatest:cr},lr=160;function dr(e){return e.kind==="ask"?`ask:${Ds(e.item)}`:e.kind==="ask-more"?"ask-more":e.row.id}function ur(e,n,s,o,a,i){switch(e.kind){case"user":{const c=i.ordinalByRowId.get(e.id),l=c!==void 0?()=>i.onForkFromRow(c):null;return t.jsx(Ya,{row:e,connector:!n,onFork:l})}case"assistant":return t.jsx(Ma,{row:e,assetBase:s,owningPaneId:o,workspaceCwd:a,connector:!n});case"reasoning":return t.jsx($a,{row:e,owningPaneId:o,workspaceCwd:a,connector:!n});case"tool":return t.jsx(Ga,{row:e,assetBase:s,owningPaneId:o,workspaceCwd:a,connector:!n});case"error":return t.jsx(Ja,{row:e,connector:!n});case"system":return t.jsx(Qa,{row:e});case"compaction":return t.jsx(Za,{row:e,assetBase:s,owningPaneId:o,workspaceCwd:a})}}function mr(e,n,s,o,a,i,c,l,m){return e.kind==="ask"?t.jsx(No,{item:e.item,collapsed:e.collapsed,connector:!n,autoFocus:e.item.kind==="pending"&&e.item.entry.requestId===c,sessionTitle:l}):e.kind==="ask-more"?t.jsx(Co,{count:e.count,connector:!n,onExpand:i}):ur(e.row,n,s,o,a,m)}function fr({session:e,owningPaneId:n,workspaceCwd:s}){var T,E;const o=e.timeline.rows,a=e.status==="running",i=xt(),c=kt(e.cwd,i),l=h.useRef(null),m=kn(e),u=vn(e.agentId??""),f=jn(e.agentId??""),[d,x]=h.useState(!1),D=M(j=>j.activeSessionId===e.id),q=vt(j=>{var R;return((R=j.layouts[s])==null?void 0:R.focusedPaneId)===n}),G=D&&q?((T=u[0])==null?void 0:T.requestId)??null:null,b=h.useMemo(()=>{const j=Es(ws(u,f),d);return Io(o,j,R=>({kind:"row",row:R}),R=>R.kind==="more"?{kind:"ask-more",count:R.count}:{kind:"ask",item:R.item,collapsed:R.collapsed})},[o,u,f,d]),N=J(j=>j.status==="open"),B=J(j=>j.serverInfo),A=!!((E=B==null?void 0:B.features)!=null&&E.providerAuth),$=yn(j=>j.openSettings),{data:H}=es(o.length===0&&N&&A),W=Po(A,H),F=ln({count:b.length,getScrollElement:()=>l.current,estimateSize:()=>lr,overscan:8,getItemKey:j=>{const R=b[j];return R?dr(R):j},measureElement:(j,R,V)=>{if(j.offsetParent!==null)return dn(j,R,V);const ce=V.indexFromElement(j),_e=V.options.getItemKey(ce);return V.itemSizeCache.get(_e)??V.options.estimateSize(ce)},anchorTo:"end",scrollEndThreshold:Dt}),{pinned:ie,followTail:Z,pinToBottom:ee}=tr(F,l),I=gs(o);return h.useEffect(()=>{Z()},[b.length,Z]),h.useEffect(()=>{I!==null&&ee()},[I,ee]),t.jsxs("div",{className:te.root,children:[t.jsx("div",{className:te.viewport,ref:l,children:b.length===0?!a&&(W?t.jsxs(bn,{className:te.nudge,children:[t.jsx("span",{children:"No messages yet — connect a model provider to get started."}),t.jsx(z,{size:"xs",variant:"secondary",onClick:()=>$(),children:"Connect a model provider"})]}):t.jsx("div",{className:te.empty,children:"No messages yet — say something to start."})):t.jsx("div",{className:te.inner,style:{height:F.getTotalSize()},children:F.getVirtualItems().map(j=>{const R=b[j.index];return R?t.jsx("div",{ref:F.measureElement,"data-index":j.index,className:te.rowWrap,style:{transform:`translateY(${j.start}px)`},children:mr(R,j.index===b.length-1,c,n,s,()=>x(!0),G,e.title,m)},j.key):null})})}),!ie&&b.length>0&&t.jsx("button",{type:"button",className:te.jumpToLatest,onClick:ee,title:"Jump to latest","aria-label":"Jump to latest",children:t.jsx(Un,{size:16,"aria-hidden":"true"})})]})}function pr(e,n=!0){const s=J(o=>o.client);return Le({queryKey:Oe.agentCommands(e),queryFn:async()=>{if(!s)throw new Error("not connected");const o=await ve(s,e),{commands:a}=await s.agent(o).listCommands();return a},enabled:!!s&&!!e&&n})}function Rt(e,n,s=!0){const o=J(a=>a.client);return Le({queryKey:Oe.providerModels(e,n),queryFn:async()=>{if(!o)throw new Error("not connected");return(await o.providers.listModels(e,n?{agentId:n}:void 0)).models},enabled:!!o&&!!e&&s})}function hr(e,n,s=!0){const o=J(a=>a.client);return Le({queryKey:Oe.thinkingLevels(e??"",n),queryFn:async()=>{if(!o||!e)throw new Error("not connected");return(await o.agent(e).listThinkingLevels()).levels},enabled:!!o&&!!e&&s,retry:!1})}const _r="_strip_nzfk5_4",gr="_thumb_nzfk5_11",xr="_remove_nzfk5_28",Te={strip:_r,thumb:gr,remove:xr};function kr({images:e,onRemove:n}){return e.length===0?null:t.jsx("div",{className:Te.strip,children:e.map((s,o)=>t.jsxs("div",{className:Te.thumb,children:[t.jsx("img",{src:s.thumbUrl,alt:""}),t.jsx("button",{type:"button",className:Te.remove,title:"Remove",onClick:()=>n(o),children:"×"})]},o))})}function vr(e){const{promise:n,resolve:s,reject:o}=Promise.withResolvers(),a=new FileReader;return a.onload=()=>{const i=a.result;if(typeof i!="string"){o(new Error("Unexpected FileReader result"));return}const c=i.indexOf(","),l=c>=0?i.slice(c+1):i;s({mimeType:e.type,data:l,thumbUrl:i})},a.onerror=()=>o(a.error??new Error("Failed to read file")),a.readAsDataURL(e),n}function jr(e,n,s){return e?s:n}const Ae=[{name:"compact",description:"Manually compact the session context",source:"builtin"}];function At(e){var o;const n=/^\/([^\s]+)(?:\s+([\s\S]*))?$/.exec(e.trim());if((n==null?void 0:n[1])!=="compact")return null;const s=(o=n[2])==null?void 0:o.trim();return{name:"compact",args:s||void 0}}function Me(e){if(!e.startsWith("/"))return null;const n=/^\/(\S*)/.exec(e),s=(n==null?void 0:n[1])??"",o=1+s.length,a=/\S/.test(e.slice(o));return{name:s,end:o,hasArgs:a}}function yr(e){return/^\/\S*$/.test(e)}function br(e,n){let s=0;const o=Ae.map(i=>({value:i.name,label:`/${i.name}`,description:i.description,kind:i.source,disabled:n.builtinsDisabled===!0})),a=new Set(Ae.map(i=>i.name));for(const i of e)if(!a.has(i.name)){if(n.running&&i.source==="extension"){s+=1;continue}o.push({value:i.name,label:`/${i.name}`,description:i.description,kind:i.source})}return{options:o,hiddenExtensionCount:s}}function Nr(e,n,s){return s<=0?0:(e+n+s)%s}function Sr(e,n){const s=Me(e);return s?s.hasArgs?`/${n}${e.slice(s.end)}`:`/${n} `:`/${n} ${e}`}function Cr(e,n){const s=Me(e);return!s||!n.includes(s.name)?null:{end:s.end}}function Lt({running:e,compacting:n,hasAgent:s}){return s&&!e&&!n}function wr(e,n){return!e.ok&&e.reason!=="canceled"&&n===""}function Dr(e){const n=e.text.trim().length>0||e.hasImages;return!e.hasClient||!n||e.busy||e.compacting?!1:At(e.text)!==null?Lt(e):!0}function Tr(e,n){const s=kt(e||"~",n).replace(/\/+$/,"");return s===""||s.startsWith("~")?null:s}function Er(e,n){if(!n||n.startsWith("~"))return null;const s=e.endsWith("/"),o=s?e.slice(0,-1):e;if(!o.startsWith(`${n}/`))return null;const a=o.slice(n.length+1);return a===""?null:s?`${a}/`:a}function Br(e){if(!/[\s`]/.test(e))return e;let n=0;for(const a of e.match(/`+/g)??[])n=Math.max(n,a.length);const s="`".repeat(n+1),o=e.startsWith("`")||e.endsWith("`")?" ":"";return`${s}${o}${e}${o}${s}`}function Rr(e,n,s,o){const a=x=>Math.min(Math.max(Number.isFinite(x)?x:0,0),e.length),i=a(n),c=a(s),l=Math.min(i,c),m=Math.max(i,c),u=l>0&&!/\s/.test(e[l-1])?" ":"",f=m>=e.length||!/\s/.test(e[m])?" ":"",d=`${u}${o}${f}`;return{start:l,end:m,insert:d,caret:l+d.length}}function Ar(e){if(e.refValue===null||e.compacting)return{kind:"ignore"};const n=Er(e.refValue,e.root);if(n===null)return{kind:"refuse"};const{text:s}=e,o=e.neverFocused?s.length:e.selStart,a=e.neverFocused?s.length:e.selEnd;return{kind:"insert",plan:Rr(s,o,a,Br(n))}}const Lr="_picker_11hqs_4",Or="_search_11hqs_10",Ir="_searchWrap_11hqs_28",Pr="_searchSpinner_11hqs_37",qr="_list_11hqs_45",zr="_item_11hqs_50",Fr="_itemActive_11hqs_67",Mr="_checkSlot_11hqs_71",$r="_label_11hqs_80",Hr="_modelId_11hqs_86",Kr="_state_11hqs_93",Wr="_stateError_11hqs_102",Ur="_commandContent_11hqs_112",Gr="_commandList_11hqs_115",Vr="_commandItem_11hqs_120",Xr="_commandItemHeader_11hqs_152",Yr="_commandKindBadge_11hqs_166",Jr="_commandKindExtension_11hqs_185",Qr="_commandKindPrompt_11hqs_190",Zr="_commandKindSkill_11hqs_195",ei="_commandDescription_11hqs_200",ti="_commandItemDisabled_11hqs_214",v={picker:Lr,search:Or,searchWrap:Ir,searchSpinner:Pr,list:qr,item:zr,itemActive:Fr,checkSlot:Mr,label:$r,modelId:Hr,state:Kr,stateError:Wr,commandContent:Ur,commandList:Gr,commandItem:Vr,commandItemHeader:Xr,commandKindBadge:Yr,commandKindExtension:Jr,commandKindPrompt:Qr,commandKindSkill:Zr,commandDescription:ei,commandItemDisabled:ti},ni={onOpenAutoFocus:e=>e.preventDefault()};function si(e){switch(e){case"extension":return v.commandKindExtension;case"prompt":return v.commandKindPrompt;case"skill":return v.commandKindSkill;default:return}}function oi({open:e,onOpenChange:n,options:s,highlightedIndex:o,onSelect:a,isLoading:i,isError:c,errorMessage:l,hiddenExtensionCount:m,renderTrigger:u}){const f=h.useRef(null);return h.useEffect(()=>{var d,x;e&&((x=(d=f.current)==null?void 0:d.querySelector('[aria-selected="true"]'))==null||x.scrollIntoView({block:"nearest"}))},[e,o]),t.jsxs(qe,{open:e,onOpenChange:n,modal:!1,children:[t.jsx(ze,{asChild:!0,children:u()}),t.jsxs(Ie,{className:w(v.picker,v.commandContent),side:"top",sideOffset:4,...ni,onCloseAutoFocus:d=>d.preventDefault(),children:[i&&t.jsx("div",{className:v.state,children:t.jsx(ne,{size:"sm"})}),!i&&c&&t.jsx("div",{className:v.stateError,children:l??"Failed to load commands"}),!i&&!c&&s.length===0&&t.jsx("div",{className:v.state,children:"No commands found"}),!i&&!c&&s.length>0&&t.jsx("div",{ref:f,className:w(v.list,v.commandList),children:s.map((d,x)=>t.jsxs("div",{role:"option","aria-selected":x===o,"aria-disabled":d.disabled||void 0,className:w(v.item,v.commandItem,x===o&&v.itemActive,d.disabled&&v.commandItemDisabled),title:d.description,onMouseDown:D=>{D.preventDefault(),d.disabled||a(d.value)},children:[t.jsxs("div",{className:v.commandItemHeader,children:[t.jsx("span",{className:v.label,children:d.label}),d.kind&&t.jsx("span",{className:w(v.commandKindBadge,si(d.kind)),children:d.kind})]}),d.description&&t.jsx("div",{className:v.commandDescription,children:d.description})]},d.value))}),!i&&!c&&m>0&&t.jsxs("div",{className:v.state,children:[m," extension command(s) unavailable while the agent is running"]})]})]})}function ai(e,n,s){if(!n)return e;const o=e.filter(i=>i.id===n),a=(s===void 0?void 0:o.find(i=>i.provider===s))??o[0];return a?[a,...e.filter(i=>i!==a)]:e}function ri(e){const n=new Set;return e.filter(s=>{const o=`${s.provider??""}/${s.id}`;return n.has(o)?!1:(n.add(o),!0)})}function ii({currentModel:e,currentModelProvider:n,provider:s,agentId:o,onSelect:a,renderTrigger:i}){const[c,l]=h.useState(!1),[m,u]=h.useState(""),f=h.useRef(null),d=h.useRef(null),{data:x,isLoading:D,isFetching:q,isError:G,error:b,refetch:N}=Rt(s,o,c||e!==void 0),B=x??[];h.useEffect(()=>{c&&u("")},[c]),h.useEffect(()=>{c&&N({cancelRefetch:!1})},[c,N]);const $=ri(ai(B,e,n)).map(T=>({value:T.id,label:T.label??T.id,description:T.id,group:T.provider})),H=$[0],W=(H==null?void 0:H.value)===e?H:void 0,F=os(Ct($,m),{priorityGroup:n,ungroupedLabel:"Other"}),ie=F.length>1,Z=b instanceof Error?b.message:"Failed to load models";function ee(T){var E;if(T.stopPropagation(),T.key==="Escape"&&l(!1),T.key==="ArrowDown"){const j=(E=d.current)==null?void 0:E.querySelector('[role="menuitem"]');j&&(T.preventDefault(),j.focus())}}const I={onOpenAutoFocus:T=>{var E;T.preventDefault(),(E=f.current)==null||E.focus()}};return t.jsxs(qe,{open:c,onOpenChange:l,modal:!1,children:[t.jsx(ze,{asChild:!0,children:i(e,W==null?void 0:W.label)}),t.jsxs(Ie,{minWidth:240,align:"end",sideOffset:6,className:v.picker,...I,children:[t.jsxs("div",{className:v.searchWrap,children:[t.jsx("input",{ref:f,className:v.search,placeholder:"Search models…",value:m,onChange:T=>u(T.target.value),onKeyDown:ee}),q&&!D&&t.jsx(ne,{size:"xs",color:"var(--pi-color-foregroundMuted)",className:v.searchSpinner,"aria-label":"Refreshing models"})]}),D&&t.jsx("div",{className:v.state,children:t.jsx(ne,{size:"sm"})}),!D&&G&&x===void 0&&t.jsx("div",{className:v.stateError,children:Z}),!D&&x!==void 0&&F.length===0&&t.jsx("div",{className:v.state,children:"No models found"}),!D&&x!==void 0&&F.length>0&&t.jsx("div",{ref:d,className:v.list,children:F.map(T=>t.jsx(Nn,{label:ie?T.label:void 0,children:T.options.map(E=>t.jsxs(St,{className:v.item,onSelect:()=>a(E.value,E.group),children:[t.jsx("span",{className:v.checkSlot,"aria-hidden":!0,children:E===W&&t.jsx(pe,{size:14})}),t.jsx("span",{className:v.label,children:E.label}),t.jsxs("span",{className:v.modelId,children:["(",E.value,")"]})]},`${E.group??""}/${E.value}`))},T.key))})]})]})}function ci({currentLevel:e,levels:n,open:s,onOpenChange:o,onSelect:a,renderTrigger:i}){return t.jsxs(qe,{open:s,onOpenChange:o,modal:!1,children:[t.jsx(ze,{asChild:!0,children:i(e)}),t.jsx(Ie,{minWidth:140,align:"end",side:"top",sideOffset:6,className:v.picker,children:n.length===0?t.jsx("div",{className:v.state,children:"Loading levels…"}):t.jsx("div",{className:v.list,children:n.map(c=>t.jsxs(St,{className:v.item,onSelect:()=>a(c),children:[t.jsx("span",{className:v.checkSlot,"aria-hidden":!0,children:c===e&&t.jsx(pe,{size:14})}),t.jsx("span",{className:v.label,children:c})]},c))})})]})}const pt=["off","minimal","low","medium","high","xhigh","max"];function li(e,n){if(!e)return pt;const s=n==null?void 0:n.find(o=>o.id===e);return s!=null&&s.thinkingLevels&&s.thinkingLevels.length>0?s.thinkingLevels:pt}const di="_composer_excz7_4",ui="_card_excz7_13",mi="_flash_excz7_27",fi="_dropTarget_excz7_33",pi="_note_excz7_48",hi="_inlineError_excz7_55",_i="_compacting_excz7_63",gi="_textarea_excz7_31",xi="_compactStatus_excz7_73",ki="_compactStatusText_excz7_82",vi="_compactCancel_excz7_88",ji="_textareaWrap_excz7_129",yi="_highlightLayer_excz7_117",bi="_commandMark_excz7_152",Ni="_hiddenFileInput_excz7_177",Si="_toolbar_excz7_183",Ci="_toolbarRight_excz7_190",wi="_toolBtn_excz7_198",Di="_roundBtn_excz7_204",Ti="_modelBtn_excz7_209",Ei="_modelLabel_excz7_239",Bi="_modelId_excz7_237",Ri="_modelChevron_excz7_257",S={composer:di,card:ui,flash:mi,dropTarget:fi,note:pi,inlineError:hi,compacting:_i,textarea:gi,compactStatus:xi,compactStatusText:ki,compactCancel:vi,textareaWrap:ji,highlightLayer:yi,commandMark:bi,hiddenFileInput:Ni,toolbar:Si,toolbarRight:Ci,toolBtn:wi,roundBtn:Di,modelBtn:Ti,modelLabel:Ei,modelId:Bi,modelChevron:Ri},Ai=160;function re(e){e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,Ai)}px`}function Li(e){return typeof e=="object"&&e!==null&&"ok"in e&&e.ok===!1}function Oi(){return typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function Ii({sessionId:e,workspaceCwd:n,owningPaneId:s}){var ot;const o=J(r=>r.client),a=M(r=>r.sessions[e]),i=M(r=>r.addOptimisticUserMessage),c=M(r=>r.markUserMessageFailed),l=M(r=>r.setCwd),m=M(r=>r.setModel),u=M(r=>r.setThinkingLevel),f=J(r=>r.serverInfo),[d,x]=h.useState(!1),D=!!((ot=f==null?void 0:f.features)!=null&&ot.thinkingLevels),{data:q}=hr(a==null?void 0:a.agentId,a==null?void 0:a.model,d&&!!(a!=null&&a.agentId)&&((a==null?void 0:a.userMessageCount)??0)>0),{data:G}=Rt("pi",a==null?void 0:a.agentId),b=li(a==null?void 0:a.model,G),N=q!==void 0&&q.length>0?q:b,B=D&&!(q!==void 0&&q.length===0),A=fe(r=>r.drafts[e]??""),$=fe(r=>r.setDraft),[H,W]=h.useState([]),[F,ie]=h.useState(!1),[Z,ee]=h.useState(!1),I=h.useRef(null),T=h.useRef(null),[E,j]=h.useState(!1),[R,V]=h.useState(0),ce=Sn(Tn.chat(e)),_e=fe(r=>r.pendingFeedback[e]),[$e,He]=h.useState(null),[be,oe]=h.useState(null),[zt,Ke]=h.useState(!1),le=h.useRef(null),de=h.useRef(null),[Ne,ge]=h.useState(!1),We=h.useRef(!1),Ft=xt();h.useEffect(()=>{if(!ce||_e===void 0)return;const r=fe.getState().consumeFeedback(e);if(!r)return;He(r.copy==="filled"?"Your message was filled in":"Your draft was replaced"),le.current!==null&&window.clearTimeout(le.current),le.current=window.setTimeout(()=>He(null),4e3);const _=I.current;_&&_.setSelectionRange(_.value.length,_.value.length),r.flash&&(Ke(!0),de.current!==null&&window.clearTimeout(de.current),de.current=window.setTimeout(()=>Ke(!1),Oi()?1e3:400))},[ce,_e,e]),h.useEffect(()=>()=>{le.current!==null&&window.clearTimeout(le.current),de.current!==null&&window.clearTimeout(de.current)},[]),h.useEffect(()=>{if(!Ne)return;const r=()=>ge(!1);return document.addEventListener("dragend",r),document.addEventListener("drop",r),()=>{document.removeEventListener("dragend",r),document.removeEventListener("drop",r)}},[Ne]);const K=(a==null?void 0:a.status)==="running",L=Cn(e),Se=ke(r=>r.lastErrorBySession[e]),Mt=ke(r=>r.compactSession),Ce=ke(r=>r.cancelCompaction),$t=ke(r=>r.clearError),Ue=!!(a!=null&&a.agentId),Ht=jr(K,F,Z),Ge=Dr({hasClient:!!o,busy:Ht,compacting:L,running:K,hasAgent:Ue,text:A,hasImages:H.length>0}),{data:Ve=[],isLoading:Kt,isError:Wt,error:Xe}=pr(e,E),{options:Ye,hiddenExtensionCount:Ut}=br(Ve,{running:K,builtinsDisabled:!Lt({running:K,compacting:L,hasAgent:Ue})}),Je=Me(A),xe=Je?Ct(Ye,Je.name):Ye,Gt=[...Ae,...Ve].map(r=>r.name),ae=Cr(A,Gt),Qe=L?wn((a==null?void 0:a.timeline.rows)??[]):void 0,Vt=Qe?gt(Qe):"Compacting context…";async function Ze(r){if(r.type.startsWith("image/"))try{const _=await vr(r);W(k=>[...k,_])}catch{}}function Xt(r){for(const _ of r.target.files??[])Ze(_);r.target.value=""}function Yt(r){if(!L){for(const _ of r.clipboardData.items)if(_.type.startsWith("image/")){r.preventDefault();const k=_.getAsFile();k&&Ze(k)}}}function Jt(r){W(_=>_.filter((k,C)=>C!==r))}function et(r,_){$(e,_),re(r),Se&&$t(e),be&&oe(null);const k=yr(_);k!==E&&j(k),k&&V(0)}function Qt(r){et(r.target,r.target.value)}function Zt(r){return!L&&rt(r.dataTransfer.types)}function tt(r){Zt(r)&&(r.preventDefault(),r.dataTransfer.dropEffect="copy",ge(!0))}function en(r){r.currentTarget.contains(r.relatedTarget)||ge(!1)}function tn(r,_){r.focus(),r.setSelectionRange(_.start,_.end);const k=r.value;let C=!1;try{C=document.execCommand("insertText",!1,_.insert)&&r.value!==k}catch{C=!1}C||(r.setRangeText(_.insert,_.start,_.end,"end"),et(r,r.value)),r.setSelectionRange(_.caret,_.caret),s!==null&&vt.getState().focusPane(n,s)}function nn(r){const{types:_}=r.dataTransfer;if(!rt(_)||(ge(!1),L))return;r.preventDefault();const k=I.current;if(!k)return;const C=Ar({refValue:En(_,P=>r.dataTransfer.getData(P)),compacting:L,root:Tr((a==null?void 0:a.cwd)??"",Ft),text:k.value,selStart:k.selectionStart,selEnd:k.selectionEnd,neverFocused:!We.current});C.kind==="refuse"?oe("Not inside this workspace"):C.kind==="insert"&&tn(k,C.plan)}function sn(r){if(L){r.key==="Escape"&&(r.preventDefault(),Ce(e));return}if(!E&&ae&&r.key==="Backspace"){const _=r.currentTarget,k=_.selectionStart;if(k!==null&&k===_.selectionEnd){const C=ae.end+(A[ae.end]===" "?1:0);if(k>0&&k<=C){r.preventDefault();const P=A.slice(C);$(e,P),_.setSelectionRange(0,0),re(_);return}}}if(E&&xe.length>0){if(r.key==="ArrowDown"||r.key==="ArrowUp"){r.preventDefault(),V(_=>Nr(_,r.key==="ArrowDown"?1:-1,xe.length));return}if(r.key==="Enter"&&!r.shiftKey||r.key==="Tab"){r.preventDefault();const _=xe[R];_&&!_.disabled&&nt(_.value);return}}if(E&&r.key==="Escape"){r.preventDefault(),j(!1);return}r.key==="Enter"&&!r.shiftKey&&(r.preventDefault(),st(K?"steer":"send"))}function nt(r){const _=Sr(A,r);$(e,_),j(!1),V(0);const k=I.current;k&&(k.focus(),k.setSelectionRange(_.length,_.length),re(k))}async function st(r){if(!o||!a||(r==="steer"?Z:F)||r==="steer"&&!a.agentId)return;const _=A.trim();if(!_&&H.length===0||!Ge)return;const k=At(_);if(k){j(!1),$(e,""),I.current&&re(I.current);const Y=await Mt(e,k.args);wr(Y,fe.getState().drafts[e]??"")&&($(e,A),I.current&&re(I.current));return}$(e,""),j(!1),I.current&&re(I.current);const C=H;W([]);const P=_||"Describe this image",ue=C.length>0?C.map(Y=>({mimeType:Y.mimeType,data:Y.data})):void 0,me=Bn();i(e,me,P,ue,r==="steer");const at=r==="steer"?ee:ie;at(!0);try{if(r==="steer"){const Y=await o.agent(a.agentId).steer(P,{clientMessageId:me,images:ue});Li(Y)&&c(e,me)}else{a.agentId||l(e,a.cwd||"~");const Y=await ve(o,e);await o.agent(Y).send(P,{clientMessageId:me,images:ue})}}catch{c(e,me)}finally{at(!1)}}function on(){a!=null&&a.agentId&&(L?Ce(e):o==null||o.agent(a.agentId).interrupt())}function an(r,_){const k={model:a==null?void 0:a.model,provider:a==null?void 0:a.modelProvider};m(e,r,_),oe(null),!(!o||!_)&&(async()=>{const C=await ve(o,e);await o.agent(C).setModel(_,r)})().catch(C=>{const P=M.getState().sessions[e];(P==null?void 0:P.model)===r&&P.modelProvider===_&&m(e,k.model,k.provider);const ue=C instanceof Error?C.message:String(C);oe(`Couldn't switch model: ${ue}`)})}function rn(r){const _=a==null?void 0:a.thinkingLevel;u(e,r),oe(null),o&&(async()=>{const k=await ve(o,e),C=await o.agent(k).setThinking(r);u(e,C.level)})().catch(k=>{var P;((P=M.getState().sessions[e])==null?void 0:P.thinkingLevel)===r&&u(e,_);const C=k instanceof Error?k.message:String(k);oe(`Couldn't set thinking level: ${C}`)})}return t.jsxs("div",{className:S.composer,children:[t.jsxs("div",{className:w(S.card,zt&&S.flash,L&&S.compacting,Ne&&!L&&S.dropTarget),...Dn(),onDragEnter:tt,onDragOver:tt,onDragLeave:en,onDrop:nn,children:[t.jsxs("div",{className:S.textareaWrap,children:[t.jsx("div",{className:S.highlightLayer,"aria-hidden":!0,children:ae?t.jsxs(t.Fragment,{children:[t.jsx("mark",{className:S.commandMark,children:A.slice(0,ae.end)}),A.slice(ae.end)]}):A}),t.jsx(_t,{ref:I,className:S.textarea,rows:1,value:A,readOnly:L,placeholder:L?"Compacting context… esc cancel":K?"Steer the running turn… ⏎ steer · ⇧⏎ newline":"Ask anything… ⏎ send · ⇧⏎ newline · / commands",onChange:Qt,onFocus:()=>{We.current=!0},onKeyDown:sn,onPaste:Yt,"data-session-id":e})]}),t.jsx(kr,{images:H,onRemove:Jt}),t.jsxs("div",{className:S.toolbar,children:[t.jsx(z,{className:S.toolBtn,variant:"ghost",size:"sm",iconOnly:!0,title:"Attach image","aria-label":"Attach image",disabled:L,onClick:()=>{var r;return(r=T.current)==null?void 0:r.click()},children:t.jsx(Gn,{size:16})}),t.jsx(oi,{open:E&&!L,onOpenChange:j,options:xe,highlightedIndex:R,onSelect:nt,isLoading:Kt,isError:Wt,errorMessage:Xe instanceof Error?Xe.message:void 0,hiddenExtensionCount:Ut,renderTrigger:()=>t.jsx(z,{className:S.toolBtn,variant:"ghost",size:"sm",iconOnly:!0,disabled:L,title:"Slash commands","aria-label":"Slash commands",children:t.jsx(Vn,{size:16})})}),t.jsxs("div",{className:S.toolbarRight,children:[t.jsx(ii,{currentModel:a==null?void 0:a.model,currentModelProvider:a==null?void 0:a.modelProvider,provider:"pi",agentId:a==null?void 0:a.agentId,onSelect:an,renderTrigger:(r,_)=>{const k=_!==void 0&&_!==r;return t.jsxs("button",{type:"button",className:S.modelBtn,disabled:!o,title:r?`Model: ${_??r}${k?` (${r})`:""}`:"Select model",children:[t.jsx(Xn,{size:14,"aria-hidden":"true"}),t.jsx("span",{className:S.modelLabel,children:_??r??"Model"}),k&&t.jsxs("span",{className:S.modelId,children:["(",r,")"]}),t.jsx(lt,{size:13,className:S.modelChevron,"aria-hidden":"true"})]})}}),B&&t.jsx(ci,{currentLevel:a==null?void 0:a.thinkingLevel,levels:N,open:d,onOpenChange:x,onSelect:rn,renderTrigger:r=>t.jsxs("button",{type:"button",className:S.modelBtn,disabled:!o,title:r?`Thinking: ${r}`:"Thinking level",children:[t.jsx(yt,{size:14,"aria-hidden":"true"}),t.jsx("span",{className:S.modelLabel,children:r??"Thinking"}),t.jsx(lt,{size:13,className:S.modelChevron,"aria-hidden":"true"})]})}),(K||L)&&t.jsx(z,{className:S.roundBtn,variant:"destructive",size:"sm",iconOnly:!0,title:L?"Cancel the compaction":"Stop the running turn","aria-label":"Stop",onClick:on,children:t.jsx(Yn,{size:14})}),t.jsx(z,{className:S.roundBtn,size:"sm",iconOnly:!0,disabled:!Ge,title:K?"Steer the running turn":"Send","aria-label":K?"Steer":"Send",onClick:()=>void st(K?"steer":"send"),children:K?t.jsx(Jn,{size:16}):t.jsx(Qn,{size:18})})]})]})]}),t.jsx("div",{role:"status",children:L&&t.jsxs("div",{className:S.compactStatus,children:[t.jsx(ne,{size:"xs","aria-label":"Compacting"}),t.jsx("span",{className:S.compactStatusText,children:Vt}),t.jsx("button",{type:"button",className:S.compactCancel,title:"Cancel the compaction (Esc)",onClick:()=>void Ce(e),children:"Cancel"})]})}),$e!==null&&t.jsx("div",{className:S.note,children:$e}),Se&&t.jsx("div",{role:"alert",className:S.inlineError,children:Se}),be&&t.jsx("div",{role:"alert",className:S.inlineError,children:be}),t.jsx("input",{ref:T,className:S.hiddenFileInput,type:"file",accept:"image/*",multiple:!0,onChange:Xt})]})}const Pi=5;function Ot(e){return e.toSorted((n,s)=>n.id-s.id)}function qi(e){return{done:e.filter(n=>n.status==="completed").length,total:e.length}}function It(e){return Ot(e).find(n=>n.status==="in_progress")}function Pt(e){return e.status==="in_progress"&&e.activeForm?e.activeForm:e.subject}function zi(e){const n=It(e);return n?Pt(n):void 0}function Fi(e){var n;if(!(e.status==="completed"||!((n=e.blockedBy)!=null&&n.length)))return`blocked by ${e.blockedBy.map(s=>`#${s}`).join(", ")}`}function Mi(e){return!!e.description||!!e.owner}function $i(e,n=Pi){const s=Ot(e),o=s.filter(l=>l.status==="completed"),a=o.length>n,i=[];let c=!1;return s.forEach((l,m)=>{if(a&&l.status==="completed"){c||(c=!0,i.push({kind:"completed-group",count:o.length,tasks:o,key:`group-${l.id}-${m}`}));return}i.push({kind:"task",task:l,key:`${l.id}-${m}`})}),i}const Hi="_panel_3trtd_5",Ki="_header_3trtd_18",Wi="_rowButton_3trtd_35",Ui="_chevron_3trtd_40",Gi="_chevronOpen_3trtd_46",Vi="_label_3trtd_50",Xi="_count_3trtd_55",Yi="_summary_3trtd_60",Ji="_body_3trtd_69",Qi="_row_3trtd_35",Zi="_rowStatic_3trtd_85",ec="_icon_3trtd_102",tc="_iconInProgress_3trtd_111",nc="_iconCompleted_3trtd_115",sc="_iconPending_3trtd_119",oc="_text_3trtd_123",ac="_textCompleted_3trtd_135",rc="_id_3trtd_140",ic="_blocked_3trtd_146",cc="_details_3trtd_157",lc="_footer_3trtd_166",dc="_nested_3trtd_180",y={panel:Hi,header:Ki,rowButton:Wi,chevron:Ui,chevronOpen:Gi,label:Vi,count:Xi,summary:Yi,body:Ji,row:Qi,rowStatic:Zi,icon:ec,iconInProgress:tc,iconCompleted:nc,iconPending:sc,text:oc,textCompleted:ac,id:rc,blocked:ic,details:cc,footer:lc,nested:dc};function uc({status:e}){return e==="in_progress"?t.jsx("span",{className:`${y.icon} ${y.iconInProgress}`,children:t.jsx(ne,{size:14,"aria-label":"In progress"})}):e==="completed"?t.jsx("span",{className:`${y.icon} ${y.iconCompleted}`,children:t.jsx(O,{icon:pe,size:"sm","aria-label":"Completed"})}):t.jsx("span",{className:`${y.icon} ${y.iconPending}`,children:t.jsx(O,{icon:Zn,size:"sm","aria-label":"Pending"})})}function qt({task:e}){const[n,s]=h.useState(!1),o=Fi(e),a=Mi(e),i=t.jsxs(t.Fragment,{children:[t.jsx(uc,{status:e.status}),t.jsx("span",{className:`${y.text} ${e.status==="completed"?y.textCompleted:""}`,children:Pt(e)}),o&&t.jsx("span",{className:y.blocked,children:o}),t.jsxs("span",{className:y.id,children:["#",e.id]}),a&&t.jsx("span",{className:`${y.chevron} ${n?y.chevronOpen:""}`,children:t.jsx(O,{icon:he,size:"xs","aria-hidden":!0})})]});return t.jsxs("li",{className:y.row,"data-status":e.status,"data-task-id":e.id,children:[a?t.jsx("button",{type:"button",className:y.rowButton,"aria-expanded":n,onClick:()=>s(c=>!c),children:i}):t.jsx("div",{className:y.rowStatic,children:i}),n&&t.jsxs("p",{className:y.details,children:[e.description,e.description&&e.owner?`
|
|
11
|
-
`:"",e.owner?`Owner: ${e.owner}`:""]})]})}function mc({tasks:e}){const[n,s]=h.useState(!1);return t.jsxs("li",{className:y.row,children:[t.jsxs("button",{type:"button",className:y.rowButton,"aria-expanded":n,onClick:()=>s(o=>!o),children:[t.jsx("span",{className:`${y.icon} ${y.iconCompleted}`,children:t.jsx(O,{icon:pe,size:"sm","aria-hidden":!0})}),t.jsxs("span",{className:y.text,children:[e.length," completed"]}),t.jsx("span",{className:`${y.chevron} ${n?y.chevronOpen:""}`,children:t.jsx(O,{icon:he,size:"xs","aria-hidden":!0})})]}),n&&t.jsx("ol",{className:y.nested,children:e.map((o,a)=>t.jsx(qt,{task:o},`${o.id}-${a}`))})]})}function fc({agentId:e}){var f;const n=Rn(e),s=An(e),o=h.useId(),a=h.useRef(null);h.useEffect(()=>{if(e)return it.getState().track(e)},[e]);const i=n==null?void 0:n.tasks,c=i?(f=It(i))==null?void 0:f.id:void 0;if(h.useEffect(()=>{const d=a.current;if(!d||c===void 0||s)return;const x=d.querySelector(`[data-task-id="${c}"][data-status="in_progress"]`);if(!x)return;const D=x.offsetTop-d.offsetTop;(D<d.scrollTop||D+x.offsetHeight>d.scrollTop+d.clientHeight)&&(d.scrollTop=D-(d.clientHeight-x.offsetHeight)/2)},[c,s]),!e||!n||n.tasks.length===0)return null;const{done:l,total:m}=qi(n.tasks),u=s?zi(n.tasks):void 0;return t.jsxs("section",{className:y.panel,role:"region","aria-label":"Agent todos",children:[t.jsxs("button",{type:"button",className:y.header,"aria-expanded":!s,"aria-controls":o,onClick:()=>it.getState().setCollapsed(e,!s),children:[t.jsx("span",{className:`${y.chevron} ${s?"":y.chevronOpen}`,children:t.jsx(O,{icon:he,size:"sm","aria-hidden":!0})}),t.jsx("span",{className:y.label,children:"Todos"}),t.jsxs("span",{className:y.count,children:[l,"/",m]}),u&&t.jsx("span",{className:y.summary,children:u})]}),!s&&t.jsx("ol",{id:o,ref:a,className:y.body,children:$i(n.tasks).map(d=>d.kind==="task"?t.jsx(qt,{task:d.task},d.key):t.jsx(mc,{tasks:d.tasks},d.key))}),!s&&n.truncated&&t.jsxs("div",{className:y.footer,children:["Showing first ",Ln," tasks"]})]})}const pc="_track_oxvl6_2",hc="_sweep_oxvl6_24",_c="_visuallyHidden_oxvl6_64",Ee={track:pc,sweep:hc,visuallyHidden:_c};function gc({running:e}){return e?t.jsxs("div",{className:Ee.track,role:"progressbar","aria-label":"Turn in progress",children:[t.jsx("div",{className:Ee.sweep,"aria-hidden":"true"}),t.jsx("span",{className:Ee.visuallyHidden,role:"status","aria-live":"polite",children:"Agent is working…"})]}):null}const xc="_panel_1tq06_1",kc="_empty_1tq06_5",ht={panel:xc,empty:kc};function
|
|
10
|
+
`)}function Wa(e){const n=ss(e).filter(o=>o.kind==="add"||o.kind==="del"),s=n[0];return s?{text:s.text,kind:s.kind,moreCount:n.length-1}:null}function Ua(e){return e.status==="completed"?t.jsx("span",{className:p.toolStatusSuccess,children:"✓ completed"}):e.status==="error"?t.jsx("span",{className:p.toolStatusError,children:e.statusText||"error"}):e.status==="canceled"?t.jsx("span",{className:p.toolStatusUnknown,children:e.statusText||"canceled"}):e.statusText&&e.statusText!=="running"?t.jsx("span",{className:p.toolStatusUnknown,children:e.statusText}):t.jsxs("span",{className:p.toolStatusRunning,children:[t.jsx(ne,{size:"xs",color:"var(--pi-color-accentBright)"}),"running"]})}function Ga({row:e,assetBase:n=null,owningPaneId:s=null,workspaceCwd:o=null,connector:a}){const[i,c]=h.useState(!1),l=ls(e.tool),m=cs(e.tool),u=m.length>0,f=us(e.tool.output),d=e.tool.kind==="edit"||e.tool.kind==="write"?wt(e.tool):null,x=e.tool.kind==="edit"?ds(e.tool.diff):null,D=e.tool.kind==="edit"&&e.tool.diff&&!i?Wa(e.tool.diff):null;function q(){u&&c(N=>!N)}function G(N){N.target===N.currentTarget&&(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),q())}function b(N){if(N.stopPropagation(),!d)return;const B=ts(n,s,o);_n(d,B.workspaceCwd,B.targetPaneId)}return t.jsx(X,{disc:t.jsx(O,{icon:rs(e.tool),size:"xs",color:"var(--pi-color-foregroundMuted)"}),discClassName:p.toolDisc,connector:a,children:t.jsxs("div",{className:w(p.toolCardBody,e.status==="running"&&p.toolCardBodyRunning,e.status==="completed"&&p.toolCardBodyCompleted,e.status==="error"&&p.toolCardBodyError,e.status==="canceled"&&p.toolCardBodyCanceled),children:[t.jsxs("div",{role:"button",tabIndex:u?0:-1,"aria-expanded":u?i:void 0,"aria-disabled":!u,className:w(p.toolHeader,e.status==="running"&&p.toolHeaderRunning),onClick:q,onKeyDown:G,children:[u&&t.jsx(he,{size:12,className:w(p.toolChevron,i&&p.toolChevronOpen)}),t.jsx("span",{className:p.kindBadge,style:{"--kindToken":`var(--pi-color-${l.token})`},children:l.label}),t.jsx("span",{className:p.toolPath,title:Be(e.tool),children:Be(e.tool)}),t.jsxs("span",{className:p.toolTrailing,children:[x&&(x.added>0||x.removed>0)&&t.jsxs(t.Fragment,{children:[t.jsxs("span",{className:p.toolDiffAdded,children:["+",x.added]}),t.jsxs("span",{className:p.toolDiffRemoved,children:["−",x.removed]})]}),Ua(e),d&&t.jsxs("button",{type:"button",className:p.toolOpenButton,onClick:b,onKeyDown:N=>N.stopPropagation(),children:["Open",t.jsx($n,{size:10})]})]})]}),e.status==="running"&&e.tool.output&&t.jsx("pre",{className:w(p.toolCode,p.toolLiveTail),children:Ha(e.tool.output)}),f>0&&t.jsxs("div",{className:p.toolOutputStrip,children:["output · ",f," lines"]}),D&&t.jsxs("div",{className:p.toolDiffPreview,children:[t.jsx("div",{className:w(p.toolDiffPreviewLine,D.kind==="add"?p.toolDiffPreviewAdd:p.toolDiffPreviewDel),children:D.text}),D.moreCount>0&&t.jsxs("div",{className:p.toolDiffPreviewMore,children:["… ",D.moreCount," more lines"]})]}),i&&u&&t.jsx("div",{className:p.toolBody,children:m.map((N,B)=>N.kind==="diff"?t.jsx(ns,{patch:N.patch},B):t.jsx("pre",{className:p.toolCode,children:N.text},B))})]})})}const Va="Fork from here",Xa="Fork conversation from this message";function Ya({row:e,connector:n,onFork:s}){const[o,a]=h.useState(null),i=Fe(e.timestamp);return t.jsxs(X,{disc:t.jsx(O,{icon:Wn,size:"xs",color:"var(--pi-color-successForeground)"}),discClassName:p.userDisc,connector:n,className:w(p.userAligned,e.pending&&p.userPendingRow),meta:t.jsxs(t.Fragment,{children:["You",i&&t.jsxs("span",{className:U.metaTime,children:[" · ",i]}),e.failed&&" · failed to send"]}),metaTrailing:t.jsxs(t.Fragment,{children:[e.queued&&!e.failed&&t.jsxs("span",{className:p.queuedBadge,children:[t.jsx(Kn,{size:9}),"queued"]}),s&&t.jsx(xn,{className:U.forkButton,hoverBase:"var(--pi-color-surface3)",title:Va,"aria-label":Xa,onClick:s,children:t.jsx(Hn,{size:13,strokeWidth:1.8,"aria-hidden":"true"})})]}),children:[t.jsx("span",{className:w(p.userBubble,e.failed&&p.userBubbleFailed),children:e.text}),e.images&&e.images.length>0&&t.jsx("div",{className:p.userImages,children:e.images.map((c,l)=>{const m=`data:${c.mimeType??"image/png"};base64,${c.data??""}`;return t.jsx("img",{className:p.userImage,src:m,alt:"",role:"button",tabIndex:0,onClick:()=>a(m),onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&a(m)}},l)})}),t.jsx(gn,{open:o!==null,onOpenChange:c=>{c||a(null)},title:"Image",width:"auto",bare:!0,className:p.imageDialog,children:o&&t.jsx("img",{className:p.imageDialogPreview,src:o,alt:""})})]})}function Ja({row:e,connector:n}){return t.jsx(X,{disc:t.jsx(O,{icon:bt,size:"xs",color:"var(--pi-color-destructive)"}),discClassName:p.errorDisc,connector:n,children:t.jsxs("div",{className:p.errorCard,children:[t.jsx("span",{className:p.errorLead,children:"Error"})," · ",e.text]})})}function Qa({row:e}){return t.jsx("div",{className:p.systemRow,children:e.text})}function Za({row:e,assetBase:n=null,owningPaneId:s=null,workspaceCwd:o=null}){const[a,i]=h.useState(!1),c=gt(e),l=e.phase==="completed"&&!!e.summary,m=t.jsx("span",{className:p.compactionText,children:c});return t.jsxs("div",{className:w(p.compactionRow,e.phase==="failed"&&p.compactionRowFailed),children:[t.jsxs("div",{className:p.compactionDivider,children:[t.jsx("span",{className:p.compactionRule,"aria-hidden":"true"}),t.jsxs("span",{className:p.compactionLabel,children:[e.phase==="started"&&t.jsx(ne,{size:"xs","aria-label":"Compacting context"}),e.phase==="failed"&&t.jsx(O,{icon:bt,size:"xs",color:"var(--pi-color-statusDanger)"}),l?t.jsxs("button",{type:"button",className:p.compactionToggle,"aria-expanded":a,onClick:()=>i(u=>!u),children:[t.jsx(he,{size:12,className:w(p.toolChevron,a&&p.toolChevronOpen)}),m]}):m]}),t.jsx("span",{className:p.compactionRule,"aria-hidden":"true"})]}),l&&a&&t.jsx("div",{className:p.compactionSummary,children:t.jsx(Pe,{text:e.summary,assetBase:n,owningPaneId:s,workspaceCwd:o})})]})}const er=500;function tr(e,n){const s=h.useRef(!0),[o,a]=h.useState(!0),i=h.useRef(0),c=h.useCallback(u=>{const f=n.current,d=f?{scrollTop:f.scrollTop,scrollHeight:f.scrollHeight,clientHeight:f.clientHeight}:{scrollTop:0,scrollHeight:0,clientHeight:0},x=_s(s.current,u,d);x.pinned!==s.current&&(s.current=x.pinned,a(x.pinned)),x.stick&&e.options.count>0&&e.scrollToEnd({behavior:"auto"})},[n,e]);h.useEffect(()=>{const u=n.current;if(!u)return;const f=()=>{i.current=performance.now()},d=()=>{c({kind:"scroll",gesture:performance.now()-i.current<er})};u.addEventListener("scroll",d,{passive:!0}),u.addEventListener("wheel",f,{passive:!0}),u.addEventListener("touchmove",f,{passive:!0}),u.addEventListener("pointerdown",f,{passive:!0}),u.addEventListener("keydown",f,{passive:!0});const x=new ResizeObserver(()=>{u.clientHeight>0&&c({kind:"shown"})});return x.observe(u),()=>{x.disconnect(),u.removeEventListener("scroll",d),u.removeEventListener("wheel",f),u.removeEventListener("touchmove",f),u.removeEventListener("pointerdown",f),u.removeEventListener("keydown",f)}},[c,n]);const l=h.useCallback(()=>c({kind:"tail"}),[c]),m=h.useCallback(()=>c({kind:"pin"}),[c]);return{pinned:o,followTail:l,pinToBottom:m}}const nr="_root_1xg4h_6",sr="_viewport_1xg4h_13",or="_inner_1xg4h_20",ar="_rowWrap_1xg4h_25",rr="_empty_1xg4h_35",ir="_nudge_1xg4h_47",cr="_jumpToLatest_1xg4h_56",te={root:nr,viewport:sr,inner:or,rowWrap:ar,empty:rr,nudge:ir,jumpToLatest:cr},lr=160;function dr(e){return e.kind==="ask"?`ask:${Ds(e.item)}`:e.kind==="ask-more"?"ask-more":e.row.id}function ur(e,n,s,o,a,i){switch(e.kind){case"user":{const c=i.ordinalByRowId.get(e.id),l=c!==void 0?()=>i.onForkFromRow(c):null;return t.jsx(Ya,{row:e,connector:!n,onFork:l})}case"assistant":return t.jsx(Ma,{row:e,assetBase:s,owningPaneId:o,workspaceCwd:a,connector:!n});case"reasoning":return t.jsx($a,{row:e,owningPaneId:o,workspaceCwd:a,connector:!n});case"tool":return t.jsx(Ga,{row:e,assetBase:s,owningPaneId:o,workspaceCwd:a,connector:!n});case"error":return t.jsx(Ja,{row:e,connector:!n});case"system":return t.jsx(Qa,{row:e});case"compaction":return t.jsx(Za,{row:e,assetBase:s,owningPaneId:o,workspaceCwd:a})}}function mr(e,n,s,o,a,i,c,l,m){return e.kind==="ask"?t.jsx(No,{item:e.item,collapsed:e.collapsed,connector:!n,autoFocus:e.item.kind==="pending"&&e.item.entry.requestId===c,sessionTitle:l}):e.kind==="ask-more"?t.jsx(Co,{count:e.count,connector:!n,onExpand:i}):ur(e.row,n,s,o,a,m)}function fr({session:e,owningPaneId:n,workspaceCwd:s}){var T,E;const o=e.timeline.rows,a=e.status==="running",i=xt(),c=kt(e.cwd,i),l=h.useRef(null),m=kn(e),u=vn(e.agentId??""),f=jn(e.agentId??""),[d,x]=h.useState(!1),D=M(j=>j.activeSessionId===e.id),q=vt(j=>{var R;return((R=j.layouts[s])==null?void 0:R.focusedPaneId)===n}),G=D&&q?((T=u[0])==null?void 0:T.requestId)??null:null,b=h.useMemo(()=>{const j=Es(ws(u,f),d);return Io(o,j,R=>({kind:"row",row:R}),R=>R.kind==="more"?{kind:"ask-more",count:R.count}:{kind:"ask",item:R.item,collapsed:R.collapsed})},[o,u,f,d]),N=J(j=>j.status==="open"),B=J(j=>j.serverInfo),A=!!((E=B==null?void 0:B.features)!=null&&E.providerAuth),$=yn(j=>j.openSettings),{data:K}=es(o.length===0&&N&&A),W=Po(A,K),F=ln({count:b.length,getScrollElement:()=>l.current,estimateSize:()=>lr,overscan:8,getItemKey:j=>{const R=b[j];return R?dr(R):j},measureElement:(j,R,V)=>{if(j.offsetParent!==null)return dn(j,R,V);const ce=V.indexFromElement(j),_e=V.options.getItemKey(ce);return V.itemSizeCache.get(_e)??V.options.estimateSize(ce)},anchorTo:"end",scrollEndThreshold:Dt}),{pinned:ie,followTail:Z,pinToBottom:ee}=tr(F,l),I=gs(o);return h.useEffect(()=>{Z()},[b.length,Z]),h.useEffect(()=>{I!==null&&ee()},[I,ee]),t.jsxs("div",{className:te.root,children:[t.jsx("div",{className:te.viewport,ref:l,children:b.length===0?!a&&(W?t.jsxs(bn,{className:te.nudge,children:[t.jsx("span",{children:"No messages yet — connect a model provider to get started."}),t.jsx(z,{size:"xs",variant:"secondary",onClick:()=>$(),children:"Connect a model provider"})]}):t.jsx("div",{className:te.empty,children:"No messages yet — say something to start."})):t.jsx("div",{className:te.inner,style:{height:F.getTotalSize()},children:F.getVirtualItems().map(j=>{const R=b[j.index];return R?t.jsx("div",{ref:F.measureElement,"data-index":j.index,className:te.rowWrap,style:{transform:`translateY(${j.start}px)`},children:mr(R,j.index===b.length-1,c,n,s,()=>x(!0),G,e.title,m)},j.key):null})})}),!ie&&b.length>0&&t.jsx("button",{type:"button",className:te.jumpToLatest,onClick:ee,title:"Jump to latest","aria-label":"Jump to latest",children:t.jsx(Un,{size:16,"aria-hidden":"true"})})]})}function pr(e,n=!0){const s=J(o=>o.client);return Le({queryKey:Oe.agentCommands(e),queryFn:async()=>{if(!s)throw new Error("not connected");const o=await ve(s,e),{commands:a}=await s.agent(o).listCommands();return a},enabled:!!s&&!!e&&n})}function Rt(e,n,s=!0){const o=J(a=>a.client);return Le({queryKey:Oe.providerModels(e,n),queryFn:async()=>{if(!o)throw new Error("not connected");return(await o.providers.listModels(e,n?{agentId:n}:void 0)).models},enabled:!!o&&!!e&&s})}function hr(e,n,s=!0){const o=J(a=>a.client);return Le({queryKey:Oe.thinkingLevels(e??"",n),queryFn:async()=>{if(!o||!e)throw new Error("not connected");return(await o.agent(e).listThinkingLevels()).levels},enabled:!!o&&!!e&&s,retry:!1})}const _r="_strip_nzfk5_4",gr="_thumb_nzfk5_11",xr="_remove_nzfk5_28",Te={strip:_r,thumb:gr,remove:xr};function kr({images:e,onRemove:n}){return e.length===0?null:t.jsx("div",{className:Te.strip,children:e.map((s,o)=>t.jsxs("div",{className:Te.thumb,children:[t.jsx("img",{src:s.thumbUrl,alt:""}),t.jsx("button",{type:"button",className:Te.remove,title:"Remove",onClick:()=>n(o),children:"×"})]},o))})}function vr(e){const{promise:n,resolve:s,reject:o}=Promise.withResolvers(),a=new FileReader;return a.onload=()=>{const i=a.result;if(typeof i!="string"){o(new Error("Unexpected FileReader result"));return}const c=i.indexOf(","),l=c>=0?i.slice(c+1):i;s({mimeType:e.type,data:l,thumbUrl:i})},a.onerror=()=>o(a.error??new Error("Failed to read file")),a.readAsDataURL(e),n}function jr(e,n,s){return e?s:n}const Ae=[{name:"compact",description:"Manually compact the session context",source:"builtin"}];function At(e){var o;const n=/^\/([^\s]+)(?:\s+([\s\S]*))?$/.exec(e.trim());if((n==null?void 0:n[1])!=="compact")return null;const s=(o=n[2])==null?void 0:o.trim();return{name:"compact",args:s||void 0}}function Me(e){if(!e.startsWith("/"))return null;const n=/^\/(\S*)/.exec(e),s=(n==null?void 0:n[1])??"",o=1+s.length,a=/\S/.test(e.slice(o));return{name:s,end:o,hasArgs:a}}function yr(e){return/^\/\S*$/.test(e)}function br(e,n){let s=0;const o=Ae.map(i=>({value:i.name,label:`/${i.name}`,description:i.description,kind:i.source,disabled:n.builtinsDisabled===!0})),a=new Set(Ae.map(i=>i.name));for(const i of e)if(!a.has(i.name)){if(n.running&&i.source==="extension"){s+=1;continue}o.push({value:i.name,label:`/${i.name}`,description:i.description,kind:i.source})}return{options:o,hiddenExtensionCount:s}}function Nr(e,n,s){return s<=0?0:(e+n+s)%s}function Sr(e,n){const s=Me(e);return s?s.hasArgs?`/${n}${e.slice(s.end)}`:`/${n} `:`/${n} ${e}`}function Cr(e,n){const s=Me(e);return!s||!n.includes(s.name)?null:{end:s.end}}function Lt({running:e,compacting:n,hasAgent:s}){return s&&!e&&!n}function wr(e,n){return!e.ok&&e.reason!=="canceled"&&n===""}function Dr(e){const n=e.text.trim().length>0||e.hasImages;return!e.hasClient||!n||e.busy||e.compacting?!1:At(e.text)!==null?Lt(e):!0}function Tr(e,n){const s=kt(e||"~",n).replace(/\/+$/,"");return s===""||s.startsWith("~")?null:s}function Er(e,n){if(!n||n.startsWith("~"))return null;const s=e.endsWith("/"),o=s?e.slice(0,-1):e;if(!o.startsWith(`${n}/`))return null;const a=o.slice(n.length+1);return a===""?null:s?`${a}/`:a}function Br(e){if(!/[\s`]/.test(e))return e;let n=0;for(const a of e.match(/`+/g)??[])n=Math.max(n,a.length);const s="`".repeat(n+1),o=e.startsWith("`")||e.endsWith("`")?" ":"";return`${s}${o}${e}${o}${s}`}function Rr(e,n,s,o){const a=x=>Math.min(Math.max(Number.isFinite(x)?x:0,0),e.length),i=a(n),c=a(s),l=Math.min(i,c),m=Math.max(i,c),u=l>0&&!/\s/.test(e[l-1])?" ":"",f=m>=e.length||!/\s/.test(e[m])?" ":"",d=`${u}${o}${f}`;return{start:l,end:m,insert:d,caret:l+d.length}}function Ar(e){if(e.refValue===null||e.compacting)return{kind:"ignore"};const n=Er(e.refValue,e.root);if(n===null)return{kind:"refuse"};const{text:s}=e,o=e.neverFocused?s.length:e.selStart,a=e.neverFocused?s.length:e.selEnd;return{kind:"insert",plan:Rr(s,o,a,Br(n))}}const Lr="_picker_11hqs_4",Or="_search_11hqs_10",Ir="_searchWrap_11hqs_28",Pr="_searchSpinner_11hqs_37",qr="_list_11hqs_45",zr="_item_11hqs_50",Fr="_itemActive_11hqs_67",Mr="_checkSlot_11hqs_71",$r="_label_11hqs_80",Kr="_modelId_11hqs_86",Hr="_state_11hqs_93",Wr="_stateError_11hqs_102",Ur="_commandContent_11hqs_112",Gr="_commandList_11hqs_115",Vr="_commandItem_11hqs_120",Xr="_commandItemHeader_11hqs_152",Yr="_commandKindBadge_11hqs_166",Jr="_commandKindExtension_11hqs_185",Qr="_commandKindPrompt_11hqs_190",Zr="_commandKindSkill_11hqs_195",ei="_commandDescription_11hqs_200",ti="_commandItemDisabled_11hqs_214",v={picker:Lr,search:Or,searchWrap:Ir,searchSpinner:Pr,list:qr,item:zr,itemActive:Fr,checkSlot:Mr,label:$r,modelId:Kr,state:Hr,stateError:Wr,commandContent:Ur,commandList:Gr,commandItem:Vr,commandItemHeader:Xr,commandKindBadge:Yr,commandKindExtension:Jr,commandKindPrompt:Qr,commandKindSkill:Zr,commandDescription:ei,commandItemDisabled:ti},ni={onOpenAutoFocus:e=>e.preventDefault()};function si(e){switch(e){case"extension":return v.commandKindExtension;case"prompt":return v.commandKindPrompt;case"skill":return v.commandKindSkill;default:return}}function oi({open:e,onOpenChange:n,options:s,highlightedIndex:o,onSelect:a,isLoading:i,isError:c,errorMessage:l,hiddenExtensionCount:m,renderTrigger:u}){const f=h.useRef(null);return h.useEffect(()=>{var d,x;e&&((x=(d=f.current)==null?void 0:d.querySelector('[aria-selected="true"]'))==null||x.scrollIntoView({block:"nearest"}))},[e,o]),t.jsxs(qe,{open:e,onOpenChange:n,modal:!1,children:[t.jsx(ze,{asChild:!0,children:u()}),t.jsxs(Ie,{className:w(v.picker,v.commandContent),side:"top",sideOffset:4,...ni,onCloseAutoFocus:d=>d.preventDefault(),children:[i&&t.jsx("div",{className:v.state,children:t.jsx(ne,{size:"sm"})}),!i&&c&&t.jsx("div",{className:v.stateError,children:l??"Failed to load commands"}),!i&&!c&&s.length===0&&t.jsx("div",{className:v.state,children:"No commands found"}),!i&&!c&&s.length>0&&t.jsx("div",{ref:f,className:w(v.list,v.commandList),children:s.map((d,x)=>t.jsxs("div",{role:"option","aria-selected":x===o,"aria-disabled":d.disabled||void 0,className:w(v.item,v.commandItem,x===o&&v.itemActive,d.disabled&&v.commandItemDisabled),title:d.description,onMouseDown:D=>{D.preventDefault(),d.disabled||a(d.value)},children:[t.jsxs("div",{className:v.commandItemHeader,children:[t.jsx("span",{className:v.label,children:d.label}),d.kind&&t.jsx("span",{className:w(v.commandKindBadge,si(d.kind)),children:d.kind})]}),d.description&&t.jsx("div",{className:v.commandDescription,children:d.description})]},d.value))}),!i&&!c&&m>0&&t.jsxs("div",{className:v.state,children:[m," extension command(s) unavailable while the agent is running"]})]})]})}function ai(e,n,s){if(!n)return e;const o=e.filter(i=>i.id===n),a=(s===void 0?void 0:o.find(i=>i.provider===s))??o[0];return a?[a,...e.filter(i=>i!==a)]:e}function ri(e){const n=new Set;return e.filter(s=>{const o=`${s.provider??""}/${s.id}`;return n.has(o)?!1:(n.add(o),!0)})}function ii({currentModel:e,currentModelProvider:n,provider:s,agentId:o,onSelect:a,renderTrigger:i}){const[c,l]=h.useState(!1),[m,u]=h.useState(""),f=h.useRef(null),d=h.useRef(null),{data:x,isLoading:D,isFetching:q,isError:G,error:b,refetch:N}=Rt(s,o,c||e!==void 0),B=x??[];h.useEffect(()=>{c&&u("")},[c]),h.useEffect(()=>{c&&N({cancelRefetch:!1})},[c,N]);const $=ri(ai(B,e,n)).map(T=>({value:T.id,label:T.label??T.id,description:T.id,group:T.provider})),K=$[0],W=(K==null?void 0:K.value)===e?K:void 0,F=os(Ct($,m),{priorityGroup:n,ungroupedLabel:"Other"}),ie=F.length>1,Z=b instanceof Error?b.message:"Failed to load models";function ee(T){var E;if(T.stopPropagation(),T.key==="Escape"&&l(!1),T.key==="ArrowDown"){const j=(E=d.current)==null?void 0:E.querySelector('[role="menuitem"]');j&&(T.preventDefault(),j.focus())}}const I={onOpenAutoFocus:T=>{var E;T.preventDefault(),(E=f.current)==null||E.focus()}};return t.jsxs(qe,{open:c,onOpenChange:l,modal:!1,children:[t.jsx(ze,{asChild:!0,children:i(e,W==null?void 0:W.label)}),t.jsxs(Ie,{minWidth:240,align:"end",sideOffset:6,className:v.picker,...I,children:[t.jsxs("div",{className:v.searchWrap,children:[t.jsx("input",{ref:f,className:v.search,placeholder:"Search models…",value:m,onChange:T=>u(T.target.value),onKeyDown:ee}),q&&!D&&t.jsx(ne,{size:"xs",color:"var(--pi-color-foregroundMuted)",className:v.searchSpinner,"aria-label":"Refreshing models"})]}),D&&t.jsx("div",{className:v.state,children:t.jsx(ne,{size:"sm"})}),!D&&G&&x===void 0&&t.jsx("div",{className:v.stateError,children:Z}),!D&&x!==void 0&&F.length===0&&t.jsx("div",{className:v.state,children:"No models found"}),!D&&x!==void 0&&F.length>0&&t.jsx("div",{ref:d,className:v.list,children:F.map(T=>t.jsx(Nn,{label:ie?T.label:void 0,children:T.options.map(E=>t.jsxs(St,{className:v.item,onSelect:()=>a(E.value,E.group),children:[t.jsx("span",{className:v.checkSlot,"aria-hidden":!0,children:E===W&&t.jsx(pe,{size:14})}),t.jsx("span",{className:v.label,children:E.label}),t.jsxs("span",{className:v.modelId,children:["(",E.value,")"]})]},`${E.group??""}/${E.value}`))},T.key))})]})]})}function ci({currentLevel:e,levels:n,open:s,onOpenChange:o,onSelect:a,renderTrigger:i}){return t.jsxs(qe,{open:s,onOpenChange:o,modal:!1,children:[t.jsx(ze,{asChild:!0,children:i(e)}),t.jsx(Ie,{minWidth:140,align:"end",side:"top",sideOffset:6,className:v.picker,children:n.length===0?t.jsx("div",{className:v.state,children:"Loading levels…"}):t.jsx("div",{className:v.list,children:n.map(c=>t.jsxs(St,{className:v.item,onSelect:()=>a(c),children:[t.jsx("span",{className:v.checkSlot,"aria-hidden":!0,children:c===e&&t.jsx(pe,{size:14})}),t.jsx("span",{className:v.label,children:c})]},c))})})]})}const pt=["off","minimal","low","medium","high","xhigh","max"];function li(e,n){if(!e)return pt;const s=n==null?void 0:n.find(o=>o.id===e);return s!=null&&s.thinkingLevels&&s.thinkingLevels.length>0?s.thinkingLevels:pt}const di="_composer_excz7_4",ui="_card_excz7_13",mi="_flash_excz7_27",fi="_dropTarget_excz7_33",pi="_note_excz7_48",hi="_inlineError_excz7_55",_i="_compacting_excz7_63",gi="_textarea_excz7_31",xi="_compactStatus_excz7_73",ki="_compactStatusText_excz7_82",vi="_compactCancel_excz7_88",ji="_textareaWrap_excz7_129",yi="_highlightLayer_excz7_117",bi="_commandMark_excz7_152",Ni="_hiddenFileInput_excz7_177",Si="_toolbar_excz7_183",Ci="_toolbarRight_excz7_190",wi="_toolBtn_excz7_198",Di="_roundBtn_excz7_204",Ti="_modelBtn_excz7_209",Ei="_modelLabel_excz7_239",Bi="_modelId_excz7_237",Ri="_modelChevron_excz7_257",S={composer:di,card:ui,flash:mi,dropTarget:fi,note:pi,inlineError:hi,compacting:_i,textarea:gi,compactStatus:xi,compactStatusText:ki,compactCancel:vi,textareaWrap:ji,highlightLayer:yi,commandMark:bi,hiddenFileInput:Ni,toolbar:Si,toolbarRight:Ci,toolBtn:wi,roundBtn:Di,modelBtn:Ti,modelLabel:Ei,modelId:Bi,modelChevron:Ri},Ai=160;function re(e){e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,Ai)}px`}function Li(e){return typeof e=="object"&&e!==null&&"ok"in e&&e.ok===!1}function Oi(){return typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function Ii({sessionId:e,workspaceCwd:n,owningPaneId:s}){var ot;const o=J(r=>r.client),a=M(r=>r.sessions[e]),i=M(r=>r.addOptimisticUserMessage),c=M(r=>r.markUserMessageFailed),l=M(r=>r.setCwd),m=M(r=>r.setModel),u=M(r=>r.setThinkingLevel),f=J(r=>r.serverInfo),[d,x]=h.useState(!1),D=!!((ot=f==null?void 0:f.features)!=null&&ot.thinkingLevels),{data:q}=hr(a==null?void 0:a.agentId,a==null?void 0:a.model,d&&!!(a!=null&&a.agentId)&&((a==null?void 0:a.userMessageCount)??0)>0),{data:G}=Rt("pi",a==null?void 0:a.agentId),b=li(a==null?void 0:a.model,G),N=q!==void 0&&q.length>0?q:b,B=D&&!(q!==void 0&&q.length===0),A=fe(r=>r.drafts[e]??""),$=fe(r=>r.setDraft),[K,W]=h.useState([]),[F,ie]=h.useState(!1),[Z,ee]=h.useState(!1),I=h.useRef(null),T=h.useRef(null),[E,j]=h.useState(!1),[R,V]=h.useState(0),ce=Sn(Tn.chat(e)),_e=fe(r=>r.pendingFeedback[e]),[$e,Ke]=h.useState(null),[be,oe]=h.useState(null),[zt,He]=h.useState(!1),le=h.useRef(null),de=h.useRef(null),[Ne,ge]=h.useState(!1),We=h.useRef(!1),Ft=xt();h.useEffect(()=>{if(!ce||_e===void 0)return;const r=fe.getState().consumeFeedback(e);if(!r)return;Ke(r.copy==="filled"?"Your message was filled in":"Your draft was replaced"),le.current!==null&&window.clearTimeout(le.current),le.current=window.setTimeout(()=>Ke(null),4e3);const _=I.current;_&&_.setSelectionRange(_.value.length,_.value.length),r.flash&&(He(!0),de.current!==null&&window.clearTimeout(de.current),de.current=window.setTimeout(()=>He(!1),Oi()?1e3:400))},[ce,_e,e]),h.useEffect(()=>()=>{le.current!==null&&window.clearTimeout(le.current),de.current!==null&&window.clearTimeout(de.current)},[]),h.useEffect(()=>{if(!Ne)return;const r=()=>ge(!1);return document.addEventListener("dragend",r),document.addEventListener("drop",r),()=>{document.removeEventListener("dragend",r),document.removeEventListener("drop",r)}},[Ne]);const H=(a==null?void 0:a.status)==="running",L=Cn(e),Se=ke(r=>r.lastErrorBySession[e]),Mt=ke(r=>r.compactSession),Ce=ke(r=>r.cancelCompaction),$t=ke(r=>r.clearError),Ue=!!(a!=null&&a.agentId),Kt=jr(H,F,Z),Ge=Dr({hasClient:!!o,busy:Kt,compacting:L,running:H,hasAgent:Ue,text:A,hasImages:K.length>0}),{data:Ve=[],isLoading:Ht,isError:Wt,error:Xe}=pr(e,E),{options:Ye,hiddenExtensionCount:Ut}=br(Ve,{running:H,builtinsDisabled:!Lt({running:H,compacting:L,hasAgent:Ue})}),Je=Me(A),xe=Je?Ct(Ye,Je.name):Ye,Gt=[...Ae,...Ve].map(r=>r.name),ae=Cr(A,Gt),Qe=L?wn((a==null?void 0:a.timeline.rows)??[]):void 0,Vt=Qe?gt(Qe):"Compacting context…";async function Ze(r){if(r.type.startsWith("image/"))try{const _=await vr(r);W(k=>[...k,_])}catch{}}function Xt(r){for(const _ of r.target.files??[])Ze(_);r.target.value=""}function Yt(r){if(!L){for(const _ of r.clipboardData.items)if(_.type.startsWith("image/")){r.preventDefault();const k=_.getAsFile();k&&Ze(k)}}}function Jt(r){W(_=>_.filter((k,C)=>C!==r))}function et(r,_){$(e,_),re(r),Se&&$t(e),be&&oe(null);const k=yr(_);k!==E&&j(k),k&&V(0)}function Qt(r){et(r.target,r.target.value)}function Zt(r){return!L&&rt(r.dataTransfer.types)}function tt(r){Zt(r)&&(r.preventDefault(),r.dataTransfer.dropEffect="copy",ge(!0))}function en(r){r.currentTarget.contains(r.relatedTarget)||ge(!1)}function tn(r,_){r.focus(),r.setSelectionRange(_.start,_.end);const k=r.value;let C=!1;try{C=document.execCommand("insertText",!1,_.insert)&&r.value!==k}catch{C=!1}C||(r.setRangeText(_.insert,_.start,_.end,"end"),et(r,r.value)),r.setSelectionRange(_.caret,_.caret),s!==null&&vt.getState().focusPane(n,s)}function nn(r){const{types:_}=r.dataTransfer;if(!rt(_)||(ge(!1),L))return;r.preventDefault();const k=I.current;if(!k)return;const C=Ar({refValue:En(_,P=>r.dataTransfer.getData(P)),compacting:L,root:Tr((a==null?void 0:a.cwd)??"",Ft),text:k.value,selStart:k.selectionStart,selEnd:k.selectionEnd,neverFocused:!We.current});C.kind==="refuse"?oe("Not inside this workspace"):C.kind==="insert"&&tn(k,C.plan)}function sn(r){if(L){r.key==="Escape"&&(r.preventDefault(),Ce(e));return}if(!E&&ae&&r.key==="Backspace"){const _=r.currentTarget,k=_.selectionStart;if(k!==null&&k===_.selectionEnd){const C=ae.end+(A[ae.end]===" "?1:0);if(k>0&&k<=C){r.preventDefault();const P=A.slice(C);$(e,P),_.setSelectionRange(0,0),re(_);return}}}if(E&&xe.length>0){if(r.key==="ArrowDown"||r.key==="ArrowUp"){r.preventDefault(),V(_=>Nr(_,r.key==="ArrowDown"?1:-1,xe.length));return}if(r.key==="Enter"&&!r.shiftKey||r.key==="Tab"){r.preventDefault();const _=xe[R];_&&!_.disabled&&nt(_.value);return}}if(E&&r.key==="Escape"){r.preventDefault(),j(!1);return}r.key==="Enter"&&!r.shiftKey&&(r.preventDefault(),st(H?"steer":"send"))}function nt(r){const _=Sr(A,r);$(e,_),j(!1),V(0);const k=I.current;k&&(k.focus(),k.setSelectionRange(_.length,_.length),re(k))}async function st(r){if(!o||!a||(r==="steer"?Z:F)||r==="steer"&&!a.agentId)return;const _=A.trim();if(!_&&K.length===0||!Ge)return;const k=At(_);if(k){j(!1),$(e,""),I.current&&re(I.current);const Y=await Mt(e,k.args);wr(Y,fe.getState().drafts[e]??"")&&($(e,A),I.current&&re(I.current));return}$(e,""),j(!1),I.current&&re(I.current);const C=K;W([]);const P=_||"Describe this image",ue=C.length>0?C.map(Y=>({mimeType:Y.mimeType,data:Y.data})):void 0,me=Bn();i(e,me,P,ue,r==="steer");const at=r==="steer"?ee:ie;at(!0);try{if(r==="steer"){const Y=await o.agent(a.agentId).steer(P,{clientMessageId:me,images:ue});Li(Y)&&c(e,me)}else{a.agentId||l(e,a.cwd||"~");const Y=await ve(o,e);await o.agent(Y).send(P,{clientMessageId:me,images:ue})}}catch{c(e,me)}finally{at(!1)}}function on(){a!=null&&a.agentId&&(L?Ce(e):o==null||o.agent(a.agentId).interrupt())}function an(r,_){const k={model:a==null?void 0:a.model,provider:a==null?void 0:a.modelProvider};m(e,r,_),oe(null),!(!o||!_)&&(async()=>{const C=await ve(o,e);await o.agent(C).setModel(_,r)})().catch(C=>{const P=M.getState().sessions[e];(P==null?void 0:P.model)===r&&P.modelProvider===_&&m(e,k.model,k.provider);const ue=C instanceof Error?C.message:String(C);oe(`Couldn't switch model: ${ue}`)})}function rn(r){const _=a==null?void 0:a.thinkingLevel;u(e,r),oe(null),o&&(async()=>{const k=await ve(o,e),C=await o.agent(k).setThinking(r);u(e,C.level)})().catch(k=>{var P;((P=M.getState().sessions[e])==null?void 0:P.thinkingLevel)===r&&u(e,_);const C=k instanceof Error?k.message:String(k);oe(`Couldn't set thinking level: ${C}`)})}return t.jsxs("div",{className:S.composer,children:[t.jsxs("div",{className:w(S.card,zt&&S.flash,L&&S.compacting,Ne&&!L&&S.dropTarget),...Dn(),onDragEnter:tt,onDragOver:tt,onDragLeave:en,onDrop:nn,children:[t.jsxs("div",{className:S.textareaWrap,children:[t.jsx("div",{className:S.highlightLayer,"aria-hidden":!0,children:ae?t.jsxs(t.Fragment,{children:[t.jsx("mark",{className:S.commandMark,children:A.slice(0,ae.end)}),A.slice(ae.end)]}):A}),t.jsx(_t,{ref:I,className:S.textarea,rows:1,value:A,readOnly:L,placeholder:L?"Compacting context… esc cancel":H?"Steer the running turn… ⏎ steer · ⇧⏎ newline":"Ask anything… ⏎ send · ⇧⏎ newline · / commands",onChange:Qt,onFocus:()=>{We.current=!0},onKeyDown:sn,onPaste:Yt,"data-session-id":e})]}),t.jsx(kr,{images:K,onRemove:Jt}),t.jsxs("div",{className:S.toolbar,children:[t.jsx(z,{className:S.toolBtn,variant:"ghost",size:"sm",iconOnly:!0,title:"Attach image","aria-label":"Attach image",disabled:L,onClick:()=>{var r;return(r=T.current)==null?void 0:r.click()},children:t.jsx(Gn,{size:16})}),t.jsx(oi,{open:E&&!L,onOpenChange:j,options:xe,highlightedIndex:R,onSelect:nt,isLoading:Ht,isError:Wt,errorMessage:Xe instanceof Error?Xe.message:void 0,hiddenExtensionCount:Ut,renderTrigger:()=>t.jsx(z,{className:S.toolBtn,variant:"ghost",size:"sm",iconOnly:!0,disabled:L,title:"Slash commands","aria-label":"Slash commands",children:t.jsx(Vn,{size:16})})}),t.jsxs("div",{className:S.toolbarRight,children:[t.jsx(ii,{currentModel:a==null?void 0:a.model,currentModelProvider:a==null?void 0:a.modelProvider,provider:"pi",agentId:a==null?void 0:a.agentId,onSelect:an,renderTrigger:(r,_)=>{const k=_!==void 0&&_!==r;return t.jsxs("button",{type:"button",className:S.modelBtn,disabled:!o,title:r?`Model: ${_??r}${k?` (${r})`:""}`:"Select model",children:[t.jsx(Xn,{size:14,"aria-hidden":"true"}),t.jsx("span",{className:S.modelLabel,children:_??r??"Model"}),k&&t.jsxs("span",{className:S.modelId,children:["(",r,")"]}),t.jsx(lt,{size:13,className:S.modelChevron,"aria-hidden":"true"})]})}}),B&&t.jsx(ci,{currentLevel:a==null?void 0:a.thinkingLevel,levels:N,open:d,onOpenChange:x,onSelect:rn,renderTrigger:r=>t.jsxs("button",{type:"button",className:S.modelBtn,disabled:!o,title:r?`Thinking: ${r}`:"Thinking level",children:[t.jsx(yt,{size:14,"aria-hidden":"true"}),t.jsx("span",{className:S.modelLabel,children:r??"Thinking"}),t.jsx(lt,{size:13,className:S.modelChevron,"aria-hidden":"true"})]})}),(H||L)&&t.jsx(z,{className:S.roundBtn,variant:"destructive",size:"sm",iconOnly:!0,title:L?"Cancel the compaction":"Stop the running turn","aria-label":"Stop",onClick:on,children:t.jsx(Yn,{size:14})}),t.jsx(z,{className:S.roundBtn,size:"sm",iconOnly:!0,disabled:!Ge,title:H?"Steer the running turn":"Send","aria-label":H?"Steer":"Send",onClick:()=>void st(H?"steer":"send"),children:H?t.jsx(Jn,{size:16}):t.jsx(Qn,{size:18})})]})]})]}),t.jsx("div",{role:"status",children:L&&t.jsxs("div",{className:S.compactStatus,children:[t.jsx(ne,{size:"xs","aria-label":"Compacting"}),t.jsx("span",{className:S.compactStatusText,children:Vt}),t.jsx("button",{type:"button",className:S.compactCancel,title:"Cancel the compaction (Esc)",onClick:()=>void Ce(e),children:"Cancel"})]})}),$e!==null&&t.jsx("div",{className:S.note,children:$e}),Se&&t.jsx("div",{role:"alert",className:S.inlineError,children:Se}),be&&t.jsx("div",{role:"alert",className:S.inlineError,children:be}),t.jsx("input",{ref:T,className:S.hiddenFileInput,type:"file",accept:"image/*",multiple:!0,onChange:Xt})]})}const Pi=5;function Ot(e){return e.toSorted((n,s)=>n.id-s.id)}function qi(e){return{done:e.filter(n=>n.status==="completed").length,total:e.length}}function It(e){return Ot(e).find(n=>n.status==="in_progress")}function Pt(e){return e.status==="in_progress"&&e.activeForm?e.activeForm:e.subject}function zi(e){const n=It(e);return n?Pt(n):void 0}function Fi(e){var n;if(!(e.status==="completed"||!((n=e.blockedBy)!=null&&n.length)))return`blocked by ${e.blockedBy.map(s=>`#${s}`).join(", ")}`}function Mi(e){return!!e.description||!!e.owner}function $i(e,n=Pi){const s=Ot(e),o=s.filter(l=>l.status==="completed"),a=o.length>n,i=[];let c=!1;return s.forEach((l,m)=>{if(a&&l.status==="completed"){c||(c=!0,i.push({kind:"completed-group",count:o.length,tasks:o,key:`group-${l.id}-${m}`}));return}i.push({kind:"task",task:l,key:`${l.id}-${m}`})}),i}const Ki="_panel_3trtd_5",Hi="_header_3trtd_18",Wi="_rowButton_3trtd_35",Ui="_chevron_3trtd_40",Gi="_chevronOpen_3trtd_46",Vi="_label_3trtd_50",Xi="_count_3trtd_55",Yi="_summary_3trtd_60",Ji="_body_3trtd_69",Qi="_row_3trtd_35",Zi="_rowStatic_3trtd_85",ec="_icon_3trtd_102",tc="_iconInProgress_3trtd_111",nc="_iconCompleted_3trtd_115",sc="_iconPending_3trtd_119",oc="_text_3trtd_123",ac="_textCompleted_3trtd_135",rc="_id_3trtd_140",ic="_blocked_3trtd_146",cc="_details_3trtd_157",lc="_footer_3trtd_166",dc="_nested_3trtd_180",y={panel:Ki,header:Hi,rowButton:Wi,chevron:Ui,chevronOpen:Gi,label:Vi,count:Xi,summary:Yi,body:Ji,row:Qi,rowStatic:Zi,icon:ec,iconInProgress:tc,iconCompleted:nc,iconPending:sc,text:oc,textCompleted:ac,id:rc,blocked:ic,details:cc,footer:lc,nested:dc};function uc({status:e}){return e==="in_progress"?t.jsx("span",{className:`${y.icon} ${y.iconInProgress}`,children:t.jsx(ne,{size:14,"aria-label":"In progress"})}):e==="completed"?t.jsx("span",{className:`${y.icon} ${y.iconCompleted}`,children:t.jsx(O,{icon:pe,size:"sm","aria-label":"Completed"})}):t.jsx("span",{className:`${y.icon} ${y.iconPending}`,children:t.jsx(O,{icon:Zn,size:"sm","aria-label":"Pending"})})}function qt({task:e}){const[n,s]=h.useState(!1),o=Fi(e),a=Mi(e),i=t.jsxs(t.Fragment,{children:[t.jsx(uc,{status:e.status}),t.jsx("span",{className:`${y.text} ${e.status==="completed"?y.textCompleted:""}`,children:Pt(e)}),o&&t.jsx("span",{className:y.blocked,children:o}),t.jsxs("span",{className:y.id,children:["#",e.id]}),a&&t.jsx("span",{className:`${y.chevron} ${n?y.chevronOpen:""}`,children:t.jsx(O,{icon:he,size:"xs","aria-hidden":!0})})]});return t.jsxs("li",{className:y.row,"data-status":e.status,"data-task-id":e.id,children:[a?t.jsx("button",{type:"button",className:y.rowButton,"aria-expanded":n,onClick:()=>s(c=>!c),children:i}):t.jsx("div",{className:y.rowStatic,children:i}),n&&t.jsxs("p",{className:y.details,children:[e.description,e.description&&e.owner?`
|
|
11
|
+
`:"",e.owner?`Owner: ${e.owner}`:""]})]})}function mc({tasks:e}){const[n,s]=h.useState(!1);return t.jsxs("li",{className:y.row,children:[t.jsxs("button",{type:"button",className:y.rowButton,"aria-expanded":n,onClick:()=>s(o=>!o),children:[t.jsx("span",{className:`${y.icon} ${y.iconCompleted}`,children:t.jsx(O,{icon:pe,size:"sm","aria-hidden":!0})}),t.jsxs("span",{className:y.text,children:[e.length," completed"]}),t.jsx("span",{className:`${y.chevron} ${n?y.chevronOpen:""}`,children:t.jsx(O,{icon:he,size:"xs","aria-hidden":!0})})]}),n&&t.jsx("ol",{className:y.nested,children:e.map((o,a)=>t.jsx(qt,{task:o},`${o.id}-${a}`))})]})}function fc({agentId:e}){var f;const n=Rn(e),s=An(e),o=h.useId(),a=h.useRef(null);h.useEffect(()=>{if(e)return it.getState().track(e)},[e]);const i=n==null?void 0:n.tasks,c=i?(f=It(i))==null?void 0:f.id:void 0;if(h.useEffect(()=>{const d=a.current;if(!d||c===void 0||s)return;const x=d.querySelector(`[data-task-id="${c}"][data-status="in_progress"]`);if(!x)return;const D=x.offsetTop-d.offsetTop;(D<d.scrollTop||D+x.offsetHeight>d.scrollTop+d.clientHeight)&&(d.scrollTop=D-(d.clientHeight-x.offsetHeight)/2)},[c,s]),!e||!n||n.tasks.length===0)return null;const{done:l,total:m}=qi(n.tasks),u=s?zi(n.tasks):void 0;return t.jsxs("section",{className:y.panel,role:"region","aria-label":"Agent todos",children:[t.jsxs("button",{type:"button",className:y.header,"aria-expanded":!s,"aria-controls":o,onClick:()=>it.getState().setCollapsed(e,!s),children:[t.jsx("span",{className:`${y.chevron} ${s?"":y.chevronOpen}`,children:t.jsx(O,{icon:he,size:"sm","aria-hidden":!0})}),t.jsx("span",{className:y.label,children:"Todos"}),t.jsxs("span",{className:y.count,children:[l,"/",m]}),u&&t.jsx("span",{className:y.summary,children:u})]}),!s&&t.jsx("ol",{id:o,ref:a,className:y.body,children:$i(n.tasks).map(d=>d.kind==="task"?t.jsx(qt,{task:d.task},d.key):t.jsx(mc,{tasks:d.tasks},d.key))}),!s&&n.truncated&&t.jsxs("div",{className:y.footer,children:["Showing first ",Ln," tasks"]})]})}const pc="_track_oxvl6_2",hc="_sweep_oxvl6_24",_c="_visuallyHidden_oxvl6_64",Ee={track:pc,sweep:hc,visuallyHidden:_c};function gc({running:e}){return e?t.jsxs("div",{className:Ee.track,role:"progressbar","aria-label":"Turn in progress",children:[t.jsx("div",{className:Ee.sweep,"aria-hidden":"true"}),t.jsx("span",{className:Ee.visuallyHidden,role:"status","aria-live":"polite",children:"Agent is working…"})]}):null}const xc="_panel_1tq06_1",kc="_empty_1tq06_5",ht={panel:xc,empty:kc};function Lc({tab:e,owningPaneId:n}){const{sessionId:s}=e.data,o=M(a=>a.sessions[s]);return hs(s),o?t.jsxs(ct,{className:ht.panel,children:[t.jsx(gc,{running:o.status==="running"}),t.jsx(fr,{session:o,owningPaneId:n,workspaceCwd:e.workspaceCwd}),t.jsx(fc,{agentId:o.agentId}),t.jsx(Ii,{sessionId:o.id,workspaceCwd:e.workspaceCwd,owningPaneId:n})]}):t.jsx(ct,{children:t.jsx("div",{className:ht.empty,children:"Session not found."})})}export{Lc as ChatPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var L=Object.defineProperty;var w=(r,t,e)=>t in r?L(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var a=(r,t,e)=>w(r,typeof t!="symbol"?t+"":t,e);import{u as g}from"./vendor-query-CDNPrdQ8.js";import{u as p,r as m}from"./index-DjRqFIN0.js";import{u as y}from"./use-file-download-FoQrf961.js";import{j as c,r as u}from"./vendor-react-Dka9ZH0B.js";import{Q as x,S as h,T as k,U as F,V as _,W as B}from"./vendor-z183l2lP.js";function S(r){const{maxDisplayBytes:t,inline:e,streamed:n}=r;if(e.isLoading)return{kind:"loading"};if(e.tooLarge){const{size:o}=e.tooLarge;return o>t?{kind:"too-large",size:o,maxDisplayBytes:t}:n.isLoading?{kind:"streaming",size:o}:n.isError?{kind:"stream-error",size:o,message:n.errorMessage??"stream failed"}:n.content!==null?{kind:"streamed",size:o,content:n.content}:{kind:"loading"}}return e.isError?{kind:"error",message:e.errorMessage??"unknown error"}:e.content!==null?{kind:"inline",content:e.content}:{kind:"loading"}}class E extends Error{constructor(e,n){super("file_too_large");a(this,"size");a(this,"maxBytes");this.name="FileTooLargeError",this.size=e,this.maxBytes=n}}function z(r){if(!r.ok)throw r.error==="file_too_large"?new E(r.size??0,r.maxBytes):new Error(r.error??"file read failed");return{content:r.content??"",size:r.size??0}}function b(r,t=!0){const e=p(n=>n.client);return g({queryKey:m.fileRead(r),queryFn:async()=>{if(!e)throw new Error("not connected");const n=await e.connection.request("file_read_request",{path:r});return z(n)},enabled:!!e&&!!r&&t})}function j(r){const{enabled:t,download:e,decode:n}=r;return{isLoading:t&&(e.isLoading||e.hasObjectUrl&&n.isLoading),isError:e.isError||n.isError,error:e.isError?e.error:n.error,data:n.data}}function T(r,t=!0){var i;const e=y(r,t),n=(i=e.data)==null?void 0:i.objectUrl,o=g({queryKey:m.fileText(r,n??null),queryFn:async()=>({content:await(await fetch(n)).text()}),enabled:t&&!!n});return j({enabled:t,download:{isLoading:e.isLoading,isError:e.isError,error:e.error,hasObjectUrl:!!n},decode:{isLoading:o.isLoading,isError:o.isError,error:o.error,data:o.data}})}const d=30*1024*1024;function A(r,t=!0){var s,l;const e=b(r,t),n=e.error instanceof E?e.error:null,o=n!==null&&n.size<=d,i=T(r,t&&o);return S({maxDisplayBytes:d,inline:{isLoading:e.isLoading,isError:e.isError,tooLarge:n?{size:n.size}:null,errorMessage:e.error instanceof Error?e.error.message:null,content:((s=e.data)==null?void 0:s.content)??null},streamed:{isLoading:i.isLoading,isError:i.isError,errorMessage:i.error instanceof Error?i.error.message:null,content:((l=i.data)==null?void 0:l.content)??null}})}const M="_wrap_1feu3_1",q={wrap:M},f=new Map;function D(r){const[t,e]=u.useState(null);return u.useEffect(()=>{const n=_.matchFilename(B,r);if(!n){e(null);return}const o=f.get(n.name);if(o){e(o);return}let i=!1;return e(null),n.load().then(s=>{f.set(n.name,s),i||e(s)}),()=>{i=!0}},[r]),t?[t]:[]}function O({path:r,content:t}){const e=D(r),n=[x.lineWrapping,h(),...e];return c.jsx("div",{className:q.wrap,children:c.jsx(k,{value:t,theme:F,extensions:n,editable:!1,readOnly:!0,basicSetup:{highlightActiveLine:!1,foldGutter:!1,searchKeymap:!1},height:"100%"})})}export{O as C,A as u};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as d}from"./vendor-react-
|
|
1
|
+
import{j as d}from"./vendor-react-Dka9ZH0B.js";import{N as f}from"./vendor-z183l2lP.js";const h="_diffView_1qgdn_1",u="_hunkHeader_1qgdn_7",_="_line_1qgdn_14",x="_add_1qgdn_19",p="_del_1qgdn_23",m="_ctx_1qgdn_27",k="_ln_1qgdn_30",i={diffView:h,hunkHeader:u,line:_,add:x,del:p,ctx:m,ln:k},N=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/;function g(a){const r=a.split(`
|
|
2
2
|
`),n=[];let e=0,s=0;for(const t of r){if(t.startsWith("diff --git")){n.push({kind:"hunk-header",text:t});continue}if(!(t.startsWith("index ")||t.startsWith("---")||t.startsWith("+++"))){if(t.startsWith("@@")){const c=N.exec(t);if(c){const l=c[1],o=c[2];e=(l?parseInt(l,10):1)-1,s=(o?parseInt(o,10):1)-1}n.push({kind:"hunk-header",text:t});continue}t.startsWith("+")?(s++,n.push({kind:"add",text:t,lineNumber:s})):t.startsWith("-")?(e++,n.push({kind:"del",text:t,lineNumber:e})):(e++,s++,n.push({kind:"ctx",text:t,lineNumber:s}))}}return n}function j({patch:a}){const r=g(a);return d.jsx("div",{className:i.diffView,children:r.map((n,e)=>n.kind==="hunk-header"?d.jsx("div",{className:i.hunkHeader,children:n.text},e):d.jsxs("div",{className:f(i.line,i[n.kind]),children:[d.jsx("span",{className:i.ln,children:n.lineNumber??""}),n.text]},e))})}export{j as D,g as p};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as d,j as s}from"./vendor-react-Dka9ZH0B.js";import{N as _}from"./vendor-z183l2lP.js";import{u as j,r as f,L as w,a as E,f as D,V as K,P as N,B as x,E as l,S as y,i as S}from"./index-DjRqFIN0.js";import{u as b,a as k}from"./vendor-query-CDNPrdQ8.js";import{u as q}from"./use-file-watch-Th-A-3Ws.js";import{D as z}from"./DiffView-Bp1YwIcs.js";import"./vendor-icons-CSCeICuX.js";import"./vendor-overlays-DjMT65Ip.js";import"./vendor-dnd-vJGfGIIi.js";import"./vendor-pdfjs-BSchhGel.js";function V(e,t,n,i=!0){const a=j(r=>r.client);return b({queryKey:f.fileDiff(e,t,n),queryFn:async()=>{if(!a)throw new Error("not connected");return{patch:(await a.connection.request("file_diff_request",{path:e,cwd:t,staged:n})).patch??""}},enabled:!!a&&!!e&&!!t&&i})}function B(e,t,n){const i=k(),a=w.has(n)?E(e,t):null,{changedAt:r}=q(a);d.useEffect(()=>{r!==null&&(i.invalidateQueries({queryKey:f.fileRead(e)}),i.invalidateQueries({queryKey:f.fileDownload(e)}),i.invalidateQueries({queryKey:f.fileDiffByPath(e)}))},[r,e,i])}const C="_header_10rse_1",F="_path_10rse_11",L="_size_10rse_18",P="_viewToggle_10rse_23",Q="_body_10rse_28",c={header:C,path:F,size:L,viewToggle:P,body:Q};function g(e){return"path"in e}function R(e){return"staged"in e}function U({tab:e}){var m;const t=e.kind==="diff",n=e.data,i=g(n)?n.path:"",a=g(n)&&R(n)?n.staged:!1,[r,h]=d.useState(t?"diff":"file"),u=e.workspaceCwd||"~",[p]=d.useState(()=>D(i,S));B(i,u,p);const o=V(i,u,a,r==="diff"),v=K[p];return s.jsxs(N,{children:[s.jsxs("div",{className:c.header,children:[s.jsx("span",{className:c.path,children:i}),s.jsx("span",{className:c.size,children:r==="diff"?a?"staged":"unstaged":null}),s.jsxs("div",{className:c.viewToggle,children:[s.jsx(x,{size:"xs",variant:r==="file"?"default":"ghost",onClick:()=>h("file"),children:"File"}),s.jsx(x,{size:"xs",variant:r==="diff"?"default":"ghost",onClick:()=>h("diff"),children:"Diff"})]})]}),s.jsx("div",{className:_(c.body,"file-body"),children:r==="file"?s.jsx(d.Suspense,{fallback:s.jsxs(l,{children:[s.jsx(y,{size:"sm"})," Loading..."]}),children:s.jsx(v,{path:i,workspaceCwd:u})}):o.isLoading?s.jsxs(l,{children:[s.jsx(y,{size:"sm"})," Loading diff..."]}):o.isError?s.jsxs(l,{children:["Error: ",o.error instanceof Error?o.error.message:"unknown error"]}):(m=o.data)!=null&&m.patch?s.jsx(z,{patch:o.data.patch}):s.jsx(l,{style:{padding:"var(--pi-spacing-30)"},children:"No changes (file matches HEAD)"})})]})}export{U as FilePanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as v,j as i}from"./vendor-react-Dka9ZH0B.js";import{a as ie,u as ae}from"./vendor-query-CDNPrdQ8.js";import{n as ce,a as G,c as le,e as X,u as F,s as ue,E as A,S as z,B as P,r as T,t as de}from"./index-DjRqFIN0.js";import{u as fe,C as me}from"./CodeView-DBvTM0BW.js";import{p as pe,S as he}from"./href-resolution-A_PcAhnr.js";import{S as ge}from"./SaveFileButton-469govDl.js";import{S as xe}from"./Switch-DvBJf8Rd.js";import"./vendor-z183l2lP.js";import"./vendor-icons-CSCeICuX.js";import"./vendor-overlays-DjMT65Ip.js";import"./vendor-dnd-vJGfGIIi.js";import"./vendor-pdfjs-BSchhGel.js";import"./use-file-download-FoQrf961.js";const I={maxCount:64,maxBytesPerAsset:2*1024*1024,maxBytesTotal:16*1024*1024};function K(s,t,e){return!(s>=I.maxCount||e>I.maxBytesPerAsset||t+e>I.maxBytesTotal)}function Y(s){return s===""||s.startsWith("#")?"unsupported":s.startsWith("//")||he.test(s)?"external":null}function we(s,t,e){return e!==null&&t===e?s:t}function J(s,t,e,n,r=null){const o=s.trim(),l=Y(o);if(l)return{kind:"skip",raw:s,reason:l};const a=pe(o);let p;if(a.startsWith("/")?p=a:a==="~"||a.startsWith("~/")?p=r!==null?ce(a,r):null:p=G(a,t),!p)return{kind:"skip",raw:s,reason:"unsupported"};const h=le(p);return h!==e&&!h.startsWith(`${e}/`)?{kind:"skip",raw:s,reason:"outside-workspace"}:{kind:"local",raw:s,path:h,context:n}}const _e={css:"text/css",js:"text/javascript",mjs:"text/javascript",html:"text/html",htm:"text/html",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",ico:"image/x-icon",bmp:"image/bmp",avif:"image/avif",mp4:"video/mp4",webm:"video/webm",mov:"video/quicktime",m4v:"video/x-m4v",ogv:"video/ogg",mp3:"audio/mpeg",wav:"audio/wav",oga:"audio/ogg",ogg:"audio/ogg",m4a:"audio/mp4",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf",eot:"application/vnd.ms-fontobject"};function ve(s){const t=s.lastIndexOf("/"),e=s.lastIndexOf(".");return e<=t?"application/octet-stream":_e[s.slice(e+1).toLowerCase()]??"application/octet-stream"}function ye(s){let t="";for(let n=0;n<s.length;n+=32768)t+=String.fromCharCode(...s.subarray(n,n+32768));return btoa(t)}function q(s,t){return`data:${s};base64,${ye(t)}`}const B=/<([a-zA-Z][a-zA-Z0-9]*)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s"'=<>`]+))?)*)(\s*\/?>)/g,O=/([a-zA-Z_:][-a-zA-Z0-9_:.]*)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'=<>`]+))/g;function ee(s){const t=new Map;O.lastIndex=0;let e;for(;e=O.exec(s);){const n=e[1].toLowerCase();t.has(n)||t.set(n,e[2]??e[3]??e[4]??"")}return t}function te(s,t){switch(s){case"link":{const e=t.get("rel")??"";return/(^|\s)stylesheet(\s|$)/i.test(e)?t.has("href")?[{name:"href",context:"style",multi:!1}]:[]:[]}case"script":return t.has("src")?[{name:"src",context:"script",multi:!1}]:[];case"img":{const e=[];return t.has("src")&&e.push({name:"src",context:"image",multi:!1}),t.has("srcset")&&e.push({name:"srcset",context:"image",multi:!0}),e}case"source":{const e=[];return t.has("src")&&e.push({name:"src",context:"media",multi:!1}),t.has("srcset")&&e.push({name:"srcset",context:"media",multi:!0}),e}case"video":{const e=[];return t.has("src")&&e.push({name:"src",context:"media",multi:!1}),t.has("poster")&&e.push({name:"poster",context:"media",multi:!1}),e}case"audio":return t.has("src")?[{name:"src",context:"media",multi:!1}]:[];default:return[]}}function se(s){return s.split(",").map(t=>t.trim()).filter(t=>t!=="").map(t=>{const e=t.search(/\s/);return e===-1?{url:t,descriptor:""}:{url:t.slice(0,e),descriptor:t.slice(e).trim()}})}function ke(s){return s.map(t=>t.descriptor?`${t.url} ${t.descriptor}`:t.url).join(", ")}function $(s,t,e){Y(t.trim())||s.has(t)||s.set(t,{raw:t,context:e})}function be(s){const t=new Map;B.lastIndex=0;let e;for(;e=B.exec(s);){const n=e[1].toLowerCase(),r=ee(e[2]??"");for(const o of te(n,r)){const l=r.get(o.name)??"";if(o.multi)for(const a of se(l))$(t,a.url,o.context);else $(t,l,o.context)}}return[...t.values()]}function je(s,t){let e=!1;const n=se(s).map(r=>{const o=t[r.url];return o===void 0?r:(e=!0,{url:o,descriptor:r.descriptor})});return e?ke(n):null}function Se(s,t){return Object.keys(t).length===0?s:(B.lastIndex=0,s.replace(B,(e,n,r,o)=>{const l=ee(r),a=te(n.toLowerCase(),l);if(a.length===0)return e;const p=new Map(a.map(d=>[d.name,d]));let h=!1;const E=r.replace(O,(d,f,c,w,y)=>{const _=p.get(f.toLowerCase());if(!_)return d;const g=c??w??y??"",j=_.multi?je(g,t):t[g]??null;return j===null?d:(h=!0,`${f}="${j}"`)});return h?`<${n}${E}${o}`:e}))}const M=/url\(\s*(?:"([^"]*)"|'([^']*)'|([^'")\s]*))\s*\)/gi,V=/@font-face\s*\{[^}]*\}/gi;function ne(s,t,e){return s??t??e??""}function Ee(s){const t=[];V.lastIndex=0;let e;for(;e=V.exec(s);)t.push([e.index,e.index+e[0].length]);return t}function Le(s){const t=Ee(s),e=new Map;M.lastIndex=0;let n;for(;n=M.exec(s);){const r=ne(n[1],n[2],n[3]),o=t.some(([l,a])=>n.index>=l&&n.index<a)?"font":"image";$(e,r,o)}return[...e.values()]}function Ae(s,t){return Object.keys(t).length===0?s:(M.lastIndex=0,s.replace(M,(e,n,r,o)=>{const l=t[ne(n,r,o)];return l===void 0?e:`url("${l}")`}))}const Ce=Object.freeze(["allow-scripts"]),Ne="https://pi-studio-preview.invalid/",Te="default-src 'none'; img-src data:; style-src 'unsafe-inline' data:; script-src 'unsafe-inline' data:; font-src data:; media-src data:",Re=`<script>(function(){document.addEventListener("click",function(e){var a=e.target&&e.target.closest&&e.target.closest('a[href^="#"]');if(!a)return;var frag=a.getAttribute("href").slice(1);e.preventDefault();if(!frag){window.scrollTo(0,0);return;}var el=document.getElementById(frag)||document.getElementsByName(frag)[0];if(el)el.scrollIntoView();},true);})();<\/script>`,Be=/<head(\s[^>]*)?>/i,Me=/<html(\s[^>]*)?>/i,ze=/<base[\s/>]/i;function Pe(s,t){const e=Se(s,t.assets??{}),n=[];t.blockRemote&&n.push(`<meta http-equiv="Content-Security-Policy" content="${Te}">`),ze.test(e)||(n.push(`<base href="${Ne}">`),n.push(Re));const r=n.join("");if(r==="")return e;const o=Be.exec(e);if(o){const a=o.index+o[0].length;return e.slice(0,a)+r+e.slice(a)}const l=Me.exec(e);if(l){const a=l.index+l[0].length;return e.slice(0,a)+`<head>${r}</head>`+e.slice(a)}return`<head>${r}</head>`+e}const W=6;async function Q(s,t,e){let n=0;async function r(){for(;n<s.length;){const o=s[n];n+=1,await e(o)}}await Promise.all(Array.from({length:Math.min(t,s.length)},r))}function U(s){const t=new Map;for(const e of s){const n=t.get(e.path);n?n.push(e):t.set(e.path,[e])}return t}async function Ie(s,t){const e={},n=[];let r=0,o=0,l=!1;const a=[];for(const d of s)d.kind==="skip"?n.push({raw:d.raw,reason:d.reason}):a.push(d);function p(d,f){for(const c of d)n.push({raw:c.raw,reason:f})}async function h(d,f){if(l){p(f,"over-cap");return}let c;try{c=await t.fetchBytes(d)}catch{p(f,"fetch-failed");return}if(!K(r,o,c.byteLength)){l=!0,p(f,"over-cap");return}if(r+=1,o+=c.byteLength,f[0].context!=="style"){const m=q(ve(d),c);for(const b of f)e[b.raw]=m;return}const w=new TextDecoder().decode(c),y=X(d),_=Le(w).map(m=>J(m.raw,y,t.root,m.context,t.homeDir)),g=[];for(const m of _)m.kind==="skip"?n.push({raw:m.raw,reason:m.reason}):g.push(m);const j=U(g);await Q([...j.entries()],W,([m,b])=>h(m,b));const C={};for(const m of g){const b=e[m.raw];b!==void 0&&(C[m.raw]=b)}const L=Ae(w,C),S=new TextEncoder().encode(L),k=S.byteLength-c.byteLength;if(k>0&&!K(r-1,o-c.byteLength,S.byteLength)){l=!0,p(f,"over-cap");return}o+=k;const N=q("text/css",S);for(const m of f)e[m.raw]=N}const E=U(a);return await Q([...E.entries()],W,([d,f])=>h(d,f)),{assets:e,skipped:n}}const Oe="_wrap_1et27_1",$e="_toolbar_1et27_7",He="_modeToggle_1et27_20",De="_controls_1et27_24",Fe="_switchLabel_1et27_29",Ke="_streamedNote_1et27_37",qe="_skippedNote_1et27_45",Ve="_skippedToggle_1et27_52",We="_skippedList_1et27_64",Qe="_body_1et27_69",Ue="_frame_1et27_73",Ze="_tooLarge_1et27_79",x={wrap:Oe,toolbar:$e,modeToggle:He,controls:De,switchLabel:Fe,streamedNote:Ke,skippedNote:qe,skippedToggle:Ve,skippedList:We,body:Qe,frame:Ue,tooLarge:Ze},Ge=Ce.join(" "),Z=Object.freeze({}),Xe=Object.freeze([]),oe={external:"external","outside-workspace":"outside workspace",unsupported:"unsupported","over-cap":"over cap","fetch-failed":"not found"};function Ye(s){const t=new Map;for(const e of s){const n=oe[e.reason];t.set(n,(t.get(n)??0)+1)}return[...t.entries()].map(([e,n])=>`${n} ${e}`).join(", ")}function Je(s){let t=2166136261;for(let e=0;e<s.length;e++)t^=s.charCodeAt(e),t=Math.imul(t,16777619);return(t>>>0).toString(16)}function R(s){return`${(s/(1024*1024)).toFixed(1)} MB`}function pt({path:s,workspaceCwd:t}){var H,D;const e=fe(s),[n,r]=v.useState("preview"),[o,l]=v.useState(!1),[a,p]=v.useState(!1),h=ie(),E=F(u=>u.client),d=F(u=>u.daemon),f=ue(),c=e.kind==="inline"||e.kind==="streamed"?e.content:null,w=v.useMemo(()=>{const u=G(s,t);return u?X(u):null},[s,t]),y=v.useMemo(()=>w!==null?we(w,t,f):null,[w,t,f]),_=v.useMemo(()=>c===null||w===null||y===null?[]:be(c).map(u=>J(u.raw,w,y,u.context,f)),[c,w,y,f]),g=v.useMemo(()=>_.some(u=>u.kind==="local"),[_]),j=v.useMemo(()=>_.flatMap(u=>u.kind==="skip"?[{raw:u.raw,reason:u.reason}]:[]),[_]),C=v.useMemo(()=>g&&c!==null?Je(c):"",[c,g]),L=ae({queryKey:T.htmlAssetBundle(s,C),queryFn:()=>y===null?Promise.resolve({assets:{},skipped:[]}):Ie(_,{root:y,homeDir:f,fetchBytes:async re=>{if(!E||!d)throw new Error("not connected");return(await de(d).download(re)).bytes}}),enabled:g,staleTime:1/0}),S=g?((H=L.data)==null?void 0:H.assets)??Z:Z,k=g?((D=L.data)==null?void 0:D.skipped)??Xe:j,N=v.useMemo(()=>c===null?null:Pe(c,{assets:S,blockRemote:o}),[c,S,o]);function m(){h.invalidateQueries({queryKey:T.fileRead(s)}),h.invalidateQueries({queryKey:T.fileDownload(s)}),h.invalidateQueries({queryKey:T.htmlAssetBundleByPath(s)})}switch(e.kind){case"loading":return i.jsxs(A,{children:[i.jsx(z,{size:"sm"})," Loading..."]});case"streaming":return i.jsxs(A,{children:[i.jsx(z,{size:"sm"})," Streaming ",R(e.size)," file..."]});case"stream-error":case"error":return i.jsxs(A,{children:["Error: ",e.message]});case"too-large":return i.jsx(A,{children:i.jsxs("div",{className:x.tooLarge,children:[i.jsxs("div",{children:[R(e.size)," — too large to display (display ceiling is"," ",R(e.maxDisplayBytes),")."]}),i.jsx(ge,{path:s})]})})}if(c===null||N===null)return null;if(g&&L.data===void 0)return i.jsxs(A,{children:[i.jsx(z,{size:"sm"})," Loading assets..."]});const b=s.split("/").pop()||s;return i.jsxs("div",{className:x.wrap,children:[i.jsxs("div",{className:x.toolbar,children:[i.jsxs("div",{className:x.modeToggle,children:[i.jsx(P,{size:"xs",variant:n==="preview"?"default":"ghost",onClick:()=>r("preview"),children:"Preview"}),i.jsx(P,{size:"xs",variant:n==="source"?"default":"ghost",onClick:()=>r("source"),children:"Source"})]}),i.jsxs("div",{className:x.controls,children:[i.jsxs("label",{className:x.switchLabel,children:[i.jsx(xe,{checked:o,onCheckedChange:l,"aria-label":"Block remote resources"}),"Block remote resources"]}),i.jsx(P,{size:"xs",variant:"ghost",onClick:m,children:"Reload"})]})]}),e.kind==="streamed"?i.jsxs("div",{className:x.streamedNote,children:[R(e.size)," file streamed"]}):null,k.length>0?i.jsxs("div",{className:x.skippedNote,children:[i.jsxs("button",{type:"button",className:x.skippedToggle,onClick:()=>p(u=>!u),children:[k.length," reference",k.length===1?"":"s"," not inlined (",Ye(k),")"]}),a?i.jsx("ul",{className:x.skippedList,children:k.map(u=>i.jsxs("li",{children:[u.raw," — ",oe[u.reason]]},u.raw))}):null]}):null,i.jsxs("div",{className:x.body,children:[i.jsx("iframe",{sandbox:Ge,srcDoc:N,referrerPolicy:"no-referrer",allow:"",className:x.frame,style:n==="preview"?void 0:{display:"none"},title:b}),n==="source"?i.jsx(me,{path:s,content:c}):null]})]})}export{pt as HtmlViewer};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./vendor-react-Dka9ZH0B.js";import{E as i,S as t}from"./index-DjRqFIN0.js";import{u as a}from"./use-file-download-FoQrf961.js";import"./vendor-z183l2lP.js";import"./vendor-query-CDNPrdQ8.js";import"./vendor-icons-CSCeICuX.js";import"./vendor-overlays-DjMT65Ip.js";import"./vendor-dnd-vJGfGIIi.js";import"./vendor-pdfjs-BSchhGel.js";const m="_wrap_1vzo5_1",n="_image_1vzo5_15",s={wrap:m,image:n};function E({path:e,workspaceCwd:p}){const r=a(e);return r.isLoading?o.jsxs(i,{children:[o.jsx(t,{size:"sm"})," Loading image..."]}):r.isError?o.jsxs(i,{children:["Error: ",r.error instanceof Error?r.error.message:"unknown error"]}):r.data?o.jsx("div",{className:s.wrap,children:o.jsx("img",{className:s.image,src:r.data.objectUrl,alt:e.split("/").pop()||e})}):null}export{E as ImageViewer};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as d,j as e}from"./vendor-react-Dka9ZH0B.js";import{a as g,e as j,B as l,E as i,S as p}from"./index-DjRqFIN0.js";import{u as v,C as _}from"./CodeView-DBvTM0BW.js";import{M as f}from"./markdown-lfaaW_Mn.js";import{S as h}from"./SaveFileButton-469govDl.js";import"./vendor-z183l2lP.js";import"./vendor-query-CDNPrdQ8.js";import"./vendor-icons-CSCeICuX.js";import"./vendor-overlays-DjMT65Ip.js";import"./vendor-dnd-vJGfGIIi.js";import"./vendor-pdfjs-BSchhGel.js";import"./use-file-download-FoQrf961.js";import"./vendor-highlight-DaCUEPaW.js";import"./vendor-markdown-Bo-Xpsuy.js";import"./href-resolution-A_PcAhnr.js";const y="_wrap_g5iym_1",w="_toolbar_g5iym_6",N="_rendered_g5iym_17",S="_streamedNote_g5iym_21",z="_tooLarge_g5iym_29",o={wrap:y,toolbar:w,rendered:N,streamedNote:S,tooLarge:z};function a(r){return`${(r/(1024*1024)).toFixed(1)} MB`}function q({path:r,workspaceCwd:n}){const s=v(r),[m,c]=d.useState("preview"),x=d.useMemo(()=>{const t=g(r,n);return t?j(t):null},[r,n]);switch(s.kind){case"loading":return e.jsxs(i,{children:[e.jsx(p,{size:"sm"})," Loading..."]});case"streaming":return e.jsxs(i,{children:[e.jsx(p,{size:"sm"})," Streaming ",a(s.size)," file..."]});case"stream-error":case"error":return e.jsxs(i,{children:["Error: ",s.message]});case"too-large":return e.jsx(i,{children:e.jsxs("div",{className:o.tooLarge,children:[e.jsxs("div",{children:[a(s.size)," — too large to display (display ceiling is"," ",a(s.maxDisplayBytes),")."]}),e.jsx(h,{path:r})]})});case"inline":case"streamed":{const t=s.content,u=s.kind==="streamed";return e.jsxs("div",{className:o.wrap,children:[e.jsxs("div",{className:o.toolbar,children:[e.jsx(l,{size:"xs",variant:m==="preview"?"default":"ghost",onClick:()=>c("preview"),children:"Preview"}),e.jsx(l,{size:"xs",variant:m==="source"?"default":"ghost",onClick:()=>c("source"),children:"Source"})]}),u?e.jsxs("div",{className:o.streamedNote,children:[a(s.size)," file streamed"]}):null,m==="preview"?e.jsx("div",{className:o.rendered,children:e.jsx(f,{text:t,assetBase:x,workspaceCwd:n})}):e.jsx(_,{path:r,content:t})]})}}}export{q as MarkdownFileViewer};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as b,j as e}from"./vendor-react-Dka9ZH0B.js";import{a as E}from"./vendor-query-CDNPrdQ8.js";import{u as P,E as d,S as C,B as w,g as R,r as x}from"./index-DjRqFIN0.js";import{u as I}from"./use-provider-auth-list-D5pguVWm.js";import{u as y}from"./provider-auth-store-CpmUGwuu.js";import{S as p}from"./StatusBadge-eoBBn7zF.js";import"./vendor-z183l2lP.js";import"./vendor-icons-CSCeICuX.js";import"./vendor-overlays-DjMT65Ip.js";import"./vendor-dnd-vJGfGIIi.js";import"./vendor-pdfjs-BSchhGel.js";const N="env:";function M(n){var i;return n.configured==="unknown"?{label:"Unknown",variant:"warning"}:n.configured===!1?{label:"Not configured",variant:"muted"}:(i=n.configuredSource)!=null&&i.startsWith(N)?{label:`env: ${n.configuredSource.slice(N.length)}`,variant:"success"}:n.configuredType==="oauth"?{label:"OAuth",variant:"success"}:{label:"API key",variant:"success"}}function q(n){const i=n.configured===!0?"Re-login":"Log in";if(n.authTypes.length<=1){const s=n.authTypes[0]??"api_key";return[{authType:s,label:s==="oauth"?n.oauthLoginLabel??i:i}]}return n.authTypes.map(s=>s==="oauth"?{authType:s,label:n.oauthLoginLabel??"Log in with OAuth"}:{authType:s,label:"API key"})}const O="_list_vm1k7_1",T="_row_vm1k7_7",B="_rowMain_vm1k7_18",z="_name_vm1k7_25",F="_tag_vm1k7_33",K="_rowActions_vm1k7_37",Q="_pendingNote_vm1k7_44",U="_note_vm1k7_49",$="_errorState_vm1k7_55",a={list:O,row:T,rowMain:B,name:z,tag:F,rowActions:K,pendingNote:Q,note:U,errorState:$};function nt(){const n=P(t=>t.client),i=E(),s=y(t=>t.pendingLogin),j=y(t=>t.requestLogin),[g,m]=b.useState(null),[k,f]=b.useState({}),{data:l,isLoading:L,isError:S,error:h}=I();async function A(t){if(!(!n||!await R().dialogs.confirm(`Log out of ${t.name}? Running agents keep working until their current credential use fails.`))){f(o=>({...o,[t.id]:""})),m(t.id);try{const o=await n.logoutProvider(t.id);f(r=>({...r,[t.id]:o.stillConfigured?"Removed the stored credential — still configured via an environment variable.":""})),await i.invalidateQueries({queryKey:x.providerAuthList()}),i.invalidateQueries({queryKey:x.providerModelsAll()})}finally{m(null)}}}return L?e.jsxs(d,{children:[e.jsx(C,{size:"sm"})," Loading providers…"]}):S?e.jsx(d,{className:a.errorState,children:h instanceof Error?h.message:"Failed to load providers."}):!l||l.length===0?e.jsx(d,{children:"No providers available."}):e.jsx("div",{className:a.list,children:l.map(t=>{const c=M(t),o=q(t),r=(s==null?void 0:s.provider)===t.id,_=s!==null&&!r,v=k[t.id];return e.jsxs("div",{className:a.row,children:[e.jsxs("div",{className:a.rowMain,children:[e.jsx("span",{className:a.name,children:t.name}),t.oauthIsSubscription&&e.jsx(p,{label:"Subscription",variant:"muted",className:a.tag}),e.jsx(p,{label:c.label,variant:c.variant,className:a.tag})]}),e.jsx("div",{className:a.rowActions,children:r?e.jsx("span",{className:a.pendingNote,children:"Logging in…"}):e.jsxs(e.Fragment,{children:[o.map(u=>e.jsx(w,{size:"xs",variant:"secondary",disabled:_,onClick:()=>j(t.id,t.name,u.authType),children:u.label},u.authType)),t.configured!==!1&&e.jsx(w,{size:"xs",variant:"ghost",disabled:_||g===t.id,loading:g===t.id,onClick:()=>void A(t),children:"Log out"})]})}),v&&e.jsx("div",{className:a.note,children:v})]},t.id)})})}export{nt as ModelProvidersPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as c,j as t}from"./vendor-react-Dka9ZH0B.js";import{u as k,b as I,P as w,E as N,S as W,q,v as C,e as U,w as X,C as Y,x as z,k as D}from"./index-DjRqFIN0.js";import{F as G}from"./vendor-molviewer-7FbONJs2.js";import{u as H}from"./use-file-download-FoQrf961.js";import{u as K}from"./use-file-watch-Th-A-3Ws.js";import{S as v}from"./StatusBadge-eoBBn7zF.js";import"./vendor-z183l2lP.js";import"./vendor-query-CDNPrdQ8.js";import"./vendor-icons-CSCeICuX.js";import"./vendor-overlays-DjMT65Ip.js";import"./vendor-dnd-vJGfGIIi.js";import"./vendor-pdfjs-BSchhGel.js";function J(e,r){return!e||!r?null:{url:r,name:e.split("/").pop()||e}}function Q({changedAt:e,lastAppliedAt:r,modified:n}){return!(e===null||n||e===r)}const Z={empty_path:"Nothing to save.",too_large:"File is too large to save (over 5 MiB).",not_found:"The file no longer exists.",unreadable:"The file could not be read.",not_a_file:"That path is not a file."};async function ee(e,r,n){const a=await e.connection.request("file_write_request",{path:r,content:n});if(!a.ok){const l=a.error??"";throw new Error(Z[l]??l??"Failed to save")}}const re="mol2";function oe(e){const{sourcePath:r,monomers:n,attempt:a}=e,l=a>0?`_${a+1}`:"";return`${te(r)}_polymer_${n}${l}.${re}`}function te(e){return(e.split("/").pop()??"").replace(/\.[^.]+$/,"").trim()||"polymer"}const se={"--canvas":"var(--pi-color-surface0)","--well":"var(--pi-color-surface0)","--recess":"var(--pi-color-surface1)","--chrome":"var(--pi-color-surface1)","--control":"var(--pi-color-surface2)","--control-hover":"var(--pi-color-surface3)","--control-strong-hover":"var(--pi-color-surface4)","--border-control":"var(--pi-color-border)","--border-input":"var(--pi-color-border)","--popover":"var(--pi-color-surface1)","--popover-item-hover":"var(--pi-color-surface2)","--row-hover":"var(--pi-color-surface2)","--border-popover":"var(--pi-color-border)","--text-primary":"var(--pi-color-foreground)","--text-on-control":"var(--pi-color-foreground)"},ne="_wrap_tixu9_1",ae="_molViewer_tixu9_4",le="_badges_tixu9_8",g={wrap:ne,molViewer:ae,badges:le},ie=50;async function ce(e){const{client:r,upload:n,sourcePath:a,monomers:l,text:f}=e,p=U(a);let s=null,i="";for(let u=0;u<ie&&s===null;u+=1){i=oe({sourcePath:a,monomers:l,attempt:u});try{s=await X(r,p,i,"file")}catch(m){if(m instanceof Y&&m.code==="exists")continue;throw m}}if(s===null)throw new Error(`No free name for ${i} — too many builds in this folder.`);try{await n(p,new File([f],i,{type:"chemical/x-mol2"}))}catch(u){throw await z(r,s).catch(()=>{}),u}return s}function ue({path:e,workspaceCwd:r,tabId:n,isActive:a,onModifiedChange:l}){var T;const f=k(o=>o.client),{upload:p}=I(),s=H(e??"",!!e),{changedAt:i}=K(e),u=c.useRef(null),m=c.useRef(!1),[E,_]=c.useState(null),[h,A]=c.useState(!1),[S,x]=c.useState(null),[j,y]=c.useState(null),[M,P]=c.useState(null),b=c.useRef(null),R=((T=s.data)==null?void 0:T.objectUrl)??null,$=c.useMemo(()=>J(e,R),[e,R]);c.useEffect(()=>{Q({changedAt:i,lastAppliedAt:b.current,modified:h})&&(b.current=i,s.refetch())},[i,h,s.refetch]);const L=i!==null&&i!==b.current&&h;async function V(o){if(e){if(!f){x("Not connected — cannot save.");return}x(null);try{await ee(f,e,o.text()),o.saved()}catch(d){x(d instanceof Error?d.message:"Failed to save")}}}async function B(o){if(e){if(!f){y("Not connected — cannot save the polymer.");return}y(null),P(null);try{const d=await ce({client:f,upload:p,sourcePath:e,monomers:o.monomers,text:o.text()});o.report.clashes>0&&P(`${o.report.clashes} close contacts — relax the geometry before simulating`);const O=q.getState().paneOfTab(r,n);C(d,r,O??void 0)}catch(d){y(d instanceof Error?d.message:"Failed to save the polymer")}}}const F=(s.isError?s.error instanceof Error?s.error.message:"download failed":null)??(E==null?void 0:E.message)??null;return e&&s.isPending?t.jsx(w,{children:t.jsxs(N,{children:[t.jsx(W,{size:"sm"})," Loading..."]})}):F?t.jsx(w,{children:t.jsxs(N,{children:["Error: ",F]})}):t.jsxs(w,{className:g.wrap,"data-molecule-active":a?"true":"false",children:[t.jsxs("div",{className:g.badges,children:[L&&t.jsx(v,{label:"File changed on disk",variant:"muted"}),S&&t.jsx(v,{label:`Save failed: ${S}`,variant:"error"}),j&&t.jsx(v,{label:`Polymer build: ${j}`,variant:"error"}),M&&t.jsx(v,{label:M,variant:"warning"})]}),t.jsx(G,{ref:u,className:g.molViewer,theme:se,source:$,sourceMode:m.current?"update":"replace",onLoad:()=>{m.current=!0,_(null)},onLoadError:o=>_(o.error),onModifiedChange:o=>{A(o),l==null||l(o)},onSave:e?V:void 0,onPolymerBuild:e?B:void 0})]})}function Se({tab:e}){const{path:r}=e.data,n=D(e.id);return t.jsx(w,{children:t.jsx(ue,{path:r,workspaceCwd:e.workspaceCwd,tabId:e.id,isActive:n})})}export{Se as MoleculeViewerPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var Q=Object.defineProperty;var Y=(e,t,r)=>t in e?Q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var I=(e,t,r)=>Y(e,typeof t!="symbol"?t+"":t,r);import{r as a,j as n}from"./vendor-react-Dka9ZH0B.js";import{g as O,b as ee,E as T,B as S,S as te}from"./index-DjRqFIN0.js";import{u as se}from"./use-file-download-FoQrf961.js";import{G as re,p as ne}from"./vendor-pdfjs-BSchhGel.js";import{Z as oe,a as ae,M as ie,D as ce}from"./vendor-icons-CSCeICuX.js";import"./vendor-z183l2lP.js";import"./vendor-query-CDNPrdQ8.js";import"./vendor-overlays-DjMT65Ip.js";import"./vendor-dnd-vJGfGIIi.js";class Z extends Error{constructor(){super("PDF preview is not available in this application.");I(this,"name","PdfUnavailableError")}}function le(e,t){const r=new URL(e.endsWith("/")?e:`${e}/`,t);return{cMapUrl:new URL("cmaps/",r).href,cMapPacked:!0,standardFontDataUrl:new URL("standard_fonts/",r).href,wasmUrl:new URL("wasm/",r).href,iccUrl:new URL("iccs/",r).href}}function G(){var t;const e=O().pdf;if(!e)throw new Z;return(t=re).workerPort??(t.workerPort=e.createWorker()),{pdfjs:ne,assetUrls:le(e.assetBaseUrl,document.baseURI)}}const y=[.25,.5,.75,1,1.25,1.5,2,3,4],W=y[0],$=y[y.length-1],de=16777216,V=1e-6;function ue(e){return y.find(t=>t>e+V)??$}function fe(e){return y.findLast(t=>t<e-V)??W}function he(e,t,r){const s=e-t;return s<=0||r<=0?1:Math.min($,Math.max(W,s/r))}function me(e,t,r,s,d=de){const c=e*r*(t*r);return c<=0?s:Math.min(s,Math.sqrt(d/c))}function pe(e,t,r,s){const d=[];let c=s;for(const x of e)d.push(c),c+=x*t+r;return d}function ge(e,t,r){const s=t+r/2,d=e.findIndex(c=>c>s);return Math.max(0,(d===-1?e.length:d)-1)}const we="_viewer_16fdq_1",ve="_toolbar_16fdq_7",xe="_pageIndicator_16fdq_18",_e="_zoom_16fdq_19",Ee="_controls_16fdq_23",je="_scroller_16fdq_32",Pe="_stack_16fdq_40",Se="_page_16fdq_18",be="_canvas_16fdq_56",Me="_pageError_16fdq_61",ye="_failure_16fdq_71",De="_textLayer_16fdq_86",u={viewer:we,toolbar:ve,pageIndicator:xe,zoom:_e,controls:Ee,scroller:je,stack:Pe,page:Se,canvas:be,pageError:Me,failure:ye,textLayer:De},Fe=12,q=16,ze="100% 0px",Ce=120,ke={invalid:"This file could not be opened as a PDF.",password:"This PDF is password-protected.",unavailable:"PDF preview is not available in this application.",failed:"This PDF could not be loaded."};function Ae(e){if(e instanceof Z)return"unavailable";const t=e instanceof Error?e.name:"";return t==="PasswordException"?"password":t==="InvalidPDFException"||t==="FormatError"||t==="MissingPDFException"?"invalid":"failed"}function Le(e){return e instanceof Error&&/Cancelled|destroyed/i.test(`${e.name} ${e.message}`)}function Xe({path:e}){var R;const t=se(e),{saveToDisk:r}=ee(),[s,d]=a.useState(null),[c,x]=a.useState(null),[l,C]=a.useState(null),[D,p]=a.useState(0),[h,f]=a.useState(!0),[j,_]=a.useState(1),[b,P]=a.useState(0),g=(R=t.data)==null?void 0:R.objectUrl;a.useEffect(()=>{if(!g)return;let o=!1,v=!1,w=null;return(async()=>{try{const E=new Uint8Array(await(await fetch(g)).arrayBuffer());if(o)return;const{pdfjs:z,assetUrls:X}=G();w=z.getDocument({data:E,enableXfa:!1,...X});const L=await w.promise,B=await Promise.all(Array.from({length:L.numPages},async(Ue,H)=>{const{width:K,height:J}=(await L.getPage(H+1)).getViewport({scale:1});return{width:K,height:J}}));if(o)return;v=!0,x(null),d({task:w,doc:L,sizes:B})}catch(E){o||x(Ae(E))}})(),()=>{o=!0,v||w==null||w.destroy()}},[g]),a.useEffect(()=>{const o=s==null?void 0:s.task;return()=>void(o==null?void 0:o.destroy())},[s==null?void 0:s.task]),a.useEffect(()=>{if(!l)return;let o,v=!0;const w=new ResizeObserver(([E])=>{const z=(E==null?void 0:E.contentRect.width)??0;if(clearTimeout(o),v){v=!1,p(z);return}o=setTimeout(()=>p(z),Ce)});return w.observe(l),()=>{clearTimeout(o),w.disconnect()}},[l]);const m=s==null?void 0:s.sizes,F=a.useMemo(()=>Math.max(0,...(m??[]).map(o=>o.width)),[m]),i=h?he(D,q*2,F):j,M=a.useMemo(()=>pe((m??[]).map(o=>o.height),i,Fe,q),[m,i]),N=()=>{l&&P(ge(M,l.scrollTop,l.clientHeight))},k=a.useRef(i);a.useLayoutEffect(()=>{l&&k.current!==i&&(l.scrollTop=l.scrollTop*i/k.current),k.current=i},[i,l]),a.useEffect(N,[M,l]);const A=()=>void r(e).catch(o=>O().dialogs.alert(`Failed to download: ${o instanceof Error?o.message:String(o)}`));if(t.isError)return n.jsxs(T,{children:["Error: ",t.error instanceof Error?t.error.message:"unknown error"]});if(c&&!s)return n.jsxs("div",{className:u.failure,children:[n.jsx("span",{children:ke[c]}),n.jsx(S,{size:"sm",onClick:A,children:"Download"})]});if(!s)return n.jsxs(T,{children:[n.jsx(te,{size:"sm"})," Loading PDF..."]});if(s.sizes.length===0)return n.jsxs("div",{className:u.failure,children:[n.jsx("span",{children:"This PDF has no pages."}),n.jsx(S,{size:"sm",onClick:A,children:"Download"})]});const U=o=>{_(o(i)),f(!1)};return n.jsxs("div",{className:u.viewer,children:[n.jsxs("div",{className:u.toolbar,children:[n.jsxs("span",{className:u.pageIndicator,"aria-live":"polite",children:[b+1," / ",s.sizes.length]}),n.jsxs("div",{className:u.controls,children:[n.jsx(S,{size:"xs",variant:"ghost",iconOnly:!0,"aria-label":"Zoom out",onClick:()=>U(fe),children:n.jsx(oe,{size:14})}),n.jsxs("span",{className:u.zoom,children:[Math.round(i*100),"%"]}),n.jsx(S,{size:"xs",variant:"ghost",iconOnly:!0,"aria-label":"Zoom in",onClick:()=>U(ue),children:n.jsx(ae,{size:14})}),n.jsx(S,{size:"xs",variant:h?"default":"ghost",iconOnly:!0,"aria-label":"Fit width","aria-pressed":h,onClick:()=>f(o=>!o),children:n.jsx(ie,{size:14})}),n.jsx(S,{size:"xs",variant:"ghost",iconOnly:!0,"aria-label":"Download PDF",onClick:A,children:n.jsx(ce,{size:14})})]})]}),n.jsx("div",{ref:C,className:u.scroller,onScroll:N,children:n.jsx("div",{className:u.stack,children:s.sizes.map((o,v)=>n.jsx(Ne,{doc:s.doc,pageNumber:v+1,size:o,scale:i,root:l},v))})})]})}function Ne({doc:e,pageNumber:t,size:r,scale:s,root:d}){const c=a.useRef(null),[x,l]=a.useState(!1),[C,D]=a.useState(null);return a.useEffect(()=>{const p=c.current;if(!d||!p)return;const h=new IntersectionObserver(([f])=>l((f==null?void 0:f.isIntersecting)??!1),{root:d,rootMargin:ze});return h.observe(p),()=>h.disconnect()},[d]),a.useEffect(()=>{const p=c.current;if(!p)return;if(!x){p.replaceChildren();return}let h=!1,f=null,j=null;return(async()=>{try{const{pdfjs:_}=G(),b=await e.getPage(t),P=b.getViewport({scale:s}),g=me(r.width,r.height,s,window.devicePixelRatio||1),m=document.createElement("canvas");m.width=Math.floor(P.width*g),m.height=Math.floor(P.height*g),m.className=u.canvas??"";const F=b.render({canvas:m,viewport:P,transform:g===1?void 0:[g,0,0,g,0,0]});f=F,await F.promise;const i=document.createElement("div");i.className=`textLayer ${u.textLayer??""}`,i.style.setProperty("--total-scale-factor",String(s));const M=new _.TextLayer({textContentSource:b.streamTextContent(),container:i,viewport:P});if(j=M,await M.render(),h)return;p.replaceChildren(m,i),D(null)}catch(_){!h&&!Le(_)&&D(_ instanceof Error?_.message:"render failed")}})(),()=>{h=!0,f==null||f.cancel(),j==null||j.cancel()}},[x,e,t,s,r.width,r.height]),n.jsx("div",{ref:c,className:u.page,style:{width:r.width*s,height:r.height*s},"data-page":t,children:C&&n.jsxs("span",{className:u.pageError,children:["Page ",t," failed to render."]})})}export{Xe as PdfViewer};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as s,j as e}from"./vendor-react-Dka9ZH0B.js";import{b as f,S as d,B as m}from"./index-DjRqFIN0.js";function S({path:i}){const{saveToDisk:c}=f(),[u,t]=s.useState(!1),[n,a]=s.useState(null),r=s.useRef(!0);s.useEffect(()=>()=>{r.current=!1},[]);async function l(){t(!0),a(null);try{await c(i)}catch(o){r.current&&a(o instanceof Error?o.message:"download failed")}finally{r.current&&t(!1)}}return e.jsxs(e.Fragment,{children:[n&&e.jsxs("div",{children:["Error: ",n]}),u?e.jsx(d,{size:"sm"}):e.jsx(m,{size:"sm",onClick:()=>void l(),children:"Download"})]})}export{S};
|