pi-roundtable-web 0.28.0 → 0.29.1

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 (236) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +4 -4
  3. package/dist/chunk-account-66e6ezdq.js +1 -0
  4. package/dist/{chunk-action-menu-qpp9bdxh.js → chunk-action-menu-ap5xn7bf.js} +1 -1
  5. package/dist/chunk-agent-sapt5qhn.js +1 -0
  6. package/dist/chunk-arranged-rooms-n6bk696f.js +1 -0
  7. package/dist/chunk-attachments-p5v9gqyt.js +102 -0
  8. package/dist/chunk-bulk-actions-aze4ewc4.js +1 -0
  9. package/dist/chunk-character-creator-m7tw20ef.js +225 -0
  10. package/dist/{chunk-codeeditor-jgj32247.js → chunk-codeeditor-yy6pq8mv.js} +2 -2
  11. package/dist/chunk-confirm-0cajsfhk.js +1 -0
  12. package/dist/chunk-connectors-tw0tbm21.js +37 -0
  13. package/dist/chunk-conversations-wkm23m5r.js +1 -0
  14. package/dist/chunk-council-sheet-mz7s23nq.js +2 -0
  15. package/dist/chunk-council-view-zgvzxtgn.js +1 -0
  16. package/dist/{chunk-drag-04qfef58.js → chunk-drag-d1bpy8w6.js} +1 -1
  17. package/dist/{chunk-entry-mws704mc.js → chunk-entry-7zr5b1fp.js} +1 -1
  18. package/dist/chunk-folder-list-bs4eh3g9.js +1 -0
  19. package/dist/chunk-folds-eez1q41c.js +1 -0
  20. package/dist/{chunk-gate-vxetvn8t.js → chunk-gate-dt91egcd.js} +1 -1
  21. package/dist/chunk-host-icons-nfe2t8tk.js +1 -0
  22. package/dist/chunk-host-picture-4rtswxwa.js +1 -0
  23. package/dist/chunk-host-state-1vxzmmq6.js +1 -0
  24. package/dist/chunk-host-ui-x38bf0et.js +1 -0
  25. package/dist/{chunk-index-zj0gjcvr.js → chunk-index-0h99xcs3.js} +2 -2
  26. package/dist/{chunk-index-e2gy763y.js → chunk-index-1kb8tv4v.js} +2 -2
  27. package/dist/chunk-index-24cggw6k.js +50 -0
  28. package/dist/chunk-index-2g8xtwqg.js +2 -0
  29. package/dist/chunk-index-3n38xe7m.js +2 -0
  30. package/dist/{chunk-index-n0cmnwd2.js → chunk-index-3tksdmx7.js} +2 -2
  31. package/dist/{chunk-index-2822z600.js → chunk-index-4a1tdadd.js} +3 -3
  32. package/dist/{chunk-index-2syyyjnq.js → chunk-index-53fwc7sc.js} +2 -2
  33. package/dist/chunk-index-55ps4x5n.js +2 -0
  34. package/dist/{chunk-index-q5fyrtx4.js → chunk-index-5j1v2q7w.js} +1 -1
  35. package/dist/chunk-index-5w6tb7p0.js +2 -0
  36. package/dist/chunk-index-6btdp13p.js +2 -0
  37. package/dist/chunk-index-6m7dwsmv.js +1 -0
  38. package/dist/{chunk-index-20xgx0k2.js → chunk-index-6rdywten.js} +2 -2
  39. package/dist/{chunk-index-3gfbhmpb.js → chunk-index-6s2pqwna.js} +2 -2
  40. package/dist/{chunk-index-fepsbhr6.js → chunk-index-7mrkq793.js} +2 -2
  41. package/dist/chunk-index-7xcbpeqz.js +2 -0
  42. package/dist/chunk-index-88wh5eyj.js +2 -0
  43. package/dist/{chunk-index-6cg8xp1c.js → chunk-index-8pbwr3rs.js} +1 -1
  44. package/dist/{chunk-index-jc3r4qam.js → chunk-index-8wpvj7k5.js} +2 -2
  45. package/dist/chunk-index-97dcp1vh.js +1 -0
  46. package/dist/chunk-index-a7e6rhxy.js +2 -0
  47. package/dist/{chunk-index-2tr41qht.js → chunk-index-bxf8eq1s.js} +2 -2
  48. package/dist/chunk-index-c8gm1crh.js +120 -0
  49. package/dist/{chunk-index-2y8r4s4f.js → chunk-index-ce7hsda9.js} +2 -2
  50. package/dist/chunk-index-cfesmk1f.js +2 -0
  51. package/dist/{chunk-index-m81362sc.js → chunk-index-cmzvq3nf.js} +1 -1
  52. package/dist/{chunk-index-7qd604rq.js → chunk-index-d4mx2vvf.js} +1 -1
  53. package/dist/chunk-index-d74tpnkd.js +2 -0
  54. package/dist/chunk-index-d941ae7c.js +2 -0
  55. package/dist/{chunk-index-e35v554x.js → chunk-index-dr0jr7d3.js} +3 -3
  56. package/dist/chunk-index-en728705.js +2 -0
  57. package/dist/chunk-index-fb3kzyyp.js +2 -0
  58. package/dist/{chunk-index-3yy10a5h.js → chunk-index-ffnd0jcj.js} +2 -2
  59. package/dist/chunk-index-fn6305vn.js +3 -0
  60. package/dist/{chunk-index-zcfr8jdv.js → chunk-index-gdh7wsd5.js} +12 -12
  61. package/dist/{chunk-index-2hvn2kte.js → chunk-index-m76gdwnk.js} +2 -2
  62. package/dist/chunk-index-mr391t49.js +2 -0
  63. package/dist/chunk-index-n3khm9fq.js +2 -0
  64. package/dist/{chunk-index-sm7kfb07.js → chunk-index-nn4w6a04.js} +2 -2
  65. package/dist/{chunk-index-gwkhs8s3.js → chunk-index-nr275sa7.js} +2 -2
  66. package/dist/{chunk-index-x60n1me6.js → chunk-index-pgxgq61x.js} +2 -2
  67. package/dist/chunk-index-prq011b6.js +2 -0
  68. package/dist/{chunk-index-v9gbt5tz.js → chunk-index-q4k9vk04.js} +19 -3
  69. package/dist/chunk-index-rgdaec7y.js +2 -0
  70. package/dist/chunk-index-rjs1can6.js +2 -0
  71. package/dist/chunk-index-s4a8e4qm.js +2 -0
  72. package/dist/{chunk-index-s9p27f9b.js → chunk-index-sz381vda.js} +3 -3
  73. package/dist/{chunk-index-5hbq6g2e.css → chunk-index-t7csmbpy.css} +1 -1
  74. package/dist/{chunk-index-rgf4rvns.js → chunk-index-v9jqyr1f.js} +3 -3
  75. package/dist/{chunk-index-rsd8rftk.js → chunk-index-vpq2cj14.js} +2 -2
  76. package/dist/chunk-index-vsaggfns.js +2 -0
  77. package/dist/{chunk-index-p7jkr7gv.js → chunk-index-w17wgjby.js} +5 -5
  78. package/dist/{chunk-index-c7dbvkrq.js → chunk-index-wgrx2ybn.js} +2 -2
  79. package/dist/chunk-index-wsv46y9p.js +2 -0
  80. package/dist/{chunk-index-4t6vnwap.js → chunk-index-xbj816p0.js} +2 -2
  81. package/dist/{chunk-index-s53bxwkk.js → chunk-index-yr758n6t.js} +2 -2
  82. package/dist/{chunk-index-5t2jkecy.js → chunk-index-ysv36nbk.js} +2 -2
  83. package/dist/{chunk-index-zt19fdmc.js → chunk-index-ze9p4npm.js} +2 -2
  84. package/dist/chunk-index-zfdvyrjt.js +2 -0
  85. package/dist/chunk-lang-css-3h22se37.js +1 -0
  86. package/dist/{chunk-lang-dockerfile-n4bt8jbt.js → chunk-lang-dockerfile-y24eejnh.js} +1 -1
  87. package/dist/{chunk-lang-go-9k4y107e.js → chunk-lang-go-qzgv1161.js} +3 -3
  88. package/dist/chunk-lang-html-9rvrmmpg.js +1 -0
  89. package/dist/chunk-lang-javascript-4kv8s3tk.js +1 -0
  90. package/dist/{chunk-lang-json-hr12bzs1.js → chunk-lang-json-99v80v88.js} +1 -1
  91. package/dist/{chunk-lang-markdown-ttzcpgkg.js → chunk-lang-markdown-gn8he877.js} +4 -4
  92. package/dist/{chunk-lang-python-ntj8maem.js → chunk-lang-python-prsw4p4k.js} +2 -2
  93. package/dist/{chunk-lang-rust-gv8y859d.js → chunk-lang-rust-g6xqta16.js} +1 -1
  94. package/dist/{chunk-lang-shell-5zzs09b7.js → chunk-lang-shell-dmpnzc6w.js} +1 -1
  95. package/dist/{chunk-lang-sql-6vmze4pg.js → chunk-lang-sql-wz7ca27b.js} +2 -2
  96. package/dist/{chunk-lang-toml-tt0d4rw9.js → chunk-lang-toml-160prtq4.js} +1 -1
  97. package/dist/chunk-lang-typescript-mp0yw903.js +1 -0
  98. package/dist/{chunk-lang-xml-r2sbqnjv.js → chunk-lang-xml-9htkz2dd.js} +1 -1
  99. package/dist/{chunk-lang-yaml-ex31qbph.js → chunk-lang-yaml-08749wd5.js} +1 -1
  100. package/dist/chunk-layout-actions-tdx896xf.js +1 -0
  101. package/dist/chunk-menu-items-trhybv1g.js +1 -0
  102. package/dist/chunk-mode-toggle-4dtfphq4.js +1 -0
  103. package/dist/{chunk-note-row-40ypghn9.js → chunk-note-row-28e5x7n8.js} +33 -4
  104. package/dist/chunk-notes-5nkayhw8.js +1 -0
  105. package/dist/chunk-notice-bell-xz8a04am.js +1 -0
  106. package/dist/{chunk-notices-tefx93s6.js → chunk-notices-d0cwvk27.js} +1 -1
  107. package/dist/chunk-onboarding-zs4rtea9.js +1 -0
  108. package/dist/{chunk-overview-zrx3bpwf.js → chunk-overview-9sb3ywa8.js} +1 -1
  109. package/dist/chunk-palette-5sfhrv4x.js +1 -0
  110. package/dist/chunk-placement-items-e2neja55.js +1 -0
  111. package/dist/{chunk-profile-tyb48b79.js → chunk-profile-jffhtpqf.js} +1 -1
  112. package/dist/chunk-prompt-history-1jz2gk3v.js +1 -0
  113. package/dist/chunk-prompts-0t30ttd0.js +1 -0
  114. package/dist/chunk-room-confirms-6595921h.js +1 -0
  115. package/dist/{chunk-room-menu-ha1evv71.js → chunk-room-menu-hwkjyxwe.js} +1 -1
  116. package/dist/chunk-rooms-menu-button-k0eq1tcr.js +1 -0
  117. package/dist/{chunk-schedules-a5pewkhd.js → chunk-schedules-e12y8fw2.js} +1 -1
  118. package/dist/{chunk-seat-menu-eh3ymmks.js → chunk-seat-menu-n2bcw0mf.js} +1 -1
  119. package/dist/chunk-sheet-hosts-myvm2vhd.js +29 -0
  120. package/dist/chunk-shortcut-help-434sqnxc.js +26 -0
  121. package/dist/chunk-shortcuts-mjxph0g7.js +1 -0
  122. package/dist/chunk-skill-editor-98492yrt.js +8 -0
  123. package/dist/chunk-skills-mfv8ppfh.js +1 -0
  124. package/dist/chunk-start-over-line-m526193z.js +16 -0
  125. package/dist/{chunk-switcher-list-dtfh87zy.js → chunk-switcher-list-5ngjar24.js} +1 -1
  126. package/dist/{chunk-tab-dot-qd640mjr.js → chunk-tab-dot-tzjkahj5.js} +1 -1
  127. package/dist/chunk-table-xbtbex2z.js +1 -0
  128. package/dist/{chunk-table2d-5nrhfwft.js → chunk-table2d-61bvrykm.js} +1 -1
  129. package/dist/{chunk-table3d-5cb66d99.js → chunk-table3d-5a7vbgyj.js} +172 -172
  130. package/dist/chunk-thread-actions-bf6vf2mt.js +1 -0
  131. package/dist/{chunk-thread-cards-kgt22sbp.js → chunk-thread-cards-n0n603vf.js} +1 -1
  132. package/dist/chunk-thread-list-7bkdn51x.js +227 -0
  133. package/dist/{chunk-transcript-a0p3vwh6.js → chunk-transcript-8ztrkt6g.js} +1 -1
  134. package/dist/chunk-waiting-chip-y83c90v3.js +32 -0
  135. package/dist/chunk-waiting-s273kcgz.js +1 -0
  136. package/dist/chunk-where-jr791gzj.js +1 -0
  137. package/dist/chunk-workspace-dw71mshw.js +586 -0
  138. package/dist/chunk-zh-tw-vm5d0w6j.js +1 -0
  139. package/dist/index.html +1 -1
  140. package/dist/sw.js +1 -1
  141. package/package.json +3 -3
  142. package/src/api-types.ts +51 -0
  143. package/src/app/app.ts +7 -0
  144. package/src/app/card-log.ts +10 -2
  145. package/src/app/protocol.ts +18 -0
  146. package/src/app/queued-delivery.ts +107 -0
  147. package/src/app/queued-frames.ts +115 -0
  148. package/src/app/room-log.ts +39 -7
  149. package/src/app/rooms.ts +30 -2
  150. package/src/app/routes.ts +123 -7
  151. package/src/app/skill-group-routes.ts +126 -0
  152. package/src/app/socket.ts +12 -2
  153. package/src/app/surface.ts +37 -6
  154. package/src/app/zip.ts +124 -0
  155. package/src/auth/sessions.ts +9 -1
  156. package/src/authz.ts +1 -0
  157. package/src/host/cards.ts +10 -3
  158. package/src/host/stored-json.ts +23 -0
  159. package/src/i18n/zh-tw.ts +45 -2
  160. package/src/notices/mount.ts +1 -0
  161. package/src/notices/store.ts +9 -1
  162. package/src/push/channel.ts +1 -0
  163. package/src/web-plugin.ts +5 -1
  164. package/dist/chunk-account-678dgbww.js +0 -1
  165. package/dist/chunk-agent-x0yvvdq2.js +0 -1
  166. package/dist/chunk-arranged-rooms-6rdkk8t1.js +0 -1
  167. package/dist/chunk-bulk-actions-zbwdaxtc.js +0 -1
  168. package/dist/chunk-character-creator-215psy17.js +0 -1
  169. package/dist/chunk-confirm-2pzrt272.js +0 -1
  170. package/dist/chunk-connectors-zha2d834.js +0 -37
  171. package/dist/chunk-conversations-fb071rez.js +0 -1
  172. package/dist/chunk-council-sheet-k5fycefd.js +0 -2
  173. package/dist/chunk-folder-list-qxhmczwv.js +0 -1
  174. package/dist/chunk-folds-b7asegfs.js +0 -1
  175. package/dist/chunk-group-scene-63yhh1mh.js +0 -1
  176. package/dist/chunk-group-table-zy4hmgk3.js +0 -1
  177. package/dist/chunk-host-icons-tyktazzz.js +0 -1
  178. package/dist/chunk-host-picture-ebhejn2k.js +0 -1
  179. package/dist/chunk-host-state-wajep0yr.js +0 -1
  180. package/dist/chunk-host-ui-pc9r24e3.js +0 -1
  181. package/dist/chunk-index-1af8vsyb.js +0 -2
  182. package/dist/chunk-index-254701sm.js +0 -3
  183. package/dist/chunk-index-31m1b2f5.js +0 -2
  184. package/dist/chunk-index-5vatmakn.js +0 -2
  185. package/dist/chunk-index-6yra9kdq.js +0 -2
  186. package/dist/chunk-index-9bdstf8t.js +0 -2
  187. package/dist/chunk-index-acj4xxgq.js +0 -100
  188. package/dist/chunk-index-aexy023z.js +0 -2
  189. package/dist/chunk-index-amxa2bn3.js +0 -2
  190. package/dist/chunk-index-bef0fc2m.js +0 -2
  191. package/dist/chunk-index-c6tphrjr.js +0 -1
  192. package/dist/chunk-index-cn49mawx.js +0 -50
  193. package/dist/chunk-index-gcmmwh8t.js +0 -2
  194. package/dist/chunk-index-h2vhv4kh.js +0 -2
  195. package/dist/chunk-index-h9ccz1r3.js +0 -2
  196. package/dist/chunk-index-n0ejy0wd.js +0 -2
  197. package/dist/chunk-index-nkdg1dfz.js +0 -7
  198. package/dist/chunk-index-qxynr1hf.js +0 -2
  199. package/dist/chunk-index-r7fdgzy1.js +0 -2
  200. package/dist/chunk-index-sdcpf5dp.js +0 -2
  201. package/dist/chunk-index-sw9r4aa4.js +0 -2
  202. package/dist/chunk-index-t5bmsqqd.js +0 -1
  203. package/dist/chunk-index-v8mma5np.js +0 -2
  204. package/dist/chunk-index-vsfsv8hd.js +0 -2
  205. package/dist/chunk-index-wxft0aqb.js +0 -2
  206. package/dist/chunk-index-zvvwxkev.js +0 -2
  207. package/dist/chunk-lang-css-7q1dtpgm.js +0 -1
  208. package/dist/chunk-lang-html-xgvba8rn.js +0 -1
  209. package/dist/chunk-lang-javascript-vgxmgd0a.js +0 -1
  210. package/dist/chunk-lang-typescript-2v652sh5.js +0 -1
  211. package/dist/chunk-layout-actions-bfqtg71d.js +0 -1
  212. package/dist/chunk-menu-items-rztgekfj.js +0 -1
  213. package/dist/chunk-mode-toggle-m5kgb7c7.js +0 -1
  214. package/dist/chunk-notes-a8nqffbf.js +0 -1
  215. package/dist/chunk-notice-bell-rdnfmtf2.js +0 -1
  216. package/dist/chunk-onboarding-wvh0s3vg.js +0 -1
  217. package/dist/chunk-palette-5xtdvy9a.js +0 -1
  218. package/dist/chunk-placement-items-rgyrktvy.js +0 -1
  219. package/dist/chunk-prompt-history-wv0vdsjv.js +0 -1
  220. package/dist/chunk-prompts-75hgb0t0.js +0 -1
  221. package/dist/chunk-room-confirms-bcvhpcry.js +0 -1
  222. package/dist/chunk-rooms-menu-button-ej3a2hyc.js +0 -1
  223. package/dist/chunk-sheet-hosts-d5zbwbbr.js +0 -29
  224. package/dist/chunk-shortcut-help-bh9ntk9s.js +0 -26
  225. package/dist/chunk-shortcuts-6em0atk9.js +0 -1
  226. package/dist/chunk-skill-editor-e43mwz01.js +0 -8
  227. package/dist/chunk-skills-vp107wrp.js +0 -1
  228. package/dist/chunk-start-over-line-xd1v2p0g.js +0 -16
  229. package/dist/chunk-table-svb2xhfd.js +0 -1
  230. package/dist/chunk-thread-actions-926eab0w.js +0 -1
  231. package/dist/chunk-thread-list-j2v1pqkz.js +0 -217
  232. package/dist/chunk-waiting-cdyz7r1g.js +0 -1
  233. package/dist/chunk-waiting-chip-58ttx9av.js +0 -28
  234. package/dist/chunk-where-9jp6g029.js +0 -1
  235. package/dist/chunk-workspace-d34njy4p.js +0 -578
  236. package/dist/chunk-zh-tw-y3jb20wc.js +0 -1
@@ -0,0 +1 @@
1
+ import{oo,so,ao}from"./chunk-index-ysv36nbk.js";import"./chunk-index-yr758n6t.js";export{so as clearAcross,ao as clearFinished,oo as dismissThread};
@@ -1 +1 @@
1
- import{t,Pe,me,On,us,Vn,sr}from"./chunk-index-cn49mawx.js";import{Yr,jr}from"./chunk-index-5t2jkecy.js";import{wr}from"./chunk-index-2tr41qht.js";import"./chunk-index-s53bxwkk.js";var E=12,R=24,y=180,L=150,C=100,w=".thread-card",h=".thread-group",g=(e)=>e instanceof Element?e.closest(w):null,B=(e)=>e.closest("li"),m=(e)=>e.dataset.closed==="",I=(e)=>new Promise((i)=>setTimeout(i,e));function X(e){return[...e.closest(h)?.querySelectorAll(`${w}[data-closed]`)??[]].flatMap((n)=>n.dataset.thread?[n.dataset.thread]:[])}function q(e){let i=B(e);if(delete e.dataset.armed,e.style.transition="",e.style.transform="",e.style.opacity="",i)i.style.transition="",i.style.height="",i.style.marginBottom="",i.style.opacity=""}async function F(e){let i=B(e);if(!i||Pe())return;e.dataset.leaving="",e.style.transition=`transform ${y}ms var(--ease-out), opacity ${y}ms var(--ease-out)`,e.style.transform="translate3d(110%, 0, 0)",e.style.opacity="0",await I(y),i.style.height=`${i.offsetHeight}px`,i.getBoundingClientRect(),i.style.transition=`height ${L}ms var(--ease-out), margin-bottom ${L}ms var(--ease-out)`,i.style.height="0px",i.style.marginBottom="calc(var(--space-1) * -1)",await I(L)}function _(e){let i=[...e.closest(h)?.querySelectorAll(`${w} .thread-link`)??[]],n=e.querySelector(".thread-link"),o=n?i.indexOf(n):-1;if(document.activeElement&&!e.contains(document.activeElement))return;(i[o+1]??i[o-1]??e.closest(h)?.querySelector("summary"))?.closest("a, summary")?.focus()}async function T(e){let i=e.dataset.thread;if(!i||!m(e)||e.dataset.leaving!==void 0)return;if(_(e),await F(e),!await Yr(i))q(e);delete e.dataset.leaving}function M(e,i,n){let o=[];if(m(e))o.push({id:"clear",label:t("Clear this thread"),icon:"trash",tone:"danger",run:()=>T(e)});let l=X(e),f=e.closest(h)?.dataset.parent||void 0;if(l.length>0)o.push({id:"clear-all",label:t("Clear all finished"),icon:"trash",tone:"danger",run:()=>jr(f,l)});me({title:e.querySelector(".thread-title")?.textContent??"",items:o,at:i,via:n,source:e.querySelector(".thread-link")??e})}var O=(e)=>{if(e.cancelable)e.preventDefault()};function W(e,i){let n=e.at(-1);if(!n||i-n.t>C)return 0;let o=e.find((l)=>n.t-l.t<=C);if(!o||n.t<=o.t)return 0;return(n.x-o.x)/(n.t-o.t)}function z(e){let i=wr(),n,o=!1,l=()=>{n?.press.cancel(),window.removeEventListener("touchmove",O),n=void 0},f=(s)=>{if(o=!1,s.pointerType==="mouse"||!s.isPrimary)return;let r=g(s.target);if(!r||s.target.closest(".thread-more"))return;l();let a={x:s.clientX,y:s.clientY},c=new On((d)=>{if(o=!0,typeof navigator.vibrate==="function")navigator.vibrate(10);if(n)n.state="reject";v(r),M(r,d,"hold")});c.begin(a.x,a.y),n={id:s.pointerId,card:r,origin:a,press:c,swipes:!Vn(a.x,window.innerWidth),state:"wait",offset:0,samples:[{x:a.x,t:s.timeStamp}]}},v=(s)=>{if(s.dataset.leaving!==void 0)return;delete s.dataset.armed,s.style.transition=`transform ${Pe()?0:y}ms var(--ease-out)`,s.style.transform=""},x=(s)=>{if(!n||n.id!==s.pointerId)return;let{card:r}=n,a=s.clientX-n.origin.x,c=s.clientY-n.origin.y;if(n.state==="wait"){n.press.move(s.clientX,s.clientY);let p=Math.abs(a);if(!n.swipes)return;if(p>=E&&p>us*Math.abs(c)){if(n.state=a>0?"drag":"reject",n.state==="drag")n.press.cancel(),r.style.transition="none",window.addEventListener("touchmove",O,{passive:!1})}else if(Math.abs(c)>=E)n.state="reject";if(n.state!=="drag")return}if(n.state!=="drag")return;let d=Math.max(0,a-E),u=r.offsetWidth||1;if(n.offset=m(r)?Math.min(d,u):Math.min(R,d*0.3),n.samples.push({x:s.clientX,t:s.timeStamp}),r.style.transform=`translate3d(${n.offset}px, 0, 0)`,m(r))if(sr(n.offset/u,0))r.dataset.armed="";else delete r.dataset.armed},H=(s)=>{if(!n||n.id!==s.pointerId)return;let{card:r,state:a,offset:c,samples:d}=n,u=n.press.end();if(l(),u)o=!0;if(a!=="drag")return;o=!0;let p=r.offsetWidth||1,A=W(d,s.timeStamp);if(m(r)&&c>E&&sr(c/p,A))T(r);else v(r)},b=(s)=>{if(!n||n.id!==s.pointerId)return;let{card:r,state:a}=n;if(l(),a==="drag")v(r)},S=(s)=>{let r=g(s.target);if(!r)return;if(s.preventDefault(),o)return;n?.press.cancel(),M(r,{x:s.clientX,y:s.clientY},"contextmenu")},P=(s)=>{o=!1;let r=g(s.target);if(!r)return;if(s.key==="Delete"&&m(r))s.preventDefault(),T(r);else if(s.key==="ContextMenu"||s.key==="F10"&&s.shiftKey){s.preventDefault();let a=r.getBoundingClientRect();M(r,{x:a.left+Math.min(a.width/2,48),y:a.top+24},"key")}},k=(s)=>{if(!o)return;o=!1,s.preventDefault(),s.stopPropagation()},D=(s)=>{if(g(s.target))s.preventDefault()};return e.addEventListener("pointerdown",f),e.addEventListener("pointermove",x),e.addEventListener("pointerup",H),e.addEventListener("pointercancel",b),e.addEventListener("contextmenu",S),e.addEventListener("keydown",P),e.addEventListener("click",k,!0),e.addEventListener("dragstart",D),()=>{l(),i(),e.removeEventListener("pointerdown",f),e.removeEventListener("pointermove",x),e.removeEventListener("pointerup",H),e.removeEventListener("pointercancel",b),e.removeEventListener("contextmenu",S),e.removeEventListener("keydown",P),e.removeEventListener("click",k,!0),e.removeEventListener("dragstart",D)}}export{z as attachThreadCards,M as openCardMenu};
1
+ import{t,Se,ge,bn,bs,Pi,lr}from"./chunk-index-24cggw6k.js";import{oo,ao}from"./chunk-index-ysv36nbk.js";import{Xr}from"./chunk-index-bxf8eq1s.js";import"./chunk-index-yr758n6t.js";var E=12,R=24,y=180,L=150,C=100,w=".thread-card",h=".thread-group",g=(e)=>e instanceof Element?e.closest(w):null,B=(e)=>e.closest("li"),m=(e)=>e.dataset.closed==="",I=(e)=>new Promise((i)=>setTimeout(i,e));function X(e){return[...e.closest(h)?.querySelectorAll(`${w}[data-closed]`)??[]].flatMap((n)=>n.dataset.thread?[n.dataset.thread]:[])}function q(e){let i=B(e);if(delete e.dataset.armed,e.style.transition="",e.style.transform="",e.style.opacity="",i)i.style.transition="",i.style.height="",i.style.marginBottom="",i.style.opacity=""}async function F(e){let i=B(e);if(!i||Se())return;e.dataset.leaving="",e.style.transition=`transform ${y}ms var(--ease-out), opacity ${y}ms var(--ease-out)`,e.style.transform="translate3d(110%, 0, 0)",e.style.opacity="0",await I(y),i.style.height=`${i.offsetHeight}px`,i.getBoundingClientRect(),i.style.transition=`height ${L}ms var(--ease-out), margin-bottom ${L}ms var(--ease-out)`,i.style.height="0px",i.style.marginBottom="calc(var(--space-1) * -1)",await I(L)}function _(e){let i=[...e.closest(h)?.querySelectorAll(`${w} .thread-link`)??[]],n=e.querySelector(".thread-link"),o=n?i.indexOf(n):-1;if(document.activeElement&&!e.contains(document.activeElement))return;(i[o+1]??i[o-1]??e.closest(h)?.querySelector("summary"))?.closest("a, summary")?.focus()}async function T(e){let i=e.dataset.thread;if(!i||!m(e)||e.dataset.leaving!==void 0)return;if(_(e),await F(e),!await oo(i))q(e);delete e.dataset.leaving}function M(e,i,n){let o=[];if(m(e))o.push({id:"clear",label:t("Clear this thread"),icon:"trash",tone:"danger",run:()=>T(e)});let l=X(e),f=e.closest(h)?.dataset.parent||void 0;if(l.length>0)o.push({id:"clear-all",label:t("Clear all finished"),icon:"trash",tone:"danger",run:()=>ao(f,l)});ge({title:e.querySelector(".thread-title")?.textContent??"",items:o,at:i,via:n,source:e.querySelector(".thread-link")??e})}var O=(e)=>{if(e.cancelable)e.preventDefault()};function W(e,i){let n=e.at(-1);if(!n||i-n.t>C)return 0;let o=e.find((l)=>n.t-l.t<=C);if(!o||n.t<=o.t)return 0;return(n.x-o.x)/(n.t-o.t)}function z(e){let i=Xr(),n,o=!1,l=()=>{n?.press.cancel(),window.removeEventListener("touchmove",O),n=void 0},f=(s)=>{if(o=!1,s.pointerType==="mouse"||!s.isPrimary)return;let r=g(s.target);if(!r||s.target.closest(".thread-more"))return;l();let a={x:s.clientX,y:s.clientY},c=new bn((d)=>{if(o=!0,typeof navigator.vibrate==="function")navigator.vibrate(10);if(n)n.state="reject";v(r),M(r,d,"hold")});c.begin(a.x,a.y),n={id:s.pointerId,card:r,origin:a,press:c,swipes:!Pi(a.x,window.innerWidth),state:"wait",offset:0,samples:[{x:a.x,t:s.timeStamp}]}},v=(s)=>{if(s.dataset.leaving!==void 0)return;delete s.dataset.armed,s.style.transition=`transform ${Se()?0:y}ms var(--ease-out)`,s.style.transform=""},x=(s)=>{if(!n||n.id!==s.pointerId)return;let{card:r}=n,a=s.clientX-n.origin.x,c=s.clientY-n.origin.y;if(n.state==="wait"){n.press.move(s.clientX,s.clientY);let p=Math.abs(a);if(!n.swipes)return;if(p>=E&&p>bs*Math.abs(c)){if(n.state=a>0?"drag":"reject",n.state==="drag")n.press.cancel(),r.style.transition="none",window.addEventListener("touchmove",O,{passive:!1})}else if(Math.abs(c)>=E)n.state="reject";if(n.state!=="drag")return}if(n.state!=="drag")return;let d=Math.max(0,a-E),u=r.offsetWidth||1;if(n.offset=m(r)?Math.min(d,u):Math.min(R,d*0.3),n.samples.push({x:s.clientX,t:s.timeStamp}),r.style.transform=`translate3d(${n.offset}px, 0, 0)`,m(r))if(lr(n.offset/u,0))r.dataset.armed="";else delete r.dataset.armed},H=(s)=>{if(!n||n.id!==s.pointerId)return;let{card:r,state:a,offset:c,samples:d}=n,u=n.press.end();if(l(),u)o=!0;if(a!=="drag")return;o=!0;let p=r.offsetWidth||1,A=W(d,s.timeStamp);if(m(r)&&c>E&&lr(c/p,A))T(r);else v(r)},b=(s)=>{if(!n||n.id!==s.pointerId)return;let{card:r,state:a}=n;if(l(),a==="drag")v(r)},S=(s)=>{let r=g(s.target);if(!r)return;if(s.preventDefault(),o)return;n?.press.cancel(),M(r,{x:s.clientX,y:s.clientY},"contextmenu")},P=(s)=>{o=!1;let r=g(s.target);if(!r)return;if(s.key==="Delete"&&m(r))s.preventDefault(),T(r);else if(s.key==="ContextMenu"||s.key==="F10"&&s.shiftKey){s.preventDefault();let a=r.getBoundingClientRect();M(r,{x:a.left+Math.min(a.width/2,48),y:a.top+24},"key")}},k=(s)=>{if(!o)return;o=!1,s.preventDefault(),s.stopPropagation()},D=(s)=>{if(g(s.target))s.preventDefault()};return e.addEventListener("pointerdown",f),e.addEventListener("pointermove",x),e.addEventListener("pointerup",H),e.addEventListener("pointercancel",b),e.addEventListener("contextmenu",S),e.addEventListener("keydown",P),e.addEventListener("click",k,!0),e.addEventListener("dragstart",D),()=>{l(),i(),e.removeEventListener("pointerdown",f),e.removeEventListener("pointermove",x),e.removeEventListener("pointerup",H),e.removeEventListener("pointercancel",b),e.removeEventListener("contextmenu",S),e.removeEventListener("keydown",P),e.removeEventListener("click",k,!0),e.removeEventListener("dragstart",D)}}export{z as attachThreadCards,M as openCardMenu};
@@ -0,0 +1,227 @@
1
+ import{p,ee,o,a,t,G,g,e,n,s,S,d,P,_,we,te,rr,Ue,Kt,Wn,Tn,Xt}from"./chunk-index-24cggw6k.js";var C="roundtable-console:helpers-folded";function Z(){try{let i=localStorage.getItem(C),r=i?JSON.parse(i):{};if(typeof r!=="object"||r===null||Array.isArray(r))return{};return Object.fromEntries(Object.entries(r).filter((l)=>typeof l[1]==="boolean"))}catch{return{}}}var x,{emit:z,use:O}=P(),H=()=>(x??=Z(),x);function E(i,r){return O(H)[i]??!r}function L(i,r){x={...H(),[i]:r};try{localStorage.setItem(C,JSON.stringify(x))}catch{}z()}var T=!1;function D(){if(T||typeof document>"u")return;if(T=!0,typeof CSSStyleSheet<"u"&&"adoptedStyleSheets"in Document.prototype)try{let r=new CSSStyleSheet;r.replaceSync(`
2
+ .helper-group {
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: var(--space-1);
6
+ margin: var(--space-2) 0 var(--space-2) var(--space-5);
7
+ }
8
+
9
+ .helper-head {
10
+ display: flex;
11
+ align-items: center;
12
+ gap: var(--space-2);
13
+ min-height: 2rem;
14
+ padding: 0 var(--space-2);
15
+ border: 0;
16
+ background: transparent;
17
+ color: var(--muted);
18
+ font-size: var(--text-xs);
19
+ font-weight: var(--weight-medium);
20
+ text-align: left;
21
+ }
22
+
23
+ .helper-head:hover:not(:disabled) {
24
+ background: var(--surface-2);
25
+ color: var(--text);
26
+ }
27
+
28
+ .helper-head::before {
29
+ content: "";
30
+ flex: none;
31
+ width: 0.5rem;
32
+ height: 0.5rem;
33
+ border-right: 2px solid currentColor;
34
+ border-bottom: 2px solid currentColor;
35
+ transform: rotate(-45deg);
36
+ transition: transform 120ms var(--ease-out);
37
+ }
38
+
39
+ .helper-head[aria-expanded="true"]::before {
40
+ transform: rotate(45deg);
41
+ }
42
+
43
+ .helper-list {
44
+ display: flex;
45
+ flex-direction: column;
46
+ gap: 2px;
47
+ margin: 0;
48
+ padding: 0;
49
+ list-style: none;
50
+ }
51
+
52
+ .helper-link {
53
+ display: flex;
54
+ align-items: center;
55
+ gap: var(--space-2);
56
+ min-width: 0;
57
+ min-height: var(--touch);
58
+ padding: 0 var(--space-3);
59
+ border-radius: var(--radius);
60
+ color: inherit;
61
+ text-decoration: none;
62
+ }
63
+
64
+ .helper-link:hover {
65
+ background: var(--surface-2);
66
+ }
67
+
68
+ .helper-link[aria-current="page"] {
69
+ background: var(--accent-soft);
70
+ }
71
+
72
+ .helper-link strong {
73
+ min-width: 0;
74
+ overflow: hidden;
75
+ font-weight: var(--weight-medium);
76
+ text-overflow: ellipsis;
77
+ white-space: nowrap;
78
+ }
79
+
80
+ .helper-state {
81
+ display: flex;
82
+ flex: none;
83
+ align-items: center;
84
+ gap: var(--space-2);
85
+ margin-left: auto;
86
+ color: var(--muted);
87
+ font-size: var(--text-xs);
88
+ }
89
+
90
+ .helper-link[data-finished] strong,
91
+ .helper-link[data-finished] .helper-state {
92
+ opacity: 0.6;
93
+ }
94
+
95
+ .helper-dot {
96
+ width: 0.5rem;
97
+ height: 0.5rem;
98
+ border-radius: 50%;
99
+ background: var(--accent);
100
+ animation: helper-pulse 1.2s ease-in-out infinite;
101
+ }
102
+
103
+ @keyframes helper-pulse {
104
+ 50% {
105
+ opacity: 0.35;
106
+ }
107
+ }
108
+
109
+ @media (prefers-reduced-motion: reduce) {
110
+ .helper-dot {
111
+ animation: none;
112
+ }
113
+ }
114
+ `),document.adoptedStyleSheets=[...document.adoptedStyleSheets,r];return}catch{}let i=document.createElement("style");i.textContent=`
115
+ .helper-group {
116
+ display: flex;
117
+ flex-direction: column;
118
+ gap: var(--space-1);
119
+ margin: var(--space-2) 0 var(--space-2) var(--space-5);
120
+ }
121
+
122
+ .helper-head {
123
+ display: flex;
124
+ align-items: center;
125
+ gap: var(--space-2);
126
+ min-height: 2rem;
127
+ padding: 0 var(--space-2);
128
+ border: 0;
129
+ background: transparent;
130
+ color: var(--muted);
131
+ font-size: var(--text-xs);
132
+ font-weight: var(--weight-medium);
133
+ text-align: left;
134
+ }
135
+
136
+ .helper-head:hover:not(:disabled) {
137
+ background: var(--surface-2);
138
+ color: var(--text);
139
+ }
140
+
141
+ .helper-head::before {
142
+ content: "";
143
+ flex: none;
144
+ width: 0.5rem;
145
+ height: 0.5rem;
146
+ border-right: 2px solid currentColor;
147
+ border-bottom: 2px solid currentColor;
148
+ transform: rotate(-45deg);
149
+ transition: transform 120ms var(--ease-out);
150
+ }
151
+
152
+ .helper-head[aria-expanded="true"]::before {
153
+ transform: rotate(45deg);
154
+ }
155
+
156
+ .helper-list {
157
+ display: flex;
158
+ flex-direction: column;
159
+ gap: 2px;
160
+ margin: 0;
161
+ padding: 0;
162
+ list-style: none;
163
+ }
164
+
165
+ .helper-link {
166
+ display: flex;
167
+ align-items: center;
168
+ gap: var(--space-2);
169
+ min-width: 0;
170
+ min-height: var(--touch);
171
+ padding: 0 var(--space-3);
172
+ border-radius: var(--radius);
173
+ color: inherit;
174
+ text-decoration: none;
175
+ }
176
+
177
+ .helper-link:hover {
178
+ background: var(--surface-2);
179
+ }
180
+
181
+ .helper-link[aria-current="page"] {
182
+ background: var(--accent-soft);
183
+ }
184
+
185
+ .helper-link strong {
186
+ min-width: 0;
187
+ overflow: hidden;
188
+ font-weight: var(--weight-medium);
189
+ text-overflow: ellipsis;
190
+ white-space: nowrap;
191
+ }
192
+
193
+ .helper-state {
194
+ display: flex;
195
+ flex: none;
196
+ align-items: center;
197
+ gap: var(--space-2);
198
+ margin-left: auto;
199
+ color: var(--muted);
200
+ font-size: var(--text-xs);
201
+ }
202
+
203
+ .helper-link[data-finished] strong,
204
+ .helper-link[data-finished] .helper-state {
205
+ opacity: 0.6;
206
+ }
207
+
208
+ .helper-dot {
209
+ width: 0.5rem;
210
+ height: 0.5rem;
211
+ border-radius: 50%;
212
+ background: var(--accent);
213
+ animation: helper-pulse 1.2s ease-in-out infinite;
214
+ }
215
+
216
+ @keyframes helper-pulse {
217
+ 50% {
218
+ opacity: 0.35;
219
+ }
220
+ }
221
+
222
+ @media (prefers-reduced-motion: reduce) {
223
+ .helper-dot {
224
+ animation: none;
225
+ }
226
+ }
227
+ `,document.head.append(i)}D();var I=ee(function(r){let{view:l}=r,m=l.helper?.finished===!0;return e("li",{children:n("a",{className:"helper-link",href:S("room",l.key),"data-helper":l.name,"data-finished":m?"":void 0,"aria-current":r.active?"page":void 0,children:[e(Ue,{view:l,size:20}),e("strong",{children:l.displayName}),e(Kt,{room:l.key}),n("span",{className:"helper-state",children:[r.waiting?e(Tn,{count:r.waiting}):null,!m&&!r.waiting?e("span",{className:"helper-dot",role:"img","aria-label":t("Working")}):null,m?e("span",{children:t("Ended")}):null,m&&r.at?e("span",{className:"room-row-time",children:we(r.at,r.now,r.timeZone)}):null]})]})})});function F(i){let{now:r}=te(),{timeZone:l}=_(),m=Xt(i.keys),w=m.some((h)=>h.view.helper?.finished!==!0),u=i.parent??"",v=!E(u,w)||m.some((h)=>h.key===i.active)?m:[];if(m.length===0)return null;return n("div",{className:"helper-group","data-parent":i.parent,children:[e("button",{type:"button",className:"helper-head","aria-expanded":v.length>0,onClick:()=>L(u,v.length>0),children:G(m.length,"{count} temp knight","{count} temp knights")}),v.length>0?e("ul",{className:"helper-list",children:v.map(({key:h,...y})=>e(I,{...y,active:h===i.active,now:r,timeZone:l},h))}):null]})}var M=ee(function(r){let{view:l,parent:m}=r,w=rr(l.key),u=Boolean(l.closed);return n("li",{className:"thread-item",children:[u?n("span",{className:"thread-reveal","aria-hidden":"true",children:[e(s,{name:"trash",size:18}),t("Clear")]}):null,n("div",{className:"thread-card","data-hold":"row","data-thread":l.key,"data-closed":u?"":void 0,style:w,children:[n("a",{className:"thread-link",href:S("room",l.key),"aria-current":r.active?"page":void 0,children:[m?e(Ue,{view:m,size:36}):e(s,{name:"conversations",size:20,className:"thread-row-icon"}),n("span",{className:"thread-card-main",children:[n("span",{className:"thread-card-top",children:[e("strong",{className:"thread-title",children:l.displayName}),e(Kt,{room:l.key})]}),n("span",{className:"thread-card-meta",children:[r.typing?e(Wn,{}):null,e("span",{className:u?"badge":"badge badge-accent",children:u?t("Finished"):t("In progress")}),r.waiting?e(Tn,{count:r.waiting}):null,e("span",{className:"room-row-time",children:r.at?we(r.at,r.now,r.timeZone):""})]})]})]}),u?e("button",{type:"button",className:"thread-more","aria-haspopup":"menu","aria-label":t("More actions for {name}",{name:l.displayName}),onClick:(f)=>{let v=f.currentTarget,h=v.closest(".thread-card"),y=v.getBoundingClientRect();if(h)(p("n0n603vf"),import("./chunk-thread-cards-n0n603vf.js")).then((k)=>k.openCardMenu(h,{x:y.right,y:y.bottom},"key"))},children:e(s,{name:"more",size:18})}):null]})]})});function A(i){let{now:r}=te(),{timeZone:l}=_(),m=Xt(i.open),w=m.filter((c)=>c.view.helper).map((c)=>c.key),u=m.filter((c)=>!c.view.helper),f=Xt(i.closed),v=d((c)=>i.parent?c.rooms[i.parent]?.view:void 0,i.parent??""),h=a(null),y=u.length+f.length>0;if(o(()=>{let c=h.current;if(!y||!c)return;let b=!1,N;return (p("n0n603vf"),import("./chunk-thread-cards-n0n603vf.js")).then((R)=>{if(!b)N=R.attachThreadCards(c)}),()=>{b=!0,N?.()}},[y]),!y&&w.length===0)return null;let k=({key:c,...b})=>e(M,{...b,active:c===i.active,now:r,timeZone:l,parent:v},c);if(!y)return e(F,{keys:w,parent:i.parent,active:i.active});return n(g,{children:[w.length?e(F,{keys:w,parent:i.parent,active:i.active}):null,n("div",{className:"thread-group",ref:h,"data-parent":i.parent,children:[u.length?e("ul",{className:"thread-list","aria-label":t("Dispatch threads"),children:u.map(k)}):null,f.length?n("div",{className:"thread-finished",children:[n("details",{className:"thread-closed",...f.some((c)=>c.key===i.active)?{open:!0}:{},children:[e("summary",{children:G(f.length,"{count} finished thread","{count} finished threads")}),e("ul",{className:"thread-list",children:f.map(k)})]}),e("button",{type:"button",className:"thread-clear",onClick:()=>(p("bf6vf2mt"),import("./chunk-thread-actions-bf6vf2mt.js")).then((c)=>c.clearFinished(i.parent,f.map((b)=>b.key))),children:t("Clear finished")})]}):null]})]})}export{A as default};
@@ -1 +1 @@
1
- import{o,z,a,r,t,u,g,e,n,x,y,v,m,k,T,_,re,vi}from"./chunk-index-cn49mawx.js";import{ve}from"./chunk-index-gcmmwh8t.js";import{Te}from"./chunk-index-e35v554x.js";function P({conversationKey:s}){let[c,N]=r(),p=z(),d=a(!1),{data:i,error:h}=ve(()=>y.transcript(s,c),`${s}|${c??""}`);o(()=>{if(i&&!d.current)d.current=!0,window.scrollTo(0,document.body.scrollHeight)},[i]);let w=n("a",{className:"back",href:x("conversations"),children:["← ",t("Conversations")]});if(!i)return n(g,{children:[w,h?e(m,{message:h}):e(v,{})]});let{conversation:f}=i,E=f.kind==="outside"?t("Outside AI client · {id}",{id:f.id.slice(0,8)}):vi(f);return n(g,{children:[w,n("section",{className:"stack",children:[n("div",{className:"card-head",children:[e("h2",{children:E}),f.busy>0?e(T,{tone:"busy",children:t("running")}):null]}),i.archives.length>0?n("label",{className:"inline",htmlFor:p,children:[t("Showing")," ",n(Te,{id:p,value:c??"",onChange:(l)=>{d.current=!1,N(l.target.value||void 0)},children:[e("option",{value:"",children:t("Current conversation")}),i.archives.map((l)=>e("option",{value:l,children:t("Archived {name}",{name:l})},l))]})]}):null,h?e(m,{message:h}):null,i.truncated?e("p",{className:"hint",children:t("This conversation is longer than the console reads; the oldest entries are not shown.")}):null,i.entries.length===0?e(k,{children:t("Nothing to show.")}):null,e("ol",{className:"transcript",children:i.entries.map((l,b)=>e(S,{entry:l},b))})]})]})}function S({entry:s}){let{timeZone:c}=_(),N=s.at?re(s.at,c):"";if(s.role==="tool")return e("li",{className:"entry entry-tool",children:n("details",{children:[n("summary",{children:[s.failed?t("Tool failed"):t("Tool result"),s.tool?` · ${s.tool}`:""]}),e("pre",{children:s.text||t("(empty)")})]})});return n("li",{className:`entry entry-${s.role}`,children:[n("div",{className:"entry-head",children:[e("span",{className:"role",children:t(A[s.role])}),e("span",{className:"meta",children:N})]}),s.text?e("p",{className:"text",children:s.text}):null,s.calls?.map((p,d)=>n("code",{className:"call",children:[p.name," ",p.preview]},d))]})}var A={user:u("User"),assistant:u("Knight"),tool:u("Tool"),compaction:u("Summary of earlier conversation")};export{P as TranscriptPage};
1
+ import{o,L,a,r,t,u,g,e,n,S,y,v,m,k,Q,_,oe,ki}from"./chunk-index-24cggw6k.js";import{xe}from"./chunk-index-55ps4x5n.js";import{Re}from"./chunk-index-dr0jr7d3.js";function P({conversationKey:s}){let[c,N]=r(),p=L(),d=a(!1),{data:i,error:h}=xe(()=>y.transcript(s,c),`${s}|${c??""}`);o(()=>{if(i&&!d.current)d.current=!0,window.scrollTo(0,document.body.scrollHeight)},[i]);let T=n("a",{className:"back",href:S("conversations"),children:["← ",t("Conversations")]});if(!i)return n(g,{children:[T,h?e(m,{message:h}):e(v,{})]});let{conversation:f}=i,w=f.kind==="outside"?t("Outside AI client · {id}",{id:f.id.slice(0,8)}):ki(f);return n(g,{children:[T,n("section",{className:"stack",children:[n("div",{className:"card-head",children:[e("h2",{children:w}),f.busy>0?e(Q,{tone:"busy",children:t("running")}):null]}),i.archives.length>0?n("label",{className:"inline",htmlFor:p,children:[t("Showing")," ",n(Re,{id:p,value:c??"",onChange:(l)=>{d.current=!1,N(l.target.value||void 0)},children:[e("option",{value:"",children:t("Current conversation")}),i.archives.map((l)=>e("option",{value:l,children:t("Archived {name}",{name:l})},l))]})]}):null,h?e(m,{message:h}):null,i.truncated?e("p",{className:"hint",children:t("This conversation is longer than the console reads; the oldest entries are not shown.")}):null,i.entries.length===0?e(k,{children:t("Nothing to show.")}):null,e("ol",{className:"transcript",children:i.entries.map((l,E)=>e(b,{entry:l},E))})]})]})}function b({entry:s}){let{timeZone:c}=_(),N=s.at?oe(s.at,c):"";if(s.role==="tool")return e("li",{className:"entry entry-tool",children:n("details",{children:[n("summary",{children:[s.failed?t("Tool failed"):t("Tool result"),s.tool?` · ${s.tool}`:""]}),e("pre",{children:s.text||t("(empty)")})]})});return n("li",{className:`entry entry-${s.role}`,children:[n("div",{className:"entry-head",children:[e("span",{className:"role",children:t(x[s.role])}),e("span",{className:"meta",children:N})]}),s.text?e("p",{className:"text",children:s.text}):null,s.calls?.map((p,d)=>n("code",{className:"call",children:[p.name," ",p.preview]},d))]})}var x={user:u("User"),assistant:u("Knight"),tool:u("Tool"),compaction:u("Summary of earlier conversation")};export{P as TranscriptPage};
@@ -0,0 +1,32 @@
1
+ import{o,r,G,e,n,s,d}from"./chunk-index-24cggw6k.js";import{fn,Vr,qr,bi,Ji}from"./chunk-index-a7e6rhxy.js";import{Y}from"./chunk-index-d941ae7c.js";var M=1500,E=`
2
+ .waiting-chip-slot {
3
+ position: relative;
4
+ z-index: 3;
5
+ height: 0;
6
+ }
7
+
8
+ .waiting-chip {
9
+ position: absolute;
10
+ top: var(--space-2);
11
+ left: 50%;
12
+ min-height: 2.25rem;
13
+ padding: 0 var(--space-3);
14
+ border-radius: var(--radius-full);
15
+ border-color: transparent;
16
+ background: var(--warn);
17
+ color: var(--bg);
18
+ box-shadow: var(--shadow-2);
19
+ transform: translateX(-50%);
20
+ animation: toast-in var(--dur-slow) var(--ease-spring) both;
21
+ }
22
+
23
+ .waiting-chip:hover:not(:disabled) {
24
+ background: var(--warn);
25
+ }
26
+
27
+ .slot[data-lit] > .prompt {
28
+ outline: 3px solid var(--warn);
29
+ outline-offset: 3px;
30
+ transition: outline-color var(--dur-slow) var(--ease-out);
31
+ }
32
+ `;function I(S){Y("waiting",E);let{roomKey:b,scroller:p,loaded:w}=S,c=d((t)=>fn(t).filter((a)=>a.card.room===b).map((a)=>a.id).join(" "),b),l=Vr(),[T,y]=r([]);o(()=>{let t=p.current;if(!t||!w||typeof IntersectionObserver>"u")return;let a=new Map,m=new IntersectionObserver((u)=>{for(let i of u){let f=i.target.dataset.card;if(f)a.set(f,i.isIntersecting)}y([...a].flatMap(([i,f])=>f?[]:[i]))},{root:t});for(let u of c.split(" ")){let i=u?bi(t,u):void 0;if(i)m.observe(i)}return()=>m.disconnect()},[c,p,w]),o(()=>{let t=p.current;if(!t||!w||!l||!c.split(" ").includes(l))return;let a,m=()=>{let g=bi(t,l);if(!g||g===a)return;a=g,Ji(t,l)},u=requestAnimationFrame(m),i=typeof MutationObserver>"u"?void 0:new MutationObserver(m);i?.observe(t,{childList:!0,subtree:!0});let f=setTimeout(()=>qr(l),M);return()=>{cancelAnimationFrame(u),i?.disconnect(),clearTimeout(f)}},[w,l,c,p]);let h=c?c.split(" ").length:0,[v]=T;return e("div",{className:"waiting-chip-slot",children:v&&h?n("button",{type:"button",className:"waiting-chip",onClick:()=>Ji(p.current,v),children:[e(s,{name:"shield",size:16}),G(h,"{count} card waiting for an answer","{count} cards waiting for an answer")]}):null})}export{I as default};
@@ -0,0 +1 @@
1
+ import{fn,ya,ji,Ur,Ki,Vr,qr,bi,Ji}from"./chunk-index-a7e6rhxy.js";export{bi as cardSlot,ji as closeWaitingList,Ki as jumpToCard,ya as openWaiting,Ji as showCard,qr as targetShown,Vr as useTarget,Ur as useWaitingList,fn as waitingList};
@@ -0,0 +1 @@
1
+ import{In,Dr}from"./chunk-index-ze9p4npm.js";export{In as currentQuery,Dr as followUrl};