blade-code 0.11.1 → 0.11.3

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.
Files changed (141) hide show
  1. package/dist/blade.js +2 -2
  2. package/dist/{chunk-s1cch8tt.js → chunk-0759ckbc.js} +1 -1
  3. package/dist/{chunk-4cdk4mds.js → chunk-0eajnhrj.js} +1 -1
  4. package/dist/{chunk-2ftyzk83.js → chunk-0pcrccgp.js} +1 -1
  5. package/dist/{chunk-5034apfz.js → chunk-0wxnrjes.js} +2 -2
  6. package/dist/{chunk-vbjgcn49.js → chunk-1cy4ab77.js} +1 -1
  7. package/dist/{chunk-a74ynw4t.js → chunk-33w0b9r4.js} +1 -1
  8. package/dist/chunk-3d4wgfkr.js +1 -0
  9. package/dist/chunk-3rxs9vxm.js +6 -0
  10. package/dist/{chunk-30p7aff1.js → chunk-45xdp95z.js} +1 -1
  11. package/dist/{chunk-9ydrwcpy.js → chunk-4e4qtpca.js} +2 -2
  12. package/dist/{chunk-ts5xzefm.js → chunk-5qrw9g8c.js} +2 -2
  13. package/dist/{chunk-0wcnkxe8.js → chunk-5s2x98rx.js} +2 -2
  14. package/dist/{chunk-8sth12hd.js → chunk-6v23hdt8.js} +1 -1
  15. package/dist/{chunk-06hkf59s.js → chunk-7ajvrtb3.js} +1 -1
  16. package/dist/chunk-7p8r4q6f.js +1 -0
  17. package/dist/{chunk-gzbb747a.js → chunk-a95jmx2j.js} +1 -1
  18. package/dist/{chunk-n8qg68y2.js → chunk-amabfzc8.js} +1 -1
  19. package/dist/{chunk-m30qwpe9.js → chunk-b22ab7yw.js} +1 -1
  20. package/dist/chunk-b3kvf23h.js +357 -0
  21. package/dist/chunk-b7pn03pb.js +1 -0
  22. package/dist/chunk-b8hm4td5.js +1 -0
  23. package/dist/{chunk-xz7dddaj.js → chunk-cmpxdek8.js} +1 -1
  24. package/dist/{chunk-8n3jythp.js → chunk-crbt25b4.js} +2 -2
  25. package/dist/{chunk-0b83mt1c.js → chunk-crv3sghv.js} +2 -2
  26. package/dist/{chunk-7eset766.js → chunk-dv5ts9ae.js} +6 -6
  27. package/dist/{chunk-g0hhqxpg.js → chunk-dyf12wbv.js} +2 -2
  28. package/dist/chunk-fa5sebe2.js +1 -0
  29. package/dist/{chunk-hmw99nm1.js → chunk-faedrfhd.js} +27 -27
  30. package/dist/chunk-ffq1k7q5.js +10 -0
  31. package/dist/chunk-fnvh22vc.js +1 -0
  32. package/dist/{chunk-xcy45yxx.js → chunk-g0xtk1yy.js} +2 -2
  33. package/dist/{chunk-h8w3ahnk.js → chunk-g2295k8s.js} +2 -2
  34. package/dist/chunk-gfhb2h6z.js +1 -0
  35. package/dist/chunk-gqypt03h.js +1 -0
  36. package/dist/chunk-hn2p1296.js +1 -0
  37. package/dist/chunk-hnnhpv75.js +1 -0
  38. package/dist/{chunk-ms0wve9g.js → chunk-hzz27w5w.js} +2 -2
  39. package/dist/{chunk-ta99scbr.js → chunk-jbpasjg9.js} +1 -1
  40. package/dist/{chunk-2vrsfb8p.js → chunk-jm1chm6x.js} +55 -55
  41. package/dist/{chunk-pm5ssr7m.js → chunk-kb4hwa5a.js} +1 -1
  42. package/dist/{chunk-sa9fxss4.js → chunk-kdtj92em.js} +1 -1
  43. package/dist/{chunk-3kszepm6.js → chunk-kehgewqh.js} +1 -1
  44. package/dist/{chunk-wcps5gjm.js → chunk-kkzznz4w.js} +1 -1
  45. package/dist/chunk-m2x6pb4f.js +2 -0
  46. package/dist/chunk-mmpcq1yh.js +1 -0
  47. package/dist/{chunk-xzva8y4e.js → chunk-mqfayxf7.js} +3 -3
  48. package/dist/{chunk-tqt5c2f5.js → chunk-n30najxq.js} +2 -2
  49. package/dist/{chunk-9yn01a90.js → chunk-nts19h6v.js} +1 -1
  50. package/dist/{chunk-v1k6nvth.js → chunk-nvj4da2w.js} +1 -1
  51. package/dist/{chunk-80946c9a.js → chunk-p36k2e96.js} +1 -1
  52. package/dist/{chunk-a1tt14a2.js → chunk-pbckwd41.js} +2 -2
  53. package/dist/{chunk-zfxcef0z.js → chunk-pm163dfm.js} +1 -1
  54. package/dist/{chunk-1beqtjsw.js → chunk-prqtwzxd.js} +1 -1
  55. package/dist/{chunk-zjezws85.js → chunk-px45q235.js} +2 -2
  56. package/dist/{chunk-5bc4hwt9.js → chunk-q6sr4979.js} +2 -2
  57. package/dist/{chunk-m8te4s8f.js → chunk-qvew5nk3.js} +2 -2
  58. package/dist/{chunk-yrr9mdjn.js → chunk-qy6p8bpr.js} +2 -2
  59. package/dist/{chunk-xseh3f4m.js → chunk-r5svk833.js} +1 -1
  60. package/dist/{chunk-25s0c8km.js → chunk-r9nyzqzb.js} +5 -5
  61. package/dist/{chunk-27bjk35b.js → chunk-s3pnhdqk.js} +1 -1
  62. package/dist/{chunk-f552hzcx.js → chunk-sdapqhj0.js} +1 -1
  63. package/dist/{chunk-a731hdwa.js → chunk-skktstg8.js} +1 -1
  64. package/dist/chunk-sqsfztrv.js +1 -0
  65. package/dist/{chunk-xcj23spc.js → chunk-t0swttvj.js} +2 -2
  66. package/dist/{chunk-m70cnaeg.js → chunk-v0eanse2.js} +1 -1
  67. package/dist/{chunk-dxq7462e.js → chunk-wan9q99y.js} +2 -2
  68. package/dist/{chunk-f6hc7t65.js → chunk-wnzr9h84.js} +1 -1
  69. package/dist/{chunk-447ps2te.js → chunk-x2crj6jq.js} +2 -2
  70. package/dist/{chunk-5yyp6njq.js → chunk-x6k5ye1z.js} +1 -1
  71. package/dist/{chunk-fqxzzsgr.js → chunk-yeandcre.js} +1 -1
  72. package/dist/{chunk-3y2x6fb6.js → chunk-ys8gysg8.js} +1 -1
  73. package/dist/chunk-yw3achrm.js +1 -0
  74. package/dist/{chunk-rt3f4xjz.js → chunk-zc8erdkc.js} +14 -6
  75. package/dist/web/assets/ChatView-CvuKp3Yl.js +17 -0
  76. package/dist/web/assets/{CodeBlockHighlighter-B5kcdVCA.js → CodeBlockHighlighter-CYiAdOLs.js} +1 -1
  77. package/dist/web/assets/FilePreview-DGolvoH6.js +8 -0
  78. package/dist/web/assets/KanbanBoard-DdwrLpvb.js +1 -0
  79. package/dist/web/assets/{MarkdownRenderer-d7DdyYdx.js → MarkdownRenderer-fJny7W8J.js} +3 -3
  80. package/dist/web/assets/{ScrollArea-D1tPWHKZ.js → ScrollArea-CSCl8r35.js} +1 -1
  81. package/dist/web/assets/{SessionHistorySurface-Cv_jRoJr.js → SessionHistorySurface-dttyHhtN.js} +1 -1
  82. package/dist/web/assets/SettingsModal-Bn9m-F-v.js +5 -0
  83. package/dist/web/assets/Sidebar-JYvLuHTi.js +1 -0
  84. package/dist/web/assets/{TaskSwitcher-C9AKJrl-.js → TaskSwitcher-InE9ArQH.js} +1 -1
  85. package/dist/web/assets/{TerminalPanel-BxBGcuB9.js → TerminalPanel-BLRAlQoa.js} +1 -1
  86. package/dist/web/assets/{archive-DNa9b1YE.js → archive-D3alcPOa.js} +1 -1
  87. package/dist/web/assets/{arrow-left-BQh8jlfT.js → arrow-left-CNfcSdE2.js} +1 -1
  88. package/dist/web/assets/{calendar-clock-CC7FeYTg.js → calendar-clock-BoRTfsxW.js} +1 -1
  89. package/dist/web/assets/chevron-right-B8JH5N50.js +1 -0
  90. package/dist/web/assets/{clock-3-P2q6i6vm.js → clock-3-BGymk4sE.js} +1 -1
  91. package/dist/web/assets/{copy-C-KvzjCC.js → copy-CLG3LQ2v.js} +1 -1
  92. package/dist/web/assets/{dist-DiQNoDMg.js → dist-BtGkS2rG.js} +1 -1
  93. package/dist/web/assets/{download-CJHn20x1.js → download-DxK6pukC.js} +1 -1
  94. package/dist/web/assets/{folder-DmyFehXD.js → folder-B0xRimYH.js} +1 -1
  95. package/dist/web/assets/index-BJdxoBtv.css +1 -0
  96. package/dist/web/assets/{index-D-oma3Je.js → index-DkwePtIh.js} +4 -4
  97. package/dist/web/assets/{pause-D2FxNG-w.js → pause-CKNq9DgJ.js} +1 -1
  98. package/dist/web/assets/{pencil-D6HI7KC8.js → pencil-CMjIwtk5.js} +1 -1
  99. package/dist/web/assets/{play-4jKCDYR-.js → play-BOz9Sqzf.js} +1 -1
  100. package/dist/web/assets/plus-BJIEQjD7.js +1 -0
  101. package/dist/web/assets/preload-helper-HI3NtP3B.js +1 -0
  102. package/dist/web/assets/{session-events-CvFfHkFA.js → session-events-B-hnDC4L.js} +7 -7
  103. package/dist/web/assets/{settings-fWlqCZ-U.js → settings-CP6ArjQ7.js} +1 -1
  104. package/dist/web/assets/team-BHlihaeV.js +1 -0
  105. package/dist/web/assets/{teamService-DfIvlI2_.js → teamService-DDfifLYm.js} +1 -1
  106. package/dist/web/assets/{terminal-DZkEoiSb.js → terminal-BYHhWXe-.js} +1 -1
  107. package/dist/web/assets/tooltip-DJBQZhJD.js +1 -0
  108. package/dist/web/assets/triangle-alert-BCJaJaVj.js +1 -0
  109. package/dist/web/assets/{vendor-radix-CHeA_3Pt.js → vendor-radix-BCAvgfOW.js} +1 -1
  110. package/dist/web/assets/{vendor-react-hNfZDUf2.js → vendor-react-DQwAdeyS.js} +1 -1
  111. package/dist/web/index.html +5 -5
  112. package/package.json +1 -1
  113. package/dist/chunk-1kxpnt9q.js +0 -1
  114. package/dist/chunk-2g3v9qpz.js +0 -1
  115. package/dist/chunk-43gg1wdc.js +0 -1
  116. package/dist/chunk-72wn385d.js +0 -1
  117. package/dist/chunk-7vzz3rsx.js +0 -332
  118. package/dist/chunk-8emp6ysb.js +0 -1
  119. package/dist/chunk-8evyh5t0.js +0 -1
  120. package/dist/chunk-8hdtssvs.js +0 -1
  121. package/dist/chunk-b36egepz.js +0 -1
  122. package/dist/chunk-hrtf7dba.js +0 -2
  123. package/dist/chunk-j7dx054r.js +0 -1
  124. package/dist/chunk-j9ppeg6v.js +0 -1
  125. package/dist/chunk-jemb0vwa.js +0 -1
  126. package/dist/chunk-r9m3b170.js +0 -1
  127. package/dist/chunk-tf1qz4q6.js +0 -1
  128. package/dist/chunk-v17q4bsd.js +0 -6
  129. package/dist/chunk-y0wc0hef.js +0 -10
  130. package/dist/web/assets/ChatView-BA3kB_z1.js +0 -17
  131. package/dist/web/assets/FilePreview-BQid6G2-.js +0 -8
  132. package/dist/web/assets/KanbanBoard-CTR7bMLa.js +0 -1
  133. package/dist/web/assets/SettingsModal-CFa2uCzI.js +0 -5
  134. package/dist/web/assets/Sidebar-DrRNJOgU.js +0 -1
  135. package/dist/web/assets/chevron-right-6ZTOJE0p.js +0 -1
  136. package/dist/web/assets/index-BVEiHNFk.css +0 -1
  137. package/dist/web/assets/message-square-plus-CKu9bFq3.js +0 -1
  138. package/dist/web/assets/plus-C4p8E1Nk.js +0 -1
  139. package/dist/web/assets/preload-helper-BC9Zf9qO.js +0 -1
  140. package/dist/web/assets/team-qGS2kixH.js +0 -1
  141. package/dist/web/assets/triangle-alert-Detl9fRQ.js +0 -1
@@ -0,0 +1,8 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-BtGkS2rG.js","assets/rolldown-runtime-hePW80VL.js","assets/session-events-B-hnDC4L.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-B-hnDC4L.js";import{C as s}from"./vendor-radix-BCAvgfOW.js";import{c,l,r as u,s as d,t as f}from"./preload-helper-HI3NtP3B.js";import{n as p,r as m,t as h}from"./triangle-alert-BCJaJaVj.js";import{a as g,c as _,i as v,n as y,o as b,r as ee,s as x,t as te}from"./tooltip-DJBQZhJD.js";import{t as ne}from"./arrow-left-CNfcSdE2.js";import{n as S,t as C}from"./folder-B0xRimYH.js";import{t as w}from"./chevron-right-B8JH5N50.js";import{$ as T,F as E,G as D,H as O,N as re,O as ie,P as ae,Q as oe,St as k,U as A,W as se,_ as j,bt as ce,ct as le,et as ue,ft as M,j as de,mt as fe,rt as pe,tt as N,u as P,vt as F,xt as I,y as L}from"./index-DkwePtIh.js";var me={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`}]]};me.node;var R=l(me),z={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`}]]};z.node;var he=l(z),ge={name:`coins`,size:24,node:[[`path`,{d:`M13.744 17.736a6 6 0 1 1-7.48-7.48`,key:`bq4yh3`}],[`path`,{d:`M15 6h1v4`,key:`11y1tn`}],[`path`,{d:`m6.134 14.768.866-.5 2 3.464`,key:`17snzx`}],[`circle`,{cx:`16`,cy:`8`,r:`6`,key:`14bfc9`}]]};ge.node;var _e=l(ge),ve={name:`database`,size:24,node:[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]};ve.node;var ye=l(ve),B={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`}]]};B.node;var be=l(B),V={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`}]]};V.node;var xe=l(V),H={name:`list`,size:24,node:[[`path`,{d:`M3 5h.01`,key:`18ugdj`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 19h.01`,key:`noohij`}],[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 19h13`,key:`m83p4d`}]]};H.node;var U=l(H),W={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`}]]};W.node;var Se=l(W),Ce={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`}]]};Ce.node;var G=l(Ce),we={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`]};we.node;var Te=l(we),Ee={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`]};Ee.node;var De=l(Ee),K={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`}]]};K.node;var Oe=l(K),q=e(r(),1),J=s(),Y=q.createContext(null);function ke(e){let t=q.useContext(Y);if(!t)throw Error(`${e} must be used within <Tabs>`);return t}function Ae({value:e,onValueChange:t,className:n,children:r}){let i=q.useMemo(()=>({value:e,setValue:t}),[e,t]);return(0,J.jsx)(Y.Provider,{value:i,children:(0,J.jsx)(`div`,{className:n,children:r})})}function je({className:e,children:t}){return(0,J.jsx)(`div`,{role:`tablist`,className:A(`inline-flex items-center`,e),children:t})}function Me({value:e,className:t,children:n}){let{value:r,setValue:i}=ke(`TabsTrigger`),a=r===e;return(0,J.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":a,"data-state":a?`active`:`inactive`,onClick:()=>i(e),className:A(`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 Ne({value:e,className:t,children:n,forceMount:r=!1}){let{value:i}=ke(`TabsContent`),a=i===e;return!a&&!r?null:(0,J.jsx)(`div`,{role:`tabpanel`,hidden:!a,className:t,children:n})}var Pe=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 Fe(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 Ie(e){return{base:Fe(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 Le=new Set;function X(e,t){let n=t.toLowerCase().replace(/\s+/g,`-`),r=Pe[n];if(!r)return`vs-dark`;if(!Le.has(n)){let t=Ie(r);e.editor.defineTheme(n,t),Le.add(n)}return n}function Z(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 Q={navigate:async(e,t)=>E(Z(e,`navigate`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}),snapshot:async(e,t={})=>E(Z(e,`snapshot`,t)),interact:async(e,t)=>E(Z(e,`interact`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}),inspect:async(e,t)=>E(Z(e,`inspect`,t)),screenshot:async(e,t={})=>{let n=await fetch(Z(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 E(Z(e,`reset`),{method:`POST`})}},Re={en:{frameTitle:`Project preview`,empty:`No preview open`,loading:`Loading preview…`},zh:{frameTitle:`项目预览`,empty:`未打开项目预览`,loading:`正在加载预览…`}};function ze({url:e,revision:t,loadState:n,onLoad:r,onError:i}){let{locale:a}=d(),o=Re[a];return(0,J.jsx)(`section`,{"data-preview-browser":!0,className:`relative h-full min-h-0 overflow-hidden bg-white`,children:e?(0,J.jsxs)(J.Fragment,{children:[(0,J.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,J.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,J.jsx)(le,{className:`mr-2 h-3.5 w-3.5 animate-spin text-[hsl(var(--deck-accent))]`}),(0,J.jsx)(`span`,{className:`font-mono text-[10.5px] text-[hsl(var(--deck-ink-muted))]`,children:o.loading})]})]}):(0,J.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 bg-[hsl(var(--deck-canvas-veil))] text-center`,children:[(0,J.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,J.jsx)(be,{className:`h-5 w-5`})}),(0,J.jsx)(`span`,{className:`font-mono text-[11px] text-[hsl(var(--deck-ink-muted))]`,children:o.empty})]})})}var Be={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 Ve(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 He(e){return JSON.stringify(e.slice(0,2048)).replaceAll(`<`,`\\u003c`).replaceAll(`>`,`\\u003e`)}function Ue(e,t){let n=e.text.replace(/\s+\[ref=[^\]]+\]/g,``).replace(/\s+\[box=[^\]]+\]/g,``).trim();return[`<browser_element_context trust="untrusted">`,`url: ${He(t.url)}`,`title: ${He(t.title)}`,`element: ${He(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 We(e){return[e.kind,e.level,e.method,e.status,e.url,e.text].filter(e=>e!==void 0&&e!==``).join(` · `)}function Ge({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:p,onSnapshot:m,onReset:v,onSourceChange:y,pickerActive:b,onPickerChange:ee,onAddToConversation:te}){let{locale:ne}=d(),S=Be[ne],[C,w]=(0,q.useState)(null),[T,E]=(0,q.useState)(``),[D,re]=(0,q.useState)(`dom`),ie=(0,q.useRef)(null),ae=(0,q.useRef)(null),[k,se]=(0,q.useState)({left:0,top:0,width:0,height:0,sourceWidth:0,sourceHeight:0}),j=e===`agent`,M=(0,q.useMemo)(()=>Ve(r?.snapshot??``),[r?.snapshot]),de=D===`dom`?[]:l[D]??[],fe=(0,q.useMemo)(()=>M.filter(e=>!!(e.ref&&e.box)).sort((e,t)=>t.box.width*t.box.height-e.box.width*e.box.height),[M]),P=(0,q.useMemo)(()=>M.find(e=>e.ref===C),[C,M]);(0,q.useEffect)(()=>{w(null)},[r?.snapshotId]),(0,q.useEffect)(()=>{j&&re(`dom`)},[j]);let F=(0,q.useCallback)(()=>{let e=ie.current,t=ae.current,n=r?.viewport?.width??a?.viewport?.width??t?.naturalWidth,i=r?.viewport?.height??a?.viewport?.height??t?.naturalHeight;if(!e||!n||!i){se({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;se({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,q.useEffect)(()=>{F();let e=ie.current;if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(F);return t.observe(e),()=>t.disconnect()},[F,i]);let L=(0,q.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=>{j&&e!==`dom`||(re(e),e!==`dom`&&p(e))};return(0,J.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,J.jsxs)(`div`,{ref:ie,className:`relative flex min-h-0 flex-1 items-center justify-center overflow-hidden bg-neutral-950`,children:[i?(0,J.jsx)(`img`,{ref:ae,"data-browser-test-screenshot":!0,src:i,alt:S.screenshotAlt,onLoad:F,className:`h-full w-full object-contain`}):(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-3 text-[hsl(var(--deck-ink-faint))]`,children:[(0,J.jsx)(R,{className:`h-7 w-7`}),(0,J.jsx)(`span`,{className:`font-mono text-[11px]`,children:n?S.empty:S.unavailable})]}),!j&&i&&k.width>0&&k.height>0&&(0,J.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:[b&&!s&&fe.map(e=>(0,J.jsx)(`button`,{type:`button`,"data-browser-pick-ref":e.ref,"aria-label":`${S.selectElement}: ${e.text}`,title:e.text,onClick:()=>w(e.ref),className:A(`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`,C===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)),!b&&P?.box&&(0,J.jsx)(`div`,{"data-browser-selected-element":P.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:`${P.box.x/k.sourceWidth*100}%`,top:`${P.box.y/k.sourceHeight*100}%`,width:`${P.box.width/k.sourceWidth*100}%`,height:`${P.box.height/k.sourceHeight*100}%`}})]}),!j&&P&&i&&(0,J.jsxs)(O,{type:`button`,"data-browser-add-to-composer":!0,disabled:s,onClick:()=>{r&&(te(Ue(P,r)),w(null),ee(!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,J.jsx)(g,{className:`mr-1.5 h-3.5 w-3.5`}),S.addToConversation]}),j&&L&&(0,J.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:L,children:[(0,J.jsx)(`span`,{className:`absolute -left-2 -top-2 h-4 w-4 animate-ping rounded-full bg-cyan-400/70`},o),(0,J.jsx)(G,{className:`relative h-5 w-5 fill-white text-neutral-950 drop-shadow-[0_1px_2px_rgba(0,0,0,0.8)]`})]}),s&&(0,J.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black/35`,children:(0,J.jsx)(le,{className:`h-5 w-5 animate-spin text-white`})}),c&&(0,J.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,J.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,J.jsx)(`div`,{role:`group`,"aria-label":S.sourceAria,className:`flex h-7 shrink-0 items-center border border-[hsl(var(--deck-border))]`,children:[[`user`,S.user,De],[`agent`,S.agent,I]].map(([n,r,i])=>(0,J.jsxs)(`button`,{type:`button`,disabled:n===`agent`&&!t,"aria-pressed":e===n,onClick:()=>y(n),className:A(`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,J.jsx)(i,{className:`h-3 w-3`}),(0,J.jsx)(`span`,{children:r})]},n))}),(0,J.jsx)(O,{type:`button`,variant:`ghost`,size:`icon`,disabled:j||!r||!i||s,"aria-pressed":b,title:b?S.stopSelecting:S.selectElement,"aria-label":b?S.stopSelecting:S.selectElement,onClick:()=>void ee(!b),className:A(`h-7 w-7 rounded-md`,b&&`bg-[hsl(var(--deck-accent-soft))] text-[hsl(var(--deck-accent))]`),children:(0,J.jsx)(ue,{className:`h-3.5 w-3.5`})}),(0,J.jsx)(`span`,{title:C?`${S.selectedRef}: ${C}`:S.noRef,className:`w-20 shrink-0 truncate font-mono text-[10px] text-[hsl(var(--deck-ink-muted))]`,children:C??`ref`}),(0,J.jsx)(O,{type:`button`,variant:`ghost`,size:`icon`,disabled:j||!C||s,title:S.click,"aria-label":S.click,onClick:()=>{C&&f({kind:`click`},C)},className:`h-7 w-7 rounded-md`,children:(0,J.jsx)(G,{className:`h-3.5 w-3.5`})}),(0,J.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,J.jsx)(`input`,{value:T,onChange:e=>E(e.target.value),disabled:j,placeholder:S.valuePlaceholder,"aria-label":S.valuePlaceholder,className:`min-w-0 flex-1 bg-transparent font-mono text-[10.5px] outline-none`}),(0,J.jsx)(O,{type:`button`,variant:`ghost`,size:`icon`,disabled:j||!C||!T||s,title:S.fill,"aria-label":S.fill,onClick:()=>{C&&f({kind:`fill`,value:T},C)},className:`h-6 w-6 rounded-md`,children:(0,J.jsx)(oe,{className:`h-3 w-3`})})]}),(0,J.jsx)(O,{type:`button`,variant:`ghost`,size:`icon`,disabled:j||!r||s,title:S.scrollUp,"aria-label":S.scrollUp,onClick:()=>void f({kind:`scroll`,direction:`up`,amount:560}),className:`h-7 w-7 rounded-md`,children:(0,J.jsx)(x,{className:`h-3.5 w-3.5`})}),(0,J.jsx)(O,{type:`button`,variant:`ghost`,size:`icon`,disabled:j||!r||s,title:S.scrollDown,"aria-label":S.scrollDown,onClick:()=>void f({kind:`scroll`,direction:`down`,amount:560}),className:`h-7 w-7 rounded-md`,children:(0,J.jsx)(_,{className:`h-3.5 w-3.5`})}),(0,J.jsx)(O,{type:`button`,variant:`ghost`,size:`icon`,disabled:j||!r||s,title:S.snapshot,"aria-label":S.snapshot,onClick:()=>void m(),className:`h-7 w-7 rounded-md`,children:(0,J.jsx)(pe,{className:`h-3.5 w-3.5`})}),(0,J.jsx)(O,{type:`button`,variant:`ghost`,size:`icon`,disabled:j||!n||s,title:S.reset,"aria-label":S.reset,onClick:()=>{w(null),v()},className:`h-7 w-7 rounded-md`,children:(0,J.jsx)(N,{className:`h-3.5 w-3.5`})})]}),(0,J.jsxs)(`div`,{className:`flex h-[38%] min-h-32 shrink-0 flex-col overflow-hidden`,children:[(0,J.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`,S.dom,ce],[`console`,S.console,Te],[`network`,S.network,Oe],[`page-errors`,S.errors,h]].map(([e,t,n])=>(0,J.jsxs)(`button`,{type:`button`,role:`tab`,disabled:j&&e!==`dom`,"aria-selected":D===e,onClick:()=>me(e),className:A(`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`,D===e&&`bg-[hsl(var(--deck-canvas-veil))] text-[hsl(var(--deck-ink))]`),children:[(0,J.jsx)(n,{className:`h-3 w-3 shrink-0`}),(0,J.jsx)(`span`,{className:`truncate`,children:t})]},e))}),(0,J.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:D===`dom`?M.length>0?M.map((e,t)=>e.ref?(0,J.jsx)(`button`,{type:`button`,"data-browser-ref":e.ref,disabled:j,onClick:()=>w(e.ref??null),className:A(`block w-full whitespace-pre-wrap px-1 text-left hover:bg-[hsl(var(--deck-accent)/0.08)]`,C===e.ref&&`bg-[hsl(var(--deck-accent)/0.12)] text-[hsl(var(--deck-ink))]`),children:e.text},`${e.ref}:${t}`):(0,J.jsx)(`div`,{className:`whitespace-pre-wrap px-1`,children:e.text},`${e.text}:${t}`)):(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:S.noEntries}):u===D?(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,J.jsx)(le,{className:`h-4 w-4 animate-spin`})}):de.length>0?de.map(e=>(0,J.jsx)(`div`,{className:`border-b border-[hsl(var(--deck-border))] px-1 py-1 last:border-b-0`,children:We(e)},e.sequence)):(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:S.noEntries})})]})]})}var Ke=`http://localhost:3000`,qe=2048,Je=/^(?: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,Ye=/^[a-z\d.-]+:\d+$/i;function Xe(){return typeof window>`u`?void 0:window.location.origin}function Ze(e,t=Xe(),n=!1){let r=e.trim();if(!r)return{ok:!1,reason:`empty`};if(r.length>qe)return{ok:!1,reason:`invalid`};let i=r,a=i.split(/[/?#]/,1)[0]??``;Je.test(a)||Ye.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 Qe(e,t=Xe()){return Ze(e,t,!0)}function $e(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 et(e){try{let t=new URL(e).protocol;return t===`http:`||t===`https:`}catch{return!1}}var tt={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 nt({sessionRef:e=null,onElementAdded:t}){let{locale:r}=d(),i=tt[r],s=a(e=>e.agentActivity),c=L(e=>o(e.historySurfaceSelection)),l=e!==null&&s!==null&&s.sessionRef.sessionId===e.sessionId&&s.sessionRef.projectPath===e.projectPath,[u,f]=(0,q.useState)(`preview`),[m,h]=(0,q.useState)(`user`),[g,_]=(0,q.useState)(Ke),[v,y]=(0,q.useState)({entries:[],index:-1}),b=(0,q.useRef)(v),[ee,x]=(0,q.useState)(0),[te,C]=(0,q.useState)(`idle`),[w,T]=(0,q.useState)(null),[E,D]=(0,q.useState)(null),[re,ie]=(0,q.useState)(null),[ae,oe]=(0,q.useState)(null),[se,ce]=(0,q.useState)(!1),[ue,M]=(0,q.useState)(null),[fe,N]=(0,q.useState)(!1),[F,I]=(0,q.useState)(null),[me,R]=(0,q.useState)(!1),[z,he]=(0,q.useState)(null),[ge,_e]=(0,q.useState)({}),[ve,ye]=(0,q.useState)(null),B=(0,q.useRef)(0),V=(0,q.useRef)(null),H=(0,q.useRef)(null),U=v.entries[v.index]??null,W=u===`preview`?U:u===`test`?m===`agent`&&l?s?.url??null:E?.url??null:z,Ce=(0,q.useMemo)(()=>{if(!W)return``;try{return new URL(W).host}catch{return``}},[W]),G=u===`preview`?te:u===`test`?m===`agent`&&l?se||s?.phase===`running`?`loading`:ue||s?.phase===`error`?`error`:ae?`ready`:`idle`:fe?`loading`:F?`error`:E?`ready`:`idle`:z?`ready`:`idle`,we=w===null?u===`test`?m===`agent`&&l?ue??s?.errorCode??null:F:null:i.error[w],Te=e=>{V.current&&URL.revokeObjectURL(V.current),V.current=e,ie(e)},Ee=e=>{H.current&&URL.revokeObjectURL(H.current),H.current=e,oe(e)};(0,q.useEffect)(()=>{let e=B.current+1;return B.current=e,D(null),h(`user`),I(null),M(null),ce(!1),R(!1),_e({}),Te(null),Ee(null),()=>{B.current===e&&(B.current+=1)}},[c,e?.projectPath,e?.sessionId]),(0,q.useEffect)(()=>()=>{V.current&&URL.revokeObjectURL(V.current),H.current&&URL.revokeObjectURL(H.current)},[]),(0,q.useEffect)(()=>{!c&&e&&l&&s&&(f(`test`),h(`agent`),T(null),s.url&&_(s.url))},[s?.revision,l,c,e]),(0,q.useEffect)(()=>{if(c||!e||!l||!s||!s.pageId||!s.origin||s.frameRevision===0)return;if(!et(s.origin)){ce(!1),M(null),Ee(null);return}let t=B.current,n=s.frameRevision,r=()=>{let r=a.getState().agentActivity;return B.current===t&&r?.frameRevision===n&&r.sessionRef.sessionId===e.sessionId&&r.sessionRef.projectPath===e.projectPath};ce(!0),M(null),Q.screenshot(e,{source:`agent`,pageId:s.pageId,expectedOrigin:s.origin}).then(e=>{r()&&Ee(URL.createObjectURL(e))}).catch(e=>{r()&&M(e instanceof Error?e.message:String(e))}).finally(()=>{r()&&ce(!1)})},[s?.frameRevision,s?.origin,s?.pageId,l,c,e]);let De=async(e,t,r)=>{if(n(L.getState()))return;let i=await Q.screenshot(e,{pageId:t.pageId,expectedOrigin:t.origin});B.current===r&&Te(URL.createObjectURL(i))},K=async(e,t,n)=>{B.current===n&&(D(t),_(t.url),_e({}),await De(e,t,n))},Oe=async t=>{if(n(L.getState()))return;if(!e){I(i.noSession);return}let r=B.current;R(!1),N(!0),I(null);try{let n=await Q.navigate(e,t);await K(e,n,r)}catch(e){B.current===r&&I(e instanceof Error?e.message:String(e))}finally{B.current===r&&N(!1)}},Y=e=>{let t=$e(b.current,e);b.current=t,y(t),_(e),C(`loading`)},ke=e=>{if(e.preventDefault(),n(L.getState()))return;let t=u===`preview`?Qe(g):Ze(g);if(!t.ok){T(t.reason);return}if(T(null),u===`preview`){t.url===U&&x(e=>e+1),Y(t.url);return}if(u===`test`){if(m===`agent`)return;Oe({action:`goto`,url:t.url});return}he(t.url),_(t.url),window.open(t.url,`_blank`,`noopener,noreferrer`)},Ae=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),_(n),C(`loading`)},je=e=>{if(!n(L.getState())){if(u===`preview`){e===`back`?Ae(-1):e===`forward`?Ae(1):U&&(C(`loading`),x(e=>e+1));return}u===`test`&&m===`user`&&E&&Oe({action:e,pageId:E.pageId,expectedOrigin:E.origin})}},Me=e=>{R(!1),f(e),T(null),I(null);let t=e===`preview`?U:e===`test`?m===`agent`&&l?s?.url:E?.url:z;t&&_(t)},Ne=e=>{if(e===`agent`&&!l)return;h(e),R(!1),T(null),I(null),M(null);let t=e===`agent`?s?.url:E?.url;t&&_(t)},Pe=async(t,r)=>{if(n(L.getState())||!e||!E)return;let a=E,o=B.current;R(!1),N(!0),I(null);try{let i=await Q.interact(e,{pageId:a.pageId,snapshotId:a.snapshotId,expectedOrigin:a.origin,...r?{ref:r}:{},action:t});if(i.outcome===`applied`)await K(e,i.observation,o);else if(i.outcome===`applied_observation_failed`){if(n(L.getState()))return;let t=await Q.snapshot(e,{pageId:i.pageId});await K(e,t,o)}else I(i.errorCode)}catch(t){if(B.current===o){let r=t instanceof Error?t.message:String(t);if(/snapshot is stale/i.test(r))try{if(n(L.getState()))return;let t=await Q.snapshot(e,{pageId:a.pageId});await K(e,t,o),B.current===o&&I(i.snapshotRefreshed)}catch(e){B.current===o&&I(e instanceof Error?e.message:String(e))}else I(r)}}finally{B.current===o&&N(!1)}},Fe=async(t=!1)=>{if(n(L.getState())||!e||!E)return!1;let r=B.current;N(!0),I(null);try{let n=await Q.snapshot(e,{pageId:E.pageId,...t?{includeBoxes:!0}:{}});return await K(e,n,r),B.current===r}catch(e){return B.current===r&&I(e instanceof Error?e.message:String(e)),!1}finally{B.current===r&&N(!1)}},Ie=async t=>{if(n(L.getState())||!e||!E)return;let r=B.current;ye(t);try{let n=await Q.inspect(e,{target:t,pageId:E.pageId,expectedOrigin:E.origin});B.current===r&&_e(e=>({...e,[t]:n.entries??[]}))}catch(e){B.current===r&&I(e instanceof Error?e.message:String(e))}finally{B.current===r&&ye(null)}},Le=async e=>{if(!e){R(!1);return}m!==`agent`&&await Fe(!0)&&R(!0)},X=r=>{if(n(L.getState()))return;let i=e?`session:${de(e)}`:`session:temporary`;P(i,r)&&(R(!1),t?.(),requestAnimationFrame(()=>j()))},Z=async()=>{if(n(L.getState())||!e)return;let t=B.current;R(!1),N(!0),I(null);try{await Q.reset(e),B.current===t&&(D(null),_e({}),Te(null))}catch(e){B.current===t&&I(e instanceof Error?e.message:String(e))}finally{B.current===t&&N(!1)}},Re=()=>{if(n(L.getState()))return;let e=Ze(W??g);if(!e.ok){T(e.reason);return}he(e.url),window.open(e.url,`_blank`,`noopener,noreferrer`)},Be=u===`preview`?v.index>0:u===`test`&&m===`user`&&!!E,Ve=u===`preview`?v.index>=0&&v.index<v.entries.length-1:u===`test`&&m===`user`&&!!E,He=u===`test`&&m===`agent`,Ue=m===`agent`?se||s?.phase===`running`:fe;return c?null:(0,J.jsxs)(`section`,{"data-browser-panel":!0,"data-browser-mode":u,"data-browser-test-source":m,"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,J.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,be],[`test`,i.test,xe],[`external`,i.external,Se]].map(([e,t,n])=>(0,J.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":u===e,onClick:()=>Me(e),className:A(`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,J.jsx)(n,{className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(`span`,{className:`truncate`,children:t})]},e))}),(0,J.jsxs)(`form`,{"aria-label":i.toolbarAria,onSubmit:ke,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,J.jsx)(O,{type:`button`,variant:`ghost`,size:`icon`,disabled:!Be||u===`test`&&Ue,"aria-label":i.back,title:i.back,onClick:()=>je(`back`),className:`h-8 w-8 rounded-md text-[hsl(var(--deck-ink-muted))]`,children:(0,J.jsx)(ne,{className:`h-4 w-4`})}),(0,J.jsx)(O,{type:`button`,variant:`ghost`,size:`icon`,disabled:!Ve||u===`test`&&Ue,"aria-label":i.forward,title:i.forward,onClick:()=>je(`forward`),className:`h-8 w-8 rounded-md text-[hsl(var(--deck-ink-muted))]`,children:(0,J.jsx)(S,{className:`h-4 w-4`})}),(0,J.jsx)(O,{type:`button`,variant:`ghost`,size:`icon`,disabled:u===`external`||He||!W||u===`test`&&Ue,"aria-label":i.reload,title:i.reload,onClick:()=>je(`reload`),className:`h-8 w-8 rounded-md text-[hsl(var(--deck-ink-muted))]`,children:(0,J.jsx)(pe,{className:A(`h-4 w-4`,G===`loading`&&`animate-spin`)})}),(0,J.jsxs)(`div`,{className:A(`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,J.jsx)(be,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]`}),(0,J.jsx)(`input`,{"data-browser-panel-address":!0,"data-preview-browser-address":u===`preview`||void 0,value:g,readOnly:He,onChange:e=>{_(e.target.value),T(null)},onKeyDown:e=>{e.key===`Escape`&&W&&(e.preventDefault(),_(W),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,J.jsx)(O,{type:`submit`,variant:`ghost`,size:`icon`,"aria-label":i.go,title:i.go,disabled:He||u===`test`&&Ue,className:`h-8 w-8 rounded-md text-[hsl(var(--deck-accent))]`,children:G===`loading`?(0,J.jsx)(le,{className:`h-4 w-4 animate-spin`}):(0,J.jsx)(k,{className:`h-4 w-4`})}),(0,J.jsx)(O,{type:`button`,variant:`ghost`,size:`icon`,disabled:!W,"aria-label":i.openExternal,title:i.openExternal,onClick:Re,className:`h-8 w-8 rounded-md text-[hsl(var(--deck-ink-muted))]`,children:(0,J.jsx)(p,{className:`h-4 w-4`})})]}),we&&u!==`test`&&(0,J.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,J.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:u===`preview`?(0,J.jsx)(ze,{url:U,revision:ee,loadState:te,onLoad:()=>C(`ready`),onError:()=>C(`error`)}):u===`test`?(0,J.jsx)(Ge,{source:m,agentAvailable:l,sessionAvailable:!!e,observation:m===`agent`?null:E,screenshotUrl:m===`agent`?ae:re,interaction:m===`agent`?s?.interaction:void 0,pointerRevision:m===`agent`?s?.pointerRevision??0:0,busy:Ue,error:we,diagnostics:m===`agent`?{}:ge,diagnosticsLoading:m===`agent`?null:ve,onInteract:Pe,onInspect:Ie,onSnapshot:async()=>{await Fe()},onReset:Z,onSourceChange:Ne,pickerActive:me,onPickerChange:Le,onAddToConversation:X}):(0,J.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 bg-[hsl(var(--deck-canvas-veil))]`,children:[(0,J.jsx)(Se,{className:`h-7 w-7 text-[hsl(var(--deck-ink-faint))]`}),(0,J.jsx)(`span`,{className:`font-mono text-[11px] text-[hsl(var(--deck-ink-muted))]`,children:z?new URL(z).host:i.externalEmpty}),(0,J.jsxs)(O,{type:`button`,variant:`outline`,onClick:Re,disabled:!g.trim(),className:`h-8 rounded-md font-mono text-[11px]`,children:[(0,J.jsx)(p,{className:`mr-2 h-3.5 w-3.5`}),i.openExternal]})]})}),(0,J.jsxs)(`div`,{"data-browser-panel-status":G,"data-preview-browser-status":u===`preview`?G: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,J.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,J.jsx)(`span`,{className:A(`h-1.5 w-1.5 shrink-0 rounded-full bg-[hsl(var(--deck-ink-faint))]`,G===`loading`&&`bg-amber-500`,G===`ready`&&`bg-emerald-500`,G===`error`&&`bg-red-500`)}),(0,J.jsx)(`span`,{children:i.status[G]})]}),(0,J.jsx)(`span`,{className:`ml-3 truncate`,children:Ce||i[u]})]})]})}function rt(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:void 0}function it(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0?e:void 0}function at(e){if(!e||typeof e!=`object`||Array.isArray(e))return;let t=e,n=rt(t.inputTokens),r=rt(t.outputTokens),i=rt(t.cacheReadTokens),a=rt(t.cacheWriteTokens),o=rt(t.uncachedInputTokens),s=it(t.estimatedCostUsd);if(n!==void 0&&r!==void 0&&i!==void 0&&a!==void 0&&o!==void 0&&s!==void 0)return{inputTokens:n,outputTokens:r,cacheReadTokens:i,cacheWriteTokens:a,uncachedInputTokens:o,estimatedCostUsd:s}}function ot(e){let t=new Map;for(let n of e){let e=n.metadata?.turnFinalization;if(!e||typeof e!=`object`||Array.isArray(e))continue;let r=e,i=typeof r.turnId==`string`?r.turnId:void 0,a=rt(r.durationMs),o=rt(r.turnsCount),s=rt(r.toolCallsCount),c=at(r.usage),l=it(n.timestamp);i&&a!==void 0&&o!==void 0&&s!==void 0&&c&&l!==void 0&&t.set(i,{id:i,startedAt:Math.max(0,l-a),completedAt:l,durationMs:a,turnsCount:o,toolCallsCount:s,usage:c})}return[...t.values()].sort((e,t)=>e.startedAt-t.startedAt)}function st(e){let t=[],n;for(let r of e){let e=it(r.timestamp);if(e===void 0)continue;if(r.role===`user`){n=e;continue}if(r.role!==`assistant`){n=Math.max(n??0,e);continue}let i=Math.min(n??e,e);t.push({id:`model-${r.id}`,kind:`model`,label:`Model call`,startedAt:i,completedAt:e});let a=e;for(let n of r.agentContent?.toolCalls??[]){let r=it(n.startTime)??e,i=Math.max(r,it(n.endTime)??r);t.push({id:`tool-${n.toolCallId}`,kind:`tool`,label:n.toolName||`Tool`,status:n.status===`success`?`success`:n.status===`error`?`error`:`running`,startedAt:r,completedAt:i}),a=Math.max(a,i)}n=a}return t}function ct(e){return e.normalize(`NFKC`).toLocaleLowerCase().trim()}function lt(e,t,n){let r=ct(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=ct([e.title,e.subtitle,e.content].filter(Boolean).join(` `));return r.every(e=>t.includes(e))})}function ut(e){return e.replace(/\/+$/,``).split(`/`).filter(Boolean).at(-1)||e}function dt(e,t){let n=ct(t).split(/\s+/).filter(Boolean);return n.length===0?e:e.filter(e=>{let t=ct([e.filePath,e.summary].filter(Boolean).join(` `));return n.every(e=>t.includes(e))})}function ft(e,t,n){return t===0?0:(e+n+t)%t}var pt=20,mt=20,ht=160,gt=240;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}`)}function vt({diffs:e,expanded:t,targetPath:n,onToggle:r,onSetAllExpanded:i}){let a=c(),[o,s]=(0,q.useState)(``),l=`${o}\0${e.length}\0${e[0]?.filePath??``}\0${e.at(-1)?.filePath??``}`,[u,d]=(0,q.useState)({key:l,count:pt}),f=u.key===l?u.count:pt,p=(0,q.useMemo)(()=>dt(e,o),[e,o]),m=(0,q.useMemo)(()=>{let e=p.slice(0,f);if(!n)return e;let t=p.find(e=>e.filePath&&_t(e.filePath,n));return t&&!e.includes(t)?[...e,t]:e},[p,n,f]);return(0,J.jsxs)(`div`,{className:`space-y-3`,children:[(0,J.jsxs)(`div`,{className:`sticky top-0 z-10 space-y-2 bg-[hsl(var(--deck-canvas))] pb-1`,children:[(0,J.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,J.jsx)(T,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]`}),(0,J.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,J.jsxs)(`span`,{className:`font-mono text-[9px] tabular-nums text-[hsl(var(--deck-ink-faint))]`,children:[p.length,`/`,e.length]})]}),(0,J.jsxs)(`div`,{className:`flex items-center justify-between font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]`,children:[(0,J.jsx)(`span`,{children:a(`preview.diff.changedFiles`,{count:e.length})}),(0,J.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,J.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,J.jsx)(b,{className:`h-3 w-3`}),a(`preview.diff.expandAll`)]}),(0,J.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,J.jsx)(he,{className:`h-3 w-3`}),a(`preview.diff.collapseAll`)]})]})]})]}),p.length===0?(0,J.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`)}):m.map(i=>{let a=i.filePath||`unknown`,o=e.indexOf(i),s=t[a]??o===0,c=!!(n&&_t(a,n));return(0,J.jsxs)(`div`,{"data-preview-diff-path":i.filePath,className:A(`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,J.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,J.jsx)(F,{className:`h-4 w-4 text-[hsl(var(--deck-ink-muted))]`}):(0,J.jsx)(w,{className:`h-4 w-4 text-[hsl(var(--deck-ink-muted))]`}),(0,J.jsx)(fe,{className:`h-4 w-4 text-[hsl(var(--deck-ink-muted))]`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left font-mono text-[13px] text-[hsl(var(--deck-ink))]`,children:ut(a)}),i.summary&&(0,J.jsx)(`span`,{className:`shrink-0 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))]`,children:i.summary})]}),s&&(0,J.jsxs)(`div`,{className:`border-t border-[hsl(var(--deck-border))]`,children:[(0,J.jsx)(`div`,{className:`truncate px-3 py-1 font-mono text-[11px] text-[hsl(var(--deck-ink-faint))]`,children:i.filePath}),(0,J.jsx)(yt,{diff:i.diff})]})]},a)}),f<p.length&&(0,J.jsx)(`div`,{className:`flex justify-center pt-1`,children:(0,J.jsx)(`button`,{type:`button`,onClick:()=>d({key:l,count:Math.min(p.length,f+mt)}),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(mt,p.length-f)})})})]})}function yt({diff:e}){let t=c(),n=(0,q.useMemo)(()=>e.patch.split(`
5
+ `),[e.patch]),[r,i]=(0,q.useState)({patch:e.patch,count:ht}),a=r.patch===e.patch?r.count:ht,o=n.slice(0,a),s=0,l=0;return(0,J.jsxs)(`div`,{className:`overflow-hidden rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]`,children:[(0,J.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,J.jsx)(`span`,{children:t(`preview.diff.patch`)}),e.matchLine&&(0,J.jsx)(`span`,{children:t(`preview.diff.line`,{line:e.matchLine})})]}),(0,J.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,J.jsx)($,{line:e},`${e}-${t}`)}if(e.startsWith(`---`)||e.startsWith(`+++`)||e.startsWith(`Index:`)||e.startsWith(`===`))return(0,J.jsx)($,{line:e},`${e}-${t}`);if(e.startsWith(`+`)){let n=l++;return(0,J.jsx)($,{line:e,oldLine:null,newLine:n},`${e}-${t}`)}if(e.startsWith(`-`)){let n=s++;return(0,J.jsx)($,{line:e,oldLine:n,newLine:null},`${e}-${t}`)}return e.startsWith(` `)?(0,J.jsx)($,{line:e,oldLine:s++,newLine:l++},`${e}-${t}`):(0,J.jsx)($,{line:e},`${e}-${t}`)})}),a<n.length&&(0,J.jsx)(`div`,{className:`flex justify-center border-t border-[hsl(var(--deck-border))] p-2`,children:(0,J.jsx)(`button`,{type:`button`,onClick:()=>i({patch:e.patch,count:Math.min(n.length,a+gt)}),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(gt,n.length-a)})})})]})}function $({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,J.jsxs)(`div`,{"data-preview-diff-line":!0,className:A(`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,J.jsx)(`span`,{className:`text-right text-[hsl(var(--deck-ink-faint))]`,children:t?String(t).padStart(2,` `):``}),(0,J.jsx)(`span`,{className:`text-right text-[hsl(var(--deck-ink-faint))]`,children:n?String(n).padStart(2,` `):``}),(0,J.jsx)(`span`,{className:`whitespace-pre`,children:o})]})}function bt({nodes:e,expandedDirs:t,childrenCache:n,directoryStates:r,selectedPath:i,onToggleDir:a,onRetryDir:o,onSelectFile:s}){return(0,J.jsx)(J.Fragment,{children:e.map(e=>(0,J.jsx)(xt,{node:e,depth:0,expandedDirs:t,childrenCache:n,directoryStates:r,selectedPath:i,onToggleDir:a,onRetryDir:o,onSelectFile:s},e.path))})}function xt({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,J.jsxs)(`div`,{children:[(0,J.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:A(`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,J.jsx)(le,{className:`h-3.5 w-3.5 shrink-0 animate-spin text-[hsl(var(--deck-accent))]`}):f?(0,J.jsx)(M,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink))]`}):(0,J.jsx)(C,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-muted))]`}):(0,J.jsx)(fe,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]`}),(0,J.jsx)(`span`,{className:`truncate text-[hsl(var(--deck-ink))]`,children:e.name})]}),d&&f&&(0,J.jsxs)(`div`,{children:[h?.status===`loading`&&(0,J.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,J.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,J.jsx)(`div`,{className:`truncate`,title:h.message,children:h.message}),(0,J.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,J.jsx)(N,{className:`h-2.5 w-2.5`}),u(`preview.action.retry`)]})]}),h?.status===`loaded`&&m.length===0&&(0,J.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,J.jsx)(xt,{node:e,depth:t+1,expandedDirs:n,childrenCache:r,directoryStates:i,selectedPath:a,onToggleDir:o,onRetryDir:s,onSelectFile:l},e.path))]})]})}function St({runs:e}){let t=c(),n=(0,q.useMemo)(()=>Ot(e),[e]);return e.length===0?null:(0,J.jsxs)(`div`,{className:`grid grid-cols-2 divide-x divide-y divide-[hsl(var(--deck-hairline))] border-b border-[hsl(var(--deck-border))] sm:grid-cols-4 sm:divide-y-0`,children:[(0,J.jsx)(Ft,{label:t(`preview.logs.metrics.cost`),value:At(n.estimatedCostUsd),icon:_e}),(0,J.jsx)(Ft,{label:t(`preview.logs.metrics.cacheHit`),value:jt(n.cacheHitRate),icon:ye,accent:!0}),(0,J.jsx)(Ft,{label:t(`preview.logs.metrics.cached`),value:kt(n.cacheReadTokens),icon:m}),(0,J.jsx)(Ft,{label:t(`preview.logs.metrics.fresh`),value:kt(n.uncachedInputTokens),icon:I})]})}function Ct({runs:e,activities:t}){let n=c();if(e.length===0&&t.length===0)return(0,J.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:(0,J.jsxs)(`div`,{className:`rounded-lg border border-dashed border-[hsl(var(--deck-border))] p-6 text-center`,children:[(0,J.jsx)(`div`,{className:`font-mono text-[13px] text-[hsl(var(--deck-ink))]`,children:n(`preview.logs.timeline.emptyTitle`)}),(0,J.jsx)(`div`,{className:`mt-1 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]`,children:n(`preview.logs.timeline.emptyHint`)})]})});let r=[...e.map(e=>e.startedAt),...t.map(e=>e.startedAt)],i=[...e.map(e=>e.completedAt),...t.map(e=>e.completedAt)],a=Math.min(...r),o=Math.max(...i),s=Math.max(1,o-a),l=[{id:`run`,label:n(`preview.logs.timeline.run`),icon:m,items:e.map((e,t)=>({id:e.id,startedAt:e.startedAt,completedAt:e.completedAt,className:`bg-[hsl(var(--deck-accent))]`,title:n(`preview.logs.timeline.turn`,{count:t+1}),details:Et(e,n)}))},{id:`model`,label:n(`preview.logs.timeline.model`),icon:I,items:t.filter(e=>e.kind===`model`).map((e,t)=>({...e,className:`bg-emerald-500`,title:n(`preview.logs.timeline.modelCall`,{count:t+1}),details:Tt(e,n)}))},{id:`tools`,label:n(`preview.logs.timeline.tools`),icon:D,items:t.filter(e=>e.kind===`tool`).map(e=>({...e,className:e.status===`error`?`bg-red-500`:`bg-amber-500`,title:e.label,details:Tt(e,n)}))},{id:`cache`,label:n(`preview.logs.timeline.cache`),icon:ye,items:e.map((e,t)=>({id:`cache-${e.id}`,startedAt:e.completedAt,completedAt:e.completedAt,className:`bg-cyan-500`,title:`${n(`preview.logs.timeline.turn`,{count:t+1})} · ${n(`preview.logs.timeline.cache`)}`,details:Dt(e,n)}))}];return(0,J.jsx)(ee,{delayDuration:120,children:(0,J.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:(0,J.jsxs)(`div`,{className:`min-w-full`,children:[(0,J.jsxs)(`div`,{className:`grid grid-cols-[64px_minmax(0,1fr)] border-b border-[hsl(var(--deck-hairline))] px-3 py-2 sm:grid-cols-[88px_minmax(0,1fr)] sm:px-4`,children:[(0,J.jsx)(`div`,{}),(0,J.jsxs)(`div`,{className:`flex justify-between font-mono text-[9px] tabular-nums text-[hsl(var(--deck-ink-faint))]`,children:[(0,J.jsx)(`span`,{children:Nt(a)}),(0,J.jsx)(`span`,{children:Nt(a+s/2)}),(0,J.jsx)(`span`,{children:Nt(o)})]})]}),l.map(e=>(0,J.jsx)(wt,{lane:e,start:a,span:s},e.id)),(0,J.jsx)(`div`,{className:`flex flex-wrap gap-x-4 gap-y-1 px-4 py-3 font-mono text-[9px] text-[hsl(var(--deck-ink-faint))]`,children:e.map((e,t)=>(0,J.jsxs)(`span`,{children:[n(`preview.logs.timeline.turn`,{count:t+1}),` `,Mt(e.durationMs),` ·`,` `,At(e.usage.estimatedCostUsd)]},e.id))})]})})})}function wt({lane:e,start:t,span:n}){let r=e.icon;return(0,J.jsxs)(`div`,{className:`grid min-h-14 grid-cols-[64px_minmax(0,1fr)] border-b border-[hsl(var(--deck-hairline))] px-3 sm:grid-cols-[88px_minmax(0,1fr)] sm:px-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2 border-r border-[hsl(var(--deck-hairline))] pr-3 font-mono text-[10px] text-[hsl(var(--deck-ink-muted))]`,children:[(0,J.jsx)(r,{className:`h-3.5 w-3.5`}),e.label]}),(0,J.jsx)(`div`,{className:`relative my-3 ml-3 overflow-hidden bg-[linear-gradient(to_right,hsl(var(--deck-hairline))_1px,transparent_1px)] [background-size:25%_100%]`,children:e.items.map(r=>{let i=(r.startedAt-t)/n*100,a=Math.min(i,98.5),o=Math.max(0,r.completedAt-r.startedAt),s=Math.max(1.5,o/n*100),c=[r.title,...r.details.map(e=>`${e.label} ${e.value}`)].join(`, `);return(0,J.jsxs)(te,{children:[(0,J.jsx)(v,{asChild:!0,children:(0,J.jsx)(`button`,{type:`button`,"data-timeline-kind":e.id,"aria-label":c,className:A(`absolute inset-y-1 rounded-sm opacity-90 outline-none transition-[opacity,transform] hover:opacity-100 focus-visible:scale-y-110 focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-[hsl(var(--deck-accent))] focus-visible:ring-offset-1`,r.className),style:{left:`${a}%`,width:`${Math.min(s,100-a)}%`}})}),(0,J.jsxs)(y,{side:`top`,className:`w-64 border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-canvas))] p-3 text-[hsl(var(--deck-ink))]`,children:[(0,J.jsx)(`div`,{className:`mb-2 font-mono text-[11px] font-medium`,children:r.title}),(0,J.jsx)(`div`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 font-mono text-[10px]`,children:r.details.map(e=>(0,J.jsxs)(`div`,{className:`contents`,children:[(0,J.jsx)(`span`,{className:`text-[hsl(var(--deck-ink-faint))]`,children:e.label}),(0,J.jsx)(`span`,{className:`text-right tabular-nums text-[hsl(var(--deck-ink))]`,children:e.value})]},e.label))})]})]},`${e.id}-${r.id}`)})})]})}function Tt(e,t){return[{label:t(`preview.logs.timeline.tooltip.time`),value:Pt(e.startedAt,e.completedAt)},{label:t(`preview.logs.timeline.tooltip.duration`),value:Mt(e.completedAt-e.startedAt)},...e.kind===`tool`&&e.status?[{label:t(`preview.logs.timeline.tooltip.status`),value:t(`preview.logs.status.${e.status}`)}]:[]]}function Et(e,t){let n=e.usage.inputTokens>0?e.usage.cacheReadTokens/e.usage.inputTokens:void 0;return[{label:t(`preview.logs.timeline.tooltip.time`),value:Pt(e.startedAt,e.completedAt)},{label:t(`preview.logs.timeline.tooltip.duration`),value:Mt(e.durationMs)},{label:t(`preview.logs.timeline.tooltip.modelCalls`),value:e.turnsCount.toLocaleString()},{label:t(`preview.logs.timeline.tooltip.toolCalls`),value:e.toolCallsCount.toLocaleString()},{label:t(`preview.logs.timeline.tooltip.input`),value:e.usage.inputTokens.toLocaleString()},{label:t(`preview.logs.timeline.tooltip.output`),value:e.usage.outputTokens.toLocaleString()},{label:t(`preview.logs.timeline.tooltip.cached`),value:e.usage.cacheReadTokens.toLocaleString()},{label:t(`preview.logs.timeline.tooltip.fresh`),value:e.usage.uncachedInputTokens.toLocaleString()},{label:t(`preview.logs.timeline.tooltip.cacheWrite`),value:e.usage.cacheWriteTokens.toLocaleString()},{label:t(`preview.logs.timeline.tooltip.hitRate`),value:jt(n)},{label:t(`preview.logs.timeline.tooltip.cost`),value:At(e.usage.estimatedCostUsd)}]}function Dt(e,t){let n=e.usage.inputTokens>0?e.usage.cacheReadTokens/e.usage.inputTokens:void 0;return[{label:t(`preview.logs.timeline.tooltip.time`),value:Nt(e.completedAt)},{label:t(`preview.logs.timeline.tooltip.cached`),value:e.usage.cacheReadTokens.toLocaleString()},{label:t(`preview.logs.timeline.tooltip.fresh`),value:e.usage.uncachedInputTokens.toLocaleString()},{label:t(`preview.logs.timeline.tooltip.cacheWrite`),value:e.usage.cacheWriteTokens.toLocaleString()},{label:t(`preview.logs.timeline.tooltip.hitRate`),value:jt(n)},{label:t(`preview.logs.timeline.tooltip.cost`),value:At(e.usage.estimatedCostUsd)}]}function Ot(e){let t=e.reduce((e,t)=>({cacheReadTokens:e.cacheReadTokens+t.usage.cacheReadTokens,uncachedInputTokens:e.uncachedInputTokens+t.usage.uncachedInputTokens,inputTokens:e.inputTokens+t.usage.inputTokens,estimatedCostUsd:e.estimatedCostUsd+t.usage.estimatedCostUsd}),{cacheReadTokens:0,uncachedInputTokens:0,inputTokens:0,estimatedCostUsd:0});return{...t,cacheHitRate:t.inputTokens>0?t.cacheReadTokens/t.inputTokens:void 0}}function kt(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:e.toLocaleString()}function At(e){return`$${e<.01?e.toFixed(4):e.toFixed(3)}`}function jt(e){return e===void 0?`—`:`${(e*100).toFixed(1)}%`}function Mt(e){if(e<1e3)return`${e}ms`;let t=e/1e3;return t<60?`${t.toFixed(+(t<10))}s`:`${Math.floor(t/60)}m ${Math.round(t%60)}s`}function Nt(e){return new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}).format(e)}function Pt(e,t){return`${Nt(e)}–${Nt(t)}`}function Ft({label:e,value:t,icon:n,accent:r=!1}){return(0,J.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 px-3 py-2.5`,children:[(0,J.jsx)(n,{className:A(`h-3.5 w-3.5 shrink-0`,r?`text-[hsl(var(--deck-accent))]`:`text-[hsl(var(--deck-ink-faint))]`)}),(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(`div`,{className:`truncate font-mono text-[8px] uppercase text-[hsl(var(--deck-ink-faint))]`,children:e}),(0,J.jsx)(`div`,{className:A(`font-mono text-[12px] font-medium tabular-nums`,r?`text-[hsl(var(--deck-accent))]`:`text-[hsl(var(--deck-ink))]`),children:t})]})]})}var It=80,Lt=80;function Rt({logs:e,runs:t,activities:n=[]}){let r=c(),[i,a]=(0,q.useState)(()=>t.length>0||n.length>0?`timeline`:`details`),[o,s]=(0,q.useState)(``),[l,u]=(0,q.useState)(`all`),[d,f]=(0,q.useState)({}),p=`${l}\0${o}\0${e.length}\0${e[0]?.id??``}\0${e.at(-1)?.id??``}`,[h,g]=(0,q.useState)({key:p,count:It}),_=(0,q.useMemo)(()=>lt(e,o,l),[l,e,o]),v=h.key===p?h.count:It,y=_.slice(0,v);return(0,J.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,J.jsxs)(`div`,{className:`border-b border-[hsl(var(--deck-border))]`,children:[(0,J.jsx)(St,{runs:t}),(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-4 py-3`,children:[(0,J.jsx)(`div`,{className:`inline-flex h-8 items-center rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] p-0.5`,"aria-label":r(`preview.logs.viewAria`),children:[`timeline`,`details`].map(e=>{let t=e===`timeline`?m:U;return(0,J.jsxs)(`button`,{type:`button`,"aria-pressed":i===e,onClick:()=>a(e),className:A(`flex h-6 items-center gap-1.5 rounded px-2 font-mono text-[10px] transition-colors`,i===e?`bg-[hsl(var(--deck-canvas))] text-[hsl(var(--deck-ink))] shadow-sm`:`text-[hsl(var(--deck-ink-faint))] hover:text-[hsl(var(--deck-ink-muted))]`),children:[(0,J.jsx)(t,{className:`h-3 w-3`}),r(`preview.logs.view.${e}`)]},e)})}),(0,J.jsxs)(`span`,{className:`font-mono text-[9px] tabular-nums text-[hsl(var(--deck-ink-faint))]`,children:[t.length,` `,r(`preview.logs.runs`)]})]}),i===`details`&&(0,J.jsxs)(`div`,{className:`space-y-2 border-t border-[hsl(var(--deck-hairline))] px-4 py-3`,children:[(0,J.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,J.jsx)(T,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]`}),(0,J.jsx)(`input`,{type:`search`,"aria-label":r(`preview.logs.searchAria`),placeholder:r(`preview.logs.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,J.jsxs)(`span`,{className:`font-mono text-[9px] tabular-nums text-[hsl(var(--deck-ink-faint))]`,children:[_.length,`/`,e.length]})]}),(0,J.jsx)(`div`,{className:`flex items-center gap-1`,"aria-label":r(`preview.logs.filterAria`),children:[`all`,`running`,`error`,`success`].map(e=>(0,J.jsx)(`button`,{type:`button`,"aria-pressed":l===e,onClick:()=>u(e),className:A(`rounded-md border px-2 py-1 font-mono text-[9.5px] transition-colors`,l===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:r(`preview.logs.filter.${e}`)},e))})]})]}),i===`timeline`?(0,J.jsx)(Ct,{runs:t,activities:n}):(0,J.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-3 overflow-y-auto px-4 py-4`,children:[e.length===0?(0,J.jsx)(zt,{title:r(`preview.logs.emptyTitle`),subtitle:r(`preview.logs.emptyHint`)}):_.length===0?(0,J.jsx)(zt,{title:r(`preview.logs.noMatches`),subtitle:r(`preview.logs.noMatchesHint`)}):y.map(e=>{let t=d[e.id],n=(e.content||``).split(`
6
+ `),i=n.length>10||(e.content?.length||0)>800,a=t||!i?n:n.slice(0,8);return(0,J.jsxs)(`div`,{"data-preview-log-id":e.id,className:`overflow-hidden rounded-lg border border-[hsl(var(--deck-border))]`,children:[(0,J.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,J.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,J.jsx)(`div`,{className:`font-mono text-[12px] text-[hsl(var(--deck-ink))]`,children:e.title}),e.subtitle&&(0,J.jsx)(`div`,{className:`font-mono text-[11px] text-[hsl(var(--deck-ink-muted))]`,children:e.subtitle})]}),(0,J.jsx)(Bt,{status:e.status})]}),e.content&&(0,J.jsxs)(`div`,{className:`space-y-2 px-3 py-3`,children:[(0,J.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
+ `),!t&&i&&`
8
+ …`]}),i&&(0,J.jsxs)(`button`,{type:`button`,onClick:()=>f(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:[t?(0,J.jsx)(F,{className:`h-3 w-3`}):(0,J.jsx)(w,{className:`h-3 w-3`}),r(t?`preview.logs.collapse`:`preview.logs.expand`)]})]})]},e.id)}),v<_.length&&(0,J.jsx)(`button`,{type:`button`,onClick:()=>g({key:p,count:Math.min(_.length,v+Lt)}),className:`mx-auto block 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:r(`preview.logs.showMore`,{count:Math.min(Lt,_.length-v)})})]})]})}function zt({title:e,subtitle:t}){return(0,J.jsxs)(`div`,{className:`rounded-lg border border-dashed border-[hsl(var(--deck-border))] p-6 text-center`,children:[(0,J.jsx)(`div`,{className:`font-mono text-[13px] text-[hsl(var(--deck-ink))]`,children:e}),(0,J.jsx)(`div`,{className:`mt-1 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]`,children:t})]})}function Bt({status:e}){let t=c()(e===`success`?`preview.logs.status.success`:e===`error`?`preview.logs.status.error`:`preview.logs.status.running`);return(0,J.jsx)(`span`,{className:A(`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 Vt=640,Ht=360,Ut=960,Wt=(0,q.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,J.jsxs)(J.Fragment,{children:[e&&(0,J.jsx)(O,{variant:`ghost`,size:`icon`,"aria-pressed":!!t,"aria-label":u,title:u,onClick:r,className:A(`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,J.jsx)(k,{className:A(`h-4 w-4 transition-transform`,t&&`rotate-180`)})}),(0,J.jsx)(O,{ref:a,variant:`ghost`,size:`icon`,onClick:i,disabled:n,title:o(`preview.title`),"aria-label":s===`zh`?`切换预览面板`:`Toggle preview panel`,className:A(`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,J.jsx)(be,{className:`h-4 w-4`})})]})});function Gt(e){let t=typeof window>`u`?Ut:Math.max(280,Math.floor(window.innerWidth*.72));return Math.min(Ut,t,Math.max(Ht,Math.round(e)))}function Kt(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 qt(){let e=L.getState();if(o(e.historySurfaceSelection))return null;let t=e.sessions.find(t=>ie({sessionId:t.sessionId,projectPath:t.projectPath},e.currentSessionRef));return Kt(e.currentSessionRef,e.selectedProjectPath,t)}function Jt(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 Yt=(0,q.lazy)(async()=>({default:(await f(()=>import(`./dist-BtGkS2rG.js`),__vite__mapDeps([0,1,2]))).Editor}));function Xt(e,t){return e instanceof Error?e.message:t}function Zt({returnFocusElement:e,maximized:t=!1}={}){let n=c(),{toggleFilePreview:r,previewWidth:a,setPreviewWidth:s,previewTab:l,setPreviewTab:u,previewTargetPath:d,previewRequestId:f}=i(),p=L(e=>e.messages),m=L(e=>e.currentSessionRef),h=L(e=>e.historySurfaceSelection),g=L(e=>e.sessions),_=L(e=>e.selectedProjectPath),v=(0,q.useMemo)(()=>g.find(e=>ie({sessionId:e.sessionId,projectPath:e.projectPath},m)),[m,g]),y=(0,q.useMemo)(()=>o(h)?null:Kt(m,_,v),[v,m,h,_]),[b,ee]=(0,q.useState)(l),[x,te]=(0,q.useState)(()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 1023px)`).matches),[ne,S]=(0,q.useState)(null),[C,w]=(0,q.useState)(!1),[E,D]=(0,q.useState)([]),[oe,k]=(0,q.useState)({}),[j,ce]=(0,q.useState)({}),[ue,M]=(0,q.useState)(0),[de,fe]=(0,q.useState)(!1),[pe,N]=(0,q.useState)(null),[P,F]=(0,q.useState)(``),[I,me]=(0,q.useState)([]),[R,z]=(0,q.useState)(!1),[he,ge]=(0,q.useState)(!1),[_e,ve]=(0,q.useState)(0),[ye,B]=(0,q.useState)(0),[be,V]=(0,q.useState)({}),[xe,H]=(0,q.useState)({}),[U,W]=(0,q.useState)(null),[Se,Ce]=(0,q.useState)(``),[G,we]=(0,q.useState)(!1),[Te,Ee]=(0,q.useState)(null),[De,K]=(0,q.useState)(!1),Oe=(0,q.useRef)(y),Y=(0,q.useRef)(0),ke=(0,q.useRef)(0),Pe=(0,q.useRef)({}),Fe=(0,q.useRef)(0),Ie=(0,q.useRef)(0),Le=(0,q.useRef)(0),X=(0,q.useRef)({}),Z=(0,q.useRef)({}),Q=(0,q.useRef)({}),Re=(0,q.useRef)(null),ze=(0,q.useRef)(null),Be=(0,q.useRef)(null),Ve=(0,q.useRef)(null),He=(0,q.useRef)(a),Ue=(0,q.useRef)(m),We=(0,q.useRef)(null);(0,q.useLayoutEffect)(()=>{ie(Oe.current,y)||(Y.current+=1),Oe.current=y},[y]),(0,q.useEffect)(()=>{if(typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(max-width: 1023px)`),t=()=>te(e.matches);return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,q.useEffect)(()=>(Ve.current=e??(document.activeElement instanceof HTMLElement?document.activeElement:null),()=>{let e=Ve.current;requestAnimationFrame(()=>{e?.isConnected&&e.focus({preventScroll:!0})})}),[e]),(0,q.useEffect)(()=>{x&&Be.current?.focus({preventScroll:!0})},[x]);let Ge=e=>{if(!x)return;if(e.key===`Escape`){e.preventDefault(),r();return}if(e.key!==`Tab`)return;let t=Array.from(ze.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())},Ke=(e,t)=>t===Y.current&&ie(qt(),e),qe=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,q.useEffect)(()=>{let e=++ke.current;return(async()=>{if(!y){D([]),fe(!1),N(null);return}let t={...y},r=Y.current,i=()=>e===ke.current&&Ke(t,r);if(i()){D([]),fe(!0),N(null);try{let e=await qe(t);i()&&D(e)}catch(e){i()&&N(Xt(e,n(`preview.files.treeFailed`)))}finally{i()&&fe(!1)}}})(),()=>{ke.current===e&&(ke.current+=1)}},[ue,y?.projectPath,y?.sessionId]),(0,q.useEffect)(()=>{Re.current=null,X.current={},Z.current={},Q.current={},Pe.current={},Fe.current+=1,W(null),Ce(``),we(!1),Ee(null),K(!1),V({}),k({}),ce({}),F(``),me([]),z(!1),ge(!1),B(0),H({})},[y?.projectPath,y?.sessionId]);let Je=(0,q.useMemo)(()=>en(p),[p]),[Ye,Xe]=(0,q.useState)(null),[Ze,Qe]=(0,q.useState)(!1),[$e,et]=(0,q.useState)(null),[tt,rt]=(0,q.useState)(0),it=v?.taskIsolation===`worktree`&&v.taskDelivery?.status===`discarded`,at=v?.taskIsolation===`worktree`&&!!v.taskDiffStat&&!it,ct=at&&!!(v?.taskDiffStat&&v.taskDiffStat.changedFiles>0),lt=it?[]:at?Ye??[]:Je,dt=(0,q.useMemo)(()=>$t(p),[p]),pt=(0,q.useMemo)(()=>ot(p),[p]),mt=(0,q.useMemo)(()=>st(p),[p]);(0,q.useEffect)(()=>{let e=P.trim(),t=++Ie.current;if(B(0),ge(!1),!e||b!==`files`||!y){me([]),z(!1);return}let r={...y},i=Y.current;z(!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===Ie.current&&Ke(r,i)&&(me(e.filter(e=>!e.endsWith(`/`))),ge(!1))}).catch(()=>{t===Ie.current&&Ke(r,i)&&(me([]),ge(!0))}).finally(()=>{t===Ie.current&&z(!1)})},160);return()=>window.clearTimeout(a)},[b,P,_e,y?.projectPath,y?.sessionId]),(0,q.useEffect)(()=>{ee(i.getState().previewTab)},[f]),(0,q.useEffect)(()=>{let e=Ue.current;if(Ue.current=m,m||!_){We.current=null;return}let t=!!e||We.current!==_;We.current=_,t&&b===`diff`&&(ee(`files`),u(`files`))},[b,m?.projectPath,m?.sessionId,_,u]),(0,q.useEffect)(()=>{if(!d||b!==`diff`)return;let e=lt.find(e=>e.filePath&&Jt(e.filePath,d))?.filePath;if(!e)return;H(t=>({...t,[e]:!0}));let t=requestAnimationFrame(()=>{let e=Array.from(ze.current?.querySelectorAll(`[data-preview-diff-path]`)??[]).find(e=>Jt(e.dataset.previewDiffPath??``,d));typeof e?.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`,behavior:`smooth`}),e?.querySelector(`button`)?.focus({preventScroll:!0})});return()=>cancelAnimationFrame(t)},[b,lt,f,d]),(0,q.useEffect)(()=>{let e=++Le.current;if(Xe(null),et(null),Qe(!1),o(h)||!m||!ct)return;let t={...m};return Qe(!0),ae.getTaskDiff(t).then(n=>{e===Le.current&&ie(L.getState().currentSessionRef,t)&&Xe(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===Le.current&&et(Xt(t,n(`preview.diff.failedTitle`)))}).finally(()=>{e===Le.current&&Qe(!1)}),()=>{Le.current===e&&(Le.current+=1)}},[v?.taskCompletedAt,v?.taskDelivery?.status,v?.taskDiffStat,v?.taskIsolation,m,h,ct,tt]);let ht=e=>{H(t=>({...t,[e]:!t[e]}))},gt=e=>{H(Object.fromEntries(lt.map(t=>[t.filePath||`unknown`,e])))},_t=async e=>{let t=qt();if(!t)return;let r=Y.current,i=++Fe.current,a=()=>i===Fe.current&&Re.current===e&&Ke(t,r);Re.current=e,W(e),Ce(``),we(!0),Ee(null),K(!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()&&(Ce(i.content||``),K(!!i.truncated))}catch(e){a()&&Ee(Xt(e,n(`preview.files.contentFailed`)))}finally{a()&&we(!1)}},yt=e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault(),B(t=>ft(t,I.length,e.key===`ArrowDown`?1:-1));return}if(e.key===`Enter`){let t=I[ye];if(!t)return;e.preventDefault(),_t(t);return}e.key===`Escape`&&(e.preventDefault(),F(``))},$=(e,t)=>{let n={...Q.current,[e]:t};Q.current=n,ce(n)},xt=async e=>{let t=(Pe.current[e]??0)+1;Pe.current[e]=t,$(e,{status:`loading`});let r=qt();if(!r)return;let i=Y.current,a=()=>Pe.current[e]===t&&X.current[e]===!0&&Ke(r,i);try{let t=await qe(r,e);if(a()){let n={...Z.current,[e]:t};Z.current=n,k(n),$(e,{status:`loaded`})}}catch(t){a()&&$(e,{status:`error`,message:Xt(t,n(`preview.files.treeFailed`))})}},St=e=>{let t=!X.current[e],n={...X.current,[e]:t};if(X.current=n,V(n),!t){Pe.current[e]=(Pe.current[e]??0)+1;return}Z.current[e]||xt(e)},Ct=e=>{if(!X.current[e]){let t={...X.current,[e]:!0};X.current=t,V(t)}xt(e)},wt=e=>{e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),He.current=a,w(!0),document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`},Tt=e=>{if(!C)return;let t=Gt(window.innerWidth-e.clientX);He.current=t,S(t)},Et=e=>{C&&(e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),w(!1),S(null),s(He.current),document.body.style.cursor=``,document.body.style.userSelect=``)};(0,q.useEffect)(()=>()=>{document.body.style.cursor=``,document.body.style.userSelect=``},[]);let Dt=Gt(ne??a);return o(h)?null:(0,J.jsxs)(`div`,{ref:ze,"data-testid":`file-preview`,role:x?`dialog`:`complementary`,"aria-modal":x||void 0,"aria-label":n(`preview.title`),onKeyDown:Ge,style:t?{width:`100%`,maxWidth:`none`}:{width:Dt,maxWidth:`72vw`},className:A(`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,J.jsx)(`div`,{role:`separator`,"aria-label":n(`preview.action.resize`),"aria-orientation":`vertical`,"aria-valuemin":Ht,"aria-valuemax":Ut,"aria-valuenow":Dt,"aria-hidden":x||void 0,tabIndex:x?-1:0,onPointerDown:wt,onPointerMove:Tt,onPointerUp:Et,onPointerCancel:Et,onDoubleClick:()=>s(Vt),onKeyDown:e=>{(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&(e.preventDefault(),s(Dt+(e.key===`ArrowLeft`?24:-24)))},className:A(`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))]`,C&&`after:bg-[hsl(var(--deck-accent))]`)}),(0,J.jsxs)(Ae,{value:b,onValueChange:e=>{let t=e;ee(t),u(t)},className:`flex flex-col flex-1 min-h-0`,children:[(0,J.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,J.jsxs)(je,{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,J.jsx)(Me,{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,J.jsx)(Me,{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,J.jsx)(Me,{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,J.jsx)(Me,{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`)})]}),x&&(0,J.jsx)(O,{ref:Be,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,J.jsx)(se,{className:`w-4 h-4`})})]}),(0,J.jsx)(Ne,{value:`diff`,className:`overflow-hidden flex-1 mt-0`,children:(0,J.jsx)(`div`,{className:`overflow-y-auto px-4 py-4 space-y-3 h-full`,children:it?(0,J.jsx)(Qt,{title:n(`preview.diff.discardedTitle`),subtitle:n(`preview.diff.discardedHint`),role:`status`}):Ze&&lt.length===0?(0,J.jsx)(Qt,{title:n(`preview.diff.loadingTitle`),subtitle:n(`preview.diff.loadingHint`)}):$e&&lt.length===0?(0,J.jsx)(Qt,{title:n(`preview.diff.failedTitle`),subtitle:$e,actionLabel:n(`preview.action.retry`),onAction:()=>rt(e=>e+1),role:`alert`}):lt.length===0?(0,J.jsx)(Qt,{title:n(`preview.diff.emptyTitle`),subtitle:n(`preview.diff.emptyHint`)}):(0,J.jsx)(vt,{diffs:lt,expanded:xe,targetPath:d,onToggle:ht,onSetAllExpanded:gt})})}),(0,J.jsx)(Ne,{value:`files`,className:`overflow-hidden flex-1 mt-0`,children:(0,J.jsxs)(`div`,{className:`px-4 py-4 h-full`,children:[de&&(0,J.jsx)(Qt,{title:n(`preview.files.loadingTitle`),subtitle:n(`preview.files.loadingHint`)}),!de&&pe&&(0,J.jsx)(Qt,{title:n(`preview.files.failedTitle`),subtitle:pe,actionLabel:n(`preview.action.retry`),onAction:()=>M(e=>e+1),role:`alert`}),!de&&!pe&&E.length===0&&(0,J.jsx)(Qt,{title:n(`preview.files.emptyTitle`),subtitle:n(`preview.files.emptyHint`)}),!de&&!pe&&E.length>0&&(0,J.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,J.jsxs)(`div`,{className:`flex min-h-0 flex-col overflow-hidden rounded-lg border border-[hsl(var(--deck-border))]`,children:[(0,J.jsx)(`div`,{className:`border-b border-[hsl(var(--deck-border))] p-2`,children:(0,J.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,J.jsx)(T,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-ink-faint))]`}),(0,J.jsx)(`input`,{type:`search`,"aria-label":n(`preview.files.searchAria`),placeholder:n(`preview.files.searchPlaceholder`),value:P,onChange:e=>F(e.target.value),onKeyDown:yt,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))]`}),R&&(0,J.jsx)(le,{className:`h-3 w-3 shrink-0 animate-spin text-[hsl(var(--deck-accent))]`})]})}),(0,J.jsx)(`div`,{role:P?`listbox`:void 0,"aria-label":P?n(`preview.files.searchResultsAria`):void 0,className:`overflow-y-auto flex-1 p-2 min-h-0`,children:P?he?(0,J.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,J.jsx)(`div`,{children:n(`preview.files.searchFailed`)}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>ve(e=>e+1),className:`mt-1 underline underline-offset-2`,children:n(`preview.action.retry`)})]}):I.length>0?I.map((e,t)=>(0,J.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":t===ye,"data-preview-file-result":t,onMouseEnter:()=>B(t),onClick:()=>void _t(e),className:A(`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,J.jsx)(`span`,{className:`truncate text-[11.5px]`,children:ut(e)}),(0,J.jsx)(`span`,{className:`truncate text-[9px] text-[hsl(var(--deck-ink-faint))]`,children:e})]},e)):!R&&(0,J.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,J.jsx)(bt,{nodes:E,expandedDirs:be,childrenCache:oe,directoryStates:j,selectedPath:U,onToggleDir:St,onRetryDir:Ct,onSelectFile:_t})})]}),(0,J.jsxs)(`div`,{className:`border border-[hsl(var(--deck-border))] rounded-lg overflow-hidden flex flex-col min-h-0`,children:[(0,J.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,J.jsx)(`span`,{className:`min-w-0 truncate`,children:U||n(`preview.files.selectTitle`)}),U&&(0,J.jsx)(`span`,{className:`ml-2 shrink-0 text-[11px] text-[hsl(var(--deck-ink-faint))] font-mono`,children:n(G?`preview.files.status.loading`:De?`preview.files.status.truncated`:`preview.files.status.ready`)})]}),De&&!G&&(0,J.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,J.jsxs)(`div`,{className:`flex-1 min-h-0`,children:[!U&&(0,J.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`)}),U&&Te&&(0,J.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,J.jsx)(`span`,{children:Te}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>void _t(U),className:`underline underline-offset-2`,children:n(`preview.action.retry`)})]}),U&&!Te&&(0,J.jsx)(`div`,{className:`h-full`,children:G?(0,J.jsx)(on,{}):(0,J.jsx)(q.Suspense,{fallback:(0,J.jsx)(on,{}),children:(0,J.jsx)(sn,{content:Se,filename:U})})})]})]})]})]})}),(0,J.jsx)(Ne,{value:`logs`,className:`overflow-hidden flex-1 mt-0`,children:(0,J.jsx)(Rt,{logs:dt,runs:pt,activities:mt})}),(0,J.jsx)(Ne,{value:`browser`,forceMount:!0,className:`overflow-hidden flex-1 min-h-0`,children:(0,J.jsx)(nt,{sessionRef:m,onElementAdded:()=>{x&&r()}})})]})]})}function Qt({title:e,subtitle:t,actionLabel:n,onAction:r,role:i}){return(0,J.jsxs)(`div`,{role:i,className:`border border-dashed border-[hsl(var(--deck-border))] rounded-lg p-6 text-center`,children:[(0,J.jsx)(`div`,{className:`text-[13px] text-[hsl(var(--deck-ink))] font-mono`,children:e}),(0,J.jsx)(`div`,{className:`text-[12px] text-[hsl(var(--deck-ink-muted))] font-mono mt-1`,children:t}),n&&r&&(0,J.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 $t(e){return e.flatMap(e=>{let t=[];if(e.agentContent?.toolCalls)for(let n of e.agentContent.toolCalls){let r=an(n.arguments),i=n.output,a=i?nn(i)?.diff?rn(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:n.startTime,startedAt:n.startTime,completedAt:n.endTime})}let n=e.metadata;if(n){if(n.kind===`tool_call`){let r=n.toolName||`Tool`,i=an(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?nn(o)?.diff?rn(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 en(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)){tn(t,n,a.changes,r.summary);continue}let o=nn(r.output||``)||nn(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)){tn(t,n,o.changes,a.summary);continue}let s=nn(a.output||(typeof i.content==`string`?i.content:``)||``)||nn(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 tn(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 nn(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 rn(e){return e?e.replace(/<<<DIFF>>>[\s\S]*?<<<\/DIFF>>>/m,``).trim():``}function an(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 on(){let e=c();return(0,J.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 sn({content:e,filename:t}){let{codeTheme:n}=u(),r=(0,q.useRef)(null),[i,a]=(0,q.useState)(`vs-dark`),o=cn(t);return(0,q.useEffect)(()=>{if(r.current){let e=X(r.current,n);a(e)}},[n]),(0,J.jsx)(Yt,{value:e,language:o,theme:i,height:`100%`,beforeMount:e=>{r.current=e;let t=X(e,n);a(t)},options:{readOnly:!0,minimap:{enabled:!1},fontSize:12,lineNumbers:`on`,wordWrap:`on`,scrollBeyondLastLine:!1,automaticLayout:!0}},t)}function cn(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{Zt as FilePreview,Wt as PreviewControls};
@@ -0,0 +1 @@
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-B-hnDC4L.js";import{C as a}from"./vendor-radix-BCAvgfOW.js";import{a as o,c as s,l as c}from"./preload-helper-HI3NtP3B.js";import{t as l}from"./archive-D3alcPOa.js";import{t as u}from"./calendar-clock-BoRTfsxW.js";import{t as d}from"./clock-3-BGymk4sE.js";import{t as f}from"./pause-CKNq9DgJ.js";import{t as p}from"./pencil-CMjIwtk5.js";import{t as m}from"./play-BOz9Sqzf.js";import{t as h}from"./plus-BJIEQjD7.js";import{$ as g,A as _,B as v,H as y,I as b,J as x,K as S,L as C,R as w,S as T,St as E,U as D,V as O,_t as k,ct as A,dt as j,gt as M,i as N,j as P,pt as ee,r as te,rt as ne,tt as re,v as ie,x as ae,y as F,z as oe}from"./index-DkwePtIh.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),L={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`}]]};L.node;var ce=c(L),R={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`}]]};R.node;var z=c(R),B=e(n(),1),V=[`waiting`,`active`,`blocked`,`review`],H={high:0,medium:1,low:2};function le(e){return e.taskIsolation!==void 0||e.taskPromptSummary!==void 0||e.taskRetryAvailable===!0}function ue(e){return e.taskSourceProjectPath||e.projectPath}function U(e){return e.pendingInteraction?`blocked`:e.taskStatus===`queued`?`waiting`:e.taskStatus===`running`?`active`:e.taskStatus===`completed`?`review`:`blocked`}function de(e,t){if(e.pendingInteraction!==t.pendingInteraction)return e.pendingInteraction?-1:1;let n=H[e.taskPriority??`medium`]-H[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 fe(e){let t={waiting:[],active:[],blocked:[],review:[]};for(let n of e)le(n)&&t[U(n)].push(n);for(let e of V)t[e].sort(de);return t}function pe(e){return`TASK-${e.replace(/^task-?/,``).slice(0,6).toUpperCase()}`}var W=a(),G={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`}},me={feature:`kanban.kind.feature`,bug:`kanban.kind.bug`,maintenance:`kanban.kind.maintenance`,research:`kanban.kind.research`};function K(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 q({label:e,onClick:t,disabled:n,tone:r=`neutral`,children:i}){return(0,W.jsx)(`button`,{type:`button`,"aria-label":e,title:e,disabled:n,onClick:t,className:D(`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 J({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=P(g),y=te(e,h),b=G[e.taskPriority??`medium`],S=e.taskKind??`feature`,C=ae(e,h),w=e.taskSourceProjectPath||e.projectPath,T=w.split(`/`).filter(Boolean).at(-1)||w,O=e.taskStatus===`queued`||e.taskStatus===`running`,k=!!e.taskRetryAvailable&&[`failed`,`interrupted`,`cancelled`].includes(e.taskStatus),j=!!e.pendingInteraction,M=e.taskStatus===`completed`;return(0,W.jsxs)(`article`,{"data-kanban-task":v,className:D(`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,W.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,W.jsx)(`span`,{className:`font-mono text-[9.5px] uppercase text-[hsl(var(--deck-ink-faint))]`,children:pe(e.sessionId)}),(0,W.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[t&&(0,W.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,W.jsx)(`span`,{className:`truncate font-mono text-[9.5px] text-[hsl(var(--deck-ink-faint))]`,children:T})]})]}),(0,W.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}),C&&(0,W.jsx)(`p`,{title:C,className:D(`mt-1.5 line-clamp-2 text-[10.5px] leading-[1.45]`,j||e.taskStatus===`failed`?`text-red-600 dark:text-red-400`:`text-[hsl(var(--deck-ink-faint))]`),children:C}),(0,W.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-1`,children:[(0,W.jsx)(`span`,{className:D(`rounded-sm border px-1.5 py-0.5 font-mono text-[9px] font-medium`,b.className),children:h(b.label)}),(0,W.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(me[S])}),e.taskDueAt&&(0,W.jsxs)(`span`,{className:D(`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()&&!M?`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,W.jsx)(u,{className:`h-2.5 w-2.5`}),K(e.taskDueAt)]})]}),e.taskStatus===`queued`&&e.taskQueuePosition&&(0,W.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,W.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,W.jsxs)(`div`,{className:`mt-3 flex items-center justify-end gap-0.5 border-t border-[hsl(var(--deck-hairline))] pt-2`,children:[j&&(0,W.jsx)(q,{label:h(`kanban.action.respond`),onClick:a,tone:`danger`,children:(0,W.jsx)(ce,{className:`h-3.5 w-3.5`})}),M&&(0,W.jsx)(q,{label:h(`kanban.action.inspect`),onClick:o,tone:`accent`,children:(0,W.jsx)(se,{className:`h-3.5 w-3.5`})}),k&&(0,W.jsx)(q,{label:h(`kanban.action.retry`),onClick:f,disabled:r,tone:`accent`,children:r?(0,W.jsx)(A,{className:`h-3.5 w-3.5 animate-spin`}):(0,W.jsx)(re,{className:`h-3.5 w-3.5`})}),O&&(0,W.jsx)(q,{label:h(`kanban.action.cancel`),onClick:d,disabled:n,tone:`danger`,children:n?(0,W.jsx)(A,{className:`h-3.5 w-3.5 animate-spin`}):(0,W.jsx)(x,{className:`h-3.5 w-3.5`})}),(0,W.jsx)(q,{label:h(`kanban.action.edit`),onClick:c,disabled:i,children:i?(0,W.jsx)(A,{className:`h-3.5 w-3.5 animate-spin`}):(0,W.jsx)(p,{className:`h-3.5 w-3.5`})}),M&&(0,W.jsx)(q,{label:h(`kanban.action.archive`),onClick:m,children:(0,W.jsx)(l,{className:`h-3.5 w-3.5`})}),(0,W.jsx)(q,{label:h(`kanban.action.open`),onClick:a,children:(0,W.jsx)(E,{className:`h-3.5 w-3.5`})})]})]})}var Y={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:A,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:M,accent:`bg-[hsl(var(--deck-accent))]`,iconStyle:`text-[hsl(var(--deck-accent))]`}};function he({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=Y[e],g=h.icon;return(0,W.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,W.jsxs)(`header`,{className:`mb-3 flex min-h-12 items-start gap-2 px-0.5`,children:[(0,W.jsx)(g,{className:D(`mt-0.5 h-3.5 w-3.5 shrink-0`,h.iconStyle,e===`active`&&`animate-spin`)}),(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(`h2`,{id:`kanban-column-${e}`,className:`font-mono text-[11px] font-semibold uppercase text-[hsl(var(--deck-ink))]`,children:m(h.title)}),(0,W.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,W.jsx)(`p`,{className:`mt-0.5 text-[10px] leading-4 text-[hsl(var(--deck-ink-faint))]`,children:m(h.description)})]}),(0,W.jsx)(`span`,{className:D(`mt-1 h-1.5 w-1.5 shrink-0 rounded-full`,h.accent)})]}),(0,W.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2.5`,children:[t.map(e=>{let t=o(e);return(0,W.jsx)(J,{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,W.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 X(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 ge({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,B.useState)(``),[h,g]=(0,B.useState)(``),[_,x]=(0,B.useState)(r??``),[S,T]=(0,B.useState)(`medium`),[E,D]=(0,B.useState)(`feature`),[k,j]=(0,B.useState)(``),[M,N]=(0,B.useState)(null);return(0,B.useEffect)(()=>{e&&(m(i?.title??``),g(i?.taskPromptSummary??``),x(i?.taskSourceProjectPath??i?.projectPath??r??n.find(e=>e.available)?.path??``),T(i?.taskPriority??`medium`),D(i?.taskKind??`feature`),j(X(i?.taskDueAt)),N(null))},[r,e,n,i]),(0,W.jsx)(b,{open:e,onOpenChange:t,children:(0,W.jsxs)(C,{className:`max-w-[560px] gap-0 overflow-hidden border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] p-0`,children:[(0,W.jsxs)(v,{className:`border-b border-[hsl(var(--deck-hairline))] px-5 py-4`,children:[(0,W.jsx)(O,{className:`font-mono text-[15px] text-[hsl(var(--deck-ink))]`,children:d(f?`kanban.dialog.editTitle`:`kanban.dialog.createTitle`)}),(0,W.jsx)(w,{className:`text-[11.5px] text-[hsl(var(--deck-ink-faint))]`,children:d(f?`kanban.dialog.editDescription`:`kanban.dialog.createDescription`)})]}),(0,W.jsxs)(`form`,{onSubmit:async e=>{e.preventDefault();let n=p.trim(),r=h.trim();if(f||r&&_){N(null);try{f?await l({...n?{title:n}:{},taskPriority:S,taskKind:E,taskDueAt:k?new Date(k).toISOString():null}):await c({...n?{title:n}:{},prompt:r,projectPath:_,taskPriority:S,taskKind:E,...k?{taskDueAt:new Date(k).toISOString()}:{}}),t(!1)}catch(e){N(e instanceof Error?e.message:d(`kanban.dialog.submitFailed`))}}},children:[(0,W.jsxs)(`div`,{className:`grid gap-4 px-5 py-5`,children:[(0,W.jsxs)(`label`,{className:`grid gap-1.5`,children:[(0,W.jsx)(`span`,{className:`font-mono text-[10px] uppercase text-[hsl(var(--deck-ink-muted))]`,children:d(`kanban.field.title`)}),(0,W.jsx)(`input`,{value:p,onChange:e=>m(e.target.value),maxLength:200,className:`field`,placeholder:d(`kanban.field.titlePlaceholder`)})]}),!f&&(0,W.jsxs)(`label`,{className:`grid gap-1.5`,children:[(0,W.jsx)(`span`,{className:`font-mono text-[10px] uppercase text-[hsl(var(--deck-ink-muted))]`,children:d(`kanban.field.prompt`)}),(0,W.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,W.jsxs)(`label`,{className:`grid gap-1.5`,children:[(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 font-mono text-[10px] uppercase text-[hsl(var(--deck-ink-muted))]`,children:[(0,W.jsx)(ee,{className:`h-3 w-3`}),d(`kanban.field.project`)]}),(0,W.jsx)(`select`,{required:!0,value:_,onChange:e=>x(e.target.value),className:`field`,children:n.filter(e=>e.available).map(e=>(0,W.jsx)(`option`,{value:e.path,children:e.name},e.path))})]}),(0,W.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-3`,children:[(0,W.jsxs)(`label`,{className:`grid gap-1.5`,children:[(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 font-mono text-[10px] uppercase text-[hsl(var(--deck-ink-muted))]`,children:[(0,W.jsx)(z,{className:`h-3 w-3`}),d(`kanban.field.kind`)]}),(0,W.jsxs)(`select`,{value:E,onChange:e=>D(e.target.value),className:`field`,children:[(0,W.jsx)(`option`,{value:`feature`,children:d(`kanban.kind.feature`)}),(0,W.jsx)(`option`,{value:`bug`,children:d(`kanban.kind.bug`)}),(0,W.jsx)(`option`,{value:`maintenance`,children:d(`kanban.kind.maintenance`)}),(0,W.jsx)(`option`,{value:`research`,children:d(`kanban.kind.research`)})]})]}),(0,W.jsxs)(`label`,{className:`grid gap-1.5`,children:[(0,W.jsx)(`span`,{className:`font-mono text-[10px] uppercase text-[hsl(var(--deck-ink-muted))]`,children:d(`kanban.field.priority`)}),(0,W.jsxs)(`select`,{value:S,onChange:e=>T(e.target.value),className:`field`,children:[(0,W.jsx)(`option`,{value:`high`,children:d(`kanban.priority.high`)}),(0,W.jsx)(`option`,{value:`medium`,children:d(`kanban.priority.medium`)}),(0,W.jsx)(`option`,{value:`low`,children:d(`kanban.priority.low`)})]})]}),(0,W.jsxs)(`label`,{className:`grid gap-1.5`,children:[(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 font-mono text-[10px] uppercase text-[hsl(var(--deck-ink-muted))]`,children:[(0,W.jsx)(u,{className:`h-3 w-3`}),d(`kanban.field.dueAt`)]}),(0,W.jsx)(`input`,{type:`datetime-local`,value:k,onChange:e=>j(e.target.value),className:`field min-w-0`})]})]}),!f&&(0,W.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,W.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-[hsl(var(--deck-accent))]`}),d(`kanban.dialog.localExecution`)]}),M&&(0,W.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,W.jsxs)(oe,{className:`border-t border-[hsl(var(--deck-hairline))] bg-[hsl(var(--deck-surface-2))]/60 px-5 py-3`,children:[(0,W.jsx)(y,{type:`button`,variant:`ghost`,onClick:()=>t(!1),disabled:a,children:d(`kanban.dialog.cancel`)}),(0,W.jsxs)(y,{type:`submit`,disabled:a||!f&&(!o||!h.trim()||!_),className:`gap-2`,children:[a&&(0,W.jsx)(A,{className:`h-3.5 w-3.5 animate-spin`}),d(f?`kanban.dialog.save`:`kanban.dialog.dispatch`)]})]})]})]})})}function _e(){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),v=F(e=>e.cancellingTaskKeys),y=F(e=>e.retryingTaskKeys),b=F(e=>e.updatingTaskKeys),x=F(e=>e.unreadTaskKeys),C=F(e=>e.error),w=F(e=>i(e.historySurfaceSelection)),E=F(e=>e.selectProject),O=F(e=>e.selectSession),k=F(e=>e.dispatchTask),M=F(e=>e.updateTask),re=F(e=>e.cancelTask),ae=F(e=>e.retryTask),oe=F(e=>e.archiveSession),I=F(e=>e.setTaskAdmissionPaused),se=F(e=>e.reconnectTaskEvents),L=F(e=>e.clearError),ce=T(e=>e.currentMode),R=r(e=>e.setMainView),z=r(e=>e.boardProjectPath),H=r(e=>e.setBoardProjectPath),le=r(e=>e.openFilePreview),[U,de]=(0,B.useState)(``),[pe,G]=(0,B.useState)(!1),[me,K]=(0,B.useState)(null),[q,J]=(0,B.useState)(!1);(0,B.useEffect)(()=>{z&&!a.some(e=>e.path===z&&e.available)&&H(null)},[z,a,H]);let Y=n.find(e=>P(_(e))===me)??null,X=U.trim().toLowerCase(),_e=(0,B.useMemo)(()=>n.filter(t=>z&&ue(t)!==z?!1:!X||[t.sessionId,te(t,e),t.taskPromptSummary,ue(t),t.taskPriority,t.taskKind].filter(Boolean).join(` `).toLowerCase().includes(X)),[z,X,n,e]),ve=(0,B.useMemo)(()=>fe(_e),[_e]),ye=V.reduce((e,t)=>e+ve[t].length,0),Z=c?.taskAdmission,Q=!Z||!Z.paused,$=a.filter(e=>e.available),be=z??o??$[0]?.path??null,xe=Y?b.includes(P(_(Y))):d,Se=async e=>{R(`workspace`),await O(_(e))},Ce=async e=>{R(`workspace`),await O(_(e)),le({tab:`diff`})};return w?null:(0,W.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,W.jsxs)(`div`,{className:`border-b border-[hsl(var(--deck-hairline))] bg-[hsl(var(--deck-canvas))] px-4 py-3 sm:px-6`,children:[(0,W.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,W.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(`h1`,{className:`font-mono text-[15px] font-semibold`,children:e(`kanban.title`)}),(0,W.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,W.jsx)(`p`,{className:`mt-0.5 text-[10.5px] text-[hsl(var(--deck-ink-faint))]`,children:e(`kanban.subtitle`)})]}),(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[Z&&(0,W.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,W.jsx)(ie,{inFlight:Z.inFlight,queued:Z.queued,maxConcurrent:Z.maxConcurrent,compact:!0})}),(0,W.jsxs)(`button`,{type:`button`,role:`switch`,"aria-checked":Q,disabled:!Z||p,onClick:()=>{t(F.getState())||I(Q).catch(()=>void 0)},className:D(`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,W.jsx)(A,{className:`h-3 w-3 animate-spin`}):Q?(0,W.jsx)(m,{className:`h-3 w-3 fill-current`}):(0,W.jsx)(f,{className:`h-3 w-3`}),e(Q?`kanban.autoClaim.running`:`kanban.autoClaim.paused`)]}),(0,W.jsxs)(`button`,{type:`button`,onClick:()=>{if($.length===0){J(!0);return}K(null),G(!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,W.jsx)(h,{className:`h-3.5 w-3.5`}),e(`kanban.action.newTask`)]})]})]}),(0,W.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,W.jsxs)(`label`,{className:`relative min-w-[180px] flex-1 sm:max-w-[320px]`,children:[(0,W.jsx)(g,{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,W.jsx)(`input`,{type:`search`,value:U,onChange:e=>de(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,W.jsxs)(`label`,{className:`relative`,children:[(0,W.jsx)(ee,{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,W.jsxs)(`select`,{value:z??`__all__`,onChange:e=>{let t=e.target.value;H(t===`__all__`?null:t),t!==`__all__`&&E(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,W.jsx)(`option`,{value:`__all__`,children:e(`kanban.projectAll`)}),$.map(e=>(0,W.jsx)(`option`,{value:e.path,children:e.name},e.path))]})]}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>J(!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,W.jsx)(j,{className:`h-3.5 w-3.5`})}),l===`loading`||l===`hydrating`?(0,W.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 font-mono text-[9.5px] text-[hsl(var(--deck-ink-faint))]`,children:[(0,W.jsx)(A,{className:`h-3 w-3 animate-spin`}),e(`sidebar.catalog.syncing`)]}):null]})]}),u===`offline`&&(0,W.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,W.jsx)(S,{className:`h-3.5 w-3.5`}),(0,W.jsx)(`span`,{className:`flex-1`,children:e(`kanban.feed.offline`)}),(0,W.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,W.jsx)(ne,{className:`h-3 w-3`}),e(`taskHome.feed.retry`)]})]}),C&&(0,W.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,W.jsx)(`span`,{className:`flex-1`,children:C}),(0,W.jsx)(`button`,{type:`button`,onClick:L,className:`font-mono underline`,children:e(`taskHome.error.dismiss`)})]}),(0,W.jsx)(`div`,{className:`flex-1 overflow-auto px-4 py-4 sm:px-6`,children:(0,W.jsx)(`div`,{className:`grid min-w-0 grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-4`,children:V.map(e=>(0,W.jsx)(he,{id:e,sessions:ve[e],unreadTaskKeys:x,cancellingTaskKeys:v,retryingTaskKeys:y,updatingTaskKeys:b,taskKey:e=>P(_(e)),onOpen:e=>{Se(e).catch(()=>void 0)},onInspect:e=>{Ce(e).catch(()=>void 0)},onEdit:e=>{K(P(_(e))),G(!0)},onCancel:e=>{t(F.getState())||re(_(e)).catch(()=>void 0)},onRetry:e=>{t(F.getState())||ae(_(e)).catch(()=>void 0)},onArchive:e=>{t(F.getState())||oe(_(e))}},e))})}),(0,W.jsx)(ge,{open:pe,onOpenChange:e=>{G(e),e||K(null)},projects:a,defaultProjectPath:be,session:Y,submitting:xe,canCreate:$.length>0,onCreate:async e=>{t(F.getState())||(E(e.projectPath),await k({...e,isolation:`local`,permissionMode:ce},{selectSession:!1}))},onUpdate:async e=>{t(F.getState())||Y&&await M(_(Y),e)}}),(0,W.jsx)(N,{open:q,onOpenChange:J})]})}export{_e as KanbanBoard};