@cmmd-center/forge 0.13.139 → 0.13.141
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.cjs +2 -2
- package/dist/bin.mjs +2 -2
- package/dist/client/assets/{DiffPanel-DzEDIwRS.js → DiffPanel-DuYkw969.js} +2 -2
- package/dist/client/assets/{DiffPanel.logic-mlsQrAeS.js → DiffPanel.logic-CZopfQBh.js} +2 -2
- package/dist/client/assets/{DiffWorkerPoolProvider-Cq36HfX7.js → DiffWorkerPoolProvider-0S4n1996.js} +2 -2
- package/dist/client/assets/{PullRequestCodePanel-B72GJA-j.js → PullRequestCodePanel-ChADplhe.js} +2 -2
- package/dist/client/assets/{Virtualizer-CgjRQnFR.js → Virtualizer-De-6_TaQ.js} +2 -2
- package/dist/client/assets/{WorkerPoolContext-c-dkhywP.js → WorkerPoolContext-DraPrkDw.js} +2 -2
- package/dist/client/assets/{cmmdForgeRuntimeListResource-CrBWc5Ah.js → cmmdForgeRuntimeListResource-D4A1HfmN.js} +4 -4
- package/dist/client/assets/{currentForgeWorkspaceStore-DFXVNSGW.js → currentForgeWorkspaceStore-esttwwzd.js} +2 -2
- package/dist/client/assets/index-CK6MAAUs.css +1 -0
- package/dist/client/assets/{index-Bpun7SqX.js → index-ccr6ITZB.js} +104 -104
- package/dist/client/index.html +7 -7
- package/dist/forge-build.json +1 -1
- package/package.json +1 -1
- package/dist/client/assets/index-whRqBJFC.css +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/currentForgeWorkspaceStore-
|
|
2
|
-
import{n as e,r as t}from"./rolldown-runtime-hePW80VL.js";import{Ha as n,Oa as r,Ua as i,Wa as a}from"./Stream-mUTFnSY9.js";import{Fn as o,H as s,In as c,J as l,Mn as u,Nt as d,On as f,Ot as p,Tn as m,a as h,bt as g,cn as _,er as v,gn as y,hn as b,i as x,jn as S,kn as C,pn as w,sn as T,v as ee,vn as E,vt as te,wt as ne,yn as re}from"./src-e9jwz4Nc.js";import{A as ie,F as ae,L as oe,M as D,N as se,P as ce,a as le,c as ue,d as de,l as fe,n as pe,s as me,u as he}from"./cmmdAuthRedirect-Cpw3QgrC.js";import{t as ge}from"./utils-MX9zGa4a.js";import{t as _e}from"./preload-helper-Czpn1I53.js";import{t as ve}from"./react-D4GEJ3ir.js";import{n as O,t as ye}from"./transport-CgH8pQK3.js";import{t as be}from"./debouncer-BEV7Iuwb.js";var k=t(a(),1),xe=typeof window<`u`&&(window.desktopBridge!==void 0||window.nativeApi!==void 0);function Se(e){return{id:e.id??`ws:${e.label}`,label:e.label,source:e.source??`manual`,target:e.target}}function Ce(e){return e?.target.wsBaseUrl??null}function we(e){return e?.target.httpBaseUrl??null}function Te(e,t){return{...e,environmentId:t.environmentId,label:t.label}}function Ee(e){return e.cloudMode?`cmmd-cloud-runtime`:`local-web`}function eee(e){let t=Ee(e);return{topology:t,controlPlane:t!==`cmmd-cloud-runtime`,executionPlane:!0,workspaceProxy:!1}}function tee(e){let t=e.topology===`cmmd-cloud-runtime`;return{cmmd:!0,ownerBootstrapPromotion:e.topology!==`cloud-shell`&&!t,bearerBootstrap:!0,desktopBootstrap:e.topology===`desktop-local`,providerCredentialBroker:e.topology===`cmmd-control-plane`}}function De(e){let t=e.executionPlane;return{agents:t,browser:t,github:t,terminal:t,providerEgress:e.topology===`cmmd-control-plane`}}function Oe(e,t){return{localProjects:t.executionPlane,cloudProjects:e.cloudMode}}function ke(e){let t=e.capabilities,n=t.runtime??eee(t);return{repositoryIdentity:t.repositoryIdentity,pullRequests:t.pullRequests??!1,cloudMode:t.cloudMode,posthogPublicKey:t.posthogPublicKey,posthogHost:t.posthogHost,runtime:n,auth:t.auth??tee(n),tools:t.tools??De(n),projects:t.projects??Oe(t,n)}}function Ae(e){return e?ke(e).projects.cloudProjects:!1}function je(e){return e?ke(e).runtime.workspaceProxy??!1:!1}function Me(e,t){return{environmentId:e,projectId:t}}function Ne(e,t){return{environmentId:e,threadId:t}}var Pe=`scoped:v1:`;function Fe(e){let t=`projectId`in e?e.projectId:e.threadId;return t.includes(`:`)||e.environmentId.startsWith(Pe)?`${Pe}${encodeURIComponent(e.environmentId)}:${encodeURIComponent(t)}`:`${e.environmentId}:${t}`}function nee(e){return Fe(e)}function ree(e){return Fe(e)}function Ie(e){let t=e.slice(10),n=t.indexOf(`:`);if(n<=0||n>=t.length-1||t.indexOf(`:`,n+1)!==-1)return null;try{let e=decodeURIComponent(t.slice(0,n)),r=decodeURIComponent(t.slice(n+1));return e.length>0&&r.length>0?{environmentId:e,localId:r}:null}catch{return null}}function Le(e){if(e.startsWith(Pe))return Ie(e);let t=e.lastIndexOf(`:`);return t<=0||t>=e.length-1?null:{environmentId:e.slice(0,t),localId:e.slice(t+1)}}function Re(e){let t=Le(e);return t?{environmentId:t.environmentId,projectId:t.localId}:null}function ze(e){let t=Le(e);return t?{environmentId:t.environmentId,threadId:t.localId}:null}var Be=n();function Ve(e){return e.stageLabel.trim().toLowerCase()===`latest`?e.baseName:`${e.baseName} (${e.stageLabel})`}var He=`Forge`,Ue=``,We=Ue===`latest`||Ue===`nightly`?Ue:null,Ge=We===`nightly`?`Nightly`:We===`latest`?`Latest`:null,Ke=Ge??`Alpha`,qe=Ge?Ve({baseName:He,stageLabel:Ke}):He,iee=`0.13.4`,Je=ge(`forge-app-top-bar drag-region @container/header-actions relative z-20 w-full min-w-0 shrink-0 bg-background`,`grid grid-cols-[minmax(0,1fr)_minmax(0,auto)] items-center`),Ye=`flex h-full min-w-0 items-center gap-1 md:gap-1.5`,Xe=`flex h-touch min-w-0 max-w-full touch-manipulation items-center justify-center rounded-lg px-3 text-foreground transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring md:h-7 md:px-2`,aee={width:`calc(100% - var(--forge-right-panel-reserved-width, 0px))`},Ze=`forge-app-shell flex w-full min-w-0 flex-row`,Qe=`forge-app-shell flex w-full min-w-0 flex-col`,$e=`flex min-h-0 min-w-0 flex-1 flex-col`,et=`relative flex h-[var(--forge-content-height)] min-h-0 min-w-0 flex-1 overflow-hidden`,tt=i();function nt(e){let t=(0,Be.c)(19),{showStageBadge:n,tone:r,variant:i}=e,a=n!==void 0&&n,o=r===void 0?`default`:r,s=(i===void 0?`default`:i)===`auth`,c=s?20:16,l=s?`h-5 w-5 shrink-0`:`h-4 w-4 shrink-0`,u;t[0]!==c||t[1]!==l?(u=(0,tt.jsx)(`img`,{className:l,src:`/forge-mark.svg`,width:c,height:c,alt:``,"aria-hidden":`true`}),t[0]=c,t[1]=l,t[2]=u):u=t[2];let d=u,f=s?`text-[15px] sm:text-base`:`text-sm`,p=o===`on-dark`?`text-primary-foreground`:`text-foreground`,m;t[3]!==f||t[4]!==p?(m=ge(`truncate font-semibold tracking-tight`,f,p),t[3]=f,t[4]=p,t[5]=m):m=t[5];let h;t[6]===m?h=t[7]:(h=(0,tt.jsx)(`span`,{className:m,children:He}),t[6]=m,t[7]=h);let g=h,_=s?`rounded-full bg-muted/50 px-2 py-0.5 text-[9px] leading-none font-medium tracking-[0.14em] text-muted-foreground/70 uppercase [text-indent:0.14em]`:`rounded-full bg-muted/50 px-1.5 py-0.5 text-[8px] leading-none font-medium tracking-[0.18em] text-muted-foreground/60 uppercase [text-indent:0.18em]`,v;t[8]===_?v=t[9]:(v=(0,tt.jsx)(`span`,{className:_,children:Ke}),t[8]=_,t[9]=v);let y=v;if(a){let e;t[10]!==d||t[11]!==g?(e=(0,tt.jsxs)(`span`,{className:`flex items-center gap-2`,children:[d,g]}),t[10]=d,t[11]=g,t[12]=e):e=t[12];let n;return t[13]!==y||t[14]!==e?(n=(0,tt.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-md`,"aria-label":qe,children:[e,y]}),t[13]=y,t[14]=e,t[15]=n):n=t[15],n}let b;return t[16]!==d||t[17]!==g?(b=(0,tt.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5`,"aria-label":qe,children:[d,g]}),t[16]=d,t[17]=g,t[18]=b):b=t[18],b}function rt(e){let t=(0,Be.c)(5),{className:n}=e,r;t[0]===n?r=t[1]:(r=ge(`pointer-events-none flex select-none items-center`,n),t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,tt.jsx)(nt,{}),t[2]=i):i=t[2];let a;return t[3]===r?a=t[4]:(a=(0,tt.jsx)(`div`,{className:r,children:i}),t[3]=r,t[4]=a),a}function it(){let e=new Map;return{clear:()=>e.clear(),getItem:t=>e.get(t)??null,key:t=>Array.from(e.keys()).at(t)??null,get length(){return e.size},removeItem:t=>e.delete(t),setItem:(t,n)=>e.set(t,n)}}var at=typeof window<`u`?window.localStorage:it(),ot=(e,t)=>m(u(e))(t),st=(e,t)=>S(u(e))(t),ct=(e,t)=>{let n=at.getItem(e);return n?ot(t,n):null},lt=(e,t,n)=>{let r=st(n,t);at.setItem(e,r)},ut=e=>{at.removeItem(e)},dt=`forge:local_storage_change`;function ft(e){typeof window>`u`||window.dispatchEvent(new CustomEvent(dt,{detail:{key:e}}))}function pt(e,t,n){let[r,i]=(0,k.useState)(()=>{try{return ct(e,n)??t}catch(e){return console.error(`[LOCALSTORAGE] Error:`,e),t}}),a=(0,k.useCallback)(t=>{i(r=>{try{let i=typeof t==`function`?t(r):t;return i===null?ut(e):lt(e,i,n),queueMicrotask(()=>ft(e)),i}catch(e){return console.error(`[LOCALSTORAGE] Error:`,e),r}})},[e,n]),o=(0,k.useRef)(e);return(0,k.useEffect)(()=>{if(o.current!==e){o.current=e;try{let r=ct(e,n);i(r??t)}catch(e){console.error(`[LOCALSTORAGE] Error:`,e)}}},[e,t,n]),(0,k.useEffect)(()=>{let r=()=>{try{let r=ct(e,n);i(r??t)}catch(e){console.error(`[LOCALSTORAGE] Error:`,e)}},a=t=>{t.key===e&&r()},o=t=>{t.detail.key===e&&r()};return window.addEventListener(`storage`,a),window.addEventListener(dt,o),()=>{window.removeEventListener(`storage`,a),window.removeEventListener(dt,o)}},[e,t,n]),[r,a]}var mt=`cmmd-runtime:`;function ht(e){return`${mt}${e}`}var gt=`cmmd-cloud-project:`,_t=/^env_[0-9a-f]{32}$/,vt=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,yt={shape:`local`,isCloud:!1,legacyRuntimeId:null},oee={shape:`cloud-project-placeholder`,isCloud:!0,legacyRuntimeId:null},see={shape:`durable-environment`,isCloud:!0,legacyRuntimeId:null};function bt(e){if(typeof e!=`string`)return yt;if(e.startsWith(`cmmd-runtime:`)){let t=e.slice(mt.length);return vt.test(t)?{shape:`legacy-runtime`,isCloud:!0,legacyRuntimeId:t}:yt}return e.startsWith(`cmmd-cloud-project:`)?oee:_t.test(e)?see:yt}var xt=`forge:client-settings:v1`,cee=`forge:saved-environment-registry:v1`,lee=re({environmentId:p,label:E,httpBaseUrl:E,wsBaseUrl:E,createdAt:E,lastConnectedAt:b(E),cmmdOrganizationId:c(E),cmmdProjectId:c(E),runtimeId:c(E),runtimeTicketExpiresAt:c(E),lastAuthenticatedPullRequestCapability:c(_),bearerToken:c(E)}),St=re({version:c(y),records:c(T(lee))});function Ct(){return typeof window<`u`}var uee={uiFontSize:14,codeFontSize:15},dee=[[`uiFontSize`,11,20],[`codeFontSize`,11,20]];function fee(e){return e.defaultThreadRuntime===`desktop-cloud-bridge`?{...e,defaultThreadRuntime:`cloud`}:null}function pee(e){if(typeof e.fontDefaultsVersion==`number`)return null;let t=Object.entries(uee).filter(([t,n])=>e[t]===n);if(t.length===0)return null;let n={...e};for(let[e]of t)delete n[e];return n}function mee(e){let t=dee.flatMap(([t,n,r])=>{let i=e[t];if(typeof i!=`number`||!Number.isFinite(i))return[];let a=Math.min(r,Math.max(n,Math.round(i)));return a===i?[]:[[t,a]]});if(t.length===0)return null;let n={...e};for(let[e,r]of t)n[e]=r;return n}function wt(e){if(!e||typeof e!=`object`)return e;let t=e,n=!1;for(let e of[fee,pee,mee]){let r=e(t);r!==null&&(t=r,n=!0)}return n?t:e}function hee(){if(!Ct())return null;try{let e=window.localStorage.getItem(xt);return e?C(ee)(wt(JSON.parse(e))):null}catch{return null}}function gee(e){Ct()&<(xt,e,ee)}function Tt(){if(!Ct())return{};try{return ct(`forge:saved-environment-registry:v1`,St)??{}}catch{return{}}}function Et(e){Ct()&<(cee,e,St)}function Dt(){return Tt().records??[]}function Ot(e){Et({version:1,records:e})}function kt(){return Dt().map(e=>s(e))}function At(e){let t=new Map(Dt().map(e=>[e.environmentId,e]));Ot(e.map(e=>{let n=bt(e.environmentId).legacyRuntimeId===null?t.get(e.environmentId)?.bearerToken:void 0;return n?{...s(e),bearerToken:n}:s(e)}))}function jt(e){return Dt().find(t=>t.environmentId===e)?.bearerToken??null}function Mt(e,t){let n=Tt(),r=n.records??[],i=!1;return Et({version:n.version??1,records:r.map(n=>n.environmentId===e?(i=!0,Object.assign(s(n),{bearerToken:t})):n)}),i}function Nt(e){let t=Tt();Et({version:t.version??1,records:(t.records??[]).map(t=>t.environmentId===e?s(t):t)})}var Pt=C(ee);function Ft(){return typeof window>`u`?void 0:window.desktopBridge}function It(e){let t=Ft(),n=t?.[e];return typeof n==`function`?n.bind(t):null}async function Lt(){let e=It(`getClientSettings`);if(e){let t=await e();return t?Pt(t):null}return hee()}async function Rt(e){let t=It(`setClientSettings`);if(t)return t(e);gee(e)}async function zt(){let e=It(`getSavedEnvironmentRegistry`);return e?e():kt()}async function Bt(e){let t=It(`setSavedEnvironmentRegistry`);if(t)return t(e);At(e)}async function Vt(e){let t=It(`getSavedEnvironmentSecret`);return t?t(e):jt(e)}async function Ht(e,t){let n=It(`setSavedEnvironmentSecret`);return n?n(e,t):Mt(e,t)}async function Ut(e){let t=It(`removeSavedEnvironmentSecret`);if(t)return t(e);Nt(e)}var Wt=`token`;function Gt(e){return new URLSearchParams(e.hash.startsWith(`#`)?e.hash.slice(1):e.hash)}function Kt(e){let t=Gt(e).get(Wt)?.trim()??``;if(t.length>0)return t;let n=e.searchParams.get(Wt)?.trim()??``;return n.length>0?n:null}function qt(e){let t=new URL(e.toString()),n=Gt(t);return n.has(Wt)&&(n.delete(Wt),t.hash=n.toString()),t.searchParams.delete(Wt),t}function Jt(e,t){let n=new URL(e.toString());return n.searchParams.delete(Wt),n.hash=new URLSearchParams([[Wt,t]]).toString(),n}function Yt(e,t){let n=new URL(e);return n.pathname=`/login`,Jt(n,t).toString()}function Xt(e){return Jt(new URL(`/login`,window.location.href),e).toString()}var Zt=`host`;function Qt(e){let t=new URL(e),n=Kt(t),r=new URL(`forge:///pair`);return r.searchParams.set(Zt,t.origin),n&&r.searchParams.set(Wt,n),r.toString()}var $t=`/api/cmmd/auth-runtime`;function en(e){return O({method:`POST`,path:$t},e)}function tn(e){return O({method:`GET`,path:$t},e)}function nn(e){return O({method:`DELETE`,path:$t},e)}function rn(e){return O({method:`POST`,path:`${$t}/connect`},e)}function an(e,t){return O({method:`GET`,path:`/api/cmmd/billing`,...t?.organizationId===void 0?{}:{query:{orgId:t.organizationId}}},e)}function on(e,t){return O({method:`GET`,path:`/api/cmmd/billing/series`,query:{timeZone:t.timeZone}},e)}function sn(e,t){return O({method:`GET`,path:`/api/cmmd/bootstrap`,...t?.organizationId===void 0?{}:{query:{orgId:t.organizationId}}},e)}var cn=`/api/cmmd/providers/codex/credential`,ln=`/api/cmmd/providers/claude/credential`;function un(e){return O({method:`GET`,path:cn},e)}function dn(e){return O({method:`DELETE`,path:cn},e)}function fn(e){return O({method:`GET`,path:ln},e)}function pn(e){return O({method:`DELETE`,path:ln},e)}function mn(e,t){return O({method:`DELETE`,path:`/api/cmmd/providers/accounts/${encodeURIComponent(String(t))}`},e)}function hn(e,t,n){return`/api/cmmd/threads/${encodeURIComponent(e)}/${encodeURIComponent(t)}/${encodeURIComponent(n)}/disposition`}function gn(e,t,n,r,i){return O({method:`PUT`,path:hn(t,n,r),body:i},e)}function _n(e){return(t,n,r,i)=>gn(e,t,n,r,i)}function vn(e,t=``){return`/api/cmmd/thread-attachments/${encodeURIComponent(e)}${t}`}function yn(e){return{async listThreadAttachments(t){return O({method:`GET`,path:vn(t)},e)},async uploadThreadAttachment(t,n,r,i){let a=new FormData;return a.append(`file`,n),r!==void 0&&a.append(`attachmentId`,r),O({method:`POST`,path:vn(t),form:a,...i===void 0?{}:{signal:i}},e)},async getThreadAttachmentDownloadUrl(t,n){return O({method:`GET`,path:vn(t,`/${encodeURIComponent(n)}/download`)},e)},async deleteThreadAttachment(t,n){await O({method:`DELETE`,path:vn(t,`/${encodeURIComponent(n)}`)},e)}}}var bn=class extends Error{constructor(e){super(e),this.name=`CmmdApiAuthError`}},xn=class extends Error{status;constructor(e,t){super(e),this.name=`CmmdApiServerError`,this.status=t}};async function Sn(e){try{return await e}catch(e){throw e instanceof ye?e.kind===`auth`?new bn(e.message):new xn(e.message,e.status??502):e}}function Cn(e,t,n){return`/api/cmmd/threads/${encodeURIComponent(e)}/${encodeURIComponent(t)}/${encodeURIComponent(n)}/archive`}function wn(e,t,n,r,i){return O({method:`POST`,path:Cn(t,n,r),body:i},e)}function Tn(e){return(t,n,r,i)=>wn(e,t,n,r,i)}function En(e){return typeof e==`object`&&!!e&&`status`in e&&e.status===409}async function Dn(e){let t={action:e.action,...e.operationId===void 0?{}:{operationId:e.operationId},expectedRevision:e.expectedRevision,force:e.force};try{return await e.submit(t)}catch(n){if(!En(n))throw n;let r=await e.refresh();return e.submit({...t,expectedRevision:r.revision})}}function On(e){return{getForgeAccountPreferences:()=>O({method:`GET`,path:`/api/cmmd/account/preferences`},e),updateForgeAccountPreferences:t=>O({method:`PATCH`,path:`/api/cmmd/account/preferences`,body:t},e),getUserSettings:t=>O({method:`GET`,path:`/api/cmmd/user/settings/${t}`},e),putUserSettings:(t,n)=>O({method:`PUT`,path:`/api/cmmd/user/settings/${t}`,body:n},e)}}function kn(e,t,n){return O({method:`POST`,path:`/api/cmmd/forge-runtimes/${encodeURIComponent(t)}/rename`,body:{displayName:n}},e)}function An(e,t,n){return O({method:`POST`,path:`/api/cmmd/devices/${encodeURIComponent(String(t))}/rename`,body:{displayName:n}},e)}function jn(e,t){return O({method:`POST`,path:`/api/cmmd/devices/${encodeURIComponent(String(t))}/revoke`},e)}function Mn(e){return{...e?.projectId===void 0?{}:{projectId:String(e.projectId)},...e?.allWorkspaces===!0?{allWorkspaces:`true`}:{},...e?.organizationId===void 0?{}:{orgId:String(e.organizationId)}}}var Nn=`rt-demo`,Pn=`th-demo`,Fn=`example-project`,In=`example-conversation`,Ln=`2026-09-26T20:00:00.000Z`;function Rn(e,t){return e===Nn&&t===Pn}function zn(){return{runtime:{id:Nn,source:`forge-cloud`,runtimeKind:`cloud-vm`,displayName:`Example Forge Server`,status:`online`,endpointUrl:null,hostId:null,deviceId:null,workspaceRoot:null,githubRepoFullName:null,lastSeenAt:Ln,reachability:{status:`online`,lastReachableAt:Ln,source:`cloud-runtime`},metadata:null},inventoryStatus:`synced`,inventoryPublishedAt:Ln,projectCount:1,threadCount:1,projects:[{projectId:Fn,title:`Example project`,workspaceRoot:null,githubRepoFullName:null,branch:null,status:`active`,threadCount:1,lastActivityAt:Ln,metadata:null,publishedAt:Ln,updatedAt:Ln,threads:[{threadId:Pn,title:`Example thread (viewer check)`,status:`active`,model:null,provider:null,providerAccountId:null,branch:null,lastMessagePreview:null,lastActivityAt:Ln,kind:`master`,parentThreadId:null,workerRole:null,anchorKind:`scratch`,anchorCmmdId:null,archive:null,disposition:{manualDisposition:null,automaticDisposition:null,effectiveDisposition:null,revision:null,source:null},metadata:null,publishedAt:Ln,updatedAt:Ln}]}]}}function Bn(){return{conversationId:In,runtime:{id:Nn,source:`forge-cloud`,runtimeKind:`cloud-vm`,displayName:`Example Forge Server`,status:`online`,endpointUrl:null,deviceId:null,workspaceRoot:null,githubRepoFullName:null,lastSeenAt:Ln,metadata:null},project:{projectId:Fn,title:`Example project`,githubRepoFullName:null,branch:null},thread:{threadId:Pn,title:`Example thread (viewer check)`,status:`active`,model:null,provider:null,providerAccountId:null,branch:null,lastActivityAt:Ln,metadata:null},reachability:`online`,execution:{available:!0,reason:null},replication:null,events:[{sequence:1,eventId:`example-user-1`,kind:`user_message`,turnId:null,text:`This is an example chat thread for verifying the Forge embed viewer. It is not a live Work Session.`,status:null,occurredAt:`2026-09-26T19:58:00.000Z`},{sequence:2,eventId:`example-assistant-1`,kind:`assistant_message`,turnId:null,text:`Understood. You should see this reply in the iframe under CMMD /forge, with the composer still available below.`,status:null,occurredAt:`2026-09-26T19:59:00.000Z`},{sequence:3,eventId:`example-user-2`,kind:`user_message`,turnId:null,text:`Thanks. If these three turns render, the thread wire is working.`,status:null,occurredAt:Ln}]}}function Vn(e){return e.runtimes.some(e=>e.runtime.id===Nn)?{...e,runtimes:[...e.runtimes]}:{...e,runtimes:[...e.runtimes,zn()]}}function A(e,t){if(!e||typeof e!=`object`)return null;let n=e[t];return typeof n==`string`&&n.trim().length>0?n.trim():null}function _ee(e,t){if(!e||typeof e!=`object`)return null;let n=e[t];return typeof n==`boolean`?n:null}function Hn(e,t){if(!e||typeof e!=`object`)return null;let n=e[t];return typeof n==`string`&&n.trim().length>0?n.trim():typeof n==`number`&&Number.isFinite(n)?String(n):null}function Un(e){return{...e.limit===void 0?{}:{limit:e.limit},...e.cursor?{cursor:e.cursor}:{}}}var Wn=class extends Error{constructor(e){super(`CmmdApiClient.${e} is not implemented yet`),this.name=`CmmdApiNotImplementedError`}};function Gn(e,t){if(Array.isArray(e))return e;if(e&&typeof e==`object`){let n=e[t];if(Array.isArray(n))return n}return[]}function Kn(e,t){if(Array.isArray(e))return e;if(e&&typeof e==`object`){let n=e[t];if(Array.isArray(n))return n}return[]}function qn(e,t){let n={};return e?.organizationId&&(n.orgId=e.organizationId),t!==void 0&&(n.taskId=String(t)),Object.keys(n).length>0?n:void 0}function Jn(e){let t=`${A(e,`firstName`)??``} ${A(e,`lastName`)??``}`.trim()||A(e,`username`)||A(e,`email`)||`Unknown`;return{id:Hn(e,`userId`)??Hn(e,`id`)??t,name:t,email:A(e,`email`),role:A(e,`role`),avatarUrl:A(e,`profileImage`)??A(e,`avatar`)}}function vee(e){let t=Xn(e,`user`)??e;return Jn({...typeof t==`object`&&t?t:{},userId:Hn(e,`userId`)??Hn(t,`id`),role:A(e,`role`)})}function Yn(e){let t=A(e,`authorFirstName`)??``,n=A(e,`authorLastName`)??``,r=A(e,`status`),i=r===`at_risk`||r===`off_track`||r===`complete`?r:`on_track`;return{id:Hn(e,`id`)??``,status:i,body:A(e,`body`)??``,authorName:`${t} ${n}`.trim()||null,authorAvatarUrl:A(e,`authorProfileImage`)??null,createdAt:A(e,`createdAt`)??``,updatedAt:A(e,`updatedAt`)??A(e,`createdAt`)??``,canEdit:_ee(e,`canEdit`)??!1}}function yee(e,t,n){let r=Array.isArray(e.data)?e.data.map(Yn):[];return{updates:r,pagination:e.pagination??{page:t,limit:n,total:r.length,hasMore:!1}}}function Xn(e,t){if(!e||typeof e!=`object`)return null;let n=e[t];return n&&typeof n==`object`?n:null}var bee=[`avatarUrl`,`avatar_url`,`profileImage`,`profile_image`,`profileImageUrl`,`profile_image_url`,`image`,`imageUrl`,`image_url`,`picture`];function Zn(e,t){let n=Xn(e,t);if(!n)return null;for(let e of bee){let t=A(n,e);if(t)return t}return null}function Qn(e,t){let n=Xn(e,t);return n?Hn(n,`id`):null}function $n(e,t){return!!(e&&typeof e==`object`&&Object.hasOwn(e,t))}function xee(e){let t={...e,id:Hn(e,`id`)??e.id,title:e.title??A(e,`name`)??``},n=Hn(e,`workspaceId`)??Hn(e,`workspace_id`)??Qn(e,`workspace`)??e.workspaceId??null;return n!==null||$n(e,`workspaceId`)?{...t,workspaceId:n,startDate:e.startDate??A(e,`start_date`)??null,endDate:e.endDate??A(e,`end_date`)??null}:t}function er(e){let t=e.ownerAvatarUrl??A(e,`owner_avatar_url`)??A(e,`ownerProfileImage`)??A(e,`owner_profile_image`)??A(e,`ownerImage`)??A(e,`owner_image`)??A(e,`ownerImageUrl`)??A(e,`owner_image_url`)??A(e,`createdByAvatarUrl`)??A(e,`created_by_avatar_url`)??A(e,`createdByProfileImage`)??A(e,`created_by_profile_image`)??Zn(e,`owner`)??Zn(e,`createdBy`)??Zn(e,`created_by`)??null,n={...e,id:Hn(e,`id`)??e.id},r=Hn(e,`campaignId`)??Hn(e,`campaign_id`)??Qn(e,`campaign`)??e.campaignId??null;(r!==null||$n(e,`campaignId`))&&(n.campaignId=r);let i=e.campaignTitle??A(e,`campaignTitle`)??A(e,`campaign_title`)??A(Xn(e,`campaign`),`title`)??A(Xn(e,`campaign`),`name`)??null;(i!==null||$n(e,`campaignTitle`))&&(n.campaignTitle=i);let a=Hn(e,`workspaceId`)??Hn(e,`workspace_id`)??Qn(e,`workspace`)??e.workspaceId??null;(a!==null||$n(e,`workspaceId`))&&(n.workspaceId=a);let o=e.workspaceName??A(e,`workspace_name`)??A(Xn(e,`workspace`),`name`)??null;(o!==null||$n(e,`workspaceName`))&&(n.workspaceName=o);let s=A(e,`workspaceIconUrl`)??A(e,`workspace_icon_url`)??A(Xn(e,`workspace`),`iconUrl`)??null;(s!==null||$n(e,`workspaceIconUrl`))&&(n.workspaceIconUrl=s);let c=Hn(e,`ownerId`)??Hn(e,`owner_id`)??Qn(e,`owner`)??e.ownerId??null;(c!==null||$n(e,`ownerId`))&&(n.ownerId=c);let l=e.ownerName??A(e,`owner_name`)??A(Xn(e,`owner`),`name`)??null;(l!==null||$n(e,`ownerName`))&&(n.ownerName=l),(t!==null||$n(e,`ownerAvatarUrl`))&&(n.ownerAvatarUrl=t);let u=Hn(e,`teamId`)??Hn(e,`team_id`)??Qn(e,`team`)??e.teamId??null;(u!==null||$n(e,`teamId`))&&(n.teamId=u);let d=e.teamName??A(e,`team_name`)??A(Xn(e,`team`),`name`)??null;(d!==null||$n(e,`teamName`))&&(n.teamName=d);let f=e.startDate??A(e,`start_date`)??null;(f!==null||$n(e,`startDate`))&&(n.startDate=f);let p=e.targetEndDate??A(e,`target_end_date`)??null;return(p!==null||$n(e,`targetEndDate`))&&(n.targetEndDate=p),n}function tr(e){if(Array.isArray(e))return e;if(e&&typeof e==`object`){let t=e;if(Array.isArray(t.items))return t.items;if(Array.isArray(t.results))return t.results}return[]}function See(e){return tr(e).flatMap(e=>{let t=e,n=typeof t.id==`number`?t.id:null,r=typeof t.name==`string`?t.name:null;if(n===null||r===null)return[];let i=e=>typeof t[e]==`string`?t[e]:null;return[{id:n,name:r,startDate:i(`startDate`),endDate:i(`endDate`),status:i(`status`)}]})}function Cee(e){if(e&&typeof e==`object`){let t=e;if(t.project&&typeof t.project==`object`)return t.project}return e}function nr(e){if(e===null||e.trim()===``)return null;let t=Number(e);return Number.isSafeInteger(t)?t:e}var rr=class e{cfg;putThreadDisposition;listThreadAttachments;uploadThreadAttachment;getThreadAttachmentDownloadUrl;deleteThreadAttachment;postThreadArchive;getForgeAccountPreferences;updateForgeAccountPreferences;getUserSettings;putUserSettings;commentEditIdempotencyKeys=new Map;commentDeleteIdempotencyKeys=new Map;constructor(e={}){let t=e.forgeOrigin===void 0,n=e.forgeOrigin??`http://localhost:13773`;this.cfg={resolveUrl:t?ae:e=>`${n}${e}`,maxRetries:e.maxRetries??3,onAuthExpired:e.onAuthExpired??pe,...t?{resolveBearerToken:()=>ce()?.bearerToken??null}:{}},this.putThreadDisposition=_n(this.cfg);let r=yn(this.cfg);this.listThreadAttachments=r.listThreadAttachments,this.uploadThreadAttachment=r.uploadThreadAttachment,this.getThreadAttachmentDownloadUrl=r.getThreadAttachmentDownloadUrl,this.deleteThreadAttachment=r.deleteThreadAttachment,this.postThreadArchive=Tn(this.cfg);let i=On(this.cfg);this.getForgeAccountPreferences=i.getForgeAccountPreferences,this.updateForgeAccountPreferences=i.updateForgeAccountPreferences,this.getUserSettings=i.getUserSettings,this.putUserSettings=i.putUserSettings}async getTask(e){return Sn(O({method:`GET`,path:`/api/cmmd/tasks/${e}`},this.cfg))}async getForgeTaskDetail(e){return O({method:`GET`,path:`/api/cmmd/tasks/${e}`},this.cfg)}async searchTasks(e){let t={q:e.q};return e.status&&(t.status=e.status),e.limit!==void 0&&(t.limit=e.limit),e.projectId&&(t.projectId=e.projectId),(await Sn(O({method:`GET`,path:`/api/cmmd/tasks/search`,query:t},this.cfg))).tasks??[]}async getTaskComments(e){return(await Sn(O({method:`GET`,path:`/api/cmmd/tasks/${e}/comments`},this.cfg))).comments??[]}async listProjectTaskComments(e){return(await Sn(O({method:`GET`,path:`/api/cmmd/tasks/${e}/comments`},this.cfg))).comments??[]}async createProjectTaskComment(e,t){return(await Sn(O({method:`POST`,path:`/api/cmmd/tasks/comment`,body:{taskId:e,content:t.content}},this.cfg))).details}async updateProjectTaskComment(e,t,n){return(await Sn(O({method:`PATCH`,path:`/api/cmmd/tasks/${e}/comments/${encodeURIComponent(t)}`,body:n},this.cfg))).comment}async deleteProjectTaskComment(e,t,n){return Sn(O({method:`DELETE`,path:`/api/cmmd/tasks/${e}/comments/${encodeURIComponent(t)}`,body:n},this.cfg))}async getTaskAttachments(e){return Sn(O({method:`GET`,path:`/api/cmmd/tasks/${e}/attachments`},this.cfg))}async getProjectRepository(e){return Sn(O({method:`GET`,path:`/api/cmmd/projects/${e}/repository`},this.cfg))}async listProjectRepositories(e){return(await Sn(O({method:`GET`,path:`/api/cmmd/projects/${e}/repositories`},this.cfg))).repositories}async getWorkspaceMembers(e){return Sn(O({method:`GET`,path:`/api/cmmd/organizations/${e}/members`},this.cfg))}async getWebSocketToken(e){return O({method:`GET`,path:`/api/cmmd/ws-token`,...e?.signal===void 0?{}:{signal:e.signal}},this.cfg)}async getProjectComments(e,t){let n={};return t?.organizationId&&(n.organizationId=t.organizationId),(await O({method:`GET`,path:`/api/cmmd/projects/${e}/comments`,query:n},this.cfg))?.comments??[]}async getProjectLink(e){return O({method:`GET`,path:`/.well-known/forge/project-link`,query:{environmentId:e.environmentId,projectId:e.projectId,cwd:e.cwd}},this.cfg)}async listProjectLinks(){return O({method:`GET`,path:`/.well-known/forge/project-links`,suppressBearerToken:!0},this.cfg)}async listProjectContextLinks(e){let t={};e.environmentId&&(t.forgeEnvironmentId=e.environmentId),e.projectId&&(t.forgeProjectId=e.projectId),e.githubRepoFullName&&(t.githubRepoFullName=e.githubRepoFullName),e.cmmdOrganizationId&&(t.cmmdOrganizationId=e.cmmdOrganizationId);let n=await O({method:`GET`,path:`/.well-known/forge/cmmd/project-links`,query:t},this.cfg),r=f(l)(n);return r._tag===`Some`?r.value.links:[]}async listCmmdWorkspaces(){return tr(await O({method:`GET`,path:`/.well-known/forge/cmmd/workspaces`},this.cfg))}async listCmmdCampaigns(e){return See(await O({method:`GET`,path:`/.well-known/forge/cmmd/campaigns`,query:{workspaceId:e.workspaceId}},this.cfg))}async listCmmdProjects(e){return tr(await O({method:`GET`,path:`/.well-known/forge/cmmd/projects`,query:{campaignId:e.campaignId}},this.cfg))}async updateTask(e,t){let n={taskId:e};return t.title!==void 0&&(n.title=t.title),t.description!==void 0&&(n.description=t.description),t.status!==void 0&&(n.status=t.status),t.priority!==void 0&&(n.priority=t.priority),t.dueDate!==void 0&&(n.dueDate=t.dueDate),t.assigneeId!==void 0&&(n.assigneeId=t.assigneeId),t.labels!==void 0&&(n.labels=t.labels),Sn(O({method:`POST`,path:`/api/cmmd/tasks/update`,body:n},this.cfg))}async createComment(e){return Sn(O({method:`POST`,path:`/api/cmmd/tasks/comment`,body:{taskId:e.entityId,content:e.content}},this.cfg))}async updateComment(e,t,n){let r=`${e}:${t}:${n}`,i=this.commentEditIdempotencyKeys.get(r)??crypto.randomUUID();this.commentEditIdempotencyKeys.set(r,i);let a=await Sn(O({method:`PATCH`,path:`/api/cmmd/tasks/${e}/comments/${t}`,body:{content:n,idempotencyKey:i}},this.cfg));return this.commentEditIdempotencyKeys.delete(r),a}async deleteComment(e,t){let n=`${e}:${t}`,r=this.commentDeleteIdempotencyKeys.get(n)??crypto.randomUUID();this.commentDeleteIdempotencyKeys.set(n,r),await Sn(O({method:`DELETE`,path:`/api/cmmd/tasks/${e}/comments/${t}`,body:{idempotencyKey:r}},this.cfg)),this.commentDeleteIdempotencyKeys.delete(n)}async createProjectComment(e,t){let n=(await O({method:`POST`,path:`/api/cmmd/projects/${e}/comments`,body:{content:t.content,organizationId:t.organizationId??null}},this.cfg))?.comment;if(!n)throw new ye({kind:`server`,message:`CMMD did not return the created project comment.`});return n}async updateProject(e,t){let n={};for(let e of h){let r=t[e];r!==void 0&&(n[e]=x[e]===`nullableId`?nr(r):r)}await O({method:`PATCH`,path:`/api/cmmd/projects/${e}`,body:n},this.cfg)}async setProjectLink(e){await O({method:`POST`,path:`/.well-known/forge/project-link`,body:e},this.cfg)}async deleteProjectLink(e){await O({method:`DELETE`,path:`/.well-known/forge/project-link`,query:{environmentId:e.environmentId,projectId:e.projectId,cwd:e.cwd,...e.cmmdProjectId?{cmmdProjectId:e.cmmdProjectId}:{}}},this.cfg)}async createCmmdProject(e){return O({method:`POST`,path:`/.well-known/forge/cmmd/projects`,body:e},this.cfg)}async ensureGitHubProjectContext(e){return O({method:`POST`,path:`/.well-known/forge/cmmd/github-project-contexts/ensure`,body:e},this.cfg)}async createBrainDoc(e){return O({method:`POST`,path:`/api/cmmd/brain-docs`,body:e},this.cfg)}async uploadTaskAttachment(e,t){let n=new FormData;return n.append(`file`,t),Sn(O({method:`POST`,path:`/api/cmmd/tasks/${e}/attachments`,form:n},this.cfg))}async archiveTask(e){await O({method:`POST`,path:`/api/cmmd/tasks/${e}/archive`},this.cfg)}async unarchiveTask(e){await O({method:`POST`,path:`/api/cmmd/tasks/${e}/unarchive`},this.cfg)}async getProfile(){return O({method:`GET`,path:`/api/cmmd/profile`},this.cfg)}async getUsageSummary(e){return O({method:`GET`,path:`/api/cmmd/usage/summary`,query:{sinceDay:e.sinceDay,untilDay:e.untilDay,timeZone:e.timeZone,...e.resolution===`hour`?{resolution:e.resolution,sinceTime:e.sinceTime,untilTime:e.untilTime}:{}}},this.cfg)}getBilling(e){return an(this.cfg,e)}getBillingSeries(e){return on(this.cfg,e)}getBootstrap(e){return sn(this.cfg,e)}async getOrgProviderPolicy(){return O({method:`GET`,path:`/api/cmmd/org/provider-policy`},this.cfg)}async listSavedDataViews(e){return O({method:`GET`,path:`/api/cmmd/saved-views`,query:{surface:e.surface,projectId:e.projectId}},this.cfg)}async createSavedDataView(e){return O({method:`POST`,path:`/api/cmmd/saved-views`,body:e},this.cfg)}async importSavedDataView(e){return O({method:`POST`,path:`/api/cmmd/saved-views/import`,body:e},this.cfg)}async updateSavedDataView(e,t){return O({method:`PATCH`,path:`/api/cmmd/saved-views/${encodeURIComponent(e)}`,body:t},this.cfg)}async deleteSavedDataView(e,t){return O({method:`DELETE`,path:`/api/cmmd/saved-views/${encodeURIComponent(e)}`,query:t},this.cfg)}async getDeviceRegistry(e){return O({method:`GET`,path:`/api/cmmd/devices`,...e?.projectId===void 0?{}:{query:{projectId:String(e.projectId)}},...e?.signal===void 0?{}:{signal:e.signal}},this.cfg)}async registerDevice(e){return O({method:`POST`,path:`/api/cmmd/devices/register`,body:e},this.cfg)}async grantRuntimeAccess(e,t){return O({method:`POST`,path:`/api/cmmd/devices/runtimes/${encodeURIComponent(e)}/access-grants`,body:t},this.cfg)}async revokeRuntimeAccess(e,t){return O({method:`POST`,path:`/api/cmmd/devices/runtimes/${encodeURIComponent(e)}/access-grants/${encodeURIComponent(String(t))}/revoke`},this.cfg)}async issueRelayControlRoute(e,t){return O({method:`POST`,path:`/api/cmmd/devices/runtimes/${encodeURIComponent(e)}/relay-routes`,body:t},this.cfg)}async issueRelayActionGrant(e,t){return O({method:`POST`,path:`/api/cmmd/devices/runtimes/${encodeURIComponent(e)}/relay-action-grants`,body:t},this.cfg)}async getRuntimeInventory(e){let t=Mn(e);return Vn(await O({method:`GET`,path:`/api/cmmd/runtime-inventory`,...Object.keys(t).length>0?{query:t}:{}},this.cfg))}async getRuntimeDiagnostics(e){return O({method:`GET`,path:`/api/cmmd/runtime-diagnostics/v2/runtimes/${encodeURIComponent(e)}`},this.cfg)}async getCloudProjectLifecyclePreflight(e){return(await O({method:`GET`,path:`/api/cmmd/forge-cloud-projects/${encodeURIComponent(String(e))}/lifecycle-preflight`},this.cfg)).preflight}async replaceRuntimeInventory(e,t){return O({method:`PUT`,path:`/api/cmmd/devices/runtimes/${encodeURIComponent(e)}/inventory`,body:t},this.cfg)}static PROVIDER_ACCOUNTS_PATH=`/api/cmmd/providers/accounts`;static PROVIDER_USAGE_PATH=`/api/cmmd/providers/usage`;static PROVIDER_USAGE_REFRESH_PATH=`/api/cmmd/providers/usage/refresh`;provisionAuthRuntime(){return en(this.cfg)}getAuthRuntimeState(){return tn(this.cfg)}destroyAuthRuntime(){return nn(this.cfg)}connectAuthRuntime(){return rn(this.cfg)}getUserCodexCredential(){return un(this.cfg)}disconnectUserCodexCredential(){return dn(this.cfg)}getUserClaudeCredential(){return fn(this.cfg)}async getProviderAccounts(){return O({method:`GET`,path:e.PROVIDER_ACCOUNTS_PATH},this.cfg)}async removeLinkedProviderAccount(e){return mn(this.cfg,e)}async setProviderAccountDefault(t){return O({method:`PUT`,path:`${e.PROVIDER_ACCOUNTS_PATH}/default`,body:{provider:t.provider,provider_account_id:t.providerAccountId}},this.cfg)}async getProviderUsage(){return O({method:`GET`,path:e.PROVIDER_USAGE_PATH},this.cfg)}async refreshProviderUsage(t,n){return O({method:`POST`,path:e.PROVIDER_USAGE_REFRESH_PATH,body:{provider:t,providerAccountId:n}},this.cfg)}disconnectUserClaudeCredential(){return pn(this.cfg)}async getClaudeRuntimeReadiness(e){return O({method:`GET`,path:`/api/cmmd/providers/claude/runtime-readiness/${encodeURIComponent(e)}`},this.cfg)}async appendRuntimeThreadEvents(e,t,n){return O({method:`POST`,path:`/api/cmmd/devices/runtimes/${encodeURIComponent(e)}/threads/${encodeURIComponent(t)}/events`,body:n},this.cfg)}async getRuntimeThreadReplica(e,t){return Rn(e,t)?Bn():O({method:`GET`,path:`/api/cmmd/threads/${encodeURIComponent(e)}/${encodeURIComponent(t)}`},this.cfg)}renameCloudEnvironment(e,t){return kn(this.cfg,e,t)}renameDevice(e,t){return An(this.cfg,e,t)}revokeDevice(e){return jn(this.cfg,e)}static SIM_PATH=`/api/cmmd/sim-host`;static simScope(e){return e?.orgId===void 0?``:`?orgId=${encodeURIComponent(String(e.orgId))}`}async listSimHosts(t){return O({method:`GET`,path:`${e.SIM_PATH}/hosts${e.simScope(t)}`},this.cfg)}async getSimLease(t){let n=new URLSearchParams({forgeEnvironmentId:t.forgeEnvironmentId,threadId:t.threadId,...t.orgId===void 0?{}:{orgId:String(t.orgId)}});return O({method:`GET`,path:`${e.SIM_PATH}/leases?${n.toString()}`},this.cfg)}async claimSimLease(t){return O({method:`POST`,path:`${e.SIM_PATH}/leases${e.simScope(t)}`,body:{hostId:t.hostId,forgeEnvironmentId:t.forgeEnvironmentId,threadId:t.threadId,ttlMs:t.ttlMs}},this.cfg)}async renewSimLease(t){return O({method:`POST`,path:`${e.SIM_PATH}/leases/${encodeURIComponent(String(t.leaseId))}/renew${e.simScope(t)}`,body:{generation:t.generation,rowVersion:t.rowVersion,ttlMs:t.ttlMs}},this.cfg)}async releaseSimLease(t){await O({method:`POST`,path:`${e.SIM_PATH}/leases/${encodeURIComponent(String(t.leaseId))}/release${e.simScope(t)}`,body:{generation:t.generation,rowVersion:t.rowVersion}},this.cfg)}async listCampaigns(e){let t={};return e?.orgId&&(t.orgId=e.orgId),e?.allWorkspaces&&(t.allWorkspaces=`true`),Gn(await O({method:`GET`,path:`/api/cmmd/campaigns`,query:t,...e?.signal?{signal:e.signal}:{}},this.cfg),`campaigns`).map(xee)}async getCampaign(e){return O({method:`GET`,path:`/api/cmmd/campaigns/${e}`},this.cfg)}async createCampaign(e){return O({method:`POST`,path:`/api/cmmd/campaigns`,body:e},this.cfg)}async updateCampaign(e,t){return O({method:`PUT`,path:`/api/cmmd/campaigns/${e}`,body:t},this.cfg)}async deleteCampaign(e){await O({method:`DELETE`,path:`/api/cmmd/campaigns/${e}`},this.cfg)}async listProjects(e){let t={};return e?.campaignId&&(t.campaignId=e.campaignId),e?.orgId&&(t.orgId=e.orgId),e?.allWorkspaces&&(t.allWorkspaces=`true`),Gn(await O({method:`GET`,path:`/api/cmmd/projects`,query:t,...e?.signal?{signal:e.signal}:{}},this.cfg),`projects`).map(er)}async listTasks(e){let t={};return e?.projectId&&(t.projectId=e.projectId),e?.status&&(t.status=e.status),O({method:`GET`,path:`/api/cmmd/tasks`,query:t},this.cfg)}async getProject(e){return er(await O({method:`GET`,path:`/api/cmmd/projects/${e}`},this.cfg))}async getProjectMembers(e){let t=await O({method:`GET`,path:`/api/cmmd/projects/${e}/members`},this.cfg);return Array.isArray(t)?t.map(Jn):[]}async listWorkspaceMembers(){let e=await O({method:`GET`,path:`/api/cmmd/members`},this.cfg);return Array.isArray(e)?e.map(vee):[]}async addProjectMember(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/members`,body:t},this.cfg)}async listProjectAgentMembers(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/agent-members`},this.cfg)}async createProjectAgentMember(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/agent-members`,body:t},this.cfg)}async renameProjectAgentMember(e,t,n){return O({method:`PATCH`,path:`/api/cmmd/projects/${e}/agent-members/${t}`,body:n},this.cfg)}async retireProjectAgentMember(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/agent-members/${t}/retire`,body:n},this.cfg)}async updateProjectAgentMemberAvatar(e,t,n){return O({method:`PUT`,path:`/api/cmmd/projects/${e}/agent-members/${t}/avatar`,body:n},this.cfg)}async listProjectAgentMemberInstances(e,t){return O({method:`GET`,path:`/api/cmmd/projects/${e}/agent-members/${t}/instances`},this.cfg)}async previewProjectAgentMemberConsolidation(e){return O({method:`POST`,path:`/api/cmmd/projects/${e}/agent-members/consolidation/preview`},this.cfg)}async applyProjectAgentMemberConsolidation(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/agent-members/consolidation/apply`,body:t},this.cfg)}async setProjectTaskAssignment(e,t,n){return O({method:`PUT`,path:`/api/cmmd/projects/${e}/tasks/${t}/assignment`,body:n},this.cfg)}async getProjectUpdates(e,t){let n=t?.page??1,r=t?.limit??10;return yee(await O({method:`GET`,path:`/api/cmmd/projects/${e}/updates`,query:{page:n,limit:r},unwrapEnvelope:!1},this.cfg),n,r)}async createProjectUpdate(e,t){return Yn(await O({method:`POST`,path:`/api/cmmd/projects/${e}/updates`,body:t},this.cfg))}async updateProjectUpdate(e,t,n){return Yn(await O({method:`PATCH`,path:`/api/cmmd/projects/${e}/updates/${t}`,body:n},this.cfg))}async deleteProjectUpdate(e,t){await O({method:`DELETE`,path:`/api/cmmd/projects/${e}/updates/${t}`},this.cfg)}async listProjectMilestones(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/milestones`},this.cfg)}async createProjectMilestone(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/milestones`,body:t},this.cfg)}async updateProjectMilestone(e,t,n){return O({method:`PATCH`,path:`/api/cmmd/projects/${e}/milestones/${t}`,body:n},this.cfg)}async deleteProjectMilestone(e,t){await O({method:`DELETE`,path:`/api/cmmd/projects/${e}/milestones/${t}`},this.cfg)}async improveProjectContent(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/content/readability`,body:t},this.cfg)}async listProjectBoard(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/board`},this.cfg)}async createProjectTaskDraft(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/task-drafts`,body:t},this.cfg)}async getProjectTaskDraft(e,t){return O({method:`GET`,path:`/api/cmmd/projects/${e}/task-drafts/${t}`},this.cfg)}async updateProjectTaskDraft(e,t,n){return O({method:`PATCH`,path:`/api/cmmd/projects/${e}/task-drafts/${t}`,body:n},this.cfg)}async previewProjectTaskDraft(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/task-drafts/${t}/preview`,body:n},this.cfg)}async commitProjectTaskDraft(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/task-drafts/${t}/commit`,body:n},this.cfg)}async discardProjectTaskDraft(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/task-drafts/${t}/discard`,body:n},this.cfg)}async getProjectTaskWorkflow(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/task-workflow`},this.cfg)}async updateProjectTaskWorkflow(e,t){return O({method:`PUT`,path:`/api/cmmd/projects/${e}/task-workflow`,body:t},this.cfg)}async getProjectLeadPlan(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/plan`},this.cfg)}async activateProjectLeadAutomaticStaffing(e){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/authority/activate`,body:{}},this.cfg)}async getProjectLeadReadiness(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/readiness`},this.cfg)}async getProjectLeadCapabilities(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/capabilities`},this.cfg)}async getProjectLeadSummary(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/summary`},this.cfg)}async getProjectLeadDetail(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/detail`},this.cfg)}async getProjectLeadBriefing(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/briefing`},this.cfg)}async decideProjectLeadApproval(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/approvals/${t}/decision`,body:n},this.cfg)}async listProjectLeadEvents(e,t){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/events`,...t?{query:{...t.afterEventId===void 0?{}:{afterEventId:String(t.afterEventId)},...t.latest===void 0?{}:{latest:String(t.latest)},...t.limit===void 0?{}:{limit:String(t.limit)}}}:{}},this.cfg)}async explainProjectLead(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/explain`},this.cfg)}async pauseProjectLead(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/pause`,body:t},this.cfg)}async resumeProjectLead(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/resume`,body:t},this.cfg)}async reserveProjectLeadTask(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/tasks/${t}/reservations`,body:n},this.cfg)}async releaseProjectLeadReservation(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/reservations/${t}/release`,body:n},this.cfg)}async reconcileProjectLead(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/reconcile`,body:t},this.cfg)}async resolveProjectLeadAttention(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/attention/${t}/resolve`,body:n},this.cfg)}async listCenterBoard(e){let t={};return e?.status&&(t.status=e.status),e?.workspaceId&&(t.workspaceId=String(e.workspaceId)),e?.campaignId&&(t.campaignId=String(e.campaignId)),e?.ownerId&&(t.ownerId=String(e.ownerId)),e?.includeArchived!==void 0&&(t.includeArchived=e.includeArchived),e?.q&&(t.q=e.q),O({method:`GET`,path:`/api/cmmd/work-items/board`,query:t},this.cfg)}async listForgeAutomationPresets(){return Kn(await O({method:`GET`,path:`/api/cmmd/automations/presets`},this.cfg),`presets`)}async listUserForgeAutomationRules(){return Kn(await O({method:`GET`,path:`/api/cmmd/automations/user/rules`},this.cfg),`rules`)}async createUserForgeAutomationRule(e){return O({method:`POST`,path:`/api/cmmd/automations/user/rules`,body:e},this.cfg)}async updateUserForgeAutomationRule(e,t){return O({method:`PATCH`,path:`/api/cmmd/automations/user/rules/${e}`,body:t},this.cfg)}async listUserForgeAutomationRuns(e){return Kn(await O({method:`GET`,path:`/api/cmmd/automations/user/rules/${e}/runs`},this.cfg),`runs`)}async startUserForgeAutomationRun(e,t){return O({method:`POST`,path:`/api/cmmd/automations/user/rules/${e}/runs`,body:t},this.cfg)}async listForgeAutomationRules(e,t){let n=qn(t);return Kn(await O({method:`GET`,path:`/api/cmmd/automations/projects/${e}/rules`,...n?{query:n}:{}},this.cfg),`rules`)}async createForgeAutomationRule(e,t,n){let r=qn(n);return O({method:`POST`,path:`/api/cmmd/automations/projects/${e}/rules`,body:t,...r?{query:r}:{}},this.cfg)}async updateForgeAutomationRule(e,t,n,r){let i=qn(r);return O({method:`PATCH`,path:`/api/cmmd/automations/projects/${e}/rules/${t}`,body:n,...i?{query:i}:{}},this.cfg)}async listForgeAutomationRuns(e,t){let n=qn(t,t?.taskId);return Kn(await O({method:`GET`,path:`/api/cmmd/automations/projects/${e}/runs`,...n?{query:n}:{}},this.cfg),`runs`)}async getForgeAutomationRun(e,t){let n=qn(t);return O({method:`GET`,path:`/api/cmmd/automations/runs/${e}`,...n?{query:n}:{}},this.cfg)}async startForgeAutomationRun(e,t,n,r){let i=qn(r);return O({method:`POST`,path:`/api/cmmd/automations/projects/${e}/tasks/${t}/runs`,body:n,...i?{query:i}:{}},this.cfg)}async retryForgeAutomationRun(e,t,n){let r=qn(n);return O({method:`POST`,path:`/api/cmmd/automations/runs/${e}/retry`,body:t,...r?{query:r}:{}},this.cfg)}async cancelForgeAutomationRun(e,t,n){let r=qn(n);return O({method:`POST`,path:`/api/cmmd/automations/runs/${e}/cancel`,body:t,...r?{query:r}:{}},this.cfg)}async approveForgeAutomationEscalation(e,t,n){let r=qn(n);return O({method:`POST`,path:`/api/cmmd/automations/runs/${e}/escalations/approve`,body:t,...r?{query:r}:{}},this.cfg)}async rejectForgeAutomationEscalation(e,t,n){let r=qn(n);return O({method:`POST`,path:`/api/cmmd/automations/runs/${e}/escalations/reject`,body:t,...r?{query:r}:{}},this.cfg)}async createProjectBoardTask(e,t){let n={title:t.title};return t.description!==void 0&&(n.description=t.description),t.priority!==void 0&&(n.priority=t.priority),t.status!==void 0&&(n.status=t.status),t.workflowStageId!==void 0&&(n.workflowStageId=t.workflowStageId),t.assignee!==void 0&&(n.assignee=t.assignee),t.dueDate!==void 0&&(n.dueDate=t.dueDate),t.workItemType!==void 0&&(n.workItemType=t.workItemType),t.parentTaskId!==void 0&&(n.parentTaskId=t.parentTaskId),t.milestoneId!==void 0&&(n.milestoneId=t.milestoneId),t.dependsOn!==void 0&&(n.dependsOn=t.dependsOn),O({method:`POST`,path:`/api/cmmd/projects/${e}/board`,body:n},this.cfg)}async createCenterBoardTask(e){let t={title:e.title,projectId:e.projectId};return e.description!==void 0&&(t.description=e.description),e.priority!==void 0&&(t.priority=e.priority),e.status!==void 0&&(t.status=e.status),e.assignee!==void 0&&(t.assignee=e.assignee),e.dueDate!==void 0&&(t.dueDate=e.dueDate),e.workItemType!==void 0&&(t.workItemType=e.workItemType),e.parentTaskId!==void 0&&(t.parentTaskId=e.parentTaskId),e.milestoneId!==void 0&&(t.milestoneId=e.milestoneId),e.dependsOn!==void 0&&(t.dependsOn=e.dependsOn),O({method:`POST`,path:`/api/cmmd/work-items/board`,body:t},this.cfg)}async submitFeedback(e){let t={type:e.type,title:e.title,source:e.source};return e.description!==void 0&&(t.description=e.description),e.priority!==void 0&&(t.priority=e.priority),e.senderName!==void 0&&(t.senderName=e.senderName),O({method:`POST`,path:`/api/cmmd/feedback`,body:t},this.cfg)}async updateProjectBoardTask(e,t,n){return O({method:`PATCH`,path:`/api/cmmd/projects/${e}/board/${t}`,body:n},this.cfg)}async updateCenterBoardTask(e,t){return O({method:`PATCH`,path:`/api/cmmd/work-items/board/${e}`,body:t},this.cfg)}async moveCenterBoardTask(e,t){let n={toStatus:t.toStatus};return t.beforeTaskId!==void 0&&(n.beforeTaskId=t.beforeTaskId),t.afterTaskId!==void 0&&(n.afterTaskId=t.afterTaskId),O({method:`PATCH`,path:`/api/cmmd/work-items/board/${e}/move`,body:n},this.cfg)}async moveProjectBoardTask(e,t,n){let r={toStatus:n.toStatus};return n.toStageId!==void 0&&(r.toStageId=n.toStageId),n.beforeTaskId!==void 0&&(r.beforeTaskId=n.beforeTaskId),n.afterTaskId!==void 0&&(r.afterTaskId=n.afterTaskId),O({method:`PATCH`,path:`/api/cmmd/projects/${e}/board/${t}/move`,body:r},this.cfg)}async archiveProjectBoardTask(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/board/${t}/archive`},this.cfg)}async unarchiveProjectBoardTask(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/board/${t}/unarchive`},this.cfg)}async updateProjectBoardTaskStatus(e,t,n,r){return O({method:`PATCH`,path:`/api/cmmd/projects/${e}/board/${t}/status`,body:{status:n,...r?{workflowStageId:r}:{}}},this.cfg)}async listTaskExecutionOptions(e,t){return O({method:`GET`,path:`/api/cmmd/projects/${e}/board/${t}/execution-options`},this.cfg)}async createTaskWorkSession(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/board/${t}/work-sessions`,body:n},this.cfg)}async listProjectWorkSessions(e,t={}){return O({method:`GET`,path:`/api/cmmd/projects/${e}/work-sessions`,query:t},this.cfg)}async getWorkSession(e){return O({method:`GET`,path:`/api/cmmd/work-sessions/${e}`},this.cfg)}async updateWorkSessionStatus(e,t){return O({method:`PATCH`,path:`/api/cmmd/work-sessions/${e}`,body:{status:t}},this.cfg)}async attachWorkSessionThread(e,t){return O({method:`POST`,path:`/api/cmmd/work-sessions/${e}/threads`,body:t},this.cfg)}async listTaskConversations(e,t={}){return O({method:`GET`,path:`/api/cmmd/tasks/${e}/conversations`,query:Un(t)},this.cfg)}async linkTaskConversation(e,t){return O({method:`POST`,path:`/api/cmmd/tasks/${e}/conversations`,body:t},this.cfg)}async getTaskHistory(e){return O({method:`GET`,path:`/api/cmmd/tasks/${e}/history`},this.cfg)}async upsertTaskPullRequest(e,t){return O({method:`PUT`,path:`/api/cmmd/tasks/${e}/pull-requests`,body:t},this.cfg)}postPullRequest(e,t){return O({method:`POST`,path:`/api/cmmd/pull-requests/${e}`,body:t},this.cfg)}async listPullRequests(e){return this.postPullRequest(`list`,e)}async getPullRequestListStats(e){return this.postPullRequest(`list-stats`,e)}async getPullRequestDetail(e){return this.postPullRequest(`detail`,e)}async getPullRequestActivity(e){return this.postPullRequest(`activity`,e)}async getPullRequestDiff(e){return this.postPullRequest(`diff`,e)}async getPullRequestDiffFileContents(e){return this.postPullRequest(`diff-file-contents`,e)}async getPullRequestThreadComments(e){return this.postPullRequest(`thread/comments`,e)}async getPullRequestReviewerCandidates(e){return this.postPullRequest(`reviewer-candidates`,e)}async runPullRequestAction(e){return this.postPullRequest(`action`,e)}async createPullRequestComment(e){return this.postPullRequest(`comment`,e)}async updatePullRequest(e){return this.postPullRequest(`update`,e)}async updatePullRequestComment(e){return this.postPullRequest(`comment/update`,e)}async submitPullRequestReview(e){return this.postPullRequest(`review`,e)}async replyToPullRequestThread(e){return this.postPullRequest(`thread/reply`,e)}async setPullRequestThreadResolution(e){return this.postPullRequest(`thread/resolution`,e)}async requestPullRequestReviewers(e){return this.postPullRequest(`reviewers`,e)}async setPullRequestReaction(e){return this.postPullRequest(`reaction`,e)}async getTaskConversation(e,t,n={}){return O({method:`GET`,path:`/api/cmmd/tasks/${e}/conversations/${encodeURIComponent(t)}`,query:Un(n)},this.cfg)}async createTask(e){return O({method:`POST`,path:`/api/cmmd/tasks`,body:e},this.cfg)}async createSubtask(e){throw new Wn(`createSubtask`)}async createBoardTask(e){throw new Wn(`createBoardTask`)}async createProject(e){let t={};for(let[n,r]of Object.entries(e))r!=null&&(t[n]=r);return e.campaignId!==void 0&&e.campaignId!==null&&(t.campaignId=nr(e.campaignId)),e.organizationId!==void 0&&e.organizationId!==null&&(t.organizationId=nr(e.organizationId)),Cee(await O({method:`POST`,path:`/api/cmmd/projects`,body:t},this.cfg))}async moveProject(e,t){let n={targetOrgId:nr(t.targetOrgId)};return t.campaignStrategy!==void 0&&(n.campaignStrategy=t.campaignStrategy),t.targetCampaignId!==void 0&&(n.targetCampaignId=nr(t.targetCampaignId)),t.dryRun!==void 0&&(n.dryRun=t.dryRun),O({method:`POST`,path:`/api/cmmd/projects/${e}/move`,body:n},this.cfg)}async uploadBrainDoc(e,t){throw new Wn(`uploadBrainDoc`)}};function wee(e){return new rr(e)}var Tee=new rr({onAuthExpired:pe});function ir(e={resolveUrl:ae}){let t=ce()?.bearerToken;return t?{...e,bearerToken:t}:e}var ar=new Set([`CMMD_AUTH_REQUIRED`,`CMMD_AUTH_EXPIRED`]);function or(e,t){return!e&&t===null?{}:{query:{...e?{fresh:1}:{},...t===null?{}:{orgId:t}}}}async function sr(e){let t=`/api/cmmd/work-intake`,{getCurrentForgeWorkspaceId:n}=await _e(async()=>{let{getCurrentForgeWorkspaceId:e}=await import(`./currentForgeWorkspaceStore-DFXVNSGW.js`).then(e=>e.t);return{getCurrentForgeWorkspaceId:e}},__vite__mapDeps([0,1,2,3,4,5,6])),r=n(),i;try{i=await O({method:`GET`,path:t,allowRetry:!1,...or(e,r)},ir())}catch(e){throw e instanceof ye&&e.kind!==`auth`&&e.code!==null&&ar.has(e.code)?new ye({kind:`auth`,message:e.message,status:e.status??401,code:e.code}):e}if(!i)throw Error(`Invalid response from ${t}`);return i}async function cr(e={}){return sr(e.forceFresh===!0)}var j=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__,M=globalThis,lr=`10.74.0`;function ur(){return dr(M),M}function dr(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||`10.74.0`,t[lr]=t[`10.74.0`]||{}}function fr(e,t,n=M){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[lr]=r[`10.74.0`]||{};return i[e]||(i[e]=t())}var pr=[`debug`,`info`,`warn`,`error`,`log`,`assert`,`trace`],mr=`Sentry Logger `,hr={};function gr(e){if(!(`console`in M))return e();let t=M.console,n={},r=Object.keys(hr);r.forEach(e=>{let r=hr[e];n[e]=t[e],t[e]=r});try{return e()}finally{r.forEach(e=>{t[e]=n[e]})}}function _r(){wr().enabled=!0}function vr(){wr().enabled=!1}function yr(){return wr().enabled}function br(...e){Cr(`log`,...e)}function xr(...e){Cr(`warn`,...e)}function Sr(...e){Cr(`error`,...e)}function Cr(e,...t){j&&yr()&&gr(()=>{M.console[e](`${mr}[${e}]:`,...t)})}function wr(){return j?fr(`loggerSettings`,()=>({enabled:!1})):{enabled:!1}}var N={enable:_r,disable:vr,isEnabled:yr,log:br,warn:xr,error:Sr},Tr=50,Er=/\(error: (.*)\)/,Dr=/captureMessage|captureException/;function Or(...e){let t=e.sort((e,t)=>e[0]-t[0]).map(e=>e[1]);return(e,n=0,r=0)=>{let i=[],a=e.split(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/currentForgeWorkspaceStore-esttwwzd.js","assets/rolldown-runtime-hePW80VL.js","assets/Stream-mUTFnSY9.js","assets/cmmdAuthRedirect-Cpw3QgrC.js","assets/atomRegistry-C1yW8tyM.js","assets/src-e9jwz4Nc.js","assets/preload-helper-Czpn1I53.js","assets/transport-CgH8pQK3.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e,r as t}from"./rolldown-runtime-hePW80VL.js";import{Ha as n,Oa as r,Ua as i,Wa as a}from"./Stream-mUTFnSY9.js";import{Fn as o,H as s,In as c,J as l,Mn as u,Nt as d,On as f,Ot as p,Tn as m,a as h,bt as g,cn as _,er as v,gn as y,hn as b,i as x,jn as S,kn as C,pn as w,sn as T,v as ee,vn as E,vt as te,wt as ne,yn as re}from"./src-e9jwz4Nc.js";import{A as ie,F as ae,L as oe,M as D,N as se,P as ce,a as le,c as ue,d as de,l as fe,n as pe,s as me,u as he}from"./cmmdAuthRedirect-Cpw3QgrC.js";import{t as ge}from"./utils-MX9zGa4a.js";import{t as _e}from"./preload-helper-Czpn1I53.js";import{t as ve}from"./react-D4GEJ3ir.js";import{n as O,t as ye}from"./transport-CgH8pQK3.js";import{t as be}from"./debouncer-BEV7Iuwb.js";var k=t(a(),1),xe=typeof window<`u`&&(window.desktopBridge!==void 0||window.nativeApi!==void 0);function Se(e){return{id:e.id??`ws:${e.label}`,label:e.label,source:e.source??`manual`,target:e.target}}function Ce(e){return e?.target.wsBaseUrl??null}function we(e){return e?.target.httpBaseUrl??null}function Te(e,t){return{...e,environmentId:t.environmentId,label:t.label}}function Ee(e){return e.cloudMode?`cmmd-cloud-runtime`:`local-web`}function eee(e){let t=Ee(e);return{topology:t,controlPlane:t!==`cmmd-cloud-runtime`,executionPlane:!0,workspaceProxy:!1}}function tee(e){let t=e.topology===`cmmd-cloud-runtime`;return{cmmd:!0,ownerBootstrapPromotion:e.topology!==`cloud-shell`&&!t,bearerBootstrap:!0,desktopBootstrap:e.topology===`desktop-local`,providerCredentialBroker:e.topology===`cmmd-control-plane`}}function De(e){let t=e.executionPlane;return{agents:t,browser:t,github:t,terminal:t,providerEgress:e.topology===`cmmd-control-plane`}}function Oe(e,t){return{localProjects:t.executionPlane,cloudProjects:e.cloudMode}}function ke(e){let t=e.capabilities,n=t.runtime??eee(t);return{repositoryIdentity:t.repositoryIdentity,pullRequests:t.pullRequests??!1,cloudMode:t.cloudMode,posthogPublicKey:t.posthogPublicKey,posthogHost:t.posthogHost,runtime:n,auth:t.auth??tee(n),tools:t.tools??De(n),projects:t.projects??Oe(t,n)}}function Ae(e){return e?ke(e).projects.cloudProjects:!1}function je(e){return e?ke(e).runtime.workspaceProxy??!1:!1}function Me(e,t){return{environmentId:e,projectId:t}}function Ne(e,t){return{environmentId:e,threadId:t}}var Pe=`scoped:v1:`;function Fe(e){let t=`projectId`in e?e.projectId:e.threadId;return t.includes(`:`)||e.environmentId.startsWith(Pe)?`${Pe}${encodeURIComponent(e.environmentId)}:${encodeURIComponent(t)}`:`${e.environmentId}:${t}`}function nee(e){return Fe(e)}function ree(e){return Fe(e)}function Ie(e){let t=e.slice(10),n=t.indexOf(`:`);if(n<=0||n>=t.length-1||t.indexOf(`:`,n+1)!==-1)return null;try{let e=decodeURIComponent(t.slice(0,n)),r=decodeURIComponent(t.slice(n+1));return e.length>0&&r.length>0?{environmentId:e,localId:r}:null}catch{return null}}function Le(e){if(e.startsWith(Pe))return Ie(e);let t=e.lastIndexOf(`:`);return t<=0||t>=e.length-1?null:{environmentId:e.slice(0,t),localId:e.slice(t+1)}}function Re(e){let t=Le(e);return t?{environmentId:t.environmentId,projectId:t.localId}:null}function ze(e){let t=Le(e);return t?{environmentId:t.environmentId,threadId:t.localId}:null}var Be=n();function Ve(e){return e.stageLabel.trim().toLowerCase()===`latest`?e.baseName:`${e.baseName} (${e.stageLabel})`}var He=`Forge`,Ue=``,We=Ue===`latest`||Ue===`nightly`?Ue:null,Ge=We===`nightly`?`Nightly`:We===`latest`?`Latest`:null,Ke=Ge??`Alpha`,qe=Ge?Ve({baseName:He,stageLabel:Ke}):He,iee=`0.13.4`,Je=ge(`forge-app-top-bar drag-region @container/header-actions relative z-20 w-full min-w-0 shrink-0 bg-background`,`grid grid-cols-[minmax(0,1fr)_minmax(0,auto)] items-center`),Ye=`flex h-full min-w-0 items-center gap-1 md:gap-1.5`,Xe=`flex h-touch min-w-0 max-w-full touch-manipulation items-center justify-center rounded-lg px-3 text-foreground transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring md:h-7 md:px-2`,aee={width:`calc(100% - var(--forge-right-panel-reserved-width, 0px))`},Ze=`forge-app-shell flex w-full min-w-0 flex-row`,Qe=`forge-app-shell flex w-full min-w-0 flex-col`,$e=`flex min-h-0 min-w-0 flex-1 flex-col`,et=`relative flex h-[var(--forge-content-height)] min-h-0 min-w-0 flex-1 overflow-hidden`,tt=i();function nt(e){let t=(0,Be.c)(19),{showStageBadge:n,tone:r,variant:i}=e,a=n!==void 0&&n,o=r===void 0?`default`:r,s=(i===void 0?`default`:i)===`auth`,c=s?20:16,l=s?`h-5 w-5 shrink-0`:`h-4 w-4 shrink-0`,u;t[0]!==c||t[1]!==l?(u=(0,tt.jsx)(`img`,{className:l,src:`/forge-mark.svg`,width:c,height:c,alt:``,"aria-hidden":`true`}),t[0]=c,t[1]=l,t[2]=u):u=t[2];let d=u,f=s?`text-[15px] sm:text-base`:`text-sm`,p=o===`on-dark`?`text-primary-foreground`:`text-foreground`,m;t[3]!==f||t[4]!==p?(m=ge(`truncate font-semibold tracking-tight`,f,p),t[3]=f,t[4]=p,t[5]=m):m=t[5];let h;t[6]===m?h=t[7]:(h=(0,tt.jsx)(`span`,{className:m,children:He}),t[6]=m,t[7]=h);let g=h,_=s?`rounded-full bg-muted/50 px-2 py-0.5 text-[9px] leading-none font-medium tracking-[0.14em] text-muted-foreground/70 uppercase [text-indent:0.14em]`:`rounded-full bg-muted/50 px-1.5 py-0.5 text-[8px] leading-none font-medium tracking-[0.18em] text-muted-foreground/60 uppercase [text-indent:0.18em]`,v;t[8]===_?v=t[9]:(v=(0,tt.jsx)(`span`,{className:_,children:Ke}),t[8]=_,t[9]=v);let y=v;if(a){let e;t[10]!==d||t[11]!==g?(e=(0,tt.jsxs)(`span`,{className:`flex items-center gap-2`,children:[d,g]}),t[10]=d,t[11]=g,t[12]=e):e=t[12];let n;return t[13]!==y||t[14]!==e?(n=(0,tt.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-md`,"aria-label":qe,children:[e,y]}),t[13]=y,t[14]=e,t[15]=n):n=t[15],n}let b;return t[16]!==d||t[17]!==g?(b=(0,tt.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5`,"aria-label":qe,children:[d,g]}),t[16]=d,t[17]=g,t[18]=b):b=t[18],b}function rt(e){let t=(0,Be.c)(5),{className:n}=e,r;t[0]===n?r=t[1]:(r=ge(`pointer-events-none flex select-none items-center`,n),t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,tt.jsx)(nt,{}),t[2]=i):i=t[2];let a;return t[3]===r?a=t[4]:(a=(0,tt.jsx)(`div`,{className:r,children:i}),t[3]=r,t[4]=a),a}function it(){let e=new Map;return{clear:()=>e.clear(),getItem:t=>e.get(t)??null,key:t=>Array.from(e.keys()).at(t)??null,get length(){return e.size},removeItem:t=>e.delete(t),setItem:(t,n)=>e.set(t,n)}}var at=typeof window<`u`?window.localStorage:it(),ot=(e,t)=>m(u(e))(t),st=(e,t)=>S(u(e))(t),ct=(e,t)=>{let n=at.getItem(e);return n?ot(t,n):null},lt=(e,t,n)=>{let r=st(n,t);at.setItem(e,r)},ut=e=>{at.removeItem(e)},dt=`forge:local_storage_change`;function ft(e){typeof window>`u`||window.dispatchEvent(new CustomEvent(dt,{detail:{key:e}}))}function pt(e,t,n){let[r,i]=(0,k.useState)(()=>{try{return ct(e,n)??t}catch(e){return console.error(`[LOCALSTORAGE] Error:`,e),t}}),a=(0,k.useCallback)(t=>{i(r=>{try{let i=typeof t==`function`?t(r):t;return i===null?ut(e):lt(e,i,n),queueMicrotask(()=>ft(e)),i}catch(e){return console.error(`[LOCALSTORAGE] Error:`,e),r}})},[e,n]),o=(0,k.useRef)(e);return(0,k.useEffect)(()=>{if(o.current!==e){o.current=e;try{let r=ct(e,n);i(r??t)}catch(e){console.error(`[LOCALSTORAGE] Error:`,e)}}},[e,t,n]),(0,k.useEffect)(()=>{let r=()=>{try{let r=ct(e,n);i(r??t)}catch(e){console.error(`[LOCALSTORAGE] Error:`,e)}},a=t=>{t.key===e&&r()},o=t=>{t.detail.key===e&&r()};return window.addEventListener(`storage`,a),window.addEventListener(dt,o),()=>{window.removeEventListener(`storage`,a),window.removeEventListener(dt,o)}},[e,t,n]),[r,a]}var mt=`cmmd-runtime:`;function ht(e){return`${mt}${e}`}var gt=`cmmd-cloud-project:`,_t=/^env_[0-9a-f]{32}$/,vt=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,yt={shape:`local`,isCloud:!1,legacyRuntimeId:null},oee={shape:`cloud-project-placeholder`,isCloud:!0,legacyRuntimeId:null},see={shape:`durable-environment`,isCloud:!0,legacyRuntimeId:null};function bt(e){if(typeof e!=`string`)return yt;if(e.startsWith(`cmmd-runtime:`)){let t=e.slice(mt.length);return vt.test(t)?{shape:`legacy-runtime`,isCloud:!0,legacyRuntimeId:t}:yt}return e.startsWith(`cmmd-cloud-project:`)?oee:_t.test(e)?see:yt}var xt=`forge:client-settings:v1`,cee=`forge:saved-environment-registry:v1`,lee=re({environmentId:p,label:E,httpBaseUrl:E,wsBaseUrl:E,createdAt:E,lastConnectedAt:b(E),cmmdOrganizationId:c(E),cmmdProjectId:c(E),runtimeId:c(E),runtimeTicketExpiresAt:c(E),lastAuthenticatedPullRequestCapability:c(_),bearerToken:c(E)}),St=re({version:c(y),records:c(T(lee))});function Ct(){return typeof window<`u`}var uee={uiFontSize:14,codeFontSize:15},dee=[[`uiFontSize`,11,20],[`codeFontSize`,11,20]];function fee(e){return e.defaultThreadRuntime===`desktop-cloud-bridge`?{...e,defaultThreadRuntime:`cloud`}:null}function pee(e){if(typeof e.fontDefaultsVersion==`number`)return null;let t=Object.entries(uee).filter(([t,n])=>e[t]===n);if(t.length===0)return null;let n={...e};for(let[e]of t)delete n[e];return n}function mee(e){let t=dee.flatMap(([t,n,r])=>{let i=e[t];if(typeof i!=`number`||!Number.isFinite(i))return[];let a=Math.min(r,Math.max(n,Math.round(i)));return a===i?[]:[[t,a]]});if(t.length===0)return null;let n={...e};for(let[e,r]of t)n[e]=r;return n}function wt(e){if(!e||typeof e!=`object`)return e;let t=e,n=!1;for(let e of[fee,pee,mee]){let r=e(t);r!==null&&(t=r,n=!0)}return n?t:e}function hee(){if(!Ct())return null;try{let e=window.localStorage.getItem(xt);return e?C(ee)(wt(JSON.parse(e))):null}catch{return null}}function gee(e){Ct()&<(xt,e,ee)}function Tt(){if(!Ct())return{};try{return ct(`forge:saved-environment-registry:v1`,St)??{}}catch{return{}}}function Et(e){Ct()&<(cee,e,St)}function Dt(){return Tt().records??[]}function Ot(e){Et({version:1,records:e})}function kt(){return Dt().map(e=>s(e))}function At(e){let t=new Map(Dt().map(e=>[e.environmentId,e]));Ot(e.map(e=>{let n=bt(e.environmentId).legacyRuntimeId===null?t.get(e.environmentId)?.bearerToken:void 0;return n?{...s(e),bearerToken:n}:s(e)}))}function jt(e){return Dt().find(t=>t.environmentId===e)?.bearerToken??null}function Mt(e,t){let n=Tt(),r=n.records??[],i=!1;return Et({version:n.version??1,records:r.map(n=>n.environmentId===e?(i=!0,Object.assign(s(n),{bearerToken:t})):n)}),i}function Nt(e){let t=Tt();Et({version:t.version??1,records:(t.records??[]).map(t=>t.environmentId===e?s(t):t)})}var Pt=C(ee);function Ft(){return typeof window>`u`?void 0:window.desktopBridge}function It(e){let t=Ft(),n=t?.[e];return typeof n==`function`?n.bind(t):null}async function Lt(){let e=It(`getClientSettings`);if(e){let t=await e();return t?Pt(t):null}return hee()}async function Rt(e){let t=It(`setClientSettings`);if(t)return t(e);gee(e)}async function zt(){let e=It(`getSavedEnvironmentRegistry`);return e?e():kt()}async function Bt(e){let t=It(`setSavedEnvironmentRegistry`);if(t)return t(e);At(e)}async function Vt(e){let t=It(`getSavedEnvironmentSecret`);return t?t(e):jt(e)}async function Ht(e,t){let n=It(`setSavedEnvironmentSecret`);return n?n(e,t):Mt(e,t)}async function Ut(e){let t=It(`removeSavedEnvironmentSecret`);if(t)return t(e);Nt(e)}var Wt=`token`;function Gt(e){return new URLSearchParams(e.hash.startsWith(`#`)?e.hash.slice(1):e.hash)}function Kt(e){let t=Gt(e).get(Wt)?.trim()??``;if(t.length>0)return t;let n=e.searchParams.get(Wt)?.trim()??``;return n.length>0?n:null}function qt(e){let t=new URL(e.toString()),n=Gt(t);return n.has(Wt)&&(n.delete(Wt),t.hash=n.toString()),t.searchParams.delete(Wt),t}function Jt(e,t){let n=new URL(e.toString());return n.searchParams.delete(Wt),n.hash=new URLSearchParams([[Wt,t]]).toString(),n}function Yt(e,t){let n=new URL(e);return n.pathname=`/login`,Jt(n,t).toString()}function Xt(e){return Jt(new URL(`/login`,window.location.href),e).toString()}var Zt=`host`;function Qt(e){let t=new URL(e),n=Kt(t),r=new URL(`forge:///pair`);return r.searchParams.set(Zt,t.origin),n&&r.searchParams.set(Wt,n),r.toString()}var $t=`/api/cmmd/auth-runtime`;function en(e){return O({method:`POST`,path:$t},e)}function tn(e){return O({method:`GET`,path:$t},e)}function nn(e){return O({method:`DELETE`,path:$t},e)}function rn(e){return O({method:`POST`,path:`${$t}/connect`},e)}function an(e,t){return O({method:`GET`,path:`/api/cmmd/billing`,...t?.organizationId===void 0?{}:{query:{orgId:t.organizationId}}},e)}function on(e,t){return O({method:`GET`,path:`/api/cmmd/billing/series`,query:{timeZone:t.timeZone}},e)}function sn(e,t){return O({method:`GET`,path:`/api/cmmd/bootstrap`,...t?.organizationId===void 0?{}:{query:{orgId:t.organizationId}}},e)}var cn=`/api/cmmd/providers/codex/credential`,ln=`/api/cmmd/providers/claude/credential`;function un(e){return O({method:`GET`,path:cn},e)}function dn(e){return O({method:`DELETE`,path:cn},e)}function fn(e){return O({method:`GET`,path:ln},e)}function pn(e){return O({method:`DELETE`,path:ln},e)}function mn(e,t){return O({method:`DELETE`,path:`/api/cmmd/providers/accounts/${encodeURIComponent(String(t))}`},e)}function hn(e,t,n){return`/api/cmmd/threads/${encodeURIComponent(e)}/${encodeURIComponent(t)}/${encodeURIComponent(n)}/disposition`}function gn(e,t,n,r,i){return O({method:`PUT`,path:hn(t,n,r),body:i},e)}function _n(e){return(t,n,r,i)=>gn(e,t,n,r,i)}function vn(e,t=``){return`/api/cmmd/thread-attachments/${encodeURIComponent(e)}${t}`}function yn(e){return{async listThreadAttachments(t){return O({method:`GET`,path:vn(t)},e)},async uploadThreadAttachment(t,n,r,i){let a=new FormData;return a.append(`file`,n),r!==void 0&&a.append(`attachmentId`,r),O({method:`POST`,path:vn(t),form:a,...i===void 0?{}:{signal:i}},e)},async getThreadAttachmentDownloadUrl(t,n){return O({method:`GET`,path:vn(t,`/${encodeURIComponent(n)}/download`)},e)},async deleteThreadAttachment(t,n){await O({method:`DELETE`,path:vn(t,`/${encodeURIComponent(n)}`)},e)}}}var bn=class extends Error{constructor(e){super(e),this.name=`CmmdApiAuthError`}},xn=class extends Error{status;constructor(e,t){super(e),this.name=`CmmdApiServerError`,this.status=t}};async function Sn(e){try{return await e}catch(e){throw e instanceof ye?e.kind===`auth`?new bn(e.message):new xn(e.message,e.status??502):e}}function Cn(e,t,n){return`/api/cmmd/threads/${encodeURIComponent(e)}/${encodeURIComponent(t)}/${encodeURIComponent(n)}/archive`}function wn(e,t,n,r,i){return O({method:`POST`,path:Cn(t,n,r),body:i},e)}function Tn(e){return(t,n,r,i)=>wn(e,t,n,r,i)}function En(e){return typeof e==`object`&&!!e&&`status`in e&&e.status===409}async function Dn(e){let t={action:e.action,...e.operationId===void 0?{}:{operationId:e.operationId},expectedRevision:e.expectedRevision,force:e.force};try{return await e.submit(t)}catch(n){if(!En(n))throw n;let r=await e.refresh();return e.submit({...t,expectedRevision:r.revision})}}function On(e){return{getForgeAccountPreferences:()=>O({method:`GET`,path:`/api/cmmd/account/preferences`},e),updateForgeAccountPreferences:t=>O({method:`PATCH`,path:`/api/cmmd/account/preferences`,body:t},e),getUserSettings:t=>O({method:`GET`,path:`/api/cmmd/user/settings/${t}`},e),putUserSettings:(t,n)=>O({method:`PUT`,path:`/api/cmmd/user/settings/${t}`,body:n},e)}}function kn(e,t,n){return O({method:`POST`,path:`/api/cmmd/forge-runtimes/${encodeURIComponent(t)}/rename`,body:{displayName:n}},e)}function An(e,t,n){return O({method:`POST`,path:`/api/cmmd/devices/${encodeURIComponent(String(t))}/rename`,body:{displayName:n}},e)}function jn(e,t){return O({method:`POST`,path:`/api/cmmd/devices/${encodeURIComponent(String(t))}/revoke`},e)}function Mn(e){return{...e?.projectId===void 0?{}:{projectId:String(e.projectId)},...e?.allWorkspaces===!0?{allWorkspaces:`true`}:{},...e?.organizationId===void 0?{}:{orgId:String(e.organizationId)}}}var Nn=`rt-demo`,Pn=`th-demo`,Fn=`example-project`,In=`example-conversation`,Ln=`2026-09-26T20:00:00.000Z`;function Rn(e,t){return e===Nn&&t===Pn}function zn(){return{runtime:{id:Nn,source:`forge-cloud`,runtimeKind:`cloud-vm`,displayName:`Example Forge Server`,status:`online`,endpointUrl:null,hostId:null,deviceId:null,workspaceRoot:null,githubRepoFullName:null,lastSeenAt:Ln,reachability:{status:`online`,lastReachableAt:Ln,source:`cloud-runtime`},metadata:null},inventoryStatus:`synced`,inventoryPublishedAt:Ln,projectCount:1,threadCount:1,projects:[{projectId:Fn,title:`Example project`,workspaceRoot:null,githubRepoFullName:null,branch:null,status:`active`,threadCount:1,lastActivityAt:Ln,metadata:null,publishedAt:Ln,updatedAt:Ln,threads:[{threadId:Pn,title:`Example thread (viewer check)`,status:`active`,model:null,provider:null,providerAccountId:null,branch:null,lastMessagePreview:null,lastActivityAt:Ln,kind:`master`,parentThreadId:null,workerRole:null,anchorKind:`scratch`,anchorCmmdId:null,archive:null,disposition:{manualDisposition:null,automaticDisposition:null,effectiveDisposition:null,revision:null,source:null},metadata:null,publishedAt:Ln,updatedAt:Ln}]}]}}function Bn(){return{conversationId:In,runtime:{id:Nn,source:`forge-cloud`,runtimeKind:`cloud-vm`,displayName:`Example Forge Server`,status:`online`,endpointUrl:null,deviceId:null,workspaceRoot:null,githubRepoFullName:null,lastSeenAt:Ln,metadata:null},project:{projectId:Fn,title:`Example project`,githubRepoFullName:null,branch:null},thread:{threadId:Pn,title:`Example thread (viewer check)`,status:`active`,model:null,provider:null,providerAccountId:null,branch:null,lastActivityAt:Ln,metadata:null},reachability:`online`,execution:{available:!0,reason:null},replication:null,events:[{sequence:1,eventId:`example-user-1`,kind:`user_message`,turnId:null,text:`This is an example chat thread for verifying the Forge embed viewer. It is not a live Work Session.`,status:null,occurredAt:`2026-09-26T19:58:00.000Z`},{sequence:2,eventId:`example-assistant-1`,kind:`assistant_message`,turnId:null,text:`Understood. You should see this reply in the iframe under CMMD /forge, with the composer still available below.`,status:null,occurredAt:`2026-09-26T19:59:00.000Z`},{sequence:3,eventId:`example-user-2`,kind:`user_message`,turnId:null,text:`Thanks. If these three turns render, the thread wire is working.`,status:null,occurredAt:Ln}]}}function Vn(e){return e.runtimes.some(e=>e.runtime.id===Nn)?{...e,runtimes:[...e.runtimes]}:{...e,runtimes:[...e.runtimes,zn()]}}function A(e,t){if(!e||typeof e!=`object`)return null;let n=e[t];return typeof n==`string`&&n.trim().length>0?n.trim():null}function _ee(e,t){if(!e||typeof e!=`object`)return null;let n=e[t];return typeof n==`boolean`?n:null}function Hn(e,t){if(!e||typeof e!=`object`)return null;let n=e[t];return typeof n==`string`&&n.trim().length>0?n.trim():typeof n==`number`&&Number.isFinite(n)?String(n):null}function Un(e){return{...e.limit===void 0?{}:{limit:e.limit},...e.cursor?{cursor:e.cursor}:{}}}var Wn=class extends Error{constructor(e){super(`CmmdApiClient.${e} is not implemented yet`),this.name=`CmmdApiNotImplementedError`}};function Gn(e,t){if(Array.isArray(e))return e;if(e&&typeof e==`object`){let n=e[t];if(Array.isArray(n))return n}return[]}function Kn(e,t){if(Array.isArray(e))return e;if(e&&typeof e==`object`){let n=e[t];if(Array.isArray(n))return n}return[]}function qn(e,t){let n={};return e?.organizationId&&(n.orgId=e.organizationId),t!==void 0&&(n.taskId=String(t)),Object.keys(n).length>0?n:void 0}function Jn(e){let t=`${A(e,`firstName`)??``} ${A(e,`lastName`)??``}`.trim()||A(e,`username`)||A(e,`email`)||`Unknown`;return{id:Hn(e,`userId`)??Hn(e,`id`)??t,name:t,email:A(e,`email`),role:A(e,`role`),avatarUrl:A(e,`profileImage`)??A(e,`avatar`)}}function vee(e){let t=Xn(e,`user`)??e;return Jn({...typeof t==`object`&&t?t:{},userId:Hn(e,`userId`)??Hn(t,`id`),role:A(e,`role`)})}function Yn(e){let t=A(e,`authorFirstName`)??``,n=A(e,`authorLastName`)??``,r=A(e,`status`),i=r===`at_risk`||r===`off_track`||r===`complete`?r:`on_track`;return{id:Hn(e,`id`)??``,status:i,body:A(e,`body`)??``,authorName:`${t} ${n}`.trim()||null,authorAvatarUrl:A(e,`authorProfileImage`)??null,createdAt:A(e,`createdAt`)??``,updatedAt:A(e,`updatedAt`)??A(e,`createdAt`)??``,canEdit:_ee(e,`canEdit`)??!1}}function yee(e,t,n){let r=Array.isArray(e.data)?e.data.map(Yn):[];return{updates:r,pagination:e.pagination??{page:t,limit:n,total:r.length,hasMore:!1}}}function Xn(e,t){if(!e||typeof e!=`object`)return null;let n=e[t];return n&&typeof n==`object`?n:null}var bee=[`avatarUrl`,`avatar_url`,`profileImage`,`profile_image`,`profileImageUrl`,`profile_image_url`,`image`,`imageUrl`,`image_url`,`picture`];function Zn(e,t){let n=Xn(e,t);if(!n)return null;for(let e of bee){let t=A(n,e);if(t)return t}return null}function Qn(e,t){let n=Xn(e,t);return n?Hn(n,`id`):null}function $n(e,t){return!!(e&&typeof e==`object`&&Object.hasOwn(e,t))}function xee(e){let t={...e,id:Hn(e,`id`)??e.id,title:e.title??A(e,`name`)??``},n=Hn(e,`workspaceId`)??Hn(e,`workspace_id`)??Qn(e,`workspace`)??e.workspaceId??null;return n!==null||$n(e,`workspaceId`)?{...t,workspaceId:n,startDate:e.startDate??A(e,`start_date`)??null,endDate:e.endDate??A(e,`end_date`)??null}:t}function er(e){let t=e.ownerAvatarUrl??A(e,`owner_avatar_url`)??A(e,`ownerProfileImage`)??A(e,`owner_profile_image`)??A(e,`ownerImage`)??A(e,`owner_image`)??A(e,`ownerImageUrl`)??A(e,`owner_image_url`)??A(e,`createdByAvatarUrl`)??A(e,`created_by_avatar_url`)??A(e,`createdByProfileImage`)??A(e,`created_by_profile_image`)??Zn(e,`owner`)??Zn(e,`createdBy`)??Zn(e,`created_by`)??null,n={...e,id:Hn(e,`id`)??e.id},r=Hn(e,`campaignId`)??Hn(e,`campaign_id`)??Qn(e,`campaign`)??e.campaignId??null;(r!==null||$n(e,`campaignId`))&&(n.campaignId=r);let i=e.campaignTitle??A(e,`campaignTitle`)??A(e,`campaign_title`)??A(Xn(e,`campaign`),`title`)??A(Xn(e,`campaign`),`name`)??null;(i!==null||$n(e,`campaignTitle`))&&(n.campaignTitle=i);let a=Hn(e,`workspaceId`)??Hn(e,`workspace_id`)??Qn(e,`workspace`)??e.workspaceId??null;(a!==null||$n(e,`workspaceId`))&&(n.workspaceId=a);let o=e.workspaceName??A(e,`workspace_name`)??A(Xn(e,`workspace`),`name`)??null;(o!==null||$n(e,`workspaceName`))&&(n.workspaceName=o);let s=A(e,`workspaceIconUrl`)??A(e,`workspace_icon_url`)??A(Xn(e,`workspace`),`iconUrl`)??null;(s!==null||$n(e,`workspaceIconUrl`))&&(n.workspaceIconUrl=s);let c=Hn(e,`ownerId`)??Hn(e,`owner_id`)??Qn(e,`owner`)??e.ownerId??null;(c!==null||$n(e,`ownerId`))&&(n.ownerId=c);let l=e.ownerName??A(e,`owner_name`)??A(Xn(e,`owner`),`name`)??null;(l!==null||$n(e,`ownerName`))&&(n.ownerName=l),(t!==null||$n(e,`ownerAvatarUrl`))&&(n.ownerAvatarUrl=t);let u=Hn(e,`teamId`)??Hn(e,`team_id`)??Qn(e,`team`)??e.teamId??null;(u!==null||$n(e,`teamId`))&&(n.teamId=u);let d=e.teamName??A(e,`team_name`)??A(Xn(e,`team`),`name`)??null;(d!==null||$n(e,`teamName`))&&(n.teamName=d);let f=e.startDate??A(e,`start_date`)??null;(f!==null||$n(e,`startDate`))&&(n.startDate=f);let p=e.targetEndDate??A(e,`target_end_date`)??null;return(p!==null||$n(e,`targetEndDate`))&&(n.targetEndDate=p),n}function tr(e){if(Array.isArray(e))return e;if(e&&typeof e==`object`){let t=e;if(Array.isArray(t.items))return t.items;if(Array.isArray(t.results))return t.results}return[]}function See(e){return tr(e).flatMap(e=>{let t=e,n=typeof t.id==`number`?t.id:null,r=typeof t.name==`string`?t.name:null;if(n===null||r===null)return[];let i=e=>typeof t[e]==`string`?t[e]:null;return[{id:n,name:r,startDate:i(`startDate`),endDate:i(`endDate`),status:i(`status`)}]})}function Cee(e){if(e&&typeof e==`object`){let t=e;if(t.project&&typeof t.project==`object`)return t.project}return e}function nr(e){if(e===null||e.trim()===``)return null;let t=Number(e);return Number.isSafeInteger(t)?t:e}var rr=class e{cfg;putThreadDisposition;listThreadAttachments;uploadThreadAttachment;getThreadAttachmentDownloadUrl;deleteThreadAttachment;postThreadArchive;getForgeAccountPreferences;updateForgeAccountPreferences;getUserSettings;putUserSettings;commentEditIdempotencyKeys=new Map;commentDeleteIdempotencyKeys=new Map;constructor(e={}){let t=e.forgeOrigin===void 0,n=e.forgeOrigin??`http://localhost:13773`;this.cfg={resolveUrl:t?ae:e=>`${n}${e}`,maxRetries:e.maxRetries??3,onAuthExpired:e.onAuthExpired??pe,...t?{resolveBearerToken:()=>ce()?.bearerToken??null}:{}},this.putThreadDisposition=_n(this.cfg);let r=yn(this.cfg);this.listThreadAttachments=r.listThreadAttachments,this.uploadThreadAttachment=r.uploadThreadAttachment,this.getThreadAttachmentDownloadUrl=r.getThreadAttachmentDownloadUrl,this.deleteThreadAttachment=r.deleteThreadAttachment,this.postThreadArchive=Tn(this.cfg);let i=On(this.cfg);this.getForgeAccountPreferences=i.getForgeAccountPreferences,this.updateForgeAccountPreferences=i.updateForgeAccountPreferences,this.getUserSettings=i.getUserSettings,this.putUserSettings=i.putUserSettings}async getTask(e){return Sn(O({method:`GET`,path:`/api/cmmd/tasks/${e}`},this.cfg))}async getForgeTaskDetail(e){return O({method:`GET`,path:`/api/cmmd/tasks/${e}`},this.cfg)}async searchTasks(e){let t={q:e.q};return e.status&&(t.status=e.status),e.limit!==void 0&&(t.limit=e.limit),e.projectId&&(t.projectId=e.projectId),(await Sn(O({method:`GET`,path:`/api/cmmd/tasks/search`,query:t},this.cfg))).tasks??[]}async getTaskComments(e){return(await Sn(O({method:`GET`,path:`/api/cmmd/tasks/${e}/comments`},this.cfg))).comments??[]}async listProjectTaskComments(e){return(await Sn(O({method:`GET`,path:`/api/cmmd/tasks/${e}/comments`},this.cfg))).comments??[]}async createProjectTaskComment(e,t){return(await Sn(O({method:`POST`,path:`/api/cmmd/tasks/comment`,body:{taskId:e,content:t.content}},this.cfg))).details}async updateProjectTaskComment(e,t,n){return(await Sn(O({method:`PATCH`,path:`/api/cmmd/tasks/${e}/comments/${encodeURIComponent(t)}`,body:n},this.cfg))).comment}async deleteProjectTaskComment(e,t,n){return Sn(O({method:`DELETE`,path:`/api/cmmd/tasks/${e}/comments/${encodeURIComponent(t)}`,body:n},this.cfg))}async getTaskAttachments(e){return Sn(O({method:`GET`,path:`/api/cmmd/tasks/${e}/attachments`},this.cfg))}async getProjectRepository(e){return Sn(O({method:`GET`,path:`/api/cmmd/projects/${e}/repository`},this.cfg))}async listProjectRepositories(e){return(await Sn(O({method:`GET`,path:`/api/cmmd/projects/${e}/repositories`},this.cfg))).repositories}async getWorkspaceMembers(e){return Sn(O({method:`GET`,path:`/api/cmmd/organizations/${e}/members`},this.cfg))}async getWebSocketToken(e){return O({method:`GET`,path:`/api/cmmd/ws-token`,...e?.signal===void 0?{}:{signal:e.signal}},this.cfg)}async getProjectComments(e,t){let n={};return t?.organizationId&&(n.organizationId=t.organizationId),(await O({method:`GET`,path:`/api/cmmd/projects/${e}/comments`,query:n},this.cfg))?.comments??[]}async getProjectLink(e){return O({method:`GET`,path:`/.well-known/forge/project-link`,query:{environmentId:e.environmentId,projectId:e.projectId,cwd:e.cwd}},this.cfg)}async listProjectLinks(){return O({method:`GET`,path:`/.well-known/forge/project-links`,suppressBearerToken:!0},this.cfg)}async listProjectContextLinks(e){let t={};e.environmentId&&(t.forgeEnvironmentId=e.environmentId),e.projectId&&(t.forgeProjectId=e.projectId),e.githubRepoFullName&&(t.githubRepoFullName=e.githubRepoFullName),e.cmmdOrganizationId&&(t.cmmdOrganizationId=e.cmmdOrganizationId);let n=await O({method:`GET`,path:`/.well-known/forge/cmmd/project-links`,query:t},this.cfg),r=f(l)(n);return r._tag===`Some`?r.value.links:[]}async listCmmdWorkspaces(){return tr(await O({method:`GET`,path:`/.well-known/forge/cmmd/workspaces`},this.cfg))}async listCmmdCampaigns(e){return See(await O({method:`GET`,path:`/.well-known/forge/cmmd/campaigns`,query:{workspaceId:e.workspaceId}},this.cfg))}async listCmmdProjects(e){return tr(await O({method:`GET`,path:`/.well-known/forge/cmmd/projects`,query:{campaignId:e.campaignId}},this.cfg))}async updateTask(e,t){let n={taskId:e};return t.title!==void 0&&(n.title=t.title),t.description!==void 0&&(n.description=t.description),t.status!==void 0&&(n.status=t.status),t.priority!==void 0&&(n.priority=t.priority),t.dueDate!==void 0&&(n.dueDate=t.dueDate),t.assigneeId!==void 0&&(n.assigneeId=t.assigneeId),t.labels!==void 0&&(n.labels=t.labels),Sn(O({method:`POST`,path:`/api/cmmd/tasks/update`,body:n},this.cfg))}async createComment(e){return Sn(O({method:`POST`,path:`/api/cmmd/tasks/comment`,body:{taskId:e.entityId,content:e.content}},this.cfg))}async updateComment(e,t,n){let r=`${e}:${t}:${n}`,i=this.commentEditIdempotencyKeys.get(r)??crypto.randomUUID();this.commentEditIdempotencyKeys.set(r,i);let a=await Sn(O({method:`PATCH`,path:`/api/cmmd/tasks/${e}/comments/${t}`,body:{content:n,idempotencyKey:i}},this.cfg));return this.commentEditIdempotencyKeys.delete(r),a}async deleteComment(e,t){let n=`${e}:${t}`,r=this.commentDeleteIdempotencyKeys.get(n)??crypto.randomUUID();this.commentDeleteIdempotencyKeys.set(n,r),await Sn(O({method:`DELETE`,path:`/api/cmmd/tasks/${e}/comments/${t}`,body:{idempotencyKey:r}},this.cfg)),this.commentDeleteIdempotencyKeys.delete(n)}async createProjectComment(e,t){let n=(await O({method:`POST`,path:`/api/cmmd/projects/${e}/comments`,body:{content:t.content,organizationId:t.organizationId??null}},this.cfg))?.comment;if(!n)throw new ye({kind:`server`,message:`CMMD did not return the created project comment.`});return n}async updateProject(e,t){let n={};for(let e of h){let r=t[e];r!==void 0&&(n[e]=x[e]===`nullableId`?nr(r):r)}await O({method:`PATCH`,path:`/api/cmmd/projects/${e}`,body:n},this.cfg)}async setProjectLink(e){await O({method:`POST`,path:`/.well-known/forge/project-link`,body:e},this.cfg)}async deleteProjectLink(e){await O({method:`DELETE`,path:`/.well-known/forge/project-link`,query:{environmentId:e.environmentId,projectId:e.projectId,cwd:e.cwd,...e.cmmdProjectId?{cmmdProjectId:e.cmmdProjectId}:{}}},this.cfg)}async createCmmdProject(e){return O({method:`POST`,path:`/.well-known/forge/cmmd/projects`,body:e},this.cfg)}async ensureGitHubProjectContext(e){return O({method:`POST`,path:`/.well-known/forge/cmmd/github-project-contexts/ensure`,body:e},this.cfg)}async createBrainDoc(e){return O({method:`POST`,path:`/api/cmmd/brain-docs`,body:e},this.cfg)}async uploadTaskAttachment(e,t){let n=new FormData;return n.append(`file`,t),Sn(O({method:`POST`,path:`/api/cmmd/tasks/${e}/attachments`,form:n},this.cfg))}async archiveTask(e){await O({method:`POST`,path:`/api/cmmd/tasks/${e}/archive`},this.cfg)}async unarchiveTask(e){await O({method:`POST`,path:`/api/cmmd/tasks/${e}/unarchive`},this.cfg)}async getProfile(){return O({method:`GET`,path:`/api/cmmd/profile`},this.cfg)}async getUsageSummary(e){return O({method:`GET`,path:`/api/cmmd/usage/summary`,query:{sinceDay:e.sinceDay,untilDay:e.untilDay,timeZone:e.timeZone,...e.resolution===`hour`?{resolution:e.resolution,sinceTime:e.sinceTime,untilTime:e.untilTime}:{}}},this.cfg)}getBilling(e){return an(this.cfg,e)}getBillingSeries(e){return on(this.cfg,e)}getBootstrap(e){return sn(this.cfg,e)}async getOrgProviderPolicy(){return O({method:`GET`,path:`/api/cmmd/org/provider-policy`},this.cfg)}async listSavedDataViews(e){return O({method:`GET`,path:`/api/cmmd/saved-views`,query:{surface:e.surface,projectId:e.projectId}},this.cfg)}async createSavedDataView(e){return O({method:`POST`,path:`/api/cmmd/saved-views`,body:e},this.cfg)}async importSavedDataView(e){return O({method:`POST`,path:`/api/cmmd/saved-views/import`,body:e},this.cfg)}async updateSavedDataView(e,t){return O({method:`PATCH`,path:`/api/cmmd/saved-views/${encodeURIComponent(e)}`,body:t},this.cfg)}async deleteSavedDataView(e,t){return O({method:`DELETE`,path:`/api/cmmd/saved-views/${encodeURIComponent(e)}`,query:t},this.cfg)}async getDeviceRegistry(e){return O({method:`GET`,path:`/api/cmmd/devices`,...e?.projectId===void 0?{}:{query:{projectId:String(e.projectId)}},...e?.signal===void 0?{}:{signal:e.signal}},this.cfg)}async registerDevice(e){return O({method:`POST`,path:`/api/cmmd/devices/register`,body:e},this.cfg)}async grantRuntimeAccess(e,t){return O({method:`POST`,path:`/api/cmmd/devices/runtimes/${encodeURIComponent(e)}/access-grants`,body:t},this.cfg)}async revokeRuntimeAccess(e,t){return O({method:`POST`,path:`/api/cmmd/devices/runtimes/${encodeURIComponent(e)}/access-grants/${encodeURIComponent(String(t))}/revoke`},this.cfg)}async issueRelayControlRoute(e,t){return O({method:`POST`,path:`/api/cmmd/devices/runtimes/${encodeURIComponent(e)}/relay-routes`,body:t},this.cfg)}async issueRelayActionGrant(e,t){return O({method:`POST`,path:`/api/cmmd/devices/runtimes/${encodeURIComponent(e)}/relay-action-grants`,body:t},this.cfg)}async getRuntimeInventory(e){let t=Mn(e);return Vn(await O({method:`GET`,path:`/api/cmmd/runtime-inventory`,...Object.keys(t).length>0?{query:t}:{}},this.cfg))}async getRuntimeDiagnostics(e){return O({method:`GET`,path:`/api/cmmd/runtime-diagnostics/v2/runtimes/${encodeURIComponent(e)}`},this.cfg)}async getCloudProjectLifecyclePreflight(e){return(await O({method:`GET`,path:`/api/cmmd/forge-cloud-projects/${encodeURIComponent(String(e))}/lifecycle-preflight`},this.cfg)).preflight}async replaceRuntimeInventory(e,t){return O({method:`PUT`,path:`/api/cmmd/devices/runtimes/${encodeURIComponent(e)}/inventory`,body:t},this.cfg)}static PROVIDER_ACCOUNTS_PATH=`/api/cmmd/providers/accounts`;static PROVIDER_USAGE_PATH=`/api/cmmd/providers/usage`;static PROVIDER_USAGE_REFRESH_PATH=`/api/cmmd/providers/usage/refresh`;provisionAuthRuntime(){return en(this.cfg)}getAuthRuntimeState(){return tn(this.cfg)}destroyAuthRuntime(){return nn(this.cfg)}connectAuthRuntime(){return rn(this.cfg)}getUserCodexCredential(){return un(this.cfg)}disconnectUserCodexCredential(){return dn(this.cfg)}getUserClaudeCredential(){return fn(this.cfg)}async getProviderAccounts(){return O({method:`GET`,path:e.PROVIDER_ACCOUNTS_PATH},this.cfg)}async removeLinkedProviderAccount(e){return mn(this.cfg,e)}async setProviderAccountDefault(t){return O({method:`PUT`,path:`${e.PROVIDER_ACCOUNTS_PATH}/default`,body:{provider:t.provider,provider_account_id:t.providerAccountId}},this.cfg)}async getProviderUsage(){return O({method:`GET`,path:e.PROVIDER_USAGE_PATH},this.cfg)}async refreshProviderUsage(t,n){return O({method:`POST`,path:e.PROVIDER_USAGE_REFRESH_PATH,body:{provider:t,providerAccountId:n}},this.cfg)}disconnectUserClaudeCredential(){return pn(this.cfg)}async getClaudeRuntimeReadiness(e){return O({method:`GET`,path:`/api/cmmd/providers/claude/runtime-readiness/${encodeURIComponent(e)}`},this.cfg)}async appendRuntimeThreadEvents(e,t,n){return O({method:`POST`,path:`/api/cmmd/devices/runtimes/${encodeURIComponent(e)}/threads/${encodeURIComponent(t)}/events`,body:n},this.cfg)}async getRuntimeThreadReplica(e,t){return Rn(e,t)?Bn():O({method:`GET`,path:`/api/cmmd/threads/${encodeURIComponent(e)}/${encodeURIComponent(t)}`},this.cfg)}renameCloudEnvironment(e,t){return kn(this.cfg,e,t)}renameDevice(e,t){return An(this.cfg,e,t)}revokeDevice(e){return jn(this.cfg,e)}static SIM_PATH=`/api/cmmd/sim-host`;static simScope(e){return e?.orgId===void 0?``:`?orgId=${encodeURIComponent(String(e.orgId))}`}async listSimHosts(t){return O({method:`GET`,path:`${e.SIM_PATH}/hosts${e.simScope(t)}`},this.cfg)}async getSimLease(t){let n=new URLSearchParams({forgeEnvironmentId:t.forgeEnvironmentId,threadId:t.threadId,...t.orgId===void 0?{}:{orgId:String(t.orgId)}});return O({method:`GET`,path:`${e.SIM_PATH}/leases?${n.toString()}`},this.cfg)}async claimSimLease(t){return O({method:`POST`,path:`${e.SIM_PATH}/leases${e.simScope(t)}`,body:{hostId:t.hostId,forgeEnvironmentId:t.forgeEnvironmentId,threadId:t.threadId,ttlMs:t.ttlMs}},this.cfg)}async renewSimLease(t){return O({method:`POST`,path:`${e.SIM_PATH}/leases/${encodeURIComponent(String(t.leaseId))}/renew${e.simScope(t)}`,body:{generation:t.generation,rowVersion:t.rowVersion,ttlMs:t.ttlMs}},this.cfg)}async releaseSimLease(t){await O({method:`POST`,path:`${e.SIM_PATH}/leases/${encodeURIComponent(String(t.leaseId))}/release${e.simScope(t)}`,body:{generation:t.generation,rowVersion:t.rowVersion}},this.cfg)}async listCampaigns(e){let t={};return e?.orgId&&(t.orgId=e.orgId),e?.allWorkspaces&&(t.allWorkspaces=`true`),Gn(await O({method:`GET`,path:`/api/cmmd/campaigns`,query:t,...e?.signal?{signal:e.signal}:{}},this.cfg),`campaigns`).map(xee)}async getCampaign(e){return O({method:`GET`,path:`/api/cmmd/campaigns/${e}`},this.cfg)}async createCampaign(e){return O({method:`POST`,path:`/api/cmmd/campaigns`,body:e},this.cfg)}async updateCampaign(e,t){return O({method:`PUT`,path:`/api/cmmd/campaigns/${e}`,body:t},this.cfg)}async deleteCampaign(e){await O({method:`DELETE`,path:`/api/cmmd/campaigns/${e}`},this.cfg)}async listProjects(e){let t={};return e?.campaignId&&(t.campaignId=e.campaignId),e?.orgId&&(t.orgId=e.orgId),e?.allWorkspaces&&(t.allWorkspaces=`true`),Gn(await O({method:`GET`,path:`/api/cmmd/projects`,query:t,...e?.signal?{signal:e.signal}:{}},this.cfg),`projects`).map(er)}async listTasks(e){let t={};return e?.projectId&&(t.projectId=e.projectId),e?.status&&(t.status=e.status),O({method:`GET`,path:`/api/cmmd/tasks`,query:t},this.cfg)}async getProject(e){return er(await O({method:`GET`,path:`/api/cmmd/projects/${e}`},this.cfg))}async getProjectMembers(e){let t=await O({method:`GET`,path:`/api/cmmd/projects/${e}/members`},this.cfg);return Array.isArray(t)?t.map(Jn):[]}async listWorkspaceMembers(){let e=await O({method:`GET`,path:`/api/cmmd/members`},this.cfg);return Array.isArray(e)?e.map(vee):[]}async addProjectMember(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/members`,body:t},this.cfg)}async listProjectAgentMembers(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/agent-members`},this.cfg)}async createProjectAgentMember(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/agent-members`,body:t},this.cfg)}async renameProjectAgentMember(e,t,n){return O({method:`PATCH`,path:`/api/cmmd/projects/${e}/agent-members/${t}`,body:n},this.cfg)}async retireProjectAgentMember(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/agent-members/${t}/retire`,body:n},this.cfg)}async updateProjectAgentMemberAvatar(e,t,n){return O({method:`PUT`,path:`/api/cmmd/projects/${e}/agent-members/${t}/avatar`,body:n},this.cfg)}async listProjectAgentMemberInstances(e,t){return O({method:`GET`,path:`/api/cmmd/projects/${e}/agent-members/${t}/instances`},this.cfg)}async previewProjectAgentMemberConsolidation(e){return O({method:`POST`,path:`/api/cmmd/projects/${e}/agent-members/consolidation/preview`},this.cfg)}async applyProjectAgentMemberConsolidation(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/agent-members/consolidation/apply`,body:t},this.cfg)}async setProjectTaskAssignment(e,t,n){return O({method:`PUT`,path:`/api/cmmd/projects/${e}/tasks/${t}/assignment`,body:n},this.cfg)}async getProjectUpdates(e,t){let n=t?.page??1,r=t?.limit??10;return yee(await O({method:`GET`,path:`/api/cmmd/projects/${e}/updates`,query:{page:n,limit:r},unwrapEnvelope:!1},this.cfg),n,r)}async createProjectUpdate(e,t){return Yn(await O({method:`POST`,path:`/api/cmmd/projects/${e}/updates`,body:t},this.cfg))}async updateProjectUpdate(e,t,n){return Yn(await O({method:`PATCH`,path:`/api/cmmd/projects/${e}/updates/${t}`,body:n},this.cfg))}async deleteProjectUpdate(e,t){await O({method:`DELETE`,path:`/api/cmmd/projects/${e}/updates/${t}`},this.cfg)}async listProjectMilestones(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/milestones`},this.cfg)}async createProjectMilestone(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/milestones`,body:t},this.cfg)}async updateProjectMilestone(e,t,n){return O({method:`PATCH`,path:`/api/cmmd/projects/${e}/milestones/${t}`,body:n},this.cfg)}async deleteProjectMilestone(e,t){await O({method:`DELETE`,path:`/api/cmmd/projects/${e}/milestones/${t}`},this.cfg)}async improveProjectContent(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/content/readability`,body:t},this.cfg)}async listProjectBoard(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/board`},this.cfg)}async createProjectTaskDraft(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/task-drafts`,body:t},this.cfg)}async getProjectTaskDraft(e,t){return O({method:`GET`,path:`/api/cmmd/projects/${e}/task-drafts/${t}`},this.cfg)}async updateProjectTaskDraft(e,t,n){return O({method:`PATCH`,path:`/api/cmmd/projects/${e}/task-drafts/${t}`,body:n},this.cfg)}async previewProjectTaskDraft(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/task-drafts/${t}/preview`,body:n},this.cfg)}async commitProjectTaskDraft(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/task-drafts/${t}/commit`,body:n},this.cfg)}async discardProjectTaskDraft(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/task-drafts/${t}/discard`,body:n},this.cfg)}async getProjectTaskWorkflow(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/task-workflow`},this.cfg)}async updateProjectTaskWorkflow(e,t){return O({method:`PUT`,path:`/api/cmmd/projects/${e}/task-workflow`,body:t},this.cfg)}async getProjectLeadPlan(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/plan`},this.cfg)}async activateProjectLeadAutomaticStaffing(e){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/authority/activate`,body:{}},this.cfg)}async getProjectLeadReadiness(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/readiness`},this.cfg)}async getProjectLeadCapabilities(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/capabilities`},this.cfg)}async getProjectLeadSummary(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/summary`},this.cfg)}async getProjectLeadDetail(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/detail`},this.cfg)}async getProjectLeadBriefing(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/briefing`},this.cfg)}async decideProjectLeadApproval(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/approvals/${t}/decision`,body:n},this.cfg)}async listProjectLeadEvents(e,t){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/events`,...t?{query:{...t.afterEventId===void 0?{}:{afterEventId:String(t.afterEventId)},...t.latest===void 0?{}:{latest:String(t.latest)},...t.limit===void 0?{}:{limit:String(t.limit)}}}:{}},this.cfg)}async explainProjectLead(e){return O({method:`GET`,path:`/api/cmmd/projects/${e}/project-lead/explain`},this.cfg)}async pauseProjectLead(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/pause`,body:t},this.cfg)}async resumeProjectLead(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/resume`,body:t},this.cfg)}async reserveProjectLeadTask(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/tasks/${t}/reservations`,body:n},this.cfg)}async releaseProjectLeadReservation(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/reservations/${t}/release`,body:n},this.cfg)}async reconcileProjectLead(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/reconcile`,body:t},this.cfg)}async resolveProjectLeadAttention(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/project-lead/attention/${t}/resolve`,body:n},this.cfg)}async listCenterBoard(e){let t={};return e?.status&&(t.status=e.status),e?.workspaceId&&(t.workspaceId=String(e.workspaceId)),e?.campaignId&&(t.campaignId=String(e.campaignId)),e?.ownerId&&(t.ownerId=String(e.ownerId)),e?.includeArchived!==void 0&&(t.includeArchived=e.includeArchived),e?.q&&(t.q=e.q),O({method:`GET`,path:`/api/cmmd/work-items/board`,query:t},this.cfg)}async listForgeAutomationPresets(){return Kn(await O({method:`GET`,path:`/api/cmmd/automations/presets`},this.cfg),`presets`)}async listUserForgeAutomationRules(){return Kn(await O({method:`GET`,path:`/api/cmmd/automations/user/rules`},this.cfg),`rules`)}async createUserForgeAutomationRule(e){return O({method:`POST`,path:`/api/cmmd/automations/user/rules`,body:e},this.cfg)}async updateUserForgeAutomationRule(e,t){return O({method:`PATCH`,path:`/api/cmmd/automations/user/rules/${e}`,body:t},this.cfg)}async listUserForgeAutomationRuns(e){return Kn(await O({method:`GET`,path:`/api/cmmd/automations/user/rules/${e}/runs`},this.cfg),`runs`)}async startUserForgeAutomationRun(e,t){return O({method:`POST`,path:`/api/cmmd/automations/user/rules/${e}/runs`,body:t},this.cfg)}async listForgeAutomationRules(e,t){let n=qn(t);return Kn(await O({method:`GET`,path:`/api/cmmd/automations/projects/${e}/rules`,...n?{query:n}:{}},this.cfg),`rules`)}async createForgeAutomationRule(e,t,n){let r=qn(n);return O({method:`POST`,path:`/api/cmmd/automations/projects/${e}/rules`,body:t,...r?{query:r}:{}},this.cfg)}async updateForgeAutomationRule(e,t,n,r){let i=qn(r);return O({method:`PATCH`,path:`/api/cmmd/automations/projects/${e}/rules/${t}`,body:n,...i?{query:i}:{}},this.cfg)}async listForgeAutomationRuns(e,t){let n=qn(t,t?.taskId);return Kn(await O({method:`GET`,path:`/api/cmmd/automations/projects/${e}/runs`,...n?{query:n}:{}},this.cfg),`runs`)}async getForgeAutomationRun(e,t){let n=qn(t);return O({method:`GET`,path:`/api/cmmd/automations/runs/${e}`,...n?{query:n}:{}},this.cfg)}async startForgeAutomationRun(e,t,n,r){let i=qn(r);return O({method:`POST`,path:`/api/cmmd/automations/projects/${e}/tasks/${t}/runs`,body:n,...i?{query:i}:{}},this.cfg)}async retryForgeAutomationRun(e,t,n){let r=qn(n);return O({method:`POST`,path:`/api/cmmd/automations/runs/${e}/retry`,body:t,...r?{query:r}:{}},this.cfg)}async cancelForgeAutomationRun(e,t,n){let r=qn(n);return O({method:`POST`,path:`/api/cmmd/automations/runs/${e}/cancel`,body:t,...r?{query:r}:{}},this.cfg)}async approveForgeAutomationEscalation(e,t,n){let r=qn(n);return O({method:`POST`,path:`/api/cmmd/automations/runs/${e}/escalations/approve`,body:t,...r?{query:r}:{}},this.cfg)}async rejectForgeAutomationEscalation(e,t,n){let r=qn(n);return O({method:`POST`,path:`/api/cmmd/automations/runs/${e}/escalations/reject`,body:t,...r?{query:r}:{}},this.cfg)}async createProjectBoardTask(e,t){let n={title:t.title};return t.description!==void 0&&(n.description=t.description),t.priority!==void 0&&(n.priority=t.priority),t.status!==void 0&&(n.status=t.status),t.workflowStageId!==void 0&&(n.workflowStageId=t.workflowStageId),t.assignee!==void 0&&(n.assignee=t.assignee),t.dueDate!==void 0&&(n.dueDate=t.dueDate),t.workItemType!==void 0&&(n.workItemType=t.workItemType),t.parentTaskId!==void 0&&(n.parentTaskId=t.parentTaskId),t.milestoneId!==void 0&&(n.milestoneId=t.milestoneId),t.dependsOn!==void 0&&(n.dependsOn=t.dependsOn),O({method:`POST`,path:`/api/cmmd/projects/${e}/board`,body:n},this.cfg)}async createCenterBoardTask(e){let t={title:e.title,projectId:e.projectId};return e.description!==void 0&&(t.description=e.description),e.priority!==void 0&&(t.priority=e.priority),e.status!==void 0&&(t.status=e.status),e.assignee!==void 0&&(t.assignee=e.assignee),e.dueDate!==void 0&&(t.dueDate=e.dueDate),e.workItemType!==void 0&&(t.workItemType=e.workItemType),e.parentTaskId!==void 0&&(t.parentTaskId=e.parentTaskId),e.milestoneId!==void 0&&(t.milestoneId=e.milestoneId),e.dependsOn!==void 0&&(t.dependsOn=e.dependsOn),O({method:`POST`,path:`/api/cmmd/work-items/board`,body:t},this.cfg)}async submitFeedback(e){let t={type:e.type,title:e.title,source:e.source};return e.description!==void 0&&(t.description=e.description),e.priority!==void 0&&(t.priority=e.priority),e.senderName!==void 0&&(t.senderName=e.senderName),O({method:`POST`,path:`/api/cmmd/feedback`,body:t},this.cfg)}async updateProjectBoardTask(e,t,n){return O({method:`PATCH`,path:`/api/cmmd/projects/${e}/board/${t}`,body:n},this.cfg)}async updateCenterBoardTask(e,t){return O({method:`PATCH`,path:`/api/cmmd/work-items/board/${e}`,body:t},this.cfg)}async moveCenterBoardTask(e,t){let n={toStatus:t.toStatus};return t.beforeTaskId!==void 0&&(n.beforeTaskId=t.beforeTaskId),t.afterTaskId!==void 0&&(n.afterTaskId=t.afterTaskId),O({method:`PATCH`,path:`/api/cmmd/work-items/board/${e}/move`,body:n},this.cfg)}async moveProjectBoardTask(e,t,n){let r={toStatus:n.toStatus};return n.toStageId!==void 0&&(r.toStageId=n.toStageId),n.beforeTaskId!==void 0&&(r.beforeTaskId=n.beforeTaskId),n.afterTaskId!==void 0&&(r.afterTaskId=n.afterTaskId),O({method:`PATCH`,path:`/api/cmmd/projects/${e}/board/${t}/move`,body:r},this.cfg)}async archiveProjectBoardTask(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/board/${t}/archive`},this.cfg)}async unarchiveProjectBoardTask(e,t){return O({method:`POST`,path:`/api/cmmd/projects/${e}/board/${t}/unarchive`},this.cfg)}async updateProjectBoardTaskStatus(e,t,n,r){return O({method:`PATCH`,path:`/api/cmmd/projects/${e}/board/${t}/status`,body:{status:n,...r?{workflowStageId:r}:{}}},this.cfg)}async listTaskExecutionOptions(e,t){return O({method:`GET`,path:`/api/cmmd/projects/${e}/board/${t}/execution-options`},this.cfg)}async createTaskWorkSession(e,t,n){return O({method:`POST`,path:`/api/cmmd/projects/${e}/board/${t}/work-sessions`,body:n},this.cfg)}async listProjectWorkSessions(e,t={}){return O({method:`GET`,path:`/api/cmmd/projects/${e}/work-sessions`,query:t},this.cfg)}async getWorkSession(e){return O({method:`GET`,path:`/api/cmmd/work-sessions/${e}`},this.cfg)}async updateWorkSessionStatus(e,t){return O({method:`PATCH`,path:`/api/cmmd/work-sessions/${e}`,body:{status:t}},this.cfg)}async attachWorkSessionThread(e,t){return O({method:`POST`,path:`/api/cmmd/work-sessions/${e}/threads`,body:t},this.cfg)}async listTaskConversations(e,t={}){return O({method:`GET`,path:`/api/cmmd/tasks/${e}/conversations`,query:Un(t)},this.cfg)}async linkTaskConversation(e,t){return O({method:`POST`,path:`/api/cmmd/tasks/${e}/conversations`,body:t},this.cfg)}async getTaskHistory(e){return O({method:`GET`,path:`/api/cmmd/tasks/${e}/history`},this.cfg)}async upsertTaskPullRequest(e,t){return O({method:`PUT`,path:`/api/cmmd/tasks/${e}/pull-requests`,body:t},this.cfg)}postPullRequest(e,t){return O({method:`POST`,path:`/api/cmmd/pull-requests/${e}`,body:t},this.cfg)}async listPullRequests(e){return this.postPullRequest(`list`,e)}async getPullRequestListStats(e){return this.postPullRequest(`list-stats`,e)}async getPullRequestDetail(e){return this.postPullRequest(`detail`,e)}async getPullRequestActivity(e){return this.postPullRequest(`activity`,e)}async getPullRequestDiff(e){return this.postPullRequest(`diff`,e)}async getPullRequestDiffFileContents(e){return this.postPullRequest(`diff-file-contents`,e)}async getPullRequestThreadComments(e){return this.postPullRequest(`thread/comments`,e)}async getPullRequestReviewerCandidates(e){return this.postPullRequest(`reviewer-candidates`,e)}async runPullRequestAction(e){return this.postPullRequest(`action`,e)}async createPullRequestComment(e){return this.postPullRequest(`comment`,e)}async updatePullRequest(e){return this.postPullRequest(`update`,e)}async updatePullRequestComment(e){return this.postPullRequest(`comment/update`,e)}async submitPullRequestReview(e){return this.postPullRequest(`review`,e)}async replyToPullRequestThread(e){return this.postPullRequest(`thread/reply`,e)}async setPullRequestThreadResolution(e){return this.postPullRequest(`thread/resolution`,e)}async requestPullRequestReviewers(e){return this.postPullRequest(`reviewers`,e)}async setPullRequestReaction(e){return this.postPullRequest(`reaction`,e)}async getTaskConversation(e,t,n={}){return O({method:`GET`,path:`/api/cmmd/tasks/${e}/conversations/${encodeURIComponent(t)}`,query:Un(n)},this.cfg)}async createTask(e){return O({method:`POST`,path:`/api/cmmd/tasks`,body:e},this.cfg)}async createSubtask(e){throw new Wn(`createSubtask`)}async createBoardTask(e){throw new Wn(`createBoardTask`)}async createProject(e){let t={};for(let[n,r]of Object.entries(e))r!=null&&(t[n]=r);return e.campaignId!==void 0&&e.campaignId!==null&&(t.campaignId=nr(e.campaignId)),e.organizationId!==void 0&&e.organizationId!==null&&(t.organizationId=nr(e.organizationId)),Cee(await O({method:`POST`,path:`/api/cmmd/projects`,body:t},this.cfg))}async moveProject(e,t){let n={targetOrgId:nr(t.targetOrgId)};return t.campaignStrategy!==void 0&&(n.campaignStrategy=t.campaignStrategy),t.targetCampaignId!==void 0&&(n.targetCampaignId=nr(t.targetCampaignId)),t.dryRun!==void 0&&(n.dryRun=t.dryRun),O({method:`POST`,path:`/api/cmmd/projects/${e}/move`,body:n},this.cfg)}async uploadBrainDoc(e,t){throw new Wn(`uploadBrainDoc`)}};function wee(e){return new rr(e)}var Tee=new rr({onAuthExpired:pe});function ir(e={resolveUrl:ae}){let t=ce()?.bearerToken;return t?{...e,bearerToken:t}:e}var ar=new Set([`CMMD_AUTH_REQUIRED`,`CMMD_AUTH_EXPIRED`]);function or(e,t){return!e&&t===null?{}:{query:{...e?{fresh:1}:{},...t===null?{}:{orgId:t}}}}async function sr(e){let t=`/api/cmmd/work-intake`,{getCurrentForgeWorkspaceId:n}=await _e(async()=>{let{getCurrentForgeWorkspaceId:e}=await import(`./currentForgeWorkspaceStore-esttwwzd.js`).then(e=>e.t);return{getCurrentForgeWorkspaceId:e}},__vite__mapDeps([0,1,2,3,4,5,6])),r=n(),i;try{i=await O({method:`GET`,path:t,allowRetry:!1,...or(e,r)},ir())}catch(e){throw e instanceof ye&&e.kind!==`auth`&&e.code!==null&&ar.has(e.code)?new ye({kind:`auth`,message:e.message,status:e.status??401,code:e.code}):e}if(!i)throw Error(`Invalid response from ${t}`);return i}async function cr(e={}){return sr(e.forceFresh===!0)}var j=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__,M=globalThis,lr=`10.74.0`;function ur(){return dr(M),M}function dr(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||`10.74.0`,t[lr]=t[`10.74.0`]||{}}function fr(e,t,n=M){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[lr]=r[`10.74.0`]||{};return i[e]||(i[e]=t())}var pr=[`debug`,`info`,`warn`,`error`,`log`,`assert`,`trace`],mr=`Sentry Logger `,hr={};function gr(e){if(!(`console`in M))return e();let t=M.console,n={},r=Object.keys(hr);r.forEach(e=>{let r=hr[e];n[e]=t[e],t[e]=r});try{return e()}finally{r.forEach(e=>{t[e]=n[e]})}}function _r(){wr().enabled=!0}function vr(){wr().enabled=!1}function yr(){return wr().enabled}function br(...e){Cr(`log`,...e)}function xr(...e){Cr(`warn`,...e)}function Sr(...e){Cr(`error`,...e)}function Cr(e,...t){j&&yr()&&gr(()=>{M.console[e](`${mr}[${e}]:`,...t)})}function wr(){return j?fr(`loggerSettings`,()=>({enabled:!1})):{enabled:!1}}var N={enable:_r,disable:vr,isEnabled:yr,log:br,warn:xr,error:Sr},Tr=50,Er=/\(error: (.*)\)/,Dr=/captureMessage|captureException/;function Or(...e){let t=e.sort((e,t)=>e[0]-t[0]).map(e=>e[1]);return(e,n=0,r=0)=>{let i=[],a=e.split(`
|
|
3
3
|
`);for(let e=n;e<a.length;e++){let n=a[e];n.length>1024&&(n=n.slice(0,1024));let o=Er.test(n)?n.replace(Er,`$1`):n;if(!o.includes(`Error: `)){for(let e of t){let t=e(o);if(t){i.push(t);break}}if(i.length>=Tr+r)break}}return Ar(i.slice(r))}}function kr(e){return Array.isArray(e)?Or(...e):e}function Ar(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(jr(t).function||``)&&t.pop(),t.reverse(),Dr.test(jr(t).function||``)&&(t.pop(),Dr.test(jr(t).function||``)&&t.pop()),t.slice(0,Tr).map(e=>({...e,filename:e.filename||jr(t).filename,function:e.function||`?`}))}function jr(e){return e[e.length-1]||{}}var Mr=`<anonymous>`;function Nr(e){try{return!e||typeof e!=`function`?Mr:e.name||Mr}catch{return Mr}}function Pr(e){let t=e.exception;if(t){let e=[];try{return t.values.forEach(t=>{t.stacktrace.frames&&e.push(...t.stacktrace.frames)}),e}catch{return}}}function Fr(e){let t=e?.startsWith(`file://`)?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}var Ir={},Lr={};function Rr(e,t){return Ir[e]=Ir[e]||[],Ir[e].push(t),()=>{let n=Ir[e];if(n){let e=n.indexOf(t);e!==-1&&n.splice(e,1)}}}function zr(e,t){if(!Lr[e]){Lr[e]=!0;try{t()}catch(t){j&&N.error(`Error while instrumenting ${e}`,t)}}}function Br(e,t){let n=e&&Ir[e];if(n)for(let r of n)try{r(t)}catch(t){j&&N.error(`Error while triggering instrumentation handler.
|
|
4
4
|
Type: ${e}
|
|
5
5
|
Name: ${Nr(r)}
|
|
@@ -1002,7 +1002,7 @@ or you can use record.mirror to access the mirror instance during recording.`,o4
|
|
|
1002
1002
|
now you can use replayer.getMirror() to access the mirror instance of a replayer,\r
|
|
1003
1003
|
or you can use record.mirror to access the mirror instance during recording.`,_6={map:{},getId(){return console.error(g6),-1},getNode(){return console.error(g6),null},removeNodeFromMap(){console.error(g6)},has(){return console.error(g6),!1},reset(){console.error(g6)}};typeof window<`u`&&window.Proxy&&window.Reflect&&(_6=new Proxy(_6,{get(e,t,n){return t===`map`&&console.error(g6),Reflect.get(e,t,n)}}));function v6(e,t,n,r,i=window){let a=i.Object.getOwnPropertyDescriptor(e,t);return i.Object.defineProperty(e,t,r?n:{set(e){w6(()=>{n.set.call(this,e)},0),a&&a.set&&a.set.call(this,e)}}),()=>v6(e,t,a||{},!0)}function y6(e,t,n){try{if(!(t in e))return()=>{};let r=e[t],i=n(r);return typeof i==`function`&&(i.prototype=i.prototype||{},Object.defineProperties(i,{__rrweb_original__:{enumerable:!1,value:r}})),e[t]=i,()=>{e[t]=r}}catch{return()=>{}}}Date.now().toString();function upe(e){if(!e)return null;try{return e.nodeType===e.ELEMENT_NODE?e:e.parentElement}catch{return null}}function b6(e,t,n,r,i){if(!e)return!1;let a=upe(e);if(!a)return!1;let o=h6(t,n);if(!i){let e=r&&a.matches(r);return o(a)&&!e}let s=m6(a,o),c=-1;return s<0?!1:(r&&(c=m6(a,h6(null,r))),s>-1&&c<0||s<c)}var x6={};function S6(e){let t=x6[e];if(t)return t;let n=window.document,r=window[e];if(n&&typeof n.createElement==`function`)try{let t=n.createElement(`iframe`);t.hidden=!0,n.head.appendChild(t);let i=t.contentWindow;i&&i[e]&&(r=i[e]),n.head.removeChild(t)}catch{}return x6[e]=r.bind(window)}function C6(...e){return S6(`requestAnimationFrame`)(...e)}function w6(...e){return S6(`setTimeout`)(...e)}var T6=(e=>(e[e[`2D`]=0]=`2D`,e[e.WebGL=1]=`WebGL`,e[e.WebGL2=2]=`WebGL2`,e))(T6||{}),E6;function dpe(e){E6=e}for(var D6=e=>E6?((...t)=>{try{return e(...t)}catch(e){if(E6&&E6(e)===!0)return()=>{};throw e}}):e,O6=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,fpe=typeof Uint8Array>`u`?[]:new Uint8Array(256),k6=0;k6<O6.length;k6++)fpe[O6.charCodeAt(k6)]=k6;var ppe=function(e){var t=new Uint8Array(e),n,r=t.length,i=``;for(n=0;n<r;n+=3)i+=O6[t[n]>>2],i+=O6[(t[n]&3)<<4|t[n+1]>>4],i+=O6[(t[n+1]&15)<<2|t[n+2]>>6],i+=O6[t[n+2]&63];return r%3==2?i=i.substring(0,i.length-1)+`=`:r%3==1&&(i=i.substring(0,i.length-2)+`==`),i},A6=new Map;function mpe(e,t){let n=A6.get(e);return n||(n=new Map,A6.set(e,n)),n.has(t)||n.set(t,[]),n.get(t)}var j6=(e,t,n)=>{if(!e||!(P6(e,t)||typeof e==`object`))return;let r=e.constructor.name,i=mpe(n,r),a=i.indexOf(e);return a===-1&&(a=i.length,i.push(e)),a};function M6(e,t,n){if(e instanceof Array)return e.map(e=>M6(e,t,n));if(e===null)return e;if(e instanceof Float32Array||e instanceof Float64Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Int8Array||e instanceof Uint8ClampedArray)return{rr_type:e.constructor.name,args:[Object.values(e)]};if(e instanceof ArrayBuffer)return{rr_type:e.constructor.name,base64:ppe(e)};if(e instanceof DataView)return{rr_type:e.constructor.name,args:[M6(e.buffer,t,n),e.byteOffset,e.byteLength]};if(e instanceof HTMLImageElement){let t=e.constructor.name,{src:n}=e;return{rr_type:t,src:n}}return e instanceof HTMLCanvasElement?{rr_type:`HTMLImageElement`,src:e.toDataURL()}:e instanceof ImageData?{rr_type:e.constructor.name,args:[M6(e.data,t,n),e.width,e.height]}:P6(e,t)||typeof e==`object`?{rr_type:e.constructor.name,index:j6(e,t,n)}:e}var N6=(e,t,n)=>e.map(e=>M6(e,t,n)),P6=(e,t)=>!![`WebGLActiveInfo`,`WebGLBuffer`,`WebGLFramebuffer`,`WebGLProgram`,`WebGLRenderbuffer`,`WebGLShader`,`WebGLShaderPrecisionFormat`,`WebGLTexture`,`WebGLUniformLocation`,`WebGLVertexArrayObject`,`WebGLVertexArrayObjectOES`].filter(e=>typeof t[e]==`function`).find(n=>e instanceof t[n]);function hpe(e,t,n,r,i){let a=[],o=Object.getOwnPropertyNames(t.CanvasRenderingContext2D.prototype);for(let s of o)try{if(typeof t.CanvasRenderingContext2D.prototype[s]!=`function`)continue;let o=y6(t.CanvasRenderingContext2D.prototype,s,function(a){return function(...o){return b6(this.canvas,n,r,i,!0)||w6(()=>{let n=N6(o,t,this);e(this.canvas,{type:T6[`2D`],property:s,args:n})},0),a.apply(this,o)}});a.push(o)}catch{let n=v6(t.CanvasRenderingContext2D.prototype,s,{set(t){e(this.canvas,{type:T6[`2D`],property:s,args:[t],setter:!0})}});a.push(n)}return()=>{a.forEach(e=>e())}}function gpe(e){return e===`experimental-webgl`?`webgl`:e}function F6(e,t,n,r,i){let a=[];try{let o=y6(e.HTMLCanvasElement.prototype,`getContext`,function(e){return function(a,...o){if(!b6(this,t,n,r,!0)){let e=gpe(a);if(`__context`in this||(this.__context=e),i&&[`webgl`,`webgl2`].includes(e))if(o[0]&&typeof o[0]==`object`){let e=o[0];e.preserveDrawingBuffer||=!0}else o.splice(0,1,{preserveDrawingBuffer:!0})}return e.apply(this,[a,...o])}});a.push(o)}catch{console.error(`failed to patch HTMLCanvasElement.prototype.getContext`)}return()=>{a.forEach(e=>e())}}function I6(e,t,n,r,i,a,o,s){let c=[],l=Object.getOwnPropertyNames(e);for(let o of l)if(![`isContextLost`,`canvas`,`drawingBufferWidth`,`drawingBufferHeight`].includes(o))try{if(typeof e[o]!=`function`)continue;let l=y6(e,o,function(e){return function(...c){let l=e.apply(this,c);if(j6(l,s,this),`tagName`in this.canvas&&!b6(this.canvas,r,i,a,!0)){let e=N6(c,s,this),r={type:t,property:o,args:e};n(this.canvas,r)}return l}});c.push(l)}catch{let r=v6(e,o,{set(e){n(this.canvas,{type:t,property:o,args:[e],setter:!0})}});c.push(r)}return c}function _pe(e,t,n,r,i,a){let o=[];return o.push(...I6(t.WebGLRenderingContext.prototype,T6.WebGL,e,n,r,i,a,t)),t.WebGL2RenderingContext!==void 0&&o.push(...I6(t.WebGL2RenderingContext.prototype,T6.WebGL2,e,n,r,i,a,t)),()=>{o.forEach(e=>e())}}var vpe=`for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t="undefined"==typeof Uint8Array?[]:new Uint8Array(256),a=0;a<64;a++)t[e.charCodeAt(a)]=a;var n=function(t){var a,n=new Uint8Array(t),r=n.length,s="";for(a=0;a<r;a+=3)s+=e[n[a]>>2],s+=e[(3&n[a])<<4|n[a+1]>>4],s+=e[(15&n[a+1])<<2|n[a+2]>>6],s+=e[63&n[a+2]];return r%3==2?s=s.substring(0,s.length-1)+"=":r%3==1&&(s=s.substring(0,s.length-2)+"=="),s};const r=new Map,s=new Map;const i=self;i.onmessage=async function(e){if(!("OffscreenCanvas"in globalThis))return i.postMessage({id:e.data.id});{const{id:t,bitmap:a,width:o,height:f,maxCanvasSize:c,dataURLOptions:g}=e.data,u=async function(e,t,a){const r=e+"-"+t;if("OffscreenCanvas"in globalThis){if(s.has(r))return s.get(r);const i=new OffscreenCanvas(e,t);i.getContext("2d");const o=await i.convertToBlob(a),f=await o.arrayBuffer(),c=n(f);return s.set(r,c),c}return""}(o,f,g),[h,d]=function(e,t,a){if(!a)return[e,t];const[n,r]=a;if(e<=n&&t<=r)return[e,t];let s=e,i=t;return s>n&&(i=Math.floor(n*t/e),s=n),i>r&&(s=Math.floor(r*e/t),i=r),[s,i]}(o,f,c),l=new OffscreenCanvas(h,d),w=l.getContext("bitmaprenderer"),p=h===o&&d===f?a:await createImageBitmap(a,{resizeWidth:h,resizeHeight:d,resizeQuality:"low"});w?.transferFromImageBitmap(p),a.close();const y=await l.convertToBlob(g),v=y.type,b=await y.arrayBuffer(),m=n(b);if(p.close(),!r.has(t)&&await u===m)return r.set(t,m),i.postMessage({id:t});if(r.get(t)===m)return i.postMessage({id:t});i.postMessage({id:t,type:v,base64:m,width:o,height:f}),r.set(t,m)}};`;function ype(){let e=new Blob([vpe]);return URL.createObjectURL(e)}var bpe=class{constructor(e){this.pendingCanvasMutations=new Map,this.rafStamps={latestId:0,invokeId:null},this.shadowDoms=new Set,this.windowsSet=new WeakSet,this.windows=[],this.restoreHandlers=[],this.frozen=!1,this.locked=!1,this.snapshotInProgressMap=new Map,this.worker=null,this.lastSnapshotTime=0,this.processMutation=(e,t)=>{(this.rafStamps.invokeId&&this.rafStamps.latestId!==this.rafStamps.invokeId||!this.rafStamps.invokeId)&&(this.rafStamps.invokeId=this.rafStamps.latestId),this.pendingCanvasMutations.has(e)||this.pendingCanvasMutations.set(e,[]),this.pendingCanvasMutations.get(e).push(t)};let{enableManualSnapshot:t,sampling:n=`all`,win:r,recordCanvas:i,errorHandler:a}=e;e.sampling=n,this.mutationCb=e.mutationCb,this.mirror=e.mirror,this.options=e,a&&dpe(a),(i&&typeof n==`number`||t)&&(this.worker=this.initFPSWorker()),this.addWindow(r),!t&&D6(()=>{i&&n===`all`&&(this.startRAFTimestamping(),this.startPendingCanvasMutationFlusher()),i&&typeof n==`number`&&this.initCanvasFPSObserver()})()}reset(){this.pendingCanvasMutations.clear(),this.restoreHandlers.forEach(e=>{try{e()}catch{}}),this.restoreHandlers=[],this.windowsSet=new WeakSet,this.windows=[],this.shadowDoms=new Set,this.worker?.terminate(),this.worker=null,this.snapshotInProgressMap=new Map}freeze(){this.frozen=!0}unfreeze(){this.frozen=!1}lock(){this.locked=!0}unlock(){this.locked=!1}addWindow(e){let{sampling:t=`all`,blockClass:n,blockSelector:r,unblockSelector:i,recordCanvas:a,enableManualSnapshot:o}=this.options;if(!this.windowsSet.has(e)){if(o){this.windowsSet.add(e),this.windows.push(new WeakRef(e));return}D6(()=>{if(a&&t===`all`&&this.initCanvasMutationObserver(e,n,r,i),a&&typeof t==`number`){let t=F6(e,n,r,i,!0);this.restoreHandlers.push(()=>{t()})}})(),this.windowsSet.add(e),this.windows.push(new WeakRef(e))}}addShadowRoot(e){this.shadowDoms.add(new WeakRef(e))}resetShadowRoots(){this.shadowDoms=new Set}snapshot(e,t){if(t?.skipRequestAnimationFrame){this.takeSnapshot(performance.now(),!0,e);return}C6(t=>this.takeSnapshot(t,!0,e))}initFPSWorker(){let e=new Worker(ype());return e.onmessage=e=>{let t=e.data,{id:n}=t;if(this.snapshotInProgressMap.set(n,!1),!(`base64`in t))return;let{base64:r,type:i,width:a,height:o}=t;this.mutationCb({id:n,type:T6[`2D`],commands:[{property:`clearRect`,args:[0,0,a,o]},{property:`drawImage`,args:[{rr_type:`ImageBitmap`,args:[{rr_type:`Blob`,data:[{rr_type:`ArrayBuffer`,base64:r}],type:i}]},0,0,a,o]}]})},e}initCanvasFPSObserver(){let e;if(!this.windows.length&&!this.shadowDoms.size)return;let t=n=>{this.takeSnapshot(n,!1),e=C6(t)};e=C6(t),this.restoreHandlers.push(()=>{e&&cancelAnimationFrame(e)})}initCanvasMutationObserver(e,t,n,r){let i=F6(e,t,n,r,!1),a=hpe(this.processMutation.bind(this),e,t,n,r),o=_pe(this.processMutation.bind(this),e,t,n,r,this.mirror);this.restoreHandlers.push(()=>{i(),a(),o()})}getCanvasElements(e,t,n){let r=[],i=i=>{i.querySelectorAll(`canvas`).forEach(i=>{b6(i,e,t,n,!0)||r.push(i)})};for(let e of this.windows){let t=e.deref(),n;try{n=t&&t.document}catch{}n&&i(n)}for(let e of this.shadowDoms){let t=e.deref();t&&i(t)}return r}takeSnapshot(e,t,n){let{sampling:r,blockClass:i,blockSelector:a,unblockSelector:o,dataURLOptions:s,maxCanvasSize:c}=this.options,l=1e3/(r===`all`?2:r||2);return this.lastSnapshotTime&&e-this.lastSnapshotTime<l?!1:(this.lastSnapshotTime=e,(n?[n]:this.getCanvasElements(i,a,o)).forEach(e=>{let n=this.mirror.getId(e);if(!(!this.mirror.hasNode(e)||!e.width||!e.height||this.snapshotInProgressMap.get(n))){if(this.snapshotInProgressMap.set(n,!0),!t&&[`webgl`,`webgl2`].includes(e.__context)){let t=e.getContext(e.__context);t?.getContextAttributes()?.preserveDrawingBuffer===!1&&t.clear(t.COLOR_BUFFER_BIT)}createImageBitmap(e).then(t=>{this.worker?.postMessage({id:n,bitmap:t,width:e.width,height:e.height,dataURLOptions:s,maxCanvasSize:c},[t])}).catch(e=>{D6(()=>{throw this.snapshotInProgressMap.delete(n),e})()})}}),!0)}startPendingCanvasMutationFlusher(){C6(()=>this.flushPendingCanvasMutations())}startRAFTimestamping(){let e=t=>{this.rafStamps.latestId=t,C6(e)};C6(e)}flushPendingCanvasMutations(){this.pendingCanvasMutations.forEach((e,t)=>{let n=this.mirror.getId(t);this.flushPendingCanvasMutationFor(t,n)}),C6(()=>this.flushPendingCanvasMutations())}flushPendingCanvasMutationFor(e,t){if(this.frozen||this.locked)return;let n=this.pendingCanvasMutations.get(e);if(!n||t===-1)return;let r=n.map(e=>{let{type:t,...n}=e;return n}),{type:i}=n[0];this.mutationCb({id:t,type:i,commands:r}),this.pendingCanvasMutations.delete(e)}};try{if(Array.from([1],e=>e*2)[0]!==2){let e=document.createElement(`iframe`);document.body.appendChild(e),Array.from=e.contentWindow?.Array.from||Array.from,document.body.removeChild(e)}}catch(e){console.debug(`Unable to override Array.from`,e)}cpe();var xpe;(function(e){e[e.NotStarted=0]=`NotStarted`,e[e.Running=1]=`Running`,e[e.Stopped=2]=`Stopped`})(xpe||={});var L6={low:{sampling:{canvas:1},dataURLOptions:{type:`image/webp`,quality:.25}},medium:{sampling:{canvas:2},dataURLOptions:{type:`image/webp`,quality:.4}},high:{sampling:{canvas:4},dataURLOptions:{type:`image/webp`,quality:.5}}},Spe=`ReplayCanvas`,R6=1280,Cpe=vB(((e={})=>{let[t,n]=e.maxCanvasSize||[],r={quality:e.quality||`medium`,enableManualSnapshot:e.enableManualSnapshot,maxCanvasSize:[t?Math.min(t,R6):R6,n?Math.min(n,R6):R6]},i,a,o=new Promise(e=>a=e);return{name:Spe,getOptions(){let{quality:e,enableManualSnapshot:t,maxCanvasSize:n}=r;return{enableManualSnapshot:t,recordCanvas:!0,getCanvasManager:e=>{let r=new bpe({...e,enableManualSnapshot:t,maxCanvasSize:n,errorHandler:e=>{try{typeof e==`object`&&(e.__rrweb__=!0)}catch{}}});return i=r,a(r),r},...L6[e]||L6.medium}},async snapshot(e,t){(i||await o).snapshot(e,t)}}}));function wpe(e){return e.split(`,`).some(e=>e.trim().startsWith(`sentry-`))}function z6(e){try{return new URL(e,Y.location.origin).href}catch{return}}function Tpe(e){return e.entryType===`resource`&&`initiatorType`in e&&typeof e.nextHopProtocol==`string`&&(e.initiatorType===`fetch`||e.initiatorType===`xmlhttprequest`)}function B6(e){try{return new Headers(e)}catch{return}}var V6={traceFetch:!0,traceXHR:!0,enableHTTPTimings:!0,trackFetchStreamPerformance:!1};function H6(e,t){let{traceFetch:n,traceXHR:r,shouldCreateSpanForRequest:i,enableHTTPTimings:a,tracePropagationTargets:o,onRequestSpanStart:s,onRequestSpanEnd:c}={...V6,...t},l=typeof i==`function`?i:e=>!0,u=e=>Dpe(e,o),d={},f=e.getOptions().propagateTraceparent;n&&vJ(t=>{let n=lW(t,l,u,d,{propagateTraceparent:f,onRequestSpanEnd:c});if(n){let r=z6(t.fetchData.url),i=r?XV(r).host:void 0,o=r?QV(r):void 0;n.setAttributes({"http.url":o,"url.full":o,"server.address":i}),a&&U6(n,e),s?.(n,{headers:t.headers})}}),r&&m0(t=>{let n=Ope(t,l,u,d,f,c);n&&(a&&U6(n,e),s?.(n,{headers:B6(t.xhr.__sentry_xhr_v3__?.request_headers)}))})}var Epe=300;function U6(e,t){let{url:n}=KI(e).data;if(!n||typeof n!=`string`)return;let r=()=>void setTimeout(i);if(tR(t)){let t=e.end.bind(e);e.end=e=>{let n=e??UP(),a=!1,o=()=>{a||(a=!0,setTimeout(i),t(n),clearTimeout(s))};r=o;let s=setTimeout(o,Epe)}}let i=w$(`resource`,({entries:t})=>{t.forEach(t=>{Tpe(t)&&t.name.endsWith(n)&&(e.setAttributes(t1(t)),r())})})}function Dpe(e,t){let n=NJ();if(n){let r,i;try{r=new URL(e,n),i=new URL(n).origin}catch{return!1}let a=r.origin===i;return t?DP(r.toString(),t)||a&&DP(r.pathname,t):a}{let n=!!e.match(/^\/(?!\/)/);return t?DP(e,t):n}}function Ope(e,t,n,r,i,a){let o=e.xhr,s=o?.[p0];if(!o||o.__sentry_own_request__||!s)return;let{url:c,method:l}=s,u=mL()&&t(c);if(e.endTimestamp){let t=o.__sentry_xhr_span_id__;if(!t)return;let n=r[t];n&&(u&&s.status_code!==void 0&&(nI(n,s.status_code),n.end(),a?.(n,{headers:B6(x0(o)),error:e.error})),delete r[t]);return}let d=z6(c),f=XV(d||c),p=d?QV(d):void 0,m=QV(ZV(c)),h=J(),g=!!lL(),_=g||!!h&&tR(h),v=u&&_?mR({name:`${l} ${m}`,attributes:{url:QV(c),type:`xhr`,"http.method":l,"http.url":p,"url.full":p,"server.address":f?.host,[RF]:`auto.http.browser`,[LF]:`http.client`,...f?.search&&{"http.query":f?.search},...f?.hash&&{"http.fragment":f?.hash}}}):new xL,y=AR(v)&&g?void 0:v;return u&&!_&&h?.recordDroppedEvent(`no_parent_span`,`span`),o.__sentry_xhr_span_id__=v.spanContext().spanId,r[o.__sentry_xhr_span_id__]=v,n(c)&&kpe(o,mL()&&_?y:void 0,i),h&&h.emit(`beforeOutgoingRequestSpan`,v,e),v}function kpe(e,t,n){let{"sentry-trace":r,baggage:i,traceparent:a}=cH({span:t,propagateTraceparent:n});r&&Ape(e,r,i,a)}function Ape(e,t,n,r){let i=e.__sentry_xhr_v3__?.request_headers;if(!(i?.[`sentry-trace`]||!e.setRequestHeader))try{if(e.setRequestHeader(`sentry-trace`,t),r&&!i?.traceparent&&e.setRequestHeader(`traceparent`,r),n){let t=i?.baggage;(!t||!wpe(t))&&e.setRequestHeader(`baggage`,n)}}catch{}}var W6=new WeakMap,G6=new WeakMap,jpe=9e4,Mpe=[`text/event-stream`,`application/x-ndjson`,`application/stream+json`],K6=vB(()=>({name:`FetchStreamPerformance`,setup(){yJ(e=>{if(e.response){let t=W6.get(e.response);if(t&&e.endTimestamp){t.end(e.endTimestamp);let n=G6.get(e.response);n&&clearTimeout(n)}}}),vJ(e=>{if(e.endTimestamp&&e.response){let t=e.response.headers?.get(`content-type`)||``;if(e.response.headers?.get(`content-length`)||!Mpe.some(e=>t.startsWith(e)))return;let n=e.fetchData?.url||``,r=e.fetchData?.method||`GET`,i=JV(n),a=mR({name:`${r} ${n.startsWith(`data:`)?QV(n):i?YV(i):n}`,startTime:e.endTimestamp,attributes:{url:QV(n),"http.method":r,type:`fetch`,[LF]:`http.client.stream`,[RF]:`auto.http.browser.stream`}});W6.set(e.response,a);let o=setTimeout(()=>{a.isRecording()&&a.end()},jpe);G6.set(e.response,o)}})}})),Npe=`WebVitals`,q6=vB((e={})=>{let t=new Set(e.ignore??[]);return{name:Npe,setup(n){let r=tR(n),{enableStandaloneClsSpans:i,enableStandaloneLcpSpans:a}=e._experiments??{},o=r||t.has(`cls`)?void 0:i||!1,s=r||t.has(`lcp`)?void 0:a||!1,c=c1({recordClsStandaloneSpans:o,recordLcpStandaloneSpans:s,client:n}),l=new WeakSet;n.on(`afterStartPageLoadSpan`,e=>{l.add(e)}),n.on(`spanEnd`,e=>{l.delete(e)&&(c(),_1(e,{recordClsOnPageloadSpan:o===!1,recordLcpOnPageloadSpan:s===!1,spanStreamingEnabled:r}))}),r?(t.has(`lcp`)||U1(n),t.has(`cls`)||G1(n),t.has(`inp`)||q1()):t.has(`inp`)||I1()},afterAllSetup(){t.has(`inp`)||V1()}}});function Ppe(){Y.document?Y.document.addEventListener(`visibilitychange`,()=>{let e=lL();if(!e)return;let t=sL(e);if(Y.document.hidden&&t){let e=`cancelled`,{op:n,status:r}=KI(t);X&&K.log(`[Tracing] Transaction: ${e} -> since tab moved to the background, op: ${n}`),r||t.setStatus({code:2,message:e}),t.setAttribute(`sentry.cancellation_reason`,`document.hidden`),t.end()}}):X&&K.warn(`[Tracing] Could not set up background tab detection due to lack of global document`)}var J6=`sentry_previous_trace`,Fpe=`sentry.previous_trace`;function Ipe(e,{linkPreviousTrace:t,consistentTraceSampling:n}){let r=t===`session-storage`,i=r?zpe():void 0;e.on(`spanStart`,e=>{if(sL(e)!==e)return;let t=q().getPropagationContext();i=Lpe(i,e,t),r&&Rpe(i)});let a=!0;n&&e.on(`beforeSampling`,e=>{if(!i)return;let t=q(),n=t.getPropagationContext();if(a&&n.parentSpanId){a=!1;return}t.setPropagationContext({...n,dsc:{...n.dsc,sample_rate:String(i.sampleRate),sampled:String(Y6(i.spanContext))},sampleRand:i.sampleRand}),e.parentSampled=Y6(i.spanContext),e.parentSampleRate=i.sampleRate,e.spanAttributes={...e.spanAttributes,[IF]:i.sampleRate}})}function Lpe(e,t,n){let r=KI(t);function i(){try{let e=Number(r.data?.[`sentry.sample_rate`]??n.dsc?.sample_rate);return Number.isNaN(e)?0:e}catch{return 0}}let a={spanContext:t.spanContext(),startTimestamp:r.start_timestamp,sampleRate:i(),sampleRand:n.sampleRand};if(!e)return a;let o=e.spanContext;return o.traceId===r.trace_id?e:(Date.now()/1e3-e.startTimestamp<=3600&&(X&&K.log(`Adding previous_trace \`${JSON.stringify(o)}\` link to span \`${JSON.stringify({op:r.op,...t.spanContext()})}\``),t.addLink({context:o,attributes:{[$F]:`previous_trace`}}),t.setAttribute(Fpe,`${o.traceId}-${o.spanId}-${+!!Y6(o)}`)),a)}function Rpe(e){try{Y.sessionStorage.setItem(J6,JSON.stringify(e))}catch(e){X&&K.warn(`Could not store previous trace in sessionStorage`,e)}}function zpe(){try{let e=Y.sessionStorage?.getItem(J6);return JSON.parse(e)}catch{return}}function Y6(e){return e.traceFlags===1}var Bpe=`BrowserTracing`,Vpe=/Googlebot|Google-InspectionTool|Storebot-Google|Bingbot|Slurp|DuckDuckBot|Baiduspider|YandexBot|Facebot|facebookexternalhit|LinkedInBot|Twitterbot|Applebot/i;function X6(){let e=Y.navigator;return e?.userAgent?Vpe.test(e.userAgent):!1}var Hpe={...jR,instrumentNavigation:!0,instrumentPageLoad:!0,markBackgroundSpan:!0,enableLongTask:!0,enableLongAnimationFrame:!0,enableInp:!0,ignoreResourceSpans:[],ignorePerformanceApiSpans:[],detectRedirects:!0,linkPreviousTrace:`in-memory`,consistentTraceSampling:!1,enableReportPageLoaded:!1,_experiments:{},...V6},Z6=((e={})=>{`enableElementTiming`in e&&rN(()=>{console.warn("[Sentry] `enableElementTiming` is deprecated and no longer has any effect. Use the standalone `elementTimingIntegration` instead.")});let t={name:void 0,source:void 0},n=Y.document,{enableInp:r,enableLongTask:i,enableLongAnimationFrame:a,_experiments:{enableInteractions:o,enableStandaloneClsSpans:s,enableStandaloneLcpSpans:c},beforeStartSpan:l,idleTimeout:u,finalTimeout:d,childSpanTimeout:f,markBackgroundSpan:p,traceFetch:m,traceXHR:h,trackFetchStreamPerformance:g,shouldCreateSpanForRequest:_,enableHTTPTimings:v,ignoreResourceSpans:y,ignorePerformanceApiSpans:b,instrumentPageLoad:x,instrumentNavigation:S,detectRedirects:C,linkPreviousTrace:w,consistentTraceSampling:T,enableReportPageLoaded:ee,onRequestSpanStart:E,onRequestSpanEnd:te}={...Hpe,...e},ne=X6(),re,ie;function ae(e,r,i=!0,a){let o=r.op===`pageload`,s=r.name,c=l?l(r):r,p=JV(a||NJ()),m={...p?.pathname&&{"url.path":p.pathname},...p&&!qV(p)&&{"url.full":p.href},...c.attributes};if(s!==c.name&&(m[PF]=`custom`),c.attributes=m,!i){let e=BP();mR({...c,startTime:e}).end(e);return}t.name=c.name,t.source=m[PF];let h=IR(c,{idleTimeout:u,finalTimeout:d,childSpanTimeout:f,disableAutoFinish:o,beforeSpanEnd:t=>{g1(t,{ignoreResourceSpans:y,ignorePerformanceApiSpans:b,spanStreamingEnabled:tR(e)}),i8(e,void 0);let n=q(),r=n.getPropagationContext();n.setPropagationContext({...r,traceId:h.spanContext().traceId,sampled:QI(h),dsc:OL(t)}),o&&(ie=void 0)},trimIdleSpanEndTimestamp:!ee});o&&ee&&(ie=h),i8(e,h);function g(){n&&[`interactive`,`complete`].includes(n.readyState)&&(e.emit(`idleSpanEnableAutoFinish`,h),n.removeEventListener(`readystatechange`,g))}o&&!ee&&n&&(n.addEventListener(`readystatechange`,g),g())}return{name:Bpe,setup(e){if(ne){X&&K.log(`[Tracing] Skipping browserTracingIntegration setup for bot user agent.`);return}if(pL(),a&&G.PerformanceObserver&&PerformanceObserver.supportedEntryTypes?.includes(`long-animation-frame`)?u1():i&&l1(),o&&d1(),C&&n){let e=()=>{re=UP()};addEventListener(`click`,e,{capture:!0}),addEventListener(`keydown`,e,{capture:!0,passive:!0})}function t(){let t=r8(e);t&&!KI(t).timestamp&&(X&&K.log(`[Tracing] Finishing current active span with op: ${KI(t).op}`),t.setAttribute(zF,`cancelled`),t.end())}e.on(`startNavigationSpan`,(n,r)=>{if(J()!==e)return;if(r?.isRedirect){X&&K.warn(`[Tracing] Detected redirect, navigation span will not be the root span, but a child span.`),ae(e,{op:`navigation.redirect`,...n},!1,r.url);return}re=void 0,t(),kF().setPropagationContext({traceId:QP(),sampleRand:Math.random(),propagationSpanId:mL()?void 0:$P()});let i=q();i.setPropagationContext({traceId:QP(),sampleRand:Math.random(),propagationSpanId:mL()?void 0:$P()}),i.setSDKProcessingMetadata({normalizedRequest:void 0}),ae(e,{op:`navigation`,...n,parentSpan:null,forceTransaction:!0},!0,r?.url)}),e.on(`startPageLoadSpan`,(n,r={})=>{if(J()!==e)return;t();let i=MI(r.sentryTrace||e8(`sentry-trace`)||t8(`sentry-trace`),r.baggage||e8(`baggage`)||t8(`baggage`)),a=q();a.setPropagationContext(i),mL()||(a.getPropagationContext().propagationSpanId=$P()),a.setSDKProcessingMetadata({normalizedRequest:qZ()}),ae(e,{op:`pageload`,...n})}),e.on(`endPageloadSpan`,()=>{ee&&ie&&(ie.setAttribute(zF,`reportPageLoaded`),ie.end())})},afterAllSetup(e){if(ne)return;e.addIntegration&&!e.getIntegrationByName?.(`WebVitals`)&&e.addIntegration(q6({ignore:r?[]:[`inp`],_experiments:{enableStandaloneClsSpans:s,enableStandaloneLcpSpans:c}}));let n=NJ();if(w!==`off`&&Ipe(e,{linkPreviousTrace:w,consistentTraceSampling:T}),Y.location){if(x){let t=KP();Q6(e,{name:Y.location.pathname,startTime:t?t/1e3:void 0,attributes:{[PF]:`url`,[RF]:`auto.pageload.browser`}})}S&&o0(({to:t,from:r})=>{if(r===void 0&&n?.indexOf(t)!==-1){n=void 0;return}n=void 0;let i=JV(t),a=r8(e),o=a&&C&&Wpe(a,re);$6(e,{name:i?.pathname||Y.location.pathname,attributes:{[PF]:`url`,[RF]:`auto.navigation.browser`}},{url:t,isRedirect:o})})}p&&Ppe(),o&&Upe(e,u,d,f,t),H6(e,{traceFetch:m,traceXHR:h,tracePropagationTargets:e.getOptions().tracePropagationTargets,shouldCreateSpanForRequest:_,enableHTTPTimings:v,onRequestSpanStart:E,onRequestSpanEnd:te}),g&&e.addIntegration(K6())}}});function Q6(e,t,n){e.emit(`startPageLoadSpan`,t,n),q().setTransactionName(t.name);let r=r8(e);return r&&e.emit(`afterStartPageLoadSpan`,r),r}function $6(e,t,n){let{url:r,isRedirect:i}=n||{};e.emit(`beforeStartNavigationSpan`,t,{isRedirect:i,url:r}),e.emit(`startNavigationSpan`,t,{isRedirect:i,url:r});let a=q();return a.setTransactionName(t.name),r&&!i&&a.setSDKProcessingMetadata({normalizedRequest:{...qZ(),url:r}}),r8(e)}function e8(e){return(Y.document?.querySelector(`meta[name=${e}]`))?.getAttribute(`content`)||void 0}function t8(e){return(Y.performance?.getEntriesByType?.(`navigation`)[0])?.serverTiming?.find(t=>t.name===e)?.description}function Upe(e,t,n,r,i){let a=Y.document,o;a&&addEventListener(`click`,()=>{let a=`ui.action.click`,s=r8(e);if(s){let e=KI(s).op;if([`navigation`,`pageload`].includes(e)){X&&K.warn(`[Tracing] Did not create ${a} span because a pageload or navigation span is in progress.`);return}}if(o&&=(o.setAttribute(zF,`interactionInterrupted`),o.end(),void 0),!i.name){X&&K.warn(`[Tracing] Did not create ${a} transaction because _latestRouteName is missing.`);return}o=IR({name:i.name,op:a,attributes:{[PF]:i.source||`url`}},{idleTimeout:t,finalTimeout:n,childSpanTimeout:r})},{capture:!0})}var n8=`_sentry_idleSpan`;function r8(e){return e[n8]}function i8(e,t){ZN(e,n8,t)}var a8=1.5;function Wpe(e,t){let n=KI(e),r=BP();return!(r-n.start_timestamp>a8||t&&r-t<=a8)}function Gpe(e=J()){e?.emit(`endPageloadSpan`)}function Kpe(e){let t=lL();if(t===e)return;let n=q();e.end=new Proxy(e.end,{apply(e,r,i){return rF(n,t),Reflect.apply(e,r,i)}}),rF(n,e)}var qpe=vB(()=>({name:`SpanStreaming`,beforeSetup(e){let t=e.getOptions();t.traceLifecycle||=(X&&K.log('[SpanStreaming] setting `traceLifecycle` to "stream"'),`stream`)},setup(e){let t=`SpanStreaming integration requires`,n=`Falling back to static trace lifecycle.`,r=e.getOptions();if(!tR(e)){r.traceLifecycle=`static`,X&&K.warn(`${t} \`traceLifecycle\` to be set to "stream"! ${n}`);return}let i=r.beforeSendSpan;if(i&&!jL(i)){r.traceLifecycle=`static`,X&&K.warn(`${t} a beforeSendSpan callback using \`withStreamedSpan\`! ${n}`);return}let a=new uJ(e);e.on(`afterSpanEnd`,t=>{QI(t)&&a.add(cz(t,e))}),e.on(`afterSegmentSpanEnd`,e=>{let t=e.spanContext().traceId;setTimeout(()=>{a.flush(t)},500)})}})),o8=1e6,Jpe=`window`in G&&G.window===G&&typeof importScripts>`u`,s8=`0`,c8=Jpe?`main`:`worker`,l8=Y.navigator,u8=``,d8=``,f8=``,p8=l8?.userAgent||``,m8=``,Ype=l8?.language||l8?.languages?.[0]||``;function Xpe(e){return typeof e==`object`&&!!e&&`getHighEntropyValues`in e}var h8=l8?.userAgentData;Xpe(h8)&&h8.getHighEntropyValues([`architecture`,`model`,`platform`,`platformVersion`,`fullVersionList`]).then(e=>{if(u8=e.platform||``,f8=e.architecture||``,m8=e.model||``,d8=e.platformVersion||``,e.fullVersionList?.length){let t=e.fullVersionList[e.fullVersionList.length-1];p8=`${t.brand} ${t.version}`}}).catch(e=>void 0);function Zpe(e){return!(`thread_metadata`in e)}function Qpe(e){return Zpe(e)?ime(e):e}function $pe(e){let t=e.contexts?.trace?.trace_id;return typeof t==`string`&&t.length!==32&&X&&K.log(`[Profiling] Invalid traceId: ${t} on profiled event`),typeof t==`string`?t:``}function eme(e,t,n,r){if(r.type!==`transaction`)throw TypeError(`Profiling events may only be attached to transactions, this should never occur.`);if(n==null)throw TypeError(`Cannot construct profiling event envelope without a valid profile. Got ${n} instead.`);let i=$pe(r),a=Qpe(n),o=t||(typeof r.start_timestamp==`number`?r.start_timestamp*1e3:UP()*1e3),s=typeof r.timestamp==`number`?r.timestamp*1e3:UP()*1e3;return{event_id:e,timestamp:new Date(o).toISOString(),platform:`javascript`,version:`1`,release:r.release||``,environment:r.environment||`production`,runtime:{name:`javascript`,version:Y.navigator.userAgent},os:{name:u8,version:d8,build_number:p8},device:{locale:Ype,model:m8,manufacturer:p8,architecture:f8,is_emulator:!1},debug_meta:{images:_8(n.resources)},profile:a,transactions:[{name:r.transaction||``,id:r.event_id||jP(),trace_id:i,active_thread_id:s8,relative_start_ns:`0`,relative_end_ns:((s-o)*1e6).toFixed(0)}]}}function tme(e,t,n){if(e==null)throw TypeError(`Cannot construct profiling event envelope without a valid profile. Got ${e} instead.`);let r=rme(e),i=t.getOptions(),a=t.getSdkMetadata?.()?.sdk;return{chunk_id:jP(),client_sdk:{name:a?.name??`sentry.javascript.browser`,version:a?.version??`0.0.0`},profiler_id:n||jP(),platform:`javascript`,version:`2`,release:i.release??``,environment:i.environment??`production`,debug_meta:{images:_8(e.resources)},profile:r}}function nme(e){try{if(!e||typeof e!=`object`)return{reason:`chunk is not an object`};let t=e=>typeof e==`string`&&/^[a-f0-9]{32}$/.test(e);if(!t(e.profiler_id))return{reason:`missing or invalid profiler_id`};if(!t(e.chunk_id))return{reason:`missing or invalid chunk_id`};if(!e.client_sdk)return{reason:`missing client_sdk metadata`};let n=e.profile;return n?!Array.isArray(n.frames)||!n.frames.length?{reason:`profile has no frames`}:!Array.isArray(n.stacks)||!n.stacks.length?{reason:`profile has no stacks`}:!Array.isArray(n.samples)||!n.samples.length?{reason:`profile has no samples`}:{valid:!0}:{reason:`missing profile data`}}catch(e){return{reason:`unknown validation error: ${e}`}}}function rme(e){let t=[];for(let n=0;n<e.frames.length;n++){let r=e.frames[n];r&&(t[n]={function:r.name,abs_path:typeof r.resourceId==`number`?e.resources[r.resourceId]:void 0,lineno:r.line,colno:r.column})}let n=[];for(let t=0;t<e.stacks.length;t++){let r=e.stacks[t];if(!r)continue;let i=[],a=r;for(;a;)i.push(a.frameId),a=a.parentId===void 0?void 0:e.stacks[a.parentId];n[t]=i}let r=KP(),i=typeof performance.timeOrigin==`number`?performance.timeOrigin:r||0,a=i-(r||i),o=[];for(let t=0;t<e.samples.length;t++){let n=e.samples[t];if(!n)continue;let r=(i+(n.timestamp-a))/1e3;o[t]={stack_id:n.stackId??0,thread_id:s8,timestamp:r}}return{frames:t,stacks:n,samples:o,thread_metadata:{[s8]:{name:c8}}}}function g8(e){return KI(e).op===`pageload`}function ime(e){let t,n=0,r={samples:[],stacks:[],frames:[],thread_metadata:{[s8]:{name:c8}}},i=e.samples[0];if(!i)return r;let a=i.timestamp,o=KP(),s=typeof performance.timeOrigin==`number`?performance.timeOrigin:o||0,c=s-(o||s);return e.samples.forEach((i,o)=>{if(i.stackId===void 0){t===void 0&&(t=n,r.stacks[t]=[],n++),r.samples[o]={elapsed_since_start_ns:((i.timestamp+c-a)*o8).toFixed(0),stack_id:t,thread_id:s8};return}let s=e.stacks[i.stackId],l=[];for(;s;){l.push(s.frameId);let t=e.frames[s.frameId];t&&r.frames[s.frameId]===void 0&&(r.frames[s.frameId]={function:t.name,abs_path:typeof t.resourceId==`number`?e.resources[t.resourceId]:void 0,lineno:t.line,colno:t.column}),s=s.parentId===void 0?void 0:e.stacks[s.parentId]}let u={elapsed_since_start_ns:((i.timestamp+c-a)*o8).toFixed(0),stack_id:n,thread_id:s8};r.stacks[n]=l,r.samples[o]=u,n++}),r}function ame(e,t){if(!t.length)return e;for(let n of t)e[1].push([{type:`profile`},n]);return e}function ome(e){let t=[];return PL(e,(e,n)=>{if(n===`transaction`)for(let n=1;n<e.length;n++)e[n]?.contexts?.profile?.profile_id&&t.push(e[n])}),t}function _8(e){let t=J()?.getOptions()?.stackParser;return t?Dz(t,e):[]}function v8(e){return typeof e!=`number`&&typeof e!=`boolean`||typeof e==`number`&&isNaN(e)?(X&&K.warn(`[Profiling] Invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(e)} of type ${JSON.stringify(typeof e)}.`),!1):e===!0||e===!1?!0:e<0||e>1?(X&&K.warn(`[Profiling] Invalid sample rate. Sample rate must be between 0 and 1. Got ${e}.`),!1):!0}function sme(e){return e.samples.length<2?(X&&K.log(`[Profiling] Discarding profile because it contains less than 2 samples`),!1):e.frames.length?!0:(X&&K.log(`[Profiling] Discarding profile because it contains no frames`),!1)}var y8=!1,b8=3e4;function cme(e){return typeof e==`function`}function x8(){let e=Y.Profiler;if(!cme(e)){X&&K.log(`[Profiling] Profiling is not supported by this browser, Profiler interface missing on window object.`);return}let t=Math.floor(b8/10);try{return new e({sampleInterval:10,maxBufferSize:t})}catch{X&&(K.log(`[Profiling] Failed to initialize the Profiling constructor, this is likely due to a missing 'Document-Policy': 'js-profiling' header.`),K.log(`[Profiling] Disabling profiling for current user session.`)),y8=!0}}function S8(e){if(y8)return X&&K.log(`[Profiling] Profiling has been disabled for the duration of the current user session.`),!1;if(!e.isRecording())return X&&K.log(`[Profiling] Discarding profile because root span was not sampled.`),!1;let t=J()?.getOptions();if(!t)return X&&K.log(`[Profiling] Profiling disabled, no options found.`),!1;let n=t.profilesSampleRate;return v8(n)?n?n===!0||Math.random()<n||(X&&K.log(`[Profiling] Discarding profile because it's not included in the random sample (sampling rate = ${Number(n)})`),!1):(X&&K.log(`[Profiling] Discarding profile because a negative sampling decision was inherited or profileSampleRate is set to 0`),!1):(X&&K.warn(`[Profiling] Discarding profile because of invalid sample rate.`),!1)}function lme(e){if(y8)return X&&K.log(`[Profiling] Profiling has been disabled for the duration of the current user session as the JS Profiler could not be started.`),!1;if(e.profileLifecycle!==`trace`&&e.profileLifecycle!==`manual`)return X&&K.warn("[Profiling] Session not sampled. Invalid `profileLifecycle` option."),!1;let t=e.profileSessionSampleRate;return v8(t)?t?Math.random()<=t:(X&&K.log(`[Profiling] Discarding profile because profileSessionSampleRate is not defined or set to 0`),!1):(X&&K.warn(`[Profiling] Discarding profile because of invalid profileSessionSampleRate.`),!1)}function C8(e){return e.profilesSampleRate!==void 0}function ume(e,t,n,r){return sme(n)?eme(e,t,n,r):null}var w8=new Map;function dme(){return w8.size}function fme(e){let t=w8.get(e);return t&&w8.delete(e),t}function pme(e,t){if(w8.set(e,t),w8.size>30){let e=w8.keys().next().value;e!==void 0&&w8.delete(e)}}var T8=new WeakSet;function E8(e){e.setAttribute(`thread.id`,s8),e.setAttribute(`thread.name`,c8)}function D8(e){let t;g8(e)&&(t=UP()*1e3);let n=x8();if(!n)return;X&&K.log(`[Profiling] started profiling span: ${KI(e).description}`);let r=jP(),i=null;q().setContext(`profile`,{profile_id:r,start_timestamp:t}),T8.add(e),E8(e);async function a(){if(e&&n){if(i){X&&K.log(`[Profiling] profile for:`,KI(e).description,`already exists, returning early`);return}return n.stop().then(t=>{if(o&&=(Y.clearTimeout(o),void 0),X&&K.log(`[Profiling] stopped profiling of span: ${KI(e).description}`),!t){X&&K.log(`[Profiling] profiler returned null profile for: ${KI(e).description}`,`this may indicate an overlapping span or a call to stopProfiling with a profile title that was never started`);return}i=t,pme(r,t)}).catch(e=>{X&&K.log(`[Profiling] error while stopping profiler:`,e)})}}let o=Y.setTimeout(()=>{X&&K.log(`[Profiling] max profile duration elapsed, stopping profiling for:`,KI(e).description),a()},b8),s=e.end.bind(e);function c(){return e?(a().then(()=>{s()},()=>{s()}),e):s()}e.end=c}var mme=6e4,hme=3e5,gme=class{constructor(){this._client=void 0,this._profiler=void 0,this._chunkTimer=void 0,this._profilerId=void 0,this._isRunning=!1,this._sessionSampled=!1,this._lifecycleMode=void 0,this._activeRootSpanIds=new Set,this._rootSpanTimeouts=new Map}initialize(e){let t=e.getOptions().profileLifecycle,n=lme(e.getOptions());X&&K.log(`[Profiling] Initializing profiler (lifecycle='${t}').`),n||X&&K.log(`[Profiling] Session not sampled. Skipping lifecycle profiler initialization.`),this._profilerId=jP(),this._client=e,this._sessionSampled=n,this._lifecycleMode=t,t===`trace`&&this._setupTraceLifecycleListeners(e),e.on(`spanStart`,e=>{this._isRunning&&E8(e)})}start(){if(this._lifecycleMode===`trace`){X&&K.warn('[Profiling] `profileLifecycle` is set to "trace". Calls to `uiProfiler.start()` are ignored in trace mode.');return}if(this._isRunning){X&&K.warn("[Profiling] Profile session is already running, `uiProfiler.start()` is a no-op.");return}if(!this._sessionSampled){X&&K.warn("[Profiling] Session is not sampled, `uiProfiler.start()` is a no-op.");return}this._beginProfiling()}stop(){if(this._lifecycleMode===`trace`){X&&K.warn('[Profiling] `profileLifecycle` is set to "trace". Calls to `uiProfiler.stop()` are ignored in trace mode.');return}if(!this._isRunning){X&&K.warn("[Profiling] Profiler is not running, `uiProfiler.stop()` is a no-op.");return}this._endProfiling()}notifyRootSpanActive(e){if(this._lifecycleMode!==`trace`||!this._sessionSampled)return;let t=e.spanContext().spanId;if(!t||this._activeRootSpanIds.has(t))return;this._registerTraceRootSpan(t);let n=this._activeRootSpanIds.size;n===1&&(X&&K.log(`[Profiling] Detected already active root span during setup. Active root spans now:`,n),this._beginProfiling()),this._isRunning&&E8(e)}_beginProfiling(){if(!this._isRunning){if(this._isRunning=!0,X&&K.log(`[Profiling] Started profiling with profiler ID:`,this._profilerId),AF().setContext(`profile`,{profiler_id:this._profilerId}),this._startProfilerInstance(),!this._profiler){X&&K.log(`[Profiling] Failed to start JS Profiler; stopping.`),this._resetProfilerInfo();return}this._startPeriodicChunking()}}_endProfiling(){this._isRunning&&(this._isRunning=!1,this._chunkTimer&&=(clearTimeout(this._chunkTimer),void 0),this._clearAllRootSpanTimeouts(),this._collectCurrentChunk().catch(e=>{X&&K.error("[Profiling] Failed to collect current profile chunk on `stop()`:",e)}),this._lifecycleMode===`manual`&&AF().setContext(`profile`,{}))}_setupTraceLifecycleListeners(e){e.on(`spanStart`,e=>{if(!this._sessionSampled){X&&K.log(`[Profiling] Span not profiled because of negative sampling decision for user session.`);return}if(e!==sL(e))return;if(!e.isRecording()){X&&K.log(`[Profiling] Discarding profile because root span was not sampled.`);return}let t=e.spanContext().spanId;if(!t||this._activeRootSpanIds.has(t))return;this._registerTraceRootSpan(t);let n=this._activeRootSpanIds.size;n===1&&(X&&K.log(`[Profiling] Root span ${t} started. Profiling active while there are active root spans (count=${n}).`),this._beginProfiling())}),e.on(`spanEnd`,e=>{if(!this._sessionSampled)return;let t=e.spanContext().spanId;if(!t||!this._activeRootSpanIds.has(t))return;this._activeRootSpanIds.delete(t);let n=this._activeRootSpanIds.size;X&&K.log(`[Profiling] Root span with ID ${t} ended. Will continue profiling for as long as there are active root spans (currently: ${n}).`),n===0&&(this._collectCurrentChunk().catch(e=>{X&&K.error("[Profiling] Failed to collect current profile chunk on last `spanEnd`:",e)}),this._endProfiling())})}_resetProfilerInfo(){this._isRunning=!1,AF().setContext(`profile`,{})}_clearAllRootSpanTimeouts(){this._rootSpanTimeouts.forEach(e=>clearTimeout(e)),this._rootSpanTimeouts.clear()}_registerTraceRootSpan(e){this._activeRootSpanIds.add(e);let t=setTimeout(()=>this._onRootSpanTimeout(e),hme);this._rootSpanTimeouts.set(e,t)}_startProfilerInstance(){if(this._profiler?.stopped===!1)return;let e=x8();if(!e){X&&K.log(`[Profiling] Failed to start JS Profiler.`);return}this._profiler=e}_startPeriodicChunking(){this._isRunning&&(this._chunkTimer=setTimeout(()=>{if(this._collectCurrentChunk().catch(e=>{X&&K.error(`[Profiling] Failed to collect current profile chunk during periodic chunking:`,e)}),this._isRunning){if(this._startProfilerInstance(),!this._profiler){this._resetProfilerInfo();return}this._startPeriodicChunking()}},mme))}_onRootSpanTimeout(e){this._rootSpanTimeouts.has(e)&&(this._rootSpanTimeouts.delete(e),this._activeRootSpanIds.has(e)&&(X&&K.log(`[Profiling] Reached 5-minute timeout for root span ${e}. You likely started a manual root span that never called \`.end()\`.`),this._activeRootSpanIds.delete(e),this._activeRootSpanIds.size===0&&this._endProfiling()))}async _collectCurrentChunk(){let e=this._profiler;if(this._profiler=void 0,e)try{let t=tme(await e.stop(),this._client,this._profilerId),n=nme(t);if(`reason`in n){X&&K.log(`[Profiling] Discarding invalid profile chunk (this is probably a bug in the SDK):`,n.reason);return}this._sendProfileChunk(t),X&&K.log(`[Profiling] Collected browser profile chunk.`)}catch(e){X&&K.log(`[Profiling] Error while stopping JS Profiler for chunk:`,e)}}_sendProfileChunk(e){let t=this._client,n=WL(t.getSdkMetadata?.()),r=t.getDsn(),i=t.getOptions().tunnel,a=ML({event_id:jP(),sent_at:new Date().toISOString(),...n&&{sdk:n},...!!i&&r&&{dsn:SI(r)}},[[{type:`profile_chunk`,platform:`javascript`},e]]);t.sendEnvelope(a).then(null,e=>{X&&K.error(`Error while sending profile chunk envelope:`,e)})}},_me=`BrowserProfiling`,vme=vB((()=>({name:_me,setup(e){let t=e.getOptions(),n=new gme;if(!C8(t)&&!t.profileLifecycle&&(t.profileLifecycle=`manual`),C8(t)&&!t.profilesSampleRate){X&&K.log(`[Profiling] Profiling disabled, no profiling options found.`);return}let r=lL(),i=r&&sL(r);if(C8(t)&&t.profileSessionSampleRate!==void 0&&X&&K.warn("[Profiling] Both legacy profiling (`profilesSampleRate`) and UI profiling settings are defined. `profileSessionSampleRate` has no effect when legacy profiling is enabled."),C8(t))i&&g8(i)&&S8(i)&&D8(i),e.on(`spanStart`,e=>{let t=sL(e);e===t?S8(e)&&D8(e):T8.has(t)&&E8(e)}),e.on(`beforeEnvelope`,e=>{if(!dme())return;let t=ome(e);if(!t.length)return;let n=[];for(let e of t){let t=e?.contexts,r=t?.profile?.profile_id,i=t?.profile?.start_timestamp;if(typeof r!=`string`){X&&K.log(`[Profiling] cannot find profile for a span without a profile context`);continue}if(!r){X&&K.log(`[Profiling] cannot find profile for a span without a profile context`);continue}t?.profile&&delete t.profile;let a=fme(r);if(!a){X&&K.log(`[Profiling] Could not retrieve profile for span: ${r}`);continue}let o=ume(r,i,a,e);o&&n.push(o)}ame(e,n)});else{let r=t.profileLifecycle;if(e.on(`startUIProfiler`,()=>n.start()),e.on(`stopUIProfiler`,()=>n.stop()),r===`manual`)n.initialize(e);else if(r===`trace`){if(!mL(t)){X&&K.warn("[Profiling] `profileLifecycle` is 'trace' but tracing is disabled. Set a `tracesSampleRate` or `tracesSampler` to enable span tracing.");return}n.initialize(e),i&&n.notifyRootSpanActive(i),Y.setTimeout(()=>{let e=lL(),t=e&&sL(e);t&&n.notifyRootSpanActive(t)},0)}}}}))),yme=`SpotlightBrowser`,bme=[{op:`ui.interaction.click`,name:`#sentry-spotlight`}],xme=((e={})=>{let t=e.sidecarUrl||`http://localhost:8969/stream`;return{name:yme,setup:()=>{X&&K.log(`Using Sidecar URL`,t)},beforeSetup(e){let t=e.getOptions();t.ignoreSpans=[...t.ignoreSpans||[],...bme]},afterAllSetup:e=>{Sme(e,t)}}});function Sme(e,t){let n=u0(`fetch`),r=0;e.on(`beforeEnvelope`,e=>{if(r>3){K.warn(`[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests:`,r);return}n(t,{method:`POST`,body:LL(e),headers:{"Content-Type":`application/x-sentry-envelope`},mode:`cors`}).then(e=>{e.status>=200&&e.status<400&&(r=0)},e=>{r++,K.error(`Sentry SDK can't connect to Sidecar is it running? See: https://spotlightjs.com/sidecar/npx/`,e)})})}var Cme=vB(xme),wme=vB(()=>({name:`LaunchDarkly`,processEvent(e,t,n){return eW(e)}}));function Tme(){return{name:`sentry-flag-auditor`,type:`flag-used`,synchronous:!0,method:(e,t,n)=>{tW(e,t.value),rW(e,t.value)}}}var Eme=vB(()=>({name:`OpenFeature`,processEvent(e,t,n){return eW(e)}})),Dme=class{after(e,t){tW(t.flagKey,t.value),rW(t.flagKey,t.value)}error(e,t,n){tW(e.flagKey,e.defaultValue),rW(e.flagKey,e.defaultValue)}},Ome=vB(({featureFlagClientClass:e})=>({name:`Unleash`,setupOnce(){let t=e.prototype;XN(t,`isEnabled`,kme)},processEvent(e,t,n){return eW(e)}}));function kme(e){return function(...t){let n=t[0],r=e.apply(this,t);return typeof n==`string`&&typeof r==`boolean`?(tW(n,r),rW(n,r)):X&&K.error(`[Feature Flags] UnleashClient.isEnabled does not match expected signature. arg0: ${n} (${typeof n}), result: ${r} (${typeof r})`),r}}var Ame=(({growthbookClass:e})=>aW({growthbookClass:e})),jme=vB(({featureFlagClient:e})=>({name:`Statsig`,setup(t){e.on(`gate_evaluation`,e=>{tW(e.gate.name,e.gate.value),rW(e.gate.name,e.gate.value)})},processEvent(e,t,n){return eW(e)}})),Mme=`WebWorker`,Nme=vB(({worker:e})=>({name:Mme,setupOnce:()=>{(Array.isArray(e)?e:[e]).forEach(e=>O8(e))},addWorker:e=>O8(e)}));function O8(e){e.addEventListener(`message`,e=>{if(Ime(e.data)){if(e.stopImmediatePropagation(),e.data._sentryDebugIds&&(X&&K.log(`Sentry debugId web worker message received`,e.data),Y._sentryDebugIds={...e.data._sentryDebugIds,...Y._sentryDebugIds}),e.data._sentryModuleMetadata&&(X&&K.log(`Sentry module metadata web worker message received`,e.data),Y._sentryModuleMetadata={...e.data._sentryModuleMetadata,...Y._sentryModuleMetadata}),e.data._sentryWasmImages){X&&K.log(`Sentry WASM images web worker message received`,e.data);let t=Y._sentryWasmImages||[],n=e.data._sentryWasmImages.filter(e=>UN(e)&&typeof e.code_file==`string`&&!t.some(t=>t.code_file===e.code_file));Y._sentryWasmImages=[...t,...n]}e.data._sentryWorkerError&&(X&&K.log(`Sentry worker rejection message received`,e.data._sentryWorkerError),Pme(e.data._sentryWorkerError))}})}function Pme(e){let t=J();if(!t)return;let n=t.getOptions().stackParser,r=t.getOptions().attachStacktrace,i=e.reason,a=HN(i)?Z0(i):mQ(n,i,void 0,r,!0);a.level=`error`,e.filename&&(a.contexts={...a.contexts,worker:{filename:e.filename}}),Vz(a,{originalException:i,mechanism:{handled:!1,type:`auto.browser.web_worker.onunhandledrejection`}}),X&&K.log(`Captured worker unhandled rejection`,i)}function Fme({self:e}){e.postMessage({_sentryMessage:!0,_sentryDebugIds:e._sentryDebugIds??void 0,_sentryModuleMetadata:e._sentryModuleMetadata??void 0}),e.addEventListener(`unhandledrejection`,t=>{let n={reason:X0(t),filename:e.location?.href};e.postMessage({_sentryMessage:!0,_sentryWorkerError:n}),X&&K.log(`[Sentry Worker] Forwarding unhandled rejection to parent`,n)}),X&&K.log(`[Sentry Worker] Registered worker with unhandled rejection handling`)}function Ime(e){if(!UN(e)||e._sentryMessage!==!0)return!1;let t=`_sentryDebugIds`in e,n=`_sentryModuleMetadata`in e,r=`_sentryWorkerError`in e,i=`_sentryWasmImages`in e;return!(!t&&!n&&!r&&!i||t&&!(UN(e._sentryDebugIds)||e._sentryDebugIds===void 0)||n&&!(UN(e._sentryModuleMetadata)||e._sentryModuleMetadata===void 0)||r&&!UN(e._sentryWorkerError)||i&&(!Array.isArray(e._sentryWasmImages)||!e._sentryWasmImages.every(e=>UN(e)&&typeof e.code_file==`string`)))}var Lme=50,[,Rme]=I0,[,zme]=kJ(),k8=(e,t=0)=>{let n=[];for(let r of e.split(`
|
|
1004
1004
|
`).slice(t)){let e=Rme(r),t=zme(r);if(e&&t?.in_app!==!1?n.push(e):t&&(t.module===void 0&&delete t.module,n.push(t)),n.length>=Lme)break}return _N(n)},Bme=vB(e=>{let t=e?.threshold??1e3,n=e?.pollInterval||t/2;return{name:`EventLoopBlockRenderer`,setup(r){let i={pollInterval:n,anrThreshold:t,captureStackTrace:!0,...e},a=BJ(r);a.sendStatus({status:document.visibilityState,config:i}),setInterval(()=>{a.sendStatus({status:`alive`,config:i})},i.pollInterval)}}});function A8(){let e=AF().getScopeData(),t=kF().getScopeData(),n=q().getScopeData();return $R(e,t),$R(e,n),e.eventProcessors=[],e}function Vme(e){kF().addScopeListener(t=>{e(A8(),t)}),q().addScopeListener(t=>{e(A8(),t)}),AF().addScopeListener(t=>{e(A8(),t)})}var j8=vB(()=>({name:`ScopeToMain`,setup(e){let t=BJ(e);Vme((e,n)=>{t.sendScope(JSON.stringify(mP(e,20,2e3))),n.clearBreadcrumbs(),n.clearAttachments()})}}));function M8(e){let t;return sV(e,async e=>(t||=BJ(),t.sendEnvelope(e.body),{statusCode:200}))}function N8(e){return[...r2(e).filter(e=>e.name!==`BrowserSession`&&e.name!==`CultureContext`),j8()]}function P8(e={},t=Uce){if(window?.__SENTRY__RENDERER_INIT__){K.warn(`The browser SDK has already been initialized.
|
|
1005
|
-
If init has been called in the preload and contextIsolation is disabled, is not required to call init in the renderer`);return}window.__SENTRY__RENDERER_INIT__=!0,e.sendClientReports=!1,e.defaultIntegrations===void 0&&(e.defaultIntegrations=N8(e)),e.stackParser===void 0&&(e.stackParser=k8),e.ipcNamespace===void 0&&(e.ipcNamespace=`sentry-ipc`),e.dsn===void 0&&(e.dsn=`https://12345@dummy.dsn/12345`),e.transport===void 0&&(e.transport=M8),delete e.initialScope,t(e)}var F8=e({BrowserClient:()=>yQ,MULTIPLEXED_TRANSPORT_EXTRA_KEY:()=>VV,OpenFeatureIntegrationHook:()=>Dme,SEMANTIC_ATTRIBUTE_SENTRY_OP:()=>LF,SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN:()=>RF,SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE:()=>FF,SEMANTIC_ATTRIBUTE_SENTRY_SOURCE:()=>PF,Scope:()=>oF,addBreadcrumb:()=>fH,addEventProcessor:()=>eB,addIntegration:()=>_B,bindScopeToEmitter:()=>WR,breadcrumbsIntegration:()=>W0,browserApiErrorsIntegration:()=>G0,browserProfilingIntegration:()=>vme,browserSessionIntegration:()=>q0,browserTracingIntegration:()=>Z6,buildLaunchDarklyFlagUsedHandler:()=>Tme,captureConsoleIntegration:()=>YH,captureEvent:()=>Vz,captureException:()=>zz,captureFeedback:()=>vW,captureMessage:()=>Bz,captureSession:()=>iB,chromeStackLineParser:()=>I0,consoleLoggingIntegration:()=>TW,contextLinesIntegration:()=>cle,continueTrace:()=>gR,createConsolaReporter:()=>kW,createLangChainCallbackHandler:()=>Lq,createTransport:()=>sV,createUserFeedbackEnvelope:()=>V0,dedupeIntegration:()=>QH,defaultRequestInstrumentationOptions:()=>V6,defaultStackParser:()=>k8,elementTimingIntegration:()=>M1,endSession:()=>nB,eventFiltersIntegration:()=>vH,eventFromException:()=>fQ,eventFromMessage:()=>pQ,eventLoopBlockIntegration:()=>Bme,exceptionFromError:()=>nQ,extraErrorDataIntegration:()=>oU,featureFlagsIntegration:()=>iW,feedbackAsyncIntegration:()=>eQ,feedbackIntegration:()=>tQ,feedbackSyncIntegration:()=>tQ,fetchStreamPerformanceIntegration:()=>K6,forceLoad:()=>Wce,functionToStringIntegration:()=>hH,getAbsoluteUrl:()=>C0,getActiveSpan:()=>lL,getClient:()=>J,getCurrentScope:()=>q,getDefaultIntegrations:()=>N8,getFeedback:()=>JY,getGlobalScope:()=>AF,getIsolationScope:()=>kF,getReplay:()=>ipe,getRootSpan:()=>sL,getSpanDescendants:()=>oL,getSpanStatusFromHttpCode:()=>tI,getTraceData:()=>cH,globalHandlersIntegration:()=>Y0,graphqlClientIntegration:()=>gle,growthbookIntegration:()=>Ame,httpClientIntegration:()=>Xce,httpContextIntegration:()=>e2,inboundFiltersIntegration:()=>yH,init:()=>P8,instrumentAnthropicAiClient:()=>QK,instrumentCreateReactAgent:()=>rJ,instrumentGoogleGenAIClient:()=>mq,instrumentLangChainEmbeddings:()=>Hq,instrumentLangGraph:()=>iJ,instrumentOpenAiClient:()=>OK,instrumentOutgoingRequests:()=>H6,instrumentSupabaseClient:()=>PU,isBotUserAgent:()=>X6,isEnabled:()=>$z,isInitialized:()=>Qz,lastEventId:()=>Zz,launchDarklyIntegration:()=>wme,linkedErrorsIntegration:()=>t2,logger:()=>VJ,makeRendererTransport:()=>M8,metrics:()=>YJ,moduleMetadataIntegration:()=>HH,normalizeStringifyValue:()=>n2,onLoad:()=>Gce,openFeatureIntegration:()=>Eme,parameterize:()=>iH,registerSpanErrorInstrumentation:()=>pL,registerWebWorker:()=>Fme,replayCanvasIntegration:()=>Cpe,replayIntegration:()=>d6,reportPageLoaded:()=>Gpe,reportingObserverIntegration:()=>Jce,rewriteFramesIntegration:()=>_U,scopeToMainIntegration:()=>j8,sendFeedback:()=>MY,setActiveSpanInBrowser:()=>Kpe,setAttribute:()=>Jz,setAttributes:()=>qz,setContext:()=>Hz,setConversationId:()=>Xz,setCurrentClient:()=>BV,setExtra:()=>Wz,setExtras:()=>Uz,setHttpStatus:()=>nI,setMeasurement:()=>QL,setTag:()=>Kz,setTags:()=>Gz,setUser:()=>Yz,showReportDialog:()=>i2,spanStreamingIntegration:()=>qpe,spanToBaggageHeader:()=>kL,spanToJSON:()=>KI,spanToTraceHeader:()=>BI,spotlightBrowserIntegration:()=>Cme,startBrowserTracingNavigationSpan:()=>$6,startBrowserTracingPageLoadSpan:()=>Q6,startInactiveSpan:()=>mR,startNewTrace:()=>bR,startSession:()=>tB,startSpan:()=>fR,startSpanManual:()=>pR,statsigIntegration:()=>jme,supabaseIntegration:()=>LU,suppressTracing:()=>vR,thirdPartyErrorFilterIntegration:()=>KU,uiProfiler:()=>O0,unleashIntegration:()=>Ome,updateSpanName:()=>dL,viewHierarchyIntegration:()=>_le,webVitalsIntegration:()=>q6,webWorkerIntegration:()=>Nme,withActiveSpan:()=>_R,withIsolationScope:()=>MF,withScope:()=>jF,withStreamedSpan:()=>AL,zodErrorsIntegration:()=>GU}),Hme=100,Ume=5,Wme=[`ResizeObserver loop completed with undelivered notifications.`,`ResizeObserver loop limit exceeded`,`AbortError`,`The user aborted a request.`,`Network request failed`,`NetworkError when attempting to fetch resource.`,`Failed to fetch`,`ChunkLoadError`,`Loading chunk`,`Loading CSS chunk`,`Non-Error promise rejection captured with value: Object Not Found Matching Id`];function I8(e){if(e)for(let t of Object.keys(e))/token|secret|password|api[_-]?key/i.test(t)&&(e[t]=`[redacted]`)}function Gme(e){e.request?.url&&(e.request.url=e.request.url.replace(/([?&](?:code|token|access_token|state)=)[^&]+/gi,`$1[redacted]`)),I8(e.extra),I8(e.tags)}function Kme(e){let t=R8(e.version)??`0.0.0`,n=R8(e.commitHash);return n?`${e.appName}@${t}+${n}`:`${e.appName}@${t}`}function L8(e,t){for(let n of t){let t=R8(e[n]);if(t)return t}}function qme(e){return z8(e.enabled)??e.defaultEnabled??!1}function Jme(e){let t=R8(e.dsn);return!t||qme(e)===!1?null:{dsn:t,environment:R8(e.environment)??R8(e.defaultEnvironment)??`production`,release:R8(e.release)??R8(e.defaultRelease)??void 0,debug:z8(e.debug)??e.defaultDebug??!1,tracesSampleRate:V8(e.tracesSampleRate,e.defaultTracesSampleRate??.1),profilesSampleRate:B8(e.profilesSampleRate,e.defaultProfilesSampleRate),replaysSessionSampleRate:B8(e.replaysSessionSampleRate,e.defaultReplaysSessionSampleRate),replaysOnErrorSampleRate:B8(e.replaysOnErrorSampleRate,e.defaultReplaysOnErrorSampleRate),attachStacktrace:!0,maxBreadcrumbs:Hme,normalizeDepth:Ume,tags:Yme(e)}}function Yme(e){let t={app:e.appName,runtime:e.runtime};for(let[n,r]of Object.entries(e.tags??{})){let e=R8(r);e&&(t[n]=e)}return t}function R8(e){if(e==null)return null;let t=e.trim();return t.length>0?t:null}function z8(e){if(typeof e==`boolean`)return e;let t=R8(e);if(t){if(t===`1`||t.toLowerCase()===`true`)return!0;if(t===`0`||t.toLowerCase()===`false`)return!1}}function B8(e,t){if(t!==void 0||e!==void 0)return V8(e,t??0)}function V8(e,t){let n=Xme(e);return n===null||n<0||n>1?t:n}function Xme(e){if(typeof e==`number`)return Number.isFinite(e)?e:null;let t=R8(e);if(!t)return null;let n=Number.parseFloat(t);return Number.isFinite(n)?n:null}function Zme(e){let t=(0,Be.c)(11),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=ge(Qe,`bg-background text-foreground`),t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=ge(Ye,`pl-1 md:pl-2.5`),t[1]=r):r=t[1];let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,tt.jsx)(rt,{}),t[2]=i):i=t[2];let a;t[3]===e.onGoToNewChat?a=t[4]:(a=(0,tt.jsx)(`div`,{className:r,children:(0,tt.jsx)(`button`,{type:`button`,"aria-label":`Go to new chat`,onClick:e.onGoToNewChat,className:`${Xe} hover:bg-accent/70`,children:i})}),t[3]=e.onGoToNewChat,t[4]=a);let o;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,tt.jsx)(`div`,{}),t[5]=o):o=t[5];let s;t[6]===a?s=t[7]:(s=(0,tt.jsxs)(`header`,{className:Je,children:[a,o]}),t[6]=a,t[7]=s);let c;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,tt.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center px-4`,children:(0,tt.jsxs)(`div`,{className:`max-w-md rounded-xl border border-border bg-card p-6 text-center shadow-lg`,children:[(0,tt.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight`,children:`Something went wrong.`}),(0,tt.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`Forge hit an unexpected error and reported it.`}),(0,tt.jsx)(`button`,{className:`mt-4 inline-flex rounded-md border border-border px-3 py-2 text-sm font-medium hover:bg-accent`,onClick:Qme,type:`button`,children:`Reload app`})]})}),t[8]=c):c=t[8];let l;return t[9]===s?l=t[10]:(l=(0,tt.jsxs)(`div`,{className:n,children:[s,c]}),t[9]=s,t[10]=l),l}function Qme(){return window.location.reload()}var $me=[/\bDeepSeek\b/i,/\bKimi\b/i,/\bMoonshot\b/i,/\bdeepseek[-._a-z0-9]*\b/i,/\bkimi[-._a-z0-9]*\b/i,/\bmoonshot[-._a-z0-9]*\b/i,/\bAPEX_API_KEY\b/,/\bDEEPSEEK_API_KEY\b/,/\bKIMI_API_KEY\b/,/\bOPENAI_API_KEY\b/,/\bANTHROPIC_API_KEY\b/,/\bCURSOR_API_KEY\b/,/\bOPENCODE_API_KEY\b/,/\bforge_proxy_[A-Za-z0-9._-]+\b/,/\bProviderValidationError\b/,/\/forge-server\/node_modules\//,/https?:\/\/[^\s'"<>)]*\/api\/provider-egress\/[^\s'"<>)]*/i,/https?:\/\/[^\s'"<>)]*(?:apex|deepseek|moonshot|kimi)[^\s'"<>)]*/i],ehe=`CMMD is temporarily unavailable. Check the workspace AI connection and retry.`,H8=`Claude could not get a Workspace egress token from CMMD for this turn. Refusing rather than falling back to the personal login.`,the=H8.toLowerCase();function U8(e){if(!e)return!1;let t=e.toLowerCase();return/\b(rate[\s-]?limit|too\s+many\s+requests|usage[ _-]limit|usage_limit_reached|quota|insufficient_quota)\b/.test(t)||/\b429\b/.test(t)}function nhe(e){return/\bbound to provider account\b/.test(e)&&/\bcannot use provider account\b/.test(e)?`Forge could not switch this conversation to the selected AI account. Retry the account switch.`:/\bforge_runtime_repairing\b/.test(e)||/\bthis turn was interrupted because the environment is being repaired\b/.test(e)?`This turn was interrupted because the environment is being repaired. Retry after the repair finishes.`:/\bforge_runtime_stopped\b/.test(e)||/\bthis turn was interrupted because the environment was stopped\b/.test(e)?`This turn was interrupted because the environment was stopped. Start the environment and retry.`:null}function rhe(e){if(!e)return null;let t=e.toLowerCase();if(t.includes(the))return H8;let n=nhe(t);return n===null?/\bforge_provider_model_not_allowed\b/.test(t)||/\bnot\s+scoped\s+to\s+the\s+requested\s+model\b/.test(t)?`The workspace AI credential does not cover the model this turn asked for. Retry, or pick that model for the thread.`:/\bmodel\b[\s\S]*\b(not\s+(found|available|supported)|does\s+not\s+exist|unsupported|invalid|unknown)\b/.test(t)||/\b(unsupported|unknown|invalid)\b[\s\S]*\bmodel\b/.test(t)||/\b(model_not_found|invalid_model|model_not_supported)\b/.test(t)?`The selected model isn't available right now. Pick a different model and retry.`:U8(t)?`The AI service is rate-limited or out of quota. Wait a moment and retry.`:/_credential_reconnect_required\b/.test(t)?`The workspace AI credential needs to be reconnected. Reconnect it in Settings > Providers, then retry.`:/\b(unauthorized|forbidden|authentication\s+(failed|error|required)|invalid\s+api\s+key|expired\s+(token|credential))\b/.test(t)||/\b40[13]\b/.test(t)?`Workspace AI authentication failed. Reconnect the workspace and retry.`:/\b(timed?\s*out|timeout|overloaded|service\s+unavailable)\b/.test(t)||/\b50[234]\b/.test(t)?`The AI service is temporarily overloaded. Retry in a moment.`:null:n}function ihe(e){return e?$me.some(t=>t.test(e)):!1}function W8(e,t={}){if(e==null)return null;let n=e.trim();return n.length===0?null:ihe(n)?rhe(n)??t.fallback??`CMMD is temporarily unavailable. Check the workspace AI connection and retry.`:n}var ahe=[/\bSocketCloseError\b/i,/\bSocketOpenError\b/i,/\bSocketReadError\b/i,/\bRpcClientDefect:\s*Unknown socket error\b/i,/Unable to connect to the Forge server WebSocket\./i,/\bping timeout\b/i];function G8(e){if(typeof e!=`string`)return!1;let t=e.trim();return t.length!==0&&ahe.some(e=>e.test(t))}function K8(e){return G8(e)?null:W8(e,{fallback:ehe})}var ohe=[/^Transport disposed$/,/WebSocket RPC request timed out after \d+ms\./],she=`Lost the connection to this Environment. Your message was not sent.`;function che(e){return e instanceof Error?G8(e.message)||ohe.some(t=>t.test(e.message.trim()))?she:e.message:`Failed to send message.`}var q8=`forge-web`,J8=[`VITE_SENTRY_ENVIRONMENT`,`MODE`],Y8=[`VITE_SENTRY_RELEASE`],lhe=[`VITE_SENTRY_DSN`],uhe=[`VITE_SENTRY_DEBUG`],dhe=[`VITE_SENTRY_ENABLED`],fhe=[`VITE_SENTRY_TRACES_SAMPLE_RATE`],phe=[`VITE_SENTRY_PROFILES_SAMPLE_RATE`],mhe=[`VITE_SENTRY_REPLAYS_SESSION_SAMPLE_RATE`],hhe=[`VITE_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE`],ghe=[`VITE_SENTRY_COMMIT_SHA`,`VITE_COMMIT_SHA`],X8=!1,Z8={autoInject:!1,colorScheme:`system`,formTitle:`Report a Bug`,themeLight:{accentBackground:`oklch(0.52 0.19 48)`,accentForeground:`#ffffff`,background:`#ffffff`,boxShadow:`0 24px 80px rgba(0, 0, 0, 0.18)`,foreground:`#262626`,outline:`1px solid oklch(0.52 0.19 48)`},themeDark:{accentBackground:`oklch(0.62 0.2 47)`,accentForeground:`#ffffff`,background:`#171717`,boxShadow:`0 24px 80px rgba(0, 0, 0, 0.45)`,foreground:`#f5f5f5`,outline:`1px solid oklch(0.62 0.2 47)`}};function _he(e){let t=e.exception&&typeof e.exception==`object`&&`values`in e.exception&&Array.isArray(e.exception.values)?e.exception.values:[];return[typeof e.title==`string`?e.title:void 0,...t.flatMap(e=>{if(typeof e!=`object`||!e)return[];let t=e;return[typeof t.type==`string`?t.type:void 0,typeof t.value==`string`?t.value:void 0]})]}function vhe(e){return(e.exception&&typeof e.exception==`object`&&`values`in e.exception&&Array.isArray(e.exception.values)?e.exception.values:[]).some(e=>{if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.value!=`string`||!/All fibers interrupted without error/i.test(t.value)?!1:t.stacktrace?.frames?.some(e=>{let t=typeof e.filename==`string`?e.filename:``,n=typeof e.function==`string`?e.function:``;return t.includes(`src/rpc/wsTransport.ts`)&&n===`WsTransport.request`})})}function yhe(e){return _he(e).some(G8)||vhe(e)}function bhe(){let e=new URL(window.location.href);xe?e.hash=`/new`:(e.pathname=`/new`,e.search=``,e.hash=``),window.location.assign(e.toString())}function xhe(){let e=xe?`electron-renderer`:`browser`,t={APP_VERSION:`0.13.4`,BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,TSS_INLINE_CSS_ENABLED:`false`,VITE_COMMIT_SHA:``,VITE_HOSTED_APP_CHANNEL:``,VITE_HTTP_URL:``,VITE_SENTRY_COMMIT_SHA:`32a98ec9fa40612b5a3e5e87a9c1398870b6a0a3`,VITE_SENTRY_DEBUG:``,VITE_SENTRY_DSN:``,VITE_SENTRY_ENABLED:``,VITE_SENTRY_ENVIRONMENT:`production`,VITE_SENTRY_PROFILES_SAMPLE_RATE:``,VITE_SENTRY_RELEASE:`forge-web@0.13.4+32a98ec9fa40612b5a3e5e87a9c1398870b6a0a3`,VITE_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE:``,VITE_SENTRY_REPLAYS_SESSION_SAMPLE_RATE:``,VITE_SENTRY_TRACES_SAMPLE_RATE:``,VITE_WS_URL:``},n=L8(t,[...Y8])??Kme({appName:q8,version:`0.13.4`,commitHash:L8(t,[...ghe])});return Jme({appName:q8,runtime:e,defaultEnvironment:L8(t,[...J8])??`development`,defaultRelease:n,defaultEnabled:!0,defaultTracesSampleRate:0,defaultReplaysSessionSampleRate:0,defaultReplaysOnErrorSampleRate:0,enabled:L8(t,[...dhe]),dsn:L8(t,[...lhe]),environment:L8(t,[...J8]),release:L8(t,[...Y8]),debug:L8(t,[...uhe]),tracesSampleRate:L8(t,[...fhe]),profilesSampleRate:L8(t,[...phe]),replaysSessionSampleRate:L8(t,[...mhe]),replaysOnErrorSampleRate:L8(t,[...hhe]),tags:{platform:xe?`desktop`:`web`}})}function Q8(e){return Gme(e),yhe(e)?null:e}function She(e){return{...e.replaysOnErrorSampleRate===void 0?{}:{replaysOnErrorSampleRate:e.replaysOnErrorSampleRate},...e.replaysSessionSampleRate===void 0?{}:{replaysSessionSampleRate:e.replaysSessionSampleRate}}}function $8(e){return{attachStacktrace:e.attachStacktrace,debug:e.debug,dsn:e.dsn,environment:e.environment,ignoreErrors:[...Wme],initialScope:{tags:e.tags},maxBreadcrumbs:e.maxBreadcrumbs,normalizeDepth:e.normalizeDepth,sendDefaultPii:!1,tracesSampleRate:e.tracesSampleRate,...e.release===void 0?{}:{release:e.release},...She(e)}}function Che(e){let t=[];e.tracesSampleRate>0&&t.push(Z6()),((e.replaysSessionSampleRate??0)>0||(e.replaysOnErrorSampleRate??0)>0)&&t.push(d6());let n=tQ(Z8);t.push(n);try{P8({...$8(e),beforeSend:e=>Q8(e),integrations:t})}catch{return null}return X8=!0,F8}function whe(e){let t=[];e.tracesSampleRate>0&&t.push(SA()),((e.replaysSessionSampleRate??0)>0||(e.replaysOnErrorSampleRate??0)>0)&&t.push(Ik());let n=Fy(Z8);t.push(n);try{nj({...$8(e),beforeSend:e=>Q8(e),integrations:t})}catch{return null}return X8=!0,YM}function e5(){if(X8)return xe?F8:YM;let e=xhe();return e?xe?Che(e):whe(e):null}function t5(e){if(e5()){if(xe){Yz(e);return}Dl(e)}}function n5(e,t,n){if(!e5())return;let r=The(e);if(xe){jF(e=>{t&&e.setTags(t);let i=zz(r);n?.showReportDialog&&i2({eventId:i})});return}ka(e=>{t&&e.setTags(t);let i=_l(r);n?.showReportDialog&&Ew({eventId:i})})}function The(e){if(e instanceof Error)return e;if(typeof e==`string`&&e.trim().length>0)return Error(e);try{return Error(JSON.stringify(e))}catch{return Error(`Unknown non-Error exception`)}}var Ehe=class extends k.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){n5(e,{origin:`react-boundary`},{showReportDialog:!0})}render(){return this.state.hasError?(0,tt.jsx)(Zme,{onGoToNewChat:bhe}):this.props.children}},r5=!1,i5=!1,a5=null,o5=null,s5=null,c5=!1,l5=new Set;function Dhe(e){if(r5||i5)return;if(!e.publicKey||!e.host){i5=!0;return}if(a5)return;if(typeof window>`u`||typeof location>`u`){i5=!0;return}let t=e.publicKey,n=e.host;a5=_e(async()=>{let{default:e}=await import(`./module-CPO4cjSm.js`);return{default:e}},[]).then(({default:e})=>{o5=e,e.init(t,{api_host:n,person_profiles:`identified_only`,capture_pageview:!1,capture_pageleave:!1,autocapture:!1,disable_session_recording:!0,loaded:()=>{r5=!0,s5&&u5(s5),d5(),l5.forEach(e=>e())}})}).catch(()=>{i5=!0,o5=null})}function u5(e){if(s5=e,!r5||!o5)return;let t={};e.email!==void 0&&(t.email=e.email),e.displayName!==void 0&&(t.name=e.displayName),o5.identify(e.cmmdUserId,t)}function Ohe(e){return!r5||!o5?!1:o5.isFeatureEnabled(e)===!0}function d5(){!o5||c5||(c5=!0,o5.onFeatureFlags(()=>{l5.forEach(e=>e())}))}function khe(e){return l5.add(e),r5&&o5&&(d5(),e()),()=>{l5.delete(e)}}var f5=class extends v(`BootstrapHttpError`){},p5=e=>r(e,`BootstrapHttpError`);function m5(e){return typeof e!=`object`||!e?!1:!!(p5(e)&&e.status===401||e instanceof Error&&e.name===`RemoteEnvironmentAuthHttpError`&&`status`in e&&e.status===401||e instanceof ye&&e.kind===`auth`)}function Ahe(e){let t=e.replace(/\s+/g,` `).trim();return t.length===0?`<empty response>`:t.slice(0,120)}async function h5(e,t){let n=await e.text();try{return JSON.parse(n)}catch{throw new f5({message:`${t} returned a non-JSON response (${Ahe(n)}). Ensure the Forge server is running and this route is proxied correctly.`,status:e.status})}}function g5(e){let t=e.start().then(n=>e.getSlot()===t?(e.onSettled(n),n):e.retry(),n=>{if(e.getSlot()!==t)return e.retry();throw n}).finally(()=>{e.getSlot()===t&&e.setSlot(null)});return e.setSlot(t),t}function jhe(e){if(!e.authenticated||!e.role)throw Error(`Authenticated session is required.`);let t=Mhe(e.cmmdIdentity??null);return t?{displayName:t,email:e.cmmdIdentity?.email??null,avatarUrl:e.cmmdIdentity?.avatarUrl??null,role:e.role,verified:!0,source:`cmmd-identity`}:{displayName:`CMMD identity unavailable`,email:null,avatarUrl:null,role:e.role,verified:!1,source:`fallback`}}function Mhe(e){return e&&([e.firstName,e.lastName].map(e=>e?.trim()??``).filter(e=>e.length>0).join(` `)||e.username.trim()||e.email.trim())||null}var _5=null;function Nhe(){if(_5)return _5;let e=new URL(`/api/auth/session`,window.location.origin).toString(),t=fetch(e,{credentials:`include`}).then(async t=>{if(!t.ok)throw new f5({message:`Failed to load current app auth session state (${t.status}).`,status:t.status});return h5(t,e)}).then(jhe).finally(()=>{_5===t&&(_5=null)});return _5=t,t}var v5=null,y5=null,b5=null,x5=null,S5=new Set,C5=`cmmd-forge.loggedOutLocalBootstrapCredentials.v1`;function Phe(e){let t=`${e.firstName??``} ${e.lastName??``}`.trim();t5({id:e.id,email:e.email,...t.length>0?{username:t}:{}}),u5({cmmdUserId:e.id,...e.email?{email:e.email}:{},...t.length>0?{displayName:t}:{}})}function w5(){if(typeof window>`u`||b5)return;let e=window.desktopBridge?.desktopAuth?.onStateChange;e&&(b5=e(e=>{v5=null,y5=null,x5=null,e.sessionLifecycle.status!==`ready`&&t5(null),(e.sessionLifecycle.status===`expired`||e.sessionLifecycle.status===`signed-out`&&e.sessionLifecycle.reason===`refresh-revoked`)&&ue().catch(e=>{n5(e,{route:`desktop-auth-session-expired`})})}))}function Fhe(){return Kt(new URL(window.location.href))}function T5(){let e=new URL(window.location.href),t=qt(e);t.toString()!==e.toString()&&window.history.replaceState({},document.title,t.toString())}async function Ihe(){return N5(async()=>{let e=ae(`/api/auth/session`),t=async()=>{let t=await fetch(e,se({credentials:`include`}));if(!t.ok)throw new f5({message:`Failed to load server auth session state (${t.status}).`,status:t.status});return h5(t,e)},n=await t();return!n.authenticated&&n.auth.sessionMethods.length===1&&n.auth.sessionMethods[0]===`proxy-asserted`&&typeof window<`u`&&!window.desktopBridge&&e.startsWith(`https://`)&&await fe()?t():n})}async function Lhe(e){return N5(async()=>{let t={credential:e},n=ae(`/api/auth/bootstrap`),r=await fetch(n,se({body:JSON.stringify(t),credentials:`include`,headers:{"content-type":`application/json`},method:`POST`}));if(!r.ok)throw new f5({message:await r.text()||`Failed to bootstrap auth session (${r.status}).`,status:r.status});return h5(r,n)})}function E5(e){return new URL(e,window.location.origin).toString()}function D5(e){let t=(e?.primaryMode===`cloud`?null:e)?.bootstrapToken?.trim();return t&&t.length>0?t:null}function O5(){return typeof window>`u`?null:D5(window.desktopBridge?.getLocalEnvironmentBootstrap?.()??null)}function Rhe(){return typeof window>`u`?!1:me()===`session-expired`}function k5(){if(typeof window>`u`)return new Set;try{let e=window.sessionStorage.getItem(C5),t=e?JSON.parse(e):[];return Array.isArray(t)?new Set(t.filter(e=>typeof e==`string`)):new Set}catch{return new Set}}function A5(e){if(!(typeof window>`u`))try{if(e.size===0){window.sessionStorage.removeItem(C5);return}window.sessionStorage.setItem(C5,JSON.stringify([...e]))}catch{}}function zhe(){let e=O5();if(!e)return;let t=new Set(k5());t.add(e),A5(t)}function Bhe(e){return k5().has(e)}function j5(){let e=O5();if(!e){A5(new Set);return}let t=new Set(k5());t.delete(e),A5(t)}async function M5(){let e=E5(`/api/auth/session`),t=await fetch(e,{credentials:`include`});return t.ok?h5(t,e):null}async function Vhe(e){if(typeof window>`u`)return;let t=D5(e);if(!t||Rhe()||S5.has(t)||Bhe(t))return;if((await M5().catch(()=>null))?.authenticated){S5.add(t);return}let n=E5(`/api/auth/bootstrap`),r=await fetch(n,{body:JSON.stringify({credential:t}),credentials:`include`,headers:{"content-type":`application/json`},method:`POST`});if(!r.ok){if(r.status===401)return;throw new f5({message:await r.text()||`Failed to bootstrap local web owner session (${r.status}).`,status:r.status})}await h5(r,n),S5.add(t)}async function Hhe(){let e=await Ihe();if(e.authenticated)return e;let t=ce();if(t?.source!==`desktop-managed`||!t.bearerToken)return e;let n=await M5().catch(()=>null);return n?.authenticated?n:e}var Uhe=new Set([404,502,503,504]),Whe=15e3,Ghe=500;function Khe(e){ce()?.source===`paired-bearer`&&m5(e)&&ie(`http`)}async function N5(e){let t=Date.now();for(;;)try{return await e()}catch(e){if(Khe(e),!Jhe(e))throw e;if(Date.now()-t>=Whe)throw n5(e,{route:`bootstrap-retry-exhausted`}),e;await qhe(Ghe)}}function qhe(e){return new Promise(t=>{setTimeout(t,e)})}function Jhe(e){return p5(e)?Uhe.has(e.status):e instanceof TypeError||e instanceof DOMException&&e.name===`AbortError`}function Yhe(e,t){return e.sessionLifecycle.status===`ready`?e.sessionLifecycle.principalId!==t.id||e.cmmd.identity?.id!==t.id?`desktop-principal-mismatch`:null:`desktop-session-required`}async function Xhe(e){if(typeof window>`u`||!window.desktopBridge)return null;let t=window.desktopBridge.desktopAuth?.getState;if(!t)return`desktop-state-unavailable`;try{return Yhe(await t(),e)}catch(e){return n5(e,{route:`desktop-auth-gate-state`}),`desktop-state-unavailable`}}async function Zhe(e,t){return t5(null),de(t),await D().catch(e=>{n5(e,{route:`desktop-auth-gate-logout`})}),{status:`requires-auth`,auth:e.auth,errorMessage:he(t)??`Forge Desktop requires CMMD authentication.`}}async function Qhe(){let e=await Hhe();if(e.authenticated){if(e.cmmdIdentity){let t=await Xhe(e.cmmdIdentity);return t?(le(),Zhe(e,t)):(le(),Phe(e.cmmdIdentity),{status:`authenticated`})}return{status:`requires-auth`,auth:e.auth}}return{status:`requires-auth`,auth:e.auth}}async function $he(e){let t=e.trim();if(!t)throw Error(`Enter a pairing token to continue.`);y5=null,j5(),await Lhe(t),v5=null,T5()}function P5(){j5(),y5=null,v5=null}async function F5(e,t,n){let r=e.trim();if(!r)throw Error(`CMMD (Command) OAuth did not return an access token.`);let i=n?.refreshToken?.trim(),a=n?.mcpToken?.trim(),o=ae(`/api/auth/bootstrap/command`),s=await fetch(o,se({body:JSON.stringify({accessToken:r,...i?{refreshToken:i}:{},...a?{mcpToken:a}:{},...t===void 0?{}:{user:t}}),credentials:`include`,headers:{"content-type":`application/json`},method:`POST`}));if(!s.ok)throw new f5({message:await s.text()||`Failed to bootstrap with CMMD OAuth token (${s.status}).`,status:s.status});await h5(s,o),P5()}async function ege(){let e=ae(`/api/auth/ws-token`),t=await fetch(e,se({credentials:`include`,method:`POST`}));if(!t.ok)throw new f5({message:await t.text()||`Failed to issue websocket token (${t.status}).`,status:t.status});return h5(t,e)}async function tge(e){let t=await ege(),n=new URL(e,window.location.origin);return n.searchParams.set(`wsToken`,t.token),n.toString()}async function I5(e,t){try{return await O({method:`POST`,path:e,body:t,allowRetry:!1},ir())}catch(e){throw e instanceof ye&&e.kind!==`auth`&&e.code!==null&&ar.has(e.code)?new ye({kind:`auth`,message:e.message,status:e.status??401,code:e.code}):e}}async function nge(e){try{return await I5(`/api/cmmd/tasks/update`,e)}catch(t){if(t instanceof ye&&(t.kind===`auth`||t.kind===`permission`))throw t;if(t instanceof ye||t instanceof Error)return I5(`/api/command/tasks/update`,e);throw t}}async function rge(){typeof window>`u`||await window.desktopBridge?.desktopAuth?.logoutCloud?.()}async function ige(){let e=await Promise.allSettled([D(),rge()]);t5(null),zhe(),v5=null,y5=null;let t=e.find(e=>e.status===`rejected`);if(t)throw t.reason}async function L5(){return w5(),y5?.status===`authenticated`?(le(),y5):v5||g5({start:R5,getSlot:()=>v5,setSlot:e=>{v5=e},onSettled:e=>{e.status===`authenticated`&&(y5=e)},retry:L5})}async function R5(){return oe().then(e=>Vhe(e)).then(()=>Qhe())}function z5(){return w5(),x5||(v5=null,y5=null,g5({start:R5,getSlot:()=>x5,setSlot:e=>{x5=e},onSettled:e=>{e.status===`authenticated`&&(y5=e,le())},retry:z5}))}function age(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/u,``)}function oge(e){let t=age(e).replace(/-/g,`+`).replace(/_/g,`/`);return`-----BEGIN PUBLIC KEY-----\n${((t+`=`.repeat((4-t.length%4)%4)).match(/.{1,64}/gu)??[]).join(`
|
|
1005
|
+
If init has been called in the preload and contextIsolation is disabled, is not required to call init in the renderer`);return}window.__SENTRY__RENDERER_INIT__=!0,e.sendClientReports=!1,e.defaultIntegrations===void 0&&(e.defaultIntegrations=N8(e)),e.stackParser===void 0&&(e.stackParser=k8),e.ipcNamespace===void 0&&(e.ipcNamespace=`sentry-ipc`),e.dsn===void 0&&(e.dsn=`https://12345@dummy.dsn/12345`),e.transport===void 0&&(e.transport=M8),delete e.initialScope,t(e)}var F8=e({BrowserClient:()=>yQ,MULTIPLEXED_TRANSPORT_EXTRA_KEY:()=>VV,OpenFeatureIntegrationHook:()=>Dme,SEMANTIC_ATTRIBUTE_SENTRY_OP:()=>LF,SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN:()=>RF,SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE:()=>FF,SEMANTIC_ATTRIBUTE_SENTRY_SOURCE:()=>PF,Scope:()=>oF,addBreadcrumb:()=>fH,addEventProcessor:()=>eB,addIntegration:()=>_B,bindScopeToEmitter:()=>WR,breadcrumbsIntegration:()=>W0,browserApiErrorsIntegration:()=>G0,browserProfilingIntegration:()=>vme,browserSessionIntegration:()=>q0,browserTracingIntegration:()=>Z6,buildLaunchDarklyFlagUsedHandler:()=>Tme,captureConsoleIntegration:()=>YH,captureEvent:()=>Vz,captureException:()=>zz,captureFeedback:()=>vW,captureMessage:()=>Bz,captureSession:()=>iB,chromeStackLineParser:()=>I0,consoleLoggingIntegration:()=>TW,contextLinesIntegration:()=>cle,continueTrace:()=>gR,createConsolaReporter:()=>kW,createLangChainCallbackHandler:()=>Lq,createTransport:()=>sV,createUserFeedbackEnvelope:()=>V0,dedupeIntegration:()=>QH,defaultRequestInstrumentationOptions:()=>V6,defaultStackParser:()=>k8,elementTimingIntegration:()=>M1,endSession:()=>nB,eventFiltersIntegration:()=>vH,eventFromException:()=>fQ,eventFromMessage:()=>pQ,eventLoopBlockIntegration:()=>Bme,exceptionFromError:()=>nQ,extraErrorDataIntegration:()=>oU,featureFlagsIntegration:()=>iW,feedbackAsyncIntegration:()=>eQ,feedbackIntegration:()=>tQ,feedbackSyncIntegration:()=>tQ,fetchStreamPerformanceIntegration:()=>K6,forceLoad:()=>Wce,functionToStringIntegration:()=>hH,getAbsoluteUrl:()=>C0,getActiveSpan:()=>lL,getClient:()=>J,getCurrentScope:()=>q,getDefaultIntegrations:()=>N8,getFeedback:()=>JY,getGlobalScope:()=>AF,getIsolationScope:()=>kF,getReplay:()=>ipe,getRootSpan:()=>sL,getSpanDescendants:()=>oL,getSpanStatusFromHttpCode:()=>tI,getTraceData:()=>cH,globalHandlersIntegration:()=>Y0,graphqlClientIntegration:()=>gle,growthbookIntegration:()=>Ame,httpClientIntegration:()=>Xce,httpContextIntegration:()=>e2,inboundFiltersIntegration:()=>yH,init:()=>P8,instrumentAnthropicAiClient:()=>QK,instrumentCreateReactAgent:()=>rJ,instrumentGoogleGenAIClient:()=>mq,instrumentLangChainEmbeddings:()=>Hq,instrumentLangGraph:()=>iJ,instrumentOpenAiClient:()=>OK,instrumentOutgoingRequests:()=>H6,instrumentSupabaseClient:()=>PU,isBotUserAgent:()=>X6,isEnabled:()=>$z,isInitialized:()=>Qz,lastEventId:()=>Zz,launchDarklyIntegration:()=>wme,linkedErrorsIntegration:()=>t2,logger:()=>VJ,makeRendererTransport:()=>M8,metrics:()=>YJ,moduleMetadataIntegration:()=>HH,normalizeStringifyValue:()=>n2,onLoad:()=>Gce,openFeatureIntegration:()=>Eme,parameterize:()=>iH,registerSpanErrorInstrumentation:()=>pL,registerWebWorker:()=>Fme,replayCanvasIntegration:()=>Cpe,replayIntegration:()=>d6,reportPageLoaded:()=>Gpe,reportingObserverIntegration:()=>Jce,rewriteFramesIntegration:()=>_U,scopeToMainIntegration:()=>j8,sendFeedback:()=>MY,setActiveSpanInBrowser:()=>Kpe,setAttribute:()=>Jz,setAttributes:()=>qz,setContext:()=>Hz,setConversationId:()=>Xz,setCurrentClient:()=>BV,setExtra:()=>Wz,setExtras:()=>Uz,setHttpStatus:()=>nI,setMeasurement:()=>QL,setTag:()=>Kz,setTags:()=>Gz,setUser:()=>Yz,showReportDialog:()=>i2,spanStreamingIntegration:()=>qpe,spanToBaggageHeader:()=>kL,spanToJSON:()=>KI,spanToTraceHeader:()=>BI,spotlightBrowserIntegration:()=>Cme,startBrowserTracingNavigationSpan:()=>$6,startBrowserTracingPageLoadSpan:()=>Q6,startInactiveSpan:()=>mR,startNewTrace:()=>bR,startSession:()=>tB,startSpan:()=>fR,startSpanManual:()=>pR,statsigIntegration:()=>jme,supabaseIntegration:()=>LU,suppressTracing:()=>vR,thirdPartyErrorFilterIntegration:()=>KU,uiProfiler:()=>O0,unleashIntegration:()=>Ome,updateSpanName:()=>dL,viewHierarchyIntegration:()=>_le,webVitalsIntegration:()=>q6,webWorkerIntegration:()=>Nme,withActiveSpan:()=>_R,withIsolationScope:()=>MF,withScope:()=>jF,withStreamedSpan:()=>AL,zodErrorsIntegration:()=>GU}),Hme=100,Ume=5,Wme=[`ResizeObserver loop completed with undelivered notifications.`,`ResizeObserver loop limit exceeded`,`AbortError`,`The user aborted a request.`,`Network request failed`,`NetworkError when attempting to fetch resource.`,`Failed to fetch`,`ChunkLoadError`,`Loading chunk`,`Loading CSS chunk`,`Non-Error promise rejection captured with value: Object Not Found Matching Id`];function I8(e){if(e)for(let t of Object.keys(e))/token|secret|password|api[_-]?key/i.test(t)&&(e[t]=`[redacted]`)}function Gme(e){e.request?.url&&(e.request.url=e.request.url.replace(/([?&](?:code|token|access_token|state)=)[^&]+/gi,`$1[redacted]`)),I8(e.extra),I8(e.tags)}function Kme(e){let t=R8(e.version)??`0.0.0`,n=R8(e.commitHash);return n?`${e.appName}@${t}+${n}`:`${e.appName}@${t}`}function L8(e,t){for(let n of t){let t=R8(e[n]);if(t)return t}}function qme(e){return z8(e.enabled)??e.defaultEnabled??!1}function Jme(e){let t=R8(e.dsn);return!t||qme(e)===!1?null:{dsn:t,environment:R8(e.environment)??R8(e.defaultEnvironment)??`production`,release:R8(e.release)??R8(e.defaultRelease)??void 0,debug:z8(e.debug)??e.defaultDebug??!1,tracesSampleRate:V8(e.tracesSampleRate,e.defaultTracesSampleRate??.1),profilesSampleRate:B8(e.profilesSampleRate,e.defaultProfilesSampleRate),replaysSessionSampleRate:B8(e.replaysSessionSampleRate,e.defaultReplaysSessionSampleRate),replaysOnErrorSampleRate:B8(e.replaysOnErrorSampleRate,e.defaultReplaysOnErrorSampleRate),attachStacktrace:!0,maxBreadcrumbs:Hme,normalizeDepth:Ume,tags:Yme(e)}}function Yme(e){let t={app:e.appName,runtime:e.runtime};for(let[n,r]of Object.entries(e.tags??{})){let e=R8(r);e&&(t[n]=e)}return t}function R8(e){if(e==null)return null;let t=e.trim();return t.length>0?t:null}function z8(e){if(typeof e==`boolean`)return e;let t=R8(e);if(t){if(t===`1`||t.toLowerCase()===`true`)return!0;if(t===`0`||t.toLowerCase()===`false`)return!1}}function B8(e,t){if(t!==void 0||e!==void 0)return V8(e,t??0)}function V8(e,t){let n=Xme(e);return n===null||n<0||n>1?t:n}function Xme(e){if(typeof e==`number`)return Number.isFinite(e)?e:null;let t=R8(e);if(!t)return null;let n=Number.parseFloat(t);return Number.isFinite(n)?n:null}function Zme(e){let t=(0,Be.c)(11),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=ge(Qe,`bg-background text-foreground`),t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=ge(Ye,`pl-1 md:pl-2.5`),t[1]=r):r=t[1];let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,tt.jsx)(rt,{}),t[2]=i):i=t[2];let a;t[3]===e.onGoToNewChat?a=t[4]:(a=(0,tt.jsx)(`div`,{className:r,children:(0,tt.jsx)(`button`,{type:`button`,"aria-label":`Go to new chat`,onClick:e.onGoToNewChat,className:`${Xe} hover:bg-accent/70`,children:i})}),t[3]=e.onGoToNewChat,t[4]=a);let o;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,tt.jsx)(`div`,{}),t[5]=o):o=t[5];let s;t[6]===a?s=t[7]:(s=(0,tt.jsxs)(`header`,{className:Je,children:[a,o]}),t[6]=a,t[7]=s);let c;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,tt.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center px-4`,children:(0,tt.jsxs)(`div`,{className:`max-w-md rounded-xl border border-border bg-card p-6 text-center shadow-lg`,children:[(0,tt.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight`,children:`Something went wrong.`}),(0,tt.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`Forge hit an unexpected error and reported it.`}),(0,tt.jsx)(`button`,{className:`mt-4 inline-flex rounded-md border border-border px-3 py-2 text-sm font-medium hover:bg-accent`,onClick:Qme,type:`button`,children:`Reload app`})]})}),t[8]=c):c=t[8];let l;return t[9]===s?l=t[10]:(l=(0,tt.jsxs)(`div`,{className:n,children:[s,c]}),t[9]=s,t[10]=l),l}function Qme(){return window.location.reload()}var $me=[/\bDeepSeek\b/i,/\bKimi\b/i,/\bMoonshot\b/i,/\bdeepseek[-._a-z0-9]*\b/i,/\bkimi[-._a-z0-9]*\b/i,/\bmoonshot[-._a-z0-9]*\b/i,/\bAPEX_API_KEY\b/,/\bDEEPSEEK_API_KEY\b/,/\bKIMI_API_KEY\b/,/\bOPENAI_API_KEY\b/,/\bANTHROPIC_API_KEY\b/,/\bCURSOR_API_KEY\b/,/\bOPENCODE_API_KEY\b/,/\bforge_proxy_[A-Za-z0-9._-]+\b/,/\bProviderValidationError\b/,/\/forge-server\/node_modules\//,/https?:\/\/[^\s'"<>)]*\/api\/provider-egress\/[^\s'"<>)]*/i,/https?:\/\/[^\s'"<>)]*(?:apex|deepseek|moonshot|kimi)[^\s'"<>)]*/i],ehe=`CMMD is temporarily unavailable. Check the workspace AI connection and retry.`,H8=`Claude could not get a Workspace egress token from CMMD for this turn. Refusing rather than falling back to the personal login.`,the=H8.toLowerCase();function U8(e){if(!e)return!1;let t=e.toLowerCase();return/\b(rate[\s-]?limit|too\s+many\s+requests|usage[ _-]limit|usage_limit_reached|quota|insufficient_quota)\b/.test(t)||/\b429\b/.test(t)}function nhe(e){return/\bbound to provider account\b/.test(e)&&/\bcannot use provider account\b/.test(e)?`Forge could not switch this conversation to the selected AI account. Retry the account switch.`:/\bforge_runtime_repairing\b/.test(e)||/\bthis turn was interrupted because the environment is being repaired\b/.test(e)?`This turn was interrupted because the environment is being repaired. Retry after the repair finishes.`:/\bforge_runtime_stopped\b/.test(e)||/\bthis turn was interrupted because the environment was stopped\b/.test(e)?`This turn was interrupted because the environment was stopped. Start the environment and retry.`:null}function rhe(e){if(!e)return null;let t=e.toLowerCase();if(t.includes(the))return H8;let n=nhe(t);return n===null?/\bforge_provider_model_not_allowed\b/.test(t)||/\bnot\s+scoped\s+to\s+the\s+requested\s+model\b/.test(t)?`The workspace AI credential does not cover the model this turn asked for. Retry, or pick that model for the thread.`:/\bmodel\b[\s\S]*\b(not\s+(found|available|supported)|does\s+not\s+exist|unsupported|invalid|unknown)\b/.test(t)||/\b(unsupported|unknown|invalid)\b[\s\S]*\bmodel\b/.test(t)||/\b(model_not_found|invalid_model|model_not_supported)\b/.test(t)?`The selected model isn't available right now. Pick a different model and retry.`:U8(t)?`The AI service is rate-limited or out of quota. Wait a moment and retry.`:/_credential_reconnect_required\b/.test(t)?`The workspace AI credential needs to be reconnected. Reconnect it in Settings > Providers, then retry.`:/\b(unauthorized|forbidden|authentication\s+(failed|error|required)|invalid\s+api\s+key|expired\s+(token|credential))\b/.test(t)||/\b40[13]\b/.test(t)?`Workspace AI authentication failed. Reconnect the workspace and retry.`:/\b(timed?\s*out|timeout|overloaded|service\s+unavailable)\b/.test(t)||/\b50[234]\b/.test(t)?`The AI service is temporarily overloaded. Retry in a moment.`:null:n}function ihe(e){return e?$me.some(t=>t.test(e)):!1}function W8(e,t={}){if(e==null)return null;let n=e.trim();return n.length===0?null:ihe(n)?rhe(n)??t.fallback??`CMMD is temporarily unavailable. Check the workspace AI connection and retry.`:n}var ahe=[/\bSocketCloseError\b/i,/\bSocketOpenError\b/i,/\bSocketReadError\b/i,/\bRpcClientDefect:\s*Unknown socket error\b/i,/Unable to connect to the Forge server WebSocket\./i,/\bping timeout\b/i];function G8(e){if(typeof e!=`string`)return!1;let t=e.trim();return t.length!==0&&ahe.some(e=>e.test(t))}function K8(e){return G8(e)?null:W8(e,{fallback:ehe})}var ohe=[/^Transport disposed$/,/WebSocket RPC request timed out after \d+ms\./],she=`Lost the connection to this Environment. Your message was not sent.`;function che(e){return e instanceof Error?G8(e.message)||ohe.some(t=>t.test(e.message.trim()))?she:e.message:`Failed to send message.`}var q8=`forge-web`,J8=[`VITE_SENTRY_ENVIRONMENT`,`MODE`],Y8=[`VITE_SENTRY_RELEASE`],lhe=[`VITE_SENTRY_DSN`],uhe=[`VITE_SENTRY_DEBUG`],dhe=[`VITE_SENTRY_ENABLED`],fhe=[`VITE_SENTRY_TRACES_SAMPLE_RATE`],phe=[`VITE_SENTRY_PROFILES_SAMPLE_RATE`],mhe=[`VITE_SENTRY_REPLAYS_SESSION_SAMPLE_RATE`],hhe=[`VITE_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE`],ghe=[`VITE_SENTRY_COMMIT_SHA`,`VITE_COMMIT_SHA`],X8=!1,Z8={autoInject:!1,colorScheme:`system`,formTitle:`Report a Bug`,themeLight:{accentBackground:`oklch(0.52 0.19 48)`,accentForeground:`#ffffff`,background:`#ffffff`,boxShadow:`0 24px 80px rgba(0, 0, 0, 0.18)`,foreground:`#262626`,outline:`1px solid oklch(0.52 0.19 48)`},themeDark:{accentBackground:`oklch(0.62 0.2 47)`,accentForeground:`#ffffff`,background:`#171717`,boxShadow:`0 24px 80px rgba(0, 0, 0, 0.45)`,foreground:`#f5f5f5`,outline:`1px solid oklch(0.62 0.2 47)`}};function _he(e){let t=e.exception&&typeof e.exception==`object`&&`values`in e.exception&&Array.isArray(e.exception.values)?e.exception.values:[];return[typeof e.title==`string`?e.title:void 0,...t.flatMap(e=>{if(typeof e!=`object`||!e)return[];let t=e;return[typeof t.type==`string`?t.type:void 0,typeof t.value==`string`?t.value:void 0]})]}function vhe(e){return(e.exception&&typeof e.exception==`object`&&`values`in e.exception&&Array.isArray(e.exception.values)?e.exception.values:[]).some(e=>{if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.value!=`string`||!/All fibers interrupted without error/i.test(t.value)?!1:t.stacktrace?.frames?.some(e=>{let t=typeof e.filename==`string`?e.filename:``,n=typeof e.function==`string`?e.function:``;return t.includes(`src/rpc/wsTransport.ts`)&&n===`WsTransport.request`})})}function yhe(e){return _he(e).some(G8)||vhe(e)}function bhe(){let e=new URL(window.location.href);xe?e.hash=`/new`:(e.pathname=`/new`,e.search=``,e.hash=``),window.location.assign(e.toString())}function xhe(){let e=xe?`electron-renderer`:`browser`,t={APP_VERSION:`0.13.4`,BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,TSS_INLINE_CSS_ENABLED:`false`,VITE_COMMIT_SHA:``,VITE_HOSTED_APP_CHANNEL:``,VITE_HTTP_URL:``,VITE_SENTRY_COMMIT_SHA:`08e823da5ff3fe7dadd44a1a9f422fbaa05777c3`,VITE_SENTRY_DEBUG:``,VITE_SENTRY_DSN:``,VITE_SENTRY_ENABLED:``,VITE_SENTRY_ENVIRONMENT:`production`,VITE_SENTRY_PROFILES_SAMPLE_RATE:``,VITE_SENTRY_RELEASE:`forge-web@0.13.4+08e823da5ff3fe7dadd44a1a9f422fbaa05777c3`,VITE_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE:``,VITE_SENTRY_REPLAYS_SESSION_SAMPLE_RATE:``,VITE_SENTRY_TRACES_SAMPLE_RATE:``,VITE_WS_URL:``},n=L8(t,[...Y8])??Kme({appName:q8,version:`0.13.4`,commitHash:L8(t,[...ghe])});return Jme({appName:q8,runtime:e,defaultEnvironment:L8(t,[...J8])??`development`,defaultRelease:n,defaultEnabled:!0,defaultTracesSampleRate:0,defaultReplaysSessionSampleRate:0,defaultReplaysOnErrorSampleRate:0,enabled:L8(t,[...dhe]),dsn:L8(t,[...lhe]),environment:L8(t,[...J8]),release:L8(t,[...Y8]),debug:L8(t,[...uhe]),tracesSampleRate:L8(t,[...fhe]),profilesSampleRate:L8(t,[...phe]),replaysSessionSampleRate:L8(t,[...mhe]),replaysOnErrorSampleRate:L8(t,[...hhe]),tags:{platform:xe?`desktop`:`web`}})}function Q8(e){return Gme(e),yhe(e)?null:e}function She(e){return{...e.replaysOnErrorSampleRate===void 0?{}:{replaysOnErrorSampleRate:e.replaysOnErrorSampleRate},...e.replaysSessionSampleRate===void 0?{}:{replaysSessionSampleRate:e.replaysSessionSampleRate}}}function $8(e){return{attachStacktrace:e.attachStacktrace,debug:e.debug,dsn:e.dsn,environment:e.environment,ignoreErrors:[...Wme],initialScope:{tags:e.tags},maxBreadcrumbs:e.maxBreadcrumbs,normalizeDepth:e.normalizeDepth,sendDefaultPii:!1,tracesSampleRate:e.tracesSampleRate,...e.release===void 0?{}:{release:e.release},...She(e)}}function Che(e){let t=[];e.tracesSampleRate>0&&t.push(Z6()),((e.replaysSessionSampleRate??0)>0||(e.replaysOnErrorSampleRate??0)>0)&&t.push(d6());let n=tQ(Z8);t.push(n);try{P8({...$8(e),beforeSend:e=>Q8(e),integrations:t})}catch{return null}return X8=!0,F8}function whe(e){let t=[];e.tracesSampleRate>0&&t.push(SA()),((e.replaysSessionSampleRate??0)>0||(e.replaysOnErrorSampleRate??0)>0)&&t.push(Ik());let n=Fy(Z8);t.push(n);try{nj({...$8(e),beforeSend:e=>Q8(e),integrations:t})}catch{return null}return X8=!0,YM}function e5(){if(X8)return xe?F8:YM;let e=xhe();return e?xe?Che(e):whe(e):null}function t5(e){if(e5()){if(xe){Yz(e);return}Dl(e)}}function n5(e,t,n){if(!e5())return;let r=The(e);if(xe){jF(e=>{t&&e.setTags(t);let i=zz(r);n?.showReportDialog&&i2({eventId:i})});return}ka(e=>{t&&e.setTags(t);let i=_l(r);n?.showReportDialog&&Ew({eventId:i})})}function The(e){if(e instanceof Error)return e;if(typeof e==`string`&&e.trim().length>0)return Error(e);try{return Error(JSON.stringify(e))}catch{return Error(`Unknown non-Error exception`)}}var Ehe=class extends k.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){n5(e,{origin:`react-boundary`},{showReportDialog:!0})}render(){return this.state.hasError?(0,tt.jsx)(Zme,{onGoToNewChat:bhe}):this.props.children}},r5=!1,i5=!1,a5=null,o5=null,s5=null,c5=!1,l5=new Set;function Dhe(e){if(r5||i5)return;if(!e.publicKey||!e.host){i5=!0;return}if(a5)return;if(typeof window>`u`||typeof location>`u`){i5=!0;return}let t=e.publicKey,n=e.host;a5=_e(async()=>{let{default:e}=await import(`./module-CPO4cjSm.js`);return{default:e}},[]).then(({default:e})=>{o5=e,e.init(t,{api_host:n,person_profiles:`identified_only`,capture_pageview:!1,capture_pageleave:!1,autocapture:!1,disable_session_recording:!0,loaded:()=>{r5=!0,s5&&u5(s5),d5(),l5.forEach(e=>e())}})}).catch(()=>{i5=!0,o5=null})}function u5(e){if(s5=e,!r5||!o5)return;let t={};e.email!==void 0&&(t.email=e.email),e.displayName!==void 0&&(t.name=e.displayName),o5.identify(e.cmmdUserId,t)}function Ohe(e){return!r5||!o5?!1:o5.isFeatureEnabled(e)===!0}function d5(){!o5||c5||(c5=!0,o5.onFeatureFlags(()=>{l5.forEach(e=>e())}))}function khe(e){return l5.add(e),r5&&o5&&(d5(),e()),()=>{l5.delete(e)}}var f5=class extends v(`BootstrapHttpError`){},p5=e=>r(e,`BootstrapHttpError`);function m5(e){return typeof e!=`object`||!e?!1:!!(p5(e)&&e.status===401||e instanceof Error&&e.name===`RemoteEnvironmentAuthHttpError`&&`status`in e&&e.status===401||e instanceof ye&&e.kind===`auth`)}function Ahe(e){let t=e.replace(/\s+/g,` `).trim();return t.length===0?`<empty response>`:t.slice(0,120)}async function h5(e,t){let n=await e.text();try{return JSON.parse(n)}catch{throw new f5({message:`${t} returned a non-JSON response (${Ahe(n)}). Ensure the Forge server is running and this route is proxied correctly.`,status:e.status})}}function g5(e){let t=e.start().then(n=>e.getSlot()===t?(e.onSettled(n),n):e.retry(),n=>{if(e.getSlot()!==t)return e.retry();throw n}).finally(()=>{e.getSlot()===t&&e.setSlot(null)});return e.setSlot(t),t}function jhe(e){if(!e.authenticated||!e.role)throw Error(`Authenticated session is required.`);let t=Mhe(e.cmmdIdentity??null);return t?{displayName:t,email:e.cmmdIdentity?.email??null,avatarUrl:e.cmmdIdentity?.avatarUrl??null,role:e.role,verified:!0,source:`cmmd-identity`}:{displayName:`CMMD identity unavailable`,email:null,avatarUrl:null,role:e.role,verified:!1,source:`fallback`}}function Mhe(e){return e&&([e.firstName,e.lastName].map(e=>e?.trim()??``).filter(e=>e.length>0).join(` `)||e.username.trim()||e.email.trim())||null}var _5=null;function Nhe(){if(_5)return _5;let e=new URL(`/api/auth/session`,window.location.origin).toString(),t=fetch(e,{credentials:`include`}).then(async t=>{if(!t.ok)throw new f5({message:`Failed to load current app auth session state (${t.status}).`,status:t.status});return h5(t,e)}).then(jhe).finally(()=>{_5===t&&(_5=null)});return _5=t,t}var v5=null,y5=null,b5=null,x5=null,S5=new Set,C5=`cmmd-forge.loggedOutLocalBootstrapCredentials.v1`;function Phe(e){let t=`${e.firstName??``} ${e.lastName??``}`.trim();t5({id:e.id,email:e.email,...t.length>0?{username:t}:{}}),u5({cmmdUserId:e.id,...e.email?{email:e.email}:{},...t.length>0?{displayName:t}:{}})}function w5(){if(typeof window>`u`||b5)return;let e=window.desktopBridge?.desktopAuth?.onStateChange;e&&(b5=e(e=>{v5=null,y5=null,x5=null,e.sessionLifecycle.status!==`ready`&&t5(null),(e.sessionLifecycle.status===`expired`||e.sessionLifecycle.status===`signed-out`&&e.sessionLifecycle.reason===`refresh-revoked`)&&ue().catch(e=>{n5(e,{route:`desktop-auth-session-expired`})})}))}function Fhe(){return Kt(new URL(window.location.href))}function T5(){let e=new URL(window.location.href),t=qt(e);t.toString()!==e.toString()&&window.history.replaceState({},document.title,t.toString())}async function Ihe(){return N5(async()=>{let e=ae(`/api/auth/session`),t=async()=>{let t=await fetch(e,se({credentials:`include`}));if(!t.ok)throw new f5({message:`Failed to load server auth session state (${t.status}).`,status:t.status});return h5(t,e)},n=await t();return!n.authenticated&&n.auth.sessionMethods.length===1&&n.auth.sessionMethods[0]===`proxy-asserted`&&typeof window<`u`&&!window.desktopBridge&&e.startsWith(`https://`)&&await fe()?t():n})}async function Lhe(e){return N5(async()=>{let t={credential:e},n=ae(`/api/auth/bootstrap`),r=await fetch(n,se({body:JSON.stringify(t),credentials:`include`,headers:{"content-type":`application/json`},method:`POST`}));if(!r.ok)throw new f5({message:await r.text()||`Failed to bootstrap auth session (${r.status}).`,status:r.status});return h5(r,n)})}function E5(e){return new URL(e,window.location.origin).toString()}function D5(e){let t=(e?.primaryMode===`cloud`?null:e)?.bootstrapToken?.trim();return t&&t.length>0?t:null}function O5(){return typeof window>`u`?null:D5(window.desktopBridge?.getLocalEnvironmentBootstrap?.()??null)}function Rhe(){return typeof window>`u`?!1:me()===`session-expired`}function k5(){if(typeof window>`u`)return new Set;try{let e=window.sessionStorage.getItem(C5),t=e?JSON.parse(e):[];return Array.isArray(t)?new Set(t.filter(e=>typeof e==`string`)):new Set}catch{return new Set}}function A5(e){if(!(typeof window>`u`))try{if(e.size===0){window.sessionStorage.removeItem(C5);return}window.sessionStorage.setItem(C5,JSON.stringify([...e]))}catch{}}function zhe(){let e=O5();if(!e)return;let t=new Set(k5());t.add(e),A5(t)}function Bhe(e){return k5().has(e)}function j5(){let e=O5();if(!e){A5(new Set);return}let t=new Set(k5());t.delete(e),A5(t)}async function M5(){let e=E5(`/api/auth/session`),t=await fetch(e,{credentials:`include`});return t.ok?h5(t,e):null}async function Vhe(e){if(typeof window>`u`)return;let t=D5(e);if(!t||Rhe()||S5.has(t)||Bhe(t))return;if((await M5().catch(()=>null))?.authenticated){S5.add(t);return}let n=E5(`/api/auth/bootstrap`),r=await fetch(n,{body:JSON.stringify({credential:t}),credentials:`include`,headers:{"content-type":`application/json`},method:`POST`});if(!r.ok){if(r.status===401)return;throw new f5({message:await r.text()||`Failed to bootstrap local web owner session (${r.status}).`,status:r.status})}await h5(r,n),S5.add(t)}async function Hhe(){let e=await Ihe();if(e.authenticated)return e;let t=ce();if(t?.source!==`desktop-managed`||!t.bearerToken)return e;let n=await M5().catch(()=>null);return n?.authenticated?n:e}var Uhe=new Set([404,502,503,504]),Whe=15e3,Ghe=500;function Khe(e){ce()?.source===`paired-bearer`&&m5(e)&&ie(`http`)}async function N5(e){let t=Date.now();for(;;)try{return await e()}catch(e){if(Khe(e),!Jhe(e))throw e;if(Date.now()-t>=Whe)throw n5(e,{route:`bootstrap-retry-exhausted`}),e;await qhe(Ghe)}}function qhe(e){return new Promise(t=>{setTimeout(t,e)})}function Jhe(e){return p5(e)?Uhe.has(e.status):e instanceof TypeError||e instanceof DOMException&&e.name===`AbortError`}function Yhe(e,t){return e.sessionLifecycle.status===`ready`?e.sessionLifecycle.principalId!==t.id||e.cmmd.identity?.id!==t.id?`desktop-principal-mismatch`:null:`desktop-session-required`}async function Xhe(e){if(typeof window>`u`||!window.desktopBridge)return null;let t=window.desktopBridge.desktopAuth?.getState;if(!t)return`desktop-state-unavailable`;try{return Yhe(await t(),e)}catch(e){return n5(e,{route:`desktop-auth-gate-state`}),`desktop-state-unavailable`}}async function Zhe(e,t){return t5(null),de(t),await D().catch(e=>{n5(e,{route:`desktop-auth-gate-logout`})}),{status:`requires-auth`,auth:e.auth,errorMessage:he(t)??`Forge Desktop requires CMMD authentication.`}}async function Qhe(){let e=await Hhe();if(e.authenticated){if(e.cmmdIdentity){let t=await Xhe(e.cmmdIdentity);return t?(le(),Zhe(e,t)):(le(),Phe(e.cmmdIdentity),{status:`authenticated`})}return{status:`requires-auth`,auth:e.auth}}return{status:`requires-auth`,auth:e.auth}}async function $he(e){let t=e.trim();if(!t)throw Error(`Enter a pairing token to continue.`);y5=null,j5(),await Lhe(t),v5=null,T5()}function P5(){j5(),y5=null,v5=null}async function F5(e,t,n){let r=e.trim();if(!r)throw Error(`CMMD (Command) OAuth did not return an access token.`);let i=n?.refreshToken?.trim(),a=n?.mcpToken?.trim(),o=ae(`/api/auth/bootstrap/command`),s=await fetch(o,se({body:JSON.stringify({accessToken:r,...i?{refreshToken:i}:{},...a?{mcpToken:a}:{},...t===void 0?{}:{user:t}}),credentials:`include`,headers:{"content-type":`application/json`},method:`POST`}));if(!s.ok)throw new f5({message:await s.text()||`Failed to bootstrap with CMMD OAuth token (${s.status}).`,status:s.status});await h5(s,o),P5()}async function ege(){let e=ae(`/api/auth/ws-token`),t=await fetch(e,se({credentials:`include`,method:`POST`}));if(!t.ok)throw new f5({message:await t.text()||`Failed to issue websocket token (${t.status}).`,status:t.status});return h5(t,e)}async function tge(e){let t=await ege(),n=new URL(e,window.location.origin);return n.searchParams.set(`wsToken`,t.token),n.toString()}async function I5(e,t){try{return await O({method:`POST`,path:e,body:t,allowRetry:!1},ir())}catch(e){throw e instanceof ye&&e.kind!==`auth`&&e.code!==null&&ar.has(e.code)?new ye({kind:`auth`,message:e.message,status:e.status??401,code:e.code}):e}}async function nge(e){try{return await I5(`/api/cmmd/tasks/update`,e)}catch(t){if(t instanceof ye&&(t.kind===`auth`||t.kind===`permission`))throw t;if(t instanceof ye||t instanceof Error)return I5(`/api/command/tasks/update`,e);throw t}}async function rge(){typeof window>`u`||await window.desktopBridge?.desktopAuth?.logoutCloud?.()}async function ige(){let e=await Promise.allSettled([D(),rge()]);t5(null),zhe(),v5=null,y5=null;let t=e.find(e=>e.status===`rejected`);if(t)throw t.reason}async function L5(){return w5(),y5?.status===`authenticated`?(le(),y5):v5||g5({start:R5,getSlot:()=>v5,setSlot:e=>{v5=e},onSettled:e=>{e.status===`authenticated`&&(y5=e)},retry:L5})}async function R5(){return oe().then(e=>Vhe(e)).then(()=>Qhe())}function z5(){return w5(),x5||(v5=null,y5=null,g5({start:R5,getSlot:()=>x5,setSlot:e=>{x5=e},onSettled:e=>{e.status===`authenticated`&&(y5=e,le())},retry:z5}))}function age(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/u,``)}function oge(e){let t=age(e).replace(/-/g,`+`).replace(/_/g,`/`);return`-----BEGIN PUBLIC KEY-----\n${((t+`=`.repeat((4-t.length%4)%4)).match(/.{1,64}/gu)??[]).join(`
|
|
1006
1006
|
`)}\n-----END PUBLIC KEY-----\n`}function B5(e){return{publicKeyPem:oge(e.publicKeySpkiDer),async sign(t){let n=await crypto.subtle.sign(`Ed25519`,e.privateKey,new TextEncoder().encode(t));return new Uint8Array(n)}}}var sge=`cmmd-session-pop`,V5=`keys`,H5=`device-key`;function cge(){return!1}var U5=class extends Error{constructor(e){super(`CMMD session key storage is unavailable (${e}). Session binding is enabled, so login cannot continue without a bound key: allow site data and IndexedDB for this origin, then retry.`),this.name=`CmmdSessionPopKeyStorageError`}};function lge(e){return e===void 0?typeof indexedDB>`u`?null:indexedDB:e}function W5(e){return new Promise((t,n)=>{e.addEventListener(`success`,()=>t(e.result),{once:!0}),e.addEventListener(`error`,()=>n(e.error),{once:!0})})}function uge(e){return new Promise((t,n)=>{e.addEventListener(`complete`,()=>t(),{once:!0}),e.addEventListener(`abort`,()=>n(e.error??new DOMException(`The transaction aborted.`,`AbortError`)),{once:!0}),e.addEventListener(`error`,()=>n(e.error??new DOMException(`The transaction failed.`,`UnknownError`)),{once:!0})})}function dge(e){return new Promise((t,n)=>{let r=e.open(sge,1);r.addEventListener(`upgradeneeded`,()=>{r.result.objectStoreNames.contains(V5)||r.result.createObjectStore(V5)}),r.addEventListener(`success`,()=>t(r.result),{once:!0}),r.addEventListener(`error`,()=>n(r.error),{once:!0})})}function G5(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.privateKey instanceof CryptoKey&&t.publicKeySpkiDer instanceof Uint8Array}async function fge(e){let t=await W5(e.transaction(V5,`readonly`).objectStore(V5).get(H5));return G5(t)?{privateKey:t.privateKey,publicKeySpkiDer:t.publicKeySpkiDer}:null}async function pge(e,t){let n=e.transaction(V5,`readwrite`),r=n.objectStore(V5),i=uge(n);i.catch(()=>void 0);let a=await W5(r.get(H5));return G5(a)?{privateKey:a.privateKey,publicKeySpkiDer:a.publicKeySpkiDer}:(await W5(r.add(t,H5)),await i,t)}var K5=null;async function mge(e={}){return cge()?(K5??=hge(e).finally(()=>{K5=null}),K5):null}async function hge(e){let t=lge(e.indexedDB),n=e.subtle??crypto.subtle;if(!t)throw new U5(`IndexedDB is not available in this context`);let r;try{r=await dge(t)}catch{throw new U5(`the key database could not be opened`)}try{let e=await fge(r);if(e)return B5({privateKey:e.privateKey,publicKeySpkiDer:e.publicKeySpkiDer});let t=await n.generateKey({name:`Ed25519`},!1,[`sign`]),i={privateKey:t.privateKey,publicKeySpkiDer:new Uint8Array(await n.exportKey(`spki`,t.publicKey))};return B5(await pge(r,i))}catch(e){throw e instanceof U5?e:new U5(`the session key could not be generated or persisted`)}}function q5(e={}){return mge(e).then(e=>e?.publicKeyPem??null)}async function gge(e,t={}){let n=e.email.trim();if(!n||!e.password)throw Error(`Enter your CMMD email and password.`);let r=await(t.resolvePopPublicKey??q5)(),i=ae(`/api/auth/cmmd-password/token`),a=await fetch(i,se({body:JSON.stringify({email:n,password:e.password,...r?{pop_public_key:r}:{}}),credentials:`include`,headers:{"content-type":`application/json`},method:`POST`}));if(!a.ok)throw new f5({message:await a.text()||`CMMD login failed (${a.status}).`,status:a.status});let o=await h5(a,i);if(o.authenticated===!0)return P5(),{serverEstablishedSession:!0};if(typeof o.access_token!=`string`||o.access_token.trim().length===0)throw Error(`CMMD login did not return an access token.`);return await F5(o.access_token,o.user,{refreshToken:typeof o.refresh_token==`string`?o.refresh_token:void 0,mcpToken:typeof o.mcp_token==`string`?o.mcp_token:void 0}),{serverEstablishedSession:!1}}async function J5(e,t){return await e.text()||t}async function _ge(e,t){let n=e?.trim(),r={...n?{label:n}:{},...t?{role:t}:{}},i=ae(`/api/auth/pairing-token`),a=await fetch(i,se({body:JSON.stringify(r),credentials:`include`,headers:{"content-type":`application/json`},method:`POST`}));if(!a.ok)throw Error(await J5(a,`Failed to create pairing credential (${a.status}).`));return h5(a,i)}async function vge(){let e=ae(`/api/auth/clients`),t=await fetch(e,se({credentials:`include`}));if(!t.ok)throw Error(await J5(t,`Failed to load paired clients (${t.status}).`));return h5(t,e)}async function yge(e){let t=ae(`/api/auth/pairing-links/revoke`),n=await fetch(t,se({body:JSON.stringify({id:e}),credentials:`include`,headers:{"content-type":`application/json`},method:`POST`}));if(!n.ok)throw Error(await J5(n,`Failed to revoke the pairing link (${n.status}).`));return(await h5(n,t)).revoked}var bge=`/.well-known/forge/environment`,Y5=ve()(e=>({descriptor:null,setDescriptor:t=>e({descriptor:t}),reset:()=>e({descriptor:null})})),X5=null;function xge(e){let t=Z5();return t?Te(Se({id:t.environmentId,label:t.label,source:e.source,target:e.target}),t):null}async function Sge(){return N5(async()=>{await oe();let e=ce()?.bearerToken,t=ae(bge),n=e?await fetch(t,{headers:{Authorization:`Bearer ${e}`}}):await fetch(t);if(!n.ok)throw new f5({message:`Failed to load server environment descriptor (${n.status}).`,status:n.status});let r=await h5(n,t);return Q5(r),r})}function Z5(){return Y5.getState().descriptor}function Cge(){return Y5(wge)}function wge(e){return e.descriptor?.environmentId??null}function Tge(){return Y5(Ege)}function Ege(e){return e.descriptor}function Dge(){return Y5(Oge)}function Oge(e){return e.descriptor?.deviceRuntimeId??null}function kge(){return Z5()?.deviceRuntimeId??null}function Age(){return Y5(jge)}function jge(e){return Ae(e.descriptor)}function Mge(){return Y5(Nge)}function Nge(e){return je(e.descriptor)}function Q5(e){Y5.getState().setDescriptor(e)}function Pge(e,t){return t?.primaryMode!==`cloud`||e.environmentId===t.environmentId}function $5(){let e=ce();return e?xge({source:e.source,target:e.target}):null}function Fge(){return Ige()}async function Ige(){let e=await oe(),t=Z5();if(t&&Pge(t,e))return Promise.resolve(t);if(t&&Q5(null),X5)return X5;let n=Sge();return X5=n,n.finally(()=>{X5===n&&(X5=null)})}var e7=class e{#e;constructor(e){this.#e=e}static namedByCatalog(t){return new e(t.projectId)}get registrationProjectId(){return this.#e}asConfirmationIdentity(){return{registrationProjectId:this.#e}}};function t7(e){return{match:t=>t.present({target:e})}}function n7(){return{match:e=>e.provablyAbsent()}}function Lge(e){return{match:t=>t.unprovable(e)}}var Rge=class e{#e;#t;capacity;constructor(e,t,n){this.#e=e,this.#t=t,this.capacity=n}static fromValidatedBody(t,n,r){return new e(t,n,r)}listRowsForDisplay(){return this.#e}listEnvironmentsForDisplay(){return this.#t}locate(e){if(e.registrationProjectId!==void 0){let t=this.#e.find(t=>t.projectId===e.registrationProjectId);return t===void 0?n7():t7(e7.namedByCatalog(t))}if(e.runtimeId!==void 0||e.cmmdEnvironmentId!==void 0){let t=this.#e.find(t=>t.runtime!=null&&(e.runtimeId!==void 0&&t.runtime.runtimeId===e.runtimeId||e.cmmdEnvironmentId!==void 0&&t.runtime.environmentId===e.cmmdEnvironmentId));if(t)return t7(e7.namedByCatalog(t))}if(this.#e.length===0)return n7();let t=e.runtimeId??e.cmmdEnvironmentId;return Lge(t===void 0?`no identity this catalog can be matched on`:`the catalog holds ${String(this.#e.length)} row(s) that ${t} cannot be ruled out against`)}};function r7(e){let t=e,n=t&&typeof t==`object`&&`data`in t&&t.data?t.data:t,r=n?.projects;if(!Array.isArray(r))throw Error("Forge Cloud returned a project catalog this version cannot read (no `projects` list).");let i=n?.environments;if(!Array.isArray(i))throw Error("Forge Cloud returned an Environment catalog this version cannot read (invalid `environments` list).");if(!r.every(zge))throw Error(`Forge Cloud returned a project catalog this version cannot read (invalid project entry).`);if(!i.every(Bge))throw Error(`Forge Cloud returned an Environment catalog this version cannot read (invalid Environment entry).`);return Rge.fromValidatedBody(r,i,n?.capacity??null)}function zge(e){return!a7(e)||typeof e.organizationId!=`number`||typeof e.projectId!=`number`?!1:e.runtime===void 0||e.runtime===null||i7(e.runtime)}function Bge(e){return a7(e)&&typeof e.organizationId==`number`&&typeof e.userId==`number`&&i7(e.runtime)}function i7(e){return a7(e)&&typeof e.runtimeId==`string`&&typeof e.status==`string`}function a7(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Vge(e,t){let n=new URL(e);return n.pathname=t,n.search=``,n.hash=``,n.toString()}function o7(e){return e.accessToken??e.resolveAccessToken?.()}function s7(e,t,n=t=>Vge(e.cmmdHttpBaseUrl,t)){return O({method:t.method,path:t.path,...t.body===void 0?{}:{body:t.body},...t.signal===void 0?{}:{signal:t.signal}},{resolveUrl:n,resolveBearerToken:()=>o7(e)})}function Hge(e,t){return s7(e,{method:`GET`,path:`/api/forge/context/cloud-projects/${encodeURIComponent(String(t.projectId))}/removal-preview`,...t.signal===void 0?{}:{signal:t.signal}},e.cloudProjectRemovalPreviewUrl?()=>e.cloudProjectRemovalPreviewUrl(t.projectId):void 0).then(e=>e.preview)}function Uge(e,t){return s7(e,{method:`POST`,path:`/api/forge/context/cloud-projects/${encodeURIComponent(String(t.projectId))}/removal`,body:{idempotencyKey:t.idempotencyKey,deletePlanningProject:t.deletePlanningProject,...t.deleteCheckoutFiles===void 0?{}:{deleteCheckoutFiles:t.deleteCheckoutFiles},...t.previewToken===void 0?{}:{previewToken:t.previewToken},...t.forceDirty===void 0?{}:{forceDirty:t.forceDirty}},...t.signal===void 0?{}:{signal:t.signal}},e.cloudProjectRemovalUrl?()=>e.cloudProjectRemovalUrl(t.projectId):void 0).then(e=>e.operation)}function c7(e,t=``){return`/api/forge/context/runtimes/${encodeURIComponent(e)}${t}`}async function Wge(e){if(e.ok)return;let{CmmdApiError:t}=await _e(async()=>{let{CmmdApiError:e}=await import(`./transport-CgH8pQK3.js`).then(e=>e.r);return{CmmdApiError:e}},__vite__mapDeps([7,1]));if(e.status===401||e.status===403){let n=null;try{let t=await e.json();n=typeof t?.code==`string`?t.code:null}catch{}throw new t({kind:`auth`,message:`CMMD authentication required. Sign in again to continue.`,status:e.status,code:n})}throw new t({kind:e.status>=500?`server`:`client`,message:`forge-cloud-projects proxy error (${e.status})`,status:e.status})}var l7=class{config;constructor(e){this.config=e}async ensureRuntime(e){return(await s7(this.config,{method:`POST`,path:`/api/forge/context/runtimes/ensure`,body:{...e.projectId===void 0?{}:{projectId:e.projectId},...e.organizationId===void 0?{}:{organizationId:e.organizationId},...e.githubRepoFullName===void 0?{}:{githubRepoFullName:e.githubRepoFullName},...e.workspaceRoot===void 0?{}:{workspaceRoot:e.workspaceRoot}},...e.signal===void 0?{}:{signal:e.signal}},this.config.ensureUrl?()=>this.config.ensureUrl:void 0)).runtime}async connectRuntime(e){return s7(this.config,{method:`POST`,path:c7(e.runtimeId,`/connect`),...e.organizationId===void 0?{}:{body:{organizationId:e.organizationId}},...e.signal===void 0?{}:{signal:e.signal}})}async getRuntime(e){return(await s7(this.config,{method:`GET`,path:c7(e.runtimeId),...e.signal===void 0?{}:{signal:e.signal}})).runtime}async destroyRuntime(e){return(await s7(this.config,{method:`POST`,path:c7(e.runtimeId,`/destroy`),body:{purgeVolume:e.purgeVolume??!1,...e.force===!0?{force:!0}:{},...e.reason===void 0?{}:{reason:e.reason},...e.organizationId===void 0?{}:{organizationId:e.organizationId}},...e.signal===void 0?{}:{signal:e.signal}},this.config.destroyUrl?()=>this.config.destroyUrl(e.runtimeId):void 0)).runtime}async runRuntimeLifecycleAction(e){return(await s7(this.config,{method:`POST`,path:c7(e.runtimeId,`/${e.action}`),body:e.organizationId===void 0?{}:{organizationId:e.organizationId},...e.signal===void 0?{}:{signal:e.signal}},this.config.lifecycleUrl?()=>this.config.lifecycleUrl(e.runtimeId,e.action):void 0)).runtime}async updateRuntimeCommit(e){return(await s7(this.config,{method:`POST`,path:c7(e.runtimeId,`/update-commit`),body:e.organizationId===void 0?{}:{organizationId:e.organizationId},...e.signal===void 0?{}:{signal:e.signal}},this.config.updateCommitUrl?()=>this.config.updateCommitUrl(e.runtimeId):void 0)).operation}async getRuntimeCommitUpdateOperation(e){return(await s7(this.config,{method:`GET`,path:c7(e.runtimeId,`/update-commit/${encodeURIComponent(String(e.operationId))}`),...e.signal===void 0?{}:{signal:e.signal}},this.config.updateCommitOperationUrl?()=>this.config.updateCommitOperationUrl(e.runtimeId,e.operationId):void 0)).operation}async listCloudProjects(e){if(this.config.listUrl){let t=o7(this.config),n=await fetch(this.config.listUrl,{method:`GET`,headers:{Accept:`application/json`,...t?{Authorization:`Bearer ${t}`}:{}},credentials:t?`omit`:`include`,cache:`no-store`,...e?.signal===void 0?{}:{signal:e.signal}});return await Wge(n),r7(await n.json())}return r7(await s7(this.config,{method:`GET`,path:`/api/forge/context/cloud-projects`,...e?.signal===void 0?{}:{signal:e.signal}}))}async previewCloudProjectRemoval(e){return Hge(this.config,e)}async requestCloudProjectRemoval(e){return Uge(this.config,e)}async getCloudProjectRemoval(e){return(await s7(this.config,{method:`GET`,path:`/api/forge/context/cloud-projects/removals/${encodeURIComponent(e.operationId)}`,...e.signal===void 0?{}:{signal:e.signal}},this.config.cloudProjectRemovalReceiptUrl?()=>this.config.cloudProjectRemovalReceiptUrl(e.operationId):void 0)).operation}},u7=`/api/attachments/upload/`;function Gge(e){if(!e.relativeUrl.startsWith(u7))throw Error(`Attachment upload URL did not use the expected upload route.`);let t=e.relativeUrl.slice(24);if(!/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/.test(t))throw Error(`Attachment upload URL did not contain a valid signed token.`);if(e.relativeUrl.includes(`?`)||e.relativeUrl.includes(`#`))throw Error(`Attachment upload URL must not include a query or fragment.`);let n=new URL(e.httpBaseUrl),r=n.pathname.endsWith(`/`)?n.pathname.slice(0,-1):n.pathname,i=`${r}${u7}`,a=new URL(`${r}${e.relativeUrl}`,n);if(a.origin!==n.origin||!a.pathname.startsWith(i))throw Error(`Attachment upload URL resolved outside the selected environment.`);return a.toString()}var d7=!1,f7=null;function p7(e){return Object.values(e)}function m7(e){return e.map(e=>s(e))}function h7(e){try{Bt(m7(p7(e))).catch(e=>{console.error(`[SAVED_ENVIRONMENTS] persist failed`,e)})}catch(e){console.error(`[SAVED_ENVIRONMENTS] persist failed`,e)}}function Kge(e){let t=g7.getState().byId,n=Object.fromEntries(e.map(e=>[e.environmentId,e]));g7.setState({byId:{...n,...t}})}async function qge(){if(d7)return;if(f7)return f7;let e=(async()=>{try{Kge(await zt())}catch(e){console.error(`[SAVED_ENVIRONMENTS] hydrate failed`,e)}finally{d7=!0,g7.setState({hydrated:!0})}})().finally(()=>{f7===e&&(f7=null)});return f7=e,f7}var g7=ve()(e=>({byId:{},hydrated:d7,upsert:t=>e(e=>{let n={...e.byId,[t.environmentId]:t};return h7(n),{byId:n}}),remove:t=>e(e=>{let{[t]:n,...r}=e.byId;return h7(r),{byId:r}}),markConnected:(t,n)=>e(e=>{let r=e.byId[t];if(!r)return e;let i={...e.byId,[t]:{...r,lastConnectedAt:n}};return h7(i),{byId:i}}),reset:()=>{h7({}),e({byId:{}})}}));function _7(){return d7}function Jge(){return _7()?Promise.resolve():qge()}function v7(){return Object.values(g7.getState().byId).toSorted((e,t)=>e.label.localeCompare(t.label))}function Yge(){return v7().filter(e=>e.lastAuthenticatedPullRequestCapability===!0)}function y7(e){return g7.getState().byId[e]??null}function b7(e){let t=$5();return t?.environmentId===e?we(t):y7(e)?.httpBaseUrl??null}function x7(e){let t=b7(e.environmentId)??(typeof window<`u`?window.location.origin:null);if(!t)throw Error(`Unable to resolve HTTP base URL for environment ${e.environmentId}.`);let n=new URL(t);return n.pathname=`${n.pathname.endsWith(`/`)?n.pathname.slice(0,-1):n.pathname}${e.pathname.startsWith(`/`)?e.pathname:`/${e.pathname}`}`,e.searchParams&&(n.search=new URLSearchParams(e.searchParams).toString()),n.toString()}function S7(e){if(!b7(e))throw Error(`Unable to resolve HTTP base URL for environment ${e}.`)}function Xge(e){return S7(e.environmentId),Gge({httpBaseUrl:b7(e.environmentId),relativeUrl:e.relativeUrl})}async function Zge(e){await Bt(m7(p7({...g7.getState().byId,[e.environmentId]:e})))}async function Qge(e,t){let{[e]:n,...r}=g7.getState().byId,i={...r,[t.environmentId]:t};await Bt(m7(p7(i))),g7.setState({byId:i})}async function $ge(e){return Vt(e)}async function e_e(e,t){return Ht(e,t)}async function t_e(e){await Ut(e)}function n_e(e,t){return e.reasoningEffortLevels.some(e=>e.value===t)}function C7(e){return e.reasoningEffortLevels.find(e=>e.isDefault)?.value??null}function w7(e,t){let n=C7(e),r=typeof t==`string`?t.trim():null;return r&&!e.promptInjectedEffortLevels.includes(r)&&n_e(e,r)?r:n??void 0}function T7(e,t){return e.contextWindowOptions.some(e=>e.value===t)}function E7(e){return e.contextWindowOptions.find(e=>e.isDefault)?.value??null}function r_e(e,t){let n=E7(e);return t&&T7(e,t)?t:n??void 0}function i_e(e,t){let n=w7(e,t?.reasoningEffort),r=e.supportsFastMode?t?.fastMode:void 0,i={...n?{reasoningEffort:n}:{},...r===void 0?{}:{fastMode:r}};return Object.keys(i).length>0?i:void 0}function a_e(e,t){let n=w7(e,t?.effort),r=e.supportsThinkingToggle?t?.thinking:void 0,i=e.supportsFastMode?t?.fastMode:void 0,a=r_e(e,t?.contextWindow),o={...r===void 0?{}:{thinking:r},...n?{effort:n}:{},...i===void 0?{}:{fastMode:i},...a===void 0?{}:{contextWindow:a}};return Object.keys(o).length>0?o:void 0}function o_e(e){return typeof e==`string`&&/\bultrathink\b/i.test(e)}function D7(e,t=`codex`){if(typeof e!=`string`)return null;let n=e.trim();if(!n)return null;let r=g[t],i=Object.prototype.hasOwnProperty.call(r,n)?r[n]:void 0;return typeof i==`string`?i:n}function s_e(e,t,n){if(typeof t!=`string`)return null;let r=t.trim();if(!r)return null;let i=n.find(e=>e.slug===r);if(i)return i.slug;let a=n.find(e=>e.name.toLowerCase()===r.toLowerCase());if(a)return a.slug;let o=D7(r,e),s=n.find(e=>e.slug===o);return s?s.slug:null}var c_e=[`codex`,`claudeAgent`];function O7(e,t){return c_e.filter(e=>e!==t).some(t=>ne(t,e)!==void 0)}function l_e(e,t){let n=D7(e,t);return!n||O7(n,t)?te[t]:n}function k7(e,t){return l_e(t,e)}function u_e(e){return typeof e==`string`&&e.trim()||null}function d_e(e,t){let n=e.trim();return!n||t!==`ultrathink`||n.startsWith(`Ultrathink:`)?n:`Ultrathink:\n${n}`}function A7(e,t){return{id:e.id,environmentId:t,name:e.title,cwd:e.workspaceRoot,repositoryIdentity:e.repositoryIdentity??null,availability:e.availability,defaultThreadEnvMode:e.defaultThreadEnvMode??null,cmmdRegistration:e.cmmdRegistration??null,defaultModelSelection:e.defaultModelSelection?j7(e.defaultModelSelection):null,createdAt:e.createdAt,updatedAt:e.updatedAt,scripts:M7(e.scripts)}}function j7(e){return{...e,model:k7(e.provider,e.model)}}function M7(e){return e.map(e=>({...e}))}function f_e(e,t){return{...e,...t.title===void 0?{}:{name:t.title},...t.workspaceRoot===void 0?{}:{cwd:t.workspaceRoot},...t.repositoryIdentity===void 0?{}:{repositoryIdentity:t.repositoryIdentity??null},...t.defaultThreadEnvMode===void 0?{}:{defaultThreadEnvMode:t.defaultThreadEnvMode},...t.cmmdRegistration===void 0?{}:{cmmdRegistration:t.cmmdRegistration},...t.defaultModelSelection===void 0?{}:{defaultModelSelection:t.defaultModelSelection?j7(t.defaultModelSelection):null},...t.scripts===void 0?{}:{scripts:M7(t.scripts)},updatedAt:t.updatedAt}}function N7(e){let t=K8(e.lastError);return{provider:m_e(e.providerName),status:p_e(e.status),orchestrationStatus:e.status,activeTurnId:e.activeTurnId??void 0,createdAt:e.updatedAt,updatedAt:e.updatedAt,...t?{lastError:t}:{}}}function P7(e,t){let n=t.attachments?.map(t=>{let n=x7({environmentId:e,pathname:h_e(t.id)});return t.type===`image`?{...t,previewUrl:n}:{...t,downloadUrl:n}});return{id:t.id,role:t.role,text:t.text,turnId:t.turnId,createdAt:t.createdAt,streaming:t.streaming,...t.streaming?{}:{completedAt:t.updatedAt},...n&&n.length>0?{attachments:n}:{}}}function F7(e){return{id:e.id,turnId:e.turnId,planMarkdown:e.planMarkdown,implementedAt:e.implementedAt,implementationThreadId:e.implementationThreadId,createdAt:e.createdAt,updatedAt:e.updatedAt}}function I7(e){return{turnId:e.turnId,completedAt:e.completedAt,status:e.status,assistantMessageId:e.assistantMessageId??void 0,checkpointTurnCount:e.checkpointTurnCount,checkpointRef:e.checkpointRef,files:e.files.map(e=>({...e}))}}function p_e(e){switch(e){case`starting`:return`connecting`;case`running`:return`running`;case`error`:return`error`;case`ready`:case`interrupted`:return`ready`;case`idle`:case`stopped`:return`closed`}}function m_e(e){return e===`codex`||e===`claudeAgent`||e===`ollama`||e===`cmmd`||e===`apex`?e:`codex`}function h_e(e){return`/attachments/${encodeURIComponent(e)}`}var g_e=[],__e=[],v_e=[],y_e=[],b_e={},x_e={},S_e={},C_e={},w_e=[],L7=new WeakMap,R7=new WeakMap;function z7(e,t,n){if(!e||e.length===0||!t)return n;let r=L7.get(e),i=r?.get(t);if(i)return i;let a=e.flatMap(e=>{let n=t[e];return n?[n]:[]}),o=r??new WeakMap;return o.set(t,a),r||L7.set(e,o),a}function T_e(e,t){return z7(e.messageIdsByThreadId[t],e.messageByThreadId[t]??b_e,g_e)}function E_e(e,t){return z7(e.activityIdsByThreadId[t],e.activityByThreadId[t]??x_e,__e)}function D_e(e,t){return z7(e.proposedPlanIdsByThreadId[t],e.proposedPlanByThreadId[t]??S_e,v_e)}function O_e(e,t){return z7(e.turnDiffIdsByThreadId[t],e.turnDiffSummaryByThreadId[t]??C_e,y_e)}function B7(e,t){let n=e.threadShellById[t];if(!n)return;let r=e.threadSessionById[t]??null,i=e.threadTurnStateById[t],a=e.threadRateLimitStatusById[t]??w_e,o=T_e(e,t),s=E_e(e,t),c=D_e(e,t),l=O_e(e,t),u=R7.get(n);if(u&&u.session===r&&u.turnState===i&&u.rateLimitStatus===a&&u.messages===o&&u.activities===s&&u.proposedPlans===c&&u.turnDiffSummaries===l)return u.thread;let d={...n,session:r,latestTurn:i?.latestTurn??null,pendingSourceProposedPlan:i?.pendingSourceProposedPlan,rateLimitStatus:a,messages:o,activities:s,proposedPlans:c,turnDiffSummaries:l};return R7.set(n,{session:r,turnState:i,rateLimitStatus:a,messages:o,activities:s,proposedPlans:c,turnDiffSummaries:l,thread:d}),d}function k_e(e,t){let n=t.providerAccountId??null,r=e=>e.provider===t.provider&&(e.providerAccountId??null)===n,i=e.find(r),a={status:t.status,usedPercent:t.usedPercent,resetsAt:t.resetsAt},o={provider:t.provider,providerAccountId:n,fiveHour:t.window===`five_hour`?a:i?.fiveHour??null,sevenDay:t.window===`seven_day`?a:i?.sevenDay??null};return[...e.filter(e=>!r(e)),o]}function V7(e){return{settledAt:e.settledAt??null,settledOverride:e.settledOverride??null}}var H7={projectIds:[],projectById:{},threadIds:[],threadIdsByProjectId:{},threadShellById:{},threadSessionById:{},threadTurnStateById:{},threadRateLimitStatusById:{},messageIdsByThreadId:{},messageByThreadId:{},activityIdsByThreadId:{},activityByThreadId:{},proposedPlanIdsByThreadId:{},proposedPlanByThreadId:{},turnDiffIdsByThreadId:{},turnDiffSummaryByThreadId:{},sidebarThreadSummaryById:{},threadSubscriptionErrorById:{},bootstrapComplete:!1},A_e={activeEnvironmentId:null,environmentStateById:{}},U7=[],W7=[];function G7(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function K7(e,t){return{id:e.id,environmentId:t,codexThreadId:null,projectId:e.projectId,title:e.title,modelSelection:j7(e.modelSelection),runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,session:e.session?N7(e.session):null,messages:e.messages.map(e=>P7(t,e)),proposedPlans:e.proposedPlans.map(F7),error:K8(e.session?.lastError),createdAt:e.createdAt,archivedAt:e.archivedAt,...V7(e),updatedAt:e.updatedAt,latestTurn:e.latestTurn,pendingSourceProposedPlan:e.latestTurn?.sourceProposedPlan,branch:e.branch,worktreePath:e.worktreePath,turnDiffSummaries:e.checkpoints.map(I7),activities:e.activities.map(e=>({...e})),anchorKind:e.anchorKind,anchorCmmdId:e.anchorCmmdId,linkedPullRequest:e.linkedPullRequest??null,goal:e.goal??null,titleRegeneration:e.titleRegeneration??null,kind:e.kind,parentThreadId:e.parentThreadId,status:e.status,workerRole:e.workerRole??null,pendingAutoCreatePrompt:e.pendingAutoCreatePrompt??null,rateLimitStatus:e.rateLimitStatus??[]}}function q7(e,t){let n={id:e.id,environmentId:t,codexThreadId:null,projectId:e.projectId,title:e.title,modelSelection:j7(e.modelSelection),runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,error:K8(e.session?.lastError),createdAt:e.createdAt,archivedAt:e.archivedAt,...V7(e),updatedAt:e.updatedAt,branch:e.branch,worktreePath:e.worktreePath,anchorKind:e.anchorKind,anchorCmmdId:e.anchorCmmdId,linkedPullRequest:e.linkedPullRequest??null,goal:e.goal??null,titleRegeneration:e.titleRegeneration??null,kind:e.kind,parentThreadId:e.parentThreadId,status:e.status,workerRole:e.workerRole??null},r=e.session?N7(e.session):null;return{shell:n,session:r,turnState:{latestTurn:e.latestTurn,pendingSourceProposedPlan:e.latestTurn?.sourceProposedPlan},summary:{id:e.id,modelSelection:n.modelSelection,environmentId:t,projectId:e.projectId,title:e.title,interactionMode:e.interactionMode,session:r,createdAt:e.createdAt,archivedAt:e.archivedAt,...V7(e),updatedAt:e.updatedAt,latestTurn:e.latestTurn,branch:e.branch,worktreePath:e.worktreePath,latestUserMessageAt:e.latestUserMessageAt,hasPendingApprovals:e.hasPendingApprovals,hasPendingUserInput:e.hasPendingUserInput,hasActionableProposedPlan:e.hasActionableProposedPlan,anchorKind:e.anchorKind,anchorCmmdId:e.anchorCmmdId,linkedPullRequest:e.linkedPullRequest??null,goal:e.goal??null,titleRegeneration:e.titleRegeneration??null,kind:e.kind,parentThreadId:e.parentThreadId,status:e.status,workerRole:e.workerRole??null}}}function j_e(e){return{id:e.id,environmentId:e.environmentId,codexThreadId:e.codexThreadId,projectId:e.projectId,title:e.title,modelSelection:e.modelSelection,runtimeMode:e.runtimeMode,interactionMode:e.interactionMode,error:e.error,createdAt:e.createdAt,archivedAt:e.archivedAt,settledAt:e.settledAt,settledOverride:e.settledOverride,updatedAt:e.updatedAt,branch:e.branch,worktreePath:e.worktreePath,anchorKind:e.anchorKind,anchorCmmdId:e.anchorCmmdId,linkedPullRequest:e.linkedPullRequest??null,kind:e.kind,parentThreadId:e.parentThreadId,status:e.status,workerRole:e.workerRole??null,goal:e.goal??null,titleRegeneration:e.titleRegeneration??null}}function M_e(e){return{latestTurn:e.latestTurn,...e.pendingSourceProposedPlan?{pendingSourceProposedPlan:e.pendingSourceProposedPlan}:{}}}function J7(e,t){return e===t?!0:e===void 0||t===void 0?!1:e.threadId===t.threadId&&e.planId===t.planId}function Y7(e,t){return e===t?!0:e==null||t==null?!1:e.turnId===t.turnId&&e.state===t.state&&e.requestedAt===t.requestedAt&&e.startedAt===t.startedAt&&e.completedAt===t.completedAt&&e.assistantMessageId===t.assistantMessageId&&J7(e.sourceProposedPlan,t.sourceProposedPlan)}function X7(e,t){return e===t?!0:e==null||t==null?!1:e.provider===t.provider&&e.status===t.status&&e.orchestrationStatus===t.orchestrationStatus&&e.activeTurnId===t.activeTurnId&&e.createdAt===t.createdAt&&e.updatedAt===t.updatedAt&&e.lastError===t.lastError}function Z7(e,t){return e===t?!0:e==null||t==null?!1:e.projectId===t.projectId&&e.projectRepositoryId===t.projectRepositoryId&&e.provider===t.provider&&e.host===t.host&&e.repository===t.repository&&e.number===t.number&&e.url===t.url}function Q7(e,t){return e!==void 0&&e.id===t.id&&e.environmentId===t.environmentId&&e.projectId===t.projectId&&e.title===t.title&&$7(e.titleRegeneration,t.titleRegeneration)&&e.interactionMode===t.interactionMode&&X7(e.session,t.session)&&e.createdAt===t.createdAt&&e.archivedAt===t.archivedAt&&e.settledAt===t.settledAt&&e.settledOverride===t.settledOverride&&e.updatedAt===t.updatedAt&&Y7(e.latestTurn,t.latestTurn)&&e.branch===t.branch&&e.worktreePath===t.worktreePath&&e.latestUserMessageAt===t.latestUserMessageAt&&e.hasPendingApprovals===t.hasPendingApprovals&&e.hasPendingUserInput===t.hasPendingUserInput&&e.hasActionableProposedPlan===t.hasActionableProposedPlan&&e.anchorKind===t.anchorKind&&e.anchorCmmdId===t.anchorCmmdId&&Z7(e.linkedPullRequest,t.linkedPullRequest)&&e.kind===t.kind&&e.parentThreadId===t.parentThreadId&&e.status===t.status}function $7(e,t){return e===t?!0:e==null||t==null?!1:e.requestId===t.requestId&&e.startedAt===t.startedAt}function e9(e,t){return e!==void 0&&e.id===t.id&&e.environmentId===t.environmentId&&e.codexThreadId===t.codexThreadId&&e.projectId===t.projectId&&e.title===t.title&&e.modelSelection===t.modelSelection&&e.runtimeMode===t.runtimeMode&&e.interactionMode===t.interactionMode&&e.error===t.error&&e.createdAt===t.createdAt&&e.archivedAt===t.archivedAt&&e.settledAt===t.settledAt&&e.settledOverride===t.settledOverride&&e.updatedAt===t.updatedAt&&e.branch===t.branch&&e.worktreePath===t.worktreePath&&e.anchorKind===t.anchorKind&&e.anchorCmmdId===t.anchorCmmdId&&Z7(e.linkedPullRequest,t.linkedPullRequest)&&e.kind===t.kind&&e.parentThreadId===t.parentThreadId&&e.status===t.status&&e.goal===t.goal&&$7(e.titleRegeneration,t.titleRegeneration)}function t9(e,t){return e!==void 0&&Y7(e.latestTurn,t.latestTurn)&&J7(e.pendingSourceProposedPlan,t.pendingSourceProposedPlan)}function N_e(e,t){return e.includes(t)?[...e]:[...e,t]}function n9(e,t){return e.filter(e=>e!==t)}function P_e(e){return{ids:e.messages.map(e=>e.id),byId:Object.fromEntries(e.messages.map(e=>[e.id,e]))}}function F_e(e){return{ids:e.activities.map(e=>e.id),byId:Object.fromEntries(e.activities.map(e=>[e.id,e]))}}function I_e(e){return{ids:e.proposedPlans.map(e=>e.id),byId:Object.fromEntries(e.proposedPlans.map(e=>[e.id,e]))}}function L_e(e){return{ids:e.turnDiffSummaries.map(e=>e.turnId),byId:Object.fromEntries(e.turnDiffSummaries.map(e=>[e.turnId,e]))}}function R_e(e){return e.projectIds.flatMap(t=>{let n=e.projectById[t];return n?[n]:[]})}function r9(e){return e.threadIds.flatMap(t=>{let n=B7(e,t);return n?[n]:[]})}function i9(e,t,n,r){let i=e;if(e.threadIds.includes(t)||(i={...i,threadIds:[...i.threadIds,t]}),r!==n){let e=i.threadIdsByProjectId;if(r){let n=e[r]??U7,i=n9(n,t);if(i.length===0){let{[r]:t,...n}=e;e=n}else G7(n,i)||(e={...e,[r]:i})}let a=e[n]??U7,o=N_e(a,t);G7(a,o)||(e={...e,[n]:o}),e!==i.threadIdsByProjectId&&(i={...i,threadIdsByProjectId:e})}return i}function a9(e,t,n){let r=j_e(t),i=M_e(t),a=e.threadShellById[t.id],o=e.threadTurnStateById[t.id],s=i9(e,t.id,t.projectId,n?.projectId);e9(a,r)||(s={...s,threadShellById:{...s.threadShellById,[t.id]:r}});let c=e.sidebarThreadSummaryById[t.id];if(c!==void 0){let e={...c,title:t.title,modelSelection:t.modelSelection,interactionMode:t.interactionMode,session:t.session,createdAt:t.createdAt,archivedAt:t.archivedAt,settledAt:t.settledAt,settledOverride:t.settledOverride,updatedAt:t.updatedAt,latestTurn:t.latestTurn,branch:t.branch,worktreePath:t.worktreePath,anchorKind:t.anchorKind,anchorCmmdId:t.anchorCmmdId,linkedPullRequest:t.linkedPullRequest??null,goal:t.goal,titleRegeneration:t.titleRegeneration??null,kind:t.kind,parentThreadId:t.parentThreadId,status:t.status,workerRole:t.workerRole};Q7(c,e)||(s={...s,sidebarThreadSummaryById:{...s.sidebarThreadSummaryById,[t.id]:e}})}if(X7(n?.session??null,t.session)||(s={...s,threadSessionById:{...s.threadSessionById,[t.id]:t.session}}),(n?.rateLimitStatus??W7)!==(t.rateLimitStatus??W7)&&(s={...s,threadRateLimitStatusById:{...s.threadRateLimitStatusById,[t.id]:t.rateLimitStatus??W7}}),t9(o,i)||(s={...s,threadTurnStateById:{...s.threadTurnStateById,[t.id]:i}}),n?.messages!==t.messages){let e=P_e(t);s={...s,messageIdsByThreadId:{...s.messageIdsByThreadId,[t.id]:e.ids},messageByThreadId:{...s.messageByThreadId,[t.id]:e.byId}}}if(n?.activities!==t.activities){let e=F_e(t);s={...s,activityIdsByThreadId:{...s.activityIdsByThreadId,[t.id]:e.ids},activityByThreadId:{...s.activityByThreadId,[t.id]:e.byId}}}if(n?.proposedPlans!==t.proposedPlans){let e=I_e(t);s={...s,proposedPlanIdsByThreadId:{...s.proposedPlanIdsByThreadId,[t.id]:e.ids},proposedPlanByThreadId:{...s.proposedPlanByThreadId,[t.id]:e.byId}}}if(n?.turnDiffSummaries!==t.turnDiffSummaries){let e=L_e(t);s={...s,turnDiffIdsByThreadId:{...s.turnDiffIdsByThreadId,[t.id]:e.ids},turnDiffSummaryByThreadId:{...s.turnDiffSummaryByThreadId,[t.id]:e.byId}}}return s}function o9(e,t){let n=e.threadShellById[t.shell.id],r=i9(e,t.shell.id,t.shell.projectId,n?.projectId);return e9(n,t.shell)||(r={...r,threadShellById:{...r.threadShellById,[t.shell.id]:t.shell}}),X7(e.threadSessionById[t.shell.id]??null,t.session)||(r={...r,threadSessionById:{...r.threadSessionById,[t.shell.id]:t.session}}),t9(e.threadTurnStateById[t.shell.id],t.turnState)||(r={...r,threadTurnStateById:{...r.threadTurnStateById,[t.shell.id]:t.turnState}}),Q7(e.sidebarThreadSummaryById[t.shell.id],t.summary)||(r={...r,sidebarThreadSummaryById:{...r.sidebarThreadSummaryById,[t.shell.id]:t.summary}}),r}function s9(e,t){return Object.fromEntries(Object.entries(e).flatMap(([e,n])=>t.has(e)?[[e,n]]:[]))}function c9(e,t){let n=e.threadShellById[t],r=e.sidebarThreadSummaryById[t],i=n?.projectId??r?.projectId;if(!i)return e;let a=n9(e.threadIds,t),o=n9(e.threadIdsByProjectId[i]??U7,t),s=o.length===0?(()=>{let{[i]:t,...n}=e.threadIdsByProjectId;return n})():{...e.threadIdsByProjectId,[i]:o},{[t]:c,...l}=e.threadShellById,{[t]:u,...d}=e.threadSessionById,{[t]:f,...p}=e.threadTurnStateById,{[t]:m,...h}=e.messageIdsByThreadId,{[t]:g,..._}=e.messageByThreadId,{[t]:v,...y}=e.activityIdsByThreadId,{[t]:b,...x}=e.activityByThreadId,{[t]:S,...C}=e.proposedPlanIdsByThreadId,{[t]:w,...T}=e.proposedPlanByThreadId,{[t]:ee,...E}=e.turnDiffIdsByThreadId,{[t]:te,...ne}=e.turnDiffSummaryByThreadId,{[t]:re,...ie}=e.sidebarThreadSummaryById;return{...e,threadIds:a,threadIdsByProjectId:s,threadShellById:l,threadSessionById:d,threadTurnStateById:p,messageIdsByThreadId:h,messageByThreadId:_,activityIdsByThreadId:y,activityByThreadId:x,proposedPlanIdsByThreadId:C,proposedPlanByThreadId:T,turnDiffIdsByThreadId:E,turnDiffSummaryByThreadId:ne,sidebarThreadSummaryById:ie}}function z_e(e,t){let n=new Set(e.threadIdsByProjectId[t]??U7);for(let[r,i]of Object.entries(e.threadShellById))i.projectId===t&&n.add(r);for(let[r,i]of Object.entries(e.sidebarThreadSummaryById))i.projectId===t&&n.add(r);return[...n]}function l9(e,t){let n=z_e(e,t);if(!e.projectById[t]&&n.length===0&&!e.projectIds.includes(t))return e;let r=e;for(let e of n)r=c9(r,e);let{[t]:i,...a}=r.projectById;return{...r,projectById:a,projectIds:n9(r.projectIds,t)}}function u9(e){return e===`error`?`error`:e===`missing`?`interrupted`:`completed`}function B_e(e,t){if(e.sequence!==void 0&&t.sequence!==void 0){if(e.sequence!==t.sequence)return e.sequence-t.sequence}else if(e.sequence!==void 0)return 1;else if(t.sequence!==void 0)return-1;return e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)}function d9(e){let t=e.previous?.turnId===e.turnId?e.previous.sourceProposedPlan:e.sourceProposedPlan;return{turnId:e.turnId,state:e.state,requestedAt:e.requestedAt,startedAt:e.startedAt,completedAt:e.completedAt,assistantMessageId:e.assistantMessageId,...t?{sourceProposedPlan:t}:{}}}function V_e(e,t,n){let r=!1,i=e.map(e=>e.turnId!==t||e.assistantMessageId===n?e:(r=!0,{...e,assistantMessageId:n??void 0}));return r?i:[...e]}function H_e(e,t,n){let r=new Set;for(let n of e){if(n.role===`system`){r.add(n.id);continue}n.turnId!==void 0&&n.turnId!==null&&t.has(n.turnId)&&r.add(n.id)}let i=e.filter(e=>e.role===`user`&&r.has(e.id)).length,a=Math.max(0,n-i);if(a>0){let n=e.filter(e=>e.role===`user`&&!r.has(e.id)&&(e.turnId===void 0||e.turnId===null||t.has(e.turnId))).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(0,a);for(let e of n)r.add(e.id)}let o=e.filter(e=>e.role===`assistant`&&r.has(e.id)).length,s=Math.max(0,n-o);if(s>0){let n=e.filter(e=>e.role===`assistant`&&!r.has(e.id)&&(e.turnId===void 0||e.turnId===null||t.has(e.turnId))).toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(0,s);for(let e of n)r.add(e.id)}return e.filter(e=>r.has(e.id))}function U_e(e,t){return e.filter(e=>e.turnId===null||t.has(e.turnId))}function W_e(e,t){return e.filter(e=>e.turnId===null||t.has(e.turnId))}function f9(e,t,n){let r=B7(e,t);if(!r)return e;let i=n(r);return i===r?e:a9(e,i,r)}function p9(e,t,n,r){let i=f9(e,t,e=>({...e,...r,updatedAt:n})),a=i.sidebarThreadSummaryById[t];return!a||Object.keys(r).every(e=>a[e]===r[e])?i:{...i,sidebarThreadSummaryById:{...i.sidebarThreadSummaryById,[t]:{...a,...r}}}}function G_e(e){return{projectIds:e.map(e=>e.id),projectById:Object.fromEntries(e.map(e=>[e.id,e]))}}function m9(e,t){return e.environmentStateById[t]??H7}function h9(e,t,n){let r=e.environmentStateById[t]===n?e.environmentStateById:{...e.environmentStateById,[t]:n};return r===e.environmentStateById?e:{...e,environmentStateById:r}}function K_e(e,t,n){let r=t.projects.map(e=>A7(e,n)),i=new Set(t.threads.map(e=>e.id)),a={...e,...G_e(r),threadIds:[],threadIdsByProjectId:{},threadShellById:{},threadSessionById:{},threadTurnStateById:{},threadRateLimitStatusById:s9(e.threadRateLimitStatusById,i),sidebarThreadSummaryById:{},messageIdsByThreadId:s9(e.messageIdsByThreadId,i),messageByThreadId:s9(e.messageByThreadId,i),activityIdsByThreadId:s9(e.activityIdsByThreadId,i),activityByThreadId:s9(e.activityByThreadId,i),proposedPlanIdsByThreadId:s9(e.proposedPlanIdsByThreadId,i),proposedPlanByThreadId:s9(e.proposedPlanByThreadId,i),turnDiffIdsByThreadId:s9(e.turnDiffIdsByThreadId,i),turnDiffSummaryByThreadId:s9(e.turnDiffSummaryByThreadId,i),bootstrapComplete:!0};for(let e of t.threads)a=o9(a,q7(e,n));return a}function q_e(e,t,n){return h9(e,n,K_e(m9(e,n),t,n))}function J_e(e,t,n){let r=m9(e,n),i=B7(r,t.id);return h9(e,n,a9(r,K7(t,n),i))}function Y_e(e,t,n,r){let i=m9(e,t);return h9(e,t,{...i,threadSubscriptionErrorById:{...i.threadSubscriptionErrorById,[n]:r}})}function X_e(e,t,n){let r=m9(e,t);if(!(n in r.threadSubscriptionErrorById))return e;let{[n]:i,...a}=r.threadSubscriptionErrorById;return h9(e,t,{...r,threadSubscriptionErrorById:a})}function g9(e,t,n){switch(t.type){case`project.created`:{let r=A7({id:t.payload.projectId,title:t.payload.title,workspaceRoot:t.payload.workspaceRoot,repositoryIdentity:t.payload.repositoryIdentity??null,defaultModelSelection:t.payload.defaultModelSelection,defaultThreadEnvMode:t.payload.defaultThreadEnvMode??null,cmmdRegistration:t.payload.cmmdRegistration??null,scripts:t.payload.scripts,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt,deletedAt:null},n),i=e.projectIds.find(n=>n===t.payload.projectId||e.projectById[n]?.cwd===t.payload.workspaceRoot)??null,a=e.projectById,o=e.projectIds;if(i!==null&&i!==r.id){let{[i]:t,...n}=e.projectById;a={...n,[r.id]:r},o=e.projectIds.map(e=>e===i?r.id:e)}else a={...e.projectById,[r.id]:r},o=i===null&&!e.projectIds.includes(r.id)?[...e.projectIds,r.id]:e.projectIds;return{...e,projectById:a,projectIds:o}}case`project.meta-updated`:{let n=e.projectById[t.payload.projectId];if(!n)return e;let r=f_e(n,t.payload);return{...e,projectById:{...e.projectById,[t.payload.projectId]:r}}}case`project.deleted`:return l9(e,t.payload.projectId);case`thread.created`:{let r=B7(e,t.payload.threadId);return a9(e,K7({id:t.payload.threadId,projectId:t.payload.projectId,title:t.payload.title,modelSelection:t.payload.modelSelection,runtimeMode:t.payload.runtimeMode,interactionMode:t.payload.interactionMode,branch:t.payload.branch,worktreePath:t.payload.worktreePath,latestTurn:null,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt,archivedAt:null,deletedAt:null,messages:[],proposedPlans:[],activities:[],checkpoints:[],session:null,anchorKind:t.payload.anchorKind,anchorCmmdId:t.payload.anchorCmmdId,kind:t.payload.kind,parentThreadId:t.payload.parentThreadId,status:t.payload.status,workerRole:t.payload.workerRole,goal:t.payload.goal??null,titleRegeneration:null,pendingAutoCreatePrompt:null},n),r)}case`thread.deleted`:return c9(e,t.payload.threadId);case`thread.archived`:return p9(e,t.payload.threadId,t.payload.updatedAt,{archivedAt:t.payload.archivedAt});case`thread.unarchived`:return p9(e,t.payload.threadId,t.payload.updatedAt,{archivedAt:null});case`thread.settled`:return p9(e,t.payload.threadId,t.payload.updatedAt,{settledAt:t.payload.settledAt,settledOverride:t.payload.settledOverride});case`thread.unsettled`:return p9(e,t.payload.threadId,t.payload.updatedAt,{settledAt:null,settledOverride:`active`});case`thread.meta-updated`:return f9(e,t.payload.threadId,e=>({...e,...t.payload.title===void 0?{}:{title:t.payload.title},...t.payload.modelSelection===void 0?{}:{modelSelection:j7(t.payload.modelSelection)},...t.payload.branch===void 0?{}:{branch:t.payload.branch},...t.payload.worktreePath===void 0?{}:{worktreePath:t.payload.worktreePath},...t.payload.anchorKind===void 0?{}:{anchorKind:t.payload.anchorKind},...t.payload.anchorCmmdId===void 0?{}:{anchorCmmdId:t.payload.anchorCmmdId},...t.payload.status===void 0?{}:{status:t.payload.status},...t.payload.parentThreadId===void 0?{}:{parentThreadId:t.payload.parentThreadId},...t.payload.goal===void 0?{}:{goal:t.payload.goal},...t.payload.linkedPullRequest===void 0?{}:{linkedPullRequest:t.payload.linkedPullRequest},...t.payload.titleRegeneration===void 0?{}:{titleRegeneration:t.payload.titleRegeneration},updatedAt:t.payload.updatedAt}));case`thread.runtime-mode-set`:return f9(e,t.payload.threadId,e=>({...e,runtimeMode:t.payload.runtimeMode,updatedAt:t.payload.updatedAt}));case`thread.interaction-mode-set`:return f9(e,t.payload.threadId,e=>({...e,interactionMode:t.payload.interactionMode,updatedAt:t.payload.updatedAt}));case`thread.turn-start-requested`:return f9(e,t.payload.threadId,e=>({...e,...t.payload.modelSelection===void 0?{}:{modelSelection:j7(t.payload.modelSelection)},runtimeMode:t.payload.runtimeMode,interactionMode:t.payload.interactionMode,pendingSourceProposedPlan:t.payload.sourceProposedPlan,latestTurn:d9({previous:e.latestTurn,turnId:d.make(t.payload.messageId),state:`running`,requestedAt:t.payload.createdAt,startedAt:t.payload.createdAt,completedAt:null,assistantMessageId:null,sourceProposedPlan:t.payload.sourceProposedPlan}),updatedAt:t.occurredAt}));case`thread.turn-interrupt-requested`:return t.payload.turnId===void 0?e:f9(e,t.payload.threadId,e=>{let n=e.latestTurn;return n===null||n.turnId!==t.payload.turnId?e:{...e,latestTurn:d9({previous:n,turnId:t.payload.turnId,state:`interrupted`,requestedAt:n.requestedAt,startedAt:n.startedAt??t.payload.createdAt,completedAt:n.completedAt??t.payload.createdAt,assistantMessageId:n.assistantMessageId}),updatedAt:t.occurredAt}});case`thread.message-sent`:return f9(e,t.payload.threadId,e=>{let n=P7(e.environmentId,{id:t.payload.messageId,role:t.payload.role,text:t.payload.text,...t.payload.attachments===void 0?{}:{attachments:t.payload.attachments},turnId:t.payload.turnId,streaming:t.payload.streaming,createdAt:t.payload.createdAt,updatedAt:t.payload.updatedAt}),r=(e.messages.find(e=>e.id===n.id)?e.messages.map(e=>e.id===n.id?{...e,text:n.streaming?`${e.text}${n.text}`:n.text.length>0?n.text:e.text,streaming:n.streaming,...n.turnId===void 0?{}:{turnId:n.turnId},...n.streaming?e.completedAt===void 0?{}:{completedAt:e.completedAt}:n.completedAt===void 0?{}:{completedAt:n.completedAt},...n.attachments===void 0?{}:{attachments:n.attachments}}:e):[...e.messages,n]).slice(-2e3),i=t.payload.role===`assistant`&&t.payload.turnId!==null?V_e(e.turnDiffSummaries,t.payload.turnId,t.payload.messageId):e.turnDiffSummaries,a=t.payload.role===`assistant`&&t.payload.turnId!==null&&(e.latestTurn===null||e.latestTurn.turnId===t.payload.turnId)?d9({previous:e.latestTurn,turnId:t.payload.turnId,state:t.payload.streaming?`running`:e.latestTurn?.state===`interrupted`?`interrupted`:e.latestTurn?.state===`error`?`error`:`completed`,requestedAt:e.latestTurn?.turnId===t.payload.turnId?e.latestTurn.requestedAt:t.payload.createdAt,startedAt:e.latestTurn?.turnId===t.payload.turnId?e.latestTurn.startedAt??t.payload.createdAt:t.payload.createdAt,sourceProposedPlan:e.pendingSourceProposedPlan,completedAt:t.payload.streaming?e.latestTurn?.turnId===t.payload.turnId?e.latestTurn.completedAt??null:null:t.payload.updatedAt,assistantMessageId:t.payload.messageId}):e.latestTurn;return{...e,messages:r,turnDiffSummaries:i,latestTurn:a,updatedAt:t.occurredAt}});case`thread.session-set`:return f9(e,t.payload.threadId,e=>({...e,session:N7(t.payload.session),error:K8(t.payload.session.lastError),latestTurn:t.payload.session.status===`running`&&t.payload.session.activeTurnId!==null?d9({previous:e.latestTurn,turnId:t.payload.session.activeTurnId,state:`running`,requestedAt:e.latestTurn?.turnId===t.payload.session.activeTurnId?e.latestTurn.requestedAt:t.payload.session.updatedAt,startedAt:e.latestTurn?.turnId===t.payload.session.activeTurnId?e.latestTurn.startedAt??t.payload.session.updatedAt:t.payload.session.updatedAt,completedAt:null,assistantMessageId:e.latestTurn?.turnId===t.payload.session.activeTurnId?e.latestTurn.assistantMessageId:null,sourceProposedPlan:e.pendingSourceProposedPlan}):e.latestTurn,updatedAt:t.occurredAt}));case`thread.session-stop-requested`:return f9(e,t.payload.threadId,e=>e.session===null?e:{...e,session:{...e.session,status:`closed`,orchestrationStatus:`stopped`,activeTurnId:void 0,updatedAt:t.payload.createdAt},updatedAt:t.occurredAt});case`thread.proposed-plan-upserted`:return f9(e,t.payload.threadId,e=>{let n=F7(t.payload.proposedPlan),r=[...e.proposedPlans.filter(e=>e.id!==n.id),n].toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id)).slice(-200);return{...e,proposedPlans:r,updatedAt:t.occurredAt}});case`thread.turn-diff-completed`:return f9(e,t.payload.threadId,e=>{let n=I7({turnId:t.payload.turnId,checkpointTurnCount:t.payload.checkpointTurnCount,checkpointRef:t.payload.checkpointRef,status:t.payload.status,files:t.payload.files,assistantMessageId:t.payload.assistantMessageId,completedAt:t.payload.completedAt}),r=e.turnDiffSummaries.find(e=>e.turnId===n.turnId);if(r&&r.status!==`missing`&&n.status===`missing`)return e;let i=[...e.turnDiffSummaries.filter(e=>e.turnId!==n.turnId),n].toSorted((e,t)=>(e.checkpointTurnCount??2**53-1)-(t.checkpointTurnCount??2**53-1)).slice(-500),a=e.latestTurn===null||e.latestTurn.turnId===t.payload.turnId?d9({previous:e.latestTurn,turnId:t.payload.turnId,state:u9(t.payload.status),requestedAt:e.latestTurn?.requestedAt??t.payload.completedAt,startedAt:e.latestTurn?.startedAt??t.payload.completedAt,completedAt:t.payload.completedAt,assistantMessageId:t.payload.assistantMessageId,sourceProposedPlan:e.pendingSourceProposedPlan}):e.latestTurn;return{...e,turnDiffSummaries:i,latestTurn:a,updatedAt:t.occurredAt}});case`thread.reverted`:return f9(e,t.payload.threadId,e=>{let n=e.turnDiffSummaries.filter(e=>e.checkpointTurnCount!==void 0&&e.checkpointTurnCount<=t.payload.turnCount).toSorted((e,t)=>(e.checkpointTurnCount??2**53-1)-(t.checkpointTurnCount??2**53-1)).slice(-500),r=new Set(n.map(e=>e.turnId)),i=H_e(e.messages,r,t.payload.turnCount).slice(-2e3),a=W_e(e.proposedPlans,r).slice(-200),o=U_e(e.activities,r),s=n.at(-1)??null;return{...e,turnDiffSummaries:n,messages:i,proposedPlans:a,activities:o,pendingSourceProposedPlan:void 0,latestTurn:s===null?null:{turnId:s.turnId,state:u9(s.status??`ready`),requestedAt:s.completedAt,startedAt:s.completedAt,completedAt:s.completedAt,assistantMessageId:s.assistantMessageId??null},updatedAt:t.occurredAt}});case`thread.activity-appended`:return f9(e,t.payload.threadId,e=>{let n=[...e.activities.filter(e=>e.id!==t.payload.activity.id),{...t.payload.activity}].toSorted(B_e).slice(-500);return{...e,activities:n,updatedAt:t.occurredAt}});case`thread.rate-limit-set`:return f9(e,t.payload.threadId,e=>({...e,rateLimitStatus:k_e(e.rateLimitStatus??[],t.payload),updatedAt:t.occurredAt}));case`thread.worker-spawned`:return f9(e,t.payload.workerThreadId,e=>({...e,kind:`worker`,parentThreadId:t.payload.masterThreadId,branch:t.payload.branch,worktreePath:t.payload.worktreePath,workerRole:t.payload.workerRole??e.workerRole??null,updatedAt:t.occurredAt}));case`thread.approval-response-requested`:case`thread.user-input-response-requested`:return e}return e}function Z_e(e,t,n){switch(t.kind){case`project-upserted`:{let r=A7(t.project,n),i=e.projectIds.find(n=>n===t.project.id||e.projectById[n]?.cwd===t.project.workspaceRoot)??null,a=e.projectById,o=e.projectIds;if(i!==null&&i!==r.id){let{[i]:t,...n}=e.projectById;a={...n,[r.id]:r},o=e.projectIds.map(e=>e===i?r.id:e)}else a={...e.projectById,[r.id]:r},o=i===null&&!e.projectIds.includes(r.id)?[...e.projectIds,r.id]:e.projectIds;return{...e,projectById:a,projectIds:o}}case`project-removed`:return l9(e,t.projectId);case`thread-upserted`:return o9(e,q7(t.thread,n));case`thread-removed`:return c9(e,t.threadId)}}function Q_e(e,t,n){if(t.length===0)return e;let r=m9(e,n);return h9(e,n,t.reduce((e,t)=>g9(e,t,n),r))}function _9(e){return Object.entries(e.environmentStateById)}function v9(e,t){return t?m9(e,t):H7}function $_e(e,t){return r9(v9(e,t))}function eve(e){return _9(e).flatMap(([,e])=>R_e(e))}function tve(e){return _9(e).flatMap(([,e])=>r9(e))}function nve(e){return _9(e).flatMap(([,e])=>y9(e).flatMap(t=>{let n=e.threadShellById[t];return n?[n]:[]}))}function y9(e){let t=[],n=new Set,r=e=>{n.has(e)||(n.add(e),t.push(e))};for(let t of e.threadIds)r(t);for(let t of Object.keys(e.threadShellById))r(t);for(let t of Object.keys(e.sidebarThreadSummaryById))r(t);return t}function b9(e,t,n){let r=t.sidebarThreadSummaryById[n];if(r)return r.environmentId===e?r:{...r,environmentId:e};let i=t.threadShellById[n];return i?{id:i.id,environmentId:e,projectId:i.projectId,title:i.title,modelSelection:i.modelSelection,interactionMode:i.interactionMode,session:t.threadSessionById[n]??null,createdAt:i.createdAt,archivedAt:i.archivedAt,settledAt:i.settledAt,settledOverride:i.settledOverride,updatedAt:i.updatedAt,latestTurn:t.threadTurnStateById[n]?.latestTurn??null,branch:i.branch,worktreePath:i.worktreePath,latestUserMessageAt:null,hasPendingApprovals:!1,hasPendingUserInput:!1,hasActionableProposedPlan:!1,anchorKind:i.anchorKind,anchorCmmdId:i.anchorCmmdId,goal:i.goal,titleRegeneration:i.titleRegeneration,kind:i.kind,parentThreadId:i.parentThreadId,workerRole:i.workerRole,status:i.status}:null}function rve(e){return _9(e).flatMap(([e,t])=>y9(t).flatMap(n=>{let r=b9(e,t,n);return r?[r]:[]}))}function x9(e,t){if(!t)return[];let n=v9(e,t.environmentId),r=n.threadIdsByProjectId[t.projectId]??U7;return(r.length>0?r:y9(n)).flatMap(e=>{let r=b9(t.environmentId,n,e);return!r||r.projectId!==t.projectId?[]:[r]})}function ive(e,t){return t.length===0?[]:t.length===1?x9(e,t[0]):t.flatMap(t=>x9(e,t))}function ave(e){return e.activeEnvironmentId===null?Object.values(e.environmentStateById).some(e=>e.bootstrapComplete):v9(e,e.activeEnvironmentId).bootstrapComplete}function ove(e,t){return t?v9(e,t.environmentId).projectById[t.projectId]:void 0}function sve(e,t){return t?B7(v9(e,t.environmentId),t.threadId):void 0}function cve(e,t){return t?v9(e,t.environmentId).threadShellById[t.threadId]!==void 0:!1}function lve(e,t){return t?b9(t.environmentId,v9(e,t.environmentId),t.threadId)??void 0:void 0}function uve(e,t,n){if(e.activeEnvironmentId===null)return e;let r=f9(m9(e,e.activeEnvironmentId),t,e=>e.error===n?e:{...e,error:n});return h9(e,e.activeEnvironmentId,r)}function dve(e,t,n){return h9(e,n,g9(m9(e,n),t,n))}function fve(e,t,n){return h9(e,n,Z_e(m9(e,n),t,n))}function pve(e,t){return e.activeEnvironmentId===t?e:{...e,activeEnvironmentId:t}}function mve(e,t,n,r){let i=f9(m9(e,t.environmentId),t.threadId,e=>{if(e.branch===n&&e.worktreePath===r)return e;let t=e.worktreePath!==r;return{...e,branch:n,worktreePath:r,...t?{session:null}:{}}});return h9(e,t.environmentId,i)}var S9=ve(e=>({...A_e,setActiveEnvironmentId:t=>e(e=>pve(e,t)),syncServerShellSnapshot:(t,n)=>e(e=>q_e(e,t,n)),syncServerThreadDetail:(t,n)=>e(e=>J_e(e,t,n)),setThreadSubscriptionError:(t,n,r)=>e(e=>Y_e(e,t,n,r)),clearThreadSubscriptionError:(t,n)=>e(e=>X_e(e,t,n)),applyOrchestrationEvent:(t,n)=>e(e=>dve(e,t,n)),applyOrchestrationEvents:(t,n)=>e(e=>Q_e(e,t,n)),applyShellEvent:(t,n)=>e(e=>fve(e,t,n)),setError:(t,n)=>e(e=>uve(e,t,n)),setThreadBranch:(t,n,r)=>e(e=>mve(e,t,n,r))}));function C9(){let e=new Map;return{getItem:t=>e.get(t)??null,setItem:(t,n)=>{e.set(t,n)},removeItem:t=>{e.delete(t)}}}function hve(e){return e!=null&&typeof e.getItem==`function`&&typeof e.setItem==`function`&&typeof e.removeItem==`function`}function w9(e){return hve(e)?e:C9()}var T9=C9();function E9(){return globalThis.localStorage||globalThis.window?.localStorage}var D9={getItem:e=>{try{let t=E9()?.getItem(e);if(t!==void 0)return t}catch{}return T9.getItem(e)},setItem:(e,t)=>{try{let n=E9();if(n){n.setItem(e,t);return}}catch{}T9.setItem(e,t)},removeItem:e=>{try{let t=E9();if(t){t.removeItem(e);return}}catch{}T9.removeItem(e)}};function gve(e){let t=D9.getItem(e);return typeof t==`string`?t:null}function _ve(e,t){D9.setItem(e,t)}function vve(e){D9.removeItem(e)}function yve(e,t=300){let n=w9(e),r=new be((e,t)=>{n.setItem(e,t)},{wait:t});return{getItem:e=>n.getItem(e),setItem:(e,t)=>{r.maybeExecute(e,t)},removeItem:e=>{r.cancel(),n.removeItem(e)},flush:()=>{r.flush()}}}function bve(e){switch(e){case`running`:return`green`;case`provisioning`:case`starting`:return`amber-pulse`;case`registered`:return`idle`;case`stopped`:case`suspended`:case`draining`:return`grey`;case`destroyed`:return`idle`;case`error`:return`red-pulse`;default:return`grey`}}function O9(e){let t=e.githubRepoFullName;return t?t.split(`/`)[1]??t:xve(e.projectName)}function xve(e){let t=e.trim().toLowerCase().replaceAll(`'`,``).replaceAll(`"`,``).replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``);return t.length>0?t:`project`}function k9(e){if(!e)return null;let t=e.trim().replace(/\/+$/,``);return t.length>0?t:null}function A9(e){let t=k9(e??void 0);return t&&j9(t).length>1?t:null}function j9(e){return e.split(`/`).flatMap(e=>e.split(`\\`)).filter(e=>e.length>0)}function M9(e){return e?j9(e).at(-1)??null:null}function Sve(e){let t=e.rows.length>0;return(e.isLoading||e.startupPhase===`auth-refreshing`)&&!t?{kind:`loading`}:e.error&&!t?{kind:`error-no-rows`,message:e.error}:e.error&&t?{kind:`stale-rows`,message:e.error}:t?{kind:`rows`}:{kind:`empty`}}function Cve(e,t){if(!t)return!1;let n=e.repositoryIdentity?.canonicalKey;return n!==void 0&&!n.toLowerCase().endsWith(`/${t.toLowerCase()}`)}function wve(e,t){return e?e.cmmdOrganizationId===t.cmmdOrganizationId&&e.cmmdProjectId===t.cmmdProjectId:!1}function Tve(e,t){let n=e.filter(e=>!e.cmmdRegistration),r=A9(t.workspaceRoot),i=r?n.filter(e=>k9(e.cwd)===r):[];if(i.length>0)return i;let a=O9(t).toLowerCase();return n.filter(e=>M9(e.cwd)?.toLowerCase()===a)}function N9(e,t,n){let r=e[t];if(!r)return null;let i=r.projectIds.flatMap(e=>{let t=r.projectById[e];return!t||Cve(t,n.githubRepoFullName)?[]:[t]}),a=i.filter(e=>wve(e.cmmdRegistration,n)),o=a.length>0?a:Tve(i,n),s=o.length===1?o[0]:void 0;return s?{environmentId:t,projectId:s.id}:null}function Eve(e){return{cmmdOrganizationId:e.cmmdOrganizationId,cmmdProjectId:e.cmmdProjectId,githubRepoFullName:e.githubRepoFullName,projectName:e.projectName,workspaceRoot:e.workspaceRoot}}function Dve(e,t){let n=e.cmmdEnvironmentId??e.environmentId;if(e.runtimeId===null||n===null)return null;let r=N9(t,p.make(n),Eve(e));return r?Me(r.environmentId,r.projectId):null}function Ove(e,t){return e===t?!0:e===null||t===null?!1:e.environmentId===t.environmentId&&e.projectId===t.projectId}function kve(e,t){let n=!1,r=e.map(e=>{let r=Dve(e,t);return Ove(r,e.resolvedRef)?e:(n=!0,{...e,resolvedRef:r})});return n?r:e}var P9=`registered`,Ave={destroyed:`destroyed`,superseded:`destroyed`,error:`error`,failed:`error`,draining:`draining`,recycling:`draining`,stopped:`stopped`,suspended:`suspended`,provisioning:`provisioning`,created:`provisioning`,starting:`starting`,restarting:`starting`};function F9(e,t){let n=Ave[e];if(n!==void 0)return n;if(e!==`running`)return`stopped`;if(t)switch(t){case`app_ready`:case`server_ready`:case`ready`:case`supervisor_up`:return`running`;case`starting`:case`image_pulling`:case`waiting_state`:return`starting`;case`error`:return`error`;default:return`running`}return`running`}function jve(e){return e===`destroyed`}function Mve(e){switch(e){case`running`:case`starting`:case`provisioning`:return!0;case`suspended`:return!0;case`registered`:case`stopped`:case`draining`:case`error`:case`destroyed`:return!1;default:return!1}}function Nve(e){let t=e.shortName?.trim();if(t)return t;if(e.projectName)return e.projectName;if(e.githubRepoFullName){let t=e.githubRepoFullName.split(`/`),n=t[t.length-1];if(n)return n}return`project ${e.cmmdProjectId}`}var I9={state:`unknown`,label:`Unknown`,detail:`Current Environment availability has not been observed.`,tone:`muted`,automaticWakeAllowed:!1,shellConnected:!1,shellMayEstablishReady:!1};function L9(e,t,n,r,i,a,o=!1){return{state:e,label:t,detail:n,tone:r,automaticWakeAllowed:i,shellConnected:a,shellMayEstablishReady:o}}function Pve(e,t){return e.ownerIntent===`paused`?L9(`paused`,`Paused`,`Resume before live work can wake this Environment.`,`warning`,!1,t):e.ownerIntent===`deleting`?L9(`deleting`,`Deleting`,`This Environment is being removed.`,`muted`,!1,t):null}function Fve(e,t){return e.executionAdmission.state===`allowed`?null:L9(`unavailable`,`Unavailable`,`This Environment is not accepting live work while it drains.`,`warning`,!1,t)}function R9(e,t=!1){if(e==null)return I9;let n=Pve(e,t);if(n!==null)return n;if(e.ownerIntent!==`active`)return I9;let r=Fve(e,t);if(r!==null)return r;let{provider:i,guestReadiness:a,activeWork:o}=e;return i.observedAt===null||i.failure!==null||i.state===`absent`||i.state===`unknown`?L9(`unknown`,`Unknown`,`Current provider availability has not been observed.`,`muted`,e.automaticWakeAllowed,t):i.state===`sleeping`?L9(`sleeping`,`Sleeping`,`Live work wakes this Environment automatically.`,`muted`,e.automaticWakeAllowed,t):a.observedAt===null||a.failure!==null||a.state===`unknown`?L9(`unknown`,`Unknown`,`Current guest readiness has not been observed.`,`muted`,e.automaticWakeAllowed,t):a.state===`starting`?L9(`starting`,`Starting`,`Preparing live execution.`,`warning`,e.automaticWakeAllowed,t):a.state===`degraded`?L9(`degraded`,`Degraded`,`A required service needs attention.`,`warning`,e.automaticWakeAllowed,t):a.state===`failed`?L9(`needs-attention`,`Needs attention`,`The readiness check failed.`,`destructive`,e.automaticWakeAllowed,t):t?L9(`ready`,`Ready`,null,`success`,e.automaticWakeAllowed,!0):o.state===`active`?L9(`ready`,`Ready`,null,`success`,e.automaticWakeAllowed,t):L9(`unknown`,`Unknown`,`No current execution proof is available.`,`muted`,e.automaticWakeAllowed,t,!0)}function Ive(e,t){return!t||!e.shellMayEstablishReady?e:L9(`ready`,`Ready`,null,`success`,e.automaticWakeAllowed,!0)}function z9(e){return e?F9(e.status,e.readinessPhase??void 0):P9}function Lve(e){return e.runtime?.githubRepoFullName??e.githubRepoFullName??null}function Rve(e,t){return{cmmdOrganizationId:e.organizationId,cmmdProjectId:e.projectId,projectName:Nve({shortName:e.shortName??null,projectName:e.projectName??null,githubRepoFullName:t,cmmdProjectId:e.projectId}),githubRepoFullName:t,iconUrl:e.iconUrl??null,icon:e.icon??null}}function zve(e){return e?{runtimeId:e.runtimeId,workspaceRoot:e.workspaceRoot??null,status:z9(e),desiredState:B9(e.desiredState),environmentId:ht(e.runtimeId),cmmdEnvironmentId:e.environmentId??null,...e.maintenance===void 0?{}:{maintenance:e.maintenance}}:{runtimeId:null,workspaceRoot:null,status:P9,desiredState:null,environmentId:null,cmmdEnvironmentId:null}}function B9(e){return e===`running`||e===`stopped`||e===`destroyed`?e:null}function Bve(e){return{...Rve(e,Lve(e)),registeredAt:e.registeredAt??null,...zve(e.runtime),removal:e.removal??null,resolvedRef:null}}function Vve(e){return e.map(Bve)}function Hve(e){return e.map(e=>({runtimeId:e.runtime.runtimeId,cmmdOrganizationId:e.organizationId,cmmdUserId:e.userId,displayName:e.displayName??null,userFirstName:e.userFirstName??null,environmentId:ht(e.runtime.runtimeId),cmmdEnvironmentId:e.runtime.environmentId??null,status:z9(e.runtime),desiredState:B9(e.runtime.desiredState),...e.runtime.maintenance===void 0?{}:{maintenance:e.runtime.maintenance},lifecycle:R9(e.lifecycle)}))}var V9=`forge:cmmd-cloud-project-catalog:v5`,Uve=re({runtimeId:b(E),cmmdOrganizationId:y,cmmdProjectId:y,cmmdEnvironmentId:b(E),registeredAt:o(b(E)),projectName:E,githubRepoFullName:b(E),workspaceRoot:b(E),iconUrl:o(b(E)),icon:o(b(E)),status:E,desiredState:o(b(E)),environmentId:b(E),removal:o(b(re({operationId:E,deletePlanningProject:_,status:w([`pending`,`running`,`retryable`]),phase:w([`destroy_runtime`,`purge_execution_state`,`delete_planning_project`,`unregister`,`complete`]),lastErrorCode:b(E),lastErrorMessage:b(E),updatedAt:E})))}),H9=re({rows:T(Uve),environments:T(re({runtimeId:E,cmmdOrganizationId:y,cmmdUserId:y,displayName:o(b(E)),userFirstName:o(b(E)),environmentId:E,cmmdEnvironmentId:b(E),status:E,desiredState:b(E)})),fetchedAt:E});function Wve(){ut(V9)}function Gve(){try{let e=ct(V9,H9);return e?{rows:e.rows.map(e=>({runtimeId:e.runtimeId,cmmdOrganizationId:e.cmmdOrganizationId,cmmdProjectId:e.cmmdProjectId,registeredAt:e.registeredAt??null,projectName:e.projectName,githubRepoFullName:e.githubRepoFullName,workspaceRoot:e.workspaceRoot,iconUrl:e.iconUrl??null,icon:e.icon??null,status:e.runtimeId===null?P9:F9(e.status),desiredState:B9(e.desiredState),environmentId:e.runtimeId===null?null:ht(e.runtimeId),cmmdEnvironmentId:e.cmmdEnvironmentId,resolvedRef:null,removal:e.removal??null})),environments:e.environments.map(e=>({runtimeId:e.runtimeId,cmmdOrganizationId:e.cmmdOrganizationId,cmmdUserId:e.cmmdUserId,displayName:e.displayName??null,userFirstName:e.userFirstName??null,cmmdEnvironmentId:e.cmmdEnvironmentId,status:F9(e.status),desiredState:B9(e.desiredState),environmentId:ht(e.runtimeId)})),fetchedAt:e.fetchedAt}:null}catch{return null}}function Kve(e,t,n){try{lt(V9,{rows:e.map(e=>({runtimeId:e.runtimeId,cmmdOrganizationId:e.cmmdOrganizationId,cmmdProjectId:e.cmmdProjectId,cmmdEnvironmentId:e.cmmdEnvironmentId,registeredAt:e.registeredAt,projectName:e.projectName,githubRepoFullName:e.githubRepoFullName,workspaceRoot:e.workspaceRoot,iconUrl:e.iconUrl,icon:e.icon,status:e.status,environmentId:e.environmentId,removal:e.removal})),environments:t,fetchedAt:n},H9)}catch{}}var U9=1e3;function qve(e){return e.reconnectPhase===`idle`?`hidden`:e.reconnectPhase===`exhausted`?`actionable`:!e.hasConnected||!e.stableConnectionSeen?`startup-pending`:`actionable`}function W9(e){let t=e.maxAttempts??2,n=e.retryDelayMs??1e3;return e.failedAttempt<t?{kind:`retry`,delayMs:n,nextAttempt:e.failedAttempt+1}:{kind:`terminal`,attempt:e.failedAttempt}}var Jve=`auth-required`,Yve=`cloud-projects`;async function Xve(e,t,n){let r=null,i=new l7(e).listCloudProjects({signal:t.signal}).then(e=>({kind:`catalog`,catalog:e})).catch(e=>({kind:`failed`,error:e})),a=new Promise(e=>{r=setTimeout(()=>{t.abort(),e({kind:`timed-out`})},n)});try{return await Promise.race([i,a])}finally{r!==null&&clearTimeout(r)}}function Zve(e){let t=e.accessToken??e.resolveAccessToken?.(),n={Accept:`text/event-stream`};return t&&(n.Authorization=`Bearer ${t}`),n}function Qve(e,t){let n=new URL(e);return n.pathname=t,n.search=``,n.hash=``,n.toString()}async function G9(e){return(e.status===401||e.status===403)&&(await nye(e)||e.status===401)?`auth-required`:e.status===404||e.status===405||!e.ok||!e.body?`fallback`:e.body.getReader()}async function $ve({reader:e,signal:t,onAuthRequired:n,onCatalog:r}){let i=new TextDecoder,a=``;try{for(;!t.aborted;){let{done:o,value:s}=await e.read();if(t.aborted||o)return;let c=eye(a,i.decode(s,{stream:!0}));if(a=c.buffer,c.messages.some(e=>tye(e,n,r)))return}}finally{e.releaseLock()}}function eye(e,t){let n=`${e}${t}`.split(/\n\n/);return{buffer:n.pop()??``,messages:n}}function tye(e,t,n){let r=iye(e);if(r.name===Jve)return t(),!0;let i=r.name===Yve?rye(r.data):null;return i&&n(i),!1}async function nye(e){try{let t=await e.clone().json();return typeof t?.code==`string`&&t.code===`CMMD_AUTH_REQUIRED`}catch{return!1}}function rye(e){try{return r7(JSON.parse(e))}catch{return null}}function iye(e){let t=``,n=``;for(let r of e.split(`
|
|
1007
1007
|
`))r.startsWith(`event: `)&&(t=r.slice(7).trim()),r.startsWith(`data: `)&&(n=r.slice(6).trim());return{name:t,data:n}}var aye=`/api/cmmd/forge-cloud-projects`,oye=`/api/cmmd/forge-cloud-projects/events`,sye=15e3,K9=3e4,cye=2e3,lye=3e4,uye=200;function q9(e){return e!==null&&clearTimeout(e),null}function dye({config:e,onEvent:t}){let n=!1,r=!1,i=!1,a=!1,o=!1,s=0,c=null,l=0,u=null,d=null,f=0,p=null,m=null,h=null,g=null;function _(){p=q9(p),g=q9(g)}function v(){f+=1,d?.controller.abort(),d=null}function y(e,t){return d?.controller===e&&d.generation===t&&f===t}function b(e){return u===e}function x(){v(),u?.abort(),u=null,_(),h=q9(h)}function S(){return!r&&!a}function C(e){t({kind:`catalog`,catalog:e,fetchedAt:new Date().toISOString()})}function w(e){a||r||(a=!0,c=null,x(),t({kind:`auth-required`,message:e}))}function T(e,n){if(r||a)return;s+=1,c=n;let i=W9({failedAttempt:s,retryDelayMs:U9});if(i.kind===`terminal`){w(e);return}u?.abort(),u=null,g=q9(g),t({kind:`auth-refreshing`}),o=!0,h=q9(h),h=setTimeout(()=>{h=null,o=!1,he()},i.delayMs)}async function ee(){if(!S())return!1;let n=new AbortController,r=++f;d={controller:n,generation:r},t({kind:`loading`});try{return E(await Xve(e,n,sye),n,r)}finally{y(n,r)&&(d=null)}}function E(e,t,n){return!S()||!y(t,n)?!1:e.kind===`catalog`?te(e.catalog):e.kind===`timed-out`?ne():re(e.error)}function te(e){return c!==`sse`&&(s=0,c=null),o=!1,C(e),!0}function ne(){return t({kind:`failed`,message:`Cloud connection refresh timed out. Showing last known connections.`}),!a}function re(e){let n=e instanceof Error?e.message:`Failed to load cloud projects`;return m5(e)||fye(e)||/authentication required/i.test(n)?T(n,`list`):t({kind:`failed`,message:n}),!a}function ie(){S()&&(p=q9(p),p=setTimeout(async()=>{await ee(),S()&&ie()},K9))}function ae(){!S()||o||(i?ie():se(l))}function oe(e){l=e+1;let t=Math.min(cye*2**e,lye);g=q9(g),g=setTimeout(()=>{g=null,se(l)},t)}function D(e){s=0,c=null,l=0,C(e)}async function se(t){if(!S()||u!==null)return;u=new AbortController;let n=u,r=e.eventsUrl??Qve(e.cmmdHttpBaseUrl,`/api/forge/context/runtimes/events`),i=e.eventsUrl?{Accept:`text/event-stream`}:Zve(e);try{await ce(await fetch(r,{headers:i,signal:n.signal,credentials:`include`}),n,t)}catch{pe(n)}}async function ce(e,t,n){if(!le(t))return;let r=await G9(e);if(le(t)){if(typeof r==`string`){fe(r);return}await $ve({reader:r,signal:t.signal,onAuthRequired:()=>ue(t),onCatalog:e=>de(t,e)}),me(t,n)}}function le(e){return S()&&b(e)}function ue(e){le(e)&&T(`CMMD authentication required. Sign in again to continue.`,`sse`)}function de(e,t){le(e)&&D(t)}function fe(e){if(u=null,e===`auth-required`){T(`CMMD authentication required. Sign in again to continue.`,`sse`);return}i=!0,ie()}function pe(e){e.signal.aborted||!le(e)||(u=null,i=!0,ie())}function me(e,t){e.signal.aborted||!le(e)||(u=null,oe(t))}function he(){return ee().then(e=>{e&&S()&&ae()})}return{initialize(){n||r||(n=!0,he())},refresh(){r||(v(),m=q9(m),m=setTimeout(()=>{m=null,a=!1,o=!1,s=0,c=null,x(),he()},uye))},teardown(){r=!0,m=q9(m),x()}}}function fye(e){return typeof e==`object`&&!!e&&`kind`in e&&e.kind===`auth`}var J9={connected:!1,isLoading:!1,error:null,rows:[],environments:[],fetchedAt:null,stale:!1,startupPhase:`idle`,capacity:null};function pye({config:e}){let t=Gve(),n=t?{...J9,isLoading:!0,rows:t.rows,environments:t.environments,fetchedAt:t.fetchedAt,stale:!0}:J9,r=new Set;function i(e){n=e;for(let e of r)e()}function a(e){switch(e.kind){case`loading`:i({...n,isLoading:!0,error:null});return;case`catalog`:{let t=Vve(e.catalog.listRowsForDisplay()),n=Hve(e.catalog.listEnvironmentsForDisplay());Kve(t,n,e.fetchedAt),i({connected:!0,isLoading:!1,error:null,rows:t,environments:n,fetchedAt:e.fetchedAt,stale:!1,startupPhase:`idle`,capacity:e.catalog.capacity});return}case`failed`:i({...n,connected:!1,isLoading:!1,error:e.message,stale:n.rows.length>0,startupPhase:`idle`});return;case`auth-refreshing`:i({...n,connected:!1,isLoading:!0,error:null,stale:n.rows.length>0,startupPhase:`auth-refreshing`});return;case`auth-required`:i({...n,connected:!1,isLoading:!1,error:e.message,stale:n.rows.length>0,startupPhase:`idle`}),ie(`cmmd-runtimes`);return}}let o=dye({config:e,onEvent:a});return{subscribe(e){return r.add(e),()=>r.delete(e)},read(){return n},initialize(){o.initialize()},refresh(){o.refresh()},_teardown(){o.teardown()},_setState(e){i(e)}}}var Y9=null;function X9(e){return typeof window<`u`&&window.location?.href?new URL(e,window.location.href).toString():new URL(e,`http://localhost`).toString()}function Z9(){return{cmmdHttpBaseUrl:`https://cmmd.ai`,resolveAccessToken:()=>null,listUrl:aye,eventsUrl:oye,destroyUrl:e=>X9(`/api/cmmd/forge-runtimes/${encodeURIComponent(e)}/destroy`),lifecycleUrl:(e,t)=>X9(`/api/cmmd/forge-runtimes/${encodeURIComponent(e)}/${t}`),updateCommitUrl:e=>X9(`/api/cmmd/forge-runtimes/${encodeURIComponent(e)}/update-commit`),updateCommitOperationUrl:(e,t)=>X9(`/api/cmmd/forge-runtimes/${encodeURIComponent(e)}/update-commit/${encodeURIComponent(String(t))}`),ensureUrl:X9(`/api/cmmd/forge-runtimes/ensure`)}}function Q9(){return Y9===null&&(Y9=pye({config:Z9()})),Y9}function mye(){Q9().refresh()}function hye(e){return Q9().subscribe(e)}function $9(){return Q9().read()}function gye(e){let t=(0,Be.c)(9),n=e?.enabled??!0,r,i;t[0]===n?(r=t[1],i=t[2]):(r=()=>{n&&Q9().initialize()},i=[n],t[0]=n,t[1]=r,t[2]=i),(0,k.useEffect)(r,i);let a=(0,k.useSyncExternalStore)(hye,$9,$9),o=S9(_ye),s,c;t[3]!==o||t[4]!==a.rows?(c=kve(a.rows,o),t[3]=o,t[4]=a.rows,t[5]=c):c=t[5],s=c;let l=s,u;return t[6]!==l||t[7]!==a?(u=l===a.rows?a:{...a,rows:l},t[6]=l,t[7]=a,t[8]=u):u=t[8],u}function _ye(e){return e.environmentStateById}export{w7 as $,K8 as $t,v9 as A,et as An,yge as At,tve as B,ze as Bn,$he as Bt,yve as C,ut as Cn,Tge as Ct,w9 as D,nt as Dn,Q5 as Dt,vve as E,rt as En,Mge as Et,x9 as F,aee as Fn,Fhe as Ft,O7 as G,ke as Gn,Dhe as Gt,S9 as H,Ne as Hn,nge as Ht,ive as I,qe as In,z5 as It,T7 as J,xe as Jn,Ehe as Jt,E7 as K,Se as Kn,Ohe as Kt,sve as L,iee as Ln,L5 as Lt,eve as M,Je as Mn,q5 as Mt,lve as N,Ye as Nn,j5 as Nt,_ve as O,Qe as On,_ge as Ot,rve as P,Xe as Pn,ige as Pt,D7 as Q,G8 as Qt,cve as R,We as Rn,tge as Rt,D9 as S,ct as Sn,Age as St,gve as T,pt as Tn,Cge as Tt,B7 as U,nee as Un,Nhe as Ut,$_e as V,Me as Vn,F5 as Vt,d_e as W,ree as Wn,m5 as Wt,a_e as X,e5 as Xt,o_e as Y,n5 as Yt,i_e as Z,che as Zt,M9 as _,wt as _n,l7 as _t,G9 as a,Dn as an,_7 as at,Sve as b,mt as bn,kge as bt,qve as c,Qt as cn,Zge as ct,Ive as d,Vt as dn,Qge as dt,U8 as en,k7 as et,Mve as f,Ut as fn,Xge as ft,O9 as g,xt as gn,e_e as gt,N9 as h,Ht as hn,Jge as ht,gye as i,wee as in,y7 as it,ove as j,Ze as jn,gge as jt,ave as k,$e as kn,vge as kt,Wve as l,Lt as ln,$ge as lt,F9 as m,Bt as mn,g7 as mt,mye as n,cr as nn,u_e as nt,U9 as o,Xt as on,Yge as ot,jve as p,Rt as pn,x7 as pt,C7 as q,Ce as qn,khe as qt,Z9 as r,Tee as rn,S7 as rt,W9 as s,Yt as sn,v7 as st,$9 as t,W8 as tn,s_e as tt,R9 as u,zt as un,t_e as ut,A9 as v,gt as vn,$5 as vt,C9 as w,lt as wn,Dge as wt,bve as x,ht as xn,Fge as xt,k9 as y,bt as yn,Z5 as yt,nve as z,Re as zn,T5 as zt};
|
|
1008
|
-
//# sourceMappingURL=cmmdForgeRuntimeListResource-
|
|
1008
|
+
//# sourceMappingURL=cmmdForgeRuntimeListResource-D4A1HfmN.js.map
|