@bivy/bivy 0.21.1 → 0.21.2-staging.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/archive-install.mjs +150 -0
- package/bin/bivy.mjs +66 -7
- package/bin/cli-commands.mjs +1 -1
- package/bin/guides/add-an-agent.md +39 -0
- package/bin/prune-sessions.mjs +46 -14
- package/dist/agent-cli.js +91 -63
- package/dist/agents/claude-code/runtime.js +19 -10
- package/dist/apps/styles.css +1 -50
- package/dist/automation-reseal.js +2 -0
- package/dist/node-config.js +18 -0
- package/dist/node-update.js +26 -1
- package/dist/plugin-cli.js +3 -4
- package/dist/plugin-sdk/manifest.js +19 -11
- package/dist/runtime/cli-parsers.js +18 -1
- package/dist/runtime/index.js +71 -41
- package/dist/server.js +38 -34
- package/dist/worktree.js +17 -0
- package/package.json +1 -1
- package/web/assets/AutomationsView-DRwMTpsz.js +51 -0
- package/web/assets/{ChangesCard-CxQKGf6b.js → ChangesCard-C5rvJ8Cq.js} +3 -3
- package/web/assets/{LibraryView-D3uu06xU.js → LibraryView-CIJ-Pfv-.js} +1 -1
- package/web/assets/ProviderConnect-DiFSOT6L.js +1 -0
- package/web/assets/SessionList-CxRibKT5.js +1 -0
- package/web/assets/{Settings-DrK5DKuy.js → Settings-BukJBTwA.js} +8 -8
- package/web/assets/{Sheet-C8gx0OoI.js → Sheet-CfbcQeWy.js} +1 -1
- package/web/assets/{Terminal-DrqMIIhr.js → Terminal-7Q0Os9n9.js} +5 -5
- package/web/assets/{VoiceSettings-CBBuyKN7.js → VoiceSettings-DwIi92pR.js} +1 -1
- package/web/assets/{abnfDiagram-VCTEODGH-CgIjZZoL.js → abnfDiagram-VCTEODGH-Czjfvfve.js} +1 -1
- package/web/assets/architecture-7GRP2DOG-DD5qRKOE.js +1 -0
- package/web/assets/{architectureDiagram-5GKGNRK7-BMOlU5hT.js → architectureDiagram-5GKGNRK7-DYay_IWI.js} +1 -1
- package/web/assets/{blockDiagram-I7D4REHJ-DkwymH1p.js → blockDiagram-I7D4REHJ-CPlmINAT.js} +1 -1
- package/web/assets/{c4Diagram-7LVT6UL2-B0UDgtWS.js → c4Diagram-7LVT6UL2-DYcLdJNN.js} +1 -1
- package/web/assets/channel-BUg-Y_4E.js +1 -0
- package/web/assets/{chunk-4HAMMTFA-1y76NzcS.js → chunk-4HAMMTFA-CdyB2GrZ.js} +1 -1
- package/web/assets/{chunk-75Z2AOVW-CPFkG_FO.js → chunk-75Z2AOVW-D7h9tbn8.js} +1 -1
- package/web/assets/{chunk-DU6HZSFF-Dy4LQ-iK.js → chunk-DU6HZSFF-BISdfBlT.js} +1 -1
- package/web/assets/{chunk-F27PBJKO-cjpOzWOK.js → chunk-F27PBJKO-2JkB2zU9.js} +1 -1
- package/web/assets/{chunk-GMAD6QVW-CpYC8bxK.js → chunk-GMAD6QVW-BfxS2p5H.js} +1 -1
- package/web/assets/{chunk-GVQU2GXP-DUT271z8.js → chunk-GVQU2GXP-vBPS78dh.js} +1 -1
- package/web/assets/{chunk-IMKFNOWR-C-G3w5yT.js → chunk-IMKFNOWR-C1PvbEPt.js} +1 -1
- package/web/assets/{chunk-L3NEJ4N5-C5N0po6u.js → chunk-L3NEJ4N5-wug0ZtiI.js} +1 -1
- package/web/assets/{chunk-OSK3NFVY-7_vZDCyQ.js → chunk-OSK3NFVY-CSx22WTp.js} +1 -1
- package/web/assets/{chunk-P2QGCYS3-BhXxw6WP.js → chunk-P2QGCYS3-BEJVL1Uw.js} +1 -1
- package/web/assets/{chunk-POPQ4Y6H-iw5O0upC.js → chunk-POPQ4Y6H-DuEsyMhL.js} +1 -1
- package/web/assets/{chunk-PWAF6VOD-C8u0Giuo.js → chunk-PWAF6VOD-DVLOKu0r.js} +1 -1
- package/web/assets/{chunk-SHT3W25Y-BM_QeCu-.js → chunk-SHT3W25Y-Opayr0C_.js} +1 -1
- package/web/assets/{chunk-SVP7TREG-cLDkReFI.js → chunk-SVP7TREG-DgHJUbyu.js} +1 -1
- package/web/assets/{chunk-TICWLB2K-C8fbKbO_.js → chunk-TICWLB2K-DOOCLkvY.js} +1 -1
- package/web/assets/classDiagram-ZZMXUADV-DPpdYhAI.js +1 -0
- package/web/assets/classDiagram-v2-VYDZK3BY-DPpdYhAI.js +1 -0
- package/web/assets/{cynefin-OW5HDTMX-6kzYNsQ0.js → cynefin-OW5HDTMX-1MBj3btC.js} +1 -1
- package/web/assets/{cynefinDiagram-5FMLGOSQ-B3tl5cyI.js → cynefinDiagram-5FMLGOSQ-Cc6rrG7K.js} +1 -1
- package/web/assets/{dagre-GXQ25YYZ-mHX4cPQQ.js → dagre-GXQ25YYZ-DFG3Ndtk.js} +1 -1
- package/web/assets/{diagram-S7CK7UJ4-DhOtHdTh.js → diagram-S7CK7UJ4-SiM6_pqS.js} +1 -1
- package/web/assets/{diagram-UQ7AKVKN-B6BD-P5q.js → diagram-UQ7AKVKN-BUI0Ju7Z.js} +1 -1
- package/web/assets/{diagram-VSXAHHWV-DWXWifeJ.js → diagram-VSXAHHWV-CXMYZkbm.js} +1 -1
- package/web/assets/{diagram-VX7I27RA-DcU0vblN.js → diagram-VX7I27RA-CNCbmY76.js} +1 -1
- package/web/assets/{diagram-Z3DM3KII-Tc32VaTG.js → diagram-Z3DM3KII-Cf3mrdyV.js} +1 -1
- package/web/assets/{ebnfDiagram-PWID7BFC-fbSC7Ytl.js → ebnfDiagram-PWID7BFC-Ban7TN8N.js} +1 -1
- package/web/assets/{erDiagram-RLTQ6QDP-VCd4vHPL.js → erDiagram-RLTQ6QDP-yDvXNUaN.js} +1 -1
- package/web/assets/eventmodeling-NTZA5JFV-BktxSOvh.js +1 -0
- package/web/assets/flowDiagram-HODETNUW-CuT_k3cJ.js +1 -0
- package/web/assets/{ganttDiagram-EL5Y4UJY-qlPJPHC9.js → ganttDiagram-EL5Y4UJY-CRtk9R_T.js} +1 -1
- package/web/assets/{gitGraph-4MIJSDKK-Frn6_UlZ.js → gitGraph-4MIJSDKK-DVCE-pa5.js} +1 -1
- package/web/assets/{gitGraphDiagram-WWUBYQGX-CJv1U3iy.js → gitGraphDiagram-WWUBYQGX-BGNEoPtQ.js} +1 -1
- package/web/assets/{index-DoVsvSyc.js → index-Bkcd452U.js} +2 -2
- package/web/assets/index-CkoStrAe.css +1 -0
- package/web/assets/{info-A6RAGUB7-x2ehGecF.js → info-A6RAGUB7-CmlSnIUY.js} +1 -1
- package/web/assets/{infoDiagram-27XIBGKW-CzHIphTX.js → infoDiagram-27XIBGKW-CV6e39nj.js} +1 -1
- package/web/assets/{ishikawaDiagram-5VMMS53U-1aIpAo5f.js → ishikawaDiagram-5VMMS53U-BZ317iz5.js} +1 -1
- package/web/assets/{journeyDiagram-3NMN7TZE-DZFs2eed.js → journeyDiagram-3NMN7TZE-aRfKE67B.js} +1 -1
- package/web/assets/{kanban-definition-UXKFOSKX-CFPF7vk4.js → kanban-definition-UXKFOSKX-DRAkPvek.js} +1 -1
- package/web/assets/{mermaid-parser.core-eET97OnM.js → mermaid-parser.core-BzKTg0uA.js} +3 -3
- package/web/assets/{mermaid.core-D-l2iyMD.js → mermaid.core-cF9385Jc.js} +4 -4
- package/web/assets/{mindmap-definition-YA3MSWOX-CzO4WiUd.js → mindmap-definition-YA3MSWOX-CLiDn2-4.js} +1 -1
- package/web/assets/mount-DdwNnK_L.js +36 -0
- package/web/assets/{packet-AYTQ26CC-DiT50-0V.js → packet-AYTQ26CC-C_A2hl_f.js} +1 -1
- package/web/assets/{pegDiagram-XKGWAZYB-DG3Ad8mS.js → pegDiagram-XKGWAZYB-DzWlf-iX.js} +1 -1
- package/web/assets/{pie-WAS4IAKB-BGJZoyxN.js → pie-WAS4IAKB-C8_wbVGt.js} +1 -1
- package/web/assets/{pieDiagram-E7YTZNPT-C_IdKjBF.js → pieDiagram-E7YTZNPT-CqlAZb6C.js} +1 -1
- package/web/assets/{quadrantDiagram-AXDQQJYC-CVvfK1li.js → quadrantDiagram-AXDQQJYC-BmL5gqum.js} +1 -1
- package/web/assets/{radar-RG4KPBEZ-C14GlZJM.js → radar-RG4KPBEZ-wXteP-ND.js} +1 -1
- package/web/assets/{railroad-74A4TZTK-Cg3OXIZS.js → railroad-74A4TZTK-CiAiQ98V.js} +1 -1
- package/web/assets/railroad-abnf-HS5TGJTU-7KYSR92O.js +1 -0
- package/web/assets/railroad-ebnf-LZEXJU2U-Dt8zrJqM.js +1 -0
- package/web/assets/railroad-peg-WCYAUIDC-NioqZSpU.js +1 -0
- package/web/assets/{railroadDiagram-O6MQD6OU-_oTlqB8E.js → railroadDiagram-O6MQD6OU-m83Fr2E6.js} +1 -1
- package/web/assets/{requirementDiagram-BXWQKSXE-6_cpGq7p.js → requirementDiagram-BXWQKSXE-DdiUlbNn.js} +1 -1
- package/web/assets/{sankeyDiagram-P5KCCOFB-CIDdTiIM.js → sankeyDiagram-P5KCCOFB-DgRmQoC3.js} +1 -1
- package/web/assets/{sequenceDiagram-WJ2MYXX4-OmglouV4.js → sequenceDiagram-WJ2MYXX4-CLvzUry_.js} +1 -1
- package/web/assets/{settingsRoute-Y4aQ907P.js → settingsRoute-CY886TNp.js} +1 -1
- package/web/assets/{stateDiagram-D77RDMKH-lmR5zsjq.js → stateDiagram-D77RDMKH-CXEsod-X.js} +1 -1
- package/web/assets/stateDiagram-v2-MP3YSRHH-sOazOE8m.js +1 -0
- package/web/assets/{swimlanes-42K2YHIH-BRP1y0vF.js → swimlanes-42K2YHIH-BIXrBhfr.js} +1 -1
- package/web/assets/swimlanesDiagram-VR7AAH4N-CEQROFH_.js +8 -0
- package/web/assets/{timeline-definition-24CTP7MA-74uE748S.js → timeline-definition-24CTP7MA-CHNGDuRJ.js} +1 -1
- package/web/assets/{treeView-Q6P3EWNA-C7rSzN0q.js → treeView-Q6P3EWNA-B5PrKFUx.js} +1 -1
- package/web/assets/{treemap-WGGIJYW6-B-Eqh7wJ.js → treemap-WGGIJYW6-CyfiLDp3.js} +1 -1
- package/web/assets/useStore-BirjskHz.js +16 -0
- package/web/assets/{vennDiagram-4TSXK5OY-9HXkWxEw.js → vennDiagram-4TSXK5OY-DsQXSlTg.js} +1 -1
- package/web/assets/{wardley-WFR3VGLG-Bvwh4mZv.js → wardley-WFR3VGLG-BzGhnDYD.js} +1 -1
- package/web/assets/{wardleyDiagram-VM6X3IG4-D_t1chE2.js → wardleyDiagram-VM6X3IG4-BIxMxWJH.js} +1 -1
- package/web/assets/{xychartDiagram-S5SC5T6Z-BwaxhGtz.js → xychartDiagram-S5SC5T6Z-B6m5ol80.js} +1 -1
- package/web/index.html +2 -2
- package/web/sw.js +1 -1
- package/web/assets/AutomationsView-Cw3-fec-.js +0 -51
- package/web/assets/ProviderConnect-BVnL5_ML.js +0 -1
- package/web/assets/SessionList-qypmhsdJ.js +0 -1
- package/web/assets/architecture-7GRP2DOG-DjnOFWJ6.js +0 -1
- package/web/assets/channel-B7AEPkF6.js +0 -1
- package/web/assets/classDiagram-ZZMXUADV-BEtpnW4V.js +0 -1
- package/web/assets/classDiagram-v2-VYDZK3BY-BEtpnW4V.js +0 -1
- package/web/assets/eventmodeling-NTZA5JFV-CYiUVM8V.js +0 -1
- package/web/assets/flowDiagram-HODETNUW-kSHsw5bd.js +0 -1
- package/web/assets/index-CtJDDeFG.css +0 -1
- package/web/assets/mount-Cnz2WLxO.js +0 -36
- package/web/assets/railroad-abnf-HS5TGJTU-CzpKO8Mq.js +0 -1
- package/web/assets/railroad-ebnf-LZEXJU2U-BBhUgg4O.js +0 -1
- package/web/assets/railroad-peg-WCYAUIDC-C2WJ96PH.js +0 -1
- package/web/assets/stateDiagram-v2-MP3YSRHH-DJ79XS5i.js +0 -1
- package/web/assets/swimlanesDiagram-VR7AAH4N-D08eaEQz.js +0 -8
- package/web/assets/useStore-TM8ZVr6X.js +0 -16
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{i as e,kt as t}from"./useStore-BirjskHz.js";import{M as n,j as r}from"./Sheet-CfbcQeWy.js";import{t as i}from"./jsx-runtime-NZYk81nU.js";import{n as a,t as o}from"./Spinner-CPdRfDcT.js";var s={shell:`Ran`,read:`Read`,write:`Created`,edit:`Edited`,search:`Searched`,fetch:`Fetched`,plan:`Planned`,delegation:`Delegated`,unknown:`Tool`};function c(e){return typeof e==`string`?e:e==null?``:String(e)}function l(e,t=120){let n=c(e);return n.length>t?n.slice(0,t-1)+`…`:n}function u(e,t=120){return l(c(e).replace(/\s+/g,` `).trim(),t)}function d(e){let t=e.length;for(;t>0&&(e[t-1]===`/`||e[t-1]===`\\`);)t--;let n=e.slice(0,t),r=Math.max(n.lastIndexOf(`/`),n.lastIndexOf(`\\`));return r>=0?n.slice(r+1):n}function f(e){let t=String(e||``).toLowerCase();return t===`stderr`||t===`stdout`||t===`agent_output`||t===`agent-output`||t===`agentoutput`?`Agent output`:t.includes(`read`)?`Read`:t.includes(`write`)?`Created`:t.includes(`edit`)?`Edited`:t.includes(`grep`)||t.includes(`search`)||t.includes(`find`)?`Searched`:t.includes(`ls`)||t.includes(`list`)?`Listed`:t.includes(`web`)||t.includes(`fetch`)?`Fetched`:t.includes(`bash`)||t.includes(`shell`)?`Ran`:e?e.charAt(0).toUpperCase()+e.slice(1):`Tool`}function p(e,t){return t||e===`Ran`||e===`Agent output`?`terminal`:e===`Edited`?`pencil`:e===`Created`?`create`:e===`Searched`?`search`:e===`Listed`?`list`:e===`Fetched`?`globe`:e===`Delegated`?`agent`:`eye`}function m(e){let t=String(e??``).replace(/\r\n/g,`
|
|
2
2
|
`);return t===``?[]:t.split(`
|
|
3
|
-
`)}function h(e,t){let n=e.length,r=t.length,i=Array.from({length:n+1},()=>Array(r+1).fill(0));for(let a=n-1;a>=0;a--)for(let n=r-1;n>=0;n--)i[a][n]=e[a]===t[n]?i[a+1][n+1]+1:Math.max(i[a+1][n],i[a][n+1]);return i}var g=900;function _(e,t){let n=m(e),r=m(t);if(n.length>g||r.length>g){let i=[];if(e)for(let e of n)i.push({type:`del`,text:e});if(t)for(let e of r)i.push({type:`add`,text:e});return i}let i=h(n,r),a=[],o=0,s=0;for(;o<n.length&&s<r.length;)n[o]===r[s]?(a.push({type:`ctx`,text:n[o]}),o++,s++):i[o+1][s]>=i[o][s+1]?(a.push({type:`del`,text:n[o]}),o++):(a.push({type:`add`,text:r[s]}),s++);for(;o<n.length;)a.push({type:`del`,text:n[o++]});for(;s<r.length;)a.push({type:`add`,text:r[s++]});return a}function v(e){let t=[],n=[],r=()=>{n.length>8?(t.push(n[0],n[1],n[2]),t.push({type:`skip`,count:n.length-6}),t.push(n[n.length-3],n[n.length-2],n[n.length-1])):t.push(...n),n=[]};for(let i of e)i.type===`ctx`?n.push(i):(r(),t.push(i));return r(),t}function y(e){let t=0,n=0;for(let r of e)r.type===`add`?t++:r.type===`del`&&n++;return{added:t,removed:n}}function b(e,t){for(let n of t)if(e?.[n]!=null&&e[n]!==``)return c(e[n])}var x=[`oldText`,`oldString`,`old_string`,`old`,`before`],S=[`newText`,`newString`,`new_string`,`new`,`after`];function C(e,t=!0){let n=Array.isArray(e?.edits)?e.edits:Array.isArray(e?.replacements)?e.replacements:Array.isArray(e?.changes)?e.changes:[e],r=[];for(let e of n){let n=b(e,x)??``,i=b(e,S)??``;if(!n&&!i)continue;let{added:a,removed:o}=t?y(_(n,i)):{added:0,removed:0};r.push({oldText:n,newText:i,added:a,removed:o})}return r}function w(e,t,n,r={}){let i=r.diffStats!==!1,a=String(e||``).toLowerCase(),o=t&&typeof t==`object`?t:{},c=f(a),u=b(o,[`path`,`file`,`filePath`,`file_path`,`pathname`]),h=b(o,[`command`,`cmd`,`shell`]),g=l(b(o,[`query`,`q`,`pattern`,`search`]),120),v=b(o,[`output`,`stdout`,`stderr`,`message`,`delta`]),x=b(o,[`stream`]),S=c===`Agent output`,w=S?`Agent output`:h||a.includes(`bash`)||a.includes(`shell`)?`Bash`:c===`Tool`?String(e||`Tool`):f(a),E=[],D;if(n?n.kind===`write`:a.includes(`write`)){let e=b(o,[`content`,`text`,`contents`,`data`,`file_text`])??``;e&&(E=[{oldText:``,newText:e,added:i?m(e.replace(/\r?\n$/,``)).length:0,removed:0,label:`New file`}])}else if(a.includes(`edit`)){let e=C(o,i);E=e,e.length>1&&(D=e.length)}let O=0,k=0;for(let e of E)O+=e.added,k+=e.removed;let A={verb:c,glyph:p(c,!!h),title:w,path:u,target:u?d(u):void 0,command:h,query:g||void 0,output:v,stream:x,added:O,removed:k,diffs:E,edits:D};if(n&&!S){if(A.verb=s[n.kind]??A.verb,A.glyph=p(A.verb,n.kind===`shell`),n.kind===`shell`)A.command=n.command,A.title=`Bash`;else if(n.kind===`read`||n.kind===`write`||n.kind===`edit`){if(A.path=n.path,A.target=d(n.path),A.title=A.verb,n.kind===`edit`&&A.diffs.length===0&&(n.oldText||n.newText)){let e=n.oldText??``,t=n.newText??``,{added:r,removed:a}=i?y(_(e,t)):{added:0,removed:0};A.diffs=[{oldText:e,newText:t,added:r,removed:a}],A.added=r,A.removed=a}}else n.kind===`search`?(A.query=n.query,A.title=`Search`,n.path&&(A.path=n.path)):n.kind===`fetch`?(A.query=n.url,A.title=`Fetch`):n.kind===`plan`?(A.title=`Plan`,n.text&&(A.query=l(n.text,120))):n.kind===`delegation`&&(A.title=n.label?`Delegated → ${n.label}`:`Delegated`,n.label&&(A.target=n.label),n.description&&(A.query=l(n.description,120)))}return n?.result&&(T(n)&&(A.isError=!0),typeof n.result.exitCode==`number`&&(A.exitCode=n.result.exitCode),n.result.truncated&&(A.truncated=!0)),A}function T(e){return!!(e?.result?.isError||typeof e?.result?.exitCode==`number`&&e.result.exitCode!==0)}function E(e){return u(e.command||e.path||e.target||e.query||e.output,120)}function D(e){let t=new Set,n=new Set,r=0,i=0,a=0,o=0;for(let s of e){let e=w(s.name,s.input,s.detail,{diffStats:!1});e.isError&&o++,e.verb===`Agent output`?i++:e.verb===`Delegated`?a++:e.command?r++:e.verb===`Edited`||e.verb===`Created`||e.diffs.length?t.add(e.path||`#${t.size}`):n.add(e.path||e.query||`#${n.size}`)}let s=t.size,c=n.size,l=[],u=(e,t,n)=>`${e===1?`a`:e} ${e===1?t:n}`;c&&l.push(`Read ${u(c,`file`,`files`)}`),r&&l.push(`ran ${u(r,`command`,`commands`)}`),s&&l.push(`edited ${u(s,`file`,`files`)}`),a&&l.push(`delegated ${u(a,`task`,`tasks`)}`),i&&l.push(i===1?`agent output`:`${i} agent output streams`);let d=o?` · ${o} failed`:``;if(!l.length)return`${e.length===1?`1 tool call`:`${e.length} tool calls`}${d}`;let f=l.join(`, `);return`${f.charAt(0).toUpperCase()}${f.slice(1)}${d}`}var O=e(),k=i(),A=28;function j(){let e=[`audio/webm;codecs=opus`,`audio/webm`,`audio/mp4`,`audio/ogg;codecs=opus`,`audio/ogg`],t=globalThis.MediaRecorder?.isTypeSupported;if(typeof t==`function`)for(let n of e)try{if(t(n))return n}catch{}return``}function M(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e=String(r.result||``);t(e.includes(`,`)?e.split(`,`).pop()||``:e)},r.onerror=()=>n(r.error||Error(`Could not read the recording.`)),r.readAsDataURL(e)})}function N(e){let t=Math.floor(e/1e3),n=Math.floor(t/60),r=t%60;return`${n}:${String(r).padStart(2,`0`)}`}function P({transcribe:e,onResult:t,onCancel:n,onError:i,stop:a=0}){let[s,c]=(0,O.useState)(0),[l,u]=(0,O.useState)(!1);r(()=>C());let d=(0,O.useRef)(null),f=(0,O.useRef)(null),p=(0,O.useRef)([]),m=(0,O.useRef)(null),h=(0,O.useRef)(null),g=(0,O.useRef)([]),_=(0,O.useRef)(!1),v=(0,O.useRef)(0);function y(){h.current!=null&&cancelAnimationFrame(h.current),h.current=null;try{f.current?.getTracks().forEach(e=>e.stop())}catch{}f.current=null;try{m.current?.close()}catch{}m.current=null}(0,O.useEffect)(()=>{let e=!1,t=navigator?.mediaDevices;if(!t?.getUserMedia||globalThis.MediaRecorder===void 0){i(`Voice input isn't supported in this browser.`),n();return}return t.getUserMedia({audio:!0}).then(t=>{if(e){t.getTracks().forEach(e=>e.stop());return}f.current=t;let n=j(),r=n?new MediaRecorder(t,{mimeType:n}):new MediaRecorder(t);d.current=r,r.ondataavailable=e=>{e.data&&e.data.size&&p.current.push(e.data)},r.onstop=()=>{if(y(),_.current)return;let e=r.mimeType||n||`audio/webm`;x(new Blob(p.current,{type:e}),e)},r.start(),v.current=Date.now(),b(t)}).catch(()=>{i(`Microphone access was denied.`),n()}),()=>{e=!0,_.current=!0;try{d.current&&d.current.state!==`inactive`&&d.current.stop()}catch{}y()}},[]),(0,O.useEffect)(()=>{let e=setInterval(()=>{v.current&&c(Date.now()-v.current)},250);return()=>clearInterval(e)},[]);function b(e){try{let t=new(window.AudioContext||window.webkitAudioContext);m.current=t;let n=t.createMediaStreamSource(e),r=t.createAnalyser();r.fftSize=64,n.connect(r);let i=new Uint8Array(r.frequencyBinCount),a=()=>{r.getByteFrequencyData(i);for(let e=0;e<A;e++){let t=g.current[e];if(!t)continue;let n=(i[Math.floor(e/A*i.length)]??0)/255;t.style.transform=`scaleY(${Math.max(.12,n)})`}h.current=requestAnimationFrame(a)};h.current=requestAnimationFrame(a)}catch{}}async function x(r,a){u(!0);try{if(!r.size)throw Error(`Nothing was recorded.`);let o=await e(await M(r),a);if(_.current)return;o?t(o):i(`No speech was detected.`),n()}catch(e){i(e instanceof Error?e.message:String(e)),n()}finally{u(!1)}}(0,O.useEffect)(()=>{a&&S()},[a]);function S(){if(l)return;let e=d.current;if(e&&e.state!==`inactive`)try{e.stop()}catch{n()}else C()}function C(){_.current=!0;try{d.current&&d.current.state!==`inactive`&&d.current.stop()}catch{}y(),n()}return(0,k.jsxs)(`div`,{className:`voice-bar`,role:`group`,"aria-label":`Voice recording`,children:[(0,k.jsx)(`button`,{type:`button`,className:`voice-btn cancel`,onClick:C,"aria-label":`Cancel recording`,children:`✕`}),(0,k.jsx)(`div`,{className:`voice-wave`,"aria-hidden":!0,children:Array.from({length:A},(e,t)=>(0,k.jsx)(`span`,{className:`voice-bar-tick`,ref:e=>{g.current[t]=e}},t))}),(0,k.jsx)(`span`,{className:`voice-time`,children:l?`…`:N(s)}),(0,k.jsx)(`button`,{type:`button`,className:`voice-btn confirm`,onClick:S,disabled:l,"aria-label":`Use recording`,children:l?(0,k.jsx)(o,{size:`sm`,tone:`inverse`}):`✓`})]})}function F(){return typeof window<`u`&&!!(window.SpeechRecognition||window.webkitSpeechRecognition)}function I({onResult:e,onCancel:t,onError:n,stop:r=0}){let[i,o]=(0,O.useState)(``),s=(0,O.useRef)(null),c=(0,O.useRef)(``),l=(0,O.useRef)(``),u=(0,O.useRef)(!1),d=r=>{if(!u.current){u.current=!0;try{r?s.current?.stop():s.current?.abort()}catch{}if(r){let t=`${c.current} ${l.current}`.trim();t?e(t):n(`No speech was detected.`)}t()}};return(0,O.useEffect)(()=>{let e=window.SpeechRecognition||window.webkitSpeechRecognition;if(!e){n(`Voice input isn't supported in this browser.`),t();return}let r=new e;s.current=r,r.continuous=!0,r.interimResults=!0;try{r.lang=navigator.language||`en-US`}catch{}r.onresult=e=>{let t=``;for(let n=e.resultIndex;n<e.results.length;n++){let r=e.results[n];r.isFinal?c.current+=r[0].transcript:t+=r[0].transcript}l.current=t,o(`${c.current} ${t}`.trim())},r.onerror=e=>{let t=e?.error;t!==`no-speech`&&t!==`aborted`&&(n(t===`not-allowed`||t===`service-not-allowed`?`Microphone access was denied.`:`Dictation error.`),d(!1))},r.onend=()=>d(!0);try{r.start()}catch{n(`Could not start dictation.`),t()}return()=>{u.current=!0;try{r.abort()}catch{}}},[]),(0,O.useEffect)(()=>{if(r)try{s.current?.stop()}catch{d(!0)}},[r]),(0,k.jsxs)(`div`,{className:`voice-bar`,role:`group`,"aria-label":`Voice dictation`,children:[(0,k.jsx)(`button`,{type:`button`,className:`voice-btn cancel`,onClick:()=>d(!1),"aria-label":`Cancel dictation`,children:`✕`}),(0,k.jsxs)(`div`,{className:`voice-listening`,children:[(0,k.jsx)(a,{status:`working`}),(0,k.jsx)(`span`,{className:`voice-listening-text`,children:i||`Listening…`})]}),(0,k.jsx)(`button`,{type:`button`,className:`voice-btn confirm`,onClick:()=>{try{s.current?.stop()}catch{d(!0)}},"aria-label":`Use dictation`,children:`✓`})]})}function L(e){return!e||e.providers.some(e=>e.configured)?`server`:F()?`webspeech`:null}var R=`Add a Groq or OpenAI key in Settings → Voice input to use voice input.`;function z({engine:e,stop:n,onResult:r,onCancel:i,onError:a}){return e===`server`?(0,k.jsx)(P,{transcribe:(e,n)=>t.transcribe(e,n),stop:n,onResult:r,onCancel:i,onError:a}):(0,k.jsx)(I,{stop:n,onResult:r,onCancel:i,onError:a})}var B=n(),V={scale:1,x:0,y:0},H=8;function U({src:e,name:t,current:n=0,count:i=1,onNavigate:a,onClose:s}){let c=(0,O.useRef)(null),l=(0,O.useRef)(null),u=(0,O.useRef)(null),[d,f]=(0,O.useState)(V),p=(0,O.useRef)(V),[m,h]=(0,O.useState)(!1),[g,_]=(0,O.useState)(!1),v=(0,O.useRef)(new Map),y=(0,O.useRef)(null);r(s);let b=(0,O.useCallback)(e=>{let t=l.current,n=u.current;if(!t||!n)return;let r=Math.max(1,Math.min(H,e.scale)),i=Math.max(0,(n.clientWidth*r-t.clientWidth)/2),a=Math.max(0,(n.clientHeight*r-t.clientHeight)/2);p.current={scale:r,x:Math.max(-i,Math.min(i,e.x)),y:Math.max(-a,Math.min(a,e.y))},f(p.current)},[]),x=(0,O.useCallback)((e,t={x:0,y:0})=>{let n=p.current,r=Math.max(1,Math.min(H,e))/n.scale;b({scale:n.scale*r,x:t.x-(t.x-n.x)*r,y:t.y-(t.y-n.y)*r})},[b]);return(0,O.useEffect)(()=>{let e=c.current,t=document.activeElement;e.focus();let n=e=>e.stopPropagation(),r=e=>{e.preventDefault(),e.stopPropagation()},i=e=>{r(e);let t=l.current.getBoundingClientRect();if(e.ctrlKey||e.metaKey)x(p.current.scale*Math.exp(-e.deltaY*.01),{x:e.clientX-t.x-t.width/2,y:e.clientY-t.y-t.height/2});else{let n=e.deltaMode===1?16:e.deltaMode===2?t.height:1;b({...p.current,x:p.current.x-e.deltaX*n,y:p.current.y-e.deltaY*n})}};e.addEventListener(`wheel`,i,{passive:!1}),e.addEventListener(`touchmove`,r,{passive:!1});for(let t of[`touchstart`,`touchend`,`touchcancel`])e.addEventListener(t,n);e.addEventListener(`gesturestart`,r),e.addEventListener(`gesturechange`,r);let a=new ResizeObserver(()=>b(p.current));return a.observe(l.current),()=>{e.removeEventListener(`wheel`,i),e.removeEventListener(`touchmove`,r);for(let t of[`touchstart`,`touchend`,`touchcancel`])e.removeEventListener(t,n);e.removeEventListener(`gesturestart`,r),e.removeEventListener(`gesturechange`,r),a.disconnect(),t?.isConnected&&t.focus({preventScroll:!0})}},[b,x]),(0,B.createPortal)((0,k.jsxs)(`div`,{ref:c,className:`image-viewer`,role:`dialog`,"aria-modal":`true`,"aria-label":`${t} — Image ${n+1} of ${i}`,tabIndex:-1,onKeyDown:e=>{if(e.key===`Tab`){let t=[...c.current.querySelectorAll(`button:not(:disabled)`)],n=t.indexOf(document.activeElement);e.preventDefault(),t[n<0?e.shiftKey?t.length-1:0:(n+(e.shiftKey?-1:1)+t.length)%t.length]?.focus();return}[`+`,`=`,`-`,`0`,`ArrowLeft`,`ArrowRight`,`ArrowUp`,`ArrowDown`].includes(e.key)&&(e.preventDefault(),e.stopPropagation(),e.key===`+`||e.key===`=`?x(p.current.scale*1.5):e.key===`-`?x(p.current.scale/1.5):e.key===`0`?b(V):p.current.scale>1?b({...p.current,x:p.current.x+(e.key===`ArrowLeft`?80:e.key===`ArrowRight`?-80:0),y:p.current.y+(e.key===`ArrowUp`?80:e.key===`ArrowDown`?-80:0)}):(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&a?.(e.key===`ArrowLeft`?-1:1))},children:[(0,k.jsxs)(`div`,{ref:l,className:`image-viewer-viewport`,"data-zoomed":d.scale>1,onDoubleClick:e=>{let t=e.currentTarget.getBoundingClientRect();x(p.current.scale>1?1:2,{x:e.clientX-t.x-t.width/2,y:e.clientY-t.y-t.height/2})},onPointerDown:e=>{if(e.button!==0)return;e.currentTarget.setPointerCapture(e.pointerId);let t={x:e.clientX,y:e.clientY};v.current.set(e.pointerId,t),y.current=v.current.size===1&&p.current.scale===1?t:null},onPointerMove:e=>{let t=v.current.get(e.pointerId);if(!t)return;let n={x:e.clientX,y:e.clientY},r=[...v.current.entries()].find(([t])=>t!==e.pointerId)?.[1];if(r){let i=Math.hypot(t.x-r.x,t.y-r.y),a=e.currentTarget.getBoundingClientRect(),o={x:(t.x+r.x)/2-a.x-a.width/2,y:(t.y+r.y)/2-a.y-a.height/2};i>0&&x(p.current.scale*Math.hypot(n.x-r.x,n.y-r.y)/i,o),b({...p.current,x:p.current.x+(n.x-t.x)/2,y:p.current.y+(n.y-t.y)/2})}else p.current.scale>1&&b({...p.current,x:p.current.x+n.x-t.x,y:p.current.y+n.y-t.y});v.current.set(e.pointerId,n)},onPointerUp:e=>{let t=y.current;if(v.current.delete(e.pointerId),y.current=null,!t||p.current.scale!==1)return;let n=e.clientX-t.x,r=e.clientY-t.y;Math.abs(n)>=48&&Math.abs(n)>Math.abs(r)&&a?.(n<0?1:-1)},onPointerCancel:()=>{v.current.clear(),y.current=null},onLostPointerCapture:e=>{v.current.delete(e.pointerId),y.current=null},children:[e&&!g&&(0,k.jsx)(`img`,{ref:u,className:`image-viewer-img`,src:e,alt:t,draggable:!1,onLoad:()=>h(!0),onError:()=>_(!0),style:{transform:`translate(${d.x}px, ${d.y}px) scale(${d.scale})`}}),g?(0,k.jsx)(`p`,{className:`image-viewer-message`,role:`alert`,children:`Unable to load image.`}):!m&&(0,k.jsx)(`span`,{role:`status`,"aria-label":`Loading image`,children:(0,k.jsx)(o,{size:`lg`,tone:`inverse`})})]}),(0,k.jsxs)(`div`,{className:`image-viewer-tools`,role:`group`,"aria-label":`Image zoom`,children:[(0,k.jsx)(`button`,{type:`button`,className:`btn icon`,"aria-label":`Zoom out`,disabled:!m||d.scale<=1,onClick:()=>x(d.scale/1.5),children:`−`}),(0,k.jsxs)(`button`,{type:`button`,className:`btn`,"aria-label":`Fit image`,disabled:!m,onClick:()=>b(V),children:[Math.round(d.scale*100),`%`]}),(0,k.jsx)(`button`,{type:`button`,className:`btn icon`,"aria-label":`Zoom in`,disabled:!m||d.scale>=H,onClick:()=>x(d.scale*1.5),children:`+`})]}),i>1&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`button`,{type:`button`,className:`image-viewer-nav prev`,"aria-label":`Previous image`,onClick:()=>a?.(-1),children:`‹`}),(0,k.jsx)(`button`,{type:`button`,className:`image-viewer-nav next`,"aria-label":`Next image`,onClick:()=>a?.(1),children:`›`}),(0,k.jsxs)(`div`,{className:`image-viewer-count`,children:[n+1,` / `,i]})]}),(0,k.jsx)(`button`,{type:`button`,className:`image-viewer-close`,onClick:s,"aria-label":`Close`,children:`×`})]}),document.body)}function W({added:e,removed:t}){return!e&&!t?null:(0,k.jsxs)(`span`,{className:`tool-stat`,children:[e>0&&(0,k.jsxs)(`span`,{className:`add`,children:[`+`,e]}),t>0&&(0,k.jsxs)(`span`,{className:`del`,children:[`−`,t]})]})}var G=420,K=(0,O.memo)(function({hunks:e,single:t,mode:n=`unified`}){let r=G;return(0,k.jsx)(`div`,{className:`diff-viewer diff-${n}`,children:e.map((i,a)=>{let o=v(_(i.oldText,i.newText)),s=[];for(let e=0;e<o.length;e++){if(r<=0){s.push((0,k.jsxs)(`div`,{className:`diff-line skip`,children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:`⋯`}),(0,k.jsx)(`span`,{children:`Diff truncated`})]},`t${a}`));break}let t=o[e];if(t.type===`skip`){s.push(n===`split`?(0,k.jsxs)(`div`,{className:`diff-row skip`,children:[(0,k.jsxs)(`div`,{className:`diff-side`,children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:`⋯`}),(0,k.jsxs)(`span`,{children:[t.count,` unchanged`]})]}),(0,k.jsxs)(`div`,{className:`diff-side`,children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:`⋯`}),(0,k.jsxs)(`span`,{children:[t.count,` unchanged`]})]})]},e):(0,k.jsxs)(`div`,{className:`diff-line skip`,children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:`⋯`}),(0,k.jsxs)(`span`,{children:[t.count,` unchanged lines`]})]},e));continue}if(r--,n===`split`){let n=t.type===`add`?null:t.text||` `,r=t.type===`del`?null:t.text||` `;s.push((0,k.jsxs)(`div`,{className:`diff-row`,children:[(0,k.jsx)(`div`,{className:`diff-side ${t.type===`del`?`del`:t.type===`ctx`?``:`empty`}`,children:n!==null&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:t.type===`del`?`−`:` `}),(0,k.jsx)(`span`,{className:`diff-code`,children:n})]})}),(0,k.jsx)(`div`,{className:`diff-side ${t.type===`add`?`add`:t.type===`ctx`?``:`empty`}`,children:r!==null&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:t.type===`add`?`+`:` `}),(0,k.jsx)(`span`,{className:`diff-code`,children:r})]})})]},e));continue}let i=t.type===`add`?`+`:t.type===`del`?`−`:` `;s.push((0,k.jsxs)(`div`,{className:`diff-line ${t.type}`,children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:i}),(0,k.jsx)(`span`,{className:`diff-code`,children:t.text||` `})]},e))}let c=e.length>1?`Hunk ${a+1}`:i.label||t||`Diff`;return(0,k.jsxs)(`div`,{className:`diff-hunk`,children:[(0,k.jsxs)(`div`,{className:`diff-hunk-title`,children:[(0,k.jsx)(`span`,{children:c}),(0,k.jsx)(W,{added:i.added,removed:i.removed})]}),s]},a)})})});function q(e){let t=[e.added?`+${e.added}`:``,e.removed?`−${e.removed}`:``].filter(Boolean).join(`/`);return`\`${e.path}\` (${e.status}${t?`, ${t}`:``})`}function J(e){return`Review the change to ${q(e)}. Explain why it changed, identify correctness or security risks, and suggest missing tests or follow-up edits.`}function Y(e,t=[]){let n=e.slice(0,30),r=e.length-n.length,i=n.map(e=>`- ${q(e)}`);r>0&&i.push(`- …and ${r} more changed file${r===1?``:`s`}`);let a=t.filter(e=>e.status===`failed`).map(e=>e.name),o=a.length?`\n\nFailed checks to investigate: ${a.join(`, `)}.`:``;return`Review this turn's code changes:\n${i.join(`
|
|
4
|
-
`)}${o}\n\nFocus on correctness, regressions, security, and missing tests. Recommend concrete fixes where needed.`}var X={added:`+`,modified:`~`,deleted:`−`};function Z(e){if(typeof e.added==`number`&&typeof e.removed==`number`)return{added:e.added,removed:e.removed};if(e.binary)return{added:0,removed:0};let t=0,n=0;for(let r of _(e.oldText,e.newText))r.type===`add`?t++:r.type===`del`&&n++;return{added:t,removed:n}}function Q(e){if(!e)return``;let t=Math.max(0,Math.round((Date.now()-e)/1e3));if(t<60)return`${t}s ago`;let n=Math.round(t/60);return n<60?`${n}m ago`:`${Math.round(n/60)}h ago`}function ee({file:
|
|
3
|
+
`)}function h(e,t){let n=e.length,r=t.length,i=Array.from({length:n+1},()=>Array(r+1).fill(0));for(let a=n-1;a>=0;a--)for(let n=r-1;n>=0;n--)i[a][n]=e[a]===t[n]?i[a+1][n+1]+1:Math.max(i[a+1][n],i[a][n+1]);return i}var g=900;function _(e,t){let n=m(e),r=m(t);if(n.length>g||r.length>g){let i=[];if(e)for(let e of n)i.push({type:`del`,text:e});if(t)for(let e of r)i.push({type:`add`,text:e});return i}let i=h(n,r),a=[],o=0,s=0;for(;o<n.length&&s<r.length;)n[o]===r[s]?(a.push({type:`ctx`,text:n[o]}),o++,s++):i[o+1][s]>=i[o][s+1]?(a.push({type:`del`,text:n[o]}),o++):(a.push({type:`add`,text:r[s]}),s++);for(;o<n.length;)a.push({type:`del`,text:n[o++]});for(;s<r.length;)a.push({type:`add`,text:r[s++]});return a}function v(e){let t=[],n=[],r=()=>{n.length>8?(t.push(n[0],n[1],n[2]),t.push({type:`skip`,count:n.length-6}),t.push(n[n.length-3],n[n.length-2],n[n.length-1])):t.push(...n),n=[]};for(let i of e)i.type===`ctx`?n.push(i):(r(),t.push(i));return r(),t}function y(e){let t=0,n=0;for(let r of e)r.type===`add`?t++:r.type===`del`&&n++;return{added:t,removed:n}}function b(e,t){for(let n of t)if(e?.[n]!=null&&e[n]!==``)return c(e[n])}var x=[`oldText`,`oldString`,`old_string`,`old`,`before`],S=[`newText`,`newString`,`new_string`,`new`,`after`];function C(e,t=!0){let n=Array.isArray(e?.edits)?e.edits:Array.isArray(e?.replacements)?e.replacements:Array.isArray(e?.changes)?e.changes:[e],r=[];for(let e of n){let n=b(e,x)??``,i=b(e,S)??``;if(!n&&!i)continue;let{added:a,removed:o}=t?y(_(n,i)):{added:0,removed:0};r.push({oldText:n,newText:i,added:a,removed:o})}return r}function w(e,t,n,r={}){let i=r.diffStats!==!1,a=String(e||``).toLowerCase(),o=t&&typeof t==`object`?t:{},c=f(a),u=b(o,[`path`,`file`,`filePath`,`file_path`,`pathname`]),h=b(o,[`command`,`cmd`,`shell`]),g=l(b(o,[`query`,`q`,`pattern`,`search`]),120),v=b(o,[`output`,`stdout`,`stderr`,`message`,`delta`]),x=b(o,[`stream`]),S=c===`Agent output`,w=S?`Agent output`:h||a.includes(`bash`)||a.includes(`shell`)?`Bash`:c===`Tool`?String(e||`Tool`):f(a),E=[],D;if(n?n.kind===`write`:a.includes(`write`)){let e=b(o,[`content`,`text`,`contents`,`data`,`file_text`])??``;e&&(E=[{oldText:``,newText:e,added:i?m(e.replace(/\r?\n$/,``)).length:0,removed:0,label:`New file`}])}else if(a.includes(`edit`)){let e=C(o,i);E=e,e.length>1&&(D=e.length)}let O=0,k=0;for(let e of E)O+=e.added,k+=e.removed;let A={verb:c,glyph:p(c,!!h),title:w,path:u,target:u?d(u):void 0,command:h,query:g||void 0,output:v,stream:x,added:O,removed:k,diffs:E,edits:D};if(n&&!S){if(A.verb=s[n.kind]??A.verb,A.glyph=p(A.verb,n.kind===`shell`),n.kind===`shell`)A.command=n.command,A.title=`Bash`;else if(n.kind===`read`||n.kind===`write`||n.kind===`edit`){if(A.path=n.path,A.target=d(n.path),A.title=A.verb,n.kind===`edit`&&A.diffs.length===0&&(n.oldText||n.newText)){let e=n.oldText??``,t=n.newText??``,{added:r,removed:a}=i?y(_(e,t)):{added:0,removed:0};A.diffs=[{oldText:e,newText:t,added:r,removed:a}],A.added=r,A.removed=a}}else n.kind===`search`?(A.query=n.query,A.title=`Search`,n.path&&(A.path=n.path)):n.kind===`fetch`?(A.query=n.url,A.title=`Fetch`):n.kind===`plan`?(A.title=`Plan`,n.text&&(A.query=l(n.text,120))):n.kind===`delegation`&&(A.title=n.label?`Delegated → ${n.label}`:`Delegated`,n.label&&(A.target=n.label),n.description&&(A.query=l(n.description,120)))}return n?.result&&(T(n)&&(A.isError=!0),typeof n.result.exitCode==`number`&&(A.exitCode=n.result.exitCode),n.result.truncated&&(A.truncated=!0)),A}function T(e){return!!(e?.result?.isError||typeof e?.result?.exitCode==`number`&&e.result.exitCode!==0)}function E(e){return u(e.command||e.path||e.target||e.query||e.output,120)}function D(e){let t=new Set,n=new Set,r=0,i=0,a=0,o=0;for(let s of e){let e=w(s.name,s.input,s.detail,{diffStats:!1});e.isError&&o++,e.verb===`Agent output`?i++:e.verb===`Delegated`?a++:e.command?r++:e.verb===`Edited`||e.verb===`Created`||e.diffs.length?t.add(e.path||`#${t.size}`):n.add(e.path||e.query||`#${n.size}`)}let s=t.size,c=n.size,l=[],u=(e,t,n)=>`${e===1?`a`:e} ${e===1?t:n}`;c&&l.push(`Read ${u(c,`file`,`files`)}`),r&&l.push(`ran ${u(r,`command`,`commands`)}`),s&&l.push(`edited ${u(s,`file`,`files`)}`),a&&l.push(`delegated ${u(a,`task`,`tasks`)}`),i&&l.push(i===1?`agent output`:`${i} agent output streams`);let d=o?` · ${o} failed`:``;if(!l.length)return`${e.length===1?`1 tool call`:`${e.length} tool calls`}${d}`;let f=l.join(`, `);return`${f.charAt(0).toUpperCase()}${f.slice(1)}${d}`}var O=t(),k=i(),A=28;function j(){let e=[`audio/webm;codecs=opus`,`audio/webm`,`audio/mp4`,`audio/ogg;codecs=opus`,`audio/ogg`],t=globalThis.MediaRecorder?.isTypeSupported;if(typeof t==`function`)for(let n of e)try{if(t(n))return n}catch{}return``}function M(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e=String(r.result||``);t(e.includes(`,`)?e.split(`,`).pop()||``:e)},r.onerror=()=>n(r.error||Error(`Could not read the recording.`)),r.readAsDataURL(e)})}function N(e){let t=Math.floor(e/1e3),n=Math.floor(t/60),r=t%60;return`${n}:${String(r).padStart(2,`0`)}`}function P({transcribe:e,onResult:t,onCancel:n,onError:i,stop:a=0}){let[s,c]=(0,O.useState)(0),[l,u]=(0,O.useState)(!1);r(()=>C());let d=(0,O.useRef)(null),f=(0,O.useRef)(null),p=(0,O.useRef)([]),m=(0,O.useRef)(null),h=(0,O.useRef)(null),g=(0,O.useRef)([]),_=(0,O.useRef)(!1),v=(0,O.useRef)(0);function y(){h.current!=null&&cancelAnimationFrame(h.current),h.current=null;try{f.current?.getTracks().forEach(e=>e.stop())}catch{}f.current=null;try{m.current?.close()}catch{}m.current=null}(0,O.useEffect)(()=>{let e=!1,t=navigator?.mediaDevices;if(!t?.getUserMedia||globalThis.MediaRecorder===void 0){i(`Voice input isn't supported in this browser.`),n();return}return t.getUserMedia({audio:!0}).then(t=>{if(e){t.getTracks().forEach(e=>e.stop());return}f.current=t;let n=j(),r=n?new MediaRecorder(t,{mimeType:n}):new MediaRecorder(t);d.current=r,r.ondataavailable=e=>{e.data&&e.data.size&&p.current.push(e.data)},r.onstop=()=>{if(y(),_.current)return;let e=r.mimeType||n||`audio/webm`;x(new Blob(p.current,{type:e}),e)},r.start(),v.current=Date.now(),b(t)}).catch(()=>{i(`Microphone access was denied.`),n()}),()=>{e=!0,_.current=!0;try{d.current&&d.current.state!==`inactive`&&d.current.stop()}catch{}y()}},[]),(0,O.useEffect)(()=>{let e=setInterval(()=>{v.current&&c(Date.now()-v.current)},250);return()=>clearInterval(e)},[]);function b(e){try{let t=new(window.AudioContext||window.webkitAudioContext);m.current=t;let n=t.createMediaStreamSource(e),r=t.createAnalyser();r.fftSize=64,n.connect(r);let i=new Uint8Array(r.frequencyBinCount),a=()=>{r.getByteFrequencyData(i);for(let e=0;e<A;e++){let t=g.current[e];if(!t)continue;let n=(i[Math.floor(e/A*i.length)]??0)/255;t.style.transform=`scaleY(${Math.max(.12,n)})`}h.current=requestAnimationFrame(a)};h.current=requestAnimationFrame(a)}catch{}}async function x(r,a){u(!0);try{if(!r.size)throw Error(`Nothing was recorded.`);let o=await e(await M(r),a);if(_.current)return;o?t(o):i(`No speech was detected.`),n()}catch(e){i(e instanceof Error?e.message:String(e)),n()}finally{u(!1)}}(0,O.useEffect)(()=>{a&&S()},[a]);function S(){if(l)return;let e=d.current;if(e&&e.state!==`inactive`)try{e.stop()}catch{n()}else C()}function C(){_.current=!0;try{d.current&&d.current.state!==`inactive`&&d.current.stop()}catch{}y(),n()}return(0,k.jsxs)(`div`,{className:`voice-bar`,role:`group`,"aria-label":`Voice recording`,children:[(0,k.jsx)(`button`,{type:`button`,className:`voice-btn cancel`,onClick:C,"aria-label":`Cancel recording`,children:`✕`}),(0,k.jsx)(`div`,{className:`voice-wave`,"aria-hidden":!0,children:Array.from({length:A},(e,t)=>(0,k.jsx)(`span`,{className:`voice-bar-tick`,ref:e=>{g.current[t]=e}},t))}),(0,k.jsx)(`span`,{className:`voice-time`,children:l?`…`:N(s)}),(0,k.jsx)(`button`,{type:`button`,className:`voice-btn confirm`,onClick:S,disabled:l,"aria-label":`Use recording`,children:l?(0,k.jsx)(o,{size:`sm`,tone:`inverse`}):`✓`})]})}function F(){return typeof window<`u`&&!!(window.SpeechRecognition||window.webkitSpeechRecognition)}function I({onResult:e,onCancel:t,onError:n,stop:r=0}){let[i,o]=(0,O.useState)(``),s=(0,O.useRef)(null),c=(0,O.useRef)(``),l=(0,O.useRef)(``),u=(0,O.useRef)(!1),d=r=>{if(!u.current){u.current=!0;try{r?s.current?.stop():s.current?.abort()}catch{}if(r){let t=`${c.current} ${l.current}`.trim();t?e(t):n(`No speech was detected.`)}t()}};return(0,O.useEffect)(()=>{let e=window.SpeechRecognition||window.webkitSpeechRecognition;if(!e){n(`Voice input isn't supported in this browser.`),t();return}let r=new e;s.current=r,r.continuous=!0,r.interimResults=!0;try{r.lang=navigator.language||`en-US`}catch{}r.onresult=e=>{let t=``;for(let n=e.resultIndex;n<e.results.length;n++){let r=e.results[n];r.isFinal?c.current+=r[0].transcript:t+=r[0].transcript}l.current=t,o(`${c.current} ${t}`.trim())},r.onerror=e=>{let t=e?.error;t!==`no-speech`&&t!==`aborted`&&(n(t===`not-allowed`||t===`service-not-allowed`?`Microphone access was denied.`:`Dictation error.`),d(!1))},r.onend=()=>d(!0);try{r.start()}catch{n(`Could not start dictation.`),t()}return()=>{u.current=!0;try{r.abort()}catch{}}},[]),(0,O.useEffect)(()=>{if(r)try{s.current?.stop()}catch{d(!0)}},[r]),(0,k.jsxs)(`div`,{className:`voice-bar`,role:`group`,"aria-label":`Voice dictation`,children:[(0,k.jsx)(`button`,{type:`button`,className:`voice-btn cancel`,onClick:()=>d(!1),"aria-label":`Cancel dictation`,children:`✕`}),(0,k.jsxs)(`div`,{className:`voice-listening`,children:[(0,k.jsx)(a,{status:`working`}),(0,k.jsx)(`span`,{className:`voice-listening-text`,children:i||`Listening…`})]}),(0,k.jsx)(`button`,{type:`button`,className:`voice-btn confirm`,onClick:()=>{try{s.current?.stop()}catch{d(!0)}},"aria-label":`Use dictation`,children:`✓`})]})}function L(e){return!e||e.providers.some(e=>e.configured)?`server`:F()?`webspeech`:null}var R=`Add a Groq or OpenAI key in Settings → Voice input to use voice input.`;function z({engine:t,stop:n,onResult:r,onCancel:i,onError:a}){return t===`server`?(0,k.jsx)(P,{transcribe:(t,n)=>e.transcribe(t,n),stop:n,onResult:r,onCancel:i,onError:a}):(0,k.jsx)(I,{stop:n,onResult:r,onCancel:i,onError:a})}var B=n(),V={scale:1,x:0,y:0},H=8;function U({src:e,name:t,current:n=0,count:i=1,onNavigate:a,onClose:s}){let c=(0,O.useRef)(null),l=(0,O.useRef)(null),u=(0,O.useRef)(null),[d,f]=(0,O.useState)(V),p=(0,O.useRef)(V),[m,h]=(0,O.useState)(!1),[g,_]=(0,O.useState)(!1),v=(0,O.useRef)(new Map),y=(0,O.useRef)(null);r(s);let b=(0,O.useCallback)(e=>{let t=l.current,n=u.current;if(!t||!n)return;let r=Math.max(1,Math.min(H,e.scale)),i=Math.max(0,(n.clientWidth*r-t.clientWidth)/2),a=Math.max(0,(n.clientHeight*r-t.clientHeight)/2);p.current={scale:r,x:Math.max(-i,Math.min(i,e.x)),y:Math.max(-a,Math.min(a,e.y))},f(p.current)},[]),x=(0,O.useCallback)((e,t={x:0,y:0})=>{let n=p.current,r=Math.max(1,Math.min(H,e))/n.scale;b({scale:n.scale*r,x:t.x-(t.x-n.x)*r,y:t.y-(t.y-n.y)*r})},[b]);return(0,O.useEffect)(()=>{let e=c.current,t=document.activeElement;e.focus();let n=e=>e.stopPropagation(),r=e=>{e.preventDefault(),e.stopPropagation()},i=e=>{r(e);let t=l.current.getBoundingClientRect();if(e.ctrlKey||e.metaKey)x(p.current.scale*Math.exp(-e.deltaY*.01),{x:e.clientX-t.x-t.width/2,y:e.clientY-t.y-t.height/2});else{let n=e.deltaMode===1?16:e.deltaMode===2?t.height:1;b({...p.current,x:p.current.x-e.deltaX*n,y:p.current.y-e.deltaY*n})}};e.addEventListener(`wheel`,i,{passive:!1}),e.addEventListener(`touchmove`,r,{passive:!1});for(let t of[`touchstart`,`touchend`,`touchcancel`])e.addEventListener(t,n);e.addEventListener(`gesturestart`,r),e.addEventListener(`gesturechange`,r);let a=new ResizeObserver(()=>b(p.current));return a.observe(l.current),()=>{e.removeEventListener(`wheel`,i),e.removeEventListener(`touchmove`,r);for(let t of[`touchstart`,`touchend`,`touchcancel`])e.removeEventListener(t,n);e.removeEventListener(`gesturestart`,r),e.removeEventListener(`gesturechange`,r),a.disconnect(),t?.isConnected&&t.focus({preventScroll:!0})}},[b,x]),(0,B.createPortal)((0,k.jsxs)(`div`,{ref:c,className:`image-viewer`,role:`dialog`,"aria-modal":`true`,"aria-label":`${t} — Image ${n+1} of ${i}`,tabIndex:-1,onKeyDown:e=>{if(e.key===`Tab`){let t=[...c.current.querySelectorAll(`button:not(:disabled)`)],n=t.indexOf(document.activeElement);e.preventDefault(),t[n<0?e.shiftKey?t.length-1:0:(n+(e.shiftKey?-1:1)+t.length)%t.length]?.focus();return}[`+`,`=`,`-`,`0`,`ArrowLeft`,`ArrowRight`,`ArrowUp`,`ArrowDown`].includes(e.key)&&(e.preventDefault(),e.stopPropagation(),e.key===`+`||e.key===`=`?x(p.current.scale*1.5):e.key===`-`?x(p.current.scale/1.5):e.key===`0`?b(V):p.current.scale>1?b({...p.current,x:p.current.x+(e.key===`ArrowLeft`?80:e.key===`ArrowRight`?-80:0),y:p.current.y+(e.key===`ArrowUp`?80:e.key===`ArrowDown`?-80:0)}):(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&a?.(e.key===`ArrowLeft`?-1:1))},children:[(0,k.jsxs)(`div`,{ref:l,className:`image-viewer-viewport`,"data-zoomed":d.scale>1,onDoubleClick:e=>{let t=e.currentTarget.getBoundingClientRect();x(p.current.scale>1?1:2,{x:e.clientX-t.x-t.width/2,y:e.clientY-t.y-t.height/2})},onPointerDown:e=>{if(e.button!==0)return;e.currentTarget.setPointerCapture(e.pointerId);let t={x:e.clientX,y:e.clientY};v.current.set(e.pointerId,t),y.current=v.current.size===1&&p.current.scale===1?t:null},onPointerMove:e=>{let t=v.current.get(e.pointerId);if(!t)return;let n={x:e.clientX,y:e.clientY},r=[...v.current.entries()].find(([t])=>t!==e.pointerId)?.[1];if(r){let i=Math.hypot(t.x-r.x,t.y-r.y),a=e.currentTarget.getBoundingClientRect(),o={x:(t.x+r.x)/2-a.x-a.width/2,y:(t.y+r.y)/2-a.y-a.height/2};i>0&&x(p.current.scale*Math.hypot(n.x-r.x,n.y-r.y)/i,o),b({...p.current,x:p.current.x+(n.x-t.x)/2,y:p.current.y+(n.y-t.y)/2})}else p.current.scale>1&&b({...p.current,x:p.current.x+n.x-t.x,y:p.current.y+n.y-t.y});v.current.set(e.pointerId,n)},onPointerUp:e=>{let t=y.current;if(v.current.delete(e.pointerId),y.current=null,!t||p.current.scale!==1)return;let n=e.clientX-t.x,r=e.clientY-t.y;Math.abs(n)>=48&&Math.abs(n)>Math.abs(r)&&a?.(n<0?1:-1)},onPointerCancel:()=>{v.current.clear(),y.current=null},onLostPointerCapture:e=>{v.current.delete(e.pointerId),y.current=null},children:[e&&!g&&(0,k.jsx)(`img`,{ref:u,className:`image-viewer-img`,src:e,alt:t,draggable:!1,onLoad:()=>h(!0),onError:()=>_(!0),style:{transform:`translate(${d.x}px, ${d.y}px) scale(${d.scale})`}}),g?(0,k.jsx)(`p`,{className:`image-viewer-message`,role:`alert`,children:`Unable to load image.`}):!m&&(0,k.jsx)(`span`,{role:`status`,"aria-label":`Loading image`,children:(0,k.jsx)(o,{size:`lg`,tone:`inverse`})})]}),(0,k.jsxs)(`div`,{className:`image-viewer-tools`,role:`group`,"aria-label":`Image zoom`,children:[(0,k.jsx)(`button`,{type:`button`,className:`btn icon`,"aria-label":`Zoom out`,disabled:!m||d.scale<=1,onClick:()=>x(d.scale/1.5),children:`−`}),(0,k.jsxs)(`button`,{type:`button`,className:`btn`,"aria-label":`Fit image`,disabled:!m,onClick:()=>b(V),children:[Math.round(d.scale*100),`%`]}),(0,k.jsx)(`button`,{type:`button`,className:`btn icon`,"aria-label":`Zoom in`,disabled:!m||d.scale>=H,onClick:()=>x(d.scale*1.5),children:`+`})]}),i>1&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`button`,{type:`button`,className:`image-viewer-nav prev`,"aria-label":`Previous image`,onClick:()=>a?.(-1),children:`‹`}),(0,k.jsx)(`button`,{type:`button`,className:`image-viewer-nav next`,"aria-label":`Next image`,onClick:()=>a?.(1),children:`›`}),(0,k.jsxs)(`div`,{className:`image-viewer-count`,children:[n+1,` / `,i]})]}),(0,k.jsx)(`button`,{type:`button`,className:`image-viewer-close`,onClick:s,"aria-label":`Close`,children:`×`})]}),document.body)}function W({added:e,removed:t}){return!e&&!t?null:(0,k.jsxs)(`span`,{className:`tool-stat`,children:[e>0&&(0,k.jsxs)(`span`,{className:`add`,children:[`+`,e]}),t>0&&(0,k.jsxs)(`span`,{className:`del`,children:[`−`,t]})]})}var G=420,K=(0,O.memo)(function({hunks:e,single:t,mode:n=`unified`}){let r=G;return(0,k.jsx)(`div`,{className:`diff-viewer diff-${n}`,children:e.map((i,a)=>{let o=v(_(i.oldText,i.newText)),s=[];for(let e=0;e<o.length;e++){if(r<=0){s.push((0,k.jsxs)(`div`,{className:`diff-line skip`,children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:`⋯`}),(0,k.jsx)(`span`,{children:`Diff truncated`})]},`t${a}`));break}let t=o[e];if(t.type===`skip`){s.push(n===`split`?(0,k.jsxs)(`div`,{className:`diff-row skip`,children:[(0,k.jsxs)(`div`,{className:`diff-side`,children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:`⋯`}),(0,k.jsxs)(`span`,{children:[t.count,` unchanged`]})]}),(0,k.jsxs)(`div`,{className:`diff-side`,children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:`⋯`}),(0,k.jsxs)(`span`,{children:[t.count,` unchanged`]})]})]},e):(0,k.jsxs)(`div`,{className:`diff-line skip`,children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:`⋯`}),(0,k.jsxs)(`span`,{children:[t.count,` unchanged lines`]})]},e));continue}if(r--,n===`split`){let n=t.type===`add`?null:t.text||` `,r=t.type===`del`?null:t.text||` `;s.push((0,k.jsxs)(`div`,{className:`diff-row`,children:[(0,k.jsx)(`div`,{className:`diff-side ${t.type===`del`?`del`:t.type===`ctx`?``:`empty`}`,children:n!==null&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:t.type===`del`?`−`:` `}),(0,k.jsx)(`span`,{className:`diff-code`,children:n})]})}),(0,k.jsx)(`div`,{className:`diff-side ${t.type===`add`?`add`:t.type===`ctx`?``:`empty`}`,children:r!==null&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:t.type===`add`?`+`:` `}),(0,k.jsx)(`span`,{className:`diff-code`,children:r})]})})]},e));continue}let i=t.type===`add`?`+`:t.type===`del`?`−`:` `;s.push((0,k.jsxs)(`div`,{className:`diff-line ${t.type}`,children:[(0,k.jsx)(`span`,{className:`diff-gutter`,children:i}),(0,k.jsx)(`span`,{className:`diff-code`,children:t.text||` `})]},e))}let c=e.length>1?`Hunk ${a+1}`:i.label||t||`Diff`;return(0,k.jsxs)(`div`,{className:`diff-hunk`,children:[(0,k.jsxs)(`div`,{className:`diff-hunk-title`,children:[(0,k.jsx)(`span`,{children:c}),(0,k.jsx)(W,{added:i.added,removed:i.removed})]}),s]},a)})})});function q(e){let t=[e.added?`+${e.added}`:``,e.removed?`−${e.removed}`:``].filter(Boolean).join(`/`);return`\`${e.path}\` (${e.status}${t?`, ${t}`:``})`}function J(e){return`Review the change to ${q(e)}. Explain why it changed, identify correctness or security risks, and suggest missing tests or follow-up edits.`}function Y(e,t=[]){let n=e.slice(0,30),r=e.length-n.length,i=n.map(e=>`- ${q(e)}`);r>0&&i.push(`- …and ${r} more changed file${r===1?``:`s`}`);let a=t.filter(e=>e.status===`failed`).map(e=>e.name),o=a.length?`\n\nFailed checks to investigate: ${a.join(`, `)}.`:``;return`Review this turn's code changes:\n${i.join(`
|
|
4
|
+
`)}${o}\n\nFocus on correctness, regressions, security, and missing tests. Recommend concrete fixes where needed.`}var X={added:`+`,modified:`~`,deleted:`−`};function Z(e){if(typeof e.added==`number`&&typeof e.removed==`number`)return{added:e.added,removed:e.removed};if(e.binary)return{added:0,removed:0};let t=0,n=0;for(let r of _(e.oldText,e.newText))r.type===`add`?t++:r.type===`del`&&n++;return{added:t,removed:n}}function Q(e){if(!e)return``;let t=Math.max(0,Math.round((Date.now()-e)/1e3));if(t<60)return`${t}s ago`;let n=Math.round(t/60);return n<60?`${n}m ago`:`${Math.round(n/60)}h ago`}function ee({file:t,mode:n}){let[r,i]=(0,O.useState)(!1),[a,o]=(0,O.useState)(!1),{added:s,removed:c}=(0,O.useMemo)(()=>Z(t),[t]);return(0,k.jsxs)(`div`,{className:`changes-file status-${t.status}`,children:[(0,k.jsxs)(`div`,{className:`changes-file-head`,children:[(0,k.jsxs)(`button`,{type:`button`,className:`changes-file-open`,onClick:()=>i(e=>!e),children:[(0,k.jsx)(`span`,{className:`changes-file-glyph`,"aria-hidden":!0,children:X[t.status]}),(0,k.jsx)(`span`,{className:`changes-file-path`,children:t.path}),(s>0||c>0)&&(0,k.jsxs)(`span`,{className:`changes-file-stat`,children:[s>0&&(0,k.jsxs)(`span`,{className:`add`,children:[`+`,s]}),c>0&&(0,k.jsxs)(`span`,{className:`del`,children:[`−`,c]})]})]}),(0,k.jsxs)(`span`,{className:`changes-file-actions`,children:[(0,k.jsx)(`button`,{type:`button`,className:`changes-file-act`,onClick:()=>e.prefillComposer(J({...t,added:s,removed:c})),title:`Ask the agent about this file`,children:`Ask`}),(0,k.jsx)(`button`,{type:`button`,className:`changes-file-act danger`,onClick:()=>{o(!0),e.revertFile(t.path,t.status===`added`?null:t.oldText)},disabled:a,title:`Revert this file to its pre-turn state`,children:a?`…`:`Revert`})]})]}),r&&!t.binary&&(0,k.jsx)(K,{hunks:[{oldText:t.oldText,newText:t.newText,added:s,removed:c,label:t.path}],mode:n}),r&&t.binary&&(0,k.jsx)(`div`,{className:`changes-binary`,children:`Binary file — not shown.`})]})}function $({node:e,byPath:t,mode:n,depth:r}){let[i,a]=(0,O.useState)(!0);if(e.type===`file`){let i=t.get(e.path);return i?(0,k.jsx)(`div`,{style:{paddingLeft:r*12},children:(0,k.jsx)(ee,{file:i,mode:n})}):null}return(0,k.jsxs)(`div`,{className:`changes-dir`,children:[(0,k.jsxs)(`button`,{type:`button`,className:`changes-dir-head`,style:{paddingLeft:r*12},onClick:()=>a(e=>!e),children:[(0,k.jsx)(`span`,{className:`changes-chevron`,"aria-hidden":!0,children:i?`▾`:`▸`}),(0,k.jsxs)(`span`,{className:`changes-dir-name`,children:[e.name,`/`]})]}),i&&e.children?.map(e=>(0,k.jsx)($,{node:e,byPath:t,mode:n,depth:r+1},e.path))]})}export{K as a,R as c,F as d,P as f,E as g,T as h,Y as i,L as l,D as m,Z as n,U as o,w as p,Q as r,z as s,$ as t,I as u};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{i as e,kt as t,t as n}from"./useStore-BirjskHz.js";import{M as r,c as i,h as a,j as o,s}from"./Sheet-CfbcQeWy.js";import{t as c}from"./jsx-runtime-NZYk81nU.js";import{a as l}from"./SessionList-CxRibKT5.js";import{t as u}from"./Spinner-CPdRfDcT.js";import{_ as d,g as f,h as p,m,p as h,v as g,y as _}from"./mount-DdwNnK_L.js";var v=t(),y=r(),b=c(),x={artifacts:{title:`Artifacts`,sub:`Files your agents sent to chats`,empty:`Reports, screenshots and builds an agent sends to a chat collect here.`},apps:{title:`Apps`,sub:`Apps your agents published`,empty:`When an agent starts a web server or publishes an app, it appears here.`}},S=()=>e.listMachineArtifacts(),C=()=>e.listMachineApps(),w=t=>e.onAppsChanged(t);function T(e,t){let{connection:r}=n(),i=[r.status===`online`?r.currentNodeId??`direct`:``,...r.nodes.filter(e=>e.online).map(e=>e.id)].join(`,`),[a,o]=(0,v.useState)({status:`loading`});return(0,v.useEffect)(()=>{let n=!0,r=0,i=t=>{let i=++r;t||o({status:`loading`}),e().then(e=>{n&&i===r&&o({status:`ready`,listing:e})},e=>{n&&i===r&&o({status:`error`,error:e instanceof Error?e.message:`Could not load.`})})};i(!1);let a=()=>{document.visibilityState===`visible`&&i(!0)};document.addEventListener(`visibilitychange`,a);let s=t?.(()=>i(!0));return()=>{n=!1,document.removeEventListener(`visibilitychange`,a),s?.()}},[i,e,t]),a}function E({view:t,onClose:r,onShowInChat:i}){let{connection:c,sessionIndex:l}=n(),u=x[t],d=(0,v.useRef)(null);s(d,d),o(r);let f=!e.direct&&c.nodes.length>1,p=({sessionId:e,nodeId:t})=>{let n=l.sessions.filter(t=>t.sessionId===e);return{session:(n.find(e=>e.nodeId===t)??n[0])?.name?.trim()||`Untitled session`,machine:f&&t?c.nodes.find(e=>e.id===t)?.name??null:null}};return(0,y.createPortal)((0,b.jsxs)(`div`,{className:`automations-view library-view`,role:`dialog`,"aria-modal":`true`,"aria-label":u.title,ref:d,tabIndex:-1,children:[(0,b.jsxs)(`header`,{className:`automations-view-head`,children:[(0,b.jsxs)(`div`,{className:`automations-view-head-text`,children:[(0,b.jsx)(`h1`,{className:`automations-view-heading`,children:u.title}),(0,b.jsx)(`p`,{className:`automations-view-sub`,children:f?`${u.sub}, on all your machines.`:`${u.sub}.`})]}),(0,b.jsx)(`div`,{className:`automations-view-head-actions`,children:(0,b.jsx)(`button`,{type:`button`,className:`btn ghost icon autom-close-btn`,onClick:r,"aria-label":`Close ${u.title.toLowerCase()}`,children:(0,b.jsx)(a,{})})})]}),(0,b.jsx)(`div`,{className:`automations-view-body library-body`,children:t===`artifacts`?(0,b.jsx)(A,{where:p,onShowInChat:i}):(0,b.jsx)(L,{where:p,onShowInChat:i})})]}),document.body)}function D({state:e,empty:t,children:n}){if(e.status===`loading`)return(0,b.jsxs)(`div`,{className:`library-state library-loading`,role:`status`,children:[(0,b.jsx)(u,{size:`md`}),(0,b.jsx)(`span`,{className:`sr-only`,children:`Loading…`})]});if(e.status===`error`)return(0,b.jsx)(`div`,{className:`banner`,"data-tone":`danger`,role:`alert`,children:(0,b.jsxs)(`div`,{className:`banner-text`,children:[(0,b.jsx)(`strong`,{children:`Couldn’t load this list`}),(0,b.jsx)(`span`,{children:e.error})]})});let{items:r,unreachable:i}=e.listing,a=i.length>0&&(0,b.jsxs)(`p`,{className:`library-note`,role:`status`,children:[`Couldn’t reach `,i.join(`, `),`. What’s on `,i.length===1?`it`:`them`,` isn’t shown.`]});return r.length===0?(0,b.jsxs)(b.Fragment,{children:[a,(0,b.jsxs)(`div`,{className:`chat-empty library-state`,children:[(0,b.jsx)(`p`,{className:`chat-empty-title`,children:`Nothing here yet`}),(0,b.jsx)(`p`,{className:`chat-empty-sub`,children:t})]})]}):(0,b.jsxs)(b.Fragment,{children:[a,n(r)]})}function O({name:e,at:t,onClick:n}){let r=l(t);return(0,b.jsxs)(`button`,{type:`button`,className:`library-source`,onClick:n,title:`Show in chat: ${e}`,children:[(0,b.jsx)(i,{size:14,"aria-hidden":!0}),(0,b.jsxs)(`span`,{className:`library-source-name`,children:[(0,b.jsx)(`span`,{className:`sr-only`,children:`Show in chat: `}),e]}),r&&(0,b.jsxs)(`span`,{className:`library-source-when`,children:[`· `,r]})]})}var k=[{id:`all`,label:`All`},{id:`image`,label:`Images`},{id:`file`,label:`Files`}];function A({where:e,onShowInChat:t}){let n=T(S),[r,i]=(0,v.useState)(`all`),[a,o]=(0,v.useState)(null),s=(0,v.useMemo)(()=>n.status===`ready`?n.listing.items:[],[n]),c=(0,v.useMemo)(()=>r===`all`?s:s.filter(e=>e.kind===r),[s,r]),l=(0,v.useMemo)(()=>c.filter(e=>e.kind===`image`),[c]),u=(0,v.useMemo)(()=>l.map(e=>({kind:`image`,name:e.name,size:e.size,mimeType:e.mimeType,hash:e.hash,createdAt:e.createdAt})),[l]),d=s.some(e=>e.kind===`image`)&&s.some(e=>e.kind===`file`);return(0,b.jsx)(D,{state:n,empty:x.artifacts.empty,children:()=>(0,b.jsxs)(b.Fragment,{children:[d&&(0,b.jsx)(`div`,{className:`library-toolbar`,children:(0,b.jsx)(`div`,{className:`segmented`,role:`tablist`,"aria-label":`Show`,children:k.map(e=>(0,b.jsx)(`button`,{type:`button`,role:`tab`,className:`seg-btn`,"aria-selected":r===e.id,onClick:()=>i(e.id),children:e.label},e.id))})}),(0,b.jsx)(`ul`,{className:`library-grid`,"aria-label":`Artifacts`,children:c.map(n=>(0,b.jsx)(M,{artifact:n,where:e(n),onView:n.kind===`image`?()=>o(l.indexOf(n)):void 0,onShowInChat:()=>t(n.sessionId,{hash:n.hash},n.nodeId)},`${n.nodeId}:${n.hash}`))}),a!==null&&(0,b.jsx)(_,{images:u,index:a,onClose:()=>o(null)})]})})}function j(e){let t=e.lastIndexOf(`.`);return t>0&&e.length-t<=6?e.slice(t+1).toUpperCase():`FILE`}function M({artifact:e,where:t,onView:n,onShowInChat:r}){let[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(!1),c=async()=>{a(!0),s(!1);let t=await h(e);a(!1),t||s(!0)},l=[e.name,t.machine&&`On ${t.machine}`,e.caption].filter(Boolean).join(`
|
|
2
2
|
`);return(0,b.jsxs)(`li`,{className:`library-tile`,children:[(0,b.jsx)(`button`,{type:`button`,className:`library-tile-preview`,onClick:n??(()=>void c()),disabled:i,"aria-busy":i,"aria-label":`${n?`View`:`Download`} ${e.name}, ${m(e.size)}${t.machine?`, on ${t.machine}`:``}`,children:e.kind===`image`?(0,b.jsx)(P,{artifact:e}):(0,b.jsx)(N,{name:e.name})}),(0,b.jsxs)(`div`,{className:`library-tile-caption`,children:[(0,b.jsx)(`span`,{className:`library-tile-name`,title:l,children:e.name}),(0,b.jsx)(O,{name:t.session,at:e.createdAt,onClick:r}),o&&(0,b.jsx)(`span`,{className:`library-tile-note`,role:`status`,children:`Not available right now.`})]})]})}function N({name:e}){return(0,b.jsxs)(`span`,{className:`library-tile-file`,"aria-hidden":!0,children:[(0,b.jsxs)(`svg`,{viewBox:`0 0 24 24`,width:`28`,height:`28`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,b.jsx)(`path`,{d:`M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z`}),(0,b.jsx)(`path`,{d:`M14 3v5h5`})]}),(0,b.jsx)(`span`,{className:`library-tile-ext`,children:j(e)})]})}function P({artifact:e}){let t=p(e);return t.status===`ready`?(0,b.jsx)(`img`,{src:t.url,alt:``,loading:`lazy`}):(0,b.jsx)(`span`,{className:`library-tile-ext`,"aria-hidden":!0,children:t.status===`unavailable`?`Unavailable`:``})}var F={requests:`Requests`,data:`Data`,logs:`Logs`};function I(e){if(e.views.length!==1)return`${e.views.length} views`;let t=e.views[0];return t.kind===`terminal`?`Terminal`:t.kind===`backend`?F[t.backend]:t.source===`display`?`Desktop app`:`Web app`}function L({where:e,onShowInChat:t}){let n=T(C,w),[r,i]=(0,v.useState)(null),a=e=>t(e.sessionId,{appId:e.id},e.nodeId);return(0,b.jsx)(D,{state:n,empty:x.apps.empty,children:t=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`ul`,{className:`apps-list`,"aria-label":`Apps`,children:t.map(t=>{let n=e(t);return(0,b.jsx)(`li`,{className:`apps-card`,children:(0,b.jsx)(d,{tile:g(t.name),name:t.name,meta:[I(t),n.machine].filter(Boolean).join(` · `),detail:(0,b.jsx)(O,{name:n.session,at:t.createdAt,onClick:()=>a(t)}),action:(0,b.jsx)(`button`,{type:`button`,className:`btn sm primary`,onClick:()=>i(t),"aria-label":`Open ${t.name}`,children:`Open`})})},`${t.nodeId}:${t.id}`)})}),r&&(0,b.jsx)(f,{sessionId:r.sessionId,appId:r.id,nodeId:r.nodeId,onOpenInChat:()=>a(r),onClose:()=>i(null)})]})})}export{E as LibraryView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as e,N as t}from"./index-Bkcd452U.js";import{i as n,k as r,kt as i}from"./useStore-BirjskHz.js";import{t as a}from"./jsx-runtime-NZYk81nU.js";var o=[{id:`read-only`,label:`Read-only`,hint:`Read the workspace; no writes, no network.`},{id:`workspace-write`,label:`Workspace write`,hint:`Read and write inside the workspace.`},{id:`danger-full-access`,label:`Full access`,hint:`No in-agent sandbox — the agent can do anything (opt-out).`}];function s(e){if(!e)return!0;let t=e.capabilities||{};return e.protectionLevel===`native-sandbox`||t.toolInterception===!0||t.mcpToolApprovals===!0}var c=i(),l=`bivy:run-place`,u=`bivy:connect-ai-done`;function d(){let e=localStorage.getItem(l);return e===`cloud`||e===`own`?e:null}function f(e){e?localStorage.setItem(l,e):localStorage.removeItem(l)}function p(){return localStorage.getItem(u)===`1`}function m(){localStorage.setItem(u,`1`)}function h(e,t=d()){return t!==`cloud`&&!e?.startsWith(`eph-`)?`node`:void 0}var g=[{provider:`anthropic`,name:`Claude`,plan:`Pro or Max plan`},{provider:`openai-codex`,name:`ChatGPT`,plan:`Plus or Pro plan`}],_=(e,t)=>{let n=e.credentialRequirements?.providers??[];return n.includes(t)||n.includes(r(t))};function v(e,t,n){if(n.length===0)return;let r=e.filter(e=>String(e.status??`available`)===`available`),i=r.find(e=>e.id===t);if(!i||i.credentialRequirements?.providers?.length&&!n.some(e=>_(i,e)))for(let e of n){let t=r.find(t=>_(t,e));if(t)return t}}var y=a();function b(){let r=n.store.getState().presentation.oauth,[i,a]=(0,c.useState)(``),[o,s]=(0,c.useState)(!1),[l,u]=(0,c.useState)(!1),[d,f]=(0,c.useState)(!1),[p,m]=(0,c.useState)(null);if(!r)return null;let h=r.authUrl||r.deviceCode?.verificationUri,g=!!r.deviceCode,_=!g&&r.canOpenOnNode===!0,v=r.nodeName||`your machine`,b=async()=>{u(!0),m(null);try{let e=await n.openOauthOnNode(r.id);f(e.opened),e.opened||(m(e.error||`Could not open a browser on ${v}.`),s(!0))}catch(e){m(e instanceof Error?e.message:String(e)),s(!0)}finally{u(!1)}},x=()=>{s(!0),h&&(e?t(h).catch(()=>m(`Could not open the browser.`)):window.open(h,`_blank`,`noopener`))},S=async()=>{try{let e=(await navigator.clipboard.readText()).trim();e&&(a(e),n.submitOauthCode(r.id,e))}catch{m(`Clipboard access was blocked. Paste the redirect URL below instead.`)}};return(0,y.jsxs)(`div`,{className:`settings-form`,children:[r.error&&(0,y.jsx)(`div`,{className:`banner inline`,"data-tone":`danger`,role:`alert`,children:r.error}),p&&(0,y.jsx)(`div`,{className:`banner inline`,"data-tone":`danger`,role:`alert`,children:p}),g&&h&&(0,y.jsx)(`a`,{className:`btn primary block`,href:h,target:`_blank`,rel:`noopener`,children:`Continue on this device`}),r.deviceCode?.userCode&&(0,y.jsxs)(`p`,{className:`muted`,children:[`Code: `,(0,y.jsx)(`strong`,{children:r.deviceCode.userCode})]}),_&&!o&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(`button`,{className:`btn primary block`,disabled:l||d,onClick:()=>void b(),children:l?`Opening…`:d?`Opened on ${v}`:`Open sign-in on ${v}`}),(0,y.jsx)(`p`,{className:`muted`,children:`The provider will return directly to Bivy on that machine. This page updates automatically.`}),!d&&(0,y.jsx)(`button`,{className:`btn link`,onClick:x,children:`Use this device instead`})]}),!g&&(!_||o)&&(0,y.jsxs)(y.Fragment,{children:[!o&&h&&(0,y.jsx)(`a`,{className:`btn primary block`,href:h,target:`_blank`,rel:`noopener`,children:`Continue on this device`}),(0,y.jsx)(`p`,{className:`muted`,children:`After approval, the provider may show a code or stop on a redirect page. Copy the code or full URL, return here, then paste it.`}),typeof navigator<`u`&&navigator.clipboard&&(0,y.jsx)(`button`,{className:`btn`,onClick:()=>void S(),children:`Paste redirect from clipboard`}),(0,y.jsx)(`label`,{className:`field-label`,htmlFor:`oauth-redirect-code`,children:`Redirect URL or authorization code`}),(0,y.jsx)(`input`,{id:`oauth-redirect-code`,className:`picker-search`,value:i,onChange:e=>a(e.target.value)}),(0,y.jsx)(`button`,{className:`btn primary`,disabled:!i.trim(),onClick:()=>n.submitOauthCode(r.id,i.trim()),children:`Submit`})]}),(0,y.jsx)(`p`,{className:`muted`,role:`status`,children:r.status||`Waiting for sign-in…`})]})}function x({state:e,providerId:t,apiKeyProvider:r,keyOnly:i=!1}){let a=()=>h(e.connection.currentNodeId),[o,s]=(0,c.useState)(``),[l,u]=(0,c.useState)(!1),[d,f]=(0,c.useState)(null),p=e.catalogs.providers.find(e=>e.id===t),m=p?.name||t,g=r||t;return p?.configured?(0,y.jsx)(`div`,{className:`settings-form`,children:(0,y.jsxs)(`p`,{className:`muted`,children:[m,` is already connected.`]})}):e.presentation.oauth&&e.presentation.oauth.provider===t?(0,y.jsx)(b,{}):(0,y.jsxs)(`div`,{className:`settings-form`,children:[d&&(0,y.jsx)(`div`,{className:`banner inline`,"data-tone":`danger`,role:`alert`,children:d}),p?.oauth&&!i&&(0,y.jsxs)(`button`,{className:`btn primary block`,onClick:()=>n.startOauth(t,void 0,a()),children:[`Sign in with `,m]}),(0,y.jsx)(`label`,{className:`field-label`,children:`API key`}),(0,y.jsx)(`input`,{className:`picker-search`,type:`password`,value:o,placeholder:`Paste API key`,onChange:e=>s(e.target.value)}),(0,y.jsx)(`div`,{className:`row-actions`,children:(0,y.jsx)(`button`,{className:`btn primary`,disabled:!o.trim()||l,onClick:async()=>{u(!0),f(null);try{let e=a();await n.setCredential(g,`default`,{key:o.trim(),...e?{sync:e}:{}}),e||await n.setEphemeralModelKey(g,o.trim(),`account`,`default`).catch(()=>{}),s(``),n.listProviders()}catch(e){f(e instanceof Error?e.message:String(e))}finally{u(!1)}},children:`Save key`})})]})}export{p as a,f as c,s as d,v as i,h as l,x as n,d as o,g as r,m as s,b as t,o as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{I as e}from"./index-Bkcd452U.js";import{F as t,M as n,P as r,bt as i,i as a,kt as o,n as s,t as c}from"./useStore-BirjskHz.js";import{O as l,a as u,l as d}from"./Sheet-CfbcQeWy.js";import{t as f}from"./jsx-runtime-NZYk81nU.js";import{n as p}from"./Spinner-CPdRfDcT.js";var m=o();function h(e){return e.needsAction||e.status===`needs_action`?`needs-action`:e.status===`working`?`working`:e.status===`failed`?`failed`:e.status===`saved`?`saved`:`idle`}function g(e){return _(e)?`unseen`:h(e)}function _(e){return e.status!==`idle`||e.finishedAt==null?!1:e.lastSeenAt==null||e.finishedAt>e.lastSeenAt}function v(e){return e.needsAction||e.status===`needs_action`?3:e.status===`failed`?2:+!!_(e)}function y(e){return e.needsAction||e.status===`needs_action`?`Waiting for you`:e.status===`working`?`Working`:e.status===`failed`?`Failed`:e.finishedAt==null?e.status===`saved`?`Saved`:`Open`:`Finished`}function b(e){return e.needsAction||e.status===`needs_action`?`Needs your response`:e.state?.agent===`waiting`?`Waiting for background tasks`:e.status===`working`?`Agent working`:e.status===`failed`?`Last turn failed`:e.status===`saved`?`Saved`:_(e)?`Finished · new`:`Open`}function x(e){let t=new Map;for(let n of e??[]){let e=n.output?.sessionId;if(!e||n.targetKind===`existing_session`||n.targetSessionId===e)continue;let r=t.get(e);(!r||n.createdAt<r.createdAt)&&t.set(e,n)}return new Map([...t].map(([e,t])=>[e,w(t.source)]))}var ee={kind:`cli`,label:`Terminal · bivy run`,automation:!1};function S(e){return(e.source??``).trim()===`cli`&&e.status===`working`}function C(e){return(e.source??``).trim()===`cli:log`}function w(e){let t=(e??``).trim();return t.startsWith(`issue:`)||t===`queue:github:issue`||t.startsWith(`github:issue`)?{kind:`github-issue`,label:`GitHub · labelled issue`,automation:!0}:t===`queue:github:comment`||t===`github:comment`?{kind:`github-mention`,label:`GitHub · @-mention`,automation:!0}:t===`queue:slack`||t===`slack`?{kind:`slack`,label:`Slack request`,automation:!0}:t===`queue:linear:issue`||t===`linear:issue`?{kind:`linear`,label:`Linear issue`,automation:!0}:t===`queue:schedule`||t===`schedule`?{kind:`schedule`,label:`Scheduled run`,automation:!0}:t===`queue:webhook`||t===`webhook`||t.startsWith(`automation:`)||t.startsWith(`queue:automation:`)?{kind:`webhook`,label:`Webhook`,automation:!0}:t===`queue:manual`||t===`manual`?{kind:`manual`,label:`Manual run`,automation:!0}:t===`cli`||t===`cli:log`?ee:{kind:`app`,label:`App session`,automation:!1}}function T(e){switch(e){case`github-issue`:case`github-mention`:return`GitHub`;case`slack`:return`Slack`;case`linear`:return`Linear`;case`schedule`:return`Schedule`;case`webhook`:return`Webhook`;case`manual`:return`Manual`;case`cli`:return`CLI`;case`app`:return`App`}}var E=f();function D({kind:e}){switch(e){case`github-issue`:case`github-mention`:return(0,E.jsx)(`svg`,{viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":!0,children:(0,E.jsx)(`path`,{d:`M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0016 8c0-4.42-3.58-8-8-8z`})});case`slack`:return(0,E.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":!0,children:(0,E.jsx)(`path`,{d:`M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.528 2.528 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.528 2.528 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z`})});case`linear`:return(0,E.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":!0,children:(0,E.jsx)(`path`,{d:`M.403 13.517c-.06-.213.19-.365.347-.207l9.94 9.94c.157.157.006.407-.207.347C5.24 22.293 1.707 18.76.403 13.517zM.004 10.62a.19.19 0 0 0 .056.148l13.117 13.117a.19.19 0 0 0 .148.056 11.9 11.9 0 0 0 1.951-.324.19.19 0 0 0 .09-.32L.648 8.58a.19.19 0 0 0-.32.089c-.157.636-.266 1.288-.324 1.95zM1.036 6.926a.19.19 0 0 0 .038.22l15.78 15.78a.19.19 0 0 0 .22.038 12 12 0 0 0 1.463-.842.19.19 0 0 0 .03-.297L2.175 5.433a.19.19 0 0 0-.297.03 12 12 0 0 0-.842 1.463zM2.658 4.5a.19.19 0 0 1-.02-.245C4.847 1.203 8.194 0 12 0 18.627 0 24 5.373 24 12c0 3.806-1.203 7.153-4.255 9.362a.19.19 0 0 1-.245-.02L2.658 4.5z`})});case`schedule`:return(0,E.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:[(0,E.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,E.jsx)(`path`,{d:`M12 7.5V12l3 2`})]});case`webhook`:return(0,E.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:[(0,E.jsx)(`circle`,{cx:`6`,cy:`6.5`,r:`2.6`}),(0,E.jsx)(`circle`,{cx:`18`,cy:`9.5`,r:`2.6`}),(0,E.jsx)(`circle`,{cx:`9.5`,cy:`18`,r:`2.6`}),(0,E.jsx)(`path`,{d:`M7.6 8.6 8.9 15.4M8.3 6.9 15.4 8.6M16.2 11.8 11.4 16.4`})]});case`manual`:return(0,E.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:(0,E.jsx)(`path`,{d:`M5.5 3.7 18 11l-5 1.4 2.7 5.6-2.4 1.1-2.7-5.6L5.2 18z`})});case`cli`:return(0,E.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:(0,E.jsx)(`path`,{d:`M5 7l4 4-4 4M12 16h6`})});case`app`:return(0,E.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:(0,E.jsx)(`path`,{d:`M4 5.5h16v10.5H9l-4 3.5v-3.5H4z`})})}}function te({kind:e,size:t=`md`,status:n,title:r}){return(0,E.jsxs)(`span`,{className:`source-mark${t===`md`?``:` ${t}`}${n?` has-status`:``}`,title:r,"aria-hidden":!0,children:[(0,E.jsx)(D,{kind:e}),n&&(0,E.jsx)(p,{status:n})]})}function O(e){let t=new Map;for(let n of e??[]){let e=n.output?.sessionId;e&&!t.has(e)&&t.set(e,n)}return t}function k(e){let t=e.checks;if(!t||t.length===0)return null;let n=0,r=0,i=0;for(let e of t)e.status===`passed`?n++:e.status===`failed`?r++:i++;return{passed:n,failed:r,skipped:i,total:t.length}}function A(e){let t=e.startedAt??e.claimedAt,n=e.completedAt;if(!t||!n)return null;let r=new Date(n).getTime()-new Date(t).getTime();if(!Number.isFinite(r)||r<0)return null;let i=Math.round(r/1e3);if(i<60)return`${i}s`;let a=Math.round(i/60);if(a<60)return`${a}m`;let o=Math.floor(a/60),s=a%60;return s?`${o}h ${s}m`:`${o}h`}function j(e){return[...e.events??[]].reverse().find(e=>e.kind===`retry`||e.kind===`fallback`)?.summary||null}function M(e){let t=e.output;return t?t.prUrl?{label:`Pull request`,url:t.prUrl}:t.artifactUrl?{label:`Artifact`,url:t.artifactUrl}:t.branch?{label:`branch ${t.branch}`}:t.commit?{label:`commit ${t.commit.slice(0,12)}`}:null:null}function N(e){return(e.checks??[]).filter(e=>e.status===`failed`).map(e=>e.name)}function P(e){let t=i(e);return t.terminal?t.kind===`checks_failed`||t.kind===`agent_failed`||t.kind===`timed_out`?[`fix`,`retry`,`fork`]:t.reviewable?[`fork`]:[]:[]}function ne(t){if(!t)return null;if(t.status===`failed`){let e=(t.checks??[]).find(e=>e.status===`failed`);return e?{text:`${e.name} failed`,tone:`danger`}:{text:t.output?.failure||`run failed`,tone:`danger`}}if(t.status===`needs_attention`){let n=[...t.events??[]].reverse().find(e=>e.kind===`needs_attention`||e.kind===`approval`||e.kind===`policy_denial`);return{text:e(n?.summary||t.routingReason||`needs your input`),tone:`warn`}}return null}function F(e,t=new Date){if(e==null)return`Older`;let n=new Date(e);if(Number.isNaN(n.getTime()))return`Older`;let r=new Date(t.getFullYear(),t.getMonth(),t.getDate()),i=new Date(n.getFullYear(),n.getMonth(),n.getDate()),a=Math.round((r.getTime()-i.getTime())/864e5);return a<=0?`Today`:a===1?`Yesterday`:a<7?`Previous 7 days`:`Older`}function re(e){let t=new Set(e.map(e=>e.sessionId)),n=new Map,r=[];for(let i of e){let e=i.delegatedFrom?.sessionId;e&&e!==i.sessionId&&t.has(e)?n.set(e,[...n.get(e)??[],i]):r.push(i)}return r.flatMap(e=>[e,...(n.get(e.sessionId)??[]).map(t=>({...t,nestedUnder:e.sessionId}))])}var I=new Set([`working`,`needs-action`,`failed`,`unseen`]);function L({status:e,srLabel:t}){return(0,E.jsxs)(E.Fragment,{children:[I.has(e)&&(0,E.jsx)(`span`,{className:`row-status`,children:(0,E.jsx)(p,{status:e})}),(0,E.jsx)(`span`,{className:`sr-only`,children:t})]})}function R(){return(0,E.jsx)(`svg`,{className:`gh-icon`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":!0,children:(0,E.jsx)(`path`,{d:`M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0016 8c0-4.42-3.58-8-8-8z`})})}var z={open:{label:`Open pull request`,tone:`ok`,paths:[`M13 6h3a2 2 0 0 1 2 2v7`,`M6 9v12`]},merged:{label:`Merged`,tone:`merged`,paths:[`M6 21V9a9 9 0 0 0 9 9`]},closed:{label:`Closed pull request`,tone:void 0,paths:[`M6 9v12`,`m21 3-6 6`,`m21 9-6-6`,`M18 11.5V15`]}};function ie({prs:e}){let t=r(e);if(!t)return null;let n=z[t.state===`merged`||t.state===`closed`?t.state:`open`],i=e&&e.length>1?e.length:0,a=i?`${n.label} · ${i} pull requests`:n.label;return(0,E.jsxs)(s,{tone:n.tone,variant:`soft`,className:`session-pr`,title:a,children:[(0,E.jsxs)(`svg`,{className:`pr-glyph`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:[(0,E.jsx)(`circle`,{cx:`6`,cy:`6`,r:`3`}),(0,E.jsx)(`circle`,{cx:`18`,cy:`18`,r:`3`}),n.paths.map(e=>(0,E.jsx)(`path`,{d:e},e))]}),i>0&&(0,E.jsx)(`span`,{className:`session-pr-text`,"aria-hidden":!0,children:i}),(0,E.jsx)(`span`,{className:`sr-only`,children:a})]})}function B(e){if(e==null)return 0;let t=typeof e==`number`?e:new Date(e).getTime();return Number.isFinite(t)?t:0}function V(e){let t=B(e);if(!t)return``;let n=Math.max(0,Math.round((Date.now()-t)/1e3));if(n<60)return`now`;let r=Math.round(n/60);if(r<60)return`${r}m`;let i=Math.round(r/60);if(i<24)return`${i}h`;let a=Math.round(i/24);return a<7?`${a}d`:`${Math.round(a/7)}w`}function ae(e){return t(e.source)||n(e.source)?.repo||``}function oe(e,r){let i=t(e.source)||n(e.source)?.repo||``,a=e.branch||``,o=String(e.name||``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``),s=a.toLowerCase().split(`/`).pop()?.replace(/-[a-f0-9]{5,}$/i,``)||``,c=a&&s!==o?a:``,l=w(e.source),u=i||(l.automation?``:H(e.source));return[l.automation?T(l.kind):null,e.forkedFrom?`Forked`:null,e.delegatedFrom?`Delegated`:null,e.agentName,r,u,c].filter(Boolean).join(` · `)}function H(e){let t=n(e);if(t)return`${t.repo} #${t.issueNumber}`;if(typeof e==`string`&&e.startsWith(`queue:`)){let t=e.slice(6);return t===`slack`?`Slack`:t===`github:comment`?`GitHub @-mention`:t===`github:issue`?`GitHub issue`:t.startsWith(`agent-delegation:`)?``:t||`Queue`}return``}var U=10,se=[{view:`artifacts`,label:`Artifacts`,icon:(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`path`,{d:`M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z`}),(0,E.jsx)(`path`,{d:`M14 3v5h5`}),(0,E.jsx)(`path`,{d:`M9 13h6M9 17h4`})]})},{view:`apps`,label:`Apps`,icon:(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`rect`,{x:`4`,y:`4`,width:`6.5`,height:`6.5`,rx:`1.5`}),(0,E.jsx)(`rect`,{x:`13.5`,y:`4`,width:`6.5`,height:`6.5`,rx:`1.5`}),(0,E.jsx)(`rect`,{x:`4`,y:`13.5`,width:`6.5`,height:`6.5`,rx:`1.5`}),(0,E.jsx)(`rect`,{x:`13.5`,y:`13.5`,width:`6.5`,height:`6.5`,rx:`1.5`})]})}];function W({onPick:e,onPickTerminal:t,runEvidence:n,sessionSources:r,onOpenAutomations:i,automationsActive:o,onOpenLibrary:f,libraryActive:p,onOpenTerminal:h,terminalDisabled:_}){let{sessionIndex:{sessions:y,runTerminals:x},activeSession:{activeSessionId:S},connection:{nodes:C,currentNodeId:T}}=c(),[D,O]=(0,m.useState)(``),[k,A]=(0,m.useState)(null),[j,M]=(0,m.useState)(null),[N,P]=(0,m.useState)(``),[I,R]=(0,m.useState)(``),[z,H]=(0,m.useState)(!1),[W,G]=(0,m.useState)(U),K=(0,m.useRef)(null);(0,m.useEffect)(()=>{if(!z)return;let e=e=>{K.current&&!K.current.contains(e.target)&&H(!1)},t=e=>{e.key===`Escape`&&H(!1)};return document.addEventListener(`click`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`click`,e),document.removeEventListener(`keydown`,t)}},[z]),(0,m.useEffect)(()=>{let e=setInterval(()=>{document.visibilityState!==`hidden`&&a.refreshSessions()},6e4);return()=>clearInterval(e)},[]),(0,m.useEffect)(()=>{a.refreshSessions()},[]);let q=e=>a.direct||!e?null:C.find(t=>t.id===e)?.name||e,J=e=>C.length>1?q(e):null,Y=(0,m.useMemo)(()=>Array.from(new Set(y.map(ae).filter(Boolean))).sort((e,t)=>e.localeCompare(t)),[y]),X=(0,m.useMemo)(()=>{if(N)return[];let e=x;I&&(e=e.filter(e=>(e.nodeId||T)===I));let t=D.trim().toLowerCase();return t&&(e=e.filter(e=>`${e.name??``} ${e.label??``} ${e.agent??``} ${e.workspace??``}`.toLowerCase().includes(t))),[...e].sort((e,t)=>B(t.lastActivityAt??t.createdAt)-B(e.lastActivityAt??e.createdAt))},[x,D,N,I,T]),Z=(0,m.useMemo)(()=>{let e=D.trim().toLowerCase(),t=new Set(x.map(e=>e.sessionId).filter(Boolean));return re([...y.filter(n=>{if(t.has(n.sessionId))return!1;let r=ae(n);if(I&&n.nodeId!==I||N&&r!==N)return!1;let i=a.direct||!n.nodeId?``:C.find(e=>e.id===n.nodeId)?.name||``,o=[n.name,n.source,n.agentName,r,n.branch,n.nodeId,i].filter(Boolean).join(` `);return!e||o.toLowerCase().includes(e)})].sort((e,t)=>v(t)-v(e)||B(t.updatedAt)-B(e.updatedAt)))},[y,x,C,D,N,I]),ce=N.length>0||I.length>0,Q=D.trim().length>0||ce?Z:Z.slice(0,W),le=Z.length-Q.length;(0,m.useEffect)(()=>{G(U)},[D,N,I]);let $=+!!N+ +!!I,ue=[I?q(I):a.direct?null:`All machines`,N||null].filter(Boolean).join(` · `),de=D.trim()||N||I?`No matching sessions.`:`No sessions yet. Start one with New session.`,fe=e=>{let t=String(e.workspace||``).replace(/[\\/]+$/,``).split(/[\\/]/).pop();return[e.label||e.agent,J(e.nodeId||T||void 0),t].filter(Boolean).join(` · `)};return(0,E.jsxs)(`div`,{className:`session-list`,children:[k&&(0,E.jsx)(u,{title:`Delete saved session?`,message:`Delete “${k.name}” and its saved Cloud history? This can't be undone.`,confirmLabel:`Delete`,danger:!0,onCancel:()=>A(null),onConfirm:()=>{let e=k.sessionId;A(null),M(e),a.deleteSession(e).catch(()=>a.store.setError(`Couldn't delete the session.`)).finally(()=>M(null))}}),(i||f||h)&&(0,E.jsxs)(`nav`,{className:`sidebar-nav`,"aria-label":`Workspace`,children:[i&&(0,E.jsxs)(`button`,{className:`sidebar-nav-item${o?` active`:``}`,onClick:i,"aria-current":o?`page`:void 0,children:[(0,E.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`20`,height:`20`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:(0,E.jsx)(`path`,{d:`M13 2 3 14h9l-1 8 10-12h-9z`})}),(0,E.jsx)(`span`,{children:`Automations`})]}),f&&se.map(({view:e,label:t,icon:n})=>(0,E.jsxs)(`button`,{className:`sidebar-nav-item${p===e?` active`:``}`,onClick:()=>f(e),"aria-current":p===e?`page`:void 0,children:[(0,E.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`20`,height:`20`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:n}),(0,E.jsx)(`span`,{children:t})]},e)),h&&(0,E.jsxs)(`button`,{className:`sidebar-nav-item`,onClick:h,disabled:_,"aria-label":`Open standalone terminal`,children:[(0,E.jsxs)(`svg`,{viewBox:`0 0 24 24`,width:`20`,height:`20`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,E.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`16`,rx:`2`}),(0,E.jsx)(`path`,{d:`m7 9 3 3-3 3`}),(0,E.jsx)(`path`,{d:`M13 15h4`})]}),(0,E.jsx)(`span`,{children:`Terminal`})]})]}),(0,E.jsxs)(`div`,{className:`session-list-tools`,children:[(0,E.jsxs)(`label`,{className:`session-search-wrap`,children:[(0,E.jsx)(l,{size:17,"aria-hidden":!0}),(0,E.jsx)(`input`,{className:`field session-search`,type:`search`,"aria-label":`Search sessions`,placeholder:y.length>1?`Search ${y.length} sessions`:`Search sessions`,value:D,onChange:e=>O(e.target.value)})]}),(0,E.jsxs)(`div`,{className:`session-filter`,ref:K,children:[(0,E.jsxs)(`button`,{className:`session-filter-btn${$?` active`:``}`,type:`button`,"aria-label":$?`Filter sessions, ${ue}`:`Filter sessions`,"aria-haspopup":`menu`,"aria-expanded":z,onClick:e=>{e.stopPropagation(),!a.direct&&C.length===0&&a.refreshNodes(),H(e=>!e)},children:[(0,E.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`18`,height:`18`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:(0,E.jsx)(`path`,{d:`M3 5h18l-7 8v6l-4-2v-4z`})}),$>0&&(0,E.jsx)(s,{tone:`accent`,variant:`solid`,className:`session-filter-count`,children:$})]}),z&&(0,E.jsxs)(`div`,{className:`menu session-filter-menu`,role:`menu`,children:[!a.direct&&(0,E.jsxs)(`div`,{className:`session-filter-section`,children:[(0,E.jsx)(`div`,{className:`session-filter-head`,children:`Machine`}),(0,E.jsxs)(`button`,{className:`menu-item session-filter-item`,role:`menuitemradio`,"aria-checked":!I,onClick:()=>{R(``),H(!1)},children:[(0,E.jsx)(`span`,{children:`All machines`}),!I&&(0,E.jsx)(`span`,{className:`session-filter-check`,children:(0,E.jsx)(d,{size:15})})]}),C.length===0?(0,E.jsx)(`div`,{className:`session-filter-empty`,children:`No machines`}):C.map(e=>(0,E.jsxs)(`button`,{className:`menu-item session-filter-item`,role:`menuitemradio`,"aria-checked":e.id===I,onClick:()=>{R(e.id),H(!1)},children:[(0,E.jsx)(`span`,{children:e.name||e.id}),e.id===I&&(0,E.jsx)(`span`,{className:`session-filter-check`,children:(0,E.jsx)(d,{size:15})})]},e.id))]}),(0,E.jsxs)(`div`,{className:`session-filter-section`,children:[(0,E.jsx)(`div`,{className:`session-filter-head`,children:`GitHub repo`}),(0,E.jsxs)(`button`,{className:`menu-item session-filter-item`,role:`menuitemradio`,"aria-checked":!N,onClick:()=>{P(``),H(!1)},children:[(0,E.jsx)(`span`,{children:`All repositories`}),!N&&(0,E.jsx)(`span`,{className:`session-filter-check`,children:(0,E.jsx)(d,{size:15})})]}),Y.length===0&&(0,E.jsx)(`div`,{className:`session-filter-empty`,children:`No GitHub repos`}),Y.map(e=>(0,E.jsxs)(`button`,{className:`menu-item session-filter-item`,role:`menuitemradio`,"aria-checked":e===N,onClick:()=>{P(e),H(!1)},children:[(0,E.jsx)(`span`,{children:e}),e===N&&(0,E.jsx)(`span`,{className:`session-filter-check`,children:(0,E.jsx)(d,{size:15})})]},e))]}),(0,E.jsxs)(`div`,{className:`session-filter-foot`,children:[(0,E.jsx)(`span`,{className:`session-filter-summary`,children:ue}),(N||I)&&(0,E.jsx)(`button`,{className:`session-filter-clear`,onClick:()=>{P(``),R(``)},children:`Clear`})]})]})]})]}),Z.length===0&&X.length===0&&(0,E.jsx)(`div`,{className:`session-empty`,children:de}),(0,E.jsxs)(`ul`,{children:[X.length>0&&(0,E.jsx)(`li`,{className:`session-group-label`,children:`Running`}),X.map(e=>{let n=e.name||e.label||e.agent||`Terminal session`,r=fe(e);return(0,E.jsx)(`li`,{className:`session-row`,children:(0,E.jsx)(`button`,{className:`session-item`,onClick:()=>t(e.termId,e.nodeId),children:(0,E.jsxs)(`span`,{className:`session-body`,children:[(0,E.jsxs)(`span`,{className:`session-title-row`,children:[(0,E.jsx)(L,{status:`working`,srLabel:`${ee.label} · Running in terminal`}),(0,E.jsx)(`span`,{className:`session-name`,children:n}),V(e.lastActivityAt??e.createdAt)&&(0,E.jsx)(`span`,{className:`session-age`,title:`Running in terminal`,children:V(e.lastActivityAt??e.createdAt)})]}),r&&(0,E.jsx)(`span`,{className:`session-meta`,children:r})]})})},e.termId)}),Q.map((t,i)=>{let o=e=>v(e)>0?`Needs attention`:F(e.updatedAt),s=t.nestedUnder?null:o(t),c=i>0?Q.slice(0,i).reverse().find(e=>!e.nestedUnder):void 0,l=c?o(c):null,u=s&&s!==l?(0,E.jsx)(`li`,{className:`session-group-label`,children:s}):null,d=oe(t,J(t.nodeId)||t.pendingNodeName||null),f=b(t),p=r?.get(t.sessionId)??w(t.source),h=ne(n?.get(t.sessionId))??(v(t)>0?{text:b(t),tone:t.status===`failed`||t.status===`needs_action`||t.needsAction?`danger`:`warn`}:null),_=t.pendingLaunch&&t.status===`failed`;return(0,E.jsxs)(m.Fragment,{children:[u,(0,E.jsxs)(`li`,{className:`session-row${t.nestedUnder?` nested`:``}`,children:[(0,E.jsx)(`button`,{className:`session-item${t.sessionId===S?` active`:``}`,"aria-current":t.sessionId===S?`page`:void 0,onClick:()=>e(t.sessionId,t.path,t.nodeId),children:(0,E.jsxs)(`span`,{className:`session-body`,children:[(0,E.jsxs)(`span`,{className:`session-title-row`,children:[(0,E.jsx)(L,{status:g(t),srLabel:`${p.label} · ${f}`}),(0,E.jsx)(`span`,{className:`session-name`,children:t.name}),(0,E.jsx)(ie,{prs:t.prs}),V(t.updatedAt)&&(0,E.jsx)(`span`,{className:`session-age`,title:f,children:V(t.updatedAt)})]}),(h||d)&&(0,E.jsxs)(`span`,{className:`session-meta`,children:[p.automation&&(0,E.jsx)(te,{kind:p.kind,size:`xs`}),h&&(0,E.jsx)(`span`,{className:`row-hint ${h.tone}`,children:h.text}),h&&d?` · `:``,d]})]})}),t.rebuildable&&!t.pendingLaunch&&(0,E.jsx)(`span`,{className:`pending-launch-actions`,children:(0,E.jsx)(`button`,{type:`button`,disabled:j===t.sessionId,"aria-label":`Delete ${t.name}`,onClick:()=>A({sessionId:t.sessionId,name:t.name||`Saved session`}),children:j===t.sessionId?`Deleting…`:`Delete`})}),_&&(0,E.jsxs)(`span`,{className:`pending-launch-actions`,children:[(0,E.jsx)(`button`,{type:`button`,onClick:()=>void a.retryPendingLaunch(t.sessionId),children:`Retry`}),(0,E.jsx)(`button`,{type:`button`,onClick:()=>void a.dismissPendingLaunch(t.sessionId),children:`Dismiss`})]})]})]},t.sessionId)})]}),le>0&&(0,E.jsxs)(`button`,{className:`session-more`,onClick:()=>G(e=>e+U),children:[`Show more (`,le,`)`]})]})}export{y as C,b as E,_ as S,g as T,x as _,V as a,T as b,M as c,O as d,P as f,w as g,te as h,W as i,k as l,A as m,ie as n,B as o,j as p,L as r,F as s,R as t,N as u,S as v,h as w,v as x,C as y};
|