pikiloom 0.4.25 → 0.4.26
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/dashboard/dist/assets/{AgentTab-B8Ai-_zs.js → AgentTab-BNJ73P0m.js} +1 -1
- package/dashboard/dist/assets/{ConnectionModal-YR4dc2lx.js → ConnectionModal-Dt05H2f9.js} +1 -1
- package/dashboard/dist/assets/{DirBrowser-CklI2Lh4.js → DirBrowser-D-GT-G-w.js} +1 -1
- package/dashboard/dist/assets/{ExtensionsTab-BYLt52eV.js → ExtensionsTab-BrJMulJR.js} +1 -1
- package/dashboard/dist/assets/{IMAccessTab-BlwB4Hje.js → IMAccessTab-auPnx468.js} +1 -1
- package/dashboard/dist/assets/{Modal-DoamIusy.js → Modal-lYfO9m-I.js} +1 -1
- package/dashboard/dist/assets/{Modals-BGRFYHLW.js → Modals-PRdWOIY9.js} +1 -1
- package/dashboard/dist/assets/{Select-DCGLDJPj.js → Select-BhbU-rll.js} +1 -1
- package/dashboard/dist/assets/SessionPanel-_0dLWvEb.js +1 -0
- package/dashboard/dist/assets/{SystemTab-DaJk9s8R.js → SystemTab-CN_QrRKt.js} +1 -1
- package/dashboard/dist/assets/{index-ClrAJ5vv.js → index-CP3LYJR2.js} +17 -17
- package/dashboard/dist/assets/{index-CoBaePpK.js → index-C_neLnaO.js} +2 -2
- package/dashboard/dist/assets/{shared-DsGKwuTP.js → shared-C5uXvhZJ.js} +1 -1
- package/dashboard/dist/index.html +1 -1
- package/dist/agent/session.js +11 -3
- package/package.json +1 -1
- package/dashboard/dist/assets/SessionPanel-DZziN6ft.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,j as n}from"./react-vendor-C7Sl8SE7.js";import{c as kt,I as St,S as ke,m as Se,a as j,u as Ve,d as bt,g as vt,l as yt,e as It,j as Tt,f as jt,s as Rt,X as wt}from"./index-CoBaePpK.js";import{l as Nt,n as Ge,m as Ot,a as Et,b as Ct,p as Mt,T as Lt,R as Pt,U as Je,c as At,d as Ze,e as qt,L as Ft,I as Ht}from"./index-ClrAJ5vv.js";import{M as tt,a as rt}from"./Modal-DoamIusy.js";import"./router-DHISdpPk.js";import"./Select-DCGLDJPj.js";import"./DirBrowser-CklI2Lh4.js";import"./markdown-DxQYQFeH.js";import"./ExtensionsTab-BYLt52eV.js";function Dt({snapshot:d}){const[r,m]=t.useState(d.currentIndex??0),[M,R]=t.useState(""),[x,p]=t.useState(!1),[Y,k]=t.useState(null);t.useEffect(()=>{m(d.currentIndex??0),R(""),k(null)},[d.promptId,d.currentIndex]);const N=d.questions||[],v=N[r]||null,V=N.length,O=!!(v?.options&&v.options.length),f=O?!!v?.allowFreeform:!0,F=o=>{o&&(m(h=>h+1),R(""))},le=async o=>{if(!x){p(!0),k(null);try{const h=await j.interactionSelectOption(d.promptId,o);if(!h.ok){k(h.error||"Failed to submit selection.");return}F(h.advanced)}catch(h){k(h?.message||"Network error.")}finally{p(!1)}}},E=async()=>{if(x)return;const o=M.trim();if(!o&&!v?.allowEmpty){k("Please enter a response.");return}p(!0),k(null);try{const h=await j.interactionSubmitText(d.promptId,o);if(!h.ok){k(h.error||"Failed to submit answer.");return}F(h.advanced)}catch(h){k(h?.message||"Network error.")}finally{p(!1)}},g=async()=>{if(!x){p(!0),k(null);try{const o=await j.interactionSkip(d.promptId);if(!o.ok){k(o.error||"Failed to skip.");return}F(o.advanced)}catch(o){k(o?.message||"Network error.")}finally{p(!1)}}},H=async()=>{if(!x){p(!0);try{await j.interactionCancel(d.promptId)}catch{}}},G=t.useMemo(()=>{const o=[];return d.hint&&o.push(d.hint),V>1&&o.push(`Question ${r+1} of ${V}`),o.join(" · ")||void 0},[d.hint,r,V]);return n.jsxs(tt,{open:!0,onClose:H,wide:O&&(v?.options?.length||0)>3,children:[n.jsx(rt,{title:d.title||"Pikiloom needs your input",description:G,onClose:H}),v?n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("div",{className:"text-xs font-medium uppercase tracking-wide text-fg-5",children:v.header||"Question"}),n.jsx("div",{className:"mt-1 whitespace-pre-wrap text-sm leading-relaxed text-fg",children:v.prompt})]}),O&&n.jsx("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:(v.options||[]).map(o=>n.jsxs("button",{type:"button",disabled:x,onClick:()=>le(o.value||o.label),className:kt("group rounded-lg border border-edge bg-panel-alt px-3 py-2 text-left text-sm transition","hover:border-control-border-h hover:bg-control-h hover:shadow-sm","focus:outline-none focus:ring-2 focus:ring-[var(--th-glow-a)]","disabled:cursor-not-allowed disabled:opacity-50"),children:[n.jsx("div",{className:"font-medium text-fg group-hover:text-fg",children:o.label}),o.description&&n.jsx("div",{className:"mt-0.5 text-xs leading-snug text-fg-4",children:o.description})]},o.value||o.label))}),f&&n.jsx("div",{children:n.jsx(St,{value:M,onChange:o=>R(o.target.value),onKeyDown:o=>{o.key==="Enter"&&!o.shiftKey&&!x&&(o.preventDefault(),E())},placeholder:O?"Or type a custom answer…":"Type your answer…",disabled:x,autoFocus:!O})}),Y&&n.jsx("div",{className:"rounded-md border border-red-300/40 bg-red-500/10 px-3 py-2 text-xs text-red-600",children:Y}),n.jsxs("div",{className:"flex items-center justify-between gap-3",children:[n.jsx("div",{className:"text-xs text-fg-5",children:x?n.jsxs("span",{className:"inline-flex items-center gap-2",children:[n.jsx(ke,{})," Submitting…"]}):n.jsxs("span",{children:["Press ",n.jsx("kbd",{className:"rounded border border-edge bg-panel-alt px-1.5 py-0.5 text-[10px] uppercase",children:"Enter"})," to send"]})}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(Se,{variant:"ghost",size:"sm",onClick:g,disabled:x,children:"Skip"}),f&&n.jsx(Se,{variant:"primary",size:"sm",onClick:E,disabled:x||!M.trim()&&!v.allowEmpty,children:"Submit"})]})]})]}):n.jsxs("div",{className:"py-6 text-center text-sm text-fg-5",children:[n.jsx(ke,{className:"mr-2 inline-block"})," Waiting for the agent…"]})]})}function Ut(d){const r=d.streaming||d.liveStreamPhase==="streaming",m=d.queuedTaskCount>0||d.pendingQueuedCount>0||d.streamPhase==="queued";return r||m}const qe=12,et=160,Qt=96,_t=[],$t=[],Bt=[],Kt=20,X=new Map;function zt(d,r){return`${d}:${r}`}function Wt(d,r){for(X.delete(d),X.set(d,r);X.size>Kt;)X.delete(X.keys().next().value)}const nr=t.memo(function({session:r,workdir:m,active:M=!0,onSessionChange:R,initialPendingPrompt:x,initialPendingImageUrls:p,onPendingPromptConsumed:Y}){const k=Ve(e=>e.locale),N=Ve(e=>e.agentStatus?.agents?.find(s=>s.agent===r.agent)??null),v=N?.selectedEffort??null,V=N?.selectedModel??null,O=N?.byokProviderName??null,f=t.useMemo(()=>bt(k),[k]),F=vt(r.agent||""),le=yt(r),E=!!x||!!(p&&p.length),[g,H]=t.useState(null),[G,o]=t.useState(!E),[h,Fe]=t.useState(!1),[i,L]=t.useState(null),[J,Z]=t.useState(!1),[D,be]=t.useState(null),[nt,He]=t.useState(0),[st,ve]=t.useState(null),[U,ae]=t.useState([]),[lt,oe]=t.useState([]),[ee,ye]=t.useState([]),[S,ue]=t.useState(x||null),[C,ce]=t.useState(p||[]),[at,ie]=t.useState(null),Ie=t.useRef(null);Ie.current=at;const[De,Q]=t.useState([]),Te=t.useRef([]);Te.current=De;const te=t.useRef(null),[ot,Ue]=t.useState(null),[de,re]=t.useState(null),[ne,je]=t.useState(""),[P,Re]=t.useState(!1),ut=!!N?.capabilities?.fork,we=t.useRef(null),_=t.useRef(p||[]),w=t.useRef(i),Qe=t.useRef(J);w.current=i,Qe.current=J;const _e=t.useRef(U);_e.current=U;const $e=t.useRef(D);$e.current=D;const A=t.useRef(null),fe=t.useRef(null),$=t.useRef(!0),B=t.useRef(!1),me=t.useRef(null),Ne=t.useRef(!1),K=t.useRef(E),se=t.useRef(!1),q=t.useRef(!1),Oe=t.useRef(!1),Ee=t.useRef(!1),Be=t.useRef({model:null,effort:null}),ct=t.useCallback(e=>{Be.current=e},[]);t.useEffect(()=>{Oe.current||!E||(Oe.current=!0,x&&!S&&ue(x),p&&p.length&&!C.length&&(ce(p),_.current=p),o(!1),He(e=>e+1),Y?.())},[E,Y]);const I=t.useCallback(()=>{ue(null),ce(e=>{for(const s of e)URL.revokeObjectURL(s);return[]}),_.current=[],ie(null)},[]),z=t.useCallback(()=>{Q(e=>{if(!e.length)return e;for(const s of e)for(const l of s.imageUrls)URL.revokeObjectURL(l);return[]}),te.current=null},[]),Ke=t.useCallback((e,s)=>{const l=Ut({streaming:Qe.current,liveStreamPhase:w.current?.phase??null,streamPhase:$e.current,queuedTaskCount:_e.current.length,pendingQueuedCount:Te.current.length}),a=s||[];if(l){const u=`local-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;te.current=u,Q(c=>[...c,{localId:u,taskId:null,prompt:e||"",imageUrls:a}]);return}w.current?.phase==="done"&&L(null);for(const u of _.current)URL.revokeObjectURL(u);te.current=null,ue(e||null),ce(a),_.current=a,ie(null)},[]),it=t.useCallback(e=>{const s=te.current;if(s){te.current=null,Q(l=>{const a=l.findIndex(c=>c.localId===s);if(a<0)return l;const u=l.slice();return u[a]={...u[a],taskId:e},u});return}ie(e)},[]),dt=t.useCallback(async()=>{if(!de)return;const e=ne.trim();if(e){Re(!0);try{const s=await j.forkSession(m,r.agent||"",r.sessionId,de.atTurn,e,{});if(!s.ok||!s.sessionKey){Re(!1);return}const[l,a]=s.sessionKey.split(":");re(null),je(""),R?.({agent:l,sessionId:a,workdir:m})}finally{Re(!1)}}},[de,ne,m,r.agent,r.sessionId,R]);we.current=dt;const ge=t.useCallback(async(e,s={})=>{try{const l=await Nt({workdir:m,agent:r.agent||"",sessionId:r.sessionId,rich:!0,turnOffset:e.turnOffset,turnLimit:e.turnLimit,lastNTurns:e.lastNTurns},{force:s.force});return l.ok?Ge(l):null}catch{return null}},[m,r.agent,r.sessionId]),T=t.useCallback(async({keepOlder:e,force:s=!1,scrollToBottom:l=!1})=>{const a=r.sessionId;if(me.current===a)return!1;me.current=a;try{const u=await ge({turnOffset:0,turnLimit:qe},{force:s});if(!u||r.sessionId!==a)return!1;if(l&&(B.current=!0),H(c=>!c||!e?u:Ot(c,u)),o(!1),se.current&&(se.current=!1,I()),q.current){const c=q.current;q.current=!1;const b=c!==!0?c.taskId:null;w.current&&(c===!0||w.current.taskId===b)&&L(null)}return!0}finally{me.current===a&&(me.current=null)}},[ge,I,r.sessionId]),he=t.useCallback(async()=>{if(!g?.hasOlder||Ne.current)return;const e=A.current;e&&(fe.current={scrollHeight:e.scrollHeight,scrollTop:e.scrollTop}),Ne.current=!0,Fe(!0);try{const s=await ge({turnOffset:Math.max(0,g.totalTurns-g.startTurn),turnLimit:qe});s?H(l=>l?Et(l,s):s):fe.current=null}finally{Ne.current=!1,Fe(!1)}},[ge,g]),pe=t.useRef(null),W=t.useCallback(e=>{if(e?.sessionId&&e.sessionId!==r.sessionId&&(Ee.current=!0,Ce.current=`${r.agent}:${e.sessionId}`,R?.({agent:r.agent||"",sessionId:e.sessionId,workdir:m})),!e){const l=pe.current;Z(!1),l==="streaming"?(se.current=!0,q.current=!0,T({keepOlder:!0,force:!0,scrollToBottom:$.current})):L(null),K.current&&l!=="streaming"?T({keepOlder:!0,force:!0}):(l==="done"&&(I(),z()),l!==null&&(K.current=!1)),ve(null),be(null),ae([]),oe([]),ye([]),pe.current=null;return}if(be(e.phase),ve(e.taskId||null),ae(e.queuedTaskIds&&e.queuedTaskIds.length?e.queuedTaskIds:_t),oe(e.queuedTasks&&e.queuedTasks.length?e.queuedTasks:$t),ye(Array.isArray(e.interactions)&&e.interactions.length?e.interactions:Bt),e.phase==="streaming"){if(q.current&&w.current&&w.current.taskId!==null&&w.current.taskId!==(e.taskId||null)&&!(e.text||"").trim()||L({taskId:e.taskId||null,phase:"streaming",text:e.text||"",thinking:e.thinking||"",activity:e.activity,plan:e.plan??null,model:e.model??null,effort:e.effort??null,previewMeta:e.previewMeta??null,subAgents:e.previewMeta?.subAgents??null,generatingImages:e.previewMeta?.generatingImages??0,artifacts:e.artifacts??null,startedAt:typeof e.startedAt=="number"?e.startedAt:null,error:null,question:e.question??null}),Z(!0),e.taskId&&e.taskId!==Ie.current){const a=Te.current,u=a.findIndex(c=>c.taskId===e.taskId);if(u>=0){const c=a[u];for(const b of _.current)URL.revokeObjectURL(b);ue(c.prompt||null),ce(c.imageUrls),_.current=c.imageUrls,ie(e.taskId),Q(b=>b.filter((pt,xt)=>xt!==u))}}$.current&&(B.current=!0)}else if(e.phase==="queued")L(null),Z(!1);else if(e.phase==="done"){Z(!1),L(b=>b?{...b,phase:"done",error:e.error??null}:e.error?{taskId:e.taskId||null,phase:"done",text:"",thinking:"",activity:"",plan:null,model:e.model??null,effort:e.effort??null,previewMeta:e.previewMeta??null,subAgents:e.previewMeta?.subAgents??null,generatingImages:e.previewMeta?.generatingImages??0,artifacts:e.artifacts??null,error:e.error}:b);const l=!!e.queuedTaskIds?.length,a=w.current,u=!!a&&Ct(a),c=!!e.incomplete&&u&&!l;pe.current!=="done"&&(l||(se.current=!0),q.current=c?!1:{taskId:e.taskId||null},T({keepOlder:!0,force:!0,scrollToBottom:$.current})),l||(K.current=!1)}const s=new Set;if(e.taskId&&s.add(e.taskId),Array.isArray(e.queuedTaskIds))for(const l of e.queuedTaskIds)s.add(l);Q(l=>{let a=!1;const u=[];for(const c of l)if(!c.taskId||s.has(c.taskId))u.push(c);else{for(const b of c.imageUrls)URL.revokeObjectURL(b);a=!0}return a?u:l}),pe.current=e.phase},[I,z,T,r.sessionId,r.agent,R,m]),ze=t.useRef(W);ze.current=W;const We=t.useCallback(()=>{K.current=!0,He(e=>e+1)},[]),ft=t.useCallback(async e=>{try{await j.recallSessionMessage(e),Ie.current===e&&I(),Q(s=>{let l=!1;const a=[];for(const u of s)if(u.taskId===e){for(const c of u.imageUrls)URL.revokeObjectURL(c);l=!0}else a.push(u);return l?a:s}),ae(s=>s.filter(l=>l!==e)),oe(s=>s.filter(l=>l.taskId!==e)),ve(s=>s===e?null:s)}catch{}},[I]),mt=t.useCallback(async e=>{try{await j.steerSession(e)}catch{}},[]),gt=t.useCallback(async()=>{try{await j.stopSession(r.agent||"",r.sessionId)}catch{}},[r.agent,r.sessionId]),xe=zt(r.agent||"",r.sessionId);t.useEffect(()=>{if(Ee.current){Ee.current=!1;let u=!1;return T({keepOlder:!0,force:!0}).finally(()=>{u||o(!1)}),()=>{u=!0}}let e=!1;const s=Mt({workdir:m,agent:r.agent||"",sessionId:r.sessionId,rich:!0,turnOffset:0,turnLimit:qe},{allowStale:!0}),l=E&&!Oe.current,a=s?.ok?Ge(s):X.get(xe)||null;return o(l?!1:!a),H(a),L(null),Z(!1),be(null),ae([]),oe([]),ye([]),l||(I(),z(),K.current=!1,se.current=!1,q.current=!1),$.current=!0,B.current=!0,l||T({keepOlder:!1,force:!0}).finally(()=>{e||o(!1)}),()=>{e=!0}},[T,r.agent,r.sessionId,m,xe,I,z]),t.useEffect(()=>{g&&g.turns.length>0&&Wt(xe,g)},[xe,g]),t.useEffect(()=>{M&&T({keepOlder:!0,force:!0})},[M,T]);const Ce=t.useRef(`${r.agent}:${r.sessionId}`);Ce.current=`${r.agent}:${r.sessionId}`,It("stream-update",t.useCallback(e=>{e.key===Ce.current&&W(e.snapshot??null)},[W])),t.useEffect(()=>{let e=!0;return j.getSessionStreamState(r.agent||"",r.sessionId).then(s=>{e&&ze.current(s.state)}).catch(()=>{}),()=>{e=!1}},[r.agent,r.sessionId,nt]),Tt(t.useCallback(()=>{j.getSessionStreamState(r.agent||"",r.sessionId).then(e=>{W(e.state)}).catch(()=>{}),T({keepOlder:!0,force:!0})},[W,r.agent,r.sessionId,T])),t.useEffect(()=>{!K.current&&le!=="running"&&!J&&!i&&!D&&U.length===0&&(I(),z())},[le,J,i,D,U.length,I,z]),t.useLayoutEffect(()=>{const e=fe.current,s=A.current;!e||!s||(fe.current=null,s.scrollTop=e.scrollTop+(s.scrollHeight-e.scrollHeight))},[g?.turns.length]),t.useLayoutEffect(()=>{if(!B.current)return;const e=A.current;e&&(B.current=!1,e.scrollTop=e.scrollHeight,requestAnimationFrame(()=>{$.current&&(e.scrollTop=e.scrollHeight)}))},[g,i]),t.useLayoutEffect(()=>{if(!S)return;const e=A.current;e&&(e.scrollTop=e.scrollHeight)},[S]),t.useEffect(()=>{if(!g?.hasOlder||G||h)return;const e=A.current;e&&e.scrollHeight<=e.clientHeight+et&&he()},[g?.hasOlder,g?.turns.length,he,G,h]);const ht=t.useCallback(()=>{const e=A.current;if(!e)return;const s=e.scrollHeight-e.scrollTop-e.clientHeight;$.current=s<=Qt,e.scrollTop<=et&&he()},[he]),Me=i?.model||r.model||V||null,Le=jt(r.agent||"",i?.effort||r.thinkingEffort||v||null,r.workflowEnabled??N?.workflowEnabled)||null,Xe=Me?Rt(Me):null,Pe=wt(r,{streaming:J,hasLiveStream:!!i,streamPhase:D,queuedTaskCount:U.length}),y=g?.turns||[],Ae=t.useMemo(()=>{if(!C.length||!y.length)return!1;const e=y[y.length-1];return!e.user||(e.user.text?.trim()||"")!==(S||"").trim()?!1:e.user.blocks.filter(l=>l.type==="image").length<C.length},[y,S,C.length]),Ye=t.useMemo(()=>{let e=y;if(Ae){const b=e[e.length-1];e=[...e.slice(0,-1),{...b,user:null}]}if(!i||!e.length)return e;const s=e[e.length-1];if(!s.assistant)return e;const l=S??(i.question||null),a=(i.text||"").trim(),u=s.assistant.text?.trim()||"";return(l!=null?s.user?.text?.trim()===l.trim():!!u&&!!a&&(a.startsWith(u)||u.startsWith(a)))?[...e.slice(0,-1),{...s,assistant:null}]:e},[y,i,S,Ae]);return n.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[n.jsx("div",{ref:A,onScroll:ht,className:"flex-1 overflow-y-auto overscroll-contain",children:G&&!S&&!C.length&&!i?n.jsx("div",{className:"flex items-center justify-center py-20",children:n.jsx(ke,{className:"h-5 w-5 text-fg-4"})}):Ye.length===0&&!S&&!C.length&&!i&&!Pe?n.jsx("div",{className:"py-20 text-center text-[13px] text-fg-5",children:f("hub.noMessages")}):n.jsxs("div",{className:"max-w-[900px] mx-auto px-6 py-6 space-y-0",children:[(g?.hasOlder||h)&&n.jsxs("div",{className:"mb-4 flex items-center justify-center gap-2 text-[11px] text-fg-5",children:[h?n.jsx(ke,{className:"h-3 w-3 text-fg-5"}):n.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-fg-5/35"}),n.jsx("span",{children:f(h?"hub.loadingOlderTurns":"hub.loadOlderTurnsHint")})]}),r.migratedFrom?.kind==="fork"&&r.migratedFrom.sessionId&&n.jsxs("button",{type:"button",onClick:()=>R?.({agent:r.migratedFrom.agent||r.agent||"",sessionId:r.migratedFrom.sessionId,workdir:m}),className:"mb-4 inline-flex items-center gap-1.5 rounded-md border border-edge bg-panel-alt px-2.5 py-1 text-[11px] text-fg-5 transition hover:border-edge-h hover:text-fg-2",title:`#${r.migratedFrom.sessionId.slice(0,8)}`,children:[n.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[n.jsx("circle",{cx:"6",cy:"6",r:"2"}),n.jsx("circle",{cx:"18",cy:"6",r:"2"}),n.jsx("circle",{cx:"12",cy:"20",r:"2"}),n.jsx("path",{d:"M6 8v3a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3V8"}),n.jsx("path",{d:"M12 14v4"})]}),n.jsx("span",{children:f("hub.forkBadge")}),n.jsxs("span",{className:"font-mono",children:["#",r.migratedFrom.sessionId.slice(0,8)]}),typeof r.migratedFrom.forkedAtTurn=="number"&&n.jsxs("span",{className:"text-fg-5/70",children:["· ",f("hub.forkBadgeAt").replace("{turn}",String(r.migratedFrom.forkedAtTurn+1))]})]}),Ye.map((e,s)=>{const l=(g?.startTurn||0)+s;return n.jsx(Lt,{turn:e,turnIndex:l,agent:r.agent||"",meta:F,model:Xe,effort:Le,providerName:O,t:f,workdir:m,onResend:a=>{B.current=!0,Ke(a);const u=Be.current;j.sendSessionMessage(m,r.agent||"",r.sessionId,a,{model:u.model||Me||void 0,effort:u.effort||Le||void 0}).then(c=>{c.ok&&We()}).catch(()=>{I()})},onEdit:a=>Ue(a),onFork:ut?a=>{je(""),re({atTurn:a})}:void 0},`${g?.startTurn||0}:${s}`)}),Pe&&n.jsx("div",{className:"mb-5 animate-in",children:n.jsx(Pt,{detail:Pe,t:f})}),(S||C.length>0)&&(Ae||!(S&&y.length>0&&y[y.length-1]?.user?.text?.trim()===S.trim()))&&n.jsxs("div",{className:"session-turn",children:[n.jsx(Je,{text:S||"",blocks:C.map(e=>({type:"image",content:e})),t:f}),!i&&n.jsx("div",{className:"mt-3 mb-5 animate-in",children:n.jsx(At,{className:"text-fg-5"})})]}),i&&Ze(i)&&!S&&i.question&&!(y.length>0&&y[y.length-1]?.user?.text?.trim()===i.question.trim())&&n.jsx("div",{className:"session-turn",children:n.jsx(Je,{text:i.question,t:f})}),i&&Ze(i)&&n.jsxs("div",{className:"mb-6",children:[n.jsx(qt,{agent:r.agent||"",meta:F,model:Xe,effort:Le,providerName:O,previewMeta:i.previewMeta,liveStartedAt:i.phase==="streaming"?i.startedAt??null:null}),n.jsx(Ft,{stream:i,t:f,workdir:m})]}),n.jsx("div",{className:"h-4"})]})}),n.jsx(Ht,{session:r,workdir:m,onStreamQueued:We,onSendStart:Ke,onSendTaskAssigned:it,onSessionChange:R,t:f,streamPhase:D,streamTaskId:st,queuedTaskIds:U,queuedTasks:lt,pendingQueuedSends:De,onRecall:ft,onSteer:mt,onStopAll:gt,editDraft:ot,onEditDraftConsumed:()=>Ue(null),onSelectionChange:ct}),de&&n.jsxs(tt,{open:!0,onClose:()=>{P||re(null)},children:[n.jsx(rt,{title:f("hub.forkPromptTitle"),description:f("hub.forkPromptHint"),onClose:()=>{P||re(null)}}),n.jsx("textarea",{autoFocus:!0,value:ne,disabled:P,onChange:e=>je(e.target.value),onKeyDown:e=>{e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&ne.trim()&&!P&&(e.preventDefault(),we.current?.())},placeholder:f("hub.forkPromptPlaceholder"),className:"w-full min-h-[120px] resize-y rounded-md border border-edge bg-panel-alt px-3 py-2 text-[13px] leading-relaxed text-fg outline-none focus:border-edge-h"}),n.jsxs("div",{className:"mt-4 flex items-center justify-end gap-2",children:[n.jsx(Se,{variant:"ghost",disabled:P,onClick:()=>re(null),children:f("modal.cancel")}),n.jsx(Se,{variant:"primary",disabled:P||!ne.trim(),onClick:()=>{we.current?.()},children:f(P?"hub.forkSubmitting":"hub.forkSubmit")})]})]}),M&&ee.length>0&&n.jsx(Dt,{snapshot:ee[ee.length-1]},ee[ee.length-1].promptId)]})});export{nr as SessionPanel};
|