@volter/teams 0.1.24 → 0.1.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter/teams",
3
- "version": "0.1.24",
3
+ "version": "0.1.26",
4
4
  "type": "module",
5
5
  "description": "Volter Teams, the neutral team plane: machine identity and daemon core, the local door and server link, admission from machine grants, product doors, and the Teams server's neutral routes (company RFC 0008).",
6
6
  "license": "MIT",
package/server/http.mjs CHANGED
@@ -36,7 +36,9 @@ export function createHttpHandler(api){return async(req,res)=>{const requestId=a
36
36
  if(req.method==='POST'&&path==='/api/v1/login/volter'){checkRate(api,`login:${req.socket.remoteAddress}`,10,5);const body=await parseJson(req);return await identityLogin(api,res,body,requestId);}
37
37
  if(req.method==='POST'&&path==='/api/v1/login/volter/teams'){checkRate(api,`login-teams:${req.socket.remoteAddress}`,10,5);const body=await parseJson(req);return await identityTeams(api,res,body,requestId);}
38
38
  if(!auth)fail(401,'authentication_required','authentication required');auth.now=api.clock.nowMs();auth.clock=api.clock;
39
- const bulk=/\/captures\/[^/]+\/parts\/\d+$/.test(path)||/\/uploads\/[^/]+\/chunks\/\d+$/.test(path);checkRate(api,`credential:${auth.credential_id}:${bulk?'bulk':'ordinary'}`,bulk?600:120,bulk?60:30);
39
+ const bulk=/\/captures\/[^/]+\/parts\/\d+$/.test(path)||/\/uploads\/[^/]+\/chunks\/\d+$/.test(path);// A machine's own credential syncs its live sessions as they change (a capture is a begin and a commit), so it
40
+ // gets the bulk allowance for ordinary requests too; a person's or a service's stays at 120 a minute.
41
+ checkRate(api,`credential:${auth.credential_id}:${bulk?'bulk':'ordinary'}`,bulk||auth.kind==='machine'?600:120,bulk||auth.kind==='machine'?60:30);
40
42
  if(req.method==='GET'&&path==='/api/v1/me'){if(!['user','service'].includes(auth.kind))fail(403,'forbidden','credential kind cannot use this operation');const teams=await api.store.query('SELECT t.id,t.name,t.revision,m.role FROM memberships m JOIN teams t ON t.id=m.team_id WHERE m.principal_id=? AND m.active=1 AND (? IS NULL OR m.team_id=?)',[auth.principal_id,auth.team_id,auth.team_id]);return send(res,200,{server_id:api.serverId,principal:{id:auth.principal_id,kind:auth.principal_kind,display_name:auth.display_name},teams:teams.map(x=>({team:{id:x.id,name:x.name,revision:x.revision},role:x.role}))},requestId);}
41
43
  if(req.method==='POST'&&path==='/api/v1/me/identities')return await linkIdentity(api,req,res,auth,requestId);
42
44
  if(req.method==='GET'&&path==='/api/v1/capabilities')return send(res,200,{version:1,server_id:api.serverId,protocol:'teams.v1',operations:['catalog','search','read','follow','access','ingest'],auth_modes:['token','invitation',...(api.identityIssuer?['volter']:[])],...(api.identityIssuer?{identity:{issuer:api.identityIssuer,audience:api.publicOrigin}}:{})},requestId);
@@ -305,6 +305,17 @@ async function acceptLink(api, teamId, machineId, duplex, closeSocket) {
305
305
  });
306
306
  }
307
307
 
308
+ const LINK_WAIT_MS = 10_000;
309
+
310
+ /** The machine's live link, waiting up to `ms` for one that is relinking. */
311
+ async function linkWithin(api, linkKey, ms) {
312
+ for (const deadline = Date.now() + ms; ; await new Promise((resolve) => setTimeout(resolve, 250))) {
313
+ const link = links(api).get(linkKey);
314
+ if (link && !link.channel.closed) return link;
315
+ if (Date.now() >= deadline) return null;
316
+ }
317
+ }
318
+
308
319
  /** A caller's channel: each stream it opens is forwarded to the machine with a fresh claim. */
309
320
  async function acceptChannel(api, auth, machineId, duplex, closeSocket) {
310
321
  let channel;
@@ -326,13 +337,19 @@ async function acceptChannel(api, auth, machineId, duplex, closeSocket) {
326
337
  const claim = await claimFor(api, auth, machineId).catch(() => null);
327
338
  if (!claim) return refuse('no machine grant for this caller');
328
339
  entry.claim = claim;
329
- const link = links(api).get(key(auth.team_id, machineId));
330
- if (!link) return refuse('machine_offline: the machine is not linked to this server');
340
+ // A machine relinks within seconds of this server restarting (a deploy drops every link): a stream waits for its
341
+ // link that long, and retries once on a link that closed under it, rather than refusing a message mid-relink.
331
342
  let upstream;
332
- try {
333
- upstream = await link.channel.open(stream.name, { ...(stream.params ?? {}), _admitted: claim });
334
- } catch (error) {
335
- return refuse(error.message.replace(/^[a-z]+ refused: /, ''));
343
+ for (let attempt = 0; ; attempt += 1) {
344
+ const link = await linkWithin(api, key(auth.team_id, machineId), LINK_WAIT_MS);
345
+ if (!link) return refuse('machine_offline: the machine is not linked to this server');
346
+ try {
347
+ upstream = await link.channel.open(stream.name, { ...(stream.params ?? {}), _admitted: claim });
348
+ break;
349
+ } catch (error) {
350
+ if (attempt === 0 && link.channel.closed) continue;
351
+ return refuse(error.message.replace(/^[a-z]+ refused: /, ''));
352
+ }
336
353
  }
337
354
  accept();
338
355
  const pair = { close: (reason) => { if (!stream.closed) stream.close(reason); if (!upstream.closed) upstream.close(reason); } };
package/viewer/index.html CHANGED
@@ -42,6 +42,12 @@
42
42
  #session .session-composer > * { flex: 1; min-width: 0; }
43
43
  /* The host's header carries the session's details when it hides this one. */
44
44
  #session.header-hidden .scui-team-transcript > header { display: none; }
45
+ /* A Room's transcript says who wrote each message: its name and face (a person) or mark (an agent). */
46
+ #session { --scui-message-actor-display: flex; }
47
+ #session .scui-message { display: block; }
48
+ #session .scui-message-actor { align-items: center; gap: 6px; grid-row: auto; margin-bottom: 4px; }
49
+ /* A peer session's message is an agent's, on the agent's side, never read as a person's own turn. */
50
+ #session .scui-message[data-role="user"][data-actor-kind="agent"] { align-self: flex-start; }
45
51
  body:has(#session:not([hidden])) { background: var(--scui-bg, var(--volter-surface-page, var(--bg))); color: var(--scui-fg, var(--text)); }
46
52
  [hidden] { display: none !important; }
47
53
  </style>
@@ -43,15 +43,15 @@ function withPeople(transcript, messages, { agentName = null, sessionId = '' } =
43
43
  }
44
44
  return transcript.map((entry) => {
45
45
  // This session's own turns: named as the Room knows its agent, with the agent mark.
46
- if (entry.role === 'assistant') return { ...entry, actor: { ...(agentName ? { name: agentName } : {}), image: agentImage(sessionId) } };
46
+ if (entry.role === 'assistant') return { ...entry, actor: { ...(agentName ? { name: agentName } : {}), image: agentImage(sessionId), kind: 'agent' } };
47
47
  if (entry.role !== 'user') return entry;
48
48
  // A harness's delivery notice about a message is a compact system line, not a person's turn.
49
49
  if (/^\s*\[Cross-session [a-z ]*notice\]/i.test(entry.text)) return { ...entry, role: 'notice', text: entry.text.trim().split('\n')[0] };
50
50
  const peer = peerMessage(entry.text);
51
- if (peer) return { ...entry, text: peer.body, actor: { name: peer.name, image: agentImage(peer.address.startsWith('sc:') ? peer.address : peer.name) }, context: [{ id: `${entry.id}:envelope`, kind: 'envelope', label: 'Delivered by supercode', detail: entry.text }] };
51
+ if (peer) return { ...entry, text: peer.body, actor: { name: peer.name, image: agentImage(peer.address.startsWith('sc:') ? peer.address : peer.name), kind: 'agent' }, context: [{ id: `${entry.id}:envelope`, kind: 'envelope', label: 'Delivered by supercode', detail: entry.text }] };
52
52
  const metadata = byTime.get(entry.ts) ?? {};
53
53
  const name = metadata.source_name || null;
54
- return { ...entry, actor: { name: name ?? 'Someone in the session', image: personImage(name ? (metadata.source_principal_id || name) : '') } };
54
+ return { ...entry, actor: { name: name ?? 'Someone in the session', image: personImage(name ? (metadata.source_principal_id || name) : ''), kind: 'person' } };
55
55
  });
56
56
  }
57
57
 
@@ -27,14 +27,14 @@ var Wi=Object.defineProperty;var Lt=(e,t)=>{for(var n in t)Wi(e,n,{get:t[n],enum
27
27
  `).map((a,i)=>{let u=t==="diff"?a.startsWith("+")&&!a.startsWith("+++")?"add":a.startsWith("-")&&!a.startsWith("---")?"remove":a.startsWith("@@")?"hunk":"plain":"plain";return l("li",{className:r("code-preview-line"),"data-tone":u,children:[l("span",{className:r("code-preview-number"),children:i+1}),l("code",{className:r("code-preview-text"),children:a||" "})]},i)})}):null}function jc({presentation:e,pending:t,failed:n}){let r=I(),s=(i,...u)=>N(r,i,...u),{t:a}=X();return l("section",{className:s("terminal"),children:[l("header",{className:s("terminal-head"),children:[l("span",{className:s("terminal-lights"),"aria-hidden":"true",children:[l("i",{className:s("terminal-light")}),l("i",{className:s("terminal-light")}),l("i",{className:s("terminal-light")})]}),l("code",{className:s("terminal-command"),children:e.command?`$ ${e.command}`:a.terminal})]}),e.preview?l("pre",{className:s("terminal-output"),"data-error":n,children:mt(e.preview)}):t?l("div",{className:s("terminal-wait"),children:[l("i",{className:s("terminal-wait-dot")})," ",a.waitingOutput]}):l("div",{className:s("terminal-empty"),children:a.noOutput})]})}function Uc({presentation:e}){let t=I(),n=(a,...i)=>N(t,a,...i),{t:r}=X(),s=mt(e.preview).split(`
28
28
  `).filter(Boolean);return l("section",{className:n("search-preview"),children:[e.query?l("header",{className:n("search-preview-head"),children:[l("span",{className:n("search-preview-label"),children:r.searchLabel}),l("code",{className:n("search-preview-query"),children:e.query})]}):null,s.length?l("ol",{className:n("search-preview-results"),children:s.map((a,i)=>{let u=/^(.*?):(\d+)(?::(\d+))?:(.*)$/.exec(a);return l("li",{className:n("search-preview-result"),children:u?l(R,{children:[l("code",{className:n("search-preview-file"),children:u[1]}),l("small",{className:n("search-preview-line"),children:[u[2],u[3]?`:${u[3]}`:""]}),l("span",{className:n("search-preview-text"),children:u[4]})]}):l("span",{className:n("search-preview-text"),children:a})},i)})}):l("p",{className:n("search-preview-empty"),children:r.noTextResults})]})}function Wc({presentation:e,entry:t}){let n=I(),r=(u,...o)=>N(n,u,...o),{t:s}=X(),a=t.status==="pending",i=t.status==="error";return e.detail==="terminal"?l(jc,{presentation:e,pending:a,failed:i}):e.detail==="diff"?e.preview?l(ei,{value:e.preview,kind:"diff"}):l("div",{className:r("tool-empty"),children:s.noDiff}):e.detail==="file"?e.preview?l(ei,{value:e.preview,kind:"file"}):l("div",{className:r("tool-empty"),children:s.noFileContents}):e.detail==="matches"?l(Uc,{presentation:e}):e.detail==="web"?l("section",{className:r("web-preview"),children:[e.url?l("code",{className:r("web-preview-url"),children:e.url}):null,e.preview?l("p",{className:r("web-preview-text"),children:mt(e.preview)}):l("small",{className:r("web-preview-note"),children:a?s.waitingPage:s.noPageSummary})]}):e.detail==="agent"?l("section",{className:r("agent-preview"),children:e.items?.length?l("ol",{className:r("agent-roster"),children:e.items.map((u,o)=>l("li",{className:r("agent-roster-item"),children:[l("strong",{className:r("agent-roster-label"),children:u.label}),l("small",{className:r("agent-roster-status"),children:u.status})]},`${u.label}:${o}`))}):e.preview?l("pre",{className:r("agent-preview-output"),children:mt(e.preview)}):l("small",{className:r("agent-preview-note"),children:a?s.agentWorking:s.noHandoff})}):e.detail==="plan"?l("ol",{className:r("plan-preview"),children:e.items?.map((u,o)=>l("li",{className:r("plan-preview-item"),"data-status":u.status,children:[l("i",{className:r("plan-preview-mark"),"aria-hidden":"true"}),l("span",{children:u.label})]},`${u.label}:${o}`))}):e.preview?l("pre",{className:r("tool-output"),"data-error":i,children:mt(e.preview)}):null}function Vc({presentation:e,adapter:t}){let n=I(),{t:r}=X(),[s,a]=$(!1),i=U(null);if(j(()=>()=>clearTimeout(i.current),[]),!t?.copyText)return null;let u=e.command?[r.copyCommand,e.command]:e.path?[r.copyPath,e.path]:e.url?[r.copyUrl,e.url]:e.query?[r.copyQuery,e.query]:null,o=async()=>{await t.copyText(u[1]),a(!0),clearTimeout(i.current),i.current=setTimeout(()=>a(!1),1500)};return u?l("div",{className:N(n,"tool-actions"),children:l("button",{className:N(n,"tool-copy",N(n,"button")),"data-variant":"quiet",type:"button",onClick:o,children:s?r.copied:u[0]})}):null}function Kc({tools:e}){let t=I(),{t:n}=X();return e.length<2?null:l("div",{className:N(t,"tool-stack"),"aria-label":n.coordinatedTools,children:e.map(r=>l("span",{className:N(t,"tool-stack-item"),children:r.replaceAll("__"," \xB7 ").replaceAll("_"," ")},r))})}function Gc({entry:e}){let t=I(),n=(s,...a)=>N(t,s,...a),{t:r}=X();return!e.arguments&&!e.resultText?null:l("details",{className:n("tool-technical"),children:[l("summary",{className:n("tool-technical-summary",n("tool-summary")),children:r.technicalDetails}),l("div",{className:n("tool-technical-body"),children:[e.arguments?l("section",{className:n("tool-technical-section"),children:[l("strong",{className:n("tool-technical-heading"),children:r.nativeArguments}),l("dl",{className:n("tool-technical-list"),children:zc(e.arguments,r).map(s=>l("div",{className:n("tool-technical-row"),children:[l("dt",{className:n("tool-technical-label"),children:s.label}),l("dd",{className:n("tool-technical-value"),children:l("pre",{className:n("tool-technical-pre"),children:s.value})})]},s.key))})]}):null,e.resultText?l("section",{className:n("tool-technical-section"),children:[l("strong",{className:n("tool-technical-heading"),children:r.nativeResult}),l("pre",{className:n("tool-technical-pre"),"data-error":e.status==="error",children:[e.resultText,e.truncated?`
29
29
  ${r.truncatedMarker}`:""]})]}):null]})]})}function ii({entry:e,state:t,adapter:n,className:r,style:s,classNames:a,labels:i}){let u=I(a),o=(d,...m)=>N(u,d,...m),{t:c,host:f}=X(i),h;if(e.role==="opaque")h=l("article",{className:o("message",r),style:s,"data-role":"opaque","data-kind":e.kind,"aria-label":c.unrecognizedEntry,children:[l("div",{className:o("notice"),"data-code":"opaque-entry",children:Fc(c.opaqueNotice,{kind:l("code",{children:e.kind})})}),e.text?l(Tt,{value:e.text,copyText:n?.copyText}):null,e.raw?l("details",{className:o("tool-technical"),children:[l("summary",{className:o("tool-technical-summary"),children:c.technicalDetails}),l("div",{className:o("tool-technical-body"),children:l("section",{className:o("tool-technical-section"),children:[l("strong",{className:o("tool-technical-heading"),children:c.rawEntry}),l("pre",{className:o("tool-technical-pre"),tabIndex:0,"aria-label":c.rawEntry,children:[e.raw,e.truncated?`
30
- ${c.truncatedMarker}`:""]})]})})]}):null]});else if(e.role==="request")h=l(ri,{entry:e,adapter:n,canRespond:t.canRespond,className:r,style:s});else if(e.role==="reasoning")h=l("details",{className:o("reasoning",r),style:s,open:e.streaming,children:[l("summary",{className:o("reasoning-summary"),children:e.streaming?c.reasoningStreaming:c.reasoning}),l(Tt,{value:e.text,copyText:n?.copyText})]});else if((e.role==="notice"||e.role==="system")&&(e.label==="error"||e.code==="error")){let d=On(e.text,void 0,c);h=l("div",{className:o("notice",r),style:s,"data-code":"error",children:[l("strong",{children:d.title}),l("p",{children:d.summary}),d.details?l("details",{className:o("tool-technical"),children:[l("summary",{className:o("tool-technical-summary"),children:c.technicalDetails}),l("div",{className:o("tool-technical-body"),children:l("pre",{className:o("tool-technical-pre"),children:d.details})})]}):null]})}else e.role==="notice"||e.role==="system"?h=l("div",{className:o("notice",r),style:s,"data-code":e.code,children:e.text}):h=l("article",{className:o("message",r),style:s,"data-role":e.role,"aria-label":e.role==="user"?c.yourMessage:c.assistantMessage,children:[l(Rc,{entry:e}),l(Yt,{items:e.images,adapter:n}),l(Tt,{value:e.text,copyText:n?.copyText}),l(si,{context:e.context}),e.truncated?l("small",{className:o("truncated"),children:c.entryTruncated}):null,l(Lc,{entry:e,adapter:n})]});return l(se,{value:u,children:l(ve,{value:f,children:h})})}function Wr({entry:e,workspace:t,open:n=!1,adapter:r,className:s,style:a,classNames:i,labels:u}){let o=I(i),c=(T,...E)=>N(o,T,...E),{t:f,host:h}=X(u),d=e.presentation??zs(e),[m,p]=$(n||e.status==="pending"),g=U(!1);j(()=>{e.status==="pending"?p(!0):!g.current&&!n&&p(!1)},[e.status]);let b=$s(d.target,t),x=!!(e.arguments||e.resultText||d.preview||d.fields.length),y=d.category??Zt(e),v=e.ts===null||e.ts===void 0?null:new Date(e.ts),k=v&&Number.isFinite(v.valueOf())?v.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1}):null,C=l("span",{className:c("tool-actor"),"aria-hidden":"true",children:[k?l("time",{className:c("message-actor-time"),children:k}):l("span",{}),l("span",{className:c("message-actor-name"),"data-role":"tool",children:z(f["actor:tool"],{name:e.label||y})})]}),w=l(R,{children:[C,l(Oc,{category:y}),l("strong",{className:c("tool-title"),children:Pc(e,y,d,f)}),b?l("code",{className:c("tool-target"),title:d.target,children:b}):null,l("span",{className:c("spacer")}),e.status==="pending"?l($c,{now:r?.now}):null,l("span",{className:c("tool-status"),role:"status","data-status":e.status??"completed","aria-label":qc(f,e.status??"completed"),children:e.status==="pending"?l("i",{className:c("tool-status-spinner")}):l(L,{name:e.status==="error"?"close":"check",size:12})}),x?l(L,{name:"chevron",size:14,className:c("tool-chevron")}):null]});return x?l(se,{value:o,children:l(ve,{value:h,children:l("details",{className:c("tool",s),style:a,"data-status":e.status??"completed","data-category":y,open:m,onToggle:T=>{T.currentTarget.open!==m&&(g.current=!0),p(T.currentTarget.open)},children:[l("summary",{className:c("tool-head",c("tool-summary")),children:w}),l("div",{className:c("tool-detail"),children:[l(Hc,{presentation:d}),l(Kc,{tools:d.tools??[]}),l(Wc,{presentation:d,entry:e}),d.fields.length?l("dl",{className:c("tool-fields"),children:d.fields.map(T=>l("div",{className:c("tool-field"),children:[l("dt",{className:c("tool-field-label"),children:T.label}),l("dd",{className:c("tool-field-value"),children:T.value})]},T.label))}):null,l(Vc,{presentation:d,adapter:r}),l(Gc,{entry:e})]})]})})}):l(se,{value:o,children:l(ve,{value:h,children:l("div",{className:c("tool",s),style:a,"data-status":e.status??"completed","data-category":y,children:l("div",{className:c("tool-head"),children:w})})})})}function ui({entries:e,state:t,adapter:n,expandTools:r=!1,className:s,style:a,classNames:i,labels:u}){let o=I(i),c=(x,...y)=>N(o,x,...y),{t:f,host:h}=X(u),d=e.some(x=>x.status==="pending"),[m,p]=$(d),g=U(!1),b=Ue();return j(()=>{d?p(!0):g.current||p(!1)},[d]),e.length===1?l(se,{value:o,children:l(ve,{value:h,children:l("section",{className:c("activity",s),style:a,"data-single":"true",children:l(Wr,{open:r,entry:e[0],workspace:t.workspace,adapter:n})})})}):l(se,{value:o,children:l(ve,{value:h,children:l("section",{className:c("activity",s),style:a,children:[l("button",{className:c("activity-head"),type:"button","aria-expanded":m,"aria-controls":b,onClick:()=>{g.current=!0,p(x=>!x)},children:[l("span",{className:c("fold"),"data-open":m,children:l(L,{name:"chevron",size:14})}),l("strong",{className:c("activity-summary"),children:js(e,f)}),l("span",{className:c("spacer")}),l("small",{className:c("activity-count"),children:[e.filter(x=>x.status!=="pending").length,"/",e.length]})]}),m?l("div",{id:b,className:c("activity-items"),children:e.map(x=>l(Wr,{open:r,entry:x,workspace:t.workspace,adapter:n},x.key??x.id))}):null]})})})}function oi({plan:e,className:t,style:n,classNames:r,labels:s}){let a=I(r),i=(c,...f)=>N(a,c,...f),{t:u}=X(s);if(!e.items.length)return null;let o=e.items.filter(c=>c.status==="completed"||c.status==="cancelled").length;return l("details",{className:i("plan",t),style:n,children:[l("summary",{className:i("plan-summary"),children:[l("span",{children:u.plan}),l("small",{children:[o,"/",e.items.length]})]}),l("ol",{className:i("plan-steps"),tabIndex:0,"aria-label":u.planSteps,children:e.items.map(c=>l("li",{className:i("plan-step"),"data-status":c.status,children:[l("i",{"aria-hidden":"true"})," ",l("span",{children:c.title})]},c.id))})]})}function ci({semantics:e,className:t,style:n,classNames:r,labels:s}){let a=I(r),i=(c,...f)=>N(a,c,...f),{t:u,f:o}=X(s);return!e.fidelity&&!e.residueCount&&!e.parseErrors&&!e.subagents.length?null:l("details",{className:i("details",t),style:n,children:[l("summary",{className:i("details-summary"),children:u.sessionDetails}),l("div",{className:i("details-items"),children:[e.fidelity?l("p",{className:i("details-item"),children:[l("strong",{className:i("details-label"),children:u.fidelity}),l("span",{children:e.fidelity.replaceAll("_"," ")})]}):null,l("p",{className:i("details-item"),children:[l("strong",{className:i("details-label"),children:u.nativeRecords}),l("span",{children:e.rawRecords})]}),e.residueCount?l("p",{className:i("details-item"),children:[l("strong",{className:i("details-label"),children:u.residue}),l("span",{children:o("residueRetained",{count:e.residueCount})})]}):null,e.parseErrors?l("p",{className:i("details-item"),children:[l("strong",{className:i("details-label"),children:u.parseDiagnostics}),l("span",{children:e.parseErrors})]}):null,e.subagents.map(c=>l("p",{className:i("details-item"),children:[l("strong",{className:i("details-label"),children:o("subagentSource",{source:c.source})}),l("span",{children:o("subagentDetail",{messages:c.messages,fidelity:c.fidelity.replaceAll("_"," ")})})]},c.id))]})]})}var ti=Ae();function Jc({state:e}){let{t,f:n}=X(),r=U(e.busy),[s,a]=$("");return j(()=>{if(r.current&&!e.busy&&!e.error){let i=oe(e.harness);a(i?n("finishedWorking",{harness:i}):t.finishedWorkingAgent)}r.current=e.busy},[e.busy,e.error,e.harness]),l("span",{className:"scui-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:s})}function Dt({state:e,adapter:t,components:n={},slots:r={},memoryKey:s=e.attached?.key||`${e.harness}:${e.workspace}`,pending:a=null,unreadAfterMessages:i=null,groupTools:u=!0,expandTools:o=!1,className:c,style:f,classNames:h,labels:d}){let m=I(h),p=(P,...H)=>N(m,P,...H),{t:g,f:b,host:x}=X(d),y=U(null),v=ti.get(s)??{top:null,atBottom:!0},[k,C]=$(v.atBottom),w=U(null),T=U(!1),E=Hs(e.transcript,{groupTools:u}),O=U(Number.isSafeInteger(i)&&i>=0?i:null),D=O.current===null?-1:E.findIndex(P=>(P.kind==="activity"?P.entries:[P.entry]).some(ge=>Number.isSafeInteger(ge.messageIndex)&&ge.messageIndex>O.current)),G=n.TranscriptEntry??ii,W=n.ActivityGroup??ui,ke=n.TaskPlan??oi,ae=r.beforeConversation,re=r.afterConversation,Y=r.emptyConversation,me=P=>at(ti,s,P),ue=typeof a=="string"?{text:a,status:"sending"}:a,$e=()=>{y.current&&(y.current.scrollTop=y.current.scrollHeight,C(!0),me({top:y.current.scrollTop,atBottom:!0}))};return yt(()=>{let P=y.current;if(!P)return;let H=w.current;if(H){if(e.operation==="loadEarlier"&&(H.seenOperation=!0),e.transcript.length>H.entries&&e.transcript[0]?.id!==H.firstId){P.scrollTop=H.top+(P.scrollHeight-H.height),w.current=null,me({top:P.scrollTop,atBottom:!1});return}(e.error||H.seenOperation&&e.operation!=="loadEarlier")&&(w.current=null)}T.current?k&&$e():(T.current=!0,v.top!==null&&!v.atBottom?P.scrollTop=v.top:$e())},[s,e.transcript,e.busy,e.operation,e.error,ue?.text,ue?.status]),l(se,{value:m,children:l(ve,{value:x,children:l("div",{className:p("conversation-wrap",c),style:f,children:[l(Jc,{state:e}),l("div",{className:p("conversation"),ref:y,tabIndex:0,"aria-label":g.conversation,onScroll:P=>{let H=P.currentTarget,ge=H.scrollHeight-H.scrollTop-H.clientHeight<=64;C(ge),me({top:H.scrollTop,atBottom:ge})},children:l("div",{className:p("conversation-content"),children:[ae?l(ae,{state:e,adapter:t,value:null}):null,l(ke,{plan:e.taskPlan,value:e.taskPlan,state:e,adapter:t}),l(ci,{semantics:e.semantics}),e.history.hasEarlier?l("button",{className:p("load"),type:"button",disabled:!!e.operation,onClick:()=>{let P=y.current;P&&(w.current={height:P.scrollHeight,top:P.scrollTop,entries:e.transcript.length,firstId:e.transcript[0]?.id,seenOperation:!1}),C(!1),t.onIntent({action:"loadEarlier"})},children:g.loadEarlier}):null,!E.length&&e.startup!=="ready"?l(Vr,{state:e}):null,!E.length&&e.startup==="ready"?Y?l(Y,{state:e,adapter:t,value:null}):l("div",{className:p("empty"),children:e.error??(e.harness?b("listening",{harness:oe(e.harness)}):g.noTranscript)}):null,E.map((P,H)=>l(R,{children:[H===D?l("div",{className:p("unread-divider"),role:"separator","aria-label":g.newMessages,children:l("span",{className:p("unread-divider-label"),children:g.newDivider})}):null,P.kind==="activity"?l(W,{value:P.entries,entries:P.entries,state:e,adapter:t,expandTools:o}):l(G,{value:P.entry,entry:P.entry,state:e,adapter:t})]},P.id)),ue?l("article",{className:p("message"),"data-role":"user","data-pending":"true","data-status":ue.status,"aria-label":g.pendingMessage,children:[l(Yt,{items:ue.images,adapter:t}),l(Tt,{value:ue.text,copyText:t?.copyText}),l(si,{context:ue.context}),l("footer",{className:p("pending-footer"),children:[l("small",{className:p("pending-status"),children:ue.status==="failed"?g.notSent:g.sending}),ue.status==="failed"?l("span",{className:p("pending-actions"),children:[l("button",{className:p("pending-action",p("button")),type:"button",onClick:ue.onRetry,children:g.retry}),l("button",{className:p("pending-action",p("button")),type:"button",onClick:ue.onEdit,children:g.edit})]}):null]})]}):null,e.busy?l("div",{className:p("working"),role:"status",children:[l("span",{className:p("working-mark"),"aria-hidden":"true",children:"\u2726"}),l("i",{className:p("working-dot")}),l("i",{className:p("working-dot")}),l("i",{className:p("working-dot")}),l("small",{children:b("harnessWorking",{harness:oe(e.harness)})})]}):null,re?l(re,{state:e,adapter:t,value:null}):null]})}),k?null:l("button",{className:p("latest",p("button")),type:"button",onClick:$e,children:[l(L,{name:"down",size:13})," ",g.latest]})]})})})}var Kr={unknownUser:"Unknown user",harnessSession:"{harness} session",pane:"Pane",ageNow:"now",ageMinutes:"{count}m ago",ageHours:"{count}h ago",ageDays:"{count}d ago",ageWeeks:"{count}w ago",signInTitle:"Open a team",signInNote:"Connect to a Teams server with your own access token. It stays in this tab and is sent only to that server.",server:"Server",serverPlaceholder:"https://teams.example.com",accessToken:"Access token",connecting:"Connecting\u2026",connect:"Connect",teamSessions:"Team sessions",searchTeamSessions:"Search team sessions",searchSessionsPlaceholder:"Search sessions\u2026",filterByUser:"Filter by user",everyone:"Everyone",me:"Me",filterByHarness:"Filter by harness",anyHarness:"Any harness",filterByMachine:"Filter by machine",anyMachine:"Any machine",searching:"Searching\u2026",loadingSessions:"Loading sessions\u2026",sessionsError:"Sessions could not be loaded.",tryAgain:"Try again",noSessionMatch:"No sessions match.",noSessions:"No sessions have been shared with this team yet.",sessionLabel:"Session {title}",backToSessions:"Back to sessions",readOnly:"Read-only",live:"Live",snapshot:"Snapshot",latestMessages:"Showing the latest {returned} of {total} messages. ",partialCapture:"Part of this session was not captured.",sessionReadError:"This session could not be read.",teamMachines:"Team machines",machinesOnline:"{online} of {total} online",loadingMachines:"Loading machines\u2026",machinesError:"Machines could not be loaded.",noMachines:"No machine is enrolled in this team.",unknownCustodian:"Unknown custodian",executionContained:"Runs jobs, each contained",executionProcessGroup:"Runs jobs as process groups",executionNone:"Runs no remote jobs",online:"Online",offline:"Offline",offlineSeen:"Offline \xB7 seen {age}",offlineNeverSeen:"Offline \xB7 never seen",watch:"Watch",control:"Control",access:"Access",loadingGrants:"Loading grants\u2026",noGrants:"Only you can reach this machine's panes.",canControl:"Can control",canWatch:"Can watch",grantUntil:"until {time}",revoke:"Revoke",grantPaneAccess:"Grant pane access",member:"Member",noOtherMembers:"No other members",paneField:"Pane",noPanes:"No panes",can:"Can",grantFor:"For",ttl1h:"1 hour",ttl8h:"8 hours",ttl7d:"7 days",saving:"Saving\u2026",grant:"Grant",machineLabel:"Machine {name}",backToMachines:"Back to machines",yourMachine:"Your machine",custodianMachine:"{name}'s machine",panes:"Panes",machineOffline:"This machine is offline. Its panes open when it reconnects.",machineOfflineSeen:"This machine is offline; last seen {age}. Its panes open when it reconnects.",reachingMachine:"Reaching the machine\u2026",machineUnreachable:"This machine could not be reached.",noVisiblePanes:"No pane you can see is running.",terminalLabel:"Terminal {title}",detach:"Detach",watchingReadOnly:"Watching \xB7 read-only",terminalMode:"Terminal mode",noTerminal:"This host has no terminal renderer; pass components.Terminal.",team:"Team",teamViews:"Team views",sessions:"Sessions",machines:"Machines",signOut:"Sign out",chooseSession:"Choose a session to read it.",chooseMachine:"Choose a machine to see its panes."},Bp=[{id:"1h",label:"ttl1h",ms:36e5},{id:"8h",label:"ttl8h",ms:8*36e5},{id:"7d",label:"ttl7d",ms:7*864e5}];function Xc(e,t,n){let r=I(e),[s,a]=Q(Kr,t),i=vt(n);return{p:(u,...o)=>N(r,u,...o),t:s,f:(u,o)=>z(s[u],o),slots:i,scope:u=>l(_t,{classNames:r,labels:a,slots:i,children:u})}}var di=e=>e?{...Kr,...e}:Kr;function li(e){return e?typeof e=="string"?e:e.message||String(e):null}function Yc(e){let t=String(e??"").replace(/\/+$/,"");return t.slice(t.lastIndexOf("/")+1)||t}function Qc(e,t){return t?e?.find(n=>n.principal?.id===t)?.principal.display_name??null:null}function el(e,t,n=void 0){let r=e?.user;return Qc(t,r?.principal_id)??r?.reported_user??di(n).unknownUser}function tl(e,t=void 0){return e?.title?e.title:e?.repository?.path?Yc(e.repository.path):z(di(t).harnessSession,{harness:oe(e?.harness??"")})}function nl(e,t){return(e?.machine_ids??[]).map(n=>t?.find(r=>r.id===n)?.name??n)}function rl({kind:e="status",children:t}){let n=I();return l("p",{className:N(n,"team-status"),"data-kind":e,role:e==="error"?"alert":"status",children:t})}function fi({session:e,transcript:t=[],members:n=[],machines:r=[],status:s="ready",error:a=null,live:i=!1,display:u=null,pending:o=null,onBack:c,adapter:f,className:h,style:d,classNames:m,labels:p=void 0,slots:g=void 0}){let{p:b,t:x,f:y,slots:v,scope:k}=Xc(m,p,g),C=ye(()=>({...Rn,startup:s==="loading"&&!t.length?"discovering":"ready",transcript:t,harness:e?.harness??"",mode:"mirror",error:s==="error"?li(a):null,history:{...Rn.history,hasEarlier:!1}}),[e?.harness,t,s,a]),w=ye(()=>f??{onIntent(){},copyText:G=>globalThis.navigator?.clipboard?.writeText(G)},[f]);if(!e)return null;let T=nl(e,r),E=e.coverage?.completeness==="partial",O=e.title?null:t.find(G=>G.role==="user"&&G.text)?.text.replace(/\s+/g," ").trim(),D=O?O.length>90?`${O.slice(0,89)}\u2026`:O:tl(e,x);return k(l("section",{className:b("team-transcript",h),style:d,"aria-label":y("sessionLabel",{title:D}),children:[l("header",{className:b("head"),children:[c?l("button",{className:b("head-action",b("icon-button")),type:"button","aria-label":x.backToSessions,onClick:c,children:l(L,{name:"back",size:17})}):null,l(Pe,{className:b("head-logo"),id:e.harness,size:24}),l("span",{className:b("head-copy"),children:[l("strong",{className:b("head-title"),children:D}),l("small",{className:b("head-subtitle"),children:[el(e,n,x),oe(e.harness),...T,x.readOnly].join(" \xB7 ")})]}),l(Jt,{slots:v,name:"transcriptHeaderActions",value:e}),l("span",{className:b("team-live"),"data-live":i,children:i?x.live:x.snapshot})]}),E||u&&u.returned<u.total?l("p",{className:b("team-coverage"),children:[u&&u.returned<u.total?y("latestMessages",{returned:u.returned,total:u.total}):"",E?x.partialCapture:""]}):null,s==="error"&&!t.length?l(rl,{kind:"error",children:li(a)??x.sessionReadError}):l(Dt,{state:C,adapter:w,memoryKey:`team:${e.id}`,pending:o})]}))}function pi(e,t){yt(()=>{let n=e.current;if(!n)return;n.style.height="auto";let r=Number.parseFloat(getComputedStyle(n).maxHeight)||150,s=Math.min(n.scrollHeight,r);n.style.height=`${s}px`,n.style.overflowY=n.scrollHeight>r?"auto":"hidden"},[e,t])}var hi=Ae();function It({state:e,adapter:t,labels:n,memoryKey:r=e.attached?.key||`${e.harness}:${e.workspace}`,pendingStatus:s=null,restoreDraft:a=null,command:i=null,contextCandidates:u=[],components:o={},onPending:c,onDraftRestored:f,className:h,style:d,classNames:m}){let p=I(m),g=(S,...M)=>N(p,S,...M),[b]=Q(K,n),x=(S,M)=>z(b[S],M),y=g("compose-item"),v=hi.get(r)??{draft:e.savedDraft,context:[],images:[],queue:[]},[k,C]=$(v.draft),[w,T]=$(v.context??[]),[E,O]=$(v.images??[]),[D,G]=$((v.queue??[]).map(S=>({...S,context:S.context??[],images:S.images??[]}))),[W,ke]=$(!1),[ae,re]=$(!1),[Y,me]=$(!1),[ue,$e]=$(!1),[P,H]=$(null),ge=U(null),ts=U(null);pi(ge,k);let le=(S,M,B,J)=>at(hi,r,{draft:S,context:M,images:B,queue:J});j(()=>{le(k,w,E,D)},[k,w,E,r,D]);let ns=S=>G(M=>{let B=S(M);return le(k,w,E,B),B}),_n=e.busy||s!==null||W||ae,gt=e.busy||s==="sending"||s==="failed"||W||ae,rs=e.busy&&e.canSteer&&!ae&&s===null,Rt=rs&&!!k.trim()&&w.length===0&&E.length===0;j(()=>{if(!_n&&e.canSend&&D.length){let[S,...M]=D;ke(!0),G(M),le(k,w,E,M),c?.(S.text,S.context,S.images),t.onIntent({action:"send",text:S.text,...S.context.length?{context:S.context}:{},...S.images.length?{images:S.images}:{}})}},[t,k,r,c,D,_n,e.canSend]),j(()=>{(s!==null||e.busy)&&ke(!1)},[s,e.busy]),j(()=>{ge.current?.focus({preventScroll:!0})},[r]),j(()=>{if(!a)return;C(a.text);let S=Bn(a.context),M=qn(a.images);T(S),O(M),le(a.text,S,M,D),ge.current?.focus({preventScroll:!0}),f?.(a.id)},[f,a?.id]),j(()=>{if(!(!i||i.id===ts.current)){if(ts.current=i.id,i.action==="attach")try{let S=wt(i.attachments,b);if(w.length+S.context.length>Ne)throw new Error(x("attachMaxText",{max:Ne}));if(E.length+S.images.length>fe)throw new Error(x("attachMaxImages",{max:fe}));let M=kt(w,S.context),B=it(E,S.images);T(M),O(B),H(null),le(k,M,B,D)}catch(S){H(S instanceof Error?S.message:b.attachFailed)}ge.current?.focus({preventScroll:!0})}},[i?.id]),j(()=>{let S=setTimeout(()=>t.onIntent({action:"draft",text:k}),250);return()=>clearTimeout(S)},[t,k]);let zi=()=>{!t.pickContext||e.mode!=="control"||Y||w.length>=Ne&&E.length>=fe||(me(!0),H(null),Promise.resolve().then(()=>t.pickContext()).then(S=>{let M=wt(S,b);if(w.length+M.context.length>Ne)throw new Error(x("attachMaxText",{max:Ne}));if(E.length+M.images.length>fe)throw new Error(x("attachMaxImages",{max:fe}));T(B=>{let J=kt(B,M.context);return le(k,J,E,D),J}),O(B=>{let J=it(B,M.images);return le(k,w,J,D),J})}).catch(S=>H(S instanceof Error?S.message:b.attachFailed)).finally(()=>me(!1)))},Hi=S=>{let M=wt(S,b),B=kt(w,M.context),J=it(E,M.images);T(B),O(J),le(k,B,J,D)},ss=(S,M)=>{let B=Array.from(S??[]);if(!B.length)return!1;let J=B.filter(be=>be.type.startsWith("image/"));return J.length!==B.length?(H(b.imagesOnly),!0):E.length+J.length>fe?(H(x("attachMaxImages",{max:fe})),!0):(me(!0),H(null),zn(J,b).then(be=>O(Ui=>{let as=it(Ui,be);return le(k,w,as,D),as}),be=>H(be instanceof Error?be.message:M==="paste"?b.imagePasteFailed:b.imageDropFailed)).finally(()=>me(!1)),!0)},$i=S=>{ss(S.clipboardData?.files,"paste")&&S.preventDefault()},ji=S=>{$e(!1),ss(S.dataTransfer?.files,"drop")&&S.preventDefault()},xn=(S=!1)=>{let M=k.trim();if(!M&&!E.length)return;if(H(null),Rt&&!S){re(!0),Promise.resolve(t.onIntent({action:"steer",text:M})).then(()=>{C(""),le("",w,E,D)},J=>H(J instanceof Error?J.message:b.steerFailed)).finally(()=>re(!1));return}let B={text:M,context:w,images:E};if(gt)ns(J=>[...J,B]);else if(e.canSend)c&&ke(!0),c?.(M,w,E),t.onIntent({action:"send",text:M,...w.length?{context:w}:{},...E.length?{images:E}:{}});else return;C(""),T([]),O([]),le("",[],[],gt?[...D,B]:D)};return l(se,{value:p,children:l("div",{className:g("compose",h),style:d,children:[D.length?l("div",{className:g("queue",y),children:[l("strong",{children:x("queued",{count:D.length})}),D.map((S,M)=>l("span",{className:g("queue-item"),children:[l("span",{className:g("queue-text"),children:[S.text||b.imageAttachment,S.context.length+S.images.length?l("small",{className:g("queue-meta"),children:x("attachedCount",{count:S.context.length+S.images.length})}):null]}),l("button",{className:g("queue-remove"),type:"button","aria-label":x("removeQueued",{index:M+1}),onClick:()=>ns(B=>B.filter((J,be)=>be!==M)),children:l(L,{name:"close",size:13})})]},`${M}:${S.text}`))]}):null,l(Xt,{className:y,items:u,context:w,images:E,state:e,adapter:t,onAttach:Hi,component:o.ContextCandidate}),l($n,{className:y,items:E,onRemove:S=>O(M=>{let B=M.filter((J,be)=>be!==S);return le(k,w,B,D),B})}),l(Hn,{className:y,items:w,onRemove:S=>T(M=>{let B=M.filter((J,be)=>be!==S);return le(k,B,E,D),B})}),P?l("small",{className:g("context-error",y),role:"alert",children:P}):null,l("div",{className:g("envelope",y),"data-dropping":ue?"true":void 0,onDragEnter:S=>{Array.from(S.dataTransfer?.types??[]).includes("Files")&&(S.preventDefault(),$e(!0))},onDragOver:S=>{Array.from(S.dataTransfer?.types??[]).includes("Files")&&S.preventDefault()},onDragLeave:S=>{S.currentTarget.contains(S.relatedTarget)||$e(!1)},onDrop:ji,children:[t.pickContext&&e.mode==="control"?l("button",{className:g("attach",g("icon-button")),type:"button","aria-label":b.attachContext,disabled:Y||w.length>=Ne&&E.length>=fe,onClick:zi,children:Y?l("i",{className:g("control-spinner")}):l(L,{name:"attach",size:17})}):null,l("textarea",{className:g("envelope-input"),ref:ge,rows:1,"aria-label":oe(e.harness)?x("messageHarness",{harness:oe(e.harness)}):b.messageAgent,placeholder:e.startup!=="ready"?b.composerConnecting:s==="failed"?b.composerFailed:s==="editing"?b.composerEditing:rs&&w.length===0&&E.length===0?b.composerSteer:_n?b.composerQueue:b.askAgent,value:k,disabled:e.mode!=="control"&&!e.canSend,onPaste:$i,onInput:S=>{let M=S.currentTarget.value;C(M),le(M,w,E,D)},onKeyDown:S=>{Ln(S)&&(S.preventDefault(),xn())}}),l("span",{className:g("envelope-actions"),children:[e.busy?l("button",{className:g("stop"),type:"button","aria-label":b.stopAgent,disabled:!e.canInterrupt,onClick:()=>t.onIntent({action:"interrupt"}),children:l(L,{name:"stop",size:15})}):null,Rt?l("button",{className:g("queue-send",g("icon-button")),type:"button","aria-label":b.queueInstead,onClick:()=>xn(!0),children:l(L,{name:"plus",size:15})}):null,l("button",{className:g("send"),type:"button","aria-label":Rt?b.steerTurn:gt?b.queueMessage:b.sendMessage,disabled:ae||!k.trim()&&!E.length||!gt&&!e.canSend,onClick:()=>xn(),children:ae?l("i",{className:g("control-spinner")}):l(L,{name:Rt?"send":gt?"plus":"send",size:17})})]})]})]})})}var sl=Object.freeze({"claude-code":"Claude Code",codex:"Codex",gemini:"Gemini CLI",goose:"Goose",opencode:"OpenCode",pi:"Pi",grok:"Grok"}),tm=Object.freeze({chats:"Chats",newChat:"New chat",searchChats:"Search chats",askAgent:"Ask your agent\u2026",starterMark:"\u2726",starterTitle:"What should the agent build or fix?",starterHint:"Choose a coding harness and send the first message.",startPlaceholder:"What should the agent do?",attachContext:"Attach files or images",continueHere:"Continue here",continueWithTerminal:"Continue with terminal",joinLive:"Join live",forkHere:"Fork here",close:"Close",back:"Back",retry:"Retry",edit:"Edit",cancel:"Cancel",copy:"Copy",copied:"Copied",copyPath:"Copy path",copyCommand:"Copy command",copyUrl:"Copy URL",copyQuery:"Copy query",conversationActions:"Conversation actions",technicalDetails:"Technical details",messengerLabel:"Volter Harness messenger",backToChats:"Back to chats",agentChat:"Agent chat",chatFallback:"Chat",openingChat:"Opening {name}",openingDetail:"Loading the latest transcript window\u2026",statusConnecting:"Connecting",statusUnavailable:"Unavailable",statusNeedsInput:"Needs input",statusSendFailed:"Send failed",statusWorking:"Working",statusSending:"Sending",statusEditing:"Editing message",statusLive:"Live",statusReadOnly:"Read-only",statusReady:"Ready",menuSession:"Session",menuLowerCost:"Lower-cost continuation",menuIndependent:"Independent continuation",detachReadOnly:"Detach to read-only",prepareTerminal:"Prepare terminal handoff",exportBack:"Export back to {harness}",interopSettings:"Interoperability settings",keyboardShortcuts:"Keyboard shortcuts",reduceContinue:"Reduce and continue in {harness}",reduceSwitch:"Reduce and switch to {harness}",forkIn:"Fork in {harness}",continueWith:"Continue with {harness}",participantForeign:"This is {subject} conversation.",participantForeignVia:"This is {subject} conversation via {origin}.",participantSomeoneElse:"someone else's",participantUnknown:"Unknown participant \u2014 this conversation was not started here.",mirrorNotice:"{kind} of a {harness} session \u2014 the canonical record lives in its own store{truncated}.",mirrorBounded:"Bounded mirror",mirrorPlain:"Mirror",mirrorTruncated:" (truncated here)",openCanonical:"Open canonical session",heldBy:"Held by {surface} right now.",unheld:"No surface holds this session right now.",takeOver:"Take over",reducedVerified:"Reduced and verified",reductionDetail:"{source} \u2192 {reduced} tokens \xB7 {ratio}\xD7 \xB7 reversible",exportReady:"{fidelity} export ready \xB7 {harness}",exportDetail:"{path} \xB7 {files} files \xB7 {residue} residue items","fidelity:byte_lossless":"Byte-lossless","fidelity:value_lossless":"Value-lossless","fidelity:semantic":"Semantic",terminalReady:"Terminal handoff ready",newChatHint:"No session is created until you send",openingTerminal:"Opening terminal\u2026",messageCodingAgent:"Message coding agent",noHarness:"No coding harness is available",startTerminal:"Start terminal session",startHeadless:"Start headless session",terminalTextOnly:"Terminal starts currently accept text only. Choose Headless to attach context or images.",terminalRemoveAttachments:"Terminal starts currently accept text only. Remove attachments or choose Headless.",attachMaxText:"Attach at most {max} text items.",attachMaxImages:"Attach at most {max} images.",attachFailed:"Could not attach context.",imagesOnly:"Drop or paste PNG, JPEG, GIF, or WebP images.",imagePasteFailed:"Could not paste image.",imageDropFailed:"Could not drop image.",startFailed:"Could not start the conversation. Your draft is kept.",runIn:"Run in",modeTitle:"{label}: {mode}","mode:terminal":"Terminal","mode:headless":"Headless",activeElsewhere:"Active elsewhere",readOnly:"Read-only",cannotContinue:"This session cannot be continued by an available harness.",joinDetail:"Join the proven live runtime without taking it over.",resumeDetail:"Resume this {harness} session here.",branchDetail:"Start an independent continuation.",queued:"{count} queued",imageAttachment:"Image attachment",attachedCount:"{count} attached",removeQueued:"Remove queued message {index}",messageHarness:"Message {harness}",messageAgent:"Message agent",composerConnecting:"Connecting\u2026",composerFailed:"Retry or edit the unsent message\u2026",composerEditing:"Edit and resend\u2026",composerSteer:"Redirect the current turn\u2026",composerQueue:"Queue a follow-up\u2026",stopAgent:"Stop agent",queueInstead:"Queue follow-up instead",steerTurn:"Steer current turn",queueMessage:"Queue message",sendMessage:"Send message",steerFailed:"Could not steer the active turn.",ageNow:"now",ageMinutes:"{count}m ago",ageHours:"{count}h ago",ageDays:"{count}d ago",ageWeeks:"{count}w ago",noStartableHarness:"No connected harness can start a chat.",searchDescription:"Search recent conversations.",closeSearch:"Close search",searchConversations:"Search conversations",searchConversationsPlaceholder:"Search conversations\u2026",searching:"Searching\u2026",searchRetry:"Try search again",noSearchMatch:"No conversations match your search.",recentConversations:"{count} recent conversations",noChatMatch:"No chats match your search.",noChats:"No coding chats found.",loadingOlderChats:"Loading older chats\u2026",loadOlderChats:"Load older chats",rowReadOnly:"Read-only",rowWorking:"Working",rowUnread:"{count} unread",workingPreview:"Working\u2026",agentSessions:"{count} agent sessions",openAgentSessions:"Open {count} agent sessions in {title}",agentSessionsUnavailable:"{count} agent sessions \xB7 inspection unavailable",unreadMessages:"{count} unread messages",elsewhere:"elsewhere",participantVia:"{name} via {origin}",participantSomeone:"someone else",participantUnknownShort:"unknown participant",mirrorOf:"mirror of {harness}",channelFallback:"channel",loadingConnecting:"Connecting to coding agents",loadingConnectingDetail:"Checking installed harnesses and capabilities.",loadingStarting:"Starting {harness}",loadingStartingAgent:"Starting coding agent",loadingStartingDetail:"Opening a controlled session in this workspace.",loadingDiscovering:"Loading recent sessions",loadingDiscoveringDetail:"Scanning native session stores without loading full transcripts.",loadingReady:"Ready",loadingReadyDetail:"Coding sessions are up to date.",requestAnswered:"\u2713 Request answered \xB7 {name}",requestNeedsInput:"{kind} needs input",agentNeedsInput:"Agent needs input",contextCount:"Context \xB7 {count}",messageCopied:"Message copied",copyFailed:"Copy failed \xB7 retry",copyMessage:"Copy message",unrecognizedEntry:"Unrecognized entry",opaqueNotice:"Unrecognized entry kind {kind} \u2014 kept as-is, nothing dropped",rawEntry:"Raw entry",reasoning:"Reasoning",reasoningStreaming:"Reasoning\u2026",yourMessage:"Your message",assistantMessage:"Assistant message",entryTruncated:"Entry truncated by host \xB7 load native session for the complete value",truncatedMarker:"[truncated]",toolFallback:"Tool",toolNamedFailed:"{label} failed","toolRunning:read":"Reading","toolDone:read":"Read","toolFailed:read":"Read failed","toolRunning:search":"Searching","toolDone:search":"Searched","toolFailed:search":"Search failed","toolRunning:edit":"Editing","toolDone:edit":"Edited","toolFailed:edit":"Edit failed","toolRunning:command":"Running command","toolDone:command":"Ran command","toolFailed:command":"Command failed","toolRunning:test":"Running tests","toolDone:test":"Ran tests","toolFailed:test":"Tests failed","toolRunning:web":"Browsing","toolDone:web":"Browsed","toolFailed:web":"Browser action failed","toolRunning:agent":"Starting agent","toolDone:agent":"Started agent","toolFailed:agent":"Agent failed","toolRunning:plan":"Updating plan","toolDone:plan":"Updated plan","toolFailed:plan":"Plan update failed","argument:cmd":"Command","argument:command":"Command","argument:cwd":"Working directory","argument:file_path":"File","argument:target_file":"File","argument:path":"Path","argument:query":"Query","argument:pattern":"Pattern","argument:url":"URL",argumentDetails:"Details",durationMs:"{value}ms",durationSeconds:"{value}s",elapsedNow:"now",metricMatch:"{count} match",metricMatches:"{count} matches",metricExit:"exit {code}",diffPreview:"Diff preview",filePreview:"File preview",terminal:"Terminal",waitingOutput:"Waiting for output",noOutput:"No output",searchLabel:"Search",noTextResults:"No textual results",noDiff:"Edit completed without a textual diff",noFileContents:"File contents were not included in this event",waitingPage:"Waiting for the page",noPageSummary:"No page summary returned",agentWorking:"Agent is working",noHandoff:"No textual handoff returned",coordinatedTools:"Coordinated tools",nativeArguments:"Native arguments",nativeResult:"Native result",activityPending:"{count} actions in progress",activityFailed:"{count} actions \xB7 {failed} failed",activityExploredOne:"Explored {count} item",activityExplored:"Explored {count} items","activityOne:read":"{count} read","activityMany:read":"{count} reads","activityOne:search":"{count} search","activityMany:search":"{count} searches","activityOne:edit":"{count} edit","activityMany:edit":"{count} edits","activityOne:command":"{count} command","activityMany:command":"{count} commands","activityOne:test":"{count} test run","activityMany:test":"{count} test runs","activityOne:web":"{count} web action","activityMany:web":"{count} web actions","activityOne:agent":"{count} agent action","activityMany:agent":"{count} agent actions","activityOne:plan":"{count} plan update","activityMany:plan":"{count} plan updates","activityOne:other":"{count} action","activityMany:other":"{count} actions",plan:"Plan",planSteps:"Task plan steps",sessionDetails:"Session details",fidelity:"Fidelity",nativeRecords:"Native records",residue:"Residue",residueRetained:"{count} retained",parseDiagnostics:"Parse diagnostics",subagentSource:"{source} subagent",subagentDetail:"{messages} messages \xB7 {fidelity}",finishedWorking:"{harness} finished working",finishedWorkingAgent:"Coding agent finished working",conversation:"Conversation",loadEarlier:"Load earlier messages",listening:"{harness} is listening. Say something.",noTranscript:"No transcript yet.",newMessages:"New messages",newDivider:"New",pendingMessage:"Your pending message",notSent:"Not sent",sending:"Sending\u2026",harnessWorking:"{harness} is working",latest:"Latest",codeLanguage:"Code",codeRegion:"{language} code",copyCode:"Copy code",codeCopied:"Code copied","language:bash":"Shell","language:css":"CSS","language:html":"HTML","language:js":"JavaScript","language:javascript":"JavaScript","language:jsx":"JSX","language:md":"Markdown","language:markdown":"Markdown","language:py":"Python","language:python":"Python","language:rs":"Rust","language:rust":"Rust","language:sh":"Shell","language:shell":"Shell","language:ts":"TypeScript","language:tsx":"TSX","language:yaml":"YAML","language:yml":"YAML","language:json":"JSON","language:jsonc":"JSONC","language:sql":"SQL","language:xml":"XML",attachCandidate:"Attach {label}",attachedCandidate:"Attached {label}",candidateImage:"Image",candidateContext:"Context",availableContext:"Available context",attachedContext:"Attached context",attachedImages:"Attached images",removeContext:"Remove context {label}",removeImage:"Remove image {label}",imagePreview:"Image preview: {label}",imageCount:"{index} of {total}",imageActions:"Image actions",imageLinkCopied:"Image link copied",imageLinkFailed:"Could not copy image link",copyImageLink:"Copy image link",openOriginalImage:"Open original image",downloadImage:"Download image",closeImagePreview:"Close image preview",imageLoadFailed:"Could not load image",loadingImage:"Loading image\u2026",imageOutOfPayload:"The original stays out of the transcript payload.",previousImage:"Previous image",nextImage:"Next image",messageImages:"Message images",viewImage:"View image {label}",loadImage:"Load image {label}",loadPreview:"Load preview",previewUnavailable:"Preview unavailable",invalidHostImage:"The host returned an invalid image.",imageTooLargePreview:"This image is too large to preview safely.",imageLoadError:"Could not load this image.",tooManyImages:"Attach at most {max} images at a time.",imageBadType:"{name} is not PNG, JPEG, GIF, or WebP.",imageTooLarge:"{name} is larger than 5 MB.",imageReadFailed:"Could not read {name}.",thatImage:"That image",imageNoun:"image",pastedImage:"Pasted image",invalidAttachment:"The attachment picker returned an invalid item.",errorTitle:"Error",errorNoProvider:"Hermes has no model provider configured. Select a provider with hermes model, or run hermes setup for first-time configuration.",errorSeeDetails:"The request failed. Open Technical details for the reported error.",untitledChat:"Untitled chat","actor:user":"You","actor:assistant":"Agent","actor:tool":"Tool \xB7 {name}"}),vn=Object.freeze({pill:Object.freeze({tone:"off",label:"connecting\u2026"}),startup:"connecting",transcript:Object.freeze([]),busy:!1,operation:null,needsInput:!1,harness:"",mode:"none",strategy:null,participant:Object.freeze({kind:"local-user",label:null,origin:null}),workspaceRef:Object.freeze({kind:"none",value:null}),mirror:null,holder:null,canSend:!1,canSteer:!1,canResume:!1,supportsResume:!1,continuationModes:Object.freeze([]),canBranch:!1,supportsBranch:!1,canAttach:!1,supportsAttach:!1,canDetach:!1,canOpenTerminal:!1,canExport:!1,canReduce:!1,canInterrupt:!1,canRespond:!1,canConfigureSettings:!1,messaging:null,workspace:"",taskPlan:Object.freeze({source:"none",items:Object.freeze([]),residueCount:0,observedAt:null}),semantics:Object.freeze({fidelity:null,residue:Object.freeze([]),residueCount:0,parseErrors:0,rawRecords:0,subagents:Object.freeze([])}),terminalHandoff:null,exportBackTarget:null,exportReceipt:null,reductionReceipt:null,interopSettings:null,interopSettingsError:null,harnessAuthentication:null,error:null,recoverable:!1,harnesses:Object.freeze([]),history:Object.freeze({sessionLimit:0,hasMoreSessions:!1,transcriptLimit:120,hasEarlier:!1}),savedDraft:"",attention:Object.freeze([]),sessions:Object.freeze([]),subagentInspector:null,attached:null,owned:null,attachError:null,agentPackage:null,contributions:Object.freeze([]),agentPackageError:null,agentPackageCapabilityState:null,agentPackageCapabilityError:null}),al=new Set(["system","user","assistant","tool","reasoning","request","notice"]),il=new Set(["none","control","mirror"]),ul=new Set(["start","resume","attach","branch","reduce"]),ol=new Set(["connecting","starting","discovering","ready"]),bi=new Set(["byte_lossless","value_lossless","semantic"]),cl=new Set(["read","search","edit","command","test","web","agent","plan","other"]),ll=new Set(["file","matches","diff","terminal","web","agent","plan","fields"]),dl=new Set(["idle","checking","required","configured","unavailable","launching","awaiting_user","verifying","authenticated","failed","cancelled"]),wi=8,xe=800,Ci=4e3,fl=64,hl=12,yi=100,pl=16e3;function A(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function ml(e){let t=A(e);if(t?.schema!=="supercode.harness-authentication-flow.v1"||!dl.has(t.phase))return null;let n=A(t.plan),r=A(t.error);return{schema:"supercode.harness-authentication-flow.v1",revision:Number.isSafeInteger(t.revision)?Math.max(0,t.revision):0,phase:t.phase,harness:typeof t.harness=="string"?_(t.harness,100):null,plan:n?{method:n.method==="device_code"?"device_code":"browser",interaction:n.interaction==="device_code"?"device_code":"browser",browserBehavior:n.browserBehavior==="none"?"none":"native_auto",headless:n.headless===!0,instructions:_(n.instructions,2e3)}:null,error:r&&typeof r.message=="string"?{code:_(r.code,100),message:_(r.message,2e3)}:null}}function ne(e,t=""){return typeof e=="string"?e:t}function Qe(e,t=0){return typeof e=="number"&&Number.isFinite(e)?e:t}function Se(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function Si(e){return typeof e!="string"||e.startsWith("/")||/^[a-z]:[\\/]/i.test(e)||e.replaceAll("\\","/").split("/").some(t=>t==="..")?null:_(e,1e3)}function yn(e,t=0,n=new WeakSet){if(e===null||typeof e=="boolean"||typeof e=="string")return typeof e=="string"?_(e,pl):e;if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(t>=hl||!e||typeof e!="object"||n.has(e))return;if(n.add(e),Array.isArray(e)){let a=[];for(let i of e.slice(0,yi)){let u=yn(i,t+1,n);u!==void 0&&a.push(u)}return n.delete(e),a}let r=A(e);if(!r)return;let s={};for(let[a,i]of Object.entries(r).slice(0,yi)){let u=yn(i,t+1,n);u!==void 0&&(s[_(a,200)]=u)}return n.delete(e),s}function gl(e){return Array.isArray(e)?e.slice(0,fl).flatMap(t=>{let n=A(t),r=A(n?.placement),s=Si(n?.source);if(n?.schema!=="supercode/contribution-v1"||typeof n.id!="string"||!n.id.trim()||typeof n.kind!="string"||!n.kind.trim()||s===null)return[];let a=yn(n.data);return a===void 0?[]:[{schema:"supercode/contribution-v1",id:_(n.id,200),kind:_(n.kind,100),...typeof n.title=="string"?{title:_(n.title,500)}:{},...r?{placement:{...typeof r.surface=="string"?{surface:_(r.surface,100)}:{},...typeof r.region=="string"?{region:_(r.region,100)}:{}}}:{},data:a,source:s}]}):[]}function bl(e){let t=A(e),n=A(t?.capabilities),r=A(t?.storage),s=Si(r?.relativePath);if(t?.schemaVersion!==1||typeof t.id!="string"||typeof t.name!="string"||typeof t.version!="string"||!n||!Array.isArray(n.required)||!Array.isArray(n.optional)||!r||s===null)return null;let a=A(t.resources);return{id:_(t.id,200),name:_(t.name,500),version:_(t.version,100),description:typeof t.description=="string"?_(t.description,2e3):null,capabilities:{required:n.required.filter(i=>typeof i=="string").slice(0,100).map(i=>_(i,200)),optional:n.optional.filter(i=>typeof i=="string").slice(0,100).map(i=>_(i,200))},storage:{relativePath:s},resources:a?Object.fromEntries(Object.entries(a).flatMap(([i,u])=>{let o=A(u);if(o?.schema!=="supercode/package-resource-state-v1")return[];if(o.status==="absent"&&typeof o.contributionId=="string")return[[_(i,200),{schema:"supercode/package-resource-state-v1",status:"absent",contributionId:_(o.contributionId,200)}]];if(o.status==="error"&&typeof o.contributionId=="string"&&typeof o.message=="string")return[[_(i,200),{schema:"supercode/package-resource-state-v1",status:"error",contributionId:_(o.contributionId,200),message:_(o.message)}]];let c=A(o?.resource),f=yn(c?.data);return o?.status!=="ready"||c?.schema!=="supercode/package-resource-v1"||typeof c.contributionId!="string"||!["json","text"].includes(c.format)||typeof c.mediaType!="string"||f===void 0?[]:[[_(i,200),{schema:"supercode/package-resource-state-v1",status:"ready",resource:{schema:"supercode/package-resource-v1",contributionId:_(c.contributionId,200),format:c.format,mediaType:_(c.mediaType,200),data:f}}]]})):{}}}function yl(e){let t=A(e);if(!t)return null;let n=["availableRequired","missingRequired","enabledOptional","unavailableOptional"];return n.every(r=>Array.isArray(t[r]))?{ready:t.ready===!0,...Object.fromEntries(n.map(r=>[r,t[r].filter(s=>typeof s=="string").slice(0,100).map(s=>_(s,200))]))}:null}function _(e,t=2e3){return typeof e!="string"?"":e.length<=t?e:`${e.slice(0,t)}\u2026`}function vl(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function ce(e,t){for(let n of t)if(typeof e?.[n]=="string"&&e[n].trim())return e[n].trim();return""}function Ai(e){if(!e)return"";if(e.startsWith('"'))try{return JSON.parse(e)}catch{return""}return e.slice(1,-1).replaceAll("\\n",`
30
+ ${c.truncatedMarker}`:""]})]})})]}):null]});else if(e.role==="request")h=l(ri,{entry:e,adapter:n,canRespond:t.canRespond,className:r,style:s});else if(e.role==="reasoning")h=l("details",{className:o("reasoning",r),style:s,open:e.streaming,children:[l("summary",{className:o("reasoning-summary"),children:e.streaming?c.reasoningStreaming:c.reasoning}),l(Tt,{value:e.text,copyText:n?.copyText})]});else if((e.role==="notice"||e.role==="system")&&(e.label==="error"||e.code==="error")){let d=On(e.text,void 0,c);h=l("div",{className:o("notice",r),style:s,"data-code":"error",children:[l("strong",{children:d.title}),l("p",{children:d.summary}),d.details?l("details",{className:o("tool-technical"),children:[l("summary",{className:o("tool-technical-summary"),children:c.technicalDetails}),l("div",{className:o("tool-technical-body"),children:l("pre",{className:o("tool-technical-pre"),children:d.details})})]}):null]})}else e.role==="notice"||e.role==="system"?h=l("div",{className:o("notice",r),style:s,"data-code":e.code,children:e.text}):h=l("article",{className:o("message",r),style:s,"data-role":e.role,"data-actor-kind":e.actor?.kind,"aria-label":e.role==="user"?c.yourMessage:c.assistantMessage,children:[l(Rc,{entry:e}),l(Yt,{items:e.images,adapter:n}),l(Tt,{value:e.text,copyText:n?.copyText}),l(si,{context:e.context}),e.truncated?l("small",{className:o("truncated"),children:c.entryTruncated}):null,l(Lc,{entry:e,adapter:n})]});return l(se,{value:u,children:l(ve,{value:f,children:h})})}function Wr({entry:e,workspace:t,open:n=!1,adapter:r,className:s,style:a,classNames:i,labels:u}){let o=I(i),c=(T,...E)=>N(o,T,...E),{t:f,host:h}=X(u),d=e.presentation??zs(e),[m,p]=$(n||e.status==="pending"),g=U(!1);j(()=>{e.status==="pending"?p(!0):!g.current&&!n&&p(!1)},[e.status]);let b=$s(d.target,t),x=!!(e.arguments||e.resultText||d.preview||d.fields.length),y=d.category??Zt(e),v=e.ts===null||e.ts===void 0?null:new Date(e.ts),k=v&&Number.isFinite(v.valueOf())?v.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1}):null,C=l("span",{className:c("tool-actor"),"aria-hidden":"true",children:[k?l("time",{className:c("message-actor-time"),children:k}):l("span",{}),l("span",{className:c("message-actor-name"),"data-role":"tool",children:z(f["actor:tool"],{name:e.label||y})})]}),w=l(R,{children:[C,l(Oc,{category:y}),l("strong",{className:c("tool-title"),children:Pc(e,y,d,f)}),b?l("code",{className:c("tool-target"),title:d.target,children:b}):null,l("span",{className:c("spacer")}),e.status==="pending"?l($c,{now:r?.now}):null,l("span",{className:c("tool-status"),role:"status","data-status":e.status??"completed","aria-label":qc(f,e.status??"completed"),children:e.status==="pending"?l("i",{className:c("tool-status-spinner")}):l(L,{name:e.status==="error"?"close":"check",size:12})}),x?l(L,{name:"chevron",size:14,className:c("tool-chevron")}):null]});return x?l(se,{value:o,children:l(ve,{value:h,children:l("details",{className:c("tool",s),style:a,"data-status":e.status??"completed","data-category":y,open:m,onToggle:T=>{T.currentTarget.open!==m&&(g.current=!0),p(T.currentTarget.open)},children:[l("summary",{className:c("tool-head",c("tool-summary")),children:w}),l("div",{className:c("tool-detail"),children:[l(Hc,{presentation:d}),l(Kc,{tools:d.tools??[]}),l(Wc,{presentation:d,entry:e}),d.fields.length?l("dl",{className:c("tool-fields"),children:d.fields.map(T=>l("div",{className:c("tool-field"),children:[l("dt",{className:c("tool-field-label"),children:T.label}),l("dd",{className:c("tool-field-value"),children:T.value})]},T.label))}):null,l(Vc,{presentation:d,adapter:r}),l(Gc,{entry:e})]})]})})}):l(se,{value:o,children:l(ve,{value:h,children:l("div",{className:c("tool",s),style:a,"data-status":e.status??"completed","data-category":y,children:l("div",{className:c("tool-head"),children:w})})})})}function ui({entries:e,state:t,adapter:n,expandTools:r=!1,className:s,style:a,classNames:i,labels:u}){let o=I(i),c=(x,...y)=>N(o,x,...y),{t:f,host:h}=X(u),d=e.some(x=>x.status==="pending"),[m,p]=$(d),g=U(!1),b=Ue();return j(()=>{d?p(!0):g.current||p(!1)},[d]),e.length===1?l(se,{value:o,children:l(ve,{value:h,children:l("section",{className:c("activity",s),style:a,"data-single":"true",children:l(Wr,{open:r,entry:e[0],workspace:t.workspace,adapter:n})})})}):l(se,{value:o,children:l(ve,{value:h,children:l("section",{className:c("activity",s),style:a,children:[l("button",{className:c("activity-head"),type:"button","aria-expanded":m,"aria-controls":b,onClick:()=>{g.current=!0,p(x=>!x)},children:[l("span",{className:c("fold"),"data-open":m,children:l(L,{name:"chevron",size:14})}),l("strong",{className:c("activity-summary"),children:js(e,f)}),l("span",{className:c("spacer")}),l("small",{className:c("activity-count"),children:[e.filter(x=>x.status!=="pending").length,"/",e.length]})]}),m?l("div",{id:b,className:c("activity-items"),children:e.map(x=>l(Wr,{open:r,entry:x,workspace:t.workspace,adapter:n},x.key??x.id))}):null]})})})}function oi({plan:e,className:t,style:n,classNames:r,labels:s}){let a=I(r),i=(c,...f)=>N(a,c,...f),{t:u}=X(s);if(!e.items.length)return null;let o=e.items.filter(c=>c.status==="completed"||c.status==="cancelled").length;return l("details",{className:i("plan",t),style:n,children:[l("summary",{className:i("plan-summary"),children:[l("span",{children:u.plan}),l("small",{children:[o,"/",e.items.length]})]}),l("ol",{className:i("plan-steps"),tabIndex:0,"aria-label":u.planSteps,children:e.items.map(c=>l("li",{className:i("plan-step"),"data-status":c.status,children:[l("i",{"aria-hidden":"true"})," ",l("span",{children:c.title})]},c.id))})]})}function ci({semantics:e,className:t,style:n,classNames:r,labels:s}){let a=I(r),i=(c,...f)=>N(a,c,...f),{t:u,f:o}=X(s);return!e.fidelity&&!e.residueCount&&!e.parseErrors&&!e.subagents.length?null:l("details",{className:i("details",t),style:n,children:[l("summary",{className:i("details-summary"),children:u.sessionDetails}),l("div",{className:i("details-items"),children:[e.fidelity?l("p",{className:i("details-item"),children:[l("strong",{className:i("details-label"),children:u.fidelity}),l("span",{children:e.fidelity.replaceAll("_"," ")})]}):null,l("p",{className:i("details-item"),children:[l("strong",{className:i("details-label"),children:u.nativeRecords}),l("span",{children:e.rawRecords})]}),e.residueCount?l("p",{className:i("details-item"),children:[l("strong",{className:i("details-label"),children:u.residue}),l("span",{children:o("residueRetained",{count:e.residueCount})})]}):null,e.parseErrors?l("p",{className:i("details-item"),children:[l("strong",{className:i("details-label"),children:u.parseDiagnostics}),l("span",{children:e.parseErrors})]}):null,e.subagents.map(c=>l("p",{className:i("details-item"),children:[l("strong",{className:i("details-label"),children:o("subagentSource",{source:c.source})}),l("span",{children:o("subagentDetail",{messages:c.messages,fidelity:c.fidelity.replaceAll("_"," ")})})]},c.id))]})]})}var ti=Ae();function Jc({state:e}){let{t,f:n}=X(),r=U(e.busy),[s,a]=$("");return j(()=>{if(r.current&&!e.busy&&!e.error){let i=oe(e.harness);a(i?n("finishedWorking",{harness:i}):t.finishedWorkingAgent)}r.current=e.busy},[e.busy,e.error,e.harness]),l("span",{className:"scui-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:s})}function Dt({state:e,adapter:t,components:n={},slots:r={},memoryKey:s=e.attached?.key||`${e.harness}:${e.workspace}`,pending:a=null,unreadAfterMessages:i=null,groupTools:u=!0,expandTools:o=!1,className:c,style:f,classNames:h,labels:d}){let m=I(h),p=(P,...H)=>N(m,P,...H),{t:g,f:b,host:x}=X(d),y=U(null),v=ti.get(s)??{top:null,atBottom:!0},[k,C]=$(v.atBottom),w=U(null),T=U(!1),E=Hs(e.transcript,{groupTools:u}),O=U(Number.isSafeInteger(i)&&i>=0?i:null),D=O.current===null?-1:E.findIndex(P=>(P.kind==="activity"?P.entries:[P.entry]).some(ge=>Number.isSafeInteger(ge.messageIndex)&&ge.messageIndex>O.current)),G=n.TranscriptEntry??ii,W=n.ActivityGroup??ui,ke=n.TaskPlan??oi,ae=r.beforeConversation,re=r.afterConversation,Y=r.emptyConversation,me=P=>at(ti,s,P),ue=typeof a=="string"?{text:a,status:"sending"}:a,$e=()=>{y.current&&(y.current.scrollTop=y.current.scrollHeight,C(!0),me({top:y.current.scrollTop,atBottom:!0}))};return yt(()=>{let P=y.current;if(!P)return;let H=w.current;if(H){if(e.operation==="loadEarlier"&&(H.seenOperation=!0),e.transcript.length>H.entries&&e.transcript[0]?.id!==H.firstId){P.scrollTop=H.top+(P.scrollHeight-H.height),w.current=null,me({top:P.scrollTop,atBottom:!1});return}(e.error||H.seenOperation&&e.operation!=="loadEarlier")&&(w.current=null)}T.current?k&&$e():(T.current=!0,v.top!==null&&!v.atBottom?P.scrollTop=v.top:$e())},[s,e.transcript,e.busy,e.operation,e.error,ue?.text,ue?.status]),l(se,{value:m,children:l(ve,{value:x,children:l("div",{className:p("conversation-wrap",c),style:f,children:[l(Jc,{state:e}),l("div",{className:p("conversation"),ref:y,tabIndex:0,"aria-label":g.conversation,onScroll:P=>{let H=P.currentTarget,ge=H.scrollHeight-H.scrollTop-H.clientHeight<=64;C(ge),me({top:H.scrollTop,atBottom:ge})},children:l("div",{className:p("conversation-content"),children:[ae?l(ae,{state:e,adapter:t,value:null}):null,l(ke,{plan:e.taskPlan,value:e.taskPlan,state:e,adapter:t}),l(ci,{semantics:e.semantics}),e.history.hasEarlier?l("button",{className:p("load"),type:"button",disabled:!!e.operation,onClick:()=>{let P=y.current;P&&(w.current={height:P.scrollHeight,top:P.scrollTop,entries:e.transcript.length,firstId:e.transcript[0]?.id,seenOperation:!1}),C(!1),t.onIntent({action:"loadEarlier"})},children:g.loadEarlier}):null,!E.length&&e.startup!=="ready"?l(Vr,{state:e}):null,!E.length&&e.startup==="ready"?Y?l(Y,{state:e,adapter:t,value:null}):l("div",{className:p("empty"),children:e.error??(e.harness?b("listening",{harness:oe(e.harness)}):g.noTranscript)}):null,E.map((P,H)=>l(R,{children:[H===D?l("div",{className:p("unread-divider"),role:"separator","aria-label":g.newMessages,children:l("span",{className:p("unread-divider-label"),children:g.newDivider})}):null,P.kind==="activity"?l(W,{value:P.entries,entries:P.entries,state:e,adapter:t,expandTools:o}):l(G,{value:P.entry,entry:P.entry,state:e,adapter:t})]},P.id)),ue?l("article",{className:p("message"),"data-role":"user","data-pending":"true","data-status":ue.status,"aria-label":g.pendingMessage,children:[l(Yt,{items:ue.images,adapter:t}),l(Tt,{value:ue.text,copyText:t?.copyText}),l(si,{context:ue.context}),l("footer",{className:p("pending-footer"),children:[l("small",{className:p("pending-status"),children:ue.status==="failed"?g.notSent:g.sending}),ue.status==="failed"?l("span",{className:p("pending-actions"),children:[l("button",{className:p("pending-action",p("button")),type:"button",onClick:ue.onRetry,children:g.retry}),l("button",{className:p("pending-action",p("button")),type:"button",onClick:ue.onEdit,children:g.edit})]}):null]})]}):null,e.busy?l("div",{className:p("working"),role:"status",children:[l("span",{className:p("working-mark"),"aria-hidden":"true",children:"\u2726"}),l("i",{className:p("working-dot")}),l("i",{className:p("working-dot")}),l("i",{className:p("working-dot")}),l("small",{children:b("harnessWorking",{harness:oe(e.harness)})})]}):null,re?l(re,{state:e,adapter:t,value:null}):null]})}),k?null:l("button",{className:p("latest",p("button")),type:"button",onClick:$e,children:[l(L,{name:"down",size:13})," ",g.latest]})]})})})}var Kr={unknownUser:"Unknown user",harnessSession:"{harness} session",pane:"Pane",ageNow:"now",ageMinutes:"{count}m ago",ageHours:"{count}h ago",ageDays:"{count}d ago",ageWeeks:"{count}w ago",signInTitle:"Open a team",signInNote:"Connect to a Teams server with your own access token. It stays in this tab and is sent only to that server.",server:"Server",serverPlaceholder:"https://teams.example.com",accessToken:"Access token",connecting:"Connecting\u2026",connect:"Connect",teamSessions:"Team sessions",searchTeamSessions:"Search team sessions",searchSessionsPlaceholder:"Search sessions\u2026",filterByUser:"Filter by user",everyone:"Everyone",me:"Me",filterByHarness:"Filter by harness",anyHarness:"Any harness",filterByMachine:"Filter by machine",anyMachine:"Any machine",searching:"Searching\u2026",loadingSessions:"Loading sessions\u2026",sessionsError:"Sessions could not be loaded.",tryAgain:"Try again",noSessionMatch:"No sessions match.",noSessions:"No sessions have been shared with this team yet.",sessionLabel:"Session {title}",backToSessions:"Back to sessions",readOnly:"Read-only",live:"Live",snapshot:"Snapshot",latestMessages:"Showing the latest {returned} of {total} messages. ",partialCapture:"Part of this session was not captured.",sessionReadError:"This session could not be read.",teamMachines:"Team machines",machinesOnline:"{online} of {total} online",loadingMachines:"Loading machines\u2026",machinesError:"Machines could not be loaded.",noMachines:"No machine is enrolled in this team.",unknownCustodian:"Unknown custodian",executionContained:"Runs jobs, each contained",executionProcessGroup:"Runs jobs as process groups",executionNone:"Runs no remote jobs",online:"Online",offline:"Offline",offlineSeen:"Offline \xB7 seen {age}",offlineNeverSeen:"Offline \xB7 never seen",watch:"Watch",control:"Control",access:"Access",loadingGrants:"Loading grants\u2026",noGrants:"Only you can reach this machine's panes.",canControl:"Can control",canWatch:"Can watch",grantUntil:"until {time}",revoke:"Revoke",grantPaneAccess:"Grant pane access",member:"Member",noOtherMembers:"No other members",paneField:"Pane",noPanes:"No panes",can:"Can",grantFor:"For",ttl1h:"1 hour",ttl8h:"8 hours",ttl7d:"7 days",saving:"Saving\u2026",grant:"Grant",machineLabel:"Machine {name}",backToMachines:"Back to machines",yourMachine:"Your machine",custodianMachine:"{name}'s machine",panes:"Panes",machineOffline:"This machine is offline. Its panes open when it reconnects.",machineOfflineSeen:"This machine is offline; last seen {age}. Its panes open when it reconnects.",reachingMachine:"Reaching the machine\u2026",machineUnreachable:"This machine could not be reached.",noVisiblePanes:"No pane you can see is running.",terminalLabel:"Terminal {title}",detach:"Detach",watchingReadOnly:"Watching \xB7 read-only",terminalMode:"Terminal mode",noTerminal:"This host has no terminal renderer; pass components.Terminal.",team:"Team",teamViews:"Team views",sessions:"Sessions",machines:"Machines",signOut:"Sign out",chooseSession:"Choose a session to read it.",chooseMachine:"Choose a machine to see its panes."},Bp=[{id:"1h",label:"ttl1h",ms:36e5},{id:"8h",label:"ttl8h",ms:8*36e5},{id:"7d",label:"ttl7d",ms:7*864e5}];function Xc(e,t,n){let r=I(e),[s,a]=Q(Kr,t),i=vt(n);return{p:(u,...o)=>N(r,u,...o),t:s,f:(u,o)=>z(s[u],o),slots:i,scope:u=>l(_t,{classNames:r,labels:a,slots:i,children:u})}}var di=e=>e?{...Kr,...e}:Kr;function li(e){return e?typeof e=="string"?e:e.message||String(e):null}function Yc(e){let t=String(e??"").replace(/\/+$/,"");return t.slice(t.lastIndexOf("/")+1)||t}function Qc(e,t){return t?e?.find(n=>n.principal?.id===t)?.principal.display_name??null:null}function el(e,t,n=void 0){let r=e?.user;return Qc(t,r?.principal_id)??r?.reported_user??di(n).unknownUser}function tl(e,t=void 0){return e?.title?e.title:e?.repository?.path?Yc(e.repository.path):z(di(t).harnessSession,{harness:oe(e?.harness??"")})}function nl(e,t){return(e?.machine_ids??[]).map(n=>t?.find(r=>r.id===n)?.name??n)}function rl({kind:e="status",children:t}){let n=I();return l("p",{className:N(n,"team-status"),"data-kind":e,role:e==="error"?"alert":"status",children:t})}function fi({session:e,transcript:t=[],members:n=[],machines:r=[],status:s="ready",error:a=null,live:i=!1,display:u=null,pending:o=null,onBack:c,adapter:f,className:h,style:d,classNames:m,labels:p=void 0,slots:g=void 0}){let{p:b,t:x,f:y,slots:v,scope:k}=Xc(m,p,g),C=ye(()=>({...Rn,startup:s==="loading"&&!t.length?"discovering":"ready",transcript:t,harness:e?.harness??"",mode:"mirror",error:s==="error"?li(a):null,history:{...Rn.history,hasEarlier:!1}}),[e?.harness,t,s,a]),w=ye(()=>f??{onIntent(){},copyText:G=>globalThis.navigator?.clipboard?.writeText(G)},[f]);if(!e)return null;let T=nl(e,r),E=e.coverage?.completeness==="partial",O=e.title?null:t.find(G=>G.role==="user"&&G.text)?.text.replace(/\s+/g," ").trim(),D=O?O.length>90?`${O.slice(0,89)}\u2026`:O:tl(e,x);return k(l("section",{className:b("team-transcript",h),style:d,"aria-label":y("sessionLabel",{title:D}),children:[l("header",{className:b("head"),children:[c?l("button",{className:b("head-action",b("icon-button")),type:"button","aria-label":x.backToSessions,onClick:c,children:l(L,{name:"back",size:17})}):null,l(Pe,{className:b("head-logo"),id:e.harness,size:24}),l("span",{className:b("head-copy"),children:[l("strong",{className:b("head-title"),children:D}),l("small",{className:b("head-subtitle"),children:[el(e,n,x),oe(e.harness),...T,x.readOnly].join(" \xB7 ")})]}),l(Jt,{slots:v,name:"transcriptHeaderActions",value:e}),l("span",{className:b("team-live"),"data-live":i,children:i?x.live:x.snapshot})]}),E||u&&u.returned<u.total?l("p",{className:b("team-coverage"),children:[u&&u.returned<u.total?y("latestMessages",{returned:u.returned,total:u.total}):"",E?x.partialCapture:""]}):null,s==="error"&&!t.length?l(rl,{kind:"error",children:li(a)??x.sessionReadError}):l(Dt,{state:C,adapter:w,memoryKey:`team:${e.id}`,pending:o})]}))}function pi(e,t){yt(()=>{let n=e.current;if(!n)return;n.style.height="auto";let r=Number.parseFloat(getComputedStyle(n).maxHeight)||150,s=Math.min(n.scrollHeight,r);n.style.height=`${s}px`,n.style.overflowY=n.scrollHeight>r?"auto":"hidden"},[e,t])}var hi=Ae();function It({state:e,adapter:t,labels:n,memoryKey:r=e.attached?.key||`${e.harness}:${e.workspace}`,pendingStatus:s=null,restoreDraft:a=null,command:i=null,contextCandidates:u=[],components:o={},onPending:c,onDraftRestored:f,className:h,style:d,classNames:m}){let p=I(m),g=(S,...M)=>N(p,S,...M),[b]=Q(K,n),x=(S,M)=>z(b[S],M),y=g("compose-item"),v=hi.get(r)??{draft:e.savedDraft,context:[],images:[],queue:[]},[k,C]=$(v.draft),[w,T]=$(v.context??[]),[E,O]=$(v.images??[]),[D,G]=$((v.queue??[]).map(S=>({...S,context:S.context??[],images:S.images??[]}))),[W,ke]=$(!1),[ae,re]=$(!1),[Y,me]=$(!1),[ue,$e]=$(!1),[P,H]=$(null),ge=U(null),ts=U(null);pi(ge,k);let le=(S,M,B,J)=>at(hi,r,{draft:S,context:M,images:B,queue:J});j(()=>{le(k,w,E,D)},[k,w,E,r,D]);let ns=S=>G(M=>{let B=S(M);return le(k,w,E,B),B}),_n=e.busy||s!==null||W||ae,gt=e.busy||s==="sending"||s==="failed"||W||ae,rs=e.busy&&e.canSteer&&!ae&&s===null,Rt=rs&&!!k.trim()&&w.length===0&&E.length===0;j(()=>{if(!_n&&e.canSend&&D.length){let[S,...M]=D;ke(!0),G(M),le(k,w,E,M),c?.(S.text,S.context,S.images),t.onIntent({action:"send",text:S.text,...S.context.length?{context:S.context}:{},...S.images.length?{images:S.images}:{}})}},[t,k,r,c,D,_n,e.canSend]),j(()=>{(s!==null||e.busy)&&ke(!1)},[s,e.busy]),j(()=>{ge.current?.focus({preventScroll:!0})},[r]),j(()=>{if(!a)return;C(a.text);let S=Bn(a.context),M=qn(a.images);T(S),O(M),le(a.text,S,M,D),ge.current?.focus({preventScroll:!0}),f?.(a.id)},[f,a?.id]),j(()=>{if(!(!i||i.id===ts.current)){if(ts.current=i.id,i.action==="attach")try{let S=wt(i.attachments,b);if(w.length+S.context.length>Ne)throw new Error(x("attachMaxText",{max:Ne}));if(E.length+S.images.length>fe)throw new Error(x("attachMaxImages",{max:fe}));let M=kt(w,S.context),B=it(E,S.images);T(M),O(B),H(null),le(k,M,B,D)}catch(S){H(S instanceof Error?S.message:b.attachFailed)}ge.current?.focus({preventScroll:!0})}},[i?.id]),j(()=>{let S=setTimeout(()=>t.onIntent({action:"draft",text:k}),250);return()=>clearTimeout(S)},[t,k]);let zi=()=>{!t.pickContext||e.mode!=="control"||Y||w.length>=Ne&&E.length>=fe||(me(!0),H(null),Promise.resolve().then(()=>t.pickContext()).then(S=>{let M=wt(S,b);if(w.length+M.context.length>Ne)throw new Error(x("attachMaxText",{max:Ne}));if(E.length+M.images.length>fe)throw new Error(x("attachMaxImages",{max:fe}));T(B=>{let J=kt(B,M.context);return le(k,J,E,D),J}),O(B=>{let J=it(B,M.images);return le(k,w,J,D),J})}).catch(S=>H(S instanceof Error?S.message:b.attachFailed)).finally(()=>me(!1)))},Hi=S=>{let M=wt(S,b),B=kt(w,M.context),J=it(E,M.images);T(B),O(J),le(k,B,J,D)},ss=(S,M)=>{let B=Array.from(S??[]);if(!B.length)return!1;let J=B.filter(be=>be.type.startsWith("image/"));return J.length!==B.length?(H(b.imagesOnly),!0):E.length+J.length>fe?(H(x("attachMaxImages",{max:fe})),!0):(me(!0),H(null),zn(J,b).then(be=>O(Ui=>{let as=it(Ui,be);return le(k,w,as,D),as}),be=>H(be instanceof Error?be.message:M==="paste"?b.imagePasteFailed:b.imageDropFailed)).finally(()=>me(!1)),!0)},$i=S=>{ss(S.clipboardData?.files,"paste")&&S.preventDefault()},ji=S=>{$e(!1),ss(S.dataTransfer?.files,"drop")&&S.preventDefault()},xn=(S=!1)=>{let M=k.trim();if(!M&&!E.length)return;if(H(null),Rt&&!S){re(!0),Promise.resolve(t.onIntent({action:"steer",text:M})).then(()=>{C(""),le("",w,E,D)},J=>H(J instanceof Error?J.message:b.steerFailed)).finally(()=>re(!1));return}let B={text:M,context:w,images:E};if(gt)ns(J=>[...J,B]);else if(e.canSend)c&&ke(!0),c?.(M,w,E),t.onIntent({action:"send",text:M,...w.length?{context:w}:{},...E.length?{images:E}:{}});else return;C(""),T([]),O([]),le("",[],[],gt?[...D,B]:D)};return l(se,{value:p,children:l("div",{className:g("compose",h),style:d,children:[D.length?l("div",{className:g("queue",y),children:[l("strong",{children:x("queued",{count:D.length})}),D.map((S,M)=>l("span",{className:g("queue-item"),children:[l("span",{className:g("queue-text"),children:[S.text||b.imageAttachment,S.context.length+S.images.length?l("small",{className:g("queue-meta"),children:x("attachedCount",{count:S.context.length+S.images.length})}):null]}),l("button",{className:g("queue-remove"),type:"button","aria-label":x("removeQueued",{index:M+1}),onClick:()=>ns(B=>B.filter((J,be)=>be!==M)),children:l(L,{name:"close",size:13})})]},`${M}:${S.text}`))]}):null,l(Xt,{className:y,items:u,context:w,images:E,state:e,adapter:t,onAttach:Hi,component:o.ContextCandidate}),l($n,{className:y,items:E,onRemove:S=>O(M=>{let B=M.filter((J,be)=>be!==S);return le(k,w,B,D),B})}),l(Hn,{className:y,items:w,onRemove:S=>T(M=>{let B=M.filter((J,be)=>be!==S);return le(k,B,E,D),B})}),P?l("small",{className:g("context-error",y),role:"alert",children:P}):null,l("div",{className:g("envelope",y),"data-dropping":ue?"true":void 0,onDragEnter:S=>{Array.from(S.dataTransfer?.types??[]).includes("Files")&&(S.preventDefault(),$e(!0))},onDragOver:S=>{Array.from(S.dataTransfer?.types??[]).includes("Files")&&S.preventDefault()},onDragLeave:S=>{S.currentTarget.contains(S.relatedTarget)||$e(!1)},onDrop:ji,children:[t.pickContext&&e.mode==="control"?l("button",{className:g("attach",g("icon-button")),type:"button","aria-label":b.attachContext,disabled:Y||w.length>=Ne&&E.length>=fe,onClick:zi,children:Y?l("i",{className:g("control-spinner")}):l(L,{name:"attach",size:17})}):null,l("textarea",{className:g("envelope-input"),ref:ge,rows:1,"aria-label":oe(e.harness)?x("messageHarness",{harness:oe(e.harness)}):b.messageAgent,placeholder:e.startup!=="ready"?b.composerConnecting:s==="failed"?b.composerFailed:s==="editing"?b.composerEditing:rs&&w.length===0&&E.length===0?b.composerSteer:_n?b.composerQueue:b.askAgent,value:k,disabled:e.mode!=="control"&&!e.canSend,onPaste:$i,onInput:S=>{let M=S.currentTarget.value;C(M),le(M,w,E,D)},onKeyDown:S=>{Ln(S)&&(S.preventDefault(),xn())}}),l("span",{className:g("envelope-actions"),children:[e.busy?l("button",{className:g("stop"),type:"button","aria-label":b.stopAgent,disabled:!e.canInterrupt,onClick:()=>t.onIntent({action:"interrupt"}),children:l(L,{name:"stop",size:15})}):null,Rt?l("button",{className:g("queue-send",g("icon-button")),type:"button","aria-label":b.queueInstead,onClick:()=>xn(!0),children:l(L,{name:"plus",size:15})}):null,l("button",{className:g("send"),type:"button","aria-label":Rt?b.steerTurn:gt?b.queueMessage:b.sendMessage,disabled:ae||!k.trim()&&!E.length||!gt&&!e.canSend,onClick:()=>xn(),children:ae?l("i",{className:g("control-spinner")}):l(L,{name:Rt?"send":gt?"plus":"send",size:17})})]})]})]})})}var sl=Object.freeze({"claude-code":"Claude Code",codex:"Codex",gemini:"Gemini CLI",goose:"Goose",opencode:"OpenCode",pi:"Pi",grok:"Grok"}),tm=Object.freeze({chats:"Chats",newChat:"New chat",searchChats:"Search chats",askAgent:"Ask your agent\u2026",starterMark:"\u2726",starterTitle:"What should the agent build or fix?",starterHint:"Choose a coding harness and send the first message.",startPlaceholder:"What should the agent do?",attachContext:"Attach files or images",continueHere:"Continue here",continueWithTerminal:"Continue with terminal",joinLive:"Join live",forkHere:"Fork here",close:"Close",back:"Back",retry:"Retry",edit:"Edit",cancel:"Cancel",copy:"Copy",copied:"Copied",copyPath:"Copy path",copyCommand:"Copy command",copyUrl:"Copy URL",copyQuery:"Copy query",conversationActions:"Conversation actions",technicalDetails:"Technical details",messengerLabel:"Volter Harness messenger",backToChats:"Back to chats",agentChat:"Agent chat",chatFallback:"Chat",openingChat:"Opening {name}",openingDetail:"Loading the latest transcript window\u2026",statusConnecting:"Connecting",statusUnavailable:"Unavailable",statusNeedsInput:"Needs input",statusSendFailed:"Send failed",statusWorking:"Working",statusSending:"Sending",statusEditing:"Editing message",statusLive:"Live",statusReadOnly:"Read-only",statusReady:"Ready",menuSession:"Session",menuLowerCost:"Lower-cost continuation",menuIndependent:"Independent continuation",detachReadOnly:"Detach to read-only",prepareTerminal:"Prepare terminal handoff",exportBack:"Export back to {harness}",interopSettings:"Interoperability settings",keyboardShortcuts:"Keyboard shortcuts",reduceContinue:"Reduce and continue in {harness}",reduceSwitch:"Reduce and switch to {harness}",forkIn:"Fork in {harness}",continueWith:"Continue with {harness}",participantForeign:"This is {subject} conversation.",participantForeignVia:"This is {subject} conversation via {origin}.",participantSomeoneElse:"someone else's",participantUnknown:"Unknown participant \u2014 this conversation was not started here.",mirrorNotice:"{kind} of a {harness} session \u2014 the canonical record lives in its own store{truncated}.",mirrorBounded:"Bounded mirror",mirrorPlain:"Mirror",mirrorTruncated:" (truncated here)",openCanonical:"Open canonical session",heldBy:"Held by {surface} right now.",unheld:"No surface holds this session right now.",takeOver:"Take over",reducedVerified:"Reduced and verified",reductionDetail:"{source} \u2192 {reduced} tokens \xB7 {ratio}\xD7 \xB7 reversible",exportReady:"{fidelity} export ready \xB7 {harness}",exportDetail:"{path} \xB7 {files} files \xB7 {residue} residue items","fidelity:byte_lossless":"Byte-lossless","fidelity:value_lossless":"Value-lossless","fidelity:semantic":"Semantic",terminalReady:"Terminal handoff ready",newChatHint:"No session is created until you send",openingTerminal:"Opening terminal\u2026",messageCodingAgent:"Message coding agent",noHarness:"No coding harness is available",startTerminal:"Start terminal session",startHeadless:"Start headless session",terminalTextOnly:"Terminal starts currently accept text only. Choose Headless to attach context or images.",terminalRemoveAttachments:"Terminal starts currently accept text only. Remove attachments or choose Headless.",attachMaxText:"Attach at most {max} text items.",attachMaxImages:"Attach at most {max} images.",attachFailed:"Could not attach context.",imagesOnly:"Drop or paste PNG, JPEG, GIF, or WebP images.",imagePasteFailed:"Could not paste image.",imageDropFailed:"Could not drop image.",startFailed:"Could not start the conversation. Your draft is kept.",runIn:"Run in",modeTitle:"{label}: {mode}","mode:terminal":"Terminal","mode:headless":"Headless",activeElsewhere:"Active elsewhere",readOnly:"Read-only",cannotContinue:"This session cannot be continued by an available harness.",joinDetail:"Join the proven live runtime without taking it over.",resumeDetail:"Resume this {harness} session here.",branchDetail:"Start an independent continuation.",queued:"{count} queued",imageAttachment:"Image attachment",attachedCount:"{count} attached",removeQueued:"Remove queued message {index}",messageHarness:"Message {harness}",messageAgent:"Message agent",composerConnecting:"Connecting\u2026",composerFailed:"Retry or edit the unsent message\u2026",composerEditing:"Edit and resend\u2026",composerSteer:"Redirect the current turn\u2026",composerQueue:"Queue a follow-up\u2026",stopAgent:"Stop agent",queueInstead:"Queue follow-up instead",steerTurn:"Steer current turn",queueMessage:"Queue message",sendMessage:"Send message",steerFailed:"Could not steer the active turn.",ageNow:"now",ageMinutes:"{count}m ago",ageHours:"{count}h ago",ageDays:"{count}d ago",ageWeeks:"{count}w ago",noStartableHarness:"No connected harness can start a chat.",searchDescription:"Search recent conversations.",closeSearch:"Close search",searchConversations:"Search conversations",searchConversationsPlaceholder:"Search conversations\u2026",searching:"Searching\u2026",searchRetry:"Try search again",noSearchMatch:"No conversations match your search.",recentConversations:"{count} recent conversations",noChatMatch:"No chats match your search.",noChats:"No coding chats found.",loadingOlderChats:"Loading older chats\u2026",loadOlderChats:"Load older chats",rowReadOnly:"Read-only",rowWorking:"Working",rowUnread:"{count} unread",workingPreview:"Working\u2026",agentSessions:"{count} agent sessions",openAgentSessions:"Open {count} agent sessions in {title}",agentSessionsUnavailable:"{count} agent sessions \xB7 inspection unavailable",unreadMessages:"{count} unread messages",elsewhere:"elsewhere",participantVia:"{name} via {origin}",participantSomeone:"someone else",participantUnknownShort:"unknown participant",mirrorOf:"mirror of {harness}",channelFallback:"channel",loadingConnecting:"Connecting to coding agents",loadingConnectingDetail:"Checking installed harnesses and capabilities.",loadingStarting:"Starting {harness}",loadingStartingAgent:"Starting coding agent",loadingStartingDetail:"Opening a controlled session in this workspace.",loadingDiscovering:"Loading recent sessions",loadingDiscoveringDetail:"Scanning native session stores without loading full transcripts.",loadingReady:"Ready",loadingReadyDetail:"Coding sessions are up to date.",requestAnswered:"\u2713 Request answered \xB7 {name}",requestNeedsInput:"{kind} needs input",agentNeedsInput:"Agent needs input",contextCount:"Context \xB7 {count}",messageCopied:"Message copied",copyFailed:"Copy failed \xB7 retry",copyMessage:"Copy message",unrecognizedEntry:"Unrecognized entry",opaqueNotice:"Unrecognized entry kind {kind} \u2014 kept as-is, nothing dropped",rawEntry:"Raw entry",reasoning:"Reasoning",reasoningStreaming:"Reasoning\u2026",yourMessage:"Your message",assistantMessage:"Assistant message",entryTruncated:"Entry truncated by host \xB7 load native session for the complete value",truncatedMarker:"[truncated]",toolFallback:"Tool",toolNamedFailed:"{label} failed","toolRunning:read":"Reading","toolDone:read":"Read","toolFailed:read":"Read failed","toolRunning:search":"Searching","toolDone:search":"Searched","toolFailed:search":"Search failed","toolRunning:edit":"Editing","toolDone:edit":"Edited","toolFailed:edit":"Edit failed","toolRunning:command":"Running command","toolDone:command":"Ran command","toolFailed:command":"Command failed","toolRunning:test":"Running tests","toolDone:test":"Ran tests","toolFailed:test":"Tests failed","toolRunning:web":"Browsing","toolDone:web":"Browsed","toolFailed:web":"Browser action failed","toolRunning:agent":"Starting agent","toolDone:agent":"Started agent","toolFailed:agent":"Agent failed","toolRunning:plan":"Updating plan","toolDone:plan":"Updated plan","toolFailed:plan":"Plan update failed","argument:cmd":"Command","argument:command":"Command","argument:cwd":"Working directory","argument:file_path":"File","argument:target_file":"File","argument:path":"Path","argument:query":"Query","argument:pattern":"Pattern","argument:url":"URL",argumentDetails:"Details",durationMs:"{value}ms",durationSeconds:"{value}s",elapsedNow:"now",metricMatch:"{count} match",metricMatches:"{count} matches",metricExit:"exit {code}",diffPreview:"Diff preview",filePreview:"File preview",terminal:"Terminal",waitingOutput:"Waiting for output",noOutput:"No output",searchLabel:"Search",noTextResults:"No textual results",noDiff:"Edit completed without a textual diff",noFileContents:"File contents were not included in this event",waitingPage:"Waiting for the page",noPageSummary:"No page summary returned",agentWorking:"Agent is working",noHandoff:"No textual handoff returned",coordinatedTools:"Coordinated tools",nativeArguments:"Native arguments",nativeResult:"Native result",activityPending:"{count} actions in progress",activityFailed:"{count} actions \xB7 {failed} failed",activityExploredOne:"Explored {count} item",activityExplored:"Explored {count} items","activityOne:read":"{count} read","activityMany:read":"{count} reads","activityOne:search":"{count} search","activityMany:search":"{count} searches","activityOne:edit":"{count} edit","activityMany:edit":"{count} edits","activityOne:command":"{count} command","activityMany:command":"{count} commands","activityOne:test":"{count} test run","activityMany:test":"{count} test runs","activityOne:web":"{count} web action","activityMany:web":"{count} web actions","activityOne:agent":"{count} agent action","activityMany:agent":"{count} agent actions","activityOne:plan":"{count} plan update","activityMany:plan":"{count} plan updates","activityOne:other":"{count} action","activityMany:other":"{count} actions",plan:"Plan",planSteps:"Task plan steps",sessionDetails:"Session details",fidelity:"Fidelity",nativeRecords:"Native records",residue:"Residue",residueRetained:"{count} retained",parseDiagnostics:"Parse diagnostics",subagentSource:"{source} subagent",subagentDetail:"{messages} messages \xB7 {fidelity}",finishedWorking:"{harness} finished working",finishedWorkingAgent:"Coding agent finished working",conversation:"Conversation",loadEarlier:"Load earlier messages",listening:"{harness} is listening. Say something.",noTranscript:"No transcript yet.",newMessages:"New messages",newDivider:"New",pendingMessage:"Your pending message",notSent:"Not sent",sending:"Sending\u2026",harnessWorking:"{harness} is working",latest:"Latest",codeLanguage:"Code",codeRegion:"{language} code",copyCode:"Copy code",codeCopied:"Code copied","language:bash":"Shell","language:css":"CSS","language:html":"HTML","language:js":"JavaScript","language:javascript":"JavaScript","language:jsx":"JSX","language:md":"Markdown","language:markdown":"Markdown","language:py":"Python","language:python":"Python","language:rs":"Rust","language:rust":"Rust","language:sh":"Shell","language:shell":"Shell","language:ts":"TypeScript","language:tsx":"TSX","language:yaml":"YAML","language:yml":"YAML","language:json":"JSON","language:jsonc":"JSONC","language:sql":"SQL","language:xml":"XML",attachCandidate:"Attach {label}",attachedCandidate:"Attached {label}",candidateImage:"Image",candidateContext:"Context",availableContext:"Available context",attachedContext:"Attached context",attachedImages:"Attached images",removeContext:"Remove context {label}",removeImage:"Remove image {label}",imagePreview:"Image preview: {label}",imageCount:"{index} of {total}",imageActions:"Image actions",imageLinkCopied:"Image link copied",imageLinkFailed:"Could not copy image link",copyImageLink:"Copy image link",openOriginalImage:"Open original image",downloadImage:"Download image",closeImagePreview:"Close image preview",imageLoadFailed:"Could not load image",loadingImage:"Loading image\u2026",imageOutOfPayload:"The original stays out of the transcript payload.",previousImage:"Previous image",nextImage:"Next image",messageImages:"Message images",viewImage:"View image {label}",loadImage:"Load image {label}",loadPreview:"Load preview",previewUnavailable:"Preview unavailable",invalidHostImage:"The host returned an invalid image.",imageTooLargePreview:"This image is too large to preview safely.",imageLoadError:"Could not load this image.",tooManyImages:"Attach at most {max} images at a time.",imageBadType:"{name} is not PNG, JPEG, GIF, or WebP.",imageTooLarge:"{name} is larger than 5 MB.",imageReadFailed:"Could not read {name}.",thatImage:"That image",imageNoun:"image",pastedImage:"Pasted image",invalidAttachment:"The attachment picker returned an invalid item.",errorTitle:"Error",errorNoProvider:"Hermes has no model provider configured. Select a provider with hermes model, or run hermes setup for first-time configuration.",errorSeeDetails:"The request failed. Open Technical details for the reported error.",untitledChat:"Untitled chat","actor:user":"You","actor:assistant":"Agent","actor:tool":"Tool \xB7 {name}"}),vn=Object.freeze({pill:Object.freeze({tone:"off",label:"connecting\u2026"}),startup:"connecting",transcript:Object.freeze([]),busy:!1,operation:null,needsInput:!1,harness:"",mode:"none",strategy:null,participant:Object.freeze({kind:"local-user",label:null,origin:null}),workspaceRef:Object.freeze({kind:"none",value:null}),mirror:null,holder:null,canSend:!1,canSteer:!1,canResume:!1,supportsResume:!1,continuationModes:Object.freeze([]),canBranch:!1,supportsBranch:!1,canAttach:!1,supportsAttach:!1,canDetach:!1,canOpenTerminal:!1,canExport:!1,canReduce:!1,canInterrupt:!1,canRespond:!1,canConfigureSettings:!1,messaging:null,workspace:"",taskPlan:Object.freeze({source:"none",items:Object.freeze([]),residueCount:0,observedAt:null}),semantics:Object.freeze({fidelity:null,residue:Object.freeze([]),residueCount:0,parseErrors:0,rawRecords:0,subagents:Object.freeze([])}),terminalHandoff:null,exportBackTarget:null,exportReceipt:null,reductionReceipt:null,interopSettings:null,interopSettingsError:null,harnessAuthentication:null,error:null,recoverable:!1,harnesses:Object.freeze([]),history:Object.freeze({sessionLimit:0,hasMoreSessions:!1,transcriptLimit:120,hasEarlier:!1}),savedDraft:"",attention:Object.freeze([]),sessions:Object.freeze([]),subagentInspector:null,attached:null,owned:null,attachError:null,agentPackage:null,contributions:Object.freeze([]),agentPackageError:null,agentPackageCapabilityState:null,agentPackageCapabilityError:null}),al=new Set(["system","user","assistant","tool","reasoning","request","notice"]),il=new Set(["none","control","mirror"]),ul=new Set(["start","resume","attach","branch","reduce"]),ol=new Set(["connecting","starting","discovering","ready"]),bi=new Set(["byte_lossless","value_lossless","semantic"]),cl=new Set(["read","search","edit","command","test","web","agent","plan","other"]),ll=new Set(["file","matches","diff","terminal","web","agent","plan","fields"]),dl=new Set(["idle","checking","required","configured","unavailable","launching","awaiting_user","verifying","authenticated","failed","cancelled"]),wi=8,xe=800,Ci=4e3,fl=64,hl=12,yi=100,pl=16e3;function A(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function ml(e){let t=A(e);if(t?.schema!=="supercode.harness-authentication-flow.v1"||!dl.has(t.phase))return null;let n=A(t.plan),r=A(t.error);return{schema:"supercode.harness-authentication-flow.v1",revision:Number.isSafeInteger(t.revision)?Math.max(0,t.revision):0,phase:t.phase,harness:typeof t.harness=="string"?_(t.harness,100):null,plan:n?{method:n.method==="device_code"?"device_code":"browser",interaction:n.interaction==="device_code"?"device_code":"browser",browserBehavior:n.browserBehavior==="none"?"none":"native_auto",headless:n.headless===!0,instructions:_(n.instructions,2e3)}:null,error:r&&typeof r.message=="string"?{code:_(r.code,100),message:_(r.message,2e3)}:null}}function ne(e,t=""){return typeof e=="string"?e:t}function Qe(e,t=0){return typeof e=="number"&&Number.isFinite(e)?e:t}function Se(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function Si(e){return typeof e!="string"||e.startsWith("/")||/^[a-z]:[\\/]/i.test(e)||e.replaceAll("\\","/").split("/").some(t=>t==="..")?null:_(e,1e3)}function yn(e,t=0,n=new WeakSet){if(e===null||typeof e=="boolean"||typeof e=="string")return typeof e=="string"?_(e,pl):e;if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(t>=hl||!e||typeof e!="object"||n.has(e))return;if(n.add(e),Array.isArray(e)){let a=[];for(let i of e.slice(0,yi)){let u=yn(i,t+1,n);u!==void 0&&a.push(u)}return n.delete(e),a}let r=A(e);if(!r)return;let s={};for(let[a,i]of Object.entries(r).slice(0,yi)){let u=yn(i,t+1,n);u!==void 0&&(s[_(a,200)]=u)}return n.delete(e),s}function gl(e){return Array.isArray(e)?e.slice(0,fl).flatMap(t=>{let n=A(t),r=A(n?.placement),s=Si(n?.source);if(n?.schema!=="supercode/contribution-v1"||typeof n.id!="string"||!n.id.trim()||typeof n.kind!="string"||!n.kind.trim()||s===null)return[];let a=yn(n.data);return a===void 0?[]:[{schema:"supercode/contribution-v1",id:_(n.id,200),kind:_(n.kind,100),...typeof n.title=="string"?{title:_(n.title,500)}:{},...r?{placement:{...typeof r.surface=="string"?{surface:_(r.surface,100)}:{},...typeof r.region=="string"?{region:_(r.region,100)}:{}}}:{},data:a,source:s}]}):[]}function bl(e){let t=A(e),n=A(t?.capabilities),r=A(t?.storage),s=Si(r?.relativePath);if(t?.schemaVersion!==1||typeof t.id!="string"||typeof t.name!="string"||typeof t.version!="string"||!n||!Array.isArray(n.required)||!Array.isArray(n.optional)||!r||s===null)return null;let a=A(t.resources);return{id:_(t.id,200),name:_(t.name,500),version:_(t.version,100),description:typeof t.description=="string"?_(t.description,2e3):null,capabilities:{required:n.required.filter(i=>typeof i=="string").slice(0,100).map(i=>_(i,200)),optional:n.optional.filter(i=>typeof i=="string").slice(0,100).map(i=>_(i,200))},storage:{relativePath:s},resources:a?Object.fromEntries(Object.entries(a).flatMap(([i,u])=>{let o=A(u);if(o?.schema!=="supercode/package-resource-state-v1")return[];if(o.status==="absent"&&typeof o.contributionId=="string")return[[_(i,200),{schema:"supercode/package-resource-state-v1",status:"absent",contributionId:_(o.contributionId,200)}]];if(o.status==="error"&&typeof o.contributionId=="string"&&typeof o.message=="string")return[[_(i,200),{schema:"supercode/package-resource-state-v1",status:"error",contributionId:_(o.contributionId,200),message:_(o.message)}]];let c=A(o?.resource),f=yn(c?.data);return o?.status!=="ready"||c?.schema!=="supercode/package-resource-v1"||typeof c.contributionId!="string"||!["json","text"].includes(c.format)||typeof c.mediaType!="string"||f===void 0?[]:[[_(i,200),{schema:"supercode/package-resource-state-v1",status:"ready",resource:{schema:"supercode/package-resource-v1",contributionId:_(c.contributionId,200),format:c.format,mediaType:_(c.mediaType,200),data:f}}]]})):{}}}function yl(e){let t=A(e);if(!t)return null;let n=["availableRequired","missingRequired","enabledOptional","unavailableOptional"];return n.every(r=>Array.isArray(t[r]))?{ready:t.ready===!0,...Object.fromEntries(n.map(r=>[r,t[r].filter(s=>typeof s=="string").slice(0,100).map(s=>_(s,200))]))}:null}function _(e,t=2e3){return typeof e!="string"?"":e.length<=t?e:`${e.slice(0,t)}\u2026`}function vl(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function ce(e,t){for(let n of t)if(typeof e?.[n]=="string"&&e[n].trim())return e[n].trim();return""}function Ai(e){if(!e)return"";if(e.startsWith('"'))try{return JSON.parse(e)}catch{return""}return e.slice(1,-1).replaceAll("\\n",`
31
31
  `).replaceAll("\\t"," ").replaceAll("\\r","\r").replaceAll("\\`","`").replaceAll("\\'","'").replaceAll("\\\\","\\")}function Ye(e,t){if(!e)return"";let n=t.join("|"),r=new RegExp(`(?:^|[,{\\s])["']?(?:${n})["']?\\s*:\\s*("(?:\\\\.|[^"\\\\])*"|'(?:\\\\.|[^'\\\\])*'|\`(?:\\\\.|[^\`\\\\])*\`)`).exec(e);return Ai(r?.[1])}function _l(e,t){if(!e)return"";let n=t.join("|"),r=new RegExp(`\\b(?:${n})\\s*=\\s*("(?:\\\\.|[^"\\\\])*"|'(?:\\\\.|[^'\\\\])*'|\`(?:\\\\.|[^\`\\\\])*\`)`).exec(e);return Ai(r?.[1])}function xl(e,t){let n=1,r="",s=!1,a=!1,i=!1;for(let u=t+1;u<e.length;u+=1){let o=e[u],c=e[u+1];if(a){o===`
32
32
  `&&(a=!1);continue}if(i){o==="*"&&c==="/"&&(i=!1,u+=1);continue}if(r){s?s=!1:o==="\\"?s=!0:o===r&&(r="");continue}if(o==="/"&&c==="/"){a=!0,u+=1;continue}if(o==="/"&&c==="*"){i=!0,u+=1;continue}if(o==='"'||o==="'"||o==="`"){r=o;continue}if(o==="(")n+=1;else if(o===")"&&(n-=1)===0)return e.slice(t+1,u)}return e.slice(t+1)}function kl(e){let t=[],n="",r=!1,s=!1,a=!1;for(let i=0;i<e.length&&t.length<8;i+=1){let u=e[i],o=e[i+1];if(s){u===`
33
33
  `&&(s=!1);continue}if(a){u==="*"&&o==="/"&&(a=!1,i+=1);continue}if(n){r?r=!1:u==="\\"?r=!0:u===n&&(n="");continue}if(u==="/"&&o==="/"){s=!0,i+=1;continue}if(u==="/"&&o==="*"){a=!0,i+=1;continue}if(u==='"'||u==="'"||u==="`"){n=u;continue}if(!e.startsWith("tools.",i)||/[A-Za-z0-9_$]/.test(e[i-1]??""))continue;let c=i+6,f=c;for(;/[A-Za-z0-9_$]/.test(e[f]??"");)f+=1;let h=f;for(;/\s/.test(e[h]??"");)h+=1;f===c||e[h]!=="("||(t.push({name:e.slice(c,f),arguments:xl(e,h)}),i=h)}return t}function wl(e){let t=vl(e.arguments),n=typeof t=="string"?t:t===null?e.arguments??"":"",r=n?kl(n):[],s=[...new Set(r.map(i=>i.name))],a=s.length===1?s[0]:e.label??"tool";return{args:A(t),source:n,callSource:r[0]?.arguments??"",tools:s,name:a}}function Cl(e){return/\*\*\* (?:Update|Add|Delete) File:\s*([^\r\n]*?)(?=\\[nr]|[\r\n]|$)/.exec(e)?.[1]?.trim()??""}function Mt(e,t){for(let n of e)for(let r of t){let s=n?.[r],a=typeof s=="string"&&s.trim()!==""?Number(s):s;if(typeof a=="number"&&Number.isFinite(a))return a}return null}function Sl(e){return{read:"file",search:"matches",edit:"diff",command:"terminal",test:"terminal",web:"web",agent:"agent",plan:"plan"}[e]??"fields"}function Al(e){if(!e)return[];let t=new Set(["command","cmd","file_path","target_file","path","query","pattern","url","patch","diff","old_string","new_string","content","prompt","description","task","plan","todos"]);return Object.entries(e).flatMap(([n,r])=>{if(t.has(n)||r===null||r===void 0)return[];let s=typeof r=="string"?r:JSON.stringify(r);return s?[{label:n.replaceAll(/[_-]+/g," ").replace(/^./,a=>a.toLocaleUpperCase()),value:_(s,xe)}]:[]}).slice(0,wi)}function Nl(e){return(Array.isArray(e?.plan)?e.plan:Array.isArray(e?.todos)?e.todos:[]).flatMap(n=>{if(typeof n=="string"&&n.trim())return[{label:_(n.trim(),300),status:""}];let r=A(n),s=ce(r,["step","title","content","text"]);return s?[{label:_(s,300),status:ce(r,["status"])}]:[]}).slice(0,12)}function El(e,t){return/list.?agents/i.test(e)?(t??"").split(`
34
34
  `).flatMap(n=>{let r=n.trim().split(/\s+·\s+/).filter(Boolean);return r.length>1?[{label:_(r[0],120),status:_(r.slice(1).join(" \xB7 "),180)}]:[]}).slice(0,12):[]}function Tl(e,t,n){let r=ce(e,["patch","diff"]);if(r)return r;let s=ce(e,["old_string"]),a=ce(e,["new_string"]);if(s||a)return[...s.split(`
35
35
  `).map(u=>`- ${u}`),...a.split(`
36
36
  `).map(u=>`+ ${u}`)].join(`
37
- `);let i=/\*\*\* Begin Patch[\s\S]*?\*\*\* End Patch/.exec(n??"")?.[0];return i||(/^(?:diff --git|@@ |--- |\+\+\+ )/m.test(t??"")?t:"")}function Dl(e){let t=/^Script (?:completed|failed)\r?\nWall time ([0-9.]+) seconds\r?\nOutput:\r?\n([\s\S]*)$/.exec(e??"");if(!t)try{let r=JSON.parse(e??""),s=A(r);return{preview:typeof r=="string"?r:ce(s,["output","message","text","summary","result"])||e||"",value:s,durationMs:null}}catch{return{preview:e??"",value:null,durationMs:null}}let n=Number(t[1])*1e3;try{let r=A(JSON.parse(t[2]));return{preview:typeof r?.output=="string"?r.output:t[2],value:r,durationMs:Number.isFinite(n)?n:null}}catch{return{preview:t[2],value:null,durationMs:Number.isFinite(n)?n:null}}}function Il(e,t,n){let r=e.toLocaleLowerCase();return t==="error"?n.preview:/^(?:agent|task)$|spawn.?agent/.test(r)&&n.preview?"Agent is working in the background.":/send.?message|followup.?task/.test(r)&&n.preview?/resumed from transcript|resumedAgentId/i.test(n.preview)?"Agent resumed in the background.":"Message delivered.":n.preview}function Ml(e){let t="",n="",r=!1;for(let s of e){if(r){r=!1,t+=n?" ":s;continue}if(s==="\\"){r=!0,t+=n?" ":s;continue}if(n){s===n&&(n=""),t+=" ";continue}if(s==='"'||s==="'"||s==="`"){n=s,t+=" ";continue}t+=s}return/(?:^|[;&|]\s*)(?:(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?(?:test|typecheck|lint|build)|cargo\s+(?:test|clippy|build|check|fmt)|npx\s+(?:vitest|tsc|eslint|playwright)|pytest\b|go\s+test\b)/i.test(t)}function Fl(e,t){let n=e.toLocaleLowerCase();return/write_stdin|^wait$/.test(n)?"command":/update.?plan|todo|checklist|taskcreate|taskupdate|create.?goal|update.?goal/.test(n)?"plan":/search.?replace|edit|write|patch|replace|create_file|apply_patch/.test(n)?"edit":/read|view|open_file|list_dir/.test(n)?"read":/web.?search|web.?fetch|fetch.?url/.test(n)?"web":/search|find|grep|glob|toolsearch/.test(n)?"search":/browser|web|fetch|url/.test(n)?"web":/agent|subagent|send.?message|delegate|followup.?task|taskstop|taskoutput|^task$/.test(n)?"agent":/test|typecheck|lint|build/.test(n)?"test":/terminal|bash|shell|command|exec|write_stdin|^wait$/.test(n)?Ml(t)?"test":"command":"other"}function Rl(e,t,n,r){let s=e==="pending"?0:e==="error"?2:1;if(r.length>1)return[`Running ${r.length} actions`,`Ran ${r.length} actions`,`${r.length} actions failed`][s];let a=n.toLocaleLowerCase();return/send.?message|followup.?task/.test(a)?["Messaging agent","Messaged agent","Agent message failed"][s]:/taskstop|interrupt.?agent|kill_command_or_subagent/.test(a)?["Stopping agent","Stopped agent","Stop failed"][s]:/list.?agents|taskoutput|wait.?agent/.test(a)?["Checking agents","Checked agents","Agent check failed"][s]:/get_command_or_subagent_output|write_stdin|^wait$/.test(a)?["Waiting for","Checked","Check failed"][s]:/web.?search/.test(a)?["Searching web","Searched web","Web search failed"][s]:/web.?fetch|fetch.?url/.test(a)?["Fetching page","Fetched page","Page fetch failed"][s]:/^skill$|use.?skill|load.?skill/.test(a)?["Loading skill","Loaded skill","Skill load failed"][s]:/taskcreate/.test(a)?["Adding task","Added task","Task creation failed"][s]:/taskupdate/.test(a)?["Updating task","Updated task","Task update failed"][s]:/create.?goal/.test(a)?["Creating goal","Created goal","Goal creation failed"][s]:/update.?goal/.test(a)?["Updating goal","Updated goal","Goal update failed"][s]:{read:["Reading","Read","Read failed"],search:["Searching","Searched","Search failed"],edit:["Editing","Edited","Edit failed"],command:["Running command","Ran command","Command failed"],test:["Running tests","Ran tests","Tests failed"],web:["Browsing","Browsed","Browser action failed"],agent:["Starting agent","Started agent","Agent failed"],plan:["Updating plan","Updated plan","Plan update failed"]}[t]?.[s]??(e==="error"?`${n} failed`:n.replaceAll(/[_-]+/g," "))}function Zr(e){let t=wl(e),n=t.args,r=Dl(e.resultText),s=_l(t.source,["patch"])||t.source,a=ce(n,["command","cmd"])||Ye(t.callSource,["command","cmd"]),i=Fl(t.name,a||t.source||e.arguments||""),u=ce(n,["file_path","target_file","target_directory","path"])||Ye(t.callSource,["file_path","target_file","target_directory","path"])||Cl(s),o=ce(n,["query","pattern"])||Ye(t.callSource,["query","pattern","q"]),c=ce(n,["url"])||Ye(t.callSource,["url","ref_id"]),f=ce(n,["subject","description","summary","task","objective","prompt"])||Ye(t.callSource,["subject","description","summary","task","objective","prompt"]),h=i==="agent"?ce(A(r.value),["command","name"])||ce(n,["target","task_name","taskId","task_id","agentId","agent_id","resume","team_name"])||Ye(t.callSource,["target","task_name","taskId","task_id","agentId","agent_id","resume","team_name"]):"",d=/^skill$|use.?skill|load.?skill/i.test(t.name)?ce(n,["skill","name"])||Ye(t.callSource,["skill","name"]):"",m=/get_command_or_subagent_output|kill_command_or_subagent/i.test(t.name)?"background task":/write_stdin|^wait$/i.test(t.name)?"background command":"",p=i==="agent"?El(t.name,r.preview):Nl(n),g=ce(n,["taskId","task_id"]),b=i==="plan"?p.length?`${p.length} ${p.length===1?"item":"items"}`:g?`task ${g}`:"":"",x=u||a||o||c||f||h||d||m||b||(t.tools.length>1?`${t.tools.length} coordinated actions`:Gl(e.arguments)),y=i==="edit"?Tl(n,r.preview,s):i==="agent"?Il(t.name,e.status??"completed",r):r.preview,v=A(e.resultContent),k=A(e.metadata),C=A(v?.metadata);return{name:_(t.name,120),action:_(Rl(e.status??"completed",i,t.name,t.tools),120),category:i,detail:Sl(i),target:_(x,300),command:_(a,xe),path:_(u,xe),query:_(o,xe),url:_(c,xe),subject:_(f,xe),preview:_(y,Ci),fields:Al(n),items:p,tools:t.tools,exitCode:Mt([r.value,v,C,k],["exit_code","exitCode","pi_bash_exit_code"]),durationMs:Mt([r.value,v,C,k],["duration_ms","durationMs","elapsed_ms","elapsedMs","totalDurationMs"])??r.durationMs,additions:Mt([v,C,k],["additions","lines_added"]),deletions:Mt([v,C,k],["deletions","lines_removed"]),matches:Mt([v,C,k],["matches","match_count","result_count"])}}function Ll(e,t){let n=Zr(t),r=A(e);if(!r)return n;let s=Array.isArray(r.fields)?r.fields.flatMap(u=>{let o=A(u);return o&&typeof o.label=="string"&&typeof o.value=="string"?[{label:_(o.label,80),value:_(o.value,xe)}]:[]}).slice(0,wi):n.fields,a=Array.isArray(r.items)?r.items.flatMap(u=>{let o=A(u);return o&&typeof o.label=="string"?[{label:_(o.label,300),status:_(o.status,40)}]:[]}).slice(0,12):n.items,i=Array.isArray(r.tools)?r.tools.filter(u=>typeof u=="string").map(u=>_(u,120)).slice(0,8):n.tools;return{name:_(r.name,120)||n.name,action:_(r.action,120)||n.action,category:cl.has(r.category)?r.category:n.category,detail:ll.has(r.detail)?r.detail:n.detail,target:_(r.target,300)||n.target,command:_(r.command,xe)||n.command,path:_(r.path,xe)||n.path,query:_(r.query,xe)||n.query,url:_(r.url,xe)||n.url,subject:_(r.subject,xe)||n.subject,preview:_(r.preview,Ci)||n.preview,fields:s,items:a,tools:i,exitCode:Se(r.exitCode)??n.exitCode,durationMs:Se(r.durationMs)??n.durationMs,additions:Se(r.additions)??n.additions,deletions:Se(r.deletions)??n.deletions,matches:Se(r.matches)??n.matches}}var Gr=4e3;function Ol(e){let t=e.role==="opaque",n;if(t&&typeof e.raw=="string")n=e.raw;else try{n=JSON.stringify(e,null,2)??""}catch{n="[unserializable entry payload]"}let r=t&&typeof e.kind=="string"?e.kind:typeof e.role=="string"?e.role:"";return{id:e.id,role:"opaque",kind:_(r,120)||"unknown",text:typeof e.text=="string"?_(e.text,Gr):"",ts:Se(e.ts),truncated:e.truncated===!0||n.length>Gr,raw:_(n,Gr)}}function Ni(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){let r=A(n);if(!r||typeof r.id!="string")continue;if(typeof r.text!="string"||!al.has(r.role)){t.push(Ol(r));continue}let s={id:r.id,role:r.role,text:r.text,ts:Se(r.ts),truncated:r.truncated===!0,...Number.isSafeInteger(r.messageIndex)&&r.messageIndex>0?{messageIndex:r.messageIndex}:{}};for(let u of["key","label","arguments","resultText","code"])typeof r[u]=="string"&&(s[u]=r[u]);["pending","completed","error"].includes(r.status)&&(s.status=r.status);let a=A(r.actor);a&&(typeof a.name=="string"||typeof a.image=="string")&&(s.actor={...typeof a.name=="string"&&a.name.trim()?{name:a.name.trim().slice(0,80)}:{},...typeof a.image=="string"&&/^https:\/\//.test(a.image)&&a.image.length<=2e3?{image:a.image}:{}}),r.role==="tool"&&(s.presentation=Ll(r.presentation,s)),typeof r.streaming=="boolean"&&(s.streaming=r.streaming),Array.isArray(r.context)&&(s.context=r.context.flatMap(u=>{let o=A(u);return o&&typeof o.label=="string"&&typeof o.detail=="string"?[{...typeof o.id=="string"?{id:o.id}:{},...typeof o.kind=="string"?{kind:o.kind}:{},label:o.label,detail:o.detail}]:[]})),Array.isArray(r.images)&&(s.images=r.images.flatMap(u=>{let o=A(u);return o&&typeof o.label=="string"?[{...typeof o.id=="string"?{id:o.id}:{},label:o.label,...typeof o.url=="string"?{url:o.url}:{},...typeof o.reference=="string"&&o.reference.length<=4e3?{reference:o.reference}:{},...typeof o.mediaType=="string"&&o.mediaType.startsWith("image/")&&o.mediaType.length<=100?{mediaType:o.mediaType}:{},...Number.isSafeInteger(o.byteSize)&&o.byteSize>=0?{byteSize:o.byteSize}:{}}]:[]}).slice(0,4));let i=A(r.request);i&&typeof i.requestKind=="string"&&typeof i.payloadText=="string"&&(s.request={requestId:i.requestId,requestKind:i.requestKind,payloadText:i.payloadText,options:Array.isArray(i.options)?i.options.flatMap(u=>{let o=A(u);return o&&typeof o.optionId=="string"&&typeof o.name=="string"?[{optionId:o.optionId,name:o.name,kind:ne(o.kind,"other")}]:[]}):[],cancellable:i.cancellable===!0,status:i.status==="responded"?"responded":"pending",resolution:A(i.resolution)}),t.push(s)}return t}function Ei(e){let t=A(e);return t?{kind:["local-user","foreign","unknown"].includes(t.kind)?t.kind:"unknown",label:typeof t.label=="string"&&t.label?_(t.label,200):null,origin:typeof t.origin=="string"&&t.origin?_(t.origin,100):null}:{kind:"local-user",label:null,origin:null}}function Ti(e,t=""){let n=A(e);return n&&["repo","none","channel"].includes(n.kind)?{kind:n.kind,value:n.kind==="none"?null:typeof n.value=="string"&&n.value?_(n.value,500):null}:t?{kind:"repo",value:_(t,500)}:{kind:"none",value:null}}function Jr(e){let t=A(e);return!t||typeof t.canonicalHarness!="string"||!t.canonicalHarness?null:{canonicalHarness:_(t.canonicalHarness,100),canonicalKey:typeof t.canonicalKey=="string"&&t.canonicalKey?_(t.canonicalKey,300):null,bounded:t.bounded===!0,truncated:t.truncated===!0,origin:typeof t.origin=="string"&&t.origin?_(t.origin,200):null}}function Pl(e){let t=A(e);if(!t)return null;let n=typeof t.surface=="string"&&t.surface?_(t.surface,100):null;return{surface:n,canTakeOver:t.canTakeOver===!0&&n!==null&&n!=="supercode"}}var Bl=["human","channel","cron","heartbeat","webhook","parent","api","unknown"];function vi(e){let t=A(e);if(!t)return null;let n=t.kind==="manual"?"human":t.kind;return{kind:Bl.includes(n)?n:"unknown",label:typeof t.label=="string"&&t.label?_(t.label,200):null,surface:typeof t.surface=="string"&&t.surface?_(t.surface,300):null}}function _i(e){let t=A(e);return!t||typeof t.state!="string"||!t.state?null:{state:_(t.state,100),platform:typeof t.platform=="string"&&t.platform?_(t.platform,100):null,error:typeof t.error=="string"&&t.error?_(t.error,500):null}}function xi(e){let t=A(e);if(!t||typeof t.groupKey!="string"||!t.groupKey)return null;let n=Number.isSafeInteger(t.runs)&&t.runs>0?t.runs:1;return{groupKey:_(t.groupKey,300),runs:n,lastStatus:["ok","failed","mixed"].includes(t.lastStatus)?t.lastStatus:null}}function Di(e){return Array.isArray(e)?e.flatMap(t=>{let n=A(t);return!n||typeof n.key!="string"||typeof n.harness!="string"?[]:[{key:n.key,harness:n.harness,name:ne(n.name),cwd:ne(n.cwd),title:ne(n.title),preview:ne(n.preview),age:ne(n.age),previewUpdatedAt:Se(n.previewUpdatedAt),updatedAt:Se(n.updatedAt),messages:Se(n.messages),active:n.active===!0,writable:n.writable===!0,live:n.live===!0,runtimeStatus:n.runtimeStatus==="running"||n.runtimeStatus==="busy"||n.runtimeStatus==="idle"?n.runtimeStatus:null,...Number.isSafeInteger(n.subagentCount)&&n.subagentCount>0?{subagentCount:n.subagentCount}:{},activity:Kl[n.activity]!==void 0?n.activity:void 0,...n.participant!==void 0?{participant:Ei(n.participant)}:{},workspaceRef:Ti(n.workspaceRef,ne(n.cwd)),...Jr(n.mirror)?{mirror:Jr(n.mirror)}:{},...vi(n.trigger)?{trigger:vi(n.trigger)}:{},...xi(n.recurring)?{recurring:xi(n.recurring)}:{},..._i(n.crossSurface)?{crossSurface:_i(n.crossSurface)}:{}}]}):[]}function ql(e){let t=A(e);return!t||typeof t.parentKey!="string"||!t.parentKey?null:{parentKey:t.parentKey,parentTitle:_(ne(t.parentTitle),500),status:["loading","ready","error"].includes(t.status)?t.status:"loading",items:Di(t.items).slice(0,100),selectedKey:typeof t.selectedKey=="string"&&t.selectedKey?t.selectedKey:null,transcript:Ni(t.transcript).slice(-120),error:typeof t.error=="string"?_(t.error):null}}function ki(e){let t=A(e);return!t||typeof t.harness!="string"?null:{key:ne(t.key),harness:t.harness,name:ne(t.name),cwd:ne(t.cwd),title:ne(t.title)}}function zl(e){let t=A(e);return t?{source:["codex-update-plan","claude-tasks","opencode-todos"].includes(t.source)?t.source:"none",items:Array.isArray(t.items)?t.items.flatMap(n=>{let r=A(n);return!r||typeof r.id!="string"||typeof r.title!="string"?[]:[{id:r.id,title:r.title,status:["pending","in_progress","completed","cancelled","unknown"].includes(r.status)?r.status:"unknown",...typeof r.nativeStatus=="string"?{nativeStatus:r.nativeStatus}:{},...Array.isArray(r.blockedBy)?{blockedBy:r.blockedBy.filter(s=>typeof s=="string")}:{}}]}):[],residueCount:Qe(t.residueCount),observedAt:Se(t.observedAt)}:{...vn.taskPlan,items:[]}}function Hl(e){let t=A(e);return t?{fidelity:bi.has(t.fidelity)?t.fidelity:null,residue:Array.isArray(t.residue)?t.residue.filter(n=>typeof n=="string"):[],residueCount:Qe(t.residueCount),parseErrors:Qe(t.parseErrors),rawRecords:Qe(t.rawRecords),subagents:Array.isArray(t.subagents)?t.subagents.flatMap(n=>{let r=A(n);return!r||typeof r.id!="string"||typeof r.source!="string"?[]:[{id:r.id,source:r.source,model:typeof r.model=="string"?r.model:null,messages:Qe(r.messages),fidelity:bi.has(r.fidelity)?r.fidelity:"semantic"}]}):[]}:{...vn.semantics,residue:[],subagents:[]}}function $l(e){let t=A(e);return!t||typeof t.program!="string"||!t.program.trim()||!Array.isArray(t.arguments)||!t.arguments.every(n=>typeof n=="string")||typeof t.cwd!="string"?null:{program:t.program,arguments:[...t.arguments],cwd:t.cwd}}function jl(e){let t=A(e);return!t||typeof t.targetHarness!="string"||!["byte_lossless","value_lossless","semantic"].includes(t.fidelity)||typeof t.path!="string"||!t.path.trim()||!Number.isInteger(t.files)||t.files<1||!Number.isInteger(t.residueCount)||t.residueCount<0?null:{targetHarness:t.targetHarness,fidelity:t.fidelity,path:t.path,files:t.files,residueCount:t.residueCount}}function Ul(e){let t=A(e);return!t||typeof t.sourceTokens!="number"||!Number.isFinite(t.sourceTokens)||typeof t.reducedTokens!="number"||!Number.isFinite(t.reducedTokens)||t.sourceTokens<=t.reducedTokens||t.reducedTokens<0||typeof t.ratio!="number"||!Number.isFinite(t.ratio)||t.ratio<=1||typeof t.sidecarId!="string"||!t.sidecarId.trim()||t.verified!==!0||t.reversible!==!0||typeof t.targetHarness!="string"||!t.targetHarness.trim()?null:{sourceTokens:t.sourceTokens,reducedTokens:t.reducedTokens,ratio:t.ratio,sidecarId:t.sidecarId,verified:!0,reversible:!0,targetHarness:t.targetHarness}}function Wl(e){let t=A(e);if(t?.schema!=="supercode.harness-interop-settings.v1"||typeof t.harness!="string"||typeof t.revision!="string"||!Array.isArray(t.controls)||!Array.isArray(t.advisories))return null;let n=t.controls.slice(0,20).flatMap(s=>{let a=A(s);return!a||typeof a.key!="string"||typeof a.label!="string"?[]:[{key:_(a.key,200),nativeKey:_(a.native_key??a.nativeKey,200),label:_(a.label,300),description:_(a.description),scope:["user","project","managed","command_line"].includes(a.scope)?a.scope:"user",sourcePath:_(a.source_path??a.sourcePath,4e3),configuredValue:typeof(a.configured_value??a.configuredValue)=="string"?_(a.configured_value??a.configuredValue,500):null,effectiveValue:typeof(a.effective_value??a.effectiveValue)=="string"?_(a.effective_value??a.effectiveValue,500):null,effectiveKnown:(a.effective_known??a.effectiveKnown)===!0,effectiveNote:_(a.effective_note??a.effectiveNote),choices:Array.isArray(a.choices)?a.choices.slice(0,20).flatMap(i=>{let u=A(i);return u&&typeof u.value=="string"&&typeof u.label=="string"?[{value:_(u.value,500),label:_(u.label,300),description:_(u.description),...typeof u.risk=="string"?{risk:_(u.risk)}:{}}]:[]}):[],writable:a.writable===!0,resettable:a.resettable===!0,requiresRestart:(a.requires_restart??a.requiresRestart)===!0}]}),r=t.advisories.slice(0,20).flatMap(s=>{let a=A(s),i=A(a?.recommendation),u=A(i?.change);return!a||!i||!u||typeof a.code!="string"||typeof a.title!="string"||typeof a.setting!="string"||typeof u.key!="string"?[]:[{code:_(a.code,200),severity:["info","warning","error"].includes(a.severity)?a.severity:"warning",title:_(a.title,500),message:_(a.message),setting:_(a.setting,200),recommendation:{label:_(i.label,500),description:_(i.description),consequence:_(i.consequence),change:{key:_(u.key,200),value:typeof u.value=="string"?_(u.value,500):null},command:_(i.command,4e3)}}]});return{schema:"supercode.harness-interop-settings.v1",harness:t.harness,revision:_(t.revision,500),controls:n,advisories:r}}function Xr(e){let t=A(e)??{},n=A(t.pill),r=A(t.history),s=A(t.attachError),a=t.canResume===!0,i=Array.isArray(t.continuationModes)?[...new Set(t.continuationModes.filter(u=>u==="headless"||u==="terminal"))]:a?["headless"]:[];return{pill:{tone:["live","warn","dead"].includes(n?.tone)?n.tone:"off",label:ne(n?.label,"connecting\u2026")},startup:ol.has(t.startup)?t.startup:"connecting",transcript:Ni(t.transcript),busy:t.busy===!0,operation:typeof t.operation=="string"?t.operation:null,needsInput:t.needsInput===!0,harness:ne(t.harness),mode:il.has(t.mode)?t.mode:"none",strategy:ul.has(t.strategy)?t.strategy:null,canSend:t.canSend===!0,canSteer:t.canSteer===!0,canResume:a,supportsResume:t.supportsResume===!0,continuationModes:i,canBranch:t.canBranch===!0,supportsBranch:t.supportsBranch===!0,canAttach:t.canAttach===!0,supportsAttach:t.supportsAttach===!0,canDetach:t.canDetach===!0,canOpenTerminal:t.canOpenTerminal===!0,canExport:t.canExport===!0,canReduce:t.canReduce===!0,canInterrupt:t.canInterrupt===!0,canRespond:t.canRespond===!0,canConfigureSettings:t.canConfigureSettings===!0,messaging:t.messaging==="live_peer"?"live_peer":null,workspace:ne(t.workspace),workspaceRef:Ti(t.workspaceRef,ne(t.workspace)),participant:Ei(t.participant),mirror:Jr(t.mirror),holder:Pl(t.holder),taskPlan:zl(t.taskPlan),semantics:Hl(t.semantics),terminalHandoff:$l(t.terminalHandoff),exportBackTarget:typeof t.exportBackTarget=="string"?t.exportBackTarget:null,exportReceipt:jl(t.exportReceipt),reductionReceipt:Ul(t.reductionReceipt),interopSettings:Wl(t.interopSettings),interopSettingsError:typeof t.interopSettingsError=="string"?_(t.interopSettingsError):null,harnessAuthentication:ml(t.harnessAuthentication),error:typeof t.error=="string"?t.error:null,recoverable:t.recoverable===!0,harnesses:Array.isArray(t.harnesses)?t.harnesses.flatMap(u=>{let o=A(u);if(!o||typeof o.id!="string")return[];let c=o.startable===!0,f=Array.isArray(o.launchModes)?[...new Set(o.launchModes.filter(m=>m==="headless"||m==="terminal"))]:c?["headless"]:[],h=f.includes(o.preferredLaunchMode)?o.preferredLaunchMode:f.includes("terminal")?"terminal":f[0]??null,d=A(o.capabilities);return[{id:o.id,label:ne(o.label,Vl(o.id)),installed:o.installed===!0,startable:c,reason:typeof o.reason=="string"?_(o.reason):null,auth:["ready","configured","required","unknown"].includes(o.auth)?o.auth:"unknown",runtime:["ready","degraded","unavailable"].includes(o.runtime)?o.runtime:c?"ready":"unavailable",protocol:_(o.protocol,100),repair:typeof o.repair=="string"?_(o.repair,4e3):null,capabilities:{start:d?.start===!0,resume:d?.resume===!0,attach:d?.attach===!0,send:d?.send===!0,interrupt:d?.interrupt===!0,steer:d?.steer===!0,respond:d?.respond===!0},launchModes:f,preferredLaunchMode:h}]}):[],history:{sessionLimit:Qe(r?.sessionLimit),hasMoreSessions:r?.hasMoreSessions===!0,transcriptLimit:Qe(r?.transcriptLimit,120),hasEarlier:r?.hasEarlier===!0},savedDraft:ne(t.savedDraft),attention:Array.isArray(t.attention)?t.attention.flatMap(u=>{let o=A(u);return o&&typeof o.key=="string"&&["unseen","finished","failed"].includes(o.kind)?[{key:o.key,kind:o.kind,...typeof o.preview=="string"?{preview:o.preview}:{},...Number.isSafeInteger(o.afterMessages)&&o.afterMessages>=0?{afterMessages:o.afterMessages}:{},...Number.isSafeInteger(o.unreadCount)&&o.unreadCount>0?{unreadCount:o.unreadCount}:{}}]:[]}):[],sessions:Di(t.sessions),subagentInspector:ql(t.subagentInspector),attached:ki(t.attached),owned:ki(t.owned),attachError:s&&typeof s.key=="string"&&typeof s.message=="string"?{key:s.key,message:s.message}:null,agentPackage:bl(t.agentPackage),contributions:gl(t.contributions),agentPackageError:typeof t.agentPackageError=="string"?_(t.agentPackageError):null,agentPackageCapabilityState:yl(t.agentPackageCapabilityState),agentPackageCapabilityError:typeof t.agentPackageCapabilityError=="string"?_(t.agentPackageCapabilityError):null}}function Vl(e){return sl[e]??e}var Kl=Object.freeze({"needs-input":70,failed:60,working:50,unseen:40,finished:30,running:20,recent:10,idle:0});function Gl(e){if(!e)return"";try{let t=JSON.parse(e);for(let n of["file_path","target_file","path","command","cmd","query","pattern","url"])if(typeof t?.[n]=="string")return t[n]}catch{return e.length>120?`${e.slice(0,117)}\u2026`:e}return""}var xm=Ae();var Zm=Ae(),Xm=Ae(),Ym=Ae();var Qm=nt(null);function Ft(e){if(typeof e=="string")return e;if(!Array.isArray(e))return"";let t=[];for(let n of e)typeof n=="string"?t.push(n):n&&typeof n=="object"&&(typeof n.text=="string"?t.push(n.text):typeof n.content=="string"&&t.push(n.content));return t.join(`
37
+ `);let i=/\*\*\* Begin Patch[\s\S]*?\*\*\* End Patch/.exec(n??"")?.[0];return i||(/^(?:diff --git|@@ |--- |\+\+\+ )/m.test(t??"")?t:"")}function Dl(e){let t=/^Script (?:completed|failed)\r?\nWall time ([0-9.]+) seconds\r?\nOutput:\r?\n([\s\S]*)$/.exec(e??"");if(!t)try{let r=JSON.parse(e??""),s=A(r);return{preview:typeof r=="string"?r:ce(s,["output","message","text","summary","result"])||e||"",value:s,durationMs:null}}catch{return{preview:e??"",value:null,durationMs:null}}let n=Number(t[1])*1e3;try{let r=A(JSON.parse(t[2]));return{preview:typeof r?.output=="string"?r.output:t[2],value:r,durationMs:Number.isFinite(n)?n:null}}catch{return{preview:t[2],value:null,durationMs:Number.isFinite(n)?n:null}}}function Il(e,t,n){let r=e.toLocaleLowerCase();return t==="error"?n.preview:/^(?:agent|task)$|spawn.?agent/.test(r)&&n.preview?"Agent is working in the background.":/send.?message|followup.?task/.test(r)&&n.preview?/resumed from transcript|resumedAgentId/i.test(n.preview)?"Agent resumed in the background.":"Message delivered.":n.preview}function Ml(e){let t="",n="",r=!1;for(let s of e){if(r){r=!1,t+=n?" ":s;continue}if(s==="\\"){r=!0,t+=n?" ":s;continue}if(n){s===n&&(n=""),t+=" ";continue}if(s==='"'||s==="'"||s==="`"){n=s,t+=" ";continue}t+=s}return/(?:^|[;&|]\s*)(?:(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?(?:test|typecheck|lint|build)|cargo\s+(?:test|clippy|build|check|fmt)|npx\s+(?:vitest|tsc|eslint|playwright)|pytest\b|go\s+test\b)/i.test(t)}function Fl(e,t){let n=e.toLocaleLowerCase();return/write_stdin|^wait$/.test(n)?"command":/update.?plan|todo|checklist|taskcreate|taskupdate|create.?goal|update.?goal/.test(n)?"plan":/search.?replace|edit|write|patch|replace|create_file|apply_patch/.test(n)?"edit":/read|view|open_file|list_dir/.test(n)?"read":/web.?search|web.?fetch|fetch.?url/.test(n)?"web":/search|find|grep|glob|toolsearch/.test(n)?"search":/browser|web|fetch|url/.test(n)?"web":/agent|subagent|send.?message|delegate|followup.?task|taskstop|taskoutput|^task$/.test(n)?"agent":/test|typecheck|lint|build/.test(n)?"test":/terminal|bash|shell|command|exec|write_stdin|^wait$/.test(n)?Ml(t)?"test":"command":"other"}function Rl(e,t,n,r){let s=e==="pending"?0:e==="error"?2:1;if(r.length>1)return[`Running ${r.length} actions`,`Ran ${r.length} actions`,`${r.length} actions failed`][s];let a=n.toLocaleLowerCase();return/send.?message|followup.?task/.test(a)?["Messaging agent","Messaged agent","Agent message failed"][s]:/taskstop|interrupt.?agent|kill_command_or_subagent/.test(a)?["Stopping agent","Stopped agent","Stop failed"][s]:/list.?agents|taskoutput|wait.?agent/.test(a)?["Checking agents","Checked agents","Agent check failed"][s]:/get_command_or_subagent_output|write_stdin|^wait$/.test(a)?["Waiting for","Checked","Check failed"][s]:/web.?search/.test(a)?["Searching web","Searched web","Web search failed"][s]:/web.?fetch|fetch.?url/.test(a)?["Fetching page","Fetched page","Page fetch failed"][s]:/^skill$|use.?skill|load.?skill/.test(a)?["Loading skill","Loaded skill","Skill load failed"][s]:/taskcreate/.test(a)?["Adding task","Added task","Task creation failed"][s]:/taskupdate/.test(a)?["Updating task","Updated task","Task update failed"][s]:/create.?goal/.test(a)?["Creating goal","Created goal","Goal creation failed"][s]:/update.?goal/.test(a)?["Updating goal","Updated goal","Goal update failed"][s]:{read:["Reading","Read","Read failed"],search:["Searching","Searched","Search failed"],edit:["Editing","Edited","Edit failed"],command:["Running command","Ran command","Command failed"],test:["Running tests","Ran tests","Tests failed"],web:["Browsing","Browsed","Browser action failed"],agent:["Starting agent","Started agent","Agent failed"],plan:["Updating plan","Updated plan","Plan update failed"]}[t]?.[s]??(e==="error"?`${n} failed`:n.replaceAll(/[_-]+/g," "))}function Zr(e){let t=wl(e),n=t.args,r=Dl(e.resultText),s=_l(t.source,["patch"])||t.source,a=ce(n,["command","cmd"])||Ye(t.callSource,["command","cmd"]),i=Fl(t.name,a||t.source||e.arguments||""),u=ce(n,["file_path","target_file","target_directory","path"])||Ye(t.callSource,["file_path","target_file","target_directory","path"])||Cl(s),o=ce(n,["query","pattern"])||Ye(t.callSource,["query","pattern","q"]),c=ce(n,["url"])||Ye(t.callSource,["url","ref_id"]),f=ce(n,["subject","description","summary","task","objective","prompt"])||Ye(t.callSource,["subject","description","summary","task","objective","prompt"]),h=i==="agent"?ce(A(r.value),["command","name"])||ce(n,["target","task_name","taskId","task_id","agentId","agent_id","resume","team_name"])||Ye(t.callSource,["target","task_name","taskId","task_id","agentId","agent_id","resume","team_name"]):"",d=/^skill$|use.?skill|load.?skill/i.test(t.name)?ce(n,["skill","name"])||Ye(t.callSource,["skill","name"]):"",m=/get_command_or_subagent_output|kill_command_or_subagent/i.test(t.name)?"background task":/write_stdin|^wait$/i.test(t.name)?"background command":"",p=i==="agent"?El(t.name,r.preview):Nl(n),g=ce(n,["taskId","task_id"]),b=i==="plan"?p.length?`${p.length} ${p.length===1?"item":"items"}`:g?`task ${g}`:"":"",x=u||a||o||c||f||h||d||m||b||(t.tools.length>1?`${t.tools.length} coordinated actions`:Gl(e.arguments)),y=i==="edit"?Tl(n,r.preview,s):i==="agent"?Il(t.name,e.status??"completed",r):r.preview,v=A(e.resultContent),k=A(e.metadata),C=A(v?.metadata);return{name:_(t.name,120),action:_(Rl(e.status??"completed",i,t.name,t.tools),120),category:i,detail:Sl(i),target:_(x,300),command:_(a,xe),path:_(u,xe),query:_(o,xe),url:_(c,xe),subject:_(f,xe),preview:_(y,Ci),fields:Al(n),items:p,tools:t.tools,exitCode:Mt([r.value,v,C,k],["exit_code","exitCode","pi_bash_exit_code"]),durationMs:Mt([r.value,v,C,k],["duration_ms","durationMs","elapsed_ms","elapsedMs","totalDurationMs"])??r.durationMs,additions:Mt([v,C,k],["additions","lines_added"]),deletions:Mt([v,C,k],["deletions","lines_removed"]),matches:Mt([v,C,k],["matches","match_count","result_count"])}}function Ll(e,t){let n=Zr(t),r=A(e);if(!r)return n;let s=Array.isArray(r.fields)?r.fields.flatMap(u=>{let o=A(u);return o&&typeof o.label=="string"&&typeof o.value=="string"?[{label:_(o.label,80),value:_(o.value,xe)}]:[]}).slice(0,wi):n.fields,a=Array.isArray(r.items)?r.items.flatMap(u=>{let o=A(u);return o&&typeof o.label=="string"?[{label:_(o.label,300),status:_(o.status,40)}]:[]}).slice(0,12):n.items,i=Array.isArray(r.tools)?r.tools.filter(u=>typeof u=="string").map(u=>_(u,120)).slice(0,8):n.tools;return{name:_(r.name,120)||n.name,action:_(r.action,120)||n.action,category:cl.has(r.category)?r.category:n.category,detail:ll.has(r.detail)?r.detail:n.detail,target:_(r.target,300)||n.target,command:_(r.command,xe)||n.command,path:_(r.path,xe)||n.path,query:_(r.query,xe)||n.query,url:_(r.url,xe)||n.url,subject:_(r.subject,xe)||n.subject,preview:_(r.preview,Ci)||n.preview,fields:s,items:a,tools:i,exitCode:Se(r.exitCode)??n.exitCode,durationMs:Se(r.durationMs)??n.durationMs,additions:Se(r.additions)??n.additions,deletions:Se(r.deletions)??n.deletions,matches:Se(r.matches)??n.matches}}var Gr=4e3;function Ol(e){let t=e.role==="opaque",n;if(t&&typeof e.raw=="string")n=e.raw;else try{n=JSON.stringify(e,null,2)??""}catch{n="[unserializable entry payload]"}let r=t&&typeof e.kind=="string"?e.kind:typeof e.role=="string"?e.role:"";return{id:e.id,role:"opaque",kind:_(r,120)||"unknown",text:typeof e.text=="string"?_(e.text,Gr):"",ts:Se(e.ts),truncated:e.truncated===!0||n.length>Gr,raw:_(n,Gr)}}function Ni(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){let r=A(n);if(!r||typeof r.id!="string")continue;if(typeof r.text!="string"||!al.has(r.role)){t.push(Ol(r));continue}let s={id:r.id,role:r.role,text:r.text,ts:Se(r.ts),truncated:r.truncated===!0,...Number.isSafeInteger(r.messageIndex)&&r.messageIndex>0?{messageIndex:r.messageIndex}:{}};for(let u of["key","label","arguments","resultText","code"])typeof r[u]=="string"&&(s[u]=r[u]);["pending","completed","error"].includes(r.status)&&(s.status=r.status);let a=A(r.actor);a&&(typeof a.name=="string"||typeof a.image=="string")&&(s.actor={...typeof a.name=="string"&&a.name.trim()?{name:a.name.trim().slice(0,80)}:{},...typeof a.image=="string"&&/^https:\/\//.test(a.image)&&a.image.length<=2e3?{image:a.image}:{},...a.kind==="person"||a.kind==="agent"?{kind:a.kind}:{}}),r.role==="tool"&&(s.presentation=Ll(r.presentation,s)),typeof r.streaming=="boolean"&&(s.streaming=r.streaming),Array.isArray(r.context)&&(s.context=r.context.flatMap(u=>{let o=A(u);return o&&typeof o.label=="string"&&typeof o.detail=="string"?[{...typeof o.id=="string"?{id:o.id}:{},...typeof o.kind=="string"?{kind:o.kind}:{},label:o.label,detail:o.detail}]:[]})),Array.isArray(r.images)&&(s.images=r.images.flatMap(u=>{let o=A(u);return o&&typeof o.label=="string"?[{...typeof o.id=="string"?{id:o.id}:{},label:o.label,...typeof o.url=="string"?{url:o.url}:{},...typeof o.reference=="string"&&o.reference.length<=4e3?{reference:o.reference}:{},...typeof o.mediaType=="string"&&o.mediaType.startsWith("image/")&&o.mediaType.length<=100?{mediaType:o.mediaType}:{},...Number.isSafeInteger(o.byteSize)&&o.byteSize>=0?{byteSize:o.byteSize}:{}}]:[]}).slice(0,4));let i=A(r.request);i&&typeof i.requestKind=="string"&&typeof i.payloadText=="string"&&(s.request={requestId:i.requestId,requestKind:i.requestKind,payloadText:i.payloadText,options:Array.isArray(i.options)?i.options.flatMap(u=>{let o=A(u);return o&&typeof o.optionId=="string"&&typeof o.name=="string"?[{optionId:o.optionId,name:o.name,kind:ne(o.kind,"other")}]:[]}):[],cancellable:i.cancellable===!0,status:i.status==="responded"?"responded":"pending",resolution:A(i.resolution)}),t.push(s)}return t}function Ei(e){let t=A(e);return t?{kind:["local-user","foreign","unknown"].includes(t.kind)?t.kind:"unknown",label:typeof t.label=="string"&&t.label?_(t.label,200):null,origin:typeof t.origin=="string"&&t.origin?_(t.origin,100):null}:{kind:"local-user",label:null,origin:null}}function Ti(e,t=""){let n=A(e);return n&&["repo","none","channel"].includes(n.kind)?{kind:n.kind,value:n.kind==="none"?null:typeof n.value=="string"&&n.value?_(n.value,500):null}:t?{kind:"repo",value:_(t,500)}:{kind:"none",value:null}}function Jr(e){let t=A(e);return!t||typeof t.canonicalHarness!="string"||!t.canonicalHarness?null:{canonicalHarness:_(t.canonicalHarness,100),canonicalKey:typeof t.canonicalKey=="string"&&t.canonicalKey?_(t.canonicalKey,300):null,bounded:t.bounded===!0,truncated:t.truncated===!0,origin:typeof t.origin=="string"&&t.origin?_(t.origin,200):null}}function Pl(e){let t=A(e);if(!t)return null;let n=typeof t.surface=="string"&&t.surface?_(t.surface,100):null;return{surface:n,canTakeOver:t.canTakeOver===!0&&n!==null&&n!=="supercode"}}var Bl=["human","channel","cron","heartbeat","webhook","parent","api","unknown"];function vi(e){let t=A(e);if(!t)return null;let n=t.kind==="manual"?"human":t.kind;return{kind:Bl.includes(n)?n:"unknown",label:typeof t.label=="string"&&t.label?_(t.label,200):null,surface:typeof t.surface=="string"&&t.surface?_(t.surface,300):null}}function _i(e){let t=A(e);return!t||typeof t.state!="string"||!t.state?null:{state:_(t.state,100),platform:typeof t.platform=="string"&&t.platform?_(t.platform,100):null,error:typeof t.error=="string"&&t.error?_(t.error,500):null}}function xi(e){let t=A(e);if(!t||typeof t.groupKey!="string"||!t.groupKey)return null;let n=Number.isSafeInteger(t.runs)&&t.runs>0?t.runs:1;return{groupKey:_(t.groupKey,300),runs:n,lastStatus:["ok","failed","mixed"].includes(t.lastStatus)?t.lastStatus:null}}function Di(e){return Array.isArray(e)?e.flatMap(t=>{let n=A(t);return!n||typeof n.key!="string"||typeof n.harness!="string"?[]:[{key:n.key,harness:n.harness,name:ne(n.name),cwd:ne(n.cwd),title:ne(n.title),preview:ne(n.preview),age:ne(n.age),previewUpdatedAt:Se(n.previewUpdatedAt),updatedAt:Se(n.updatedAt),messages:Se(n.messages),active:n.active===!0,writable:n.writable===!0,live:n.live===!0,runtimeStatus:n.runtimeStatus==="running"||n.runtimeStatus==="busy"||n.runtimeStatus==="idle"?n.runtimeStatus:null,...Number.isSafeInteger(n.subagentCount)&&n.subagentCount>0?{subagentCount:n.subagentCount}:{},activity:Kl[n.activity]!==void 0?n.activity:void 0,...n.participant!==void 0?{participant:Ei(n.participant)}:{},workspaceRef:Ti(n.workspaceRef,ne(n.cwd)),...Jr(n.mirror)?{mirror:Jr(n.mirror)}:{},...vi(n.trigger)?{trigger:vi(n.trigger)}:{},...xi(n.recurring)?{recurring:xi(n.recurring)}:{},..._i(n.crossSurface)?{crossSurface:_i(n.crossSurface)}:{}}]}):[]}function ql(e){let t=A(e);return!t||typeof t.parentKey!="string"||!t.parentKey?null:{parentKey:t.parentKey,parentTitle:_(ne(t.parentTitle),500),status:["loading","ready","error"].includes(t.status)?t.status:"loading",items:Di(t.items).slice(0,100),selectedKey:typeof t.selectedKey=="string"&&t.selectedKey?t.selectedKey:null,transcript:Ni(t.transcript).slice(-120),error:typeof t.error=="string"?_(t.error):null}}function ki(e){let t=A(e);return!t||typeof t.harness!="string"?null:{key:ne(t.key),harness:t.harness,name:ne(t.name),cwd:ne(t.cwd),title:ne(t.title)}}function zl(e){let t=A(e);return t?{source:["codex-update-plan","claude-tasks","opencode-todos"].includes(t.source)?t.source:"none",items:Array.isArray(t.items)?t.items.flatMap(n=>{let r=A(n);return!r||typeof r.id!="string"||typeof r.title!="string"?[]:[{id:r.id,title:r.title,status:["pending","in_progress","completed","cancelled","unknown"].includes(r.status)?r.status:"unknown",...typeof r.nativeStatus=="string"?{nativeStatus:r.nativeStatus}:{},...Array.isArray(r.blockedBy)?{blockedBy:r.blockedBy.filter(s=>typeof s=="string")}:{}}]}):[],residueCount:Qe(t.residueCount),observedAt:Se(t.observedAt)}:{...vn.taskPlan,items:[]}}function Hl(e){let t=A(e);return t?{fidelity:bi.has(t.fidelity)?t.fidelity:null,residue:Array.isArray(t.residue)?t.residue.filter(n=>typeof n=="string"):[],residueCount:Qe(t.residueCount),parseErrors:Qe(t.parseErrors),rawRecords:Qe(t.rawRecords),subagents:Array.isArray(t.subagents)?t.subagents.flatMap(n=>{let r=A(n);return!r||typeof r.id!="string"||typeof r.source!="string"?[]:[{id:r.id,source:r.source,model:typeof r.model=="string"?r.model:null,messages:Qe(r.messages),fidelity:bi.has(r.fidelity)?r.fidelity:"semantic"}]}):[]}:{...vn.semantics,residue:[],subagents:[]}}function $l(e){let t=A(e);return!t||typeof t.program!="string"||!t.program.trim()||!Array.isArray(t.arguments)||!t.arguments.every(n=>typeof n=="string")||typeof t.cwd!="string"?null:{program:t.program,arguments:[...t.arguments],cwd:t.cwd}}function jl(e){let t=A(e);return!t||typeof t.targetHarness!="string"||!["byte_lossless","value_lossless","semantic"].includes(t.fidelity)||typeof t.path!="string"||!t.path.trim()||!Number.isInteger(t.files)||t.files<1||!Number.isInteger(t.residueCount)||t.residueCount<0?null:{targetHarness:t.targetHarness,fidelity:t.fidelity,path:t.path,files:t.files,residueCount:t.residueCount}}function Ul(e){let t=A(e);return!t||typeof t.sourceTokens!="number"||!Number.isFinite(t.sourceTokens)||typeof t.reducedTokens!="number"||!Number.isFinite(t.reducedTokens)||t.sourceTokens<=t.reducedTokens||t.reducedTokens<0||typeof t.ratio!="number"||!Number.isFinite(t.ratio)||t.ratio<=1||typeof t.sidecarId!="string"||!t.sidecarId.trim()||t.verified!==!0||t.reversible!==!0||typeof t.targetHarness!="string"||!t.targetHarness.trim()?null:{sourceTokens:t.sourceTokens,reducedTokens:t.reducedTokens,ratio:t.ratio,sidecarId:t.sidecarId,verified:!0,reversible:!0,targetHarness:t.targetHarness}}function Wl(e){let t=A(e);if(t?.schema!=="supercode.harness-interop-settings.v1"||typeof t.harness!="string"||typeof t.revision!="string"||!Array.isArray(t.controls)||!Array.isArray(t.advisories))return null;let n=t.controls.slice(0,20).flatMap(s=>{let a=A(s);return!a||typeof a.key!="string"||typeof a.label!="string"?[]:[{key:_(a.key,200),nativeKey:_(a.native_key??a.nativeKey,200),label:_(a.label,300),description:_(a.description),scope:["user","project","managed","command_line"].includes(a.scope)?a.scope:"user",sourcePath:_(a.source_path??a.sourcePath,4e3),configuredValue:typeof(a.configured_value??a.configuredValue)=="string"?_(a.configured_value??a.configuredValue,500):null,effectiveValue:typeof(a.effective_value??a.effectiveValue)=="string"?_(a.effective_value??a.effectiveValue,500):null,effectiveKnown:(a.effective_known??a.effectiveKnown)===!0,effectiveNote:_(a.effective_note??a.effectiveNote),choices:Array.isArray(a.choices)?a.choices.slice(0,20).flatMap(i=>{let u=A(i);return u&&typeof u.value=="string"&&typeof u.label=="string"?[{value:_(u.value,500),label:_(u.label,300),description:_(u.description),...typeof u.risk=="string"?{risk:_(u.risk)}:{}}]:[]}):[],writable:a.writable===!0,resettable:a.resettable===!0,requiresRestart:(a.requires_restart??a.requiresRestart)===!0}]}),r=t.advisories.slice(0,20).flatMap(s=>{let a=A(s),i=A(a?.recommendation),u=A(i?.change);return!a||!i||!u||typeof a.code!="string"||typeof a.title!="string"||typeof a.setting!="string"||typeof u.key!="string"?[]:[{code:_(a.code,200),severity:["info","warning","error"].includes(a.severity)?a.severity:"warning",title:_(a.title,500),message:_(a.message),setting:_(a.setting,200),recommendation:{label:_(i.label,500),description:_(i.description),consequence:_(i.consequence),change:{key:_(u.key,200),value:typeof u.value=="string"?_(u.value,500):null},command:_(i.command,4e3)}}]});return{schema:"supercode.harness-interop-settings.v1",harness:t.harness,revision:_(t.revision,500),controls:n,advisories:r}}function Xr(e){let t=A(e)??{},n=A(t.pill),r=A(t.history),s=A(t.attachError),a=t.canResume===!0,i=Array.isArray(t.continuationModes)?[...new Set(t.continuationModes.filter(u=>u==="headless"||u==="terminal"))]:a?["headless"]:[];return{pill:{tone:["live","warn","dead"].includes(n?.tone)?n.tone:"off",label:ne(n?.label,"connecting\u2026")},startup:ol.has(t.startup)?t.startup:"connecting",transcript:Ni(t.transcript),busy:t.busy===!0,operation:typeof t.operation=="string"?t.operation:null,needsInput:t.needsInput===!0,harness:ne(t.harness),mode:il.has(t.mode)?t.mode:"none",strategy:ul.has(t.strategy)?t.strategy:null,canSend:t.canSend===!0,canSteer:t.canSteer===!0,canResume:a,supportsResume:t.supportsResume===!0,continuationModes:i,canBranch:t.canBranch===!0,supportsBranch:t.supportsBranch===!0,canAttach:t.canAttach===!0,supportsAttach:t.supportsAttach===!0,canDetach:t.canDetach===!0,canOpenTerminal:t.canOpenTerminal===!0,canExport:t.canExport===!0,canReduce:t.canReduce===!0,canInterrupt:t.canInterrupt===!0,canRespond:t.canRespond===!0,canConfigureSettings:t.canConfigureSettings===!0,messaging:t.messaging==="live_peer"?"live_peer":null,workspace:ne(t.workspace),workspaceRef:Ti(t.workspaceRef,ne(t.workspace)),participant:Ei(t.participant),mirror:Jr(t.mirror),holder:Pl(t.holder),taskPlan:zl(t.taskPlan),semantics:Hl(t.semantics),terminalHandoff:$l(t.terminalHandoff),exportBackTarget:typeof t.exportBackTarget=="string"?t.exportBackTarget:null,exportReceipt:jl(t.exportReceipt),reductionReceipt:Ul(t.reductionReceipt),interopSettings:Wl(t.interopSettings),interopSettingsError:typeof t.interopSettingsError=="string"?_(t.interopSettingsError):null,harnessAuthentication:ml(t.harnessAuthentication),error:typeof t.error=="string"?t.error:null,recoverable:t.recoverable===!0,harnesses:Array.isArray(t.harnesses)?t.harnesses.flatMap(u=>{let o=A(u);if(!o||typeof o.id!="string")return[];let c=o.startable===!0,f=Array.isArray(o.launchModes)?[...new Set(o.launchModes.filter(m=>m==="headless"||m==="terminal"))]:c?["headless"]:[],h=f.includes(o.preferredLaunchMode)?o.preferredLaunchMode:f.includes("terminal")?"terminal":f[0]??null,d=A(o.capabilities);return[{id:o.id,label:ne(o.label,Vl(o.id)),installed:o.installed===!0,startable:c,reason:typeof o.reason=="string"?_(o.reason):null,auth:["ready","configured","required","unknown"].includes(o.auth)?o.auth:"unknown",runtime:["ready","degraded","unavailable"].includes(o.runtime)?o.runtime:c?"ready":"unavailable",protocol:_(o.protocol,100),repair:typeof o.repair=="string"?_(o.repair,4e3):null,capabilities:{start:d?.start===!0,resume:d?.resume===!0,attach:d?.attach===!0,send:d?.send===!0,interrupt:d?.interrupt===!0,steer:d?.steer===!0,respond:d?.respond===!0},launchModes:f,preferredLaunchMode:h}]}):[],history:{sessionLimit:Qe(r?.sessionLimit),hasMoreSessions:r?.hasMoreSessions===!0,transcriptLimit:Qe(r?.transcriptLimit,120),hasEarlier:r?.hasEarlier===!0},savedDraft:ne(t.savedDraft),attention:Array.isArray(t.attention)?t.attention.flatMap(u=>{let o=A(u);return o&&typeof o.key=="string"&&["unseen","finished","failed"].includes(o.kind)?[{key:o.key,kind:o.kind,...typeof o.preview=="string"?{preview:o.preview}:{},...Number.isSafeInteger(o.afterMessages)&&o.afterMessages>=0?{afterMessages:o.afterMessages}:{},...Number.isSafeInteger(o.unreadCount)&&o.unreadCount>0?{unreadCount:o.unreadCount}:{}}]:[]}):[],sessions:Di(t.sessions),subagentInspector:ql(t.subagentInspector),attached:ki(t.attached),owned:ki(t.owned),attachError:s&&typeof s.key=="string"&&typeof s.message=="string"?{key:s.key,message:s.message}:null,agentPackage:bl(t.agentPackage),contributions:gl(t.contributions),agentPackageError:typeof t.agentPackageError=="string"?_(t.agentPackageError):null,agentPackageCapabilityState:yl(t.agentPackageCapabilityState),agentPackageCapabilityError:typeof t.agentPackageCapabilityError=="string"?_(t.agentPackageCapabilityError):null}}function Vl(e){return sl[e]??e}var Kl=Object.freeze({"needs-input":70,failed:60,working:50,unseen:40,finished:30,running:20,recent:10,idle:0});function Gl(e){if(!e)return"";try{let t=JSON.parse(e);for(let n of["file_path","target_file","path","command","cmd","query","pattern","url"])if(typeof t?.[n]=="string")return t[n]}catch{return e.length>120?`${e.slice(0,117)}\u2026`:e}return""}var xm=Ae();var Zm=Ae(),Xm=Ae(),Ym=Ae();var Qm=nt(null);function Ft(e){if(typeof e=="string")return e;if(!Array.isArray(e))return"";let t=[];for(let n of e)typeof n=="string"?t.push(n):n&&typeof n=="object"&&(typeof n.text=="string"?t.push(n.text):typeof n.content=="string"&&t.push(n.content));return t.join(`
38
38
  `)}function nd(e){return Array.isArray(e)?e.flatMap(t=>{if(!t||typeof t!="object")return[];let n=typeof t.image_url=="string"?t.image_url:typeof t.image_url?.url=="string"?t.image_url.url:null;return n&&(n.startsWith("data:image/")||n.startsWith("https://")||n.startsWith("http://"))?[n]:[]}):[]}function Mi(e){let t=e.trim();return/(^|\n)\s*(error|failed|failure|exception|denied)\b/i.test(t)||/"(?:is_?error|error)"\s*:\s*(?:true|"[^"\n]+")/i.test(t)||/\b(?:exit(?:ed)?|status)\s+(?:with\s+)?(?:code\s+)?[1-9]\d*\b/i.test(t)?"error":"completed"}var rd=new Set(["file","edited_text_file","nested_memory"]);function sd(e){return e?e.promptSource==="system"||e.isMeta==="true"||e.isCompactSummary==="true"||e.origin==="task-notification"||e.commandMode==="task-notification"||rd.has(e.attachmentType):!1}var ad=["<command-name>","<command-message>","<local-command-stdout>"];function id(e,t){let n=t??Ft(e.content).trim();return e.role==="system"?!0:e.role!=="user"?!1:sd(e.metadata)||/^(# )?(?:AGENTS|CLAUDE)\.md instructions for .+\n\n<INSTRUCTIONS>/.test(n)||/^<recommended_plugins>[\s\S]*<\/(?:recommended_plugins)>\s*(?:# )?(?:AGENTS|CLAUDE)\.md instructions for .+\n\n<INSTRUCTIONS>/.test(n)||n.startsWith("<environment_context>")||n.startsWith("<user_info>")||n.startsWith("<system-reminder>")||ad.some(r=>n.startsWith(r))||e.metadata?.context==="true"}function ud(e,t){let n=t??Ft(e.content).trim();if(e.role!=="user")return n;let r=n.match(/^<user_query>\s*([\s\S]*)\s*<\/user_query>(?=\s*(?:<supercode_context>|$))/);return r?r[1].trim():n}function Fi(e){return Array.isArray(e)?e.filter(t=>t&&typeof t.label=="string"&&typeof t.detail=="string").slice(0,32).map(t=>({...typeof t.id=="string"&&t.id?{id:t.id.slice(0,2e3)}:{},...typeof t.kind=="string"&&t.kind?{kind:t.kind.slice(0,100)}:{},label:t.label.slice(0,200),detail:t.detail.slice(0,2e4)})):[]}function od(e,t){if(e?.role!=="user")return[];let r=(t??Ft(e.content).trim()).match(/^<user_query>\s*[\s\S]*?\s*<\/user_query>\s*<supercode_context>\s*([\s\S]*?)\s*<\/supercode_context>\s*$/);if(r)try{return Fi(JSON.parse(r[1]))}catch{return[]}if(typeof e.metadata?.context=="string")try{return Fi(JSON.parse(e.metadata.context))}catch{return[]}return[]}function cd(e){let t=new Map;for(let n of e)n.role==="tool"&&n.tool_call_id&&t.set(n.tool_call_id,n);return t}function ld(e){let t=typeof e=="string"?e:JSON.stringify(e??null);return t.length<=512?t:`${t.slice(0,256)}:${t.length}:${t.slice(-256)}`}function Yr(e,t,...n){let r=n.map(ld).join(""),s=3735928559^r.length,a=1103547991^r.length;for(let i=0;i<r.length;i+=1){let u=r.charCodeAt(i);s=Math.imul(s^u,2654435761),a=Math.imul(a^u,1597334677)}return s=Math.imul(s^s>>>16,2246822507)^Math.imul(a^a>>>13,3266489909),a=Math.imul(a^a>>>16,2246822507)^Math.imul(s^s>>>13,3266489909),`${e}:${t}:${(s>>>0).toString(36)}${(a>>>0).toString(36)}`}function Ri(e,t,n){let r=t.metadata??{},s=["id","uuid","message_id","messageId","event_id","eventId","timestamp"].map(i=>r[i]).find(i=>typeof i=="string"&&i),a=(t.tool_calls??[]).map(i=>i.id).join(",");return Yr(e,"message",t.role,s??"",t.tool_call_id??"",a,n)}function Li(e,t={}){let n=t.prefix??e.session_id??"session",r=e.messages??[],s=cd(r),a=new Set,i=[];for(let[u,o]of r.entries()){let c=Ft(o.content).trim(),f=ud(o,c);if(o.role!=="tool"&&(f||o.content!==void 0)){let h=od(o,c),d=nd(o.content).map((m,p)=>({id:`${Ri(n,o,c)}:image:${p}`,label:`Image ${p+1}`,url:m}));i.push({id:Ri(n,o,c),kind:"message",messageIndex:u+1,role:o.role,text:f,content:o.content,metadata:{...o.metadata??{}},visibility:id(o,c)?"context":"conversation",...h.length>0?{context:h}:{},...d.length>0?{images:d}:{}})}for(let[h,d]of(o.tool_calls??[]).entries()){let m=s.get(d.id);m&&a.add(d.id);let p=Ft(m?.content).trim();i.push({id:Yr(n,"tool",d.id||`${u}:${h}`),kind:"tool",messageIndex:u+1,callId:d.id,name:d.function?.name??null,arguments:d.function?.arguments??null,resultText:p,resultContent:m?.content,status:m?Mi(p):"pending",metadata:{...o.metadata??{},...m?.metadata??{}}})}o.role==="tool"&&!a.has(o.tool_call_id??"")&&(f||o.name||o.content!==void 0)&&i.push({id:Yr(n,"tool-result",o.tool_call_id??"",o.metadata?.timestamp??"",f),kind:"tool",messageIndex:u+1,callId:o.tool_call_id??null,name:o.name??null,arguments:null,resultText:f,resultContent:o.content,status:Mi(f),metadata:{...o.metadata??{}}})}return i}var dd=120,fd=16e3;var ag=Object.freeze({"needs-input":4,failed:3,working:2,running:1,recent:1,idle:0});function Bi(e,t={}){return vd(Li(e,{prefix:t.prefix??e?.session_id??"subagent"}),t,null)}function hd(e){if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e??"")}}function es(e){return Array.isArray(e)?e.map(es):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,es(n)])):e}function Qr(e,t){return Number.isInteger(e)&&e>0?e:t}function et(e,t){let n=typeof e=="string"?e:"";if(n.length<=t)return{text:n,truncated:!1};let r=t,s=n.charCodeAt(r-1),a=n.charCodeAt(r);return s>=55296&&s<=56319&&a>=56320&&a<=57343&&(r-=1),{text:`${n.slice(0,r)}\u2026`,truncated:!0}}function Oi(e){if(!e||typeof e!="object"||Array.isArray(e))return null;for(let t of["timestamp","ts","time","created_at","createdAt","date"]){let n=e[t];if(typeof n!="string"||n==="")continue;if(/^\d+$/.test(n)){let s=Number(n);if(Number.isFinite(s)&&s>0)return s<1e11?s*1e3:s;continue}let r=Date.parse(n);if(Number.isFinite(r))return r}return null}function pd(e){if(!Array.isArray(e))return;let t=e.flatMap(n=>n&&typeof n=="object"&&typeof n.label=="string"&&typeof n.detail=="string"?[{...typeof n.id=="string"?{id:n.id}:{},...typeof n.kind=="string"?{kind:n.kind}:{},label:n.label,detail:n.detail}]:[]);return t.length?t:void 0}function md(e){if(!e.startsWith("data:image/"))return{};let t=e.slice(5,256),n=t.indexOf(",");if(n<0)return{};let r=t.slice(0,n),s=r.split(";",1)[0].toLowerCase();if(!s.startsWith("image/"))return{};if(!r.toLowerCase().endsWith(";base64"))return{mediaType:s};let a=e.length-5-n-1,i=e.endsWith("==")?2:e.endsWith("=")?1:0;return{mediaType:s,byteSize:Math.max(0,Math.floor(a*3/4)-i)}}function gd(e,t,n){return JSON.stringify([e,typeof t.id=="string"?t.id:null,n])}function bd(e,t,n){if(!Array.isArray(e))return;let r=e.flatMap((s,a)=>{if(!s||typeof s!="object"||typeof s.label!="string")return[];let i=typeof s.url=="string"?s.url:null,u=i!==null&&!i.endsWith(`
39
- \u2026`),o=u?md(i):{},c=u&&(!i.startsWith("data:image/")||i.length<=256e3)?i:null,f=null;return u&&i.startsWith("data:image/")&&!c&&n&&Number.isSafeInteger(o.byteSize)&&(f=gd(t,s,a),n.set(f,{...typeof s.id=="string"?{id:s.id}:{},label:s.label,url:i,...o})),[{...typeof s.id=="string"?{id:s.id}:{},label:s.label,...o,...c?{url:c}:{},...f?{reference:f}:{}}]}).slice(0,4);return r.length?r:void 0}function yd(e){let t=Array.isArray(e.options)?e.options.map(r=>r?.name).filter(Boolean).join(" / "):"",n=e.resolution?.name?` \u2192 ${e.resolution.name}`:"";return t?`${e.requestKind}: ${t}${n}`:`${e.requestKind??"request"}${n}`}function Pi(e,t,n){if(!e||typeof e!="object"||typeof e.id!="string")return null;if(e.kind==="message"){if(e.visibility==="context")return null;let r=et(e.text,t),s=pd(e.context),a=bd(e.images,e.id,n);return{id:e.id,...typeof e.key=="string"&&e.key!==e.id?{key:e.key}:{},role:e.role,...Number.isSafeInteger(e.messageIndex)&&e.messageIndex>0?{messageIndex:e.messageIndex}:{},text:r.text,ts:Oi(e.metadata),truncated:r.truncated,...s?{context:s}:{},...a?{images:a}:{}}}if(e.kind==="tool"){let r=et((e.arguments??"").trim(),t),s=et((e.resultText??"").trim(),t),a={id:e.id,...typeof e.key=="string"&&e.key!==e.id?{key:e.key}:{},role:"tool",...Number.isSafeInteger(e.messageIndex)&&e.messageIndex>0?{messageIndex:e.messageIndex}:{},text:"",ts:Oi(e.metadata),truncated:r.truncated||s.truncated,label:e.name??"tool",arguments:r.text,resultText:s.text,status:e.status};return a.presentation=Zr({...a,arguments:(e.arguments??"").trim(),resultText:(e.resultText??"").trim(),resultContent:e.resultContent,metadata:e.metadata}),a}if(e.kind==="reasoning"){let r=et(e.text,t);return{id:e.id,...typeof e.key=="string"&&e.key!==e.id?{key:e.key}:{},role:"reasoning",text:r.text,ts:null,truncated:r.truncated,streaming:e.streaming===!0}}if(e.kind==="request"){let r=et(yd(e),t),s=et(hd(e.payload),t);return{id:e.id,role:"request",text:r.text,ts:null,truncated:r.truncated||s.truncated,request:{requestId:es(e.requestId),requestKind:e.requestKind,payloadText:s.text,options:Array.isArray(e.options)?e.options.map(a=>({...a})):[],cancellable:e.cancellable===!0,status:e.status,resolution:e.resolution?{...e.resolution}:null}}}if(e.kind==="notice"){let r=et(e.text||e.code,t);return{id:e.id,role:"notice",text:r.text,ts:null,truncated:r.truncated,code:e.code}}return null}function vd(e,t,n){if(!Array.isArray(e))return[];let r=Qr(t.maxEntries,dd),s=Qr(t.maxEntryChars,fd),a=Qr(t.maxScanEntries,r*4),i=[],u=e.length-1,o=0;for(;u>=0&&i.length<r&&o<a;u-=1,o+=1){let c=Pi(e[u],s,n);c&&i.push(c)}if(i.at(-1)?.role!=="user")for(;u>=0&&o<a;u-=1,o+=1){let c=Pi(e[u],s,n);if(c?.role==="user"){i.length===r?i[i.length-1]=c:i.push(c);break}}return i.reverse(),i}var _d=(e="")=>`https://brand.volter.ai/runner/svg?seed=${encodeURIComponent(e)}&size=36&radius=18`,qi=e=>`https://brand.volter.ai/agent/svg?seed=${encodeURIComponent(e)}&size=36&radius=8`;function xd(e){let t=e.search(/<\\?\/cross-session-message>/);if(t<0)return null;let n=[...e.slice(0,t).matchAll(/<\\?cross-session-message\b([^>]*)>/g)];if(!n.length)return null;let r=n[n.length-1],s=o=>Object.fromEntries([...o.matchAll(/([\w-]+)="([^"]*)"/g)].map(c=>[c[1],c[2]])),a=s(r[1]),i=s(n[0][1]),u=e.slice(r.index+r[0].length,t).trim();return{name:a["from-name"]||i["from-name"]||a.from||i.from||"Another session",address:a.from||i.from||"",body:u}}function kd(e,t,{agentName:n=null,sessionId:r=""}={}){let s=new Map;for(let a of t){if(a?.role!=="user")continue;let i=Date.parse(a.metadata?.timestamp??"");Number.isFinite(i)&&s.set(i,a.metadata)}return e.map(a=>{if(a.role==="assistant")return{...a,actor:{...n?{name:n}:{},image:qi(r)}};if(a.role!=="user")return a;if(/^\s*\[Cross-session [a-z ]*notice\]/i.test(a.text))return{...a,role:"notice",text:a.text.trim().split(`
40
- `)[0]};let i=xd(a.text);if(i)return{...a,text:i.body,actor:{name:i.name,image:qi(i.address.startsWith("sc:")?i.address:i.name)},context:[{id:`${a.id}:envelope`,kind:"envelope",label:"Delivered by supercode",detail:a.text}]};let u=s.get(a.ts)??{},o=u.source_name||null;return{...a,actor:{name:o??"Someone in the session",image:_d(o?u.source_principal_id||o:"")}}})}var wd={"claude-code":"claude_code",codex:"codex",gemini:"gemini",goose:"goose",grok:"grok",opencode:"opencode",pi:"pi"};function Cd(e,t){return{source:wd[e.harness]??"native",session_id:e.id,model:null,cwd:null,system_prompt:null,agent_id:null,parent_tool_use_id:null,lineage:{},trigger:"human",surface:null,messages:t}}function fg(e,{onSend:t,control:n=!1,agentName:r=null}){let s={readOnly:n?"Control":"Read-only"},a={descriptor:null,messages:[],members:[],machines:[],live:!1,status:"loading",error:null,canSend:n,sending:!1,pending:null},i={onIntent:async o=>{let c=o?.action==="send"?o.text?.trim():"";if(!c)return;a={...a,pending:{text:c,status:"sending"}},u(),await t(c)||(a={...a,pending:{text:c,status:"failed"}},u())},copyText:o=>globalThis.navigator?.clipboard?.writeText(o)},u=()=>{let{descriptor:o,messages:c,members:f,machines:h,live:d,status:m,error:p,canSend:g,sending:b}=a;a.pending&&c.some(v=>v?.role==="user"&&typeof v.content=="string"&&v.content.includes(a.pending.text))&&(a={...a,pending:null});let x=o?kd(Bi(Cd(o,c),{prefix:o.id,maxEntries:500}),c,{agentName:r,sessionId:o.id}):[],y=Xr({...vn,startup:"ready",harness:o?.harness??"",canSend:g&&!b,busy:b,transcript:x});Wt(tt("div",{class:"session-view"},tt(fi,{session:o,transcript:x,members:f,machines:h,live:d,status:m,error:p,adapter:i,labels:s,pending:a.pending}),g?tt("div",{class:"session-composer scui-root"},tt(It,{state:y,adapter:i})):null),e)};return u(),{update(o){a={...a,...o},u()},unmount(){Wt(null,e)}}}export{fg as mountSessionView};
39
+ \u2026`),o=u?md(i):{},c=u&&(!i.startsWith("data:image/")||i.length<=256e3)?i:null,f=null;return u&&i.startsWith("data:image/")&&!c&&n&&Number.isSafeInteger(o.byteSize)&&(f=gd(t,s,a),n.set(f,{...typeof s.id=="string"?{id:s.id}:{},label:s.label,url:i,...o})),[{...typeof s.id=="string"?{id:s.id}:{},label:s.label,...o,...c?{url:c}:{},...f?{reference:f}:{}}]}).slice(0,4);return r.length?r:void 0}function yd(e){let t=Array.isArray(e.options)?e.options.map(r=>r?.name).filter(Boolean).join(" / "):"",n=e.resolution?.name?` \u2192 ${e.resolution.name}`:"";return t?`${e.requestKind}: ${t}${n}`:`${e.requestKind??"request"}${n}`}function Pi(e,t,n){if(!e||typeof e!="object"||typeof e.id!="string")return null;if(e.kind==="message"){if(e.visibility==="context")return null;let r=et(e.text,t),s=pd(e.context),a=bd(e.images,e.id,n);return{id:e.id,...typeof e.key=="string"&&e.key!==e.id?{key:e.key}:{},role:e.role,...Number.isSafeInteger(e.messageIndex)&&e.messageIndex>0?{messageIndex:e.messageIndex}:{},text:r.text,ts:Oi(e.metadata),truncated:r.truncated,...s?{context:s}:{},...a?{images:a}:{}}}if(e.kind==="tool"){let r=et((e.arguments??"").trim(),t),s=et((e.resultText??"").trim(),t),a={id:e.id,...typeof e.key=="string"&&e.key!==e.id?{key:e.key}:{},role:"tool",...Number.isSafeInteger(e.messageIndex)&&e.messageIndex>0?{messageIndex:e.messageIndex}:{},text:"",ts:Oi(e.metadata),truncated:r.truncated||s.truncated,label:e.name??"tool",arguments:r.text,resultText:s.text,status:e.status};return a.presentation=Zr({...a,arguments:(e.arguments??"").trim(),resultText:(e.resultText??"").trim(),resultContent:e.resultContent,metadata:e.metadata}),a}if(e.kind==="reasoning"){let r=et(e.text,t);return{id:e.id,...typeof e.key=="string"&&e.key!==e.id?{key:e.key}:{},role:"reasoning",text:r.text,ts:null,truncated:r.truncated,streaming:e.streaming===!0}}if(e.kind==="request"){let r=et(yd(e),t),s=et(hd(e.payload),t);return{id:e.id,role:"request",text:r.text,ts:null,truncated:r.truncated||s.truncated,request:{requestId:es(e.requestId),requestKind:e.requestKind,payloadText:s.text,options:Array.isArray(e.options)?e.options.map(a=>({...a})):[],cancellable:e.cancellable===!0,status:e.status,resolution:e.resolution?{...e.resolution}:null}}}if(e.kind==="notice"){let r=et(e.text||e.code,t);return{id:e.id,role:"notice",text:r.text,ts:null,truncated:r.truncated,code:e.code}}return null}function vd(e,t,n){if(!Array.isArray(e))return[];let r=Qr(t.maxEntries,dd),s=Qr(t.maxEntryChars,fd),a=Qr(t.maxScanEntries,r*4),i=[],u=e.length-1,o=0;for(;u>=0&&i.length<r&&o<a;u-=1,o+=1){let c=Pi(e[u],s,n);c&&i.push(c)}if(i.at(-1)?.role!=="user")for(;u>=0&&o<a;u-=1,o+=1){let c=Pi(e[u],s,n);if(c?.role==="user"){i.length===r?i[i.length-1]=c:i.push(c);break}}return i.reverse(),i}var _d=(e="")=>`https://brand.volter.ai/runner/svg?seed=${encodeURIComponent(e)}&size=36&radius=18`,qi=e=>`https://brand.volter.ai/agent/svg?seed=${encodeURIComponent(e)}&size=36&radius=8`;function xd(e){let t=e.search(/<\\?\/cross-session-message>/);if(t<0)return null;let n=[...e.slice(0,t).matchAll(/<\\?cross-session-message\b([^>]*)>/g)];if(!n.length)return null;let r=n[n.length-1],s=o=>Object.fromEntries([...o.matchAll(/([\w-]+)="([^"]*)"/g)].map(c=>[c[1],c[2]])),a=s(r[1]),i=s(n[0][1]),u=e.slice(r.index+r[0].length,t).trim();return{name:a["from-name"]||i["from-name"]||a.from||i.from||"Another session",address:a.from||i.from||"",body:u}}function kd(e,t,{agentName:n=null,sessionId:r=""}={}){let s=new Map;for(let a of t){if(a?.role!=="user")continue;let i=Date.parse(a.metadata?.timestamp??"");Number.isFinite(i)&&s.set(i,a.metadata)}return e.map(a=>{if(a.role==="assistant")return{...a,actor:{...n?{name:n}:{},image:qi(r),kind:"agent"}};if(a.role!=="user")return a;if(/^\s*\[Cross-session [a-z ]*notice\]/i.test(a.text))return{...a,role:"notice",text:a.text.trim().split(`
40
+ `)[0]};let i=xd(a.text);if(i)return{...a,text:i.body,actor:{name:i.name,image:qi(i.address.startsWith("sc:")?i.address:i.name),kind:"agent"},context:[{id:`${a.id}:envelope`,kind:"envelope",label:"Delivered by supercode",detail:a.text}]};let u=s.get(a.ts)??{},o=u.source_name||null;return{...a,actor:{name:o??"Someone in the session",image:_d(o?u.source_principal_id||o:""),kind:"person"}}})}var wd={"claude-code":"claude_code",codex:"codex",gemini:"gemini",goose:"goose",grok:"grok",opencode:"opencode",pi:"pi"};function Cd(e,t){return{source:wd[e.harness]??"native",session_id:e.id,model:null,cwd:null,system_prompt:null,agent_id:null,parent_tool_use_id:null,lineage:{},trigger:"human",surface:null,messages:t}}function fg(e,{onSend:t,control:n=!1,agentName:r=null}){let s={readOnly:n?"Control":"Read-only"},a={descriptor:null,messages:[],members:[],machines:[],live:!1,status:"loading",error:null,canSend:n,sending:!1,pending:null},i={onIntent:async o=>{let c=o?.action==="send"?o.text?.trim():"";if(!c)return;a={...a,pending:{text:c,status:"sending"}},u(),await t(c)||(a={...a,pending:{text:c,status:"failed"}},u())},copyText:o=>globalThis.navigator?.clipboard?.writeText(o)},u=()=>{let{descriptor:o,messages:c,members:f,machines:h,live:d,status:m,error:p,canSend:g,sending:b}=a;a.pending&&c.some(v=>v?.role==="user"&&typeof v.content=="string"&&v.content.includes(a.pending.text))&&(a={...a,pending:null});let x=o?kd(Bi(Cd(o,c),{prefix:o.id,maxEntries:500}),c,{agentName:r,sessionId:o.id}):[],y=Xr({...vn,startup:"ready",harness:o?.harness??"",canSend:g&&!b,busy:b,transcript:x});Wt(tt("div",{class:"session-view"},tt(fi,{session:o,transcript:x,members:f,machines:h,live:d,status:m,error:p,adapter:i,labels:s,pending:a.pending}),g?tt("div",{class:"session-composer scui-root"},tt(It,{state:y,adapter:i})):null),e)};return u(),{update(o){a={...a,...o},u()},unmount(){Wt(null,e)}}}export{fg as mountSessionView};