@rizom/brain 0.2.0-alpha.383 → 0.2.0-alpha.384
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brain.js +36 -36
- package/dist/chunks/{app-7z5e3c7s.js → app-zn0wshdg.js} +2 -2
- package/dist/chunks/{index-ymrghn05.js → index-fe19h0ey.js} +3 -3
- package/dist/chunks/{index-ymrghn05.js.map → index-fe19h0ey.js.map} +1 -1
- package/dist/chunks/{index-ccy24bdp.js → index-q8rrvgdf.js} +2 -2
- package/dist/chunks/{index-3dz3sh65.js → index-y41e244y.js} +2 -2
- package/dist/index.js +1 -1
- package/dist/model.js +37 -37
- package/dist/model.js.map +2 -2
- package/dist/ui/studio-app.css +32 -18
- package/dist/ui/studio-app.js +3 -3
- package/dist/ui/studio-app.js.map +1 -1
- package/dist/ui/studio-asset-manifest.json +16 -16
- package/dist/ui/studio-chunks/account-view-811dnmr7.js +3 -0
- package/dist/ui/studio-chunks/{account-view-4544h367.js.map → account-view-811dnmr7.js.map} +2 -2
- package/dist/ui/studio-chunks/{highlighted-body-OFNGDK62-1w01z27m.js → highlighted-body-OFNGDK62-kw57xp1t.js} +2 -2
- package/dist/ui/studio-chunks/{highlighted-body-OFNGDK62-1w01z27m.js.map → highlighted-body-OFNGDK62-kw57xp1t.js.map} +1 -1
- package/dist/ui/studio-chunks/{main-1gqf08r8.js → main-53ha0ekw.js} +18 -18
- package/dist/ui/studio-chunks/{main-1gqf08r8.js.map → main-53ha0ekw.js.map} +4 -7
- package/dist/ui/studio-chunks/{main-b34wmcw1.js → main-g0bad58x.js} +4 -4
- package/dist/ui/studio-chunks/{main-b34wmcw1.js.map → main-g0bad58x.js.map} +1 -1
- package/dist/ui/studio-chunks/main-g6b89p15.js +7 -0
- package/dist/ui/studio-chunks/{main-ptks77cs.js.map → main-g6b89p15.js.map} +3 -3
- package/dist/ui/studio-chunks/main-me847330.js +50 -0
- package/dist/ui/studio-chunks/{main-vzjqx8f9.js.map → main-me847330.js.map} +6 -3
- package/dist/ui/studio-chunks/mermaid-GHXKKRXX-hqacyqmt.js +3 -0
- package/dist/ui/studio-chunks/{mermaid-GHXKKRXX-ftrk50mv.js.map → mermaid-GHXKKRXX-hqacyqmt.js.map} +1 -1
- package/dist/ui/studio-chunks/studio-chat-workspace-hmkhk808.js +5 -0
- package/dist/ui/studio-chunks/studio-chat-workspace-hmkhk808.js.map +20 -0
- package/package.json +1 -1
- package/dist/ui/studio-chunks/account-view-4544h367.js +0 -3
- package/dist/ui/studio-chunks/main-ptks77cs.js +0 -7
- package/dist/ui/studio-chunks/main-vzjqx8f9.js +0 -50
- package/dist/ui/studio-chunks/mermaid-GHXKKRXX-ftrk50mv.js +0 -3
- package/dist/ui/studio-chunks/studio-chat-workspace-kpfmp85b.js +0 -5
- package/dist/ui/studio-chunks/studio-chat-workspace-kpfmp85b.js.map +0 -21
- /package/dist/chunks/{app-7z5e3c7s.js.map → app-zn0wshdg.js.map} +0 -0
- /package/dist/chunks/{index-ccy24bdp.js.map → index-q8rrvgdf.js.map} +0 -0
- /package/dist/chunks/{index-3dz3sh65.js.map → index-y41e244y.js.map} +0 -0
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{Ba as De,G as Ue,Ga as He,T as Pe,U as Zt,V as Bt,fa as $e,i as Re,ia as zt,k as mt,t as Ht,v as Le,x as Ct,y as Me}from"./main-ptks77cs.js";import"./main-b34wmcw1.js";import{Bb as Be,Cb as _e,Na as Se,Qa as G,Ua as k,Va as ve,Wa as Ee,Za as kt,bb as bt,cb as vt,pb as t,qb as ot,yb as ze,zb as qe}from"./main-1gqf08r8.js";import{Eb as E,Ib as yt}from"./main-rjhqdb2v.js";var ke=E(yt(),1);var Ut=t.object({type:t.literal("event"),event:t.string().min(1),fromState:t.string().min(1).optional()}),Jo=t.object({conversationId:t.string().min(1),interfaceType:t.string().min(1),channelId:t.string().min(1).optional(),channelName:t.string().min(1),userPermissionLevel:t.enum(["admin","trusted","public"]),isAnchor:t.boolean(),action:Ut});var Xt=t.strictObject({rows:t.number().int().positive(),rowBytes:t.number().int().positive(),queryCharacters:t.number().int().positive()});var te=t.strictObject({messageCharacters:t.number().int().positive(),outputTokens:t.number().int().positive(),contextTokens:t.number().int().positive(),contextBytes:t.number().int().positive(),toolSteps:t.number().int().positive(),toolCalls:t.number().int().positive(),toolResultCharacters:t.number().int().positive(),retrieval:Xt,requestTimeoutSeconds:t.number().int().positive().max(2147483)}),to=t.strictObject({limits:te,maxCostMicroUsd:t.number().int().positive()});var eo=1,oo="/api/chat";var ae=t.strictObject({idleSeconds:t.number().int().positive().max(Math.floor(Number.MAX_SAFE_INTEGER/1000)),maxAgeSeconds:t.number().int().positive().max(Math.floor(Number.MAX_SAFE_INTEGER/1000))}).refine((e)=>e.idleSeconds<=e.maxAgeSeconds,"Guest idle expiry must not exceed maximum age"),na=t.strictObject({visitorId:t.string().uuid(),retention:ae}),u=t.string().trim().min(1).max(256);var ao=t.strictObject({expiresAt:t.number().int().positive(),provider:t.string().min(1),notice:t.string().min(1),deletionLimitations:t.string().min(1),retention:ae,messageCharacters:t.number().int().positive(),canSend:t.boolean()}),ne=t.strictObject({conversationId:u,state:t.enum(["active","completed","failed","interrupted","uncertain"])}),se=t.string().regex(/^upload-[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i),Pt=t.string().trim().min(1).max(48),$t=t.string().datetime(),ee=t.string().regex(/^\/(?!\/)/).max(2048),it=t.string().regex(/^(?:\/(?!\/)|https?:\/\/)/).max(2048),no=t.looseObject({kind:t.literal("tool-approval"),id:u,toolCallId:u.optional(),toolName:t.string().trim().min(1).max(256),input:t.record(t.string(),t.unknown()).optional(),summary:t.string().max(4096),completionSummary:t.string().max(4096).optional(),preview:t.string().max(1e5).optional(),state:t.enum(["approval-requested","approval-responded","output-available","output-denied","output-error"]),output:t.unknown().optional(),error:t.string().max(4096).optional()}),so=t.looseObject({entityType:t.string().trim().min(1).max(128).optional(),entityId:u.optional(),attachmentType:t.string().trim().min(1).max(128).optional()}),io=t.looseObject({mediaType:t.string().trim().min(1).max(255),url:it,downloadUrl:it.optional(),previewUrl:it.optional(),filename:t.string().trim().min(1).max(255).optional(),sizeBytes:t.number().int().nonnegative().optional(),source:so.optional()}),ie=t.looseObject({kind:t.literal("attachment"),id:u,jobId:u.optional(),title:t.string().max(4096),description:t.string().max(20000).optional(),attachment:io}),ro=t.looseObject({id:u,title:t.string().max(4096).optional(),source:t.string().trim().min(1).max(512),url:it.optional(),entityType:t.string().trim().min(1).max(128).optional(),entityId:u.optional(),excerpt:t.string().max(20000).optional(),provenance:t.record(t.string(),t.unknown()).optional()}),re=t.looseObject({kind:t.literal("sources"),id:u,title:t.string().max(4096).optional(),sources:t.array(ro).min(1).max(100)}),lo=t.discriminatedUnion("type",[t.object({type:t.literal("prompt"),id:u,label:t.string().trim().min(1).max(256),prompt:t.string().min(1).max(1e5),description:t.string().max(4096).optional()}),t.object({type:t.literal("event"),id:u,label:t.string().trim().min(1).max(256),event:t.string().trim().min(1).max(256),fromState:t.string().trim().min(1).max(256).optional(),description:t.string().max(4096).optional()})]),le=t.looseObject({kind:t.literal("actions"),id:u,title:t.string().max(4096).optional(),actions:t.array(lo).min(1).max(100)}),de=t.discriminatedUnion("kind",[no,ie,re,le]);var co=t.object({id:u,toolCallId:u.optional(),toolName:t.string().trim().min(1).max(256),summary:t.string().max(4096),completionSummary:t.string().max(4096).optional(),preview:t.string().max(1e5).optional(),args:t.unknown()}),ce=t.object({toolName:t.string().trim().min(1).max(256),args:t.record(t.string(),t.unknown()).optional(),jobId:u.optional(),data:t.unknown().optional(),error:t.object({message:t.string().max(4096),code:t.string().trim().min(1).max(256).optional()}).optional()}),uo=t.looseObject({text:t.string().max(1e6),toolResults:t.array(ce).max(100).optional(),cards:t.array(de).max(100).optional(),pendingConfirmations:t.array(co).max(100).optional(),usage:t.object({promptTokens:t.number().int().nonnegative(),completionTokens:t.number().int().nonnegative(),totalTokens:t.number().int().nonnegative()})});function po(e=oo){let o=mo(e);return{stream:o,actions:`${o}/actions`,sessions:`${o}/sessions`,sessionArchive:`${o}/sessions/archive`,messages:`${o}/messages`,uploads:`${o}/uploads`,contextSessions:`${o}/context-sessions`,documentAttachments:`${o}/attachments/document`,imageAttachments:`${o}/attachments/image`,jobStatus:`${o}/jobs/status`}}function mo(e){let o=e.trim();if(!o.startsWith("/")||o.startsWith("//")||o.length>512||/[\s"'<>\\]/u.test(o)||o.includes("?")||o.includes("#"))throw Error("Chat API path must be a same-origin absolute path without query or fragment");let r=o.replace(/\/+$/,"");if(r.length===0)throw Error("Chat API path must not be the site root");return r}var ue=t.strictObject({version:t.literal(1),sourceId:t.string().trim().regex(/^[a-z][a-z0-9-]*$/).max(64),itemId:t.string().trim().min(1).max(300),titleSeed:t.string().trim().min(1).max(160).refine((e)=>!/[\p{Cc}\p{Cf}]/u.test(e))}),go=t.object({query:t.string().trim().max(200).default(""),archived:t.boolean().default(!1),offset:t.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).default(0),limit:t.number().int().min(1).max(100).default(25)}),ho=t.looseObject({id:u,title:Pt,lastActiveAt:$t,archived:t.boolean().optional(),contextHandoff:ue.optional()}),fo=t.looseObject({sessions:t.array(ho).max(100)}),xo=t.looseObject({kind:t.string().trim().min(1).max(64),id:u}),yo=t.looseObject({kind:t.literal("text"),filename:t.string().trim().min(1).max(255),mediaType:t.string().trim().min(1).max(255),sizeBytes:t.number().int().nonnegative(),createdAt:$t,source:xo.optional()}),pe=t.looseObject({id:u,role:t.enum(["user","assistant"]),content:t.string().max(1e6),attachments:t.array(yo).max(100).optional(),cards:t.array(de).max(100).optional()}),So=t.looseObject({messages:t.array(pe).max(100)}),ko=t.string().min(1).max(256).refine((e)=>e.trim().length>0),bo=t.strictObject({messages:t.array(pe).max(100),submission:ne.nullable()}),sa=t.object({type:t.literal("text"),text:t.string().max(1e6)}),ia=t.object({type:t.literal("file"),mediaType:t.string().trim().min(1).max(255).optional(),filename:t.string().trim().min(1).max(255).optional(),url:t.string().min(1).max(2000000)}),me=t.object({kind:t.literal("upload"),id:se}),ra=t.object({type:t.literal("data-upload"),data:t.looseObject({ref:me})}),vo=t.object({id:u,approved:t.boolean(),toolCallId:u.optional(),toolName:t.string().trim().min(1).max(256).optional(),input:t.record(t.string(),t.unknown()).optional(),title:t.string().max(4096).optional()}),la=t.looseObject({state:t.literal("approval-responded"),toolCallId:u.optional(),toolName:t.string().trim().min(1).max(256).optional(),input:t.record(t.string(),t.unknown()).optional(),title:t.string().max(4096).optional(),approval:vo}),qt=t.object({id:u.optional(),role:t.enum(["user","assistant","system"]),parts:t.array(t.unknown()).max(1000).optional(),content:t.string().max(1e6).optional()}),zo=(e)=>t.string().trim().min(1).max(e).refine((o)=>!/[\p{Cc}\p{Cf}]/u.test(o)),Co=t.strictObject({sourceId:t.string().trim().regex(/^[a-z][a-z0-9-]*$/).max(64),itemId:t.string().trim().min(1).max(300),label:zo(160)}),Zo=t.object({id:u.optional(),messages:t.array(qt).min(1).max(200),trigger:t.string().trim().min(1).max(64).optional(),inboxContext:Co.optional()}).strict(),da=t.strictObject({id:u.optional(),messages:t.array(t.strictObject({id:u,role:t.literal("user"),parts:t.array(t.strictObject({type:t.literal("text"),text:t.string()})).min(1).max(16)})).length(1)}),ge=t.enum(["pending","processing","completed","failed"]),wo=t.looseObject({type:t.enum(["job","batch"]),status:ge,operationType:t.enum(["file_operations","content_operations","data_processing","batch_processing"]),operationTarget:t.string().max(1024).optional(),message:t.string().max(4096).optional(),progress:t.object({current:t.number().nonnegative(),total:t.number().nonnegative(),percentage:t.number().min(0).max(100)}).optional()}),Ao=t.looseObject({status:t.enum(["tool-running","tool-completed","tool-awaiting-approval","tool-failed"]),toolName:t.string().trim().min(1).max(256),error:t.string().max(4096).optional()}),Io=t.discriminatedUnion("type",[t.looseObject({type:t.literal("start"),messageId:u.optional()}),t.looseObject({type:t.literal("start-step")}),t.looseObject({type:t.literal("finish-step")}),t.looseObject({type:t.literal("finish"),finishReason:t.enum(["length","error","stop","content-filter","tool-calls","other"]).optional()}),t.looseObject({type:t.literal("abort"),reason:t.string().max(4096).optional()}),t.looseObject({type:t.literal("error"),errorText:t.string().max(20000)}),t.looseObject({type:t.literal("text-start"),id:u}),t.looseObject({type:t.literal("text-delta"),id:u,delta:t.string().max(1e6)}),t.looseObject({type:t.literal("text-end"),id:u}),t.looseObject({type:t.literal("reasoning-start"),id:u}),t.looseObject({type:t.literal("reasoning-delta"),id:u,delta:t.string().max(1e6)}),t.looseObject({type:t.literal("reasoning-end"),id:u}),t.looseObject({type:t.literal("tool-input-start"),toolCallId:u,toolName:t.string().trim().min(1).max(256),title:t.string().max(4096).optional()}),t.looseObject({type:t.literal("tool-input-delta"),toolCallId:u,inputTextDelta:t.string().max(1e6)}),t.looseObject({type:t.literal("tool-input-available"),toolCallId:u,toolName:t.string().trim().min(1).max(256),input:t.unknown(),title:t.string().max(4096).optional()}),t.looseObject({type:t.literal("tool-input-error"),toolCallId:u,toolName:t.string().trim().min(1).max(256),input:t.unknown(),errorText:t.string().max(20000),title:t.string().max(4096).optional()}),t.looseObject({type:t.literal("tool-approval-request"),approvalId:u,toolCallId:u}),t.looseObject({type:t.literal("tool-output-available"),toolCallId:u,output:t.unknown(),preliminary:t.boolean().optional()}),t.looseObject({type:t.literal("tool-output-error"),toolCallId:u,errorText:t.string().max(20000)}),t.looseObject({type:t.literal("tool-output-denied"),toolCallId:u}),t.looseObject({type:t.literal("source-url"),sourceId:u,url:it,title:t.string().max(4096).optional()}),t.looseObject({type:t.literal("source-document"),sourceId:u,mediaType:t.string().trim().min(1).max(255),title:t.string().max(4096),filename:t.string().trim().min(1).max(255).optional()}),t.looseObject({type:t.literal("file"),url:it,mediaType:t.string().trim().min(1).max(255)}),t.looseObject({type:t.literal("data-progress"),id:u.optional(),data:wo,transient:t.boolean().optional()}),t.looseObject({type:t.literal("data-status"),id:u.optional(),data:Ao,transient:t.boolean().optional()}),t.looseObject({type:t.literal("data-tool-result"),id:u.optional(),data:ce,transient:t.boolean().optional()}),t.looseObject({type:t.literal("data-actions"),id:u.optional(),data:le,transient:t.boolean().optional()}),t.looseObject({type:t.literal("data-sources"),id:u.optional(),data:re,transient:t.boolean().optional()}),t.looseObject({type:t.literal("data-attachment"),id:u.optional(),data:ie,transient:t.boolean().optional()})]),jo=t.strictObject({conversationId:u}),To=t.object({title:Pt}).strict(),No=t.object({renamed:t.boolean(),title:Pt}),Oo=t.object({archived:t.boolean()}),Ro=t.object({deleted:t.boolean()}),Eo=t.object({conversationId:u,action:Ut}).strict(),Lo=t.looseObject({id:u,status:ge,message:t.string().max(4096).optional()}),Mo=t.looseObject({id:se,ref:me,filename:t.string().trim().min(1).max(255),mediaType:t.string().trim().min(1).max(255),sizeBytes:t.number().int().nonnegative(),createdAt:$t,url:ee,downloadUrl:ee}).refine((e)=>e.id===e.ref.id,{path:["ref","id"],message:"Upload response ids must match"});class P extends Error{operation;status;kind;guestSubmission;constructor(e,o,r="http",f){super(`Chat API could not ${e} (${o})`);this.name="ChatApiError",this.operation=e,this.status=o,this.kind=r,Object.defineProperty(this,"guestSubmission",{value:f,enumerable:!1,writable:!1})}}function oe(e){let o=e.endsWith("\r")?e.slice(0,-1):e;if(!o.startsWith("data:"))return;let r=o.slice(5).trimStart();if(r.length===0||r==="[DONE]")return;let f;try{f=JSON.parse(r)}catch{throw new P("read stream",502,"invalid-response")}let c=Io.safeParse(f);if(!c.success)throw new P("read stream",502,"invalid-response");return c.data}async function*he(e){if(!e.ok)throw new P("read stream",e.status);if(!e.body)throw new P("read stream",502,"invalid-response");let o=e.body.getReader(),r=new TextDecoder,f="";try{for(;;){let{value:c,done:p}=await o.read();f+=r.decode(c,{stream:!p});let x=f.indexOf(`
|
|
2
|
-
`);while(x>=0){let d=f.slice(0,x);f=f.slice(x+1);let l=oe(d);if(l)yield l;x=f.indexOf(`
|
|
3
|
-
`)}if(p)break}if(f.length>0){let c=oe(f);if(c)yield c}}finally{o.releaseLock()}}function fe(e={}){let o=po(e.apiPath),r=e.fetch??globalThis.fetch,f=e.credentials??"include";async function c(d,l,h,y){let Z=await r(l,{...y,credentials:f});if(!Z.ok)throw new P(d,Z.status);let C;try{C=await Z.json()}catch{throw new P(d,502,"invalid-response")}let I=h.safeParse(C);if(!I.success)throw new P(d,502,"invalid-response");return I.data}function p(d,l){let h=u.parse(l);return`${d}?id=${encodeURIComponent(h)}`}function x(d,l,h){let y=p(d,l);return h?`${y}&download=1`:y}return{version:eo,paths:o,async openGuestSession(){return c("open guest session",`${o.stream}/session`,ao,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"})},async streamMessages(d,l={}){let h=Zo.parse(d),y=await r(o.stream,{method:"POST",credentials:f,headers:{"Content-Type":"application/json"},body:JSON.stringify(h),...l.signal?{signal:l.signal}:{}});if(!y.ok){let Z;if(y.status===409)try{let C=ne.safeParse(await y.json());if(C.success)Z=C.data}catch{}throw new P("send messages",y.status,"http",Z)}return y},async listSessions(d={}){let l=go.parse(d),h=new URLSearchParams;if(l.query)h.set("q",l.query);if(l.archived)h.set("archived","true");if(l.offset)h.set("offset",String(l.offset));if(l.limit!==25)h.set("limit",String(l.limit));let y=h.size?`?${h.toString()}`:"";return(await c("list sessions",`${o.sessions}${y}`,fo)).sessions},async getMessages(d){return(await c("load messages",p(o.messages,d),So)).messages},async getGuestHistory(d,l){return c("check guest history",`${p(o.messages,d)}&submissionId=${encodeURIComponent(ko.parse(l))}`,bo)},async renameSession(d,l){let h=To.parse({title:l});return c("rename session",p(o.sessions,d),No,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)})},async archiveSession(d){return c("archive session",p(o.sessionArchive,d),Oo,{method:"PUT"})},async deleteSession(d){return c("delete session",p(o.sessions,d),Ro,{method:"DELETE"})},getJobStatus(d){return c("load job status",p(o.jobStatus,d),Lo)},openContextSession(d){return c("open context session",o.contextSessions,jo,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ue.parse(d))})},runAction(d){let l=Eo.parse(d);return c("run action",o.actions,uo,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)})},async upload(d,l){let h=t.string().trim().min(1).max(255).parse(l),y=new FormData;return y.set("file",d,h),c("upload file",o.uploads,Mo,{method:"POST",body:y})},getUploadUrl(d,l=!1){return x(o.uploads,d,l)},getDocumentAttachmentUrl(d,l=!1){return x(o.documentAttachments,d,l)},getImageAttachmentUrl(d,l=!1){return x(o.imageAttachments,d,l)}}}function xe(e){switch(e){case"pending":case"processing":case"completed":case"failed":return e;default:return"unknown"}}function Uo(e){switch(e){case"pending":return"queued";case"processing":return"generating";case"completed":return"ready";case"failed":return"failed";case"unknown":return"status unknown";default:return"ready"}}function ye(e){return{status:e??"ready",label:Uo(e),isPending:e==="pending"||e==="processing"}}var fa=t.record(t.string(),t.unknown());var n={sessionControls:{k1xSpc:"xrvj5dj",kOIVth:"x167g77z",k7Eaqz:"xeuugli",k1K539:"xod5an3",kGuDYH:"xfifm61",kMwMTN:"x1ar3pfp",$$css:!0},sessionFilterSelect:{kzqmXN:"xh8yej3",k7Eaqz:"xeuugli",kAzted:"x141feeh x1c4ya5t",kGuDYH:"x4z9k3i xf2x79s",$$css:!0},composerHint:{k1xSpc:"x1lliihq",keoZOQ:"x1xmf6yo",kGuDYH:"x1j6dyjg",kLWn49:"x37zpob",kMwMTN:"x1ar3pfp",$$css:!0},shell:{k1xSpc:"xrvj5dj",kUk6DE:"x98rzlu",kAzted:"x2lwn1j",k7Eaqz:"xeuugli",kVQacm:"xb3r6kr",$$css:!0},root:{k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",kZKoxP:"xtdtrs8",kskxy:"x1wj9ous",kAzted:"x2lwn1j",k7Eaqz:"xeuugli",kVQacm:"xb3r6kr",$$css:!0},frame:{k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",k7Eaqz:"xeuugli",kAzted:"x2lwn1j",kVQacm:"xb3r6kr",kGO01o:"x198on2p xw27878",kOIVth:"x33pbmt",$$css:!0},room:{k1xSpc:"xrvj5dj",kumcoG:"x8z353p xf4kbi9",kOIVth:"x1rzw5jd",kUk6DE:"x98rzlu",kAzted:"x2lwn1j",k7Eaqz:"xeuugli",kVQacm:"xb3r6kr",$$css:!0},roomWithoutSessions:{kumcoG:"x1mkdm3x",$$css:!0},emptyThreadHead:{k1K539:"xod5an3",$$css:!0},emptyConversation:{kogj98:"x1ghz6dp",$$css:!0},mobileSessions:{k1xSpc:"x1s85apg x19y3i14",$$css:!0},sessions:{k1xSpc:"x1lliihq xubcuz8",k7Eaqz:"xeuugli",kAzted:"x2lwn1j",kORKVm:"x1odjw0f",$$css:!0},picker:{"--console-text-muted":"x1phc7po",k1xSpc:"xrvj5dj",k9llMU:"x1yn14it",kskxy:"x1j65ot3",kAzted:"x2lwn1j",kVQacm:"xb3r6kr",$$css:!0},thread:{k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",k7Eaqz:"xeuugli",kAzted:"x2lwn1j",kVQacm:"xb3r6kr",$$css:!0},threadHead:{k1xSpc:"x78zum5",kGNEyG:"x1pha0wt",kjj79g:"x1qughib",kOIVth:"x1c1vhfx",k7Eaqz:"xeuugli",k1K539:"x91k8ka",$$css:!0},title:{kogj98:"x1ghz6dp",kHjlTd:"xj0a0fe",kMwMTN:"xqvuw85",$$css:!0},headCopy:{k7Eaqz:"xeuugli",kUk6DE:"x98rzlu",$$css:!0},actions:{k1xSpc:"x78zum5",kwnvtZ:"x1a02dak",kGNEyG:"x6s0dn4",kOIVth:"x883omv",$$css:!0},sessionList:{k1xSpc:"xrvj5dj",kfiyM8:"x10ukxgv",kAzted:"x2lwn1j",k7Eaqz:"xeuugli",kORKVm:"x1odjw0f",$$css:!0},session:{k1xSpc:"xrvj5dj",kOIVth:"x17d4w8g",kzqmXN:"xh8yej3",k7Eaqz:"xeuugli",kmVPX3:"x1g8o3q3",kMzoRj:"xc342km",kt9PQ7:"xso031l",ksu8eU:"x1y0btm7",kVAM5u:"xy1lt07",kWkggS:"xjbqb8w",kMwMTN:"xqvuw85",k9WMMc:"xdpxx8g",kkrTdU:"x1ypdohk",kDPRdz:"x1711cle",k3Woio:"x16dl9wz",kiEn40:"x1bqaal",$$css:!0},activeSession:{kMwMTN:"x1myn341",$$css:!0},sessionTitle:{kMv6JI:"x5ddh9m",kGuDYH:"xif65rj",k63SB2:"xo1l8bm",kLWn49:"xfrs9s4",kHjlTd:"xj0a0fe",k1xSpc:"x104kibb",kgKLqz:"x1ua5tub",kJFfOR:"x1h7i4cw",kVQacm:"xb3r6kr",$$css:!0},timestamp:{kMv6JI:"xa9opjo",kGuDYH:"x1j6dyjg",kLWn49:"xa7kkou",kMwMTN:"x1ar3pfp",kHjlTd:"xj0a0fe",$$css:!0},summary:{kAzted:"x21xpn4",kGO01o:"xsag5q8",kMv6JI:"x5ddh9m",kGuDYH:"xfifm61",kMwMTN:"x1ar3pfp",kkrTdU:"x1ypdohk",$$css:!0},desktopContext:{k1xSpc:"x1lliihq xubcuz8",$$css:!0},context:{k7Eaqz:"xeuugli",kt9PQ7:"xso031l",kfdmCh:"x1q0q8m5",kL6WhQ:"xpqg30t",$$css:!0},contextBody:{k1xSpc:"xrvj5dj",kI3sdo:"x16dl9wz",kInvED:"x2ssjo2",kOIVth:"xou54vl",kskxy:"x1551h31 x9h7e8",kORKVm:"x1odjw0f",kGO01o:"x1l90r2v",kg3NbH:"xfn1xvj",k7Eaqz:"xeuugli",$$css:!0},contextItem:{k1xSpc:"xrvj5dj",kOIVth:"x17d4w8g",k7Eaqz:"xeuugli",kmVPX3:"x1b4vry6",kt9PQ7:"xso031l",kfdmCh:"x1q0q8m5",kL6WhQ:"xpqg30t",kMv6JI:"x5ddh9m",kGuDYH:"xfifm61",kLWn49:"x1dbl2gt",$$css:!0},threadScroll:{kUk6DE:"x98rzlu",kI3sdo:"x16dl9wz",kInvED:"x2ssjo2",kAzted:"x2lwn1j",k7Eaqz:"xeuugli",kORKVm:"x1odjw0f",kZeWKH:"xish69e",k5wCbM:"x1597r2g",k6w4Gs:"xgwpcrc",$$css:!0},manuscript:{k7Eaqz:"xeuugli",$$css:!0},turn:{k1xSpc:"xrvj5dj",kumcoG:"xpczwk3 xfs71jk",kOIVth:"xou54vl",kmVPX3:"x10czhz2",kt9PQ7:"xso031l",kfdmCh:"x1q0q8m5",kL6WhQ:"xpqg30t",k7Eaqz:"xeuugli",$$css:!0},speaker:{kLKAdn:"x1yrsyyn",kMv6JI:"xa9opjo",kGuDYH:"x1j6dyjg",kLWn49:"x1dbl2gt",kMwMTN:"x1ar3pfp",$$css:!0},turnBody:{k1xSpc:"xrvj5dj",kOIVth:"x1v2ro7d",k7Eaqz:"xeuugli",kMv6JI:"xssy22x",kGuDYH:"xosj86m",k63SB2:"xo1l8bm",kLWn49:"x11m8ghp",kMwMTN:"xqvuw85",kHjlTd:"xj0a0fe",$$css:!0},userBody:{k63SB2:"x1s688f",$$css:!0},paragraph:{kogj98:"x1ghz6dp",khDVqt:"x126k92a",kHjlTd:"xj0a0fe",$$css:!0},cards:{k1xSpc:"xrvj5dj",kOIVth:"x1v2ro7d",k7Eaqz:"xeuugli",$$css:!0},attachmentPreview:{k1xSpc:"x1lliihq",kzqmXN:"xh8yej3",ks0D6T:"x193iq5w",kZKoxP:"xt7dq6l",kskxy:"x14eurpq",kVIFPx:"x19kjcj4",kWkggS:"x18s3upu",$$css:!0},card:{k1xSpc:"xrvj5dj",kOIVth:"x883omv",k7Eaqz:"xeuugli",kmVPX3:"x1tamke2",kMzoRj:"xmkeg23",ksu8eU:"x1y0btm7",kVAM5u:"xy1lt07",kaIpWk:"x1sxf85j",kMv6JI:"x5ddh9m",kGuDYH:"xfifm61",k63SB2:"xo1l8bm",kLWn49:"x1dbl2gt",kHjlTd:"xj0a0fe",kXHlph:"xw2csxc",$$css:!0},kicker:{kMv6JI:"xa9opjo",kGuDYH:"x1j6dyjg",kMwMTN:"x1ar3pfp",$$css:!0},cardHeading:{kogj98:"x1ghz6dp",$$css:!0},cardText:{kogj98:"x1ghz6dp",kMv6JI:"x5ddh9m",kGuDYH:"xfifm61",kLWn49:"x1dbl2gt",$$css:!0},empty:{kogj98:"xhv1u6h",kMv6JI:"x5ddh9m",kGuDYH:"xfifm61",kLWn49:"x1dbl2gt",kMwMTN:"x1ar3pfp",kHjlTd:"xj0a0fe",$$css:!0},error:{kMwMTN:"x1mel2pz",$$css:!0},form:{k1xSpc:"xrvj5dj",kOIVth:"x1v2ro7d",k7Eaqz:"xeuugli",$$css:!0},composer:{kmuXW:"x2lah0s",k7Eaqz:"xeuugli",kLKAdn:"xz9dl7a",kEafiO:"x178xt8z",kPef9Z:"x13fuv20",kLZC3w:"xvg7k2t",$$css:!0},fieldLabel:{k1xSpc:"xrvj5dj",kOIVth:"x167g77z",kMv6JI:"x5ddh9m",kGuDYH:"xfifm61",kMwMTN:"xqvuw85",$$css:!0},input:{kzqmXN:"xh8yej3",kB7OPa:"x9f619",k7Eaqz:"xeuugli",kAzted:"xseoqlg",kskxy:"x19aweqf",kHenm0:"x288g5",kmVPX3:"xc7ga6q",kMzoRj:"xmkeg23",ksu8eU:"x1y0btm7",kVAM5u:"xy1lt07",kaIpWk:"x1sxf85j",kWkggS:"xjbqb8w",kMv6JI:"x5ddh9m",kGuDYH:"xif65rj",kLWn49:"x1evy7pa",kMwMTN:"xqvuw85",k3Woio:"x16dl9wz",kiEn40:"x7s97pk",$$css:!0},attachButton:{k1xSpc:"x3nfvp2",kGNEyG:"x6s0dn4",kAzted:"x1ba4aug x126n28w",kmVPX3:"x153ncpu",kB7OPa:"x9f619",kMzoRj:"xmkeg23",ksu8eU:"x1y0btm7",kVAM5u:"xy1lt07",kaIpWk:"x1sxf85j",kMv6JI:"x5ddh9m",kGuDYH:"xfifm61",kMwMTN:"xqvuw85",kkrTdU:"x1ypdohk",k8PahR:"xt2bx3g",kfQpEX:"x1fanpfn",$$css:!0},uploadInput:{kVAEAm:"x10l6tqk",kzqmXN:"x1i1rx1s",kZKoxP:"xjm9jq1",kz4h6p:"x1hyvwdk",kVQacm:"xb3r6kr",khDVqt:"xuxw1ft",$$css:!0},uploadList:{k1xSpc:"x78zum5",kwnvtZ:"x1a02dak",kOIVth:"x167g77z",kogj98:"xjgi5au",kmVPX3:"x1717udv",kH6xsr:"x3ct3a4",$$css:!0},upload:{k1xSpc:"x1rg5ohu",kogj98:"x1ghz6dp",ks0D6T:"x193iq5w",kMv6JI:"xa9opjo",kGuDYH:"x1j6dyjg",k63SB2:"xo1l8bm",kMwMTN:"x1ar3pfp",kHjlTd:"xj0a0fe",$$css:!0},button:{kAzted:"x1ba4aug",kmVPX3:"x153ncpu",kMzoRj:"xmkeg23",ksu8eU:"x1y0btm7",kVAM5u:"xy1lt07",kaIpWk:"x1sxf85j",kWkggS:"xjbqb8w",kMwMTN:"xqvuw85",kMv6JI:"x5ddh9m",kGuDYH:"xfifm61",kkrTdU:"x1ypdohk",k3Woio:"x16dl9wz",kiEn40:"x7s97pk",kWCcOm:"xijokvz",kYPGJ8:"xtgyt42",$$css:!0},primaryButton:{kWkggS:"x15vqgvx",kVAM5u:"xawfzfr",kMwMTN:"xb8ja0n",$$css:!0},subheading:{kogj98:"x1ghz6dp",kLWn49:"x1evy7pa",$$css:!0}};function s(e,...o){return`${e} ${Se(...o).className??""}`}var R=E(G(),1);function be(e){let{card:o,client:r}=e,f=mt({queryKey:["studio","chat","attachment-job",r.paths.jobStatus,o.jobId],queryFn:()=>r.getJobStatus(o.jobId??""),enabled:Boolean(o.jobId),retry:!1,refetchInterval:(C)=>C.state.data?.status==="pending"||C.state.data?.status==="processing"?2000:!1}),c=f.error instanceof P&&f.error.status===404,p=f.isError&&!c,x=ye(o.jobId?xe(f.data?.status):null),d=!o.jobId||c||!f.isError&&f.data!==void 0&&(x.status==="completed"||x.status==="unknown"),l=o.attachment.previewUrl??o.attachment.url,[h,y]=ke.useState(null),Z=p?"Status unavailable":o.jobId&&f.isPending?"Checking generation status":x.label;return R.jsxDEV("section",{className:s("studio-chat-card",n.card),"aria-label":o.title,children:[R.jsxDEV("span",{className:s("studio-chat-card-kicker",n.kicker),children:"Artifact"},void 0,!1,void 0,this),R.jsxDEV("strong",{children:o.title},void 0,!1,void 0,this),R.jsxDEV("span",{role:"status",className:s("studio-chat-card-description",n.cardText),children:Z},void 0,!1,void 0,this),o.description?R.jsxDEV("p",{className:s("studio-chat-card-description",n.cardText),children:o.description},void 0,!1,void 0,this):null,d&&o.attachment.mediaType.startsWith("image/")?h===l?R.jsxDEV("p",{role:"status",children:"Image preview unavailable. You can still open or download the file."},void 0,!1,void 0,this):R.jsxDEV("img",{className:s("studio-chat-attachment-preview",n.attachmentPreview),src:l,alt:o.title,loading:"lazy",onError:()=>y(l)},void 0,!1,void 0,this):null,d?R.jsxDEV("div",{className:s("studio-chat-card-actions",n.actions),children:[R.jsxDEV("a",{className:s("studio-chat-card-action",n.button),href:o.attachment.url,children:"Open"},void 0,!1,void 0,this),R.jsxDEV("a",{className:s("studio-chat-card-action",n.button),href:o.attachment.downloadUrl??o.attachment.url,download:o.attachment.filename??!0,children:"Download"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,p?R.jsxDEV(k,{type:"button",variant:"outline",onClick:()=>void f.refetch(),children:"Check status"},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}var N=E(yt(),1);var T=E(G(),1);function Ce(e){let[o,r]=N.useState(!1),[f,c]=N.useState(e.title),[p,x]=N.useState(!1),[d,l]=N.useState(null),h=N.useRef(!1),y=N.useRef(!1),Z=N.useRef(null);N.useEffect(()=>{if(o)Z.current?.focus()},[o]);let C=N.useRef(null);N.useEffect(()=>(h.current=!0,()=>{h.current=!1}),[]);let I=()=>{r(!1),l(null),requestAnimationFrame(()=>C.current?.querySelector("button")?.focus())},K=async()=>{if(y.current||!f.trim())return;y.current=!0,x(!0),l(null);try{if(await e.onRename(f.trim()),h.current)I()}catch(z){if(h.current)l(ze(z,"Rename failed. Your proposed title is kept.")||"Rename failed. Your proposed title is kept.")}finally{if(y.current=!1,h.current)x(!1)}};return T.jsxDEV(T.Fragment,{children:[T.jsxDEV("span",{ref:C,children:T.jsxDEV(k,{type:"button",variant:"ghost","aria-expanded":o,disabled:o,onClick:()=>{c(e.title),r(!0)},children:"Rename"},void 0,!1,void 0,this)},void 0,!1,void 0,this),o&&T.jsxDEV("form",{className:s("studio-chat-rename",n.sessionControls),onSubmit:(z)=>{z.preventDefault(),K()},children:[T.jsxDEV("label",{children:["Conversation title",T.jsxDEV(ve,{ref:Z,xstyle:n.sessionFilterSelect,value:f,onChange:(z)=>c(z.target.value),required:!0,maxLength:48,disabled:p},void 0,!1,void 0,this)]},void 0,!0,void 0,this),T.jsxDEV("div",{className:s("",n.actions),children:[T.jsxDEV(k,{type:"submit",disabled:p||!f.trim(),children:p?"Renaming…":"Save title"},void 0,!1,void 0,this),T.jsxDEV(k,{type:"button",variant:"ghost",disabled:p,onClick:I,children:"Cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),d&&T.jsxDEV("p",{role:"alert",children:d},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var D=E(yt(),1);var V=E(G(),1),St="(max-width: 860px)";function Ze(e){let[o,r]=D.useState(!1),[f,c]=D.useState(!1),[p,x]=D.useState(!1),d=D.useRef(null),l=D.useRef(null);return D.useEffect(()=>{let h=window.matchMedia(St),y=()=>{if(h.matches&&l.current?.parentElement?.contains(document.activeElement))d.current?.querySelector("button")?.focus();if(!h.matches&&document.activeElement===d.current?.querySelector("button"))l.current?.focus();if(r(h.matches),!h.matches)x(!1)};return y(),h.addEventListener("change",y),()=>h.removeEventListener("change",y)},[]),D.useEffect(()=>x(!1),[e.contextKey]),V.jsxDEV("div",{className:s("studio-chat-working-set-control",n.context),children:[V.jsxDEV("details",{className:s("studio-chat-working-set",n.desktopContext),open:f,onBlurCapture:(h)=>{if(h.relatedTarget===null&&window.matchMedia(St).matches)d.current?.querySelector("button")?.focus()},onToggle:(h)=>c(h.currentTarget.open),children:[V.jsxDEV("summary",{ref:l,className:s("studio-chat-working-set-summary",n.summary),children:"Working set"},void 0,!1,void 0,this),!o&&e.children]},void 0,!0,void 0,this),V.jsxDEV("span",{ref:d,onBlurCapture:(h)=>{if(h.relatedTarget===null&&!window.matchMedia(St).matches)l.current?.focus()},className:s("studio-chat-working-set-mobile",n.mobileSessions),children:V.jsxDEV(k,{className:"studio-chat-working-set-trigger",variant:"ghost",type:"button","aria-haspopup":"dialog","aria-expanded":p,onClick:()=>x(!0),children:"Working set"},void 0,!1,void 0,this)},void 0,!1,void 0,this),V.jsxDEV(kt,{open:o&&p,onOpenChange:x,children:V.jsxDEV(bt,{className:s("studio-chat-working-set-dialog",zt.readable),"aria-describedby":void 0,onCloseAutoFocus:(h)=>{h.preventDefault(),(window.matchMedia(St).matches?d.current?.querySelector("button"):l.current)?.focus()},children:[V.jsxDEV(vt,{children:"Working set"},void 0,!1,void 0,this),e.children]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var we=".md,.txt,.markdown,.png,.jpg,.jpeg,.webp,.gif,.pdf,text/plain,text/markdown,text/x-markdown,image/png,image/jpeg,image/webp,image/gif,application/pdf",Ae=1e5,Ie=5000000;var Po=new Map([[".png","image/png"],[".jpg","image/jpeg"],[".jpeg","image/jpeg"],[".webp","image/webp"],[".gif","image/gif"],[".pdf","application/pdf"]]),Ea=new Set(Po.values());var m=E(yt(),1);function je(){return{messageId:"assistant-stream",text:"",cards:[],approvals:[],progress:[],statuses:[],toolInputs:{},finished:!1,error:null}}function Te(e,o){switch(o.type){case"start":return o.messageId?{...e,messageId:o.messageId}:e;case"text-delta":return{...e,text:`${e.text}${o.delta}`};case"tool-input-available":return{...e,toolInputs:{...e.toolInputs,[o.toolCallId]:{toolCallId:o.toolCallId,toolName:o.toolName,input:o.input,...o.title?{title:o.title}:{}}}};case"tool-approval-request":{let r=e.toolInputs[o.toolCallId],f={approvalId:o.approvalId,toolCallId:o.toolCallId,toolName:r?.toolName??"tool",...$o(r?.input)?{input:r.input}:{},...r?.title?{title:r.title}:{}};return{...e,approvals:[...e.approvals.filter((c)=>c.approvalId!==o.approvalId),f]}}case"tool-output-available":case"tool-output-error":case"tool-output-denied":return{...e,approvals:e.approvals.filter((r)=>r.toolCallId!==o.toolCallId)};case"data-progress":return{...e,progress:[...e.progress,o.data]};case"data-status":return{...e,statuses:[...e.statuses,o.data]};case"data-actions":case"data-sources":case"data-attachment":return{...e,cards:[...e.cards,o.data]};case"finish":return{...e,finished:!0};case"abort":return{...e,finished:!0,error:o.reason??"Response stopped"};case"error":return{...e,finished:!0,error:o.errorText};default:return e}}function Dt(e){return{id:e.messageId,role:"assistant",content:e.text,...e.cards.length>0?{cards:e.cards}:{}}}function Ne(e,o){let r={id:e.approvalId,approved:o,toolCallId:e.toolCallId,toolName:e.toolName,...e.input?{input:e.input}:{},...e.title?{title:e.title}:{}};return qt.parse({role:"assistant",parts:[{state:"approval-responded",toolCallId:e.toolCallId,toolName:e.toolName,...e.input?{input:e.input}:{},...e.title?{title:e.title}:{},approval:r}]})}function $o(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}var a=E(G(),1),qo=`Text/Markdown up to ${Ae/1000} KB; PNG, JPEG, WebP, GIF or PDF up to ${Ie/1e6} MB.`,J={sessions:["studio","chat","sessions"],messages:(e)=>["studio","chat","messages",e]};function sn(e){let o=Re(),r=m.useMemo(()=>fe({apiPath:e.apiPath,fetch:(i,g)=>globalThis.fetch(i,g)}),[e.apiPath]),[f]=m.useState(()=>new Me),c=e.draftStore??f,p=Ct(e.apiPath,e.sessionId),x=m.useRef(p);x.current=p;let{text:d,uploads:l}=m.useSyncExternalStore(c.subscribe,()=>c.read(p),()=>c.read(p)),h=m.useCallback((i)=>c.update(p,{text:i}),[c,p]),y=m.useCallback((i)=>c.update(p,{uploads:typeof i==="function"?i(c.read(p).uploads):i}),[c,p]),[Z,C]=m.useState([]),[I,K]=m.useState(null),[z,Q]=m.useState(!1),[_t,wt]=m.useState(!1),[H,At]=m.useState(!1),[B,rt]=m.useState([]),F=m.useRef(null),[Vt,Y]=m.useState(null),[q,ht]=m.useState(null);m.useEffect(()=>{e.onNavigationStateChange?.({hasDraft:Boolean(d||l.length||B.length),busy:z||H})},[d,l,B,z,H,e.onNavigationStateChange]),m.useEffect(()=>()=>e.onNavigationStateChange?.({hasDraft:!1,busy:!1}),[e.onNavigationStateChange]);let Ve=Ue(),[Ft,It]=m.useState(!1),Wt=m.useRef(null),Fe=m.useRef(null),lt=m.useRef(null),dt=m.useRef(!0),[We,jt]=m.useState(!1),j=m.useRef(null),L=m.useRef(!1);m.useEffect(()=>(L.current=!0,()=>{L.current=!1,F.current=null;let i=j.current;j.current=null,i?.abort()}),[]);let ct=m.useRef(null),Tt=m.useRef(null),[ut,Ge]=m.useState(""),[pt,Gt]=m.useState({query:"",archived:!1,offset:0});m.useEffect(()=>{let i=window.setTimeout(()=>Gt((g)=>g.query===ut.trim()?g:{...g,query:ut.trim(),offset:0}),250);return()=>window.clearTimeout(i)},[ut]);let X=mt({queryKey:[...J.sessions,pt],queryFn:()=>r.listSessions(pt)}),tt=mt({queryKey:J.messages(e.sessionId??""),queryFn:()=>r.getMessages(e.sessionId??""),enabled:e.sessionId!==null&&!z&&Z.length===0}),ft=X.data??[],Nt=X.isPending||Boolean(X.error)||ft.length>0||ut.length>0||pt.archived||pt.offset>0,Ot=tt.data??[],W=ft.find((i)=>i.id===e.sessionId)??o.getQueriesData({queryKey:J.sessions}).flatMap(([,i])=>i??[]).find((i)=>i.id===e.sessionId),Jt=W?.archived===!0,Kt={search:ut,view:pt,error:X.error?"Sessions could not be loaded.":null,onRetry:()=>{X.refetch()},onSearch:Ge,onView:Gt},_=m.useMemo(()=>{let i=[...Ot,...Z];if(I&&(I.text||I.cards.length>0))i.push(Dt(I));return i},[Z,Ot,I]),Je=m.useMemo(()=>_.flatMap((i)=>(i.cards??[]).filter((g)=>g.kind==="sources"||g.kind==="attachment")),[_]);m.useEffect(()=>{if(e.sessionId&&Tt.current===e.sessionId){Tt.current=null;return}let i=j.current;j.current=null,i?.abort(),Q(!1),C([]),K(null),At(!1),F.current=null,rt([]),wt(!1),Y(null),ht(null)},[e.sessionId]),m.useEffect(()=>{dt.current=!0,jt(!1)},[e.sessionId]),m.useEffect(()=>{let i=lt.current,g=i?.firstElementChild;if(!i||!g)return;let S=()=>{if(dt.current)i.scrollTop=i.scrollHeight};S();let b=new ResizeObserver(S);return b.observe(g),()=>b.disconnect()},[]),m.useEffect(()=>{if(dt.current){let i=lt.current;if(i)i.scrollTop=i.scrollHeight}},[I,_.length]);let M=m.useCallback((i,g=!1)=>{e.navigate(Le(e.studioBasePath,i),{preserveWork:g}),It(!1)},[e.navigate,e.studioBasePath]);m.useEffect(()=>{if(!e.handoff||e.sessionId)return;let i=`${e.handoff.sourceId}\x00${e.handoff.itemId}`;if(ct.current===i)return;ct.current=i,h(e.handoff.prompt),Y(null),r.openContextSession({version:1,sourceId:e.handoff.sourceId,itemId:e.handoff.itemId,titleSeed:e.handoff.label}).then(({conversationId:g})=>{if(!L.current||x.current!==p||ct.current!==i)return;c.adopt(p,Ct(e.apiPath,g)),M(g,!0)}).catch((g)=>{if(!L.current||x.current!==p||ct.current!==i)return;ct.current=null,Y(gt(g,"Context could not be attached"))})},[r,M,e.handoff,e.sessionId,e.apiPath,c,p,h]);let xt=m.useCallback(async(i,g,S,b)=>{j.current?.abort();let v=new AbortController;j.current=v,Q(!0),Y(null),ht(null);let U=!1,w={...je(),messageId:crypto.randomUUID()};K(w);let O=!1,at=!1,nt=()=>{if(at||!w.text&&w.cards.length===0)return;at=!0;let st=Dt(w);C((A)=>[...A,st]),K({...w,text:"",cards:[]})};try{let st=await r.streamMessages({id:i,messages:g,trigger:"submit-message"},{signal:v.signal});O=!0,S?.();for await(let A of he(st)){if(j.current!==v)return O;if(A.type==="abort")U=!0;w=Te(w,A),K(w)}if(j.current!==v)return O;if(nt(),v.signal.aborted||U||w.error!==null||!w.finished)return ht({kind:v.signal.aborted||U?"stopped":w.error!==null?"failed":"disconnected",...w.error?{detail:w.error}:{},...b?{retry:b}:{}}),O;try{let A=await r.getMessages(i);if(j.current!==v)return O;o.setQueryData(J.messages(i),A),C([]),K(null)}catch{}await o.invalidateQueries({queryKey:J.sessions})}catch(st){if(j.current!==v)return O;nt(),ht({kind:v.signal.aborted?"stopped":O?"disconnected":"failed",...!v.signal.aborted?{detail:gt(st,"Chat could not complete the response")}:{},...b?{retry:b}:{}})}finally{if(j.current===v)j.current=null,Q(!1)}return O},[r,o]),Rt=m.useCallback(async(i)=>{let g=i.trim();if(!g&&l.length===0||z||H||B.length>0)return;let S=e.sessionId??`web-${crypto.randomUUID()}`,b=Ct(e.apiPath,S),v=crypto.randomUUID(),U=l.map((A)=>({type:"data-upload",data:{ref:A.ref}})),w=[...g?[{type:"text",text:g}]:[],...U];C((A)=>[...A,{id:v,role:"user",content:g||l.map((et)=>et.filename).join(", ")}]);let O=[...l],at=c.read(p),nt=at.text===i;if(nt||O.length>0)c.update(p,{text:nt?"":at.text,uploads:at.uploads.filter((A)=>!O.some((et)=>et.id===A.id))});if(!await xt(S,[{id:v,role:"user",parts:w}],()=>{if(!e.sessionId&&L.current&&x.current===p)c.adopt(p,b),Tt.current=S,M(S,!0)},{text:i,uploads:[...l]})&&(x.current===b||!e.sessionId&&x.current===p)){C((Lt)=>Lt.filter((Mt)=>Mt.id!==v));let A=x.current,et=c.read(A);c.update(A,{...nt&&!et.text?{text:i}:{},uploads:[...O.filter((Lt)=>!et.uploads.some((Mt)=>Mt.id===Lt.id)),...et.uploads]})}},[M,e.sessionId,e.apiPath,c,p,xt,z,H,l,B.length]),Ke=(i)=>{i.preventDefault(),Rt(d)},Qt=m.useCallback(async(i,g)=>{if(!e.sessionId||z)return;await xt(e.sessionId,[Ne(i,g)])},[e.sessionId,xt,z]),Qe=m.useCallback(async(i)=>{if(i.type==="prompt"){await Rt(i.prompt);return}if(!e.sessionId||z)return;Q(!0),Y(null);try{let g=await r.runAction({conversationId:e.sessionId,action:{type:"event",event:i.event,...i.fromState?{fromState:i.fromState}:{}}});if(!L.current||x.current!==p)return;C((S)=>[...S,{id:crypto.randomUUID(),role:"assistant",content:g.text,...g.cards?{cards:g.cards}:{}}])}catch(g){if(L.current&&x.current===p)Y(gt(g,"Chat action failed"))}finally{if(L.current&&x.current===p)Q(!1)}},[r,e.sessionId,z,Rt,p]),Et=m.useCallback(async(i)=>{if(F.current||i.length===0)return;let g=Symbol();if(F.current=g,At(!0),rt((S)=>[...S.filter((b)=>!i.some((v)=>v.id===b.id)),...i.map((b)=>({id:b.id,file:b.file,status:"uploading"}))]),await Promise.all(i.map(async(S)=>{try{let b=await r.upload(S.file,S.file.name);if(F.current!==g||x.current!==p)return;y((v)=>[...v,b]),rt((v)=>v.filter((U)=>U.id!==S.id))}catch(b){if(F.current!==g||x.current!==p)return;rt((v)=>v.map((U)=>U.id===S.id?{...U,status:"failed",error:gt(b,"Upload failed")}:U))}})),F.current===g)F.current=null,At(!1)},[r,p,y]),Ye=m.useCallback(async(i)=>{let g=Array.from(i.target.files??[]);i.target.value="",await Et(g.map((S)=>({id:crypto.randomUUID(),file:S,status:"uploading"})))},[Et]),Xe=m.useCallback(async()=>{if(!e.sessionId||z||H||d||l.length||B.length)return;Q(!0),wt(!0);try{if(await r.archiveSession(e.sessionId),await o.invalidateQueries({queryKey:J.sessions}),L.current&&x.current===p)M(void 0,!0)}catch(i){if(L.current&&x.current===p)Y(gt(i,"Conversation could not be archived"))}finally{if(L.current&&x.current===p)Q(!1),wt(!1)}},[r,M,e.sessionId,o,z,H,d,l.length,B.length,p]),Yt=Object.fromEntries(e.workspaces.flatMap((i)=>i.badge===void 0?[]:[[i.id,i.badge]]));return a.jsxDEV("div",{className:s("studio",zt.frame,n.root),"data-view":"chat","data-studio-shell":"",children:[a.jsxDEV(He,{contextLabel:"Chat",navigation:{types:e.types,workspaces:e.workspaces,activeEntityType:null,activeWorkspaceId:Ht,workspaceBadges:Yt,selectEntityType:e.selectEntityType,selectWorkspace:e.selectWorkspace}},void 0,!1,void 0,this),a.jsxDEV("div",{className:Bt("studio-chat-shell",n.shell,Zt.shell,Ve&&Zt.shellCollapsed),children:[a.jsxDEV("aside",{className:Bt("rail studio-chat-studio-rail",Zt.rail),children:a.jsxDEV($e,{renderMode:"desktop",types:e.types,active:null,onSelect:e.selectEntityType,workspaces:e.workspaces,activeWorkspace:Ht,workspaceBadges:Yt,onSelectWorkspace:e.selectWorkspace},void 0,!1,void 0,this)},void 0,!1,void 0,this),a.jsxDEV("main",{className:s("studio-chat-workspace",n.frame,qe.inset),children:[a.jsxDEV("div",{children:a.jsxDEV(_e,{model:{title:"Chat",totals:[],access:Be("trusted")},action:a.jsxDEV("div",{className:s("studio-chat-head-actions",n.actions),children:[a.jsxDEV("span",{ref:Wt,className:s("studio-chat-session-picker-trigger",Nt&&n.mobileSessions),children:a.jsxDEV(k,{"aria-expanded":Ft,"aria-haspopup":"dialog",variant:"outline",type:"button",onClick:()=>It(!0),children:"Sessions"},void 0,!1,void 0,this)},void 0,!1,void 0,this),a.jsxDEV(k,{type:"button",onClick:()=>M(),children:"New conversation"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),a.jsxDEV(kt,{open:Ft,onOpenChange:(i)=>{It(i)},children:a.jsxDEV(bt,{"aria-describedby":void 0,onCloseAutoFocus:(i)=>{i.preventDefault(),Wt.current?.querySelector("button")?.focus()},children:[a.jsxDEV(vt,{children:"Conversations"},void 0,!1,void 0,this),a.jsxDEV(Oe,{...Kt,popup:!0,activeSessionId:e.sessionId,loading:X.isPending,sessions:ft,onNew:()=>M(),onSelect:M},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),a.jsxDEV("div",{className:s("studio-chat-room",n.room,!Nt&&n.roomWithoutSessions),children:[Nt&&a.jsxDEV(Oe,{...Kt,activeSessionId:e.sessionId,loading:X.isPending,sessions:ft,onNew:()=>M(),onSelect:M},void 0,!1,void 0,this),a.jsxDEV("section",{className:s("studio-chat-thread",n.thread),"aria-label":"Conversation",children:[a.jsxDEV("header",{className:s("studio-chat-thread-head",n.threadHead,!e.sessionId&&_.length===0&&n.emptyThreadHead),children:[a.jsxDEV("div",{className:s("studio-chat-head-copy",n.headCopy),children:[a.jsxDEV("h2",{className:s("studio-chat-session-heading",n.title,ot.secondaryDisplay),children:W?.title??(e.sessionId?"Conversation":"New conversation")},void 0,!1,void 0,this),W&&a.jsxDEV(Ce,{title:W.title,onRename:async(i)=>{let g=await r.renameSession(W.id,i);if(!g.renamed)throw Error("The conversation could not be renamed.");o.setQueriesData({queryKey:J.sessions},(S)=>S?.map((b)=>b.id===W.id?{...b,title:g.title}:b)),o.invalidateQueries({queryKey:J.sessions})}},W.id,!1,void 0,this),Jt&&a.jsxDEV("p",{role:"status",children:"Archived conversation. New messages here remain archived."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),e.sessionId&&!Jt?a.jsxDEV(k,{className:"studio-chat-header-action",variant:"ghost",type:"button",onClick:()=>void Xe(),disabled:z||H||Boolean(d)||l.length>0||B.length>0,title:d||l.length||B.length?"Send or clear the draft before archiving":void 0,children:_t?"Archiving…":"Archive"},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),(e.sessionId!==null||_.length>0)&&a.jsxDEV(Ze,{contextKey:e.sessionId,children:a.jsxDEV(Fo,{cards:Je,messages:_,progress:I?.progress??[],session:W},void 0,!1,void 0,this)},void 0,!1,void 0,this),a.jsxDEV("div",{ref:lt,tabIndex:0,role:"region","aria-label":"Conversation messages",onScroll:(i)=>{let g=i.currentTarget,S=g.scrollHeight-g.clientHeight-g.scrollTop<=48;dt.current=S,jt(!S)},className:s("studio-chat-thread-scroll",n.threadScroll),children:a.jsxDEV("div",{className:s("studio-chat-manuscript",n.manuscript),children:[tt.error&&a.jsxDEV("section",{role:"alert",children:[a.jsxDEV("p",{children:[Ot.length>0?"Showing previously loaded messages. ":"","Conversation could not be loaded."]},void 0,!0,void 0,this),a.jsxDEV(k,{type:"button",variant:"ghost",disabled:tt.isFetching,onClick:()=>void tt.refetch(),children:"Retry conversation"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),tt.isPending&&e.sessionId&&_.length===0?a.jsxDEV("p",{className:s("studio-chat-empty",n.empty),children:"Opening conversation…"},void 0,!1,void 0,this):null,!tt.error&&(!e.sessionId||!tt.isPending)&&_.length===0?a.jsxDEV(Do,{},void 0,!1,void 0,this):null,_.map((i)=>a.jsxDEV(Ho,{message:i,client:r,onAction:Qe,onApproval:Qt},i.id,!1,void 0,this)),I?.approvals.map((i)=>a.jsxDEV(_o,{approval:i,disabled:z,onDecision:Qt},i.approvalId,!1,void 0,this)),z?a.jsxDEV("p",{className:s("studio-chat-stream-status",n.empty),role:"status",children:"Working…"},void 0,!1,void 0,this):null,q&&a.jsxDEV("section",{className:s("studio-chat-interruption",n.empty),role:q.kind==="stopped"?"status":"alert","aria-atomic":"true",children:[a.jsxDEV("strong",{children:q.kind==="stopped"?"Stopped":q.kind==="disconnected"?"Connection lost":"Response failed"},void 0,!1,void 0,this),a.jsxDEV("p",{children:"Any received text is kept here. Stopping the response does not undo completed actions; the server may still be working."},void 0,!1,void 0,this),q.detail&&a.jsxDEV("p",{children:q.detail},void 0,!1,void 0,this),q.retry&&a.jsxDEV(a.Fragment,{children:[a.jsxDEV("p",{children:"Sending again may repeat completed actions. Review the request before sending."},void 0,!1,void 0,this),a.jsxDEV(k,{type:"button",variant:"ghost",disabled:z||H||Boolean(d)||l.length>0,onClick:()=>{if(!q.retry||d||l.length>0)return;h(q.retry.text),y([...q.retry.uploads]),lt.current?.closest(".studio-chat-thread")?.querySelector("textarea")?.focus()},children:"Review retry in composer"},void 0,!1,void 0,this),(d||l.length>0)&&a.jsxDEV("p",{children:"Your composer draft is unchanged. Send or clear it before restoring this request."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Vt?a.jsxDEV("p",{className:s("studio-chat-error",n.empty,n.error),role:"alert",children:Vt},void 0,!1,void 0,this):null,a.jsxDEV("div",{ref:Fe},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),a.jsxDEV(Vo,{onJumpToLatest:We?()=>{dt.current=!0,jt(!1);let i=lt.current;if(i)i.focus({preventScroll:!0}),i.scrollTop=i.scrollHeight}:void 0,draft:d,sending:z,uploading:H,uploads:l,uploadAttempts:B,onRetryUpload:(i)=>void Et([i]),onDismissUpload:(i)=>rt((g)=>g.filter((S)=>S.id!==i)),onDraft:h,locked:_t,onRemoveUpload:(i)=>y((g)=>g.filter((S)=>S.id!==i)),onFiles:Ye,onSubmit:Ke,onStop:j.current?()=>j.current?.abort():void 0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Oe(e){return a.jsxDEV("aside",{className:e.popup?s("studio-chat-session-picker",n.picker):s("studio-chat-sessions",n.sessions),"aria-label":"Chat sessions",children:[e.popup&&a.jsxDEV("header",{className:s("studio-chat-sessions-head",n.threadHead),children:[a.jsxDEV("div",{className:s("studio-chat-head-copy",n.headCopy),children:a.jsxDEV("h2",{className:s("studio-chat-sessions-title",n.subheading,ot.section),children:"Sessions"},void 0,!1,void 0,this)},void 0,!1,void 0,this),a.jsxDEV("button",{className:s("studio-chat-new",n.button),type:"button","aria-label":"New conversation",onClick:e.onNew,children:"+"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),a.jsxDEV("div",{className:s("studio-chat-session-controls",n.sessionControls),children:[a.jsxDEV(Pe,{label:"Search conversations",placeholder:"Search conversations",value:e.search,onChange:e.onSearch},void 0,!1,void 0,this),a.jsxDEV(Ee,{xstyle:n.sessionFilterSelect,"aria-label":"Show conversations",value:e.view.archived?"archived":"active",onChange:(o)=>e.onView({...e.view,archived:o.target.value==="archived",offset:0}),children:[a.jsxDEV("option",{value:"active",children:"Active conversations"},void 0,!1,void 0,this),a.jsxDEV("option",{value:"archived",children:"Archived conversations"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),(e.view.offset>0||e.sessions.length>=25)&&a.jsxDEV("div",{className:s("",n.actions),"aria-label":"Conversation pages",role:"group",children:[a.jsxDEV(k,{type:"button",variant:"ghost",size:"sm",disabled:e.loading||e.view.offset===0,onClick:()=>e.onView({...e.view,offset:Math.max(0,e.view.offset-25)}),children:"Previous"},void 0,!1,void 0,this),a.jsxDEV(k,{type:"button",variant:"ghost",size:"sm",disabled:e.loading||e.sessions.length<25,onClick:()=>e.onView({...e.view,offset:e.view.offset+25}),children:"Next"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),e.error&&a.jsxDEV("p",{role:"alert",children:[e.error," ",a.jsxDEV(k,{type:"button",variant:"ghost",onClick:e.onRetry,children:"Retry sessions"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),a.jsxDEV("div",{className:s("studio-chat-session-list",n.sessionList),children:[e.loading?a.jsxDEV("p",{className:s("studio-chat-empty",n.empty),children:"Loading sessions…"},void 0,!1,void 0,this):null,!e.loading&&!e.error&&e.sessions.length===0?a.jsxDEV("p",{className:s("studio-chat-empty",n.empty),children:e.view.query?"No conversations match this search.":e.view.offset>0?"No more conversations.":e.view.archived?"No archived conversations.":"No conversations yet."},void 0,!1,void 0,this):null,e.sessions.map((o)=>a.jsxDEV("button",{className:s("studio-chat-session",n.session,o.id===e.activeSessionId&&n.activeSession),"data-active":o.id===e.activeSessionId?"true":"false",type:"button",onClick:()=>e.onSelect(o.id),children:[a.jsxDEV("strong",{className:s("studio-chat-session-title",n.sessionTitle),children:o.title},void 0,!1,void 0,this),a.jsxDEV("time",{className:s("studio-chat-session-time",n.timestamp),dateTime:o.lastActiveAt,title:o.lastActiveAt,children:Wo(o.lastActiveAt)},void 0,!1,void 0,this)]},o.id,!0,void 0,this))]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Do(){return a.jsxDEV("section",{className:s("studio-chat-empty",n.empty,n.emptyConversation),"aria-label":"New conversation",children:a.jsxDEV("p",{className:s("",n.cardText),children:"No messages yet. Your draft stays in the composer until you send it."},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function Ho(e){return a.jsxDEV("article",{className:s("studio-chat-turn",n.turn),"data-role":e.message.role,children:[a.jsxDEV("span",{className:s("studio-chat-turn-label",n.speaker),children:e.message.role==="user"?"You":"Brain"},void 0,!1,void 0,this),a.jsxDEV("div",{className:s("studio-chat-turn-body",n.turnBody,e.message.role==="user"&&n.userBody),children:[e.message.content?e.message.role==="assistant"?a.jsxDEV(De,{className:s("studio-chat-prose",n.cards),presentation:"chat",children:e.message.content},void 0,!1,void 0,this):a.jsxDEV("p",{className:s("studio-chat-text",n.paragraph),children:e.message.content},void 0,!1,void 0,this):null,e.message.attachments?.map((o)=>a.jsxDEV("p",{className:s("studio-chat-upload",n.upload),children:o.filename},`${o.filename}-${o.createdAt}`,!1,void 0,this)),e.message.cards?.length?a.jsxDEV("div",{className:s("studio-chat-cards",n.cards),children:e.message.cards.map((o)=>a.jsxDEV(Bo,{card:o,client:e.client,onAction:e.onAction,onApproval:e.onApproval},`${o.kind}-${o.id}`,!1,void 0,this))},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Bo(e){let{card:o}=e;if(o.kind==="actions")return a.jsxDEV("section",{className:s("studio-chat-card",n.card),children:[a.jsxDEV("span",{className:s("studio-chat-card-kicker",n.kicker),children:"Actions"},void 0,!1,void 0,this),o.title?a.jsxDEV("strong",{children:o.title},void 0,!1,void 0,this):null,a.jsxDEV("div",{className:s("studio-chat-card-actions",n.actions),children:o.actions.map((c)=>a.jsxDEV("button",{className:s("studio-chat-card-action",n.button),type:"button",onClick:()=>void e.onAction(c),children:c.label},c.id,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(o.kind==="sources")return a.jsxDEV("section",{className:s("studio-chat-card",n.card),children:[a.jsxDEV("span",{className:s("studio-chat-card-kicker",n.kicker),children:"Sources"},void 0,!1,void 0,this),a.jsxDEV("ul",{children:o.sources.map((c)=>a.jsxDEV("li",{children:c.url?a.jsxDEV("a",{href:c.url,children:c.title??c.source},void 0,!1,void 0,this):c.title??c.source},c.id,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(o.kind==="attachment")return a.jsxDEV(be,{card:o,client:e.client},void 0,!1,void 0,this);let r=o.state==="approval-requested",f={approvalId:o.id,toolCallId:o.toolCallId??o.id,toolName:o.toolName,...o.input?{input:o.input}:{},...o.summary?{title:o.summary}:{}};return a.jsxDEV("section",{className:s("studio-chat-card",n.card),children:[a.jsxDEV("span",{className:s("studio-chat-card-kicker",n.kicker),children:r?"Approval required":"Approval record"},void 0,!1,void 0,this),a.jsxDEV("strong",{children:o.summary},void 0,!1,void 0,this),o.preview?a.jsxDEV("p",{className:s("studio-chat-card-preview",n.paragraph),children:o.preview},void 0,!1,void 0,this):null,r?a.jsxDEV("div",{className:s("studio-chat-approval-actions",n.actions),children:[a.jsxDEV("button",{className:s("studio-chat-approval-action",n.button),type:"button",onClick:()=>void e.onApproval(f,!1),children:"Decline"},void 0,!1,void 0,this),a.jsxDEV("button",{className:s("studio-chat-approval-action",n.button,n.primaryButton),"data-primary":"true",type:"button",onClick:()=>void e.onApproval(f,!0),children:"Approve"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)}function _o(e){return a.jsxDEV("section",{className:s("studio-chat-approval",n.card),children:[a.jsxDEV("span",{className:s("studio-chat-card-kicker",n.kicker),children:"Approval required"},void 0,!1,void 0,this),a.jsxDEV("strong",{children:e.approval.title??e.approval.toolName},void 0,!1,void 0,this),a.jsxDEV("div",{className:s("studio-chat-approval-actions",n.actions),children:[a.jsxDEV("button",{className:s("studio-chat-approval-action",n.button),type:"button",disabled:e.disabled,onClick:()=>void e.onDecision(e.approval,!1),children:"Decline"},void 0,!1,void 0,this),a.jsxDEV("button",{className:s("studio-chat-approval-action",n.button,n.primaryButton),"data-primary":"true",type:"button",disabled:e.disabled,onClick:()=>void e.onDecision(e.approval,!0),children:"Approve"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Vo(e){let o=(r)=>{if(r.key==="Enter"&&!r.shiftKey&&!r.nativeEvent.isComposing)r.preventDefault(),r.currentTarget.form?.requestSubmit()};return a.jsxDEV("footer",{className:s("studio-chat-composer",n.composer),children:[e.onJumpToLatest&&a.jsxDEV(k,{type:"button",variant:"ghost",onClick:e.onJumpToLatest,children:"Jump to latest ↓"},void 0,!1,void 0,this),e.uploadAttempts.length>0&&a.jsxDEV("ul",{className:s("studio-chat-upload-list",n.uploadList),"aria-label":"File upload progress",children:e.uploadAttempts.map((r)=>a.jsxDEV("li",{className:s("studio-chat-upload",n.upload),children:[a.jsxDEV("span",{role:r.status==="failed"?"alert":"status",children:[r.file.name,":"," ",r.status==="uploading"?"Uploading…":r.error??"Upload failed"]},void 0,!0,void 0,this),r.status==="failed"&&a.jsxDEV(a.Fragment,{children:[a.jsxDEV(k,{type:"button",variant:"ghost",size:"sm","aria-label":`Retry uploading ${r.file.name}`,disabled:e.uploading||e.sending||e.locked,onClick:()=>e.onRetryUpload(r),children:"Retry"},void 0,!1,void 0,this),a.jsxDEV(k,{type:"button",variant:"ghost",size:"sm","aria-label":`Dismiss failed upload ${r.file.name}`,onClick:()=>e.onDismissUpload(r.id),children:"Dismiss"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},r.id,!0,void 0,this))},void 0,!1,void 0,this),e.uploads.length>0?a.jsxDEV("div",{className:s("studio-chat-upload-list",n.uploadList),children:e.uploads.map((r)=>a.jsxDEV("span",{className:s("studio-chat-upload",n.upload),children:[r.filename," ",a.jsxDEV(k,{type:"button",variant:"ghost",size:"sm","aria-label":`Remove ${r.filename} from message`,disabled:e.locked,onClick:()=>e.onRemoveUpload(r.id),children:"×"},void 0,!1,void 0,this)]},r.id,!0,void 0,this))},void 0,!1,void 0,this):null,a.jsxDEV("form",{className:s("studio-chat-composer-form",n.form),onSubmit:e.onSubmit,children:[a.jsxDEV("label",{className:s("studio-chat-message-label",n.fieldLabel),children:["Message",a.jsxDEV("textarea",{className:s("studio-chat-message",n.input),"aria-label":"Message","aria-describedby":"studio-chat-composer-hint",placeholder:"Write to your brain…",value:e.draft,disabled:e.locked,onChange:(r)=>e.onDraft(r.target.value),onKeyDown:o},void 0,!1,void 0,this)]},void 0,!0,void 0,this),a.jsxDEV("div",{className:s("studio-chat-composer-actions",n.actions),children:[a.jsxDEV("label",{className:s("studio-chat-composer-action",n.attachButton),children:[e.uploading?"Attaching…":"Attach files",a.jsxDEV("input",{className:s("studio-chat-upload-input",n.uploadInput),type:"file",accept:we,"aria-describedby":"studio-chat-upload-guidance",multiple:!0,disabled:e.locked||e.sending||e.uploading,onChange:(r)=>void e.onFiles(r)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),e.locked?a.jsxDEV(k,{type:"button",disabled:!0,children:"Archiving…"},void 0,!1,void 0,this):e.sending?a.jsxDEV(k,{type:"button",variant:"outline",onClick:e.onStop,disabled:!e.onStop,title:"Stop receiving the response. Completed actions are not undone.",children:"Stop"},void 0,!1,void 0,this):a.jsxDEV(k,{className:"studio-chat-composer-action",type:"submit","aria-label":"Send message",disabled:e.uploading||e.uploadAttempts.length>0||!e.draft.trim()&&e.uploads.length===0,children:"Send"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),a.jsxDEV("small",{id:"studio-chat-composer-hint",className:s("studio-chat-composer-hint",n.composerHint),children:"Enter to send · Shift+Enter for a new line"},void 0,!1,void 0,this),a.jsxDEV("details",{className:s("studio-chat-upload-guidance",n.composerHint),children:[a.jsxDEV("summary",{children:"File types and limits"},void 0,!1,void 0,this),a.jsxDEV("p",{id:"studio-chat-upload-guidance",children:qo},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Fo(e){return a.jsxDEV("aside",{className:s("studio-chat-context",n.contextBody),tabIndex:0,"aria-label":"Working set",children:a.jsxDEV("div",{className:s("studio-chat-context-list",n.cards),children:[e.session?.contextHandoff?a.jsxDEV("section",{className:s("studio-chat-context-card",n.contextItem),children:[a.jsxDEV("span",{className:s("studio-chat-context-kicker",n.kicker),children:"Linked context"},void 0,!1,void 0,this),a.jsxDEV("h3",{className:s("studio-chat-context-card-title",n.cardHeading,ot.section),children:e.session.contextHandoff.titleSeed},void 0,!1,void 0,this),a.jsxDEV("p",{className:s("studio-chat-context-card-text",n.cardText),children:[e.session.contextHandoff.sourceId," ·"," ",e.session.contextHandoff.itemId]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):null,e.cards.length===0&&e.progress.length===0?a.jsxDEV("p",{className:s("studio-chat-empty",n.empty),children:"Sources, artifacts, and durable jobs appear here as the conversation develops."},void 0,!1,void 0,this):null,e.cards.map((o,r)=>a.jsxDEV("section",{className:s("studio-chat-context-card",n.contextItem),children:[a.jsxDEV("span",{className:s("studio-chat-context-kicker",n.kicker),children:o.kind==="sources"?"Sources":"Artifact"},void 0,!1,void 0,this),a.jsxDEV("h3",{className:s("studio-chat-context-card-title",n.cardHeading,ot.section),children:o.kind==="sources"?o.title??`${o.sources.length} consulted`:o.kind==="attachment"?o.title:"Conversation context"},void 0,!1,void 0,this),o.kind==="sources"?a.jsxDEV(a.Fragment,{children:[a.jsxDEV("ul",{children:o.sources.slice(0,5).map((f)=>a.jsxDEV("li",{children:f.title??f.source},f.id,!1,void 0,this))},void 0,!1,void 0,this),o.sources.length>5?a.jsxDEV("p",{className:s("studio-chat-context-card-text",n.cardText),children:[o.sources.length-5," more sources in the conversation."]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this):o.kind==="attachment"&&o.description?a.jsxDEV("p",{className:s("studio-chat-context-card-text",n.cardText),children:o.description},void 0,!1,void 0,this):null]},`${o.kind}-${o.id}-${r}`,!0,void 0,this)),e.progress.map((o,r)=>a.jsxDEV("section",{className:s("studio-chat-context-card",n.contextItem),children:[a.jsxDEV("span",{className:s("studio-chat-context-kicker",n.kicker),children:"Durable job"},void 0,!1,void 0,this),a.jsxDEV("h3",{className:s("studio-chat-context-card-title",n.cardHeading,ot.section),children:o.operationTarget??o.operationType},void 0,!1,void 0,this),a.jsxDEV("p",{className:s("studio-chat-context-card-text",n.cardText),children:o.message??o.status},void 0,!1,void 0,this)]},`${o.type}-${r}`,!0,void 0,this)),e.messages.length>0?a.jsxDEV("section",{className:s("studio-chat-context-card",n.contextItem),children:[a.jsxDEV("span",{className:s("studio-chat-context-kicker",n.kicker),children:"Activity"},void 0,!1,void 0,this),a.jsxDEV("h3",{className:s("studio-chat-context-card-title",n.cardHeading,ot.section),children:"Visible conversation"},void 0,!1,void 0,this),a.jsxDEV("p",{className:s("studio-chat-context-card-text",n.cardText),children:[e.messages.length," visible messages."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function Wo(e){let o=new Date(e);if(Number.isNaN(o.getTime()))return"";return new Intl.DateTimeFormat(void 0,{day:"numeric",year:o.getFullYear()===new Date().getFullYear()?void 0:"numeric",month:"short",timeZoneName:"short",hour:"2-digit",minute:"2-digit"}).format(o)}function gt(e,o){return e instanceof Error&&e.message?e.message:o}export{sn as StudioChatWorkspace};
|
|
4
|
-
|
|
5
|
-
//# debugId=31140E1C5154FD9364756E2164756E21
|