blade-code 0.11.2 → 0.11.4
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/dist/blade.js +2 -2
- package/dist/{chunk-g0xtk1yy.js → chunk-1g7c3f82.js} +1 -1
- package/dist/chunk-1hknjamx.js +1 -0
- package/dist/{chunk-tx9tb485.js → chunk-3gbteqvh.js} +1 -1
- package/dist/{chunk-q6sr4979.js → chunk-3v9epq9s.js} +1 -1
- package/dist/{chunk-pjeks4cz.js → chunk-4077g2fm.js} +1 -1
- package/dist/{chunk-re8p2y22.js → chunk-49jbxty9.js} +1 -1
- package/dist/{chunk-xnys4bgs.js → chunk-5ce8ydjq.js} +1 -1
- package/dist/{chunk-ebvzp8tn.js → chunk-5kmxe14c.js} +1 -1
- package/dist/{chunk-s7x4x6xw.js → chunk-6m81sxfz.js} +1 -1
- package/dist/chunk-6p0hkf4f.js +1 -0
- package/dist/{chunk-yeandcre.js → chunk-77n1drhv.js} +1 -1
- package/dist/{chunk-vemyfx92.js → chunk-7m07qp5c.js} +1 -1
- package/dist/{chunk-6v23hdt8.js → chunk-870szc6v.js} +1 -1
- package/dist/{chunk-v0eanse2.js → chunk-8d8wsqam.js} +1 -1
- package/dist/{chunk-t3pkk95s.js → chunk-a1vvg4yf.js} +1 -1
- package/dist/{chunk-px45q235.js → chunk-asgmmaec.js} +2 -2
- package/dist/{chunk-n30najxq.js → chunk-b5cz00mt.js} +1 -1
- package/dist/{chunk-0kxya4ye.js → chunk-bw3920qg.js} +1 -1
- package/dist/chunk-c33wff11.js +2 -0
- package/dist/chunk-d7frbjn7.js +1 -0
- package/dist/{chunk-jbpasjg9.js → chunk-e0ft3vwg.js} +1 -1
- package/dist/{chunk-8q6zsznc.js → chunk-e4q0rcmz.js} +1 -1
- package/dist/chunk-eb10zapp.js +1 -0
- package/dist/{chunk-a95jmx2j.js → chunk-ed2hdrwe.js} +1 -1
- package/dist/{chunk-g2295k8s.js → chunk-eexs73bz.js} +1 -1
- package/dist/{chunk-k2rgg45h.js → chunk-egqep8py.js} +2 -2
- package/dist/chunk-g2kqz1mm.js +1 -0
- package/dist/{chunk-sdapqhj0.js → chunk-gmpsfkgg.js} +1 -1
- package/dist/chunk-gwf872nm.js +1 -0
- package/dist/{chunk-p36k2e96.js → chunk-hb680ebj.js} +1 -1
- package/dist/{chunk-7rz5dt79.js → chunk-hbkpavbp.js} +2 -2
- package/dist/chunk-hfbw50pk.js +357 -0
- package/dist/{chunk-enmn892r.js → chunk-hfwn38rm.js} +1 -1
- package/dist/{chunk-qhcd0ww0.js → chunk-js7fre4w.js} +1 -1
- package/dist/chunk-kj20ad32.js +1 -0
- package/dist/chunk-m61cx42n.js +1 -0
- package/dist/{chunk-g7pjgspy.js → chunk-myznexy5.js} +1 -1
- package/dist/chunk-n62b30d1.js +164 -0
- package/dist/{chunk-wnzr9h84.js → chunk-nad5spvc.js} +1 -1
- package/dist/{chunk-04qhtx2w.js → chunk-nfdtrn3t.js} +1 -1
- package/dist/{chunk-zf72e5w8.js → chunk-p4j7gxjk.js} +1 -1
- package/dist/{chunk-3ee357pw.js → chunk-phch3t6v.js} +78 -78
- package/dist/{chunk-kaj8jaj5.js → chunk-q534f3j5.js} +1 -1
- package/dist/{chunk-2fdghgmf.js → chunk-qzsmbk13.js} +2 -2
- package/dist/chunk-r8rvkas8.js +1 -0
- package/dist/{chunk-h4b4fn3t.js → chunk-r9egmztq.js} +1 -1
- package/dist/{chunk-xrgeakpy.js → chunk-rswfbvay.js} +1 -1
- package/dist/{chunk-qa86anwd.js → chunk-rwm2e0r4.js} +1 -1
- package/dist/{chunk-wan9q99y.js → chunk-s14zayxp.js} +1 -1
- package/dist/{chunk-4e4qtpca.js → chunk-saz6mwpq.js} +1 -1
- package/dist/{chunk-a3dz41pd.js → chunk-ty3gwnwq.js} +1 -1
- package/dist/{chunk-290p3r7a.js → chunk-v5t3kcac.js} +1 -1
- package/dist/{chunk-qyfbeg5h.js → chunk-vmhcc7f9.js} +1 -1
- package/dist/{chunk-er6zghgg.js → chunk-vsmnzhhz.js} +1 -1
- package/dist/{chunk-f9qrjd2f.js → chunk-vv6r417h.js} +1 -1
- package/dist/{chunk-zwe1a7xe.js → chunk-w8dxjbm8.js} +1 -1
- package/dist/{chunk-6x5f6she.js → chunk-whxkwaz1.js} +1 -1
- package/dist/{chunk-5s2x98rx.js → chunk-xhwdac1j.js} +1 -1
- package/dist/chunk-ydtsh19k.js +1 -0
- package/dist/{chunk-0wxnrjes.js → chunk-yjdyzb5z.js} +1 -1
- package/dist/web/assets/ChatView-CvuKp3Yl.js +17 -0
- package/dist/web/assets/{CodeBlockHighlighter-OvLyFs9U.js → CodeBlockHighlighter-CYiAdOLs.js} +1 -1
- package/dist/web/assets/FilePreview-DGolvoH6.js +8 -0
- package/dist/web/assets/KanbanBoard-DdwrLpvb.js +1 -0
- package/dist/web/assets/{MarkdownRenderer-BTxnqChi.js → MarkdownRenderer-fJny7W8J.js} +3 -3
- package/dist/web/assets/{ScrollArea-BdOqyQ3g.js → ScrollArea-CSCl8r35.js} +1 -1
- package/dist/web/assets/{SessionHistorySurface-DaKE2oKU.js → SessionHistorySurface-dttyHhtN.js} +1 -1
- package/dist/web/assets/SettingsModal-Bn9m-F-v.js +5 -0
- package/dist/web/assets/Sidebar-JYvLuHTi.js +1 -0
- package/dist/web/assets/{TaskSwitcher-DKelLFZm.js → TaskSwitcher-InE9ArQH.js} +1 -1
- package/dist/web/assets/{TerminalPanel-D5Rieq62.js → TerminalPanel-BLRAlQoa.js} +1 -1
- package/dist/web/assets/{archive-CsFSEMp9.js → archive-D3alcPOa.js} +1 -1
- package/dist/web/assets/{arrow-left-gaino9Tb.js → arrow-left-CNfcSdE2.js} +1 -1
- package/dist/web/assets/{calendar-clock-DfHUrEw9.js → calendar-clock-BoRTfsxW.js} +1 -1
- package/dist/web/assets/chevron-right-B8JH5N50.js +1 -0
- package/dist/web/assets/{clock-3-dWIDc9IF.js → clock-3-BGymk4sE.js} +1 -1
- package/dist/web/assets/{copy-BPfhyh47.js → copy-CLG3LQ2v.js} +1 -1
- package/dist/web/assets/{dist-RGayDvc-.js → dist-BtGkS2rG.js} +1 -1
- package/dist/web/assets/{download-BR2L5Wme.js → download-DxK6pukC.js} +1 -1
- package/dist/web/assets/{folder-8dmZJ2a6.js → folder-B0xRimYH.js} +1 -1
- package/dist/web/assets/index-BJdxoBtv.css +1 -0
- package/dist/web/assets/{index-DSa8Dzp7.js → index-DkwePtIh.js} +4 -4
- package/dist/web/assets/{pause-DLZIDFMB.js → pause-CKNq9DgJ.js} +1 -1
- package/dist/web/assets/{pencil-DkC0bPYD.js → pencil-CMjIwtk5.js} +1 -1
- package/dist/web/assets/{play-BVeNn6fv.js → play-BOz9Sqzf.js} +1 -1
- package/dist/web/assets/plus-BJIEQjD7.js +1 -0
- package/dist/web/assets/preload-helper-HI3NtP3B.js +1 -0
- package/dist/web/assets/{session-events-BuMTbIwu.js → session-events-B-hnDC4L.js} +3 -3
- package/dist/web/assets/{settings-msYyNDKx.js → settings-CP6ArjQ7.js} +1 -1
- package/dist/web/assets/team-BHlihaeV.js +1 -0
- package/dist/web/assets/{teamService-Bus5RDi1.js → teamService-DDfifLYm.js} +1 -1
- package/dist/web/assets/{terminal-Cp5WYo8w.js → terminal-BYHhWXe-.js} +1 -1
- package/dist/web/assets/tooltip-DJBQZhJD.js +1 -0
- package/dist/web/assets/triangle-alert-BCJaJaVj.js +1 -0
- package/dist/web/assets/{vendor-radix-L0yJCKJX.js → vendor-radix-BCAvgfOW.js} +1 -1
- package/dist/web/assets/{vendor-react-CHEIQMI-.js → vendor-react-DQwAdeyS.js} +1 -1
- package/dist/web/index.html +5 -5
- package/package.json +2 -2
- package/dist/chunk-21qsfewd.js +0 -1
- package/dist/chunk-3d4wgfkr.js +0 -1
- package/dist/chunk-634ymwg5.js +0 -1
- package/dist/chunk-65v1vjvg.js +0 -1
- package/dist/chunk-7p8r4q6f.js +0 -1
- package/dist/chunk-d4xsrx3z.js +0 -357
- package/dist/chunk-eg0s155w.js +0 -1
- package/dist/chunk-fb2x1026.js +0 -171
- package/dist/chunk-gff7a5q0.js +0 -1
- package/dist/chunk-gymecxcc.js +0 -1
- package/dist/chunk-p665f6pn.js +0 -1
- package/dist/chunk-sqsfztrv.js +0 -1
- package/dist/chunk-yjcp8jk1.js +0 -2
- package/dist/web/assets/ChatView-DysPZPwF.js +0 -17
- package/dist/web/assets/FilePreview-CkSPwPdW.js +0 -8
- package/dist/web/assets/KanbanBoard-DH1wApt6.js +0 -1
- package/dist/web/assets/SettingsModal-CWlSSO_E.js +0 -5
- package/dist/web/assets/Sidebar-Dirk-XAQ.js +0 -1
- package/dist/web/assets/chevron-right-Bvu2j6hB.js +0 -1
- package/dist/web/assets/index-B7RyuO2x.css +0 -1
- package/dist/web/assets/message-square-plus-BgC981WF.js +0 -1
- package/dist/web/assets/plus-kzdwas-3.js +0 -1
- package/dist/web/assets/preload-helper-DvgLbiBV.js +0 -1
- package/dist/web/assets/team-D3XOVbxL.js +0 -1
- package/dist/web/assets/triangle-alert-cGqHxFsZ.js +0 -1
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-RGayDvc-.js","assets/rolldown-runtime-hePW80VL.js","assets/session-events-BuMTbIwu.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{R as t,d as n,dt as r,i,r as a,u as o}from"./session-events-BuMTbIwu.js";import{C as s}from"./vendor-radix-L0yJCKJX.js";import{c,l,r as u,s as d,t as f}from"./preload-helper-DvgLbiBV.js";import{i as p,n as m,r as h,t as g}from"./message-square-plus-BgC981WF.js";import{t as ee}from"./arrow-left-gaino9Tb.js";import{n as _,t as v}from"./folder-8dmZJ2a6.js";import{t as y}from"./chevron-right-Bvu2j6hB.js";import{n as te,t as b}from"./triangle-alert-cGqHxFsZ.js";import{$ as ne,F as x,H as S,N as re,O as C,P as w,Q as T,U as E,W as D,Z as ie,_ as ae,_t as O,bt as oe,dt as se,et as ce,j as le,nt as ue,pt as de,st as fe,u as k,xt as pe,y as A,yt as j}from"./index-DSa8Dzp7.js";var M={name:`app-window`,size:24,node:[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]};M.node;var N=l(M),P={name:`chevrons-down-up`,size:24,node:[[`path`,{d:`m7 20 5-5 5 5`,key:`13a0gw`}],[`path`,{d:`m7 4 5 5 5-5`,key:`1kwcof`}]]};P.node;var F=l(P),I={name:`file-code`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12.5 8 15l2 2.5`,key:`1tg20x`}],[`path`,{d:`m14 12.5 2 2.5-2 2.5`,key:`yinavb`}]]};I.node;var L=l(I),R={name:`flask-conical`,size:24,node:[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]]};R.node;var me=l(R),he={name:`monitor-up`,size:24,node:[[`path`,{d:`m9 10 3-3 3 3`,key:`11gsxs`}],[`path`,{d:`M12 13V7`,key:`h0r20n`}],[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`path`,{d:`M12 17v4`,key:`1riwvh`}],[`path`,{d:`M8 21h8`,key:`1ev6f3`}]]};he.node;var ge=l(he),z={name:`mouse-pointer-2`,size:24,node:[[`path`,{d:`M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z`,key:`edeuup`}]]};z.node;var _e=l(z),ve={name:`square-terminal`,size:24,node:[[`path`,{d:`m7 11 2-2-2-2`,key:`1lz0vl`}],[`path`,{d:`M11 13h4`,key:`1p7l4v`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}]],aliases:[`terminal-square`]};ve.node;var ye=l(ve),B={name:`user-round`,size:24,node:[[`circle`,{cx:`12`,cy:`8`,r:`5`,key:`1hypcn`}],[`path`,{d:`M20 21a8 8 0 0 0-16 0`,key:`rfgkzh`}]],aliases:[`user-2`]};B.node;var be=l(B),xe={name:`wifi`,size:24,node:[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M2 8.82a15 15 0 0 1 20 0`,key:`dnpr2z`}],[`path`,{d:`M5 12.859a10 10 0 0 1 14 0`,key:`1x1e6c`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}]]};xe.node;var V=l(xe),H=e(r(),1),U=s(),W=H.createContext(null);function G(e){let t=H.useContext(W);if(!t)throw Error(`${e} must be used within <Tabs>`);return t}function Se({value:e,onValueChange:t,className:n,children:r}){let i=H.useMemo(()=>({value:e,setValue:t}),[e,t]);return(0,U.jsx)(W.Provider,{value:i,children:(0,U.jsx)(`div`,{className:n,children:r})})}function K({className:e,children:t}){return(0,U.jsx)(`div`,{role:`tablist`,className:E(`inline-flex items-center`,e),children:t})}function Ce({value:e,className:t,children:n}){let{value:r,setValue:i}=G(`TabsTrigger`),a=r===e;return(0,U.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":a,"data-state":a?`active`:`inactive`,onClick:()=>i(e),className:E(`inline-flex items-center justify-center whitespace-nowrap rounded-sm transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--deck-accent))]`,t),children:n})}function q({value:e,className:t,children:n,forceMount:r=!1}){let{value:i}=G(`TabsContent`),a=i===e;return!a&&!r?null:(0,U.jsx)(`div`,{role:`tabpanel`,hidden:!a,className:t,children:n})}var we=JSON.parse(`[{"id":"ayu-dark","label":"Ayu Dark","theme":{"name":"ayu-dark","colors":{"primary":"#ffcc66","secondary":"#bae67e","accent":"#73d0ff","success":"#bae67e","warning":"#ffcc66","error":"#ff3333","info":"#73d0ff","light":"#f0f0f0","dark":"#000000","muted":"#5c6773","highlight":"#2d323b","text":{"primary":"#e6e1cf","secondary":"#bae67e","muted":"#5c6773","light":"#ffffff"},"background":{"primary":"#0f1419","secondary":"#14191f","dark":"#000000"},"border":{"light":"#2d323b","dark":"#000000"},"syntax":{"comment":"#5c6773","string":"#bae67e","number":"#ffcc66","keyword":"#ff8f40","function":"#73d0ff","variable":"#e6e1cf","operator":"#f29e74","type":"#73d0ff","tag":"#ff8f40","attr":"#ffd580","default":"#e6e1cf"}},"spacing":{"xs":0.25,"sm":0.5,"md":1,"lg":1.5,"xl":2},"typography":{"fontSize":{"xs":0.75,"sm":0.875,"base":1,"lg":1.125,"xl":1.25,"2xl":1.5,"3xl":1.875},"fontWeight":{"light":300,"normal":400,"medium":500,"semibold":600,"bold":700}},"borderRadius":{"sm":0.125,"base":0.25,"lg":0.5,"xl":0.75},"boxShadow":{"sm":"0 1px 2px 0 rgba(0, 0, 0, 0.2)","base":"0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px 0 rgba(0, 0, 0, 0.2)","lg":"0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.2)"}},"tags":["dark","popular"]},{"id":"dracula","label":"Dracula","theme":{"name":"dracula","colors":{"primary":"#bd93f9","secondary":"#ffb86c","accent":"#ff79c6","success":"#50fa7b","warning":"#f1fa8c","error":"#ff5555","info":"#8be9fd","light":"#f8f8f2","dark":"#282a36","muted":"#6272a4","highlight":"#44475a","text":{"primary":"#f8f8f2","secondary":"#f1fa8c","muted":"#6272a4","light":"#ffffff"},"background":{"primary":"#282a36","secondary":"#44475a","dark":"#21222c"},"border":{"light":"#44475a","dark":"#000000"},"syntax":{"comment":"#6272a4","string":"#f1fa8c","number":"#bd93f9","keyword":"#ff79c6","function":"#50fa7b","variable":"#f8f8f2","operator":"#ff79c6","type":"#8be9fd","tag":"#ff79c6","attr":"#50fa7b","default":"#f8f8f2"}},"spacing":{"xs":0.25,"sm":0.5,"md":1,"lg":1.5,"xl":2},"typography":{"fontSize":{"xs":0.75,"sm":0.875,"base":1,"lg":1.125,"xl":1.25,"2xl":1.5,"3xl":1.875},"fontWeight":{"light":300,"normal":400,"medium":500,"semibold":600,"bold":700}},"borderRadius":{"sm":0.125,"base":0.25,"lg":0.5,"xl":0.75},"boxShadow":{"sm":"0 1px 2px 0 rgba(40, 42, 54, 0.2)","base":"0 1px 3px 0 rgba(40, 42, 54, 0.3), 0 1px 2px 0 rgba(40, 42, 54, 0.2)","lg":"0 10px 15px -3px rgba(40, 42, 54, 0.3), 0 4px 6px -2px rgba(40, 42, 54, 0.2)"}},"tags":["dark","popular"]},{"id":"monokai","label":"Monokai","theme":{"name":"monokai","colors":{"primary":"#66d9ef","secondary":"#a6e22e","accent":"#f92672","success":"#a6e22e","warning":"#e6db74","error":"#f92672","info":"#66d9ef","light":"#f8f8f2","dark":"#272822","muted":"#75715e","highlight":"#3e3d32","text":{"primary":"#f8f8f2","secondary":"#e6db74","muted":"#75715e","light":"#ffffff"},"background":{"primary":"#272822","secondary":"#3e3d32","dark":"#1e1f1c"},"border":{"light":"#3e3d32","dark":"#000000"},"syntax":{"comment":"#75715e","string":"#e6db74","number":"#ae81ff","keyword":"#f92672","function":"#a6e22e","variable":"#f8f8f2","operator":"#f92672","type":"#66d9ef","tag":"#f92672","attr":"#a6e22e","default":"#f8f8f2"}},"spacing":{"xs":0.25,"sm":0.5,"md":1,"lg":1.5,"xl":2},"typography":{"fontSize":{"xs":0.75,"sm":0.875,"base":1,"lg":1.125,"xl":1.25,"2xl":1.5,"3xl":1.875},"fontWeight":{"light":300,"normal":400,"medium":500,"semibold":600,"bold":700}},"borderRadius":{"sm":0.125,"base":0.25,"lg":0.5,"xl":0.75},"boxShadow":{"sm":"0 1px 2px 0 rgba(39, 40, 34, 0.2)","base":"0 1px 3px 0 rgba(39, 40, 34, 0.3), 0 1px 2px 0 rgba(39, 40, 34, 0.2)","lg":"0 10px 15px -3px rgba(39, 40, 34, 0.3), 0 4px 6px -2px rgba(39, 40, 34, 0.2)"}},"tags":["dark","classic"]},{"id":"nord","label":"Nord","theme":{"name":"nord","colors":{"primary":"#88c0d0","secondary":"#81a1c1","accent":"#b48ead","success":"#a3be8c","warning":"#ebcb8b","error":"#bf616a","info":"#88c0d0","light":"#eceff4","dark":"#2e3440","muted":"#4c566a","highlight":"#434c5e","text":{"primary":"#eceff4","secondary":"#d8dee9","muted":"#4c566a","light":"#ffffff"},"background":{"primary":"#2e3440","secondary":"#3b4252","dark":"#242933"},"border":{"light":"#434c5e","dark":"#000000"},"syntax":{"comment":"#616e88","string":"#a3be8c","number":"#b48ead","keyword":"#81a1c1","function":"#88c0d0","variable":"#d8dee9","operator":"#81a1c1","type":"#8fbcbb","tag":"#81a1c1","attr":"#8fbcbb","default":"#eceff4"}},"spacing":{"xs":0.25,"sm":0.5,"md":1,"lg":1.5,"xl":2},"typography":{"fontSize":{"xs":0.75,"sm":0.875,"base":1,"lg":1.125,"xl":1.25,"2xl":1.5,"3xl":1.875},"fontWeight":{"light":300,"normal":400,"medium":500,"semibold":600,"bold":700}},"borderRadius":{"sm":0.125,"base":0.25,"lg":0.5,"xl":0.75},"boxShadow":{"sm":"0 1px 2px 0 rgba(46, 52, 64, 0.2)","base":"0 1px 3px 0 rgba(46, 52, 64, 0.3), 0 1px 2px 0 rgba(46, 52, 64, 0.2)","lg":"0 10px 15px -3px rgba(46, 52, 64, 0.3), 0 4px 6px -2px rgba(46, 52, 64, 0.2)"}},"tags":["dark","minimal"]},{"id":"solarized-light","label":"Solarized Light","theme":{"name":"solarized-light","colors":{"primary":"#268bd2","secondary":"#2aa198","accent":"#d33682","success":"#859900","warning":"#cb4b16","error":"#dc322f","info":"#268bd2","light":"#fdf6e3","dark":"#073642","muted":"#93a1a1","highlight":"#eee8d5","text":{"primary":"#586e75","secondary":"#657b83","muted":"#93a1a1","light":"#002b36"},"background":{"primary":"#fdf6e3","secondary":"#eee8d5","dark":"#073642"},"border":{"light":"#eee8d5","dark":"#073642"},"syntax":{"comment":"#93a1a1","string":"#2aa198","number":"#d33682","keyword":"#859900","function":"#268bd2","variable":"#657b83","operator":"#859900","type":"#b58900","tag":"#268bd2","attr":"#93a1a1","default":"#657b83"}},"spacing":{"xs":0.25,"sm":0.5,"md":1,"lg":1.5,"xl":2},"typography":{"fontSize":{"xs":0.75,"sm":0.875,"base":1,"lg":1.125,"xl":1.25,"2xl":1.5,"3xl":1.875},"fontWeight":{"light":300,"normal":400,"medium":500,"semibold":600,"bold":700}},"borderRadius":{"sm":0.125,"base":0.25,"lg":0.5,"xl":0.75},"boxShadow":{"sm":"0 1px 2px 0 rgba(253, 246, 227, 0.2)","base":"0 1px 3px 0 rgba(253, 246, 227, 0.3), 0 1px 2px 0 rgba(253, 246, 227, 0.2)","lg":"0 10px 15px -3px rgba(253, 246, 227, 0.3), 0 4px 6px -2px rgba(253, 246, 227, 0.2)"}},"tags":["light"]},{"id":"solarized-dark","label":"Solarized Dark","theme":{"name":"solarized-dark","colors":{"primary":"#268bd2","secondary":"#2aa198","accent":"#d33682","success":"#859900","warning":"#b58900","error":"#dc322f","info":"#268bd2","light":"#fdf6e3","dark":"#073642","muted":"#586e75","highlight":"#073642","text":{"primary":"#839496","secondary":"#93a1a1","muted":"#586e75","light":"#fdf6e3"},"background":{"primary":"#002b36","secondary":"#073642","dark":"#001f29"},"border":{"light":"#073642","dark":"#000000"},"syntax":{"comment":"#586e75","string":"#2aa198","number":"#d33682","keyword":"#859900","function":"#268bd2","variable":"#839496","operator":"#859900","type":"#b58900","tag":"#268bd2","attr":"#93a1a1","default":"#839496"}},"spacing":{"xs":0.25,"sm":0.5,"md":1,"lg":1.5,"xl":2},"typography":{"fontSize":{"xs":0.75,"sm":0.875,"base":1,"lg":1.125,"xl":1.25,"2xl":1.5,"3xl":1.875},"fontWeight":{"light":300,"normal":400,"medium":500,"semibold":600,"bold":700}},"borderRadius":{"sm":0.125,"base":0.25,"lg":0.5,"xl":0.75},"boxShadow":{"sm":"0 1px 2px 0 rgba(0, 43, 54, 0.2)","base":"0 1px 3px 0 rgba(0, 43, 54, 0.3), 0 1px 2px 0 rgba(0, 43, 54, 0.2)","lg":"0 10px 15px -3px rgba(0, 43, 54, 0.3), 0 4px 6px -2px rgba(0, 43, 54, 0.2)"}},"tags":["dark"]},{"id":"tokyo-night","label":"Tokyo Night","theme":{"name":"tokyo-night","colors":{"primary":"#7aa2f7","secondary":"#7dcfff","accent":"#bb9af7","success":"#9ece6a","warning":"#e0af68","error":"#f7768e","info":"#7aa2f7","light":"#c0caf5","dark":"#1a1b26","muted":"#565f89","highlight":"#292e42","text":{"primary":"#a9b1d6","secondary":"#c0caf5","muted":"#565f89","light":"#ffffff"},"background":{"primary":"#1a1b26","secondary":"#292e42","dark":"#16161e"},"border":{"light":"#292e42","dark":"#000000"},"syntax":{"comment":"#565f89","string":"#9ece6a","number":"#ff9e64","keyword":"#bb9af7","function":"#7aa2f7","variable":"#c0caf5","operator":"#89ddff","type":"#7dcfff","tag":"#f7768e","attr":"#7aa2f7","default":"#a9b1d6"}},"spacing":{"xs":0.25,"sm":0.5,"md":1,"lg":1.5,"xl":2},"typography":{"fontSize":{"xs":0.75,"sm":0.875,"base":1,"lg":1.125,"xl":1.25,"2xl":1.5,"3xl":1.875},"fontWeight":{"light":300,"normal":400,"medium":500,"semibold":600,"bold":700}},"borderRadius":{"sm":0.125,"base":0.25,"lg":0.5,"xl":0.75},"boxShadow":{"sm":"0 1px 2px 0 rgba(26, 27, 38, 0.2)","base":"0 1px 3px 0 rgba(26, 27, 38, 0.3), 0 1px 2px 0 rgba(26, 27, 38, 0.2)","lg":"0 10px 15px -3px rgba(26, 27, 38, 0.3), 0 4px 6px -2px rgba(26, 27, 38, 0.2)"}},"tags":["dark","popular"]},{"id":"github","label":"GitHub","theme":{"name":"github","colors":{"primary":"#0969da","secondary":"#8250df","accent":"#bc4c00","success":"#1a7f37","warning":"#bc4c00","error":"#d1242f","info":"#0969da","light":"#f6f8fa","dark":"#24292f","muted":"#6e7781","highlight":"#ddf4ff","text":{"primary":"#24292f","secondary":"#57606a","muted":"#6e7781","light":"#ffffff"},"background":{"primary":"#ffffff","secondary":"#f6f8fa","dark":"#24292f"},"border":{"light":"#d0d7de","dark":"#24292f"},"syntax":{"comment":"#6e7781","string":"#0a3069","number":"#0550ae","keyword":"#cf222e","function":"#8250df","variable":"#24292f","operator":"#cf222e","type":"#0550ae","tag":"#116329","attr":"#0550ae","default":"#24292f"}},"spacing":{"xs":0.25,"sm":0.5,"md":1,"lg":1.5,"xl":2},"typography":{"fontSize":{"xs":0.75,"sm":0.875,"base":1,"lg":1.125,"xl":1.25,"2xl":1.5,"3xl":1.875},"fontWeight":{"light":300,"normal":400,"medium":500,"semibold":600,"bold":700}},"borderRadius":{"sm":0.125,"base":0.25,"lg":0.5,"xl":0.75},"boxShadow":{"sm":"0 1px 2px 0 rgba(255, 255, 255, 0.2)","base":"0 1px 3px 0 rgba(255, 255, 255, 0.3), 0 1px 2px 0 rgba(255, 255, 255, 0.2)","lg":"0 10px 15px -3px rgba(255, 255, 255, 0.3), 0 4px 6px -2px rgba(255, 255, 255, 0.2)"}},"tags":["light","minimal"]},{"id":"gruvbox","label":"Gruvbox","theme":{"name":"gruvbox","colors":{"primary":"#83a598","secondary":"#8ec07c","accent":"#d3869b","success":"#b8bb26","warning":"#fabd2f","error":"#fb4934","info":"#83a598","light":"#fbf1c7","dark":"#282828","muted":"#928374","highlight":"#3c3836","text":{"primary":"#ebdbb2","secondary":"#d5c4a1","muted":"#928374","light":"#ffffff"},"background":{"primary":"#282828","secondary":"#3c3836","dark":"#1d2021"},"border":{"light":"#3c3836","dark":"#000000"},"syntax":{"comment":"#928374","string":"#b8bb26","number":"#d3869b","keyword":"#fb4934","function":"#8ec07c","variable":"#ebdbb2","operator":"#fe8019","type":"#fabd2f","tag":"#fb4934","attr":"#b8bb26","default":"#ebdbb2"}},"spacing":{"xs":0.25,"sm":0.5,"md":1,"lg":1.5,"xl":2},"typography":{"fontSize":{"xs":0.75,"sm":0.875,"base":1,"lg":1.125,"xl":1.25,"2xl":1.5,"3xl":1.875},"fontWeight":{"light":300,"normal":400,"medium":500,"semibold":600,"bold":700}},"borderRadius":{"sm":0.125,"base":0.25,"lg":0.5,"xl":0.75},"boxShadow":{"sm":"0 1px 2px 0 rgba(40, 40, 40, 0.2)","base":"0 1px 3px 0 rgba(40, 40, 40, 0.3), 0 1px 2px 0 rgba(40, 40, 40, 0.2)","lg":"0 10px 15px -3px rgba(40, 40, 40, 0.3), 0 4px 6px -2px rgba(40, 40, 40, 0.2)"}},"tags":["dark","warm"]},{"id":"one-dark","label":"One Dark","theme":{"name":"one-dark","colors":{"primary":"#61afef","secondary":"#c678dd","accent":"#e5c07b","success":"#98c379","warning":"#e5c07b","error":"#e06c75","info":"#56b6c2","light":"#abb2bf","dark":"#282c34","muted":"#5c6370","highlight":"#3e4451","text":{"primary":"#abb2bf","secondary":"#c6c8d0","muted":"#5c6370","light":"#ffffff"},"background":{"primary":"#282c34","secondary":"#3e4451","dark":"#21252b"},"border":{"light":"#3e4451","dark":"#000000"},"syntax":{"comment":"#5c6370","string":"#98c379","number":"#d19a66","keyword":"#c678dd","function":"#61afef","variable":"#e06c75","operator":"#56b6c2","type":"#e5c07b","tag":"#e06c75","attr":"#d19a66","default":"#abb2bf"}},"spacing":{"xs":0.25,"sm":0.5,"md":1,"lg":1.5,"xl":2},"typography":{"fontSize":{"xs":0.75,"sm":0.875,"base":1,"lg":1.125,"xl":1.25,"2xl":1.5,"3xl":1.875},"fontWeight":{"light":300,"normal":400,"medium":500,"semibold":600,"bold":700}},"borderRadius":{"sm":0.125,"base":0.25,"lg":0.5,"xl":0.75},"boxShadow":{"sm":"0 1px 2px 0 rgba(40, 44, 52, 0.2)","base":"0 1px 3px 0 rgba(40, 44, 52, 0.3), 0 1px 2px 0 rgba(40, 44, 52, 0.2)","lg":"0 10px 15px -3px rgba(40, 44, 52, 0.3), 0 4px 6px -2px rgba(40, 44, 52, 0.2)"}},"tags":["dark","popular"]},{"id":"catppuccin","label":"Catppuccin","theme":{"name":"catppuccin","colors":{"primary":"#89b4fa","secondary":"#cba6f7","accent":"#f5c2e7","success":"#a6e3a1","warning":"#f9e2af","error":"#f38ba8","info":"#89dceb","light":"#cdd6f4","dark":"#11111b","muted":"#6c7086","highlight":"#181825","text":{"primary":"#cdd6f4","secondary":"#bac2de","muted":"#6c7086","light":"#ffffff"},"background":{"primary":"#1e1e2e","secondary":"#181825","dark":"#11111b"},"border":{"light":"#181825","dark":"#000000"},"syntax":{"comment":"#6c7086","string":"#a6e3a1","number":"#fab387","keyword":"#cba6f7","function":"#89b4fa","variable":"#cdd6f4","operator":"#89dceb","type":"#f5c2e7","tag":"#f38ba8","attr":"#89b4fa","default":"#cdd6f4"}},"spacing":{"xs":0.25,"sm":0.5,"md":1,"lg":1.5,"xl":2},"typography":{"fontSize":{"xs":0.75,"sm":0.875,"base":1,"lg":1.125,"xl":1.25,"2xl":1.5,"3xl":1.875},"fontWeight":{"light":300,"normal":400,"medium":500,"semibold":600,"bold":700}},"borderRadius":{"sm":0.125,"base":0.25,"lg":0.5,"xl":0.75},"boxShadow":{"sm":"0 1px 2px 0 rgba(30, 30, 46, 0.2)","base":"0 1px 3px 0 rgba(30, 30, 46, 0.3), 0 1px 2px 0 rgba(30, 30, 46, 0.2)","lg":"0 10px 15px -3px rgba(30, 30, 46, 0.3), 0 4px 6px -2px rgba(30, 30, 46, 0.2)"}},"tags":["dark","pastel"]},{"id":"rose-pine","label":"Rose Pine","theme":{"name":"rose-pine","colors":{"primary":"#9ccfd8","secondary":"#c4a7e7","accent":"#f6c177","success":"#31748f","warning":"#f6c177","error":"#eb6f92","info":"#9ccfd8","light":"#e0def4","dark":"#191724","muted":"#6e6a86","highlight":"#1f1d2e","text":{"primary":"#e0def4","secondary":"#cecacd","muted":"#6e6a86","light":"#ffffff"},"background":{"primary":"#191724","secondary":"#1f1d2e","dark":"#12101a"},"border":{"light":"#1f1d2e","dark":"#000000"},"syntax":{"comment":"#6e6a86","string":"#9ccfd8","number":"#ea9a97","keyword":"#c4a7e7","function":"#31748f","variable":"#e0def4","operator":"#f6c177","type":"#9ccfd8","tag":"#eb6f92","attr":"#f6c177","default":"#e0def4"}},"spacing":{"xs":0.25,"sm":0.5,"md":1,"lg":1.5,"xl":2},"typography":{"fontSize":{"xs":0.75,"sm":0.875,"base":1,"lg":1.125,"xl":1.25,"2xl":1.5,"3xl":1.875},"fontWeight":{"light":300,"normal":400,"medium":500,"semibold":600,"bold":700}},"borderRadius":{"sm":0.125,"base":0.25,"lg":0.5,"xl":0.75},"boxShadow":{"sm":"0 1px 2px 0 rgba(25, 23, 36, 0.2)","base":"0 1px 3px 0 rgba(25, 23, 36, 0.3), 0 1px 2px 0 rgba(25, 23, 36, 0.2)","lg":"0 10px 15px -3px rgba(25, 23, 36, 0.3), 0 4px 6px -2px rgba(25, 23, 36, 0.2)"}},"tags":["dark","elegant"]},{"id":"kanagawa","label":"Kanagawa","theme":{"name":"kanagawa","colors":{"primary":"#8ba4b0","secondary":"#a292a3","accent":"#c47fd5","success":"#76946a","warning":"#c0a36e","error":"#c34043","info":"#7e9cd8","light":"#dcd7ba","dark":"#1f1f28","muted":"#727169","highlight":"#2a2a37","text":{"primary":"#dcd7ba","secondary":"#c8c093","muted":"#727169","light":"#ffffff"},"background":{"primary":"#1f1f28","secondary":"#2a2a37","dark":"#16161d"},"border":{"light":"#2a2a37","dark":"#000000"},"syntax":{"comment":"#727169","string":"#98bb6c","number":"#d27e99","keyword":"#957fb8","function":"#7e9cd8","variable":"#dcd7ba","operator":"#c0a36e","type":"#7aa89f","tag":"#c34043","attr":"#7fb4ca","default":"#dcd7ba"}},"spacing":{"xs":0.25,"sm":0.5,"md":1,"lg":1.5,"xl":2},"typography":{"fontSize":{"xs":0.75,"sm":0.875,"base":1,"lg":1.125,"xl":1.25,"2xl":1.5,"3xl":1.875},"fontWeight":{"light":300,"normal":400,"medium":500,"semibold":600,"bold":700}},"borderRadius":{"sm":0.125,"base":0.25,"lg":0.5,"xl":0.75},"boxShadow":{"sm":"0 1px 2px 0 rgba(31, 31, 40, 0.2)","base":"0 1px 3px 0 rgba(31, 31, 40, 0.3), 0 1px 2px 0 rgba(31, 31, 40, 0.2)","lg":"0 10px 15px -3px rgba(31, 31, 40, 0.3), 0 4px 6px -2px rgba(31, 31, 40, 0.2)"}},"tags":["dark","japanese"]}]`).reduce((e,t)=>(e[t.id]=t.theme.colors,e),{});function Te(e){let t=e.replace(`#`,``),n=parseInt(t.substring(0,2),16),r=parseInt(t.substring(2,4),16),i=parseInt(t.substring(4,6),16);return(.299*n+.587*r+.114*i)/255<.5}function Ee(e){return{base:Te(e.background.primary)?`vs-dark`:`vs`,inherit:!0,rules:[{token:``,foreground:e.text.primary.replace(`#`,``),background:e.background.primary.replace(`#`,``)},{token:`comment`,foreground:e.syntax.comment.replace(`#`,``),fontStyle:`italic`},{token:`string`,foreground:e.syntax.string.replace(`#`,``)},{token:`number`,foreground:e.syntax.number.replace(`#`,``)},{token:`keyword`,foreground:e.syntax.keyword.replace(`#`,``)},{token:`type`,foreground:e.syntax.type.replace(`#`,``)},{token:`identifier`,foreground:e.syntax.variable.replace(`#`,``)},{token:`function`,foreground:e.syntax.function.replace(`#`,``)},{token:`variable`,foreground:e.syntax.variable.replace(`#`,``)},{token:`operator`,foreground:e.syntax.operator.replace(`#`,``)},{token:`delimiter`,foreground:e.syntax.operator.replace(`#`,``)},{token:`tag`,foreground:e.syntax.tag.replace(`#`,``)},{token:`attribute.name`,foreground:e.syntax.attr.replace(`#`,``)},{token:`attribute.value`,foreground:e.syntax.string.replace(`#`,``)}],colors:{"editor.background":e.background.primary,"editor.foreground":e.text.primary,"editor.lineHighlightBackground":e.background.secondary,"editor.selectionBackground":`${e.syntax.function}40`,"editorLineNumber.foreground":e.text.muted,"editorLineNumber.activeForeground":e.text.secondary,"editorCursor.foreground":e.text.primary,"editorIndentGuide.background":e.border.light,"editorWidget.background":e.background.secondary,"editorWidget.border":e.border.light,"scrollbarSlider.background":`${e.text.muted}40`,"scrollbarSlider.hoverBackground":`${e.text.muted}60`}}}var De=new Set;function J(e,t){let n=t.toLowerCase().replace(/\s+/g,`-`),r=we[n];if(!r)return`vs-dark`;if(!De.has(n)){let t=Ee(r);e.editor.defineTheme(n,t),De.add(n)}return n}function Y(e,n,r={}){let i=t.parse(e),a=new URLSearchParams({projectPath:i.projectPath});for(let[e,t]of Object.entries(r))t!==void 0&&a.set(e,String(t));return`/sessions/${encodeURIComponent(i.sessionId)}/browser/${n}?${a.toString()}`}var X={navigate:async(e,t)=>x(Y(e,`navigate`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}),snapshot:async(e,t={})=>x(Y(e,`snapshot`,t)),interact:async(e,t)=>x(Y(e,`interact`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}),inspect:async(e,t)=>x(Y(e,`inspect`,t)),screenshot:async(e,t={})=>{let n=await fetch(Y(e,`inspect`,{...t,target:`screenshot`}));if(!n.ok){let e=await n.json().catch(()=>void 0);throw Error(e?.error?.message||`Failed to capture browser image`)}return n.blob()},reset:async e=>{await x(Y(e,`reset`),{method:`POST`})}},Oe={en:{frameTitle:`Project preview`,empty:`No preview open`,loading:`Loading preview…`},zh:{frameTitle:`项目预览`,empty:`未打开项目预览`,loading:`正在加载预览…`}};function ke({url:e,revision:t,loadState:n,onLoad:r,onError:i}){let{locale:a}=d(),o=Oe[a];return(0,U.jsx)(`section`,{"data-preview-browser":!0,className:`relative h-full min-h-0 overflow-hidden bg-white`,children:e?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`iframe`,{"data-preview-browser-frame":!0,src:e,title:o.frameTitle,sandbox:`allow-downloads allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts`,referrerPolicy:`no-referrer`,onLoad:r,onError:i,className:`block h-full w-full border-0 bg-white`},`${e}:${t}`),n===`loading`&&(0,U.jsxs)(`div`,{className:`pointer-events-none absolute inset-x-0 top-0 flex h-8 items-center justify-center border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-canvas)/0.92)] backdrop-blur-sm`,children:[(0,U.jsx)(fe,{className:`mr-2 h-3.5 w-3.5 animate-spin text-[hsl(var(--deck-accent))]`}),(0,U.jsx)(`span`,{className:`font-mono text-[10.5px] text-[hsl(var(--deck-ink-muted))]`,children:o.loading})]})]}):(0,U.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 bg-[hsl(var(--deck-canvas-veil))] text-center`,children:[(0,U.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] text-[hsl(var(--deck-ink-faint))]`,children:(0,U.jsx)(L,{className:`h-5 w-5`})}),(0,U.jsx)(`span`,{className:`font-mono text-[11px] text-[hsl(var(--deck-ink-muted))]`,children:o.empty})]})})}var Ae={en:{unavailable:`No active Session`,empty:`No Test page`,screenshotAlt:`Chromium page`,selectedRef:`Selected ref`,noRef:`No ref selected`,valuePlaceholder:`Input value`,click:`Click selected element`,fill:`Fill selected control`,scrollUp:`Scroll up`,scrollDown:`Scroll down`,snapshot:`Refresh snapshot`,reset:`Reset Test browser`,dom:`DOM`,console:`Console`,network:`Network`,errors:`Errors`,noEntries:`No entries`,user:`User`,agent:`Agent`,sourceAria:`Test browser source`,selectElement:`Select element from page`,stopSelecting:`Stop selecting elements`,addToConversation:`Add to conversation`},zh:{unavailable:`没有活动 Session`,empty:`未打开测试页面`,screenshotAlt:`Chromium 页面`,selectedRef:`已选 ref`,noRef:`未选择 ref`,valuePlaceholder:`输入内容`,click:`点击已选元素`,fill:`填入已选控件`,scrollUp:`向上滚动`,scrollDown:`向下滚动`,snapshot:`刷新快照`,reset:`重置测试浏览器`,dom:`DOM`,console:`控制台`,network:`网络`,errors:`错误`,noEntries:`暂无记录`,user:`用户`,agent:`Agent`,sourceAria:`测试浏览器来源`,selectElement:`从页面选择元素`,stopSelecting:`停止选择元素`,addToConversation:`添加到对话`}};function Z(e){return e.split(`
|
|
3
|
-
`).map(e=>{let t=e.match(/\[box=(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)\]/)?.slice(1).map(Number);return{text:e,ref:e.match(/\[ref=([a-z][a-z0-9]*)\]/)?.[1],...t&&t.length===4&&t.every(Number.isFinite)&&t[2]>0&&t[3]>0?{box:{x:t[0],y:t[1],width:t[2],height:t[3]}}:{}}})}function Q(e){return JSON.stringify(e.slice(0,2048)).replaceAll(`<`,`\\u003c`).replaceAll(`>`,`\\u003e`)}function je(e,t){let n=e.text.replace(/\s+\[ref=[^\]]+\]/g,``).replace(/\s+\[box=[^\]]+\]/g,``).trim();return[`<browser_element_context trust="untrusted">`,`url: ${Q(t.url)}`,`title: ${Q(t.title)}`,`element: ${Q(n)}`,...t.viewport?[`viewport: [${t.viewport.width}, ${t.viewport.height}]`]:[],...e.box?[`viewport_box: [${e.box.x}, ${e.box.y}, ${e.box.width}, ${e.box.height}]`]:[],`</browser_element_context>`].join(`
|
|
4
|
-
`)}function Me(e){return[e.kind,e.level,e.method,e.status,e.url,e.text].filter(e=>e!==void 0&&e!==``).join(` · `)}function Ne({source:e,agentAvailable:t,sessionAvailable:n,observation:r,screenshotUrl:i,interaction:a,pointerRevision:o,busy:s,error:c,diagnostics:l,diagnosticsLoading:u,onInteract:f,onInspect:m,onSnapshot:ee,onReset:_,onSourceChange:v,pickerActive:y,onPickerChange:te,onAddToConversation:x}){let{locale:re}=d(),C=Ae[re],[w,T]=(0,H.useState)(null),[D,ae]=(0,H.useState)(``),[O,se]=(0,H.useState)(`dom`),le=(0,H.useRef)(null),de=(0,H.useRef)(null),[k,pe]=(0,H.useState)({left:0,top:0,width:0,height:0,sourceWidth:0,sourceHeight:0}),A=e===`agent`,M=(0,H.useMemo)(()=>Z(r?.snapshot??``),[r?.snapshot]),P=O===`dom`?[]:l[O]??[],F=(0,H.useMemo)(()=>M.filter(e=>!!(e.ref&&e.box)).sort((e,t)=>t.box.width*t.box.height-e.box.width*e.box.height),[M]),I=(0,H.useMemo)(()=>M.find(e=>e.ref===w),[w,M]);(0,H.useEffect)(()=>{T(null)},[r?.snapshotId]),(0,H.useEffect)(()=>{A&&se(`dom`)},[A]);let L=(0,H.useCallback)(()=>{let e=le.current,t=de.current,n=r?.viewport?.width??a?.viewport?.width??t?.naturalWidth,i=r?.viewport?.height??a?.viewport?.height??t?.naturalHeight;if(!e||!n||!i){pe({left:0,top:0,width:0,height:0,sourceWidth:0,sourceHeight:0});return}let o=e.getBoundingClientRect(),s=Math.min(o.width/n,o.height/i),c=n*s,l=i*s;pe({left:(o.width-c)/2,top:(o.height-l)/2,width:c,height:l,sourceWidth:n,sourceHeight:i})},[a?.viewport?.height,a?.viewport?.width,r?.viewport?.height,r?.viewport?.width]);(0,H.useEffect)(()=>{L();let e=le.current;if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(L);return t.observe(e),()=>t.disconnect()},[L,i]);let R=(0,H.useMemo)(()=>{let e=a?.targetBox,t=a?.viewport;if(!e||!t||k.width<=0||k.height<=0)return null;let n=Math.min(t.width,Math.max(0,e.x+e.width/2)),r=Math.min(t.height,Math.max(0,e.y+e.height/2));return{left:k.left+n/t.width*k.width,top:k.top+r/t.height*k.height}},[a,k]),me=e=>{A&&e!==`dom`||(se(e),e!==`dom`&&m(e))};return(0,U.jsxs)(`section`,{"data-browser-test":!0,"data-browser-source":e,"data-browser-snapshot-id":r?.snapshotId,className:`flex h-full min-h-0 flex-col bg-[hsl(var(--deck-canvas))]`,children:[(0,U.jsxs)(`div`,{ref:le,className:`relative flex min-h-0 flex-1 items-center justify-center overflow-hidden bg-neutral-950`,children:[i?(0,U.jsx)(`img`,{ref:de,"data-browser-test-screenshot":!0,src:i,alt:C.screenshotAlt,onLoad:L,className:`h-full w-full object-contain`}):(0,U.jsxs)(`div`,{className:`flex flex-col items-center gap-3 text-[hsl(var(--deck-ink-faint))]`,children:[(0,U.jsx)(N,{className:`h-7 w-7`}),(0,U.jsx)(`span`,{className:`font-mono text-[11px]`,children:n?C.empty:C.unavailable})]}),!A&&i&&k.width>0&&k.height>0&&(0,U.jsxs)(`div`,{"data-browser-element-layer":!0,className:`pointer-events-none absolute z-20`,style:{left:k.left,top:k.top,width:k.width,height:k.height},children:[y&&!s&&F.map(e=>(0,U.jsx)(`button`,{type:`button`,"data-browser-pick-ref":e.ref,"aria-label":`${C.selectElement}: ${e.text}`,title:e.text,onClick:()=>T(e.ref),className:E(`pointer-events-auto absolute cursor-crosshair border border-cyan-300/70 bg-cyan-300/5 transition-colors hover:border-cyan-300 hover:bg-cyan-300/15 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-cyan-300`,w===e.ref&&`border-2 border-cyan-300 bg-cyan-300/15`),style:{left:`${e.box.x/k.sourceWidth*100}%`,top:`${e.box.y/k.sourceHeight*100}%`,width:`${e.box.width/k.sourceWidth*100}%`,height:`${e.box.height/k.sourceHeight*100}%`}},e.ref)),!y&&I?.box&&(0,U.jsx)(`div`,{"data-browser-selected-element":I.ref,className:`absolute border-2 border-cyan-300 bg-cyan-300/10 shadow-[0_0_0_1px_rgba(8,145,178,0.35)]`,style:{left:`${I.box.x/k.sourceWidth*100}%`,top:`${I.box.y/k.sourceHeight*100}%`,width:`${I.box.width/k.sourceWidth*100}%`,height:`${I.box.height/k.sourceHeight*100}%`}})]}),!A&&I&&i&&(0,U.jsxs)(S,{type:`button`,"data-browser-add-to-composer":!0,disabled:s,onClick:()=>{r&&(x(je(I,r)),T(null),te(!1))},className:`absolute bottom-3 left-3 z-30 h-8 rounded-md bg-neutral-950 px-3 font-mono text-[10.5px] text-white shadow-lg hover:bg-neutral-800`,children:[(0,U.jsx)(g,{className:`mr-1.5 h-3.5 w-3.5`}),C.addToConversation]}),A&&R&&(0,U.jsxs)(`div`,{"data-browser-agent-pointer":!0,"data-browser-action":a?.action,className:`pointer-events-none absolute z-10 transition-[left,top] duration-300 ease-out`,style:R,children:[(0,U.jsx)(`span`,{className:`absolute -left-2 -top-2 h-4 w-4 animate-ping rounded-full bg-cyan-400/70`},o),(0,U.jsx)(_e,{className:`relative h-5 w-5 fill-white text-neutral-950 drop-shadow-[0_1px_2px_rgba(0,0,0,0.8)]`})]}),s&&(0,U.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black/35`,children:(0,U.jsx)(fe,{className:`h-5 w-5 animate-spin text-white`})}),c&&(0,U.jsx)(`div`,{role:`alert`,className:`absolute inset-x-0 bottom-0 border-t border-red-500/30 bg-red-950/90 px-3 py-2 font-mono text-[10.5px] text-red-200`,children:c})]}),(0,U.jsxs)(`div`,{className:`flex h-10 shrink-0 items-center gap-1 border-y border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-2`,children:[(0,U.jsx)(`div`,{role:`group`,"aria-label":C.sourceAria,className:`flex h-7 shrink-0 items-center border border-[hsl(var(--deck-border))]`,children:[[`user`,C.user,be],[`agent`,C.agent,oe]].map(([n,r,i])=>(0,U.jsxs)(`button`,{type:`button`,disabled:n===`agent`&&!t,"aria-pressed":e===n,onClick:()=>v(n),className:E(`flex h-full items-center gap-1 border-r border-[hsl(var(--deck-border))] px-1.5 font-mono text-[9.5px] text-[hsl(var(--deck-ink-muted))] last:border-r-0 disabled:opacity-40`,e===n&&`bg-[hsl(var(--deck-canvas-veil))] text-[hsl(var(--deck-ink))]`),children:[(0,U.jsx)(i,{className:`h-3 w-3`}),(0,U.jsx)(`span`,{children:r})]},n))}),(0,U.jsx)(S,{type:`button`,variant:`ghost`,size:`icon`,disabled:A||!r||!i||s,"aria-pressed":y,title:y?C.stopSelecting:C.selectElement,"aria-label":y?C.stopSelecting:C.selectElement,onClick:()=>void te(!y),className:E(`h-7 w-7 rounded-md`,y&&`bg-[hsl(var(--deck-accent-soft))] text-[hsl(var(--deck-accent))]`),children:(0,U.jsx)(ne,{className:`h-3.5 w-3.5`})}),(0,U.jsx)(`span`,{title:w?`${C.selectedRef}: ${w}`:C.noRef,className:`w-20 shrink-0 truncate font-mono text-[10px] text-[hsl(var(--deck-ink-muted))]`,children:w??`ref`}),(0,U.jsx)(S,{type:`button`,variant:`ghost`,size:`icon`,disabled:A||!w||s,title:C.click,"aria-label":C.click,onClick:()=>{w&&f({kind:`click`},w)},className:`h-7 w-7 rounded-md`,children:(0,U.jsx)(_e,{className:`h-3.5 w-3.5`})}),(0,U.jsxs)(`div`,{className:`flex h-7 min-w-0 flex-1 items-center border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-canvas))] px-2`,children:[(0,U.jsx)(`input`,{value:D,onChange:e=>ae(e.target.value),disabled:A,placeholder:C.valuePlaceholder,"aria-label":C.valuePlaceholder,className:`min-w-0 flex-1 bg-transparent font-mono text-[10.5px] outline-none`}),(0,U.jsx)(S,{type:`button`,variant:`ghost`,size:`icon`,disabled:A||!w||!D||s,title:C.fill,"aria-label":C.fill,onClick:()=>{w&&f({kind:`fill`,value:D},w)},className:`h-6 w-6 rounded-md`,children:(0,U.jsx)(ie,{className:`h-3 w-3`})})]}),(0,U.jsx)(S,{type:`button`,variant:`ghost`,size:`icon`,disabled:A||!r||s,title:C.scrollUp,"aria-label":C.scrollUp,onClick:()=>void f({kind:`scroll`,direction:`up`,amount:560}),className:`h-7 w-7 rounded-md`,children:(0,U.jsx)(h,{className:`h-3.5 w-3.5`})}),(0,U.jsx)(S,{type:`button`,variant:`ghost`,size:`icon`,disabled:A||!r||s,title:C.scrollDown,"aria-label":C.scrollDown,onClick:()=>void f({kind:`scroll`,direction:`down`,amount:560}),className:`h-7 w-7 rounded-md`,children:(0,U.jsx)(p,{className:`h-3.5 w-3.5`})}),(0,U.jsx)(S,{type:`button`,variant:`ghost`,size:`icon`,disabled:A||!r||s,title:C.snapshot,"aria-label":C.snapshot,onClick:()=>void ee(),className:`h-7 w-7 rounded-md`,children:(0,U.jsx)(ue,{className:`h-3.5 w-3.5`})}),(0,U.jsx)(S,{type:`button`,variant:`ghost`,size:`icon`,disabled:A||!n||s,title:C.reset,"aria-label":C.reset,onClick:()=>{T(null),_()},className:`h-7 w-7 rounded-md`,children:(0,U.jsx)(ce,{className:`h-3.5 w-3.5`})})]}),(0,U.jsxs)(`div`,{className:`flex h-[38%] min-h-32 shrink-0 flex-col overflow-hidden`,children:[(0,U.jsx)(`div`,{role:`tablist`,className:`grid h-8 shrink-0 grid-cols-4 border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]`,children:[[`dom`,C.dom,j],[`console`,C.console,ye],[`network`,C.network,V],[`page-errors`,C.errors,b]].map(([e,t,n])=>(0,U.jsxs)(`button`,{type:`button`,role:`tab`,disabled:A&&e!==`dom`,"aria-selected":O===e,onClick:()=>me(e),className:E(`flex min-w-0 items-center justify-center gap-1 border-r border-[hsl(var(--deck-border))] px-1 font-mono text-[10px] text-[hsl(var(--deck-ink-muted))] last:border-r-0`,O===e&&`bg-[hsl(var(--deck-canvas-veil))] text-[hsl(var(--deck-ink))]`),children:[(0,U.jsx)(n,{className:`h-3 w-3 shrink-0`}),(0,U.jsx)(`span`,{className:`truncate`,children:t})]},e))}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto bg-[hsl(var(--deck-canvas-veil))] p-2 font-mono text-[10px] leading-5 text-[hsl(var(--deck-ink-muted))]`,children:O===`dom`?M.length>0?M.map((e,t)=>e.ref?(0,U.jsx)(`button`,{type:`button`,"data-browser-ref":e.ref,disabled:A,onClick:()=>T(e.ref??null),className:E(`block w-full whitespace-pre-wrap px-1 text-left hover:bg-[hsl(var(--deck-accent)/0.08)]`,w===e.ref&&`bg-[hsl(var(--deck-accent)/0.12)] text-[hsl(var(--deck-ink))]`),children:e.text},`${e.ref}:${t}`):(0,U.jsx)(`div`,{className:`whitespace-pre-wrap px-1`,children:e.text},`${e.text}:${t}`)):(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:C.noEntries}):u===O?(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,U.jsx)(fe,{className:`h-4 w-4 animate-spin`})}):P.length>0?P.map(e=>(0,U.jsx)(`div`,{className:`border-b border-[hsl(var(--deck-border))] px-1 py-1 last:border-b-0`,children:Me(e)},e.sequence)):(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:C.noEntries})})]})]})}var Pe=`http://localhost:3000`,$=2048,Fe=/^(?:localhost|127(?:\.\d{1,3}){3}|0\.0\.0\.0|\[::1\]|10(?:\.\d{1,3}){3}|192\.168(?:\.\d{1,3}){2}|172\.(?:1[6-9]|2\d|3[01])(?:\.\d{1,3}){2})(?::\d+)?$/i,Ie=/^[a-z\d.-]+:\d+$/i;function Le(){return typeof window>`u`?void 0:window.location.origin}function Re(e,t=Le(),n=!1){let r=e.trim();if(!r)return{ok:!1,reason:`empty`};if(r.length>$)return{ok:!1,reason:`invalid`};let i=r,a=i.split(/[/?#]/,1)[0]??``;Fe.test(a)||Ie.test(a)?i=`http://${i}`:i.startsWith(`//`)?i=`https:${i}`:/^[a-z][a-z\d+.-]*:/i.test(i)||(i=`https://${i}`);let o;try{o=new URL(i)}catch{return{ok:!1,reason:`invalid`}}return o.protocol!==`http:`&&o.protocol!==`https:`?{ok:!1,reason:`protocol`}:o.username||o.password?{ok:!1,reason:`credentials`}:n&&t&&o.origin===t?{ok:!1,reason:`same_origin`}:{ok:!0,url:o.href}}function ze(e,t=Le()){return Re(e,t,!0)}function Be(e,t){if(e.entries[e.index]===t)return e;let n=[...e.entries.slice(0,e.index+1),t].slice(-50);return{entries:n,index:n.length-1}}function Ve(e){try{let t=new URL(e).protocol;return t===`http:`||t===`https:`}catch{return!1}}var He={en:{modeAria:`Browser mode`,preview:`Preview`,test:`Test`,external:`External`,noSession:`No active Session`,snapshotRefreshed:`The page changed. Snapshot refreshed; select the element again.`,toolbarAria:`Browser navigation`,addressAria:`Browser address`,addressPlaceholder:`Enter an HTTP or HTTPS URL`,back:`Go back`,forward:`Go forward`,reload:`Reload page`,go:`Open address`,openExternal:`Open in system browser`,externalEmpty:`No external page selected`,status:{idle:`Idle`,loading:`Loading…`,ready:`Ready`,error:`Failed`},error:{empty:`Enter a URL.`,invalid:`Enter a valid URL.`,protocol:`Only HTTP and HTTPS URLs are supported.`,credentials:`URLs containing credentials are not allowed.`,same_origin:`The Blade Web origin cannot be embedded in itself.`}},zh:{modeAria:`浏览器模式`,preview:`预览`,test:`测试`,external:`外部`,noSession:`没有活动 Session`,snapshotRefreshed:`页面已变化,快照已刷新,请重新选择元素。`,toolbarAria:`浏览器导航`,addressAria:`浏览器地址`,addressPlaceholder:`输入 HTTP 或 HTTPS 地址`,back:`后退`,forward:`前进`,reload:`刷新页面`,go:`打开地址`,openExternal:`在系统浏览器中打开`,externalEmpty:`未选择外部页面`,status:{idle:`空闲`,loading:`正在加载…`,ready:`就绪`,error:`失败`},error:{empty:`请输入地址。`,invalid:`请输入有效地址。`,protocol:`仅支持 HTTP 与 HTTPS 地址。`,credentials:`不允许使用包含凭据的地址。`,same_origin:`不能在面板中嵌套 Blade Web 自身地址。`}}};function Ue({sessionRef:e=null,onElementAdded:t}){let{locale:r}=d(),i=He[r],s=a(e=>e.agentActivity),c=A(e=>o(e.historySurfaceSelection)),l=e!==null&&s!==null&&s.sessionRef.sessionId===e.sessionId&&s.sessionRef.projectPath===e.projectPath,[u,f]=(0,H.useState)(`preview`),[p,m]=(0,H.useState)(`user`),[h,g]=(0,H.useState)(Pe),[v,y]=(0,H.useState)({entries:[],index:-1}),b=(0,H.useRef)(v),[ne,x]=(0,H.useState)(0),[re,C]=(0,H.useState)(`idle`),[w,T]=(0,H.useState)(null),[D,ie]=(0,H.useState)(null),[O,oe]=(0,H.useState)(null),[se,ce]=(0,H.useState)(null),[de,j]=(0,H.useState)(!1),[M,N]=(0,H.useState)(null),[P,F]=(0,H.useState)(!1),[I,R]=(0,H.useState)(null),[he,z]=(0,H.useState)(!1),[_e,ve]=(0,H.useState)(null),[ye,B]=(0,H.useState)({}),[be,xe]=(0,H.useState)(null),V=(0,H.useRef)(0),W=(0,H.useRef)(null),G=(0,H.useRef)(null),Se=v.entries[v.index]??null,K=u===`preview`?Se:u===`test`?p===`agent`&&l?s?.url??null:D?.url??null:_e,Ce=(0,H.useMemo)(()=>{if(!K)return``;try{return new URL(K).host}catch{return``}},[K]),q=u===`preview`?re:u===`test`?p===`agent`&&l?de||s?.phase===`running`?`loading`:M||s?.phase===`error`?`error`:se?`ready`:`idle`:P?`loading`:I?`error`:D?`ready`:`idle`:_e?`ready`:`idle`,we=w===null?u===`test`?p===`agent`&&l?M??s?.errorCode??null:I:null:i.error[w],Te=e=>{W.current&&URL.revokeObjectURL(W.current),W.current=e,oe(e)},Ee=e=>{G.current&&URL.revokeObjectURL(G.current),G.current=e,ce(e)};(0,H.useEffect)(()=>{let e=V.current+1;return V.current=e,ie(null),m(`user`),R(null),N(null),j(!1),z(!1),B({}),Te(null),Ee(null),()=>{V.current===e&&(V.current+=1)}},[c,e?.projectPath,e?.sessionId]),(0,H.useEffect)(()=>()=>{W.current&&URL.revokeObjectURL(W.current),G.current&&URL.revokeObjectURL(G.current)},[]),(0,H.useEffect)(()=>{!c&&e&&l&&s&&(f(`test`),m(`agent`),T(null),s.url&&g(s.url))},[s?.revision,l,c,e]),(0,H.useEffect)(()=>{if(c||!e||!l||!s||!s.pageId||!s.origin||s.frameRevision===0)return;if(!Ve(s.origin)){j(!1),N(null),Ee(null);return}let t=V.current,n=s.frameRevision,r=()=>{let r=a.getState().agentActivity;return V.current===t&&r?.frameRevision===n&&r.sessionRef.sessionId===e.sessionId&&r.sessionRef.projectPath===e.projectPath};j(!0),N(null),X.screenshot(e,{source:`agent`,pageId:s.pageId,expectedOrigin:s.origin}).then(e=>{r()&&Ee(URL.createObjectURL(e))}).catch(e=>{r()&&N(e instanceof Error?e.message:String(e))}).finally(()=>{r()&&j(!1)})},[s?.frameRevision,s?.origin,s?.pageId,l,c,e]);let De=async(e,t,r)=>{if(n(A.getState()))return;let i=await X.screenshot(e,{pageId:t.pageId,expectedOrigin:t.origin});V.current===r&&Te(URL.createObjectURL(i))},J=async(e,t,n)=>{V.current===n&&(ie(t),g(t.url),B({}),await De(e,t,n))},Y=async t=>{if(n(A.getState()))return;if(!e){R(i.noSession);return}let r=V.current;z(!1),F(!0),R(null);try{let n=await X.navigate(e,t);await J(e,n,r)}catch(e){V.current===r&&R(e instanceof Error?e.message:String(e))}finally{V.current===r&&F(!1)}},Oe=e=>{let t=Be(b.current,e);b.current=t,y(t),g(e),C(`loading`)},Ae=e=>{if(e.preventDefault(),n(A.getState()))return;let t=u===`preview`?ze(h):Re(h);if(!t.ok){T(t.reason);return}if(T(null),u===`preview`){t.url===Se&&x(e=>e+1),Oe(t.url);return}if(u===`test`){if(p===`agent`)return;Y({action:`goto`,url:t.url});return}ve(t.url),g(t.url),window.open(t.url,`_blank`,`noopener,noreferrer`)},Z=e=>{let t=b.current.index+e,n=b.current.entries[t];if(!n)return;let r={...b.current,index:t};b.current=r,y(r),g(n),C(`loading`)},Q=e=>{if(!n(A.getState())){if(u===`preview`){e===`back`?Z(-1):e===`forward`?Z(1):Se&&(C(`loading`),x(e=>e+1));return}u===`test`&&p===`user`&&D&&Y({action:e,pageId:D.pageId,expectedOrigin:D.origin})}},je=e=>{z(!1),f(e),T(null),R(null);let t=e===`preview`?Se:e===`test`?p===`agent`&&l?s?.url:D?.url:_e;t&&g(t)},Me=e=>{if(e===`agent`&&!l)return;m(e),z(!1),T(null),R(null),N(null);let t=e===`agent`?s?.url:D?.url;t&&g(t)},$=async(t,r)=>{if(n(A.getState())||!e||!D)return;let a=D,o=V.current;z(!1),F(!0),R(null);try{let i=await X.interact(e,{pageId:a.pageId,snapshotId:a.snapshotId,expectedOrigin:a.origin,...r?{ref:r}:{},action:t});if(i.outcome===`applied`)await J(e,i.observation,o);else if(i.outcome===`applied_observation_failed`){if(n(A.getState()))return;let t=await X.snapshot(e,{pageId:i.pageId});await J(e,t,o)}else R(i.errorCode)}catch(t){if(V.current===o){let r=t instanceof Error?t.message:String(t);if(/snapshot is stale/i.test(r))try{if(n(A.getState()))return;let t=await X.snapshot(e,{pageId:a.pageId});await J(e,t,o),V.current===o&&R(i.snapshotRefreshed)}catch(e){V.current===o&&R(e instanceof Error?e.message:String(e))}else R(r)}}finally{V.current===o&&F(!1)}},Fe=async(t=!1)=>{if(n(A.getState())||!e||!D)return!1;let r=V.current;F(!0),R(null);try{let n=await X.snapshot(e,{pageId:D.pageId,...t?{includeBoxes:!0}:{}});return await J(e,n,r),V.current===r}catch(e){return V.current===r&&R(e instanceof Error?e.message:String(e)),!1}finally{V.current===r&&F(!1)}},Ie=async t=>{if(n(A.getState())||!e||!D)return;let r=V.current;xe(t);try{let n=await X.inspect(e,{target:t,pageId:D.pageId,expectedOrigin:D.origin});V.current===r&&B(e=>({...e,[t]:n.entries??[]}))}catch(e){V.current===r&&R(e instanceof Error?e.message:String(e))}finally{V.current===r&&xe(null)}},Le=async e=>{if(!e){z(!1);return}p!==`agent`&&await Fe(!0)&&z(!0)},Ue=r=>{if(n(A.getState()))return;let i=e?`session:${le(e)}`:`session:temporary`;k(i,r)&&(z(!1),t?.(),requestAnimationFrame(()=>ae()))},We=async()=>{if(n(A.getState())||!e)return;let t=V.current;z(!1),F(!0),R(null);try{await X.reset(e),V.current===t&&(ie(null),B({}),Te(null))}catch(e){V.current===t&&R(e instanceof Error?e.message:String(e))}finally{V.current===t&&F(!1)}},Ge=()=>{if(n(A.getState()))return;let e=Re(K??h);if(!e.ok){T(e.reason);return}ve(e.url),window.open(e.url,`_blank`,`noopener,noreferrer`)},Ke=u===`preview`?v.index>0:u===`test`&&p===`user`&&!!D,qe=u===`preview`?v.index>=0&&v.index<v.entries.length-1:u===`test`&&p===`user`&&!!D,Je=u===`test`&&p===`agent`,Ye=p===`agent`?de||s?.phase===`running`:P;return c?null:(0,U.jsxs)(`section`,{"data-browser-panel":!0,"data-browser-mode":u,"data-browser-test-source":p,"data-browser-history-count":v.entries.length,"data-browser-history-index":v.index,className:`flex h-full min-h-0 flex-col bg-[hsl(var(--deck-canvas))]`,children:[(0,U.jsx)(`div`,{role:`tablist`,"aria-label":i.modeAria,className:`grid h-9 shrink-0 grid-cols-3 border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]`,children:[[`preview`,i.preview,L],[`test`,i.test,me],[`external`,i.external,ge]].map(([e,t,n])=>(0,U.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":u===e,onClick:()=>je(e),className:E(`flex min-w-0 items-center justify-center gap-1.5 border-r border-[hsl(var(--deck-border))] px-2 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))] last:border-r-0`,u===e&&`bg-[hsl(var(--deck-canvas-veil))] text-[hsl(var(--deck-ink))]`),children:[(0,U.jsx)(n,{className:`h-3.5 w-3.5 shrink-0`}),(0,U.jsx)(`span`,{className:`truncate`,children:t})]},e))}),(0,U.jsxs)(`form`,{"aria-label":i.toolbarAria,onSubmit:Ae,className:`flex h-12 shrink-0 items-center gap-1 border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-2`,children:[(0,U.jsx)(S,{type:`button`,variant:`ghost`,size:`icon`,disabled:!Ke||u===`test`&&Ye,"aria-label":i.back,title:i.back,onClick:()=>Q(`back`),className:`h-8 w-8 rounded-md text-[hsl(var(--deck-ink-muted))]`,children:(0,U.jsx)(ee,{className:`h-4 w-4`})}),(0,U.jsx)(S,{type:`button`,variant:`ghost`,size:`icon`,disabled:!qe||u===`test`&&Ye,"aria-label":i.forward,title:i.forward,onClick:()=>Q(`forward`),className:`h-8 w-8 rounded-md text-[hsl(var(--deck-ink-muted))]`,children:(0,U.jsx)(_,{className:`h-4 w-4`})}),(0,U.jsx)(S,{type:`button`,variant:`ghost`,size:`icon`,disabled:u===`external`||Je||!K||u===`test`&&Ye,"aria-label":i.reload,title:i.reload,onClick:()=>Q(`reload`),className:`h-8 w-8 rounded-md text-[hsl(var(--deck-ink-muted))]`,children:(0,U.jsx)(ue,{className:E(`h-4 w-4`,q===`loading`&&`animate-spin`)})}),(0,U.jsxs)(`div`,{className:E(`flex h-8 min-w-0 flex-1 items-center gap-2 rounded-md border bg-[hsl(var(--deck-canvas))] px-2`,we?`border-red-500/70`:`border-[hsl(var(--deck-border))] focus-within:border-[hsl(var(--deck-accent)/0.65)]`),children:[(0,U.jsx)(L,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]`}),(0,U.jsx)(`input`,{"data-browser-panel-address":!0,"data-preview-browser-address":u===`preview`||void 0,value:h,readOnly:Je,onChange:e=>{g(e.target.value),T(null)},onKeyDown:e=>{e.key===`Escape`&&K&&(e.preventDefault(),g(K),T(null))},"aria-label":i.addressAria,placeholder:i.addressPlaceholder,autoCapitalize:`none`,autoComplete:`off`,spellCheck:!1,className:`min-w-0 flex-1 bg-transparent font-mono text-[11px] text-[hsl(var(--deck-ink))] outline-none placeholder:text-[hsl(var(--deck-ink-faint))]`})]}),(0,U.jsx)(S,{type:`submit`,variant:`ghost`,size:`icon`,"aria-label":i.go,title:i.go,disabled:Je||u===`test`&&Ye,className:`h-8 w-8 rounded-md text-[hsl(var(--deck-accent))]`,children:q===`loading`?(0,U.jsx)(fe,{className:`h-4 w-4 animate-spin`}):(0,U.jsx)(pe,{className:`h-4 w-4`})}),(0,U.jsx)(S,{type:`button`,variant:`ghost`,size:`icon`,disabled:!K,"aria-label":i.openExternal,title:i.openExternal,onClick:Ge,className:`h-8 w-8 rounded-md text-[hsl(var(--deck-ink-muted))]`,children:(0,U.jsx)(te,{className:`h-4 w-4`})})]}),we&&u!==`test`&&(0,U.jsx)(`div`,{role:`alert`,className:`shrink-0 border-b border-red-500/25 bg-red-500/10 px-3 py-2 font-mono text-[10.5px] text-red-700 dark:text-red-300`,children:we}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:u===`preview`?(0,U.jsx)(ke,{url:Se,revision:ne,loadState:re,onLoad:()=>C(`ready`),onError:()=>C(`error`)}):u===`test`?(0,U.jsx)(Ne,{source:p,agentAvailable:l,sessionAvailable:!!e,observation:p===`agent`?null:D,screenshotUrl:p===`agent`?se:O,interaction:p===`agent`?s?.interaction:void 0,pointerRevision:p===`agent`?s?.pointerRevision??0:0,busy:Ye,error:we,diagnostics:p===`agent`?{}:ye,diagnosticsLoading:p===`agent`?null:be,onInteract:$,onInspect:Ie,onSnapshot:async()=>{await Fe()},onReset:We,onSourceChange:Me,pickerActive:he,onPickerChange:Le,onAddToConversation:Ue}):(0,U.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 bg-[hsl(var(--deck-canvas-veil))]`,children:[(0,U.jsx)(ge,{className:`h-7 w-7 text-[hsl(var(--deck-ink-faint))]`}),(0,U.jsx)(`span`,{className:`font-mono text-[11px] text-[hsl(var(--deck-ink-muted))]`,children:_e?new URL(_e).host:i.externalEmpty}),(0,U.jsxs)(S,{type:`button`,variant:`outline`,onClick:Ge,disabled:!h.trim(),className:`h-8 rounded-md font-mono text-[11px]`,children:[(0,U.jsx)(te,{className:`mr-2 h-3.5 w-3.5`}),i.openExternal]})]})}),(0,U.jsxs)(`div`,{"data-browser-panel-status":q,"data-preview-browser-status":u===`preview`?q:void 0,"aria-live":`polite`,className:`flex h-7 shrink-0 items-center justify-between border-t border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-3 font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]`,children:[(0,U.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(`span`,{className:E(`h-1.5 w-1.5 shrink-0 rounded-full bg-[hsl(var(--deck-ink-faint))]`,q===`loading`&&`bg-amber-500`,q===`ready`&&`bg-emerald-500`,q===`error`&&`bg-red-500`)}),(0,U.jsx)(`span`,{children:i.status[q]})]}),(0,U.jsx)(`span`,{className:`ml-3 truncate`,children:Ce||i[u]})]})]})}function We(e){return e.normalize(`NFKC`).toLocaleLowerCase().trim()}function Ge(e,t,n){let r=We(t).split(/\s+/).filter(Boolean);return e.filter(e=>{if(n!==`all`&&e.status!==n)return!1;if(r.length===0)return!0;let t=We([e.title,e.subtitle,e.content].filter(Boolean).join(` `));return r.every(e=>t.includes(e))})}function Ke(e){return e.replace(/\/+$/,``).split(`/`).filter(Boolean).at(-1)||e}function qe(e,t){let n=We(t).split(/\s+/).filter(Boolean);return n.length===0?e:e.filter(e=>{let t=We([e.filePath,e.summary].filter(Boolean).join(` `));return n.every(e=>t.includes(e))})}function Je(e,t,n){return t===0?0:(e+n+t)%t}var Ye=20,Xe=20,Ze=160,Qe=240;function $e(e,t){let n=e=>e.replace(/\\/g,`/`).replace(/^\.?\//,``).replace(/\/+/g,`/`),r=n(e),i=n(t);return r===i||r.endsWith(`/${i}`)||i.endsWith(`/${r}`)}function et({diffs:e,expanded:t,targetPath:n,onToggle:r,onSetAllExpanded:i}){let a=c(),[o,s]=(0,H.useState)(``),l=`${o}\0${e.length}\0${e[0]?.filePath??``}\0${e.at(-1)?.filePath??``}`,[u,d]=(0,H.useState)({key:l,count:Ye}),f=u.key===l?u.count:Ye,p=(0,H.useMemo)(()=>qe(e,o),[e,o]),h=(0,H.useMemo)(()=>{let e=p.slice(0,f);if(!n)return e;let t=p.find(e=>e.filePath&&$e(e.filePath,n));return t&&!e.includes(t)?[...e,t]:e},[p,n,f]);return(0,U.jsxs)(`div`,{className:`space-y-3`,children:[(0,U.jsxs)(`div`,{className:`sticky top-0 z-10 space-y-2 bg-[hsl(var(--deck-canvas))] pb-1`,children:[(0,U.jsxs)(`div`,{className:`flex h-8 items-center gap-2 rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-2 focus-within:border-[hsl(var(--deck-accent)/0.6)]`,children:[(0,U.jsx)(T,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]`}),(0,U.jsx)(`input`,{type:`search`,"aria-label":a(`preview.diff.searchAria`),placeholder:a(`preview.diff.searchPlaceholder`),value:o,onChange:e=>s(e.target.value),className:`min-w-0 flex-1 bg-transparent font-mono text-[11px] text-[hsl(var(--deck-ink))] outline-none placeholder:text-[hsl(var(--deck-ink-faint))]`}),(0,U.jsxs)(`span`,{className:`font-mono text-[9px] tabular-nums text-[hsl(var(--deck-ink-faint))]`,children:[p.length,`/`,e.length]})]}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]`,children:[(0,U.jsx)(`span`,{children:a(`preview.diff.changedFiles`,{count:e.length})}),(0,U.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>i(!0),className:`inline-flex items-center gap-1 rounded px-1.5 py-1 transition-colors hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink-muted))]`,children:[(0,U.jsx)(m,{className:`h-3 w-3`}),a(`preview.diff.expandAll`)]}),(0,U.jsxs)(`button`,{type:`button`,onClick:()=>i(!1),className:`inline-flex items-center gap-1 rounded px-1.5 py-1 transition-colors hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink-muted))]`,children:[(0,U.jsx)(F,{className:`h-3 w-3`}),a(`preview.diff.collapseAll`)]})]})]})]}),p.length===0?(0,U.jsx)(`div`,{className:`rounded-lg border border-dashed border-[hsl(var(--deck-border))] p-6 text-center font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]`,children:a(`preview.diff.noMatches`)}):h.map(i=>{let a=i.filePath||`unknown`,o=e.indexOf(i),s=t[a]??o===0,c=!!(n&&$e(a,n));return(0,U.jsxs)(`div`,{"data-preview-diff-path":i.filePath,className:E(`overflow-hidden rounded-lg border border-[hsl(var(--deck-border))] transition-colors`,c&&`border-[hsl(var(--deck-accent)/0.7)] bg-[hsl(var(--deck-accent-soft))] ring-1 ring-[hsl(var(--deck-accent)/0.2)]`),children:[(0,U.jsxs)(`button`,{type:`button`,"aria-expanded":s,onClick:()=>r(a),className:`flex w-full items-center gap-2 bg-[hsl(var(--deck-surface-2))] px-3 py-2 transition-colors hover:bg-[hsl(var(--deck-surface))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[hsl(var(--deck-accent)/0.65)]`,children:[s?(0,U.jsx)(O,{className:`h-4 w-4 text-[hsl(var(--deck-ink-muted))]`}):(0,U.jsx)(y,{className:`h-4 w-4 text-[hsl(var(--deck-ink-muted))]`}),(0,U.jsx)(de,{className:`h-4 w-4 text-[hsl(var(--deck-ink-muted))]`}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left font-mono text-[13px] text-[hsl(var(--deck-ink))]`,children:Ke(a)}),i.summary&&(0,U.jsx)(`span`,{className:`shrink-0 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))]`,children:i.summary})]}),s&&(0,U.jsxs)(`div`,{className:`border-t border-[hsl(var(--deck-border))]`,children:[(0,U.jsx)(`div`,{className:`truncate px-3 py-1 font-mono text-[11px] text-[hsl(var(--deck-ink-faint))]`,children:i.filePath}),(0,U.jsx)(tt,{diff:i.diff})]})]},a)}),f<p.length&&(0,U.jsx)(`div`,{className:`flex justify-center pt-1`,children:(0,U.jsx)(`button`,{type:`button`,onClick:()=>d({key:l,count:Math.min(p.length,f+Xe)}),className:`rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-3 py-1.5 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))] transition-colors hover:border-[hsl(var(--deck-border-strong))] hover:text-[hsl(var(--deck-ink))]`,children:a(`preview.diff.showMoreFiles`,{count:Math.min(Xe,p.length-f)})})})]})}function tt({diff:e}){let t=c(),n=(0,H.useMemo)(()=>e.patch.split(`
|
|
5
|
-
`),[e.patch]),[r,i]=(0,H.useState)({patch:e.patch,count:Ze}),a=r.patch===e.patch?r.count:Ze,o=n.slice(0,a),s=0,l=0;return(0,U.jsxs)(`div`,{className:`overflow-hidden rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-3 py-2 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]`,children:[(0,U.jsx)(`span`,{children:t(`preview.diff.patch`)}),e.matchLine&&(0,U.jsx)(`span`,{children:t(`preview.diff.line`,{line:e.matchLine})})]}),(0,U.jsx)(`div`,{className:`overflow-x-auto font-mono text-[12px]`,children:o.map((e,t)=>{if(e.startsWith(`@@`)){let n=/@@ -(?<old>\d+),?(?<oldCount>\d*) \+(?<new>\d+),?(?<newCount>\d*) @@/.exec(e);return n?.groups&&(s=Number.parseInt(n.groups.old,10),l=Number.parseInt(n.groups.new,10)),(0,U.jsx)(nt,{line:e},`${e}-${t}`)}if(e.startsWith(`---`)||e.startsWith(`+++`)||e.startsWith(`Index:`)||e.startsWith(`===`))return(0,U.jsx)(nt,{line:e},`${e}-${t}`);if(e.startsWith(`+`)){let n=l++;return(0,U.jsx)(nt,{line:e,oldLine:null,newLine:n},`${e}-${t}`)}if(e.startsWith(`-`)){let n=s++;return(0,U.jsx)(nt,{line:e,oldLine:n,newLine:null},`${e}-${t}`)}return e.startsWith(` `)?(0,U.jsx)(nt,{line:e,oldLine:s++,newLine:l++},`${e}-${t}`):(0,U.jsx)(nt,{line:e},`${e}-${t}`)})}),a<n.length&&(0,U.jsx)(`div`,{className:`flex justify-center border-t border-[hsl(var(--deck-border))] p-2`,children:(0,U.jsx)(`button`,{type:`button`,onClick:()=>i({patch:e.patch,count:Math.min(n.length,a+Qe)}),className:`rounded-md border border-[hsl(var(--deck-border))] px-3 py-1 font-mono text-[10.5px] text-[hsl(var(--deck-ink-muted))] transition-colors hover:bg-[hsl(var(--deck-surface-2))] hover:text-[hsl(var(--deck-ink))]`,children:t(`preview.diff.showMoreLines`,{count:Math.min(Qe,n.length-a)})})})]})}function nt({line:e,oldLine:t,newLine:n}){let r=e.startsWith(`---`)||e.startsWith(`+++`)||e.startsWith(`Index:`)||e.startsWith(`===`),i=e.startsWith(`@@`),a=e[0],o=r||i?e:e.slice(1);return(0,U.jsxs)(`div`,{"data-preview-diff-line":!0,className:E(`grid min-w-max grid-cols-[40px_40px_1fr] gap-2 px-3 py-0.5`,r?`text-[hsl(var(--deck-ink-muted))]`:a===`+`?`bg-[#22C55E]/10 text-[#166534] dark:bg-[#22C55E]/10 dark:text-[#86efac]`:a===`-`?`bg-[#EF4444]/10 text-[#b91c1c] dark:bg-[#EF4444]/10 dark:text-[#fca5a5]`:i?`bg-[#DBEAFE] text-[#1d4ed8] dark:bg-[#1e3a8a]/30 dark:text-[#93c5fd]`:`text-[hsl(var(--deck-ink))]`),children:[(0,U.jsx)(`span`,{className:`text-right text-[hsl(var(--deck-ink-faint))]`,children:t?String(t).padStart(2,` `):``}),(0,U.jsx)(`span`,{className:`text-right text-[hsl(var(--deck-ink-faint))]`,children:n?String(n).padStart(2,` `):``}),(0,U.jsx)(`span`,{className:`whitespace-pre`,children:o})]})}function rt({nodes:e,expandedDirs:t,childrenCache:n,directoryStates:r,selectedPath:i,onToggleDir:a,onRetryDir:o,onSelectFile:s}){return(0,U.jsx)(U.Fragment,{children:e.map(e=>(0,U.jsx)(it,{node:e,depth:0,expandedDirs:t,childrenCache:n,directoryStates:r,selectedPath:i,onToggleDir:a,onRetryDir:o,onSelectFile:s},e.path))})}function it({node:e,depth:t,expandedDirs:n,childrenCache:r,directoryStates:i,selectedPath:a,onToggleDir:o,onRetryDir:s,onSelectFile:l}){let u=c(),d=e.type===`dir`,f=!!n[e.path],p=!d&&a===e.path,m=r[e.path]??[],h=i[e.path],g=t*14+24;return(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(`button`,{type:`button`,"aria-expanded":d?f:void 0,"aria-busy":d&&h?.status===`loading`,onClick:()=>d?o(e.path):l(e.path),className:E(`flex w-full items-center gap-2 rounded-md px-2 py-1 text-left font-mono text-[12px] transition-colors`,p?`border border-[#16A34A]/30 bg-[#16A34A]/10 text-[#111827] dark:border-[#22C55E]/30 dark:bg-[#22C55E]/10 dark:text-[#E5E5E5]`:`text-[hsl(var(--deck-ink-muted))] hover:bg-[hsl(var(--deck-surface))]`,d&&`cursor-pointer`),style:{paddingLeft:t*14+8},children:[d?h?.status===`loading`?(0,U.jsx)(fe,{className:`h-3.5 w-3.5 shrink-0 animate-spin text-[hsl(var(--deck-accent))]`}):f?(0,U.jsx)(se,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink))]`}):(0,U.jsx)(v,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-muted))]`}):(0,U.jsx)(de,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]`}),(0,U.jsx)(`span`,{className:`truncate text-[hsl(var(--deck-ink))]`,children:e.name})]}),d&&f&&(0,U.jsxs)(`div`,{children:[h?.status===`loading`&&(0,U.jsx)(`div`,{role:`status`,style:{paddingLeft:g},className:`py-1 font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]`,children:u(`preview.files.directoryLoading`)}),h?.status===`error`&&(0,U.jsxs)(`div`,{role:`alert`,style:{marginLeft:g},className:`my-1 mr-1 rounded-md border border-red-200 bg-red-50/70 px-2 py-1.5 font-mono text-[10px] text-red-700 dark:border-red-900/60 dark:bg-red-950/30 dark:text-red-300`,children:[(0,U.jsx)(`div`,{className:`truncate`,title:h.message,children:h.message}),(0,U.jsxs)(`button`,{type:`button`,onClick:()=>s(e.path),className:`mt-1 inline-flex items-center gap-1 font-medium underline-offset-2 hover:underline`,children:[(0,U.jsx)(ce,{className:`h-2.5 w-2.5`}),u(`preview.action.retry`)]})]}),h?.status===`loaded`&&m.length===0&&(0,U.jsx)(`div`,{style:{paddingLeft:g},className:`py-1 font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]`,children:u(`preview.files.directoryEmpty`)}),m.map(e=>(0,U.jsx)(it,{node:e,depth:t+1,expandedDirs:n,childrenCache:r,directoryStates:i,selectedPath:a,onToggleDir:o,onRetryDir:s,onSelectFile:l},e.path))]})]})}var at=80,ot=80;function st({logs:e}){let t=c(),[n,r]=(0,H.useState)(``),[i,a]=(0,H.useState)(`all`),[o,s]=(0,H.useState)({}),l=`${i}\0${n}\0${e.length}\0${e[0]?.id??``}\0${e.at(-1)?.id??``}`,[u,d]=(0,H.useState)({key:l,count:at}),f=(0,H.useMemo)(()=>Ge(e,n,i),[i,e,n]),p=u.key===l?u.count:at,m=f.slice(0,p);return(0,U.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,U.jsxs)(`div`,{className:`space-y-2 border-b border-[hsl(var(--deck-border))] px-4 py-3`,children:[(0,U.jsxs)(`div`,{className:`flex h-8 items-center gap-2 rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-2 focus-within:border-[hsl(var(--deck-accent)/0.6)]`,children:[(0,U.jsx)(T,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]`}),(0,U.jsx)(`input`,{type:`search`,"aria-label":t(`preview.logs.searchAria`),placeholder:t(`preview.logs.searchPlaceholder`),value:n,onChange:e=>r(e.target.value),className:`min-w-0 flex-1 bg-transparent font-mono text-[11px] text-[hsl(var(--deck-ink))] outline-none placeholder:text-[hsl(var(--deck-ink-faint))]`}),(0,U.jsxs)(`span`,{className:`font-mono text-[9px] tabular-nums text-[hsl(var(--deck-ink-faint))]`,children:[f.length,`/`,e.length]})]}),(0,U.jsx)(`div`,{className:`flex items-center gap-1`,"aria-label":t(`preview.logs.filterAria`),children:[`all`,`running`,`error`,`success`].map(e=>(0,U.jsx)(`button`,{type:`button`,"aria-pressed":i===e,onClick:()=>a(e),className:E(`rounded-md border px-2 py-1 font-mono text-[9.5px] transition-colors`,i===e?`border-[hsl(var(--deck-accent)/0.45)] bg-[hsl(var(--deck-accent-soft))] text-[hsl(var(--deck-accent))]`:`border-[hsl(var(--deck-border))] text-[hsl(var(--deck-ink-faint))] hover:text-[hsl(var(--deck-ink-muted))]`),children:t(`preview.logs.filter.${e}`)},e))})]}),(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-3 overflow-y-auto px-4 py-4`,children:[e.length===0?(0,U.jsx)(ct,{title:t(`preview.logs.emptyTitle`),subtitle:t(`preview.logs.emptyHint`)}):f.length===0?(0,U.jsx)(ct,{title:t(`preview.logs.noMatches`),subtitle:t(`preview.logs.noMatchesHint`)}):m.map(e=>{let n=o[e.id],r=(e.content||``).split(`
|
|
6
|
-
`),i=r.length>10||(e.content?.length||0)>800,a=n||!i?r:r.slice(0,8);return(0,U.jsxs)(`div`,{"data-preview-log-id":e.id,className:`overflow-hidden rounded-lg border border-[hsl(var(--deck-border))]`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-3 py-2`,children:[(0,U.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,U.jsx)(`div`,{className:`font-mono text-[12px] text-[hsl(var(--deck-ink))]`,children:e.title}),e.subtitle&&(0,U.jsx)(`div`,{className:`font-mono text-[11px] text-[hsl(var(--deck-ink-muted))]`,children:e.subtitle})]}),(0,U.jsx)(lt,{status:e.status})]}),e.content&&(0,U.jsxs)(`div`,{className:`space-y-2 px-3 py-3`,children:[(0,U.jsxs)(`pre`,{className:`overflow-x-auto whitespace-pre-wrap rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] p-3 font-mono text-[12px] text-[hsl(var(--deck-ink))]`,children:[a.join(`
|
|
7
|
-
`),!n&&i&&`
|
|
8
|
-
…`]}),i&&(0,U.jsxs)(`button`,{type:`button`,onClick:()=>s(t=>({...t,[e.id]:!t[e.id]})),className:`flex items-center gap-1 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))] transition-colors hover:text-[hsl(var(--deck-ink))]`,children:[n?(0,U.jsx)(O,{className:`h-3 w-3`}):(0,U.jsx)(y,{className:`h-3 w-3`}),t(n?`preview.logs.collapse`:`preview.logs.expand`)]})]})]},e.id)}),p<f.length&&(0,U.jsx)(`div`,{className:`flex justify-center`,children:(0,U.jsx)(`button`,{type:`button`,onClick:()=>d({key:l,count:Math.min(f.length,p+ot)}),className:`rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-3 py-1.5 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))] transition-colors hover:border-[hsl(var(--deck-border-strong))] hover:text-[hsl(var(--deck-ink))]`,children:t(`preview.logs.showMore`,{count:Math.min(ot,f.length-p)})})})]})]})}function ct({title:e,subtitle:t}){return(0,U.jsxs)(`div`,{className:`rounded-lg border border-dashed border-[hsl(var(--deck-border))] p-6 text-center`,children:[(0,U.jsx)(`div`,{className:`font-mono text-[13px] text-[hsl(var(--deck-ink))]`,children:e}),(0,U.jsx)(`div`,{className:`mt-1 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]`,children:t})]})}function lt({status:e}){let t=c()(e===`success`?`preview.logs.status.success`:e===`error`?`preview.logs.status.error`:`preview.logs.status.running`);return(0,U.jsx)(`span`,{className:E(`rounded-full px-2 py-0.5 font-mono text-[11px]`,e===`success`?`bg-[#22C55E] text-white`:e===`error`?`bg-[#FEE2E2] text-[#b91c1c] dark:bg-[#EF4444]/20 dark:text-[#fca5a5]`:`bg-[hsl(var(--deck-surface))] text-[hsl(var(--deck-ink-muted))]`),children:t})}var ut=640,dt=360,ft=960,pt=(0,H.forwardRef)(function({open:e,maximized:t,disabled:n,onToggleMaximized:r,onTogglePreview:i},a){let o=c(),{locale:s}=d(),l=s===`zh`?{maximize:`全屏预览`,restore:`还原分栏预览`}:{maximize:`Maximize preview`,restore:`Restore split preview`},u=t?l.restore:l.maximize;return(0,U.jsxs)(U.Fragment,{children:[e&&(0,U.jsx)(S,{variant:`ghost`,size:`icon`,"aria-pressed":!!t,"aria-label":u,title:u,onClick:r,className:E(`hidden h-8 w-8 rounded-md text-[hsl(var(--deck-ink-faint))] hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink))] lg:inline-flex`,t&&`bg-[hsl(var(--deck-surface))] text-[hsl(var(--deck-ink))]`),children:(0,U.jsx)(pe,{className:E(`h-4 w-4 transition-transform`,t&&`rotate-180`)})}),(0,U.jsx)(S,{ref:a,variant:`ghost`,size:`icon`,onClick:i,disabled:n,title:o(`preview.title`),"aria-label":s===`zh`?`切换预览面板`:`Toggle preview panel`,className:E(`h-8 w-8 rounded-md text-[hsl(var(--deck-ink-faint))] hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink))]`,e&&`bg-[hsl(var(--deck-accent-soft))] text-[hsl(var(--deck-accent))] hover:bg-[hsl(var(--deck-accent-soft))] hover:text-[hsl(var(--deck-accent))]`),children:(0,U.jsx)(L,{className:`h-4 w-4`})})]})});function mt(e){let t=typeof window>`u`?ft:Math.max(280,Math.floor(window.innerWidth*.72));return Math.min(ft,t,Math.max(dt,Math.round(e)))}function ht(e,t,n){if(e){let t=n?.taskDelivery?.status;return n?.taskIsolation===`worktree`&&n.taskSourceProjectPath&&(t===`applied`||t===`discarded`)?{sessionId:e.sessionId,projectPath:n.taskSourceProjectPath}:e}return t?{sessionId:`project:${t}`,projectPath:t}:null}function gt(){let e=A.getState();if(o(e.historySurfaceSelection))return null;let t=e.sessions.find(t=>C({sessionId:t.sessionId,projectPath:t.projectPath},e.currentSessionRef));return ht(e.currentSessionRef,e.selectedProjectPath,t)}function _t(e,t){let n=e=>e.replace(/\\/g,`/`).replace(/^\.?\//,``).replace(/\/+/g,`/`),r=n(e),i=n(t);return r===i||r.endsWith(`/${i}`)||i.endsWith(`/${r}`)}var vt=(0,H.lazy)(async()=>({default:(await f(()=>import(`./dist-RGayDvc-.js`),__vite__mapDeps([0,1,2]))).Editor}));function yt(e,t){return e instanceof Error?e.message:t}function bt({returnFocusElement:e,maximized:t=!1}={}){let n=c(),{toggleFilePreview:r,previewWidth:a,setPreviewWidth:s,previewTab:l,setPreviewTab:u,previewTargetPath:d,previewRequestId:f}=i(),p=A(e=>e.messages),m=A(e=>e.currentSessionRef),h=A(e=>e.historySurfaceSelection),g=A(e=>e.sessions),ee=A(e=>e.selectedProjectPath),_=(0,H.useMemo)(()=>g.find(e=>C({sessionId:e.sessionId,projectPath:e.projectPath},m)),[m,g]),v=(0,H.useMemo)(()=>o(h)?null:ht(m,ee,_),[_,m,h,ee]),[y,te]=(0,H.useState)(l),[b,ne]=(0,H.useState)(()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 1023px)`).matches),[x,ie]=(0,H.useState)(null),[ae,O]=(0,H.useState)(!1),[oe,se]=(0,H.useState)([]),[ce,le]=(0,H.useState)({}),[ue,de]=(0,H.useState)({}),[k,pe]=(0,H.useState)(0),[j,M]=(0,H.useState)(!1),[N,P]=(0,H.useState)(null),[F,I]=(0,H.useState)(``),[L,R]=(0,H.useState)([]),[me,he]=(0,H.useState)(!1),[ge,z]=(0,H.useState)(!1),[_e,ve]=(0,H.useState)(0),[ye,B]=(0,H.useState)(0),[be,xe]=(0,H.useState)({}),[V,W]=(0,H.useState)({}),[G,we]=(0,H.useState)(null),[Te,Ee]=(0,H.useState)(``),[De,J]=(0,H.useState)(!1),[Y,X]=(0,H.useState)(null),[Oe,ke]=(0,H.useState)(!1),Ae=(0,H.useRef)(v),Z=(0,H.useRef)(0),Q=(0,H.useRef)(0),je=(0,H.useRef)({}),Me=(0,H.useRef)(0),Ne=(0,H.useRef)(0),Pe=(0,H.useRef)(0),$=(0,H.useRef)({}),Fe=(0,H.useRef)({}),Ie=(0,H.useRef)({}),Le=(0,H.useRef)(null),Re=(0,H.useRef)(null),ze=(0,H.useRef)(null),Be=(0,H.useRef)(null),Ve=(0,H.useRef)(a),He=(0,H.useRef)(m),We=(0,H.useRef)(null);(0,H.useLayoutEffect)(()=>{C(Ae.current,v)||(Z.current+=1),Ae.current=v},[v]),(0,H.useEffect)(()=>{if(typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(max-width: 1023px)`),t=()=>ne(e.matches);return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,H.useEffect)(()=>(Be.current=e??(document.activeElement instanceof HTMLElement?document.activeElement:null),()=>{let e=Be.current;requestAnimationFrame(()=>{e?.isConnected&&e.focus({preventScroll:!0})})}),[e]),(0,H.useEffect)(()=>{b&&ze.current?.focus({preventScroll:!0})},[b]);let Ge=e=>{if(!b)return;if(e.key===`Escape`){e.preventDefault(),r();return}if(e.key!==`Tab`)return;let t=Array.from(Re.current?.querySelectorAll(`button:not([disabled]), input:not([disabled]), [href], [tabindex]:not([tabindex="-1"])`)??[]).filter(e=>!e.closest(`[hidden]`));if(t.length===0)return;let n=t[0],i=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),i?.focus()):!e.shiftKey&&document.activeElement===i&&(e.preventDefault(),n?.focus())},qe=(e,t)=>t===Z.current&&C(gt(),e),Ye=async(e,t=``)=>{let r=t?`/suggestions/files/tree?path=${encodeURIComponent(t)}`:`/suggestions/files/tree`,i=await fetch(r,{headers:re(e)});if(!i.ok)throw Error(n(`preview.files.treeFailed`));return(await i.json()).map(e=>({...e,children:e.type===`dir`?[]:void 0}))};(0,H.useEffect)(()=>{let e=++Q.current;return(async()=>{if(!v){se([]),M(!1),P(null);return}let t={...v},r=Z.current,i=()=>e===Q.current&&qe(t,r);if(i()){se([]),M(!0),P(null);try{let e=await Ye(t);i()&&se(e)}catch(e){i()&&P(yt(e,n(`preview.files.treeFailed`)))}finally{i()&&M(!1)}}})(),()=>{Q.current===e&&(Q.current+=1)}},[k,v?.projectPath,v?.sessionId]),(0,H.useEffect)(()=>{Le.current=null,$.current={},Fe.current={},Ie.current={},je.current={},Me.current+=1,we(null),Ee(``),J(!1),X(null),ke(!1),xe({}),le({}),de({}),I(``),R([]),he(!1),z(!1),B(0),W({})},[v?.projectPath,v?.sessionId]);let Xe=(0,H.useMemo)(()=>Ct(p),[p]),[Ze,Qe]=(0,H.useState)(null),[$e,tt]=(0,H.useState)(!1),[nt,it]=(0,H.useState)(null),[at,ot]=(0,H.useState)(0),ct=_?.taskIsolation===`worktree`&&_.taskDelivery?.status===`discarded`,lt=_?.taskIsolation===`worktree`&&!!_.taskDiffStat&&!ct,pt=lt&&!!(_?.taskDiffStat&&_.taskDiffStat.changedFiles>0),vt=ct?[]:lt?Ze??[]:Xe,bt=(0,H.useMemo)(()=>St(p),[p]);(0,H.useEffect)(()=>{let e=F.trim(),t=++Ne.current;if(B(0),z(!1),!e||y!==`files`||!v){R([]),he(!1);return}let r={...v},i=Z.current;he(!0);let a=window.setTimeout(()=>{fetch(`/suggestions/files?q=${encodeURIComponent(e)}&limit=100&type=file`,{headers:re(r)}).then(async e=>{if(!e.ok)throw Error(n(`preview.files.searchFailed`));return await e.json()}).then(e=>{t===Ne.current&&qe(r,i)&&(R(e.filter(e=>!e.endsWith(`/`))),z(!1))}).catch(()=>{t===Ne.current&&qe(r,i)&&(R([]),z(!0))}).finally(()=>{t===Ne.current&&he(!1)})},160);return()=>window.clearTimeout(a)},[y,F,_e,v?.projectPath,v?.sessionId]),(0,H.useEffect)(()=>{te(i.getState().previewTab)},[f]),(0,H.useEffect)(()=>{let e=He.current;if(He.current=m,m||!ee){We.current=null;return}let t=!!e||We.current!==ee;We.current=ee,t&&y===`diff`&&(te(`files`),u(`files`))},[y,m?.projectPath,m?.sessionId,ee,u]),(0,H.useEffect)(()=>{if(!d||y!==`diff`)return;let e=vt.find(e=>e.filePath&&_t(e.filePath,d))?.filePath;if(!e)return;W(t=>({...t,[e]:!0}));let t=requestAnimationFrame(()=>{let e=Array.from(Re.current?.querySelectorAll(`[data-preview-diff-path]`)??[]).find(e=>_t(e.dataset.previewDiffPath??``,d));typeof e?.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`,behavior:`smooth`}),e?.querySelector(`button`)?.focus({preventScroll:!0})});return()=>cancelAnimationFrame(t)},[y,vt,f,d]),(0,H.useEffect)(()=>{let e=++Pe.current;if(Qe(null),it(null),tt(!1),o(h)||!m||!pt)return;let t={...m};return tt(!0),w.getTaskDiff(t).then(n=>{e===Pe.current&&C(A.getState().currentSessionRef,t)&&Qe(n.files.map(e=>({filePath:e.path,diff:{patch:e.patch},summary:e.binary?`binary`:`+${e.additions} -${e.deletions}${e.truncated?` (truncated)`:``}`})))}).catch(t=>{e===Pe.current&&it(yt(t,n(`preview.diff.failedTitle`)))}).finally(()=>{e===Pe.current&&tt(!1)}),()=>{Pe.current===e&&(Pe.current+=1)}},[_?.taskCompletedAt,_?.taskDelivery?.status,_?.taskDiffStat,_?.taskIsolation,m,h,pt,at]);let wt=e=>{W(t=>({...t,[e]:!t[e]}))},Tt=e=>{W(Object.fromEntries(vt.map(t=>[t.filePath||`unknown`,e])))},Et=async e=>{let t=gt();if(!t)return;let r=Z.current,i=++Me.current,a=()=>i===Me.current&&Le.current===e&&qe(t,r);Le.current=e,we(e),Ee(``),J(!0),X(null),ke(!1);try{let r=await fetch(`/suggestions/files/content?path=${encodeURIComponent(e)}`,{headers:re(t)});if(!r.ok)throw Error(n(`preview.files.contentFailed`));let i=await r.json();a()&&(Ee(i.content||``),ke(!!i.truncated))}catch(e){a()&&X(yt(e,n(`preview.files.contentFailed`)))}finally{a()&&J(!1)}},Dt=e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault(),B(t=>Je(t,L.length,e.key===`ArrowDown`?1:-1));return}if(e.key===`Enter`){let t=L[ye];if(!t)return;e.preventDefault(),Et(t);return}e.key===`Escape`&&(e.preventDefault(),I(``))},At=(e,t)=>{let n={...Ie.current,[e]:t};Ie.current=n,de(n)},jt=async e=>{let t=(je.current[e]??0)+1;je.current[e]=t,At(e,{status:`loading`});let r=gt();if(!r)return;let i=Z.current,a=()=>je.current[e]===t&&$.current[e]===!0&&qe(r,i);try{let t=await Ye(r,e);if(a()){let n={...Fe.current,[e]:t};Fe.current=n,le(n),At(e,{status:`loaded`})}}catch(t){a()&&At(e,{status:`error`,message:yt(t,n(`preview.files.treeFailed`))})}},Mt=e=>{let t=!$.current[e],n={...$.current,[e]:t};if($.current=n,xe(n),!t){je.current[e]=(je.current[e]??0)+1;return}Fe.current[e]||jt(e)},Nt=e=>{if(!$.current[e]){let t={...$.current,[e]:!0};$.current=t,xe(t)}jt(e)},Pt=e=>{e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),Ve.current=a,O(!0),document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`},Ft=e=>{if(!ae)return;let t=mt(window.innerWidth-e.clientX);Ve.current=t,ie(t)},It=e=>{ae&&(e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),O(!1),ie(null),s(Ve.current),document.body.style.cursor=``,document.body.style.userSelect=``)};(0,H.useEffect)(()=>()=>{document.body.style.cursor=``,document.body.style.userSelect=``},[]);let Lt=mt(x??a);return o(h)?null:(0,U.jsxs)(`div`,{ref:Re,"data-testid":`file-preview`,role:b?`dialog`:`complementary`,"aria-modal":b||void 0,"aria-label":n(`preview.title`),onKeyDown:Ge,style:t?{width:`100%`,maxWidth:`none`}:{width:Lt,maxWidth:`72vw`},className:E(`relative flex h-full flex-col bg-[hsl(var(--deck-canvas))] max-lg:fixed max-lg:inset-0 max-lg:z-[60] max-lg:!h-dvh max-lg:!w-full max-lg:!max-w-full max-lg:min-w-0 max-lg:border-l-0`,t?`absolute inset-0 z-20 min-w-0 border-l-0 shadow-none`:`border-l shadow-xl min-w-[360px] shrink-0 border-[hsl(var(--deck-border))]`),children:[!t&&(0,U.jsx)(`div`,{role:`separator`,"aria-label":n(`preview.action.resize`),"aria-orientation":`vertical`,"aria-valuemin":dt,"aria-valuemax":ft,"aria-valuenow":Lt,"aria-hidden":b||void 0,tabIndex:b?-1:0,onPointerDown:Pt,onPointerMove:Ft,onPointerUp:It,onPointerCancel:It,onDoubleClick:()=>s(ut),onKeyDown:e=>{(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&(e.preventDefault(),s(Lt+(e.key===`ArrowLeft`?24:-24)))},className:E(`absolute inset-y-0 -left-1 z-20 w-2 cursor-col-resize touch-none outline-none max-lg:hidden`,`after:absolute after:inset-y-0 after:left-1/2 after:w-px after:-translate-x-1/2 after:bg-transparent after:transition-colors`,`hover:after:bg-[hsl(var(--deck-accent)/0.6)] focus-visible:after:bg-[hsl(var(--deck-accent))]`,ae&&`after:bg-[hsl(var(--deck-accent))]`)}),(0,U.jsxs)(Se,{value:y,onValueChange:e=>{let t=e;te(t),u(t)},className:`flex flex-col flex-1 min-h-0`,children:[(0,U.jsxs)(`div`,{"data-preview-toolbar":!0,className:`flex shrink-0 items-center gap-2 border-b border-[hsl(var(--deck-border))] px-3 py-3`,children:[(0,U.jsxs)(K,{className:`grid h-9 min-w-0 flex-1 grid-cols-4 rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] p-1`,children:[(0,U.jsx)(Ce,{value:`diff`,className:`px-2 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))] data-[state=active]:bg-[hsl(var(--deck-canvas-veil))] data-[state=active]:text-[hsl(var(--deck-ink))]`,children:n(`preview.tab.diff`)}),(0,U.jsx)(Ce,{value:`files`,className:`px-2 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))] data-[state=active]:bg-[hsl(var(--deck-canvas-veil))] data-[state=active]:text-[hsl(var(--deck-ink))]`,children:n(`preview.tab.files`)}),(0,U.jsx)(Ce,{value:`logs`,className:`px-2 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))] data-[state=active]:bg-[hsl(var(--deck-canvas-veil))] data-[state=active]:text-[hsl(var(--deck-ink))]`,children:n(`preview.tab.logs`)}),(0,U.jsx)(Ce,{value:`browser`,className:`px-2 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))] data-[state=active]:bg-[hsl(var(--deck-canvas-veil))] data-[state=active]:text-[hsl(var(--deck-ink))]`,children:n(`preview.tab.browser`)})]}),b&&(0,U.jsx)(S,{ref:ze,variant:`ghost`,size:`icon`,onClick:r,"aria-label":n(`preview.action.close`),title:n(`preview.action.close`),className:`h-9 w-9 shrink-0 rounded-md text-[hsl(var(--deck-ink-faint))] hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink))]`,children:(0,U.jsx)(D,{className:`w-4 h-4`})})]}),(0,U.jsx)(q,{value:`diff`,className:`overflow-hidden flex-1 mt-0`,children:(0,U.jsx)(`div`,{className:`overflow-y-auto px-4 py-4 space-y-3 h-full`,children:ct?(0,U.jsx)(xt,{title:n(`preview.diff.discardedTitle`),subtitle:n(`preview.diff.discardedHint`),role:`status`}):$e&&vt.length===0?(0,U.jsx)(xt,{title:n(`preview.diff.loadingTitle`),subtitle:n(`preview.diff.loadingHint`)}):nt&&vt.length===0?(0,U.jsx)(xt,{title:n(`preview.diff.failedTitle`),subtitle:nt,actionLabel:n(`preview.action.retry`),onAction:()=>ot(e=>e+1),role:`alert`}):vt.length===0?(0,U.jsx)(xt,{title:n(`preview.diff.emptyTitle`),subtitle:n(`preview.diff.emptyHint`)}):(0,U.jsx)(et,{diffs:vt,expanded:V,targetPath:d,onToggle:wt,onSetAllExpanded:Tt})})}),(0,U.jsx)(q,{value:`files`,className:`overflow-hidden flex-1 mt-0`,children:(0,U.jsxs)(`div`,{className:`px-4 py-4 h-full`,children:[j&&(0,U.jsx)(xt,{title:n(`preview.files.loadingTitle`),subtitle:n(`preview.files.loadingHint`)}),!j&&N&&(0,U.jsx)(xt,{title:n(`preview.files.failedTitle`),subtitle:N,actionLabel:n(`preview.action.retry`),onAction:()=>pe(e=>e+1),role:`alert`}),!j&&!N&&oe.length===0&&(0,U.jsx)(xt,{title:n(`preview.files.emptyTitle`),subtitle:n(`preview.files.emptyHint`)}),!j&&!N&&oe.length>0&&(0,U.jsxs)(`div`,{className:`grid h-full min-h-0 grid-cols-[minmax(170px,220px)_minmax(0,1fr)] gap-3 max-sm:grid-cols-1 max-sm:grid-rows-[180px_minmax(0,1fr)]`,children:[(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-col overflow-hidden rounded-lg border border-[hsl(var(--deck-border))]`,children:[(0,U.jsx)(`div`,{className:`border-b border-[hsl(var(--deck-border))] p-2`,children:(0,U.jsxs)(`div`,{className:`flex h-8 items-center gap-2 rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-2 focus-within:border-[hsl(var(--deck-accent)/0.6)]`,children:[(0,U.jsx)(T,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]`}),(0,U.jsx)(`input`,{type:`search`,"aria-label":n(`preview.files.searchAria`),placeholder:n(`preview.files.searchPlaceholder`),value:F,onChange:e=>I(e.target.value),onKeyDown:Dt,className:`min-w-0 flex-1 bg-transparent font-mono text-[11px] text-[hsl(var(--deck-ink))] outline-none placeholder:text-[hsl(var(--deck-ink-faint))]`}),me&&(0,U.jsx)(fe,{className:`h-3 w-3 shrink-0 animate-spin text-[hsl(var(--deck-accent))]`})]})}),(0,U.jsx)(`div`,{role:F?`listbox`:void 0,"aria-label":F?n(`preview.files.searchResultsAria`):void 0,className:`overflow-y-auto flex-1 p-2 min-h-0`,children:F?ge?(0,U.jsxs)(`div`,{role:`alert`,className:`px-2 py-5 text-center font-mono text-[10.5px] text-red-700 dark:text-red-300`,children:[(0,U.jsx)(`div`,{children:n(`preview.files.searchFailed`)}),(0,U.jsx)(`button`,{type:`button`,onClick:()=>ve(e=>e+1),className:`mt-1 underline underline-offset-2`,children:n(`preview.action.retry`)})]}):L.length>0?L.map((e,t)=>(0,U.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":t===ye,"data-preview-file-result":t,onMouseEnter:()=>B(t),onClick:()=>void Et(e),className:E(`mb-0.5 flex w-full min-w-0 flex-col rounded-md px-2 py-1.5 text-left font-mono transition-colors`,t===ye?`bg-[hsl(var(--deck-accent-soft))] text-[hsl(var(--deck-ink))]`:`text-[hsl(var(--deck-ink-muted))] hover:bg-[hsl(var(--deck-surface))]`),children:[(0,U.jsx)(`span`,{className:`truncate text-[11.5px]`,children:Ke(e)}),(0,U.jsx)(`span`,{className:`truncate text-[9px] text-[hsl(var(--deck-ink-faint))]`,children:e})]},e)):!me&&(0,U.jsx)(`div`,{className:`px-2 py-5 text-center font-mono text-[10.5px] text-[hsl(var(--deck-ink-faint))]`,children:n(`preview.files.noMatches`)}):(0,U.jsx)(rt,{nodes:oe,expandedDirs:be,childrenCache:ce,directoryStates:ue,selectedPath:G,onToggleDir:Mt,onRetryDir:Nt,onSelectFile:Et})})]}),(0,U.jsxs)(`div`,{className:`border border-[hsl(var(--deck-border))] rounded-lg overflow-hidden flex flex-col min-h-0`,children:[(0,U.jsxs)(`div`,{className:`px-3 py-2 bg-[hsl(var(--deck-surface-2))] border-b border-[hsl(var(--deck-border))] text-[12px] text-[hsl(var(--deck-ink-muted))] font-mono flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`min-w-0 truncate`,children:G||n(`preview.files.selectTitle`)}),G&&(0,U.jsx)(`span`,{className:`ml-2 shrink-0 text-[11px] text-[hsl(var(--deck-ink-faint))] font-mono`,children:n(De?`preview.files.status.loading`:Oe?`preview.files.status.truncated`:`preview.files.status.ready`)})]}),Oe&&!De&&(0,U.jsx)(`div`,{className:`px-3 py-2 bg-[#FEF3C7] dark:bg-[#111113] border-b border-[hsl(var(--deck-border))] text-[11px] text-[#b45309] dark:text-[#facc15] font-mono`,children:n(`preview.files.truncatedNotice`)}),(0,U.jsxs)(`div`,{className:`flex-1 min-h-0`,children:[!G&&(0,U.jsx)(`div`,{className:`h-full flex items-center justify-center text-[12px] text-[hsl(var(--deck-ink-muted))] font-mono`,children:n(`preview.files.pickHint`)}),G&&Y&&(0,U.jsxs)(`div`,{role:`alert`,className:`flex h-full flex-col items-center justify-center gap-2 px-4 text-center font-mono text-[12px] text-[#DC2626] dark:text-[#fca5a5]`,children:[(0,U.jsx)(`span`,{children:Y}),(0,U.jsx)(`button`,{type:`button`,onClick:()=>void Et(G),className:`underline underline-offset-2`,children:n(`preview.action.retry`)})]}),G&&!Y&&(0,U.jsx)(`div`,{className:`h-full`,children:De?(0,U.jsx)(Ot,{}):(0,U.jsx)(H.Suspense,{fallback:(0,U.jsx)(Ot,{}),children:(0,U.jsx)(kt,{content:Te,filename:G})})})]})]})]})]})}),(0,U.jsx)(q,{value:`logs`,className:`overflow-hidden flex-1 mt-0`,children:(0,U.jsx)(st,{logs:bt})}),(0,U.jsx)(q,{value:`browser`,forceMount:!0,className:`overflow-hidden flex-1 min-h-0`,children:(0,U.jsx)(Ue,{sessionRef:m,onElementAdded:()=>{b&&r()}})})]})]})}function xt({title:e,subtitle:t,actionLabel:n,onAction:r,role:i}){return(0,U.jsxs)(`div`,{role:i,className:`border border-dashed border-[hsl(var(--deck-border))] rounded-lg p-6 text-center`,children:[(0,U.jsx)(`div`,{className:`text-[13px] text-[hsl(var(--deck-ink))] font-mono`,children:e}),(0,U.jsx)(`div`,{className:`text-[12px] text-[hsl(var(--deck-ink-muted))] font-mono mt-1`,children:t}),n&&r&&(0,U.jsx)(`button`,{type:`button`,onClick:r,className:`mt-3 rounded-md border border-[hsl(var(--deck-border))] px-2.5 py-1 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))] transition-colors hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink))]`,children:n})]})}function St(e){return e.flatMap(e=>{let t=[];if(e.agentContent?.toolCalls)for(let n of e.agentContent.toolCalls){let r=Dt(n.arguments),i=n.output,a=i?Tt(i)?.diff?Et(i):i:void 0;t.push({id:`${e.id}-${n.toolCallId}`,title:n.toolName||`Tool`,subtitle:n.summary,status:n.status===`success`?`success`:n.status===`error`?`error`:`running`,content:a||(r?`Arguments:\n${r}`:void 0),timestamp:e.timestamp})}let n=e.metadata;if(n){if(n.kind===`tool_call`){let r=n.toolName||`Tool`,i=Dt(n.arguments);t.push({id:e.id,title:`Tool Call · ${r}`,subtitle:n.toolKind?String(n.toolKind):void 0,status:n.status===`success`?`success`:n.status===`error`?`error`:`running`,content:i?`Arguments:\n${i}`:void 0,timestamp:e.timestamp})}if(n.kind===`tool_result`){let r=n.toolName||`Tool`,i=n.success,a=n.summary,o=n.output,s=o?Tt(o)?.diff?Et(o):o:void 0;t.push({id:e.id,title:`Tool Result · ${r}`,subtitle:a,status:i===void 0?`running`:i?`success`:`error`,content:s,timestamp:e.timestamp})}}return t})}function Ct(e){let t=[],n=new Set;for(let r=e.length-1;r>=0;--r){let i=e[r];if(i.agentContent?.toolCalls)for(let e=i.agentContent.toolCalls.length-1;e>=0;--e){let r=i.agentContent.toolCalls[e],a=r.metadata;if(a?.kind===`patch`&&Array.isArray(a.changes)){wt(t,n,a.changes,r.summary);continue}let o=Tt(r.output||``)||Tt(a?.diff_snippet||``);if(o?.diff){let e=a?.file_path||r.toolName||`unknown`;if(!n.has(e)){n.add(e);let i=typeof a?.oldContent==`string`?a.oldContent:void 0,s=typeof a?.newContent==`string`?a.newContent:void 0;t.push({diff:o.diff,filePath:e,summary:r.summary,oldContent:i,newContent:s})}}}let a=i.metadata;if(!a||a.kind!==`tool_result`)continue;let o=a.metadata;if(o?.kind===`patch`&&Array.isArray(o.changes)){wt(t,n,o.changes,a.summary);continue}let s=Tt(a.output||(typeof i.content==`string`?i.content:``)||``)||Tt(o?.diff_snippet||``);if(s?.diff){let e=o?.file_path||a.toolName||`unknown`;if(!n.has(e)){n.add(e);let r=typeof o?.oldContent==`string`?o.oldContent:void 0,i=typeof o?.newContent==`string`?o.newContent:void 0;t.push({diff:s.diff,filePath:e,summary:a.summary,oldContent:r,newContent:i})}}}return t.reverse()}function wt(e,t,n,r){for(let i=n.length-1;i>=0;i--){let a=n[i];a&&typeof a==`object`&&`path`in a&&typeof a.path==`string`&&`diff`in a&&typeof a.diff==`string`&&!t.has(a.path)&&(t.add(a.path),e.push({diff:{patch:a.diff,startLine:1,matchLine:1},filePath:a.path,summary:r,oldContent:`oldContent`in a&&typeof a.oldContent==`string`?a.oldContent:void 0,newContent:`newContent`in a&&typeof a.newContent==`string`?a.newContent:void 0}))}}function Tt(e){if(!e)return null;let t=e.match(/<<<DIFF>>>\s*([\s\S]*?)\s*<<<\/DIFF>>>/m);if(!t)return null;try{return{diff:JSON.parse(t[1])}}catch{return null}}function Et(e){return e?e.replace(/<<<DIFF>>>[\s\S]*?<<<\/DIFF>>>/m,``).trim():``}function Dt(e){if(!e)return``;if(typeof e==`string`)try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}return JSON.stringify(e,null,2)}function Ot(){let e=c();return(0,U.jsx)(`div`,{className:`h-full flex items-center justify-center text-[12px] text-[hsl(var(--deck-ink-muted))] font-mono`,children:e(`preview.files.editorLoading`)})}function kt({content:e,filename:t}){let{codeTheme:n}=u(),r=(0,H.useRef)(null),[i,a]=(0,H.useState)(`vs-dark`),o=At(t);return(0,H.useEffect)(()=>{if(r.current){let e=J(r.current,n);a(e)}},[n]),(0,U.jsx)(vt,{value:e,language:o,theme:i,height:`100%`,beforeMount:e=>{r.current=e;let t=J(e,n);a(t)},options:{readOnly:!0,minimap:{enabled:!1},fontSize:12,lineNumbers:`on`,wordWrap:`on`,scrollBeyondLastLine:!1,automaticLayout:!0}},t)}function At(e){return{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,md:`markdown`,css:`css`,scss:`scss`,html:`html`,yml:`yaml`,yaml:`yaml`,go:`go`,rs:`rust`,py:`python`,java:`java`,c:`c`,cpp:`cpp`,h:`cpp`,hpp:`cpp`,sh:`shell`,zsh:`shell`,toml:`toml`,xml:`xml`}[e.split(`.`).pop()?.toLowerCase()||``]||`plaintext`}export{bt as FilePreview,pt as PreviewControls};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{d as t,dt as n,i as r,u as i}from"./session-events-BuMTbIwu.js";import{C as a}from"./vendor-radix-L0yJCKJX.js";import{a as o,c as s,l as c}from"./preload-helper-DvgLbiBV.js";import{t as l}from"./archive-CsFSEMp9.js";import{t as u}from"./calendar-clock-DfHUrEw9.js";import{t as d}from"./clock-3-dWIDc9IF.js";import{t as f}from"./pause-DLZIDFMB.js";import{t as p}from"./pencil-DkC0bPYD.js";import{t as m}from"./play-BVeNn6fv.js";import{t as h}from"./plus-kzdwas-3.js";import{A as g,B as _,G as v,H as y,I as b,L as x,Q as S,R as C,S as w,U as T,V as E,et as D,ft as O,gt as k,ht as A,i as j,j as M,nt as N,q as ee,r as te,st as P,ut as ne,v as re,x as ie,xt as ae,y as F,z as oe}from"./index-DSa8Dzp7.js";var I={name:`file-diff`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M9 10h6`,key:`9gxzsh`}],[`path`,{d:`M12 13V7`,key:`h0r20n`}],[`path`,{d:`M9 17h6`,key:`r8uit2`}]]};I.node;var se=c(I),ce={name:`message-square-warning`,size:24,node:[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M12 15h.01`,key:`q59x07`}],[`path`,{d:`M12 7v4`,key:`xawao1`}]]};ce.node;var le=c(ce),L={name:`tag`,size:24,node:[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`,key:`vktsd0`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`kqv944`}]]};L.node;var R=c(L),z=e(n(),1),B=[`waiting`,`active`,`blocked`,`review`],V={high:0,medium:1,low:2};function ue(e){return e.taskIsolation!==void 0||e.taskPromptSummary!==void 0||e.taskRetryAvailable===!0}function de(e){return e.taskSourceProjectPath||e.projectPath}function H(e){return e.pendingInteraction?`blocked`:e.taskStatus===`queued`?`waiting`:e.taskStatus===`running`?`active`:e.taskStatus===`completed`?`review`:`blocked`}function fe(e,t){if(e.pendingInteraction!==t.pendingInteraction)return e.pendingInteraction?-1:1;let n=V[e.taskPriority??`medium`]-V[t.taskPriority??`medium`];if(n!==0)return n;let r=e.taskDueAt?Date.parse(e.taskDueAt):1/0,i=t.taskDueAt?Date.parse(t.taskDueAt):1/0;if(r!==i)return r-i;if(e.taskStatus===`queued`&&t.taskStatus===`queued`){let n=(e.taskQueuePosition??1/0)-(t.taskQueuePosition??1/0);if(n!==0)return n}return t.lastMessageTime.localeCompare(e.lastMessageTime)}function pe(e){let t={waiting:[],active:[],blocked:[],review:[]};for(let n of e)ue(n)&&t[H(n)].push(n);for(let e of B)t[e].sort(fe);return t}function me(e){return`TASK-${e.replace(/^task-?/,``).slice(0,6).toUpperCase()}`}var U=a(),W={high:{label:`kanban.priority.high`,className:`border-red-200 bg-red-50 text-red-700 dark:border-red-900/70 dark:bg-red-950/35 dark:text-red-300`},medium:{label:`kanban.priority.medium`,className:`border-amber-200 bg-amber-50 text-amber-700 dark:border-amber-900/70 dark:bg-amber-950/35 dark:text-amber-300`},low:{label:`kanban.priority.low`,className:`border-zinc-200 bg-zinc-50 text-zinc-600 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400`}},he={feature:`kanban.kind.feature`,bug:`kanban.kind.bug`,maintenance:`kanban.kind.maintenance`,research:`kanban.kind.research`};function G(e){let t=new Date(e);return Number.isNaN(t.getTime())?``:new Intl.DateTimeFormat(o()===`zh`?`zh-CN`:`en-US`,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t)}function K({label:e,onClick:t,disabled:n,tone:r=`neutral`,children:i}){return(0,U.jsx)(`button`,{type:`button`,"aria-label":e,title:e,disabled:n,onClick:t,className:T(`flex h-7 w-7 shrink-0 items-center justify-center rounded-md transition-colors focus-visible:outline-none focus-visible:ring-1 disabled:cursor-wait disabled:opacity-45`,r===`danger`?`text-red-500 hover:bg-red-500/10 focus-visible:ring-red-500`:r===`accent`?`text-[hsl(var(--deck-accent))] hover:bg-[hsl(var(--deck-accent-soft))] focus-visible:ring-[hsl(var(--deck-accent))]`:`text-[hsl(var(--deck-ink-faint))] hover:bg-[hsl(var(--deck-surface-2))] hover:text-[hsl(var(--deck-ink))] focus-visible:ring-[hsl(var(--deck-accent))]`),children:i})}function q({session:e,unread:t,cancelling:n,retrying:r,updating:i,onOpen:a,onInspect:o,onEdit:c,onCancel:d,onRetry:f,onArchive:m}){let h=s(),_=g(e),v=M(_),y=te(e,h),b=W[e.taskPriority??`medium`],x=e.taskKind??`feature`,S=ie(e,h),C=e.taskSourceProjectPath||e.projectPath,w=C.split(`/`).filter(Boolean).at(-1)||C,E=e.taskStatus===`queued`||e.taskStatus===`running`,O=!!e.taskRetryAvailable&&[`failed`,`interrupted`,`cancelled`].includes(e.taskStatus),k=!!e.pendingInteraction,A=e.taskStatus===`completed`;return(0,U.jsxs)(`article`,{"data-kanban-task":v,className:T(`group rounded-md border bg-[hsl(var(--deck-surface))] px-3 py-3 shadow-[0_1px_2px_hsl(var(--deck-ink)/0.04)] transition-[border-color,box-shadow,transform]`,`border-[hsl(var(--deck-border))] hover:-translate-y-px hover:border-[hsl(var(--deck-border-strong))] hover:shadow-[0_8px_24px_-16px_hsl(var(--deck-ink)/0.35)]`,t&&`border-[hsl(var(--deck-accent)/0.55)]`),children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,U.jsx)(`span`,{className:`font-mono text-[9.5px] uppercase text-[hsl(var(--deck-ink-faint))]`,children:me(e.sessionId)}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[t&&(0,U.jsx)(`span`,{"aria-label":h(`kanban.card.unread`),title:h(`kanban.card.unread`),className:`h-1.5 w-1.5 rounded-full bg-[hsl(var(--deck-accent))] shadow-[0_0_6px_hsl(var(--deck-accent-glow)/0.8)]`}),(0,U.jsx)(`span`,{className:`truncate font-mono text-[9.5px] text-[hsl(var(--deck-ink-faint))]`,children:w})]})]}),(0,U.jsx)(`button`,{type:`button`,onClick:a,className:`mt-2 block w-full text-left text-[13px] font-medium leading-[1.45] text-[hsl(var(--deck-ink))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))]`,children:y}),S&&(0,U.jsx)(`p`,{title:S,className:T(`mt-1.5 line-clamp-2 text-[10.5px] leading-[1.45]`,k||e.taskStatus===`failed`?`text-red-600 dark:text-red-400`:`text-[hsl(var(--deck-ink-faint))]`),children:S}),(0,U.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-1`,children:[(0,U.jsx)(`span`,{className:T(`rounded-sm border px-1.5 py-0.5 font-mono text-[9px] font-medium`,b.className),children:h(b.label)}),(0,U.jsx)(`span`,{className:`rounded-sm border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-1.5 py-0.5 font-mono text-[9px] text-[hsl(var(--deck-ink-muted))]`,children:h(he[x])}),e.taskDueAt&&(0,U.jsxs)(`span`,{className:T(`inline-flex items-center gap-1 rounded-sm border px-1.5 py-0.5 font-mono text-[9px]`,Date.parse(e.taskDueAt)<Date.now()&&!A?`border-red-200 bg-red-50 text-red-700 dark:border-red-900/70 dark:bg-red-950/35 dark:text-red-300`:`border-[hsl(var(--deck-border))] text-[hsl(var(--deck-ink-faint))]`),children:[(0,U.jsx)(u,{className:`h-2.5 w-2.5`}),G(e.taskDueAt)]})]}),e.taskStatus===`queued`&&e.taskQueuePosition&&(0,U.jsx)(`div`,{className:`mt-2 font-mono text-[9.5px] text-amber-700 dark:text-amber-400`,children:h(`kanban.card.queuePosition`,{position:e.taskQueuePosition,depth:e.taskQueueDepth??e.taskQueuePosition})}),e.taskDiffStat&&(0,U.jsx)(`div`,{className:`mt-2 font-mono text-[9.5px] text-[hsl(var(--deck-ink-faint))]`,children:h(`kanban.card.diff`,{files:e.taskDiffStat.changedFiles,additions:e.taskDiffStat.additions,deletions:e.taskDiffStat.deletions})}),(0,U.jsxs)(`div`,{className:`mt-3 flex items-center justify-end gap-0.5 border-t border-[hsl(var(--deck-hairline))] pt-2`,children:[k&&(0,U.jsx)(K,{label:h(`kanban.action.respond`),onClick:a,tone:`danger`,children:(0,U.jsx)(le,{className:`h-3.5 w-3.5`})}),A&&(0,U.jsx)(K,{label:h(`kanban.action.inspect`),onClick:o,tone:`accent`,children:(0,U.jsx)(se,{className:`h-3.5 w-3.5`})}),O&&(0,U.jsx)(K,{label:h(`kanban.action.retry`),onClick:f,disabled:r,tone:`accent`,children:r?(0,U.jsx)(P,{className:`h-3.5 w-3.5 animate-spin`}):(0,U.jsx)(D,{className:`h-3.5 w-3.5`})}),E&&(0,U.jsx)(K,{label:h(`kanban.action.cancel`),onClick:d,disabled:n,tone:`danger`,children:n?(0,U.jsx)(P,{className:`h-3.5 w-3.5 animate-spin`}):(0,U.jsx)(ee,{className:`h-3.5 w-3.5`})}),(0,U.jsx)(K,{label:h(`kanban.action.edit`),onClick:c,disabled:i,children:i?(0,U.jsx)(P,{className:`h-3.5 w-3.5 animate-spin`}):(0,U.jsx)(p,{className:`h-3.5 w-3.5`})}),A&&(0,U.jsx)(K,{label:h(`kanban.action.archive`),onClick:m,children:(0,U.jsx)(l,{className:`h-3.5 w-3.5`})}),(0,U.jsx)(K,{label:h(`kanban.action.open`),onClick:a,children:(0,U.jsx)(ae,{className:`h-3.5 w-3.5`})})]})]})}var J={waiting:{title:`kanban.column.waiting`,description:`kanban.column.waitingDescription`,icon:d,accent:`bg-amber-400`,iconStyle:`text-amber-700 dark:text-amber-400`},active:{title:`kanban.column.active`,description:`kanban.column.activeDescription`,icon:P,accent:`bg-blue-500`,iconStyle:`text-blue-700 dark:text-blue-400`},blocked:{title:`kanban.column.blocked`,description:`kanban.column.blockedDescription`,icon:k,accent:`bg-red-500`,iconStyle:`text-red-700 dark:text-red-400`},review:{title:`kanban.column.review`,description:`kanban.column.reviewDescription`,icon:A,accent:`bg-[hsl(var(--deck-accent))]`,iconStyle:`text-[hsl(var(--deck-accent))]`}};function ge({id:e,sessions:t,unreadTaskKeys:n,cancellingTaskKeys:r,retryingTaskKeys:i,updatingTaskKeys:a,taskKey:o,onOpen:c,onInspect:l,onEdit:u,onCancel:d,onRetry:f,onArchive:p}){let m=s(),h=J[e],g=h.icon;return(0,U.jsxs)(`section`,{"data-kanban-column":e,"aria-labelledby":`kanban-column-${e}`,className:`flex min-h-[180px] min-w-0 flex-col border-t-2 border-[hsl(var(--deck-hairline))] pt-3 md:min-h-[360px]`,children:[(0,U.jsxs)(`header`,{className:`mb-3 flex min-h-12 items-start gap-2 px-0.5`,children:[(0,U.jsx)(g,{className:T(`mt-0.5 h-3.5 w-3.5 shrink-0`,h.iconStyle,e===`active`&&`animate-spin`)}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`h2`,{id:`kanban-column-${e}`,className:`font-mono text-[11px] font-semibold uppercase text-[hsl(var(--deck-ink))]`,children:m(h.title)}),(0,U.jsx)(`span`,{className:`min-w-5 rounded-sm bg-[hsl(var(--deck-surface-2))] px-1.5 py-0.5 text-center font-mono text-[9px] text-[hsl(var(--deck-ink-faint))]`,children:t.length})]}),(0,U.jsx)(`p`,{className:`mt-0.5 text-[10px] leading-4 text-[hsl(var(--deck-ink-faint))]`,children:m(h.description)})]}),(0,U.jsx)(`span`,{className:T(`mt-1 h-1.5 w-1.5 shrink-0 rounded-full`,h.accent)})]}),(0,U.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2.5`,children:[t.map(e=>{let t=o(e);return(0,U.jsx)(q,{session:e,unread:n.includes(t),cancelling:r.includes(t),retrying:i.includes(t),updating:a.includes(t),onOpen:()=>c(e),onInspect:()=>l(e),onEdit:()=>u(e),onCancel:()=>d(e),onRetry:()=>f(e),onArchive:()=>p(e)},t)}),t.length===0&&(0,U.jsx)(`div`,{className:`flex min-h-28 items-center justify-center rounded-md border border-dashed border-[hsl(var(--deck-border))] px-4 text-center font-mono text-[10px] leading-4 text-[hsl(var(--deck-ink-faint))]`,children:m(`kanban.column.empty`)})]})]})}function Y(e){if(!e)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(0,16)}function _e({open:e,onOpenChange:t,projects:n,defaultProjectPath:r,session:i,submitting:a,canCreate:o,onCreate:c,onUpdate:l}){let d=s(),f=!!i,[p,m]=(0,z.useState)(``),[h,g]=(0,z.useState)(``),[v,S]=(0,z.useState)(r??``),[w,T]=(0,z.useState)(`medium`),[D,k]=(0,z.useState)(`feature`),[A,j]=(0,z.useState)(``),[M,N]=(0,z.useState)(null);return(0,z.useEffect)(()=>{e&&(m(i?.title??``),g(i?.taskPromptSummary??``),S(i?.taskSourceProjectPath??i?.projectPath??r??n.find(e=>e.available)?.path??``),T(i?.taskPriority??`medium`),k(i?.taskKind??`feature`),j(Y(i?.taskDueAt)),N(null))},[r,e,n,i]),(0,U.jsx)(b,{open:e,onOpenChange:t,children:(0,U.jsxs)(x,{className:`max-w-[560px] gap-0 overflow-hidden border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] p-0`,children:[(0,U.jsxs)(_,{className:`border-b border-[hsl(var(--deck-hairline))] px-5 py-4`,children:[(0,U.jsx)(E,{className:`font-mono text-[15px] text-[hsl(var(--deck-ink))]`,children:d(f?`kanban.dialog.editTitle`:`kanban.dialog.createTitle`)}),(0,U.jsx)(C,{className:`text-[11.5px] text-[hsl(var(--deck-ink-faint))]`,children:d(f?`kanban.dialog.editDescription`:`kanban.dialog.createDescription`)})]}),(0,U.jsxs)(`form`,{onSubmit:async e=>{e.preventDefault();let n=p.trim(),r=h.trim();if(f||r&&v){N(null);try{f?await l({...n?{title:n}:{},taskPriority:w,taskKind:D,taskDueAt:A?new Date(A).toISOString():null}):await c({...n?{title:n}:{},prompt:r,projectPath:v,taskPriority:w,taskKind:D,...A?{taskDueAt:new Date(A).toISOString()}:{}}),t(!1)}catch(e){N(e instanceof Error?e.message:d(`kanban.dialog.submitFailed`))}}},children:[(0,U.jsxs)(`div`,{className:`grid gap-4 px-5 py-5`,children:[(0,U.jsxs)(`label`,{className:`grid gap-1.5`,children:[(0,U.jsx)(`span`,{className:`font-mono text-[10px] uppercase text-[hsl(var(--deck-ink-muted))]`,children:d(`kanban.field.title`)}),(0,U.jsx)(`input`,{value:p,onChange:e=>m(e.target.value),maxLength:200,className:`field`,placeholder:d(`kanban.field.titlePlaceholder`)})]}),!f&&(0,U.jsxs)(`label`,{className:`grid gap-1.5`,children:[(0,U.jsx)(`span`,{className:`font-mono text-[10px] uppercase text-[hsl(var(--deck-ink-muted))]`,children:d(`kanban.field.prompt`)}),(0,U.jsx)(`textarea`,{required:!0,value:h,onChange:e=>g(e.target.value),maxLength:32e3,rows:6,className:`min-h-32 w-full resize-y rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-canvas))] px-3 py-2.5 text-[13px] leading-5 text-[hsl(var(--deck-ink))] outline-none placeholder:text-[hsl(var(--deck-ink-faint))] focus:border-[hsl(var(--deck-accent)/0.6)] focus:ring-1 focus:ring-[hsl(var(--deck-accent)/0.35)]`,placeholder:d(`kanban.field.promptPlaceholder`)})]}),!f&&(0,U.jsxs)(`label`,{className:`grid gap-1.5`,children:[(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 font-mono text-[10px] uppercase text-[hsl(var(--deck-ink-muted))]`,children:[(0,U.jsx)(O,{className:`h-3 w-3`}),d(`kanban.field.project`)]}),(0,U.jsx)(`select`,{required:!0,value:v,onChange:e=>S(e.target.value),className:`field`,children:n.filter(e=>e.available).map(e=>(0,U.jsx)(`option`,{value:e.path,children:e.name},e.path))})]}),(0,U.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-3`,children:[(0,U.jsxs)(`label`,{className:`grid gap-1.5`,children:[(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 font-mono text-[10px] uppercase text-[hsl(var(--deck-ink-muted))]`,children:[(0,U.jsx)(R,{className:`h-3 w-3`}),d(`kanban.field.kind`)]}),(0,U.jsxs)(`select`,{value:D,onChange:e=>k(e.target.value),className:`field`,children:[(0,U.jsx)(`option`,{value:`feature`,children:d(`kanban.kind.feature`)}),(0,U.jsx)(`option`,{value:`bug`,children:d(`kanban.kind.bug`)}),(0,U.jsx)(`option`,{value:`maintenance`,children:d(`kanban.kind.maintenance`)}),(0,U.jsx)(`option`,{value:`research`,children:d(`kanban.kind.research`)})]})]}),(0,U.jsxs)(`label`,{className:`grid gap-1.5`,children:[(0,U.jsx)(`span`,{className:`font-mono text-[10px] uppercase text-[hsl(var(--deck-ink-muted))]`,children:d(`kanban.field.priority`)}),(0,U.jsxs)(`select`,{value:w,onChange:e=>T(e.target.value),className:`field`,children:[(0,U.jsx)(`option`,{value:`high`,children:d(`kanban.priority.high`)}),(0,U.jsx)(`option`,{value:`medium`,children:d(`kanban.priority.medium`)}),(0,U.jsx)(`option`,{value:`low`,children:d(`kanban.priority.low`)})]})]}),(0,U.jsxs)(`label`,{className:`grid gap-1.5`,children:[(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 font-mono text-[10px] uppercase text-[hsl(var(--deck-ink-muted))]`,children:[(0,U.jsx)(u,{className:`h-3 w-3`}),d(`kanban.field.dueAt`)]}),(0,U.jsx)(`input`,{type:`datetime-local`,value:A,onChange:e=>j(e.target.value),className:`field min-w-0`})]})]}),!f&&(0,U.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-3 py-2 font-mono text-[10px] text-[hsl(var(--deck-ink-muted))]`,children:[(0,U.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-[hsl(var(--deck-accent))]`}),d(`kanban.dialog.localExecution`)]}),M&&(0,U.jsx)(`div`,{role:`alert`,className:`rounded-md border border-red-200 bg-red-50 px-3 py-2 text-[11px] text-red-700 dark:border-red-900/70 dark:bg-red-950/35 dark:text-red-300`,children:M})]}),(0,U.jsxs)(oe,{className:`border-t border-[hsl(var(--deck-hairline))] bg-[hsl(var(--deck-surface-2))]/60 px-5 py-3`,children:[(0,U.jsx)(y,{type:`button`,variant:`ghost`,onClick:()=>t(!1),disabled:a,children:d(`kanban.dialog.cancel`)}),(0,U.jsxs)(y,{type:`submit`,disabled:a||!f&&(!o||!h.trim()||!v),className:`gap-2`,children:[a&&(0,U.jsx)(P,{className:`h-3.5 w-3.5 animate-spin`}),d(f?`kanban.dialog.save`:`kanban.dialog.dispatch`)]})]})]})]})})}function X(){let e=s(),n=F(e=>e.sessions),a=F(e=>e.boundProjects),o=F(e=>e.selectedProjectPath),c=F(e=>e.taskWorkspaceInfo),l=F(e=>e.catalogLoadState),u=F(e=>e.taskEventConnectionState),d=F(e=>e.isDispatchingTask),p=F(e=>e.isUpdatingTaskAdmission),_=F(e=>e.cancellingTaskKeys),y=F(e=>e.retryingTaskKeys),b=F(e=>e.updatingTaskKeys),x=F(e=>e.unreadTaskKeys),C=F(e=>e.error),E=F(e=>i(e.historySurfaceSelection)),D=F(e=>e.selectProject),k=F(e=>e.selectSession),A=F(e=>e.dispatchTask),ee=F(e=>e.updateTask),ie=F(e=>e.cancelTask),ae=F(e=>e.retryTask),oe=F(e=>e.archiveSession),I=F(e=>e.setTaskAdmissionPaused),se=F(e=>e.reconnectTaskEvents),ce=F(e=>e.clearError),le=w(e=>e.currentMode),L=r(e=>e.setMainView),R=r(e=>e.boardProjectPath),V=r(e=>e.setBoardProjectPath),ue=r(e=>e.openFilePreview),[H,fe]=(0,z.useState)(``),[me,W]=(0,z.useState)(!1),[he,G]=(0,z.useState)(null),[K,q]=(0,z.useState)(!1);(0,z.useEffect)(()=>{R&&!a.some(e=>e.path===R&&e.available)&&V(null)},[R,a,V]);let J=n.find(e=>M(g(e))===he)??null,Y=H.trim().toLowerCase(),X=(0,z.useMemo)(()=>n.filter(t=>R&&de(t)!==R?!1:!Y||[t.sessionId,te(t,e),t.taskPromptSummary,de(t),t.taskPriority,t.taskKind].filter(Boolean).join(` `).toLowerCase().includes(Y)),[R,Y,n,e]),ve=(0,z.useMemo)(()=>pe(X),[X]),ye=B.reduce((e,t)=>e+ve[t].length,0),Z=c?.taskAdmission,Q=!Z||!Z.paused,$=a.filter(e=>e.available),be=R??o??$[0]?.path??null,xe=J?b.includes(M(g(J))):d,Se=async e=>{L(`workspace`),await k(g(e))},Ce=async e=>{L(`workspace`),await k(g(e)),ue({tab:`diff`})};return E?null:(0,U.jsxs)(`main`,{"data-kanban-board":!0,className:`flex h-full min-w-0 flex-col overflow-hidden bg-[hsl(var(--deck-canvas))] text-[hsl(var(--deck-ink))]`,children:[(0,U.jsxs)(`div`,{className:`border-b border-[hsl(var(--deck-hairline))] bg-[hsl(var(--deck-canvas))] px-4 py-3 sm:px-6`,children:[(0,U.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`h1`,{className:`font-mono text-[15px] font-semibold`,children:e(`kanban.title`)}),(0,U.jsx)(`span`,{className:`rounded-sm border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-1.5 py-0.5 font-mono text-[9px] text-[hsl(var(--deck-ink-faint))]`,children:e(`kanban.taskCount`,{count:ye})})]}),(0,U.jsx)(`p`,{className:`mt-0.5 text-[10.5px] text-[hsl(var(--deck-ink-faint))]`,children:e(`kanban.subtitle`)})]}),(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[Z&&(0,U.jsx)(`div`,{className:`hidden rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-2.5 py-1.5 lg:block`,children:(0,U.jsx)(re,{inFlight:Z.inFlight,queued:Z.queued,maxConcurrent:Z.maxConcurrent,compact:!0})}),(0,U.jsxs)(`button`,{type:`button`,role:`switch`,"aria-checked":Q,disabled:!Z||p,onClick:()=>{t(F.getState())||I(Q).catch(()=>void 0)},className:T(`inline-flex h-8 items-center gap-2 rounded-md border px-2.5 font-mono text-[10.5px] transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))] disabled:opacity-45`,Q?`border-[hsl(var(--deck-accent)/0.45)] bg-[hsl(var(--deck-accent-soft))] text-[hsl(var(--deck-accent))]`:`border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] text-[hsl(var(--deck-ink-muted))]`),children:[p?(0,U.jsx)(P,{className:`h-3 w-3 animate-spin`}):Q?(0,U.jsx)(m,{className:`h-3 w-3 fill-current`}):(0,U.jsx)(f,{className:`h-3 w-3`}),e(Q?`kanban.autoClaim.running`:`kanban.autoClaim.paused`)]}),(0,U.jsxs)(`button`,{type:`button`,onClick:()=>{if($.length===0){q(!0);return}G(null),W(!0)},className:`inline-flex h-8 items-center gap-1.5 rounded-md bg-[hsl(var(--deck-ink))] px-3 font-mono text-[10.5px] font-medium text-[hsl(var(--deck-canvas))] transition-opacity hover:opacity-85 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--deck-accent))]`,children:[(0,U.jsx)(h,{className:`h-3.5 w-3.5`}),e(`kanban.action.newTask`)]})]})]}),(0,U.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,U.jsxs)(`label`,{className:`relative min-w-[180px] flex-1 sm:max-w-[320px]`,children:[(0,U.jsx)(S,{className:`pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-[hsl(var(--deck-ink-faint))]`}),(0,U.jsx)(`input`,{type:`search`,value:H,onChange:e=>fe(e.target.value),"aria-label":e(`kanban.searchAria`),placeholder:e(`kanban.searchPlaceholder`),className:`h-8 w-full rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] pl-8 pr-3 font-mono text-[10.5px] text-[hsl(var(--deck-ink))] outline-none placeholder:text-[hsl(var(--deck-ink-faint))] focus:border-[hsl(var(--deck-accent)/0.55)] focus:ring-1 focus:ring-[hsl(var(--deck-accent)/0.25)]`})]}),(0,U.jsxs)(`label`,{className:`relative`,children:[(0,U.jsx)(O,{className:`pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-[hsl(var(--deck-accent))]`}),(0,U.jsxs)(`select`,{value:R??`__all__`,onChange:e=>{let t=e.target.value;V(t===`__all__`?null:t),t!==`__all__`&&D(t)},"aria-label":e(`kanban.projectFilterAria`),className:`h-8 min-w-[160px] appearance-none rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] pl-8 pr-7 font-mono text-[10.5px] text-[hsl(var(--deck-ink-muted))] outline-none focus:border-[hsl(var(--deck-accent)/0.55)]`,children:[(0,U.jsx)(`option`,{value:`__all__`,children:e(`kanban.projectAll`)}),$.map(e=>(0,U.jsx)(`option`,{value:e.path,children:e.name},e.path))]})]}),(0,U.jsx)(`button`,{type:`button`,onClick:()=>q(!0),"aria-label":e(`projects.bind.action`),title:e(`projects.bind.action`),className:`flex h-8 w-8 items-center justify-center rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] text-[hsl(var(--deck-ink-faint))] hover:text-[hsl(var(--deck-accent))]`,children:(0,U.jsx)(ne,{className:`h-3.5 w-3.5`})}),l===`loading`||l===`hydrating`?(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 font-mono text-[9.5px] text-[hsl(var(--deck-ink-faint))]`,children:[(0,U.jsx)(P,{className:`h-3 w-3 animate-spin`}),e(`sidebar.catalog.syncing`)]}):null]})]}),u===`offline`&&(0,U.jsxs)(`div`,{role:`alert`,className:`flex items-center gap-2 border-b border-amber-300/60 bg-amber-50/80 px-4 py-2 text-[10.5px] text-amber-800 dark:border-amber-900/70 dark:bg-amber-950/30 dark:text-amber-300 sm:px-6`,children:[(0,U.jsx)(v,{className:`h-3.5 w-3.5`}),(0,U.jsx)(`span`,{className:`flex-1`,children:e(`kanban.feed.offline`)}),(0,U.jsxs)(`button`,{type:`button`,onClick:()=>void se().catch(()=>void 0),className:`inline-flex h-7 items-center gap-1 rounded-md px-2 font-mono hover:bg-amber-100 dark:hover:bg-amber-900/40`,children:[(0,U.jsx)(N,{className:`h-3 w-3`}),e(`taskHome.feed.retry`)]})]}),C&&(0,U.jsxs)(`div`,{role:`alert`,className:`flex items-center gap-3 border-b border-red-200 bg-red-50 px-4 py-2 text-[10.5px] text-red-700 dark:border-red-900/70 dark:bg-red-950/30 dark:text-red-300 sm:px-6`,children:[(0,U.jsx)(`span`,{className:`flex-1`,children:C}),(0,U.jsx)(`button`,{type:`button`,onClick:ce,className:`font-mono underline`,children:e(`taskHome.error.dismiss`)})]}),(0,U.jsx)(`div`,{className:`flex-1 overflow-auto px-4 py-4 sm:px-6`,children:(0,U.jsx)(`div`,{className:`grid min-w-0 grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-4`,children:B.map(e=>(0,U.jsx)(ge,{id:e,sessions:ve[e],unreadTaskKeys:x,cancellingTaskKeys:_,retryingTaskKeys:y,updatingTaskKeys:b,taskKey:e=>M(g(e)),onOpen:e=>{Se(e).catch(()=>void 0)},onInspect:e=>{Ce(e).catch(()=>void 0)},onEdit:e=>{G(M(g(e))),W(!0)},onCancel:e=>{t(F.getState())||ie(g(e)).catch(()=>void 0)},onRetry:e=>{t(F.getState())||ae(g(e)).catch(()=>void 0)},onArchive:e=>{t(F.getState())||oe(g(e))}},e))})}),(0,U.jsx)(_e,{open:me,onOpenChange:e=>{W(e),e||G(null)},projects:a,defaultProjectPath:be,session:J,submitting:xe,canCreate:$.length>0,onCreate:async e=>{t(F.getState())||(D(e.projectPath),await A({...e,isolation:`local`,permissionMode:le},{selectSession:!1}))},onUpdate:async e=>{t(F.getState())||J&&await ee(g(J),e)}}),(0,U.jsx)(j,{open:K,onOpenChange:q})]})}export{X as KanbanBoard};
|