@warmhub/sdk-ts 0.106.0 → 0.107.0

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.
@@ -1,10 +1,10 @@
1
1
  import {j as j$1,F,n,q as q$1,o,p,r,R,E,u,v as v$1,b as b$1,f,e,i,a,d,C as C$1,w,m,D as D$1,z as z$2,Q,P,k as k$1,c as c$1,l,g,h as h$1}from'./chunk-DWOK3J6H.js';import {TRPCClientError,createTRPCProxyClient,splitLink,httpBatchLink,httpLink}from'@trpc/client';import {observable}from'@trpc/server/observable';import {z as z$1}from'zod';function at(r,e){let{childContext:t,onStringValue:n,onObjectKey:i}=e,o=[{value:r,context:e.rootContext}];for(;o.length>0;){let{value:s,context:u}=o.pop();if(typeof s=="string"){n(s,u);continue}if(Array.isArray(s)){for(let l=s.length-1;l>=0;l--)o.push({value:s[l],context:t(u,l)});continue}if(!w(s))continue;let p=Object.entries(s).map(([l,d])=>[l,t(u,l),d]);if(i)for(let[l,d]of p)i(l,d);for(let l=p.length-1;l>=0;l--){let d=p[l];d&&o.push({value:d[2],context:d[1]});}}}var gr=new Set(["arc","bond","pair","set","list"]);function W(r,e){let t=ct(r,e,"add");return {operation:"add",kind:"collection",name:t.name,type:t.type,members:t.members,...r.skipExisting===true?{skipExisting:true}:{}}}function ne(r,e){let t=ct(r,e,"revise");if(!t.name)throw new Error(`${e}: collection revise requires a target name`);return {operation:"revise",kind:"collection",name:t.name,type:t.type,members:t.members,...typeof r.expectedVersion=="number"?{expectedVersion:r.expectedVersion}:{},...typeof r.leaseId=="string"&&r.leaseId.length>0?{leaseId:r.leaseId}:{}}}function ct(r,e,t){let n=E({operation:t,kind:"collection",name:typeof r.name=="string"?r.name:void 0,type:typeof r.type=="string"?r.type:void 0,members:Array.isArray(r.members)?r.members:void 0},0);if(n.length>0)throw new Error(`${e}: ${n.map(s=>s.message).join("; ")}`);let i=fr(r.type);if(!i)throw new Error(`${e}: collection ${t} requires 'type'. Use one of: arc, bond, set, list`);if(!Array.isArray(r.members))throw new Error(`${e}: collection ${t} requires a 'members' array`);let o=yr(r.name);if(!o)throw new Error(`${e}: collection ${t} name must be a non-empty string`);return hr(r,e,t),{name:o,type:i,members:r.members}}function hr(r,e,t){let n=["about","aboutWref","shapeWref","data",...t==="revise"?["skipExisting"]:[]].filter(i=>r[i]!==void 0);if(n.length>0)throw new Error(`${e}: collection ${t} does not support ${n.map(i=>`'${i}'`).join(", ")}`)}function fr(r){if(typeof r!="string")return;let e=r.trim();if(gr.has(e))return e}function yr(r){if(typeof r=="string"&&!(r.length===0||r.trim()!==r))return r}function T(r){if(r.expectedVersion!==void 0&&r.operation!=="revise"&&r.operation!=="retract"&&r.operation!=="reaffirm")throw new Error("expectedVersion is only valid on revise, retract, or reaffirm operations \u2014 set an explicit operation discriminator");if(r.operation==="retract")return {operation:"retract",name:r.name,...r.kind?{kind:r.kind}:{},...r.reason?{reason:r.reason}:{},...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}};if(r.operation==="reaffirm")return {operation:"reaffirm",name:r.name,...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.kind?{kind:r.kind}:{},...r.add?{add:r.add}:{},...r.remove?{remove:r.remove}:{},...r.leaseId?{leaseId:r.leaseId}:{}};if(r.operation==="rename")return {operation:"rename",name:r.name,newName:r.newName,...r.kind?{kind:r.kind}:{}};if(r.operation==="revise"){let n=r.name??r.wref;if(!n)throw new Error("revise operation requires a target");let i=m({kind:r.kind,name:n});if(Object.hasOwn(r,"active"))throw new Error(`${i} revise operation no longer supports 'active' \u2014 use retract('${n}') instead`);if(i!=="assertion"&&r.affirmedTargets!==void 0)throw new Error(`${i} revise operation does not support 'affirmedTargets' \u2014 it applies only to assertions; set kind: 'assertion' explicitly`);if(i==="collection")return ne(r,"commit.apply");if(r.data===void 0)throw new Error(`${i} revise operation requires 'data'`);return i==="assertion"?{operation:"revise",kind:"assertion",name:n,data:r.data,...r.affirmedTargets?{affirmedTargets:r.affirmedTargets}:{},...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}}:{operation:"revise",kind:i,name:n,data:r.data,...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}}}let e=m(r),t="skipExisting"in r?r.skipExisting:void 0;if(e!=="collection"&&("type"in r&&r.type!==void 0||"members"in r&&r.members!==void 0))throw new Error(`add operation '${r.name??""}' has collection fields but resolved kind '${e}' \u2014 collection adds require both 'type' and 'members', or set kind: 'collection'`);if(e!=="assertion"&&r.affirmedTargets!==void 0)throw new Error(`${e} add operation does not support 'affirmedTargets' \u2014 it applies only to assertions; set kind: 'assertion' explicitly`);if(e==="collection")return W({...r,skipExisting:t},"commit.apply");if(!r.name)throw new Error("add operation requires a name");if(e==="assertion"){if(!("about"in r)||r.about===void 0)throw new Error("assertion add operation requires 'about'");if(typeof r.about!="string")throw new Error(D$1);if(r.data===void 0)throw new Error("assertion add operation requires 'data'");return {operation:"add",kind:"assertion",name:r.name,about:r.about,data:r.data,...r.affirmedTargets?{affirmedTargets:r.affirmedTargets}:{},...t===true?{skipExisting:t}:{}}}if(r.data===void 0)throw new Error(`${e} add operation requires 'data'`);return {operation:"add",kind:e,name:r.name,data:r.data,...t===true?{skipExisting:t}:{}}}var Rr=1e4,br=4*1024*1024,ke=class extends Error{code="VALIDATION_ERROR";status=400;constructor(e){super(e),this.name="WarmHubError";}};function ve(r,e){return r.map((t,n)=>{let i;try{i=T(t);}catch(o){let s=o instanceof Error?o.message:String(o);throw new ke(`Invalid operation at index ${n}: ${s}`)}return e===true&&i.operation==="add"?{...i,skipExisting:true}:i})}function Cr(r,e,t,n){return {orgName:r,repoName:e,...n?.committer!==void 0?{committer:n.committer}:{},...n?.message!==void 0?{message:n.message}:{},...n?.componentRef!==void 0?{componentRef:n.componentRef}:{},operations:ve(t,n?.skipExisting),...n?.includeWouldBeBody!==void 0?{includeWouldBeBody:n.includeWouldBeBody}:{}}}function ut(r){return JSON.stringify(r)}function Sr(r){return new TextEncoder().encode(ut(r)).byteLength}var xe="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Ee=new Uint8Array(256).fill(255);for(let r=0;r<xe.length;r++){let e=xe.charCodeAt(r);Ee[e]=r,e>=65&&(Ee[e+32]=r);}function pt(r){let e=r.length*8,t=Math.ceil(e/5),n="";for(let i=0;i<t;i++){let o=i*5,s=o>>3,u=o&7,p=r[s]??0,l;if(u<=3)l=p>>3-u&31;else {let d=r[s+1]??0;l=(p<<u-3|d>>11-u)&31;}n+=xe[l];}return n}function lt(r){let e=Math.floor(r.length*5/8),t=new Uint8Array(e),n=0,i=0,o=0;for(let s=0;s<r.length;s++){let u=r.charCodeAt(s),p=Ee[u];if(p===void 0||p===255)return null;n=n<<5|p,i+=5,i>=8&&(i-=8,o<e&&(t[o++]=n>>i&255));}return t}var wr=1;var dt=16,gt=4;function Or(r){return Math.ceil((1+r+gt)*8/5)}var Ir=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let i=0;i<8;i++)n=n&1?n>>>1^2197175160:n>>>1;e[t]=n>>>0;}return e})();function Ar(r){let e=4294967295;for(let t of r)e=(e>>>8^(Ir[(e^t)&255]??0))>>>0;return (e^4294967295)>>>0}function mt(r,e=0){let t=Array.from(r.slice(e,e+16)).map(n=>n.toString(16).padStart(2,"0")).join("");return [t.slice(0,8),t.slice(8,12),t.slice(12,16),t.slice(16,20),t.slice(20,32)].join("-")}function kr(r,e,t){let n=e.startsWith("wh:")?e.slice(3):e;if(n.length!==Or(t))return null;let i=lt(n);if(!i||i.length!==1+t+gt||i[0]!==r)return null;let o=1+t,s=(i[o]??0)<<24|(i[o+1]??0)<<16|(i[o+2]??0)<<8|(i[o+3]??0),u=Ar(i.slice(0,o));return s>>>0!==u>>>0||pt(i)!==n.toUpperCase()?null:i.slice(1,1+t)}function vr(r){let e=kr(wr,r,dt*2);return e?{repoId:mt(e,0),thingId:mt(e,dt)}:null}var xr=/^(?:v0*[1-9]\d*|[Hh][Ee][Aa][Dd]|[Aa][Ll][Ll])$/;function ht(r){let e=r.lastIndexOf("@"),t=e>=0&&xr.test(r.slice(e+1))?r.slice(e+1):null,n=t===null?r:r.slice(0,e);return vr(n)===null?null:{durableId:(n.startsWith("wh:")?n.slice(3):n).toUpperCase(),selector:t}}function ie(r){let e=new Set;return at(r,{rootContext:{key:null,parentKey:null,insideData:false},childContext:(t,n)=>({key:n,parentKey:t.key,insideData:t.insideData||n==="data"}),onStringValue:(t,n)=>{if(n.key==="durableId"&&n.parentKey==="metadata"&&!n.insideData)return;let i=ht(t);i&&e.add(i.durableId);}}),e}function Nr(r){let e={};for(let t of r)e[t.durableId]=t.canonicalWref;return e}function Te(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function _r(r){if(!Te(r))return;let e=r.decorations;return Te(e)?e:void 0}function Pr(r){let e=r instanceof Error?r:new Error(String(r));return Object.assign(e,{decorationFailure:true})}function ft(r){return ()=>({op:e,next:t})=>!r.enabled||e.type!=="query"||e.path==="thing.headVersions"?t(e):observable(n=>{let i=false,o=false,s=false,u=()=>{!i&&o&&!s&&n.complete();},p=t(e).subscribe({next:l=>{let d=l.result?.data;if(!Te(d)){n.next(l);return}let m=ie(d);if(m.size===0){n.next(l);return}s=true,r.getClient().thing.headVersions(void 0,void 0,[...m]).then(({items:g})=>{i||n.next({...l,result:{...l.result,data:{...d,decorations:Nr(g)}}});}).catch(g=>{i||n.error(TRPCClientError.from(Pr(g)));}).finally(()=>{s=false,u();});},error:l=>n.error(l),complete:()=>{o=true,u();}});return ()=>{i=true,p.unsubscribe();}})}function yt(r,e){return {create:async(t,n,i)=>{try{return await r().grant.create.mutate({orgName:t,repoName:n,...i})}catch(o){throw e(o)}},get:async(t,n,i)=>{try{return await r().grant.get.query({orgName:t,repoName:n,grantId:i})}catch(o){throw e(o)}},list:async(t,n,i)=>{try{return await r().grant.list.query({orgName:t,repoName:n,limit:i?.limit,cursor:i?.cursor})}catch(o){throw e(o)}},revoke:async(t,n,i,o)=>{try{return await r().grant.revoke.mutate({orgName:t,repoName:n,grantId:i,reason:o?.reason})}catch(s){throw e(s)}}}}function oe(r){return {...r,createdAt:new Date(r.createdAt),updatedAt:new Date(r.updatedAt),runStartedAt:new Date(r.runStartedAt),...r.state==="complete"||r.state==="failed"?{completedAt:new Date(r.completedAt)}:{}}}function Lr(r){return {...r,expiresAt:new Date(r.expiresAt)}}function Rt(r){if(typeof r.checkpointId=="string"&&typeof r.repoSeq!="number")return {by:"id",checkpointId:r.checkpointId};if(typeof r.repoSeq=="number"&&typeof r.checkpointId!="string")return {by:"repoSeq",repoSeq:r.repoSeq};throw new TypeError("Repository checkpoint selector must contain exactly one of checkpointId or repoSeq")}function bt(r,e){return {generate:async(t,n,i)=>{try{let o=await r().repo.checkpoint.generate.mutate({orgName:t,repoName:n,atLeastRepoSeq:i?.atLeastRepoSeq});return oe(o.checkpoint)}catch(o){throw e(o)}},status:async(t,n,i)=>{try{let o=await r().repo.checkpoint.status.query({orgName:t,repoName:n,selector:Rt(i)});return oe(o)}catch(o){throw e(o)}},latest:async(t,n)=>{try{let i=await r().repo.checkpoint.latest.query({orgName:t,repoName:n});return i.checkpoint?oe(i.checkpoint):null}catch(i){throw e(i)}},getAccess:async(t,n,i)=>{try{let o=await r().repo.checkpoint.access.query({orgName:t,repoName:n,selector:i.checkpoint==="latest"?{by:"latest"}:Rt(i.checkpoint),artifact:i.artifact==="archive"||i.artifact==="manifest"?{kind:i.artifact}:{kind:"chunk",path:i.artifact.chunkPath}});return Lr(o)}catch(o){throw e(o)}},retry:async(t,n,i)=>{try{let o=await r().repo.checkpoint.retry.mutate({orgName:t,repoName:n,checkpointId:i});return oe(o.checkpoint)}catch(o){throw e(o)}}}}function $(r,e,t){let n=Q(e,t==="revise"?{allowUnsafeFieldNamePaths:P(e)}:void 0);return n.valid?null:`Invalid shape definition for "${r}": ${n.errors.join("; ")}`}function Dr(r,e,t){let n=r.operation===void 0||r.operation==="noop"?t?.operation??"add":r.operation,i={opIndex:e,name:r.name??"",operation:n,...r.affirmations?{affirmations:r.affirmations}:{},...r.resolvedName!==void 0?{resolvedName:r.resolvedName}:{},...r.warnings?{warnings:r.warnings}:{}};return r.status==="failed"?{...i,status:"error",errors:[{code:r.error?.code??"BACKEND",message:r.error?.message??`Operation on "${r.name}" failed`,...r.error?.details?{details:r.error.details}:{},...r.retryable!==void 0?{retryable:r.retryable}:{}}],...t?.name!==void 0?{submittedName:t.name}:{}}:{...i,status:r.status==="noop"||r.operation==="noop"?"noop":"applied",...r.version!==void 0?{version:r.version}:{},...r.dataHash!==void 0?{dataHash:r.dataHash}:{}}}var L=class{receipts=[];operations=[];statusCounts={applied:0,noop:0,error:0};get allFailed(){return this.operations.length>0&&this.statusCounts.error===this.operations.length}addChunk(e){if(e.result.schemaVersion==="operation-event-receipt/v2"){e.result.results.forEach(t=>{this.statusCounts[t.status]++,this.operations.push({...t,opIndex:e.chunkStart+t.opIndex});});return}e.result.results.forEach((t,n)=>{let i=t.opIndex??n,o=e.submittedOperations[i],s=Dr(t,e.chunkStart+i,o);this.statusCounts[s.status]++,this.operations.push(s);});}addReceipt(e){this.receipts.push(e);}completedOperations(){return this.operations.filter(e=>e.status!=="error")}toResult(e){let t=this.statusCounts.error>0;return {...e.committer!==void 0?{committer:e.committer}:{},...e.createdByEmail!==void 0?{createdByEmail:e.createdByEmail}:{},message:e.message,operationCount:this.operations.length,...e.repoSeq!==void 0?{repoSeq:e.repoSeq}:{},...t?{partial:t,statusCounts:{...this.statusCounts}}:{},operations:this.operations,receipts:this.receipts}}};function D(){let r=globalThis.crypto?.randomUUID?.();if(!r)throw new Error("This runtime cannot mint a cryptographically secure UUID");return r.toLowerCase()}var Mr=D;var se=1e3,ae=1e4,I=class extends Error{code="PARTIAL_STREAM_SUBMISSION";completedReceipts;completedOperations;submissionId;eventRequestId;chunkOrdinal;pendingOutcome;acknowledgedOperationCount;lastAcknowledgedRepoSeq;attemptedAppendOutcome;cause;constructor(e){super(e.pendingOutcome==="unknown"?`Stream submission outcome is unknown for event request ${e.eventRequestId}. Look up its immutable receipt before retrying.`:`Stream submission stopped at event request ${e.eventRequestId} after earlier chunks committed.`),this.name="WarmHubError",this.cause=e.cause,this.completedReceipts=e.completedReceipts,this.completedOperations=e.completedOperations??[],this.submissionId=e.submissionId,this.eventRequestId=e.eventRequestId,this.chunkOrdinal=e.chunkOrdinal,this.pendingOutcome=e.pendingOutcome,this.acknowledgedOperationCount=e.acknowledgedOperationCount??e.completedReceipts.length,this.attemptedAppendOutcome=e.attemptedAppendOutcome,e.lastAcknowledgedRepoSeq!==void 0&&(this.lastAcknowledgedRepoSeq=e.lastAcknowledgedRepoSeq);}},v=class extends Error{code="STREAM_ALL_OPERATIONS_FAILED";receipts;result;operations;statusCounts;cause;constructor(e){let t=e.operations.find(n=>n.status==="error")?.errors[0];super(t?`All ${e.operationCount} stream operations failed: ${t.message}`:`All ${e.operationCount} stream operations failed.`),this.name="WarmHubError",this.cause=t,this.result=e,this.receipts=e.receipts,this.operations=e.operations,this.statusCounts=e.statusCounts??{applied:0,noop:0,error:e.operationCount};}};function Ne(r){let e="status"in r?r.status:void 0;return e==="failed"||e==="error"?"error":e==="noop"||r.operation==="noop"?"noop":"applied"}function wt(r){let e={applied:0,noop:0,error:0};for(let t of r)e[Ne(t)]++;return e}var qr={maxAttempts:3,baseDelayMs:250,maxDelayMs:8e3},Br=10,Ct=6e4;function _e(r){if(r===false)return false;let e={};r!==void 0&&(Number.isFinite(r.maxAttempts)&&(e.maxAttempts=r.maxAttempts),Number.isFinite(r.baseDelayMs)&&(e.baseDelayMs=r.baseDelayMs),Number.isFinite(r.maxDelayMs)&&(e.maxDelayMs=r.maxDelayMs));let t={...qr,...e};return {maxAttempts:Math.min(Br,Math.max(1,Math.trunc(t.maxAttempts))),baseDelayMs:Math.min(Ct,Math.max(0,Math.trunc(t.baseDelayMs))),maxDelayMs:Math.min(Ct,Math.max(0,Math.trunc(t.maxDelayMs)))}}var Ur=new Set(["BAD_REQUEST","METHOD_NOT_SUPPORTED","PARSE_ERROR","PAYLOAD_TOO_LARGE","PRECONDITION_FAILED","UNAUTHORIZED","UNPROCESSABLE_CONTENT","UNSUPPORTED_MEDIA_TYPE","UNAUTHENTICATED","FORBIDDEN","VALIDATION_ERROR","SHAPE_MISMATCH","RESERVED_NAME","ILLEGAL_OP_SEQUENCE","NOT_FOUND","KIND_MISMATCH","CONFLICT","ALREADY_RETRACTED","ARCHIVED","RATE_LIMITED","TOO_MANY_REQUESTS","UNRESOLVED_TOKEN"]),Vr=new Set(["COMMIT_OUTCOME_UNKNOWN"]);function Ot(r){if(!r||typeof r!="object")return;let e=r.code;if(typeof e=="string")return e;let t=r.data,n=t?.warmhub?.code;if(typeof n=="string")return n;let i=t?.code;if(typeof i=="string")return i}function Hr(r){if(!r||typeof r!="object")return;let e=r.data?.httpStatus;if(typeof e=="number")return e;let t=r.data?.warmhub?.status;if(typeof t=="number")return t;let n=r.status;return typeof n=="number"?n:void 0}function Fr(r){return r!==void 0&&r>=400&&r<500&&r!==408}function It(r){let e=Ot(r);return e!==void 0&&Vr.has(e)}function G(r){if(It(r))return false;let e=Ot(r);return e!==void 0&&Ur.has(e)||Fr(Hr(r))}function Pe(r){if(It(r)||G(r))return false;if(St(r))return true;if(r instanceof TypeError||r instanceof SyntaxError)return false;let e=r?.cause;return St(e)?true:!(e instanceof TypeError||e instanceof SyntaxError)}function St(r){return r instanceof TypeError&&/fetch/i.test(r.message)}function Le(r,e){let t=e.baseDelayMs*2**Math.max(0,r-1),n=Math.random()*e.baseDelayMs;return Math.min(e.maxDelayMs,t+n)}function De(r){return new Promise(e=>setTimeout(e,r))}var K=class extends Error{code;status=400;constructor(e,t="VALIDATION_ERROR"){super(e),this.code=t,this.name="WarmHubError";}},ce=class extends Error{constructor(t){super("operation source failed");this.reason=t;}reason};async function M(r,e){let t=pe(e.chunkSize),n=e.submissionId??D(),i=e.streamId??n,o=_e(e.retry),s=new L,u=[],p,l,d=0,m,g=0,y=f=>new I({cause:f.cause,completedReceipts:s.receipts,completedOperations:s.completedOperations(),acknowledgedOperationCount:d,lastAcknowledgedRepoSeq:m,attemptedAppendOutcome:f.pendingOutcome==="absent"?"not_applied":"unknown",submissionId:n,eventRequestId:C$1(n,g),chunkOrdinal:g,pendingOutcome:f.pendingOutcome});try{for await(let f of Wr(e.operations,t,e.skipExisting===!0)){let R=1,E=!1;for(;;)try{let w=await r.stream.append({allocatedTokenRanges:u,chunkOrdinal:g,orgName:e.orgName,repoName:e.repoName,streamId:i,submissionId:n,componentRef:e.componentRef,committer:e.committer,message:e.message,...e.returnRepoSeq!==void 0?{returnRepoSeq:e.returnRepoSeq}:{},operations:f.operations});s.addReceipt(w.receipt),u=w.allocatedTokenRanges,p=w.createdByEmail??p,l=w.repoSeq??l,s.addChunk({result:w,chunkStart:f.start,submittedOperations:f.operations}),d+=f.operations.length;let V=Gr(w.receipt);V!==void 0&&(m=V);break}catch(w){let V=G(w);if(s.receipts.length===0&&!E&&V)throw w;if(o!==!1&&R<o.maxAttempts&&Pe(w)){await De(Le(R,o)),R+=1,E=!0;continue}throw y({cause:w,pendingOutcome:E||!V?"unknown":"absent"})}g+=1;}}catch(f){throw f instanceof ce?s.receipts.length===0?f.reason:y({cause:f.reason,pendingOutcome:"absent"}):f}if(g===0)throw new K("At least one operation is required for stream submission.");let O=s.toResult({committer:e.committer,createdByEmail:p,message:e.message,repoSeq:l});if(s.allFailed)throw new v(O);return O}async function*Wr(r,e,t){try{if(Array.isArray(r)){let o=r.map((s,u)=>Me(s,u,t));vt(o,0);for(let s=0;s<o.length;s+=e)yield {operations:o.slice(s,s+e),start:s};return}let n=0,i=[];for await(let o of kt(r,t))i.push(o),n+=1,!(i.length<e)&&(yield At(i,n),i=[]);i.length>0&&(yield At(i,n));}catch(n){throw new ce(n)}}function At(r,e){let t=e-r.length;return vt(r,t),{operations:r,start:t}}function Me(r,e,t){let n;try{n=T(r);}catch(i){let o=i instanceof Error?i.message:String(i);throw new K(`Invalid operation at index ${e}: ${o}`)}return t&&n.operation==="add"?{...n,skipExisting:true}:n}async function*kt(r,e){let t=ue(r,e);try{for(;;){let n=await t.next();if(n.done)return;yield n.value;}}finally{let n=t.returnSourceOnce();n&&await n;}}function ue(r,e){let t,n=0,i=false,o=false,s=()=>t||(t=Symbol.asyncIterator in r?r[Symbol.asyncIterator]():r[Symbol.iterator](),t);return {async next(){let u=await s().next();if(u.done)return o=true,{done:true,value:void 0};let p=Me(u.value,n,e);return n+=1,{done:false,value:p}},returnSourceOnce(){if(!i&&(i=true,!o))return t?.return?.()}}}function qe(r){return $r.encode(`${JSON.stringify(r)}
2
2
  `)}var $r=new TextEncoder;function Gr(r){let e=r.event?.repoSeq;if(e===void 0)return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function vt(r,e){let t=F(r).find(n=>!Kr(n));if(t)throw new K(`Invalid operation at index ${e+t.operationIndex}: ${t.message}`,t.code)}function Kr(r){return r.code==="ILLEGAL_OP_SEQUENCE"&&r.message.includes("Cannot revise then add ")}function pe(r){return Number.isFinite(r)?Math.max(1,Math.min(ae,Math.trunc(r))):se}var Tt="warmhub/streaming-submission-manifest/v1",zr=new TextEncoder,Ue=z$1.string().regex(/^sha256:[0-9a-f]{64}$/),Nt={type:z$1.literal("result"),chunkOrdinal:z$1.number().int().nonnegative(),opIndex:z$1.number().int().nonnegative(),submissionIndex:z$1.number().int().nonnegative(),name:z$1.string()},jr=z$1.enum(j$1),Yr=z$1.enum([...j$1,"noop"]),_t=z$1.object({path:z$1.string(),message:z$1.string()}),Pt=z$1.object({undeclaredFields:z$1.array(z$1.string()).optional(),undeclaredFieldsTruncated:z$1.literal(true).optional(),totalUndeclared:z$1.number().int().nonnegative().optional(),coalescedWrefs:z$1.array(z$1.object({fieldPath:z$1.string(),wref:z$1.string(),reason:z$1.string()})).optional(),coalescedWrefsTruncated:z$1.literal(true).optional(),totalCoalescedWrefs:z$1.number().int().nonnegative().optional(),deprecations:z$1.array(z$1.object({shape:z$1.string(),message:z$1.string(),removalMilestone:z$1.string()})).optional()}).optional(),Lt=z$1.object({added:z$1.array(z$1.string()),removed:z$1.array(z$1.string()),ignored:z$1.array(z$1.string())}),Jr=z$1.discriminatedUnion("reason",[z$1.object({reason:z$1.literal("expected_version_mismatch"),expectedVersion:z$1.number().int().positive(),currentVersion:z$1.number().int().positive()}),z$1.object({reason:z$1.literal("lease_held"),leaseExpiresAt:z$1.string().datetime()}),z$1.object({reason:z$1.literal("validation_failed"),issues:z$1.array(_t)}),z$1.object({reason:z$1.literal("rate_limit_reset"),retryAfterSeconds:z$1.number().int().positive(),resetAt:z$1.string().datetime()}),z$1.object({reason:z$1.literal("cursor_fence_unavailable"),cause:z$1.enum(["not_ready","below_floor","above_head"]),retryFromStart:z$1.literal(true)})]),Qr=z$1.discriminatedUnion("reason",[z$1.object({reason:z$1.literal("expected_version_mismatch"),expectedVersion:z$1.number().int().nonnegative(),currentVersion:z$1.number().int().nonnegative()}).strict(),z$1.object({reason:z$1.literal("lease_held"),leaseExpiresAt:z$1.string().datetime()}).strict(),z$1.object({reason:z$1.literal("validation_failed"),issues:z$1.array(_t.strict())}).strict(),z$1.object({reason:z$1.literal("rate_limit_reset"),retryAfterSeconds:z$1.number().nonnegative(),resetAt:z$1.string().datetime()}).strict(),z$1.object({reason:z$1.literal("cursor_fence_unavailable"),cause:z$1.enum(["not_ready","below_floor","above_head"]),retryFromStart:z$1.literal(true)}).strict(),z$1.object({reason:z$1.literal("dependency_failed"),producerOpIndexes:z$1.array(z$1.number().int().nonnegative()).min(1)}).strict()]),xt={...Nt,operation:jr,submittedName:z$1.string().optional(),resolvedName:z$1.string().optional(),warnings:Pt,affirmations:Lt.optional()},Xr=z$1.union([z$1.object({...Nt,operation:Yr.optional(),version:z$1.number().optional(),dataHash:z$1.string().optional(),status:z$1.enum(["success","noop","failed"]).optional(),error:z$1.object({code:z$1.string(),message:z$1.string(),details:Jr.optional()}).optional(),resolvedName:z$1.string().optional(),retryable:z$1.boolean().optional(),warnings:Pt,affirmations:Lt.optional()}).passthrough(),z$1.object({...xt,status:z$1.enum(["applied","noop"]),version:z$1.number().int().positive().optional(),dataHash:z$1.string().min(1).optional()}).passthrough(),z$1.object({...xt,status:z$1.literal("error"),errors:z$1.array(z$1.object({code:z$1.string().min(1),message:z$1.string(),path:z$1.string().min(1).optional(),details:Qr.optional(),retryable:z$1.boolean().optional()}).strict()).min(1)}).passthrough()]),Dt=z$1.object({applied:z$1.number().int().nonnegative(),noop:z$1.number().int().nonnegative(),failed:z$1.number().int().nonnegative()}),Zr=z$1.object({type:z$1.literal("group"),chunkOrdinal:z$1.number().int().nonnegative(),eventRequestId:z$1.string().uuid(),requestDigest:Ue,outcome:z$1.enum(["event","no_event"]),repoSeq:z$1.number().int().nonnegative().optional(),operations:Dt,manifestDigest:Ue}).passthrough(),en=z$1.object({type:z$1.literal("summary"),submissionId:z$1.string().uuid(),streamId:z$1.string().min(1),groupSize:z$1.number().int().positive(),groups:z$1.number().int().nonnegative(),operations:Dt.extend({total:z$1.number().int().nonnegative()}),repoSeq:z$1.object({first:z$1.number().int().nonnegative().nullable(),last:z$1.number().int().nonnegative().nullable()}),verdict:z$1.string().min(1),durationMs:z$1.number().nonnegative(),truncatedAt:z$1.object({lineNumber:z$1.number().int().positive(),message:z$1.string()}).optional(),manifest:z$1.object({groups:z$1.number().int().nonnegative(),digest:Ue})}).passthrough(),tn=z$1.object({type:z$1.literal("error"),code:z$1.string().min(1),message:z$1.string().optional()}).passthrough(),rn=z$1.union([Xr,Zr,en,tn]),Be=()=>({applied:0,noop:0,failed:0}),Et=(r,e)=>r.applied===e.applied&&r.noop===e.noop&&r.failed===e.failed,nn=new Set(["complete","operation-limit-reached","group-limit-reached"]),k=class extends Error{constructor(t,n){super(`Streaming submission protocol error at row ${n}: ${t}`);this.rowIndex=n;this.name="StreamingSubmissionProtocolError";}rowIndex};async function Mt(r){let e=zr.encode(r),t=await globalThis.crypto.subtle.digest("SHA-256",e);return `sha256:${Array.from(new Uint8Array(t),n=>n.toString(16).padStart(2,"0")).join("")}`}async function on(r,e,t){return Mt(`${Tt}\0${r}\0${e}\0${t}`)}function sn(r){return r.status==="failed"||r.status==="error"?"failed":r.status==="noop"||r.operation==="noop"?"noop":"applied"}var Ve=class{index=0;groupCount=0;resultCount=0;pendingCount=0;pendingCounts=Be();totalCounts=Be();firstRepoSeq=null;lastRepoSeq=null;manifestDigest=Mt(Tt);terminalSeen=false;accept(e){let t=n=>{throw new k(n,this.index)};if(this.terminalSeen&&t("No row may follow the terminal row"),e.type==="result"){e.chunkOrdinal!==this.groupCount&&t(`Expected result chunkOrdinal ${this.groupCount}`),e.opIndex!==this.pendingCount&&t(`Expected result opIndex ${this.pendingCount}`),e.submissionIndex!==this.resultCount&&t(`Expected submissionIndex ${this.resultCount}`);let n=sn(e);this.pendingCounts[n]+=1,this.totalCounts[n]+=1,this.pendingCount+=1,this.resultCount+=1,this.index+=1;return}if(e.type==="group")return e.chunkOrdinal!==this.groupCount&&t(`Expected group chunkOrdinal ${this.groupCount}`),this.pendingCount===0&&t("A group must close result rows"),Et(this.pendingCounts,e.operations)||t("Group operation counters do not match its result rows"),this.acceptGroup(e,t);if(this.terminalSeen=true,this.pendingCount>0&&t("Terminal row cannot close a partial group"),e.type==="summary")return this.acceptSummary(e,t);this.index+=1;}async acceptGroup(e,t){this.manifestDigest=this.manifestDigest.then(n=>on(n,e.chunkOrdinal,e.requestDigest)),e.manifestDigest!==await this.manifestDigest&&t("Group manifest digest does not match the receipt chain"),e.repoSeq!==void 0&&(this.firstRepoSeq??=e.repoSeq,this.lastRepoSeq=e.repoSeq),this.groupCount+=1,this.pendingCount=0,this.pendingCounts=Be(),this.index+=1;}async acceptSummary(e,t){Et(this.totalCounts,e.operations)||t("Summary operation counters do not match result rows"),(e.groups!==this.groupCount||e.manifest.groups!==this.groupCount)&&t("Summary group counters do not match group rows"),e.manifest.digest!==await this.manifestDigest&&t("Summary manifest digest does not match the receipt chain"),(e.repoSeq.first!==this.firstRepoSeq||e.repoSeq.last!==this.lastRepoSeq)&&t("Summary repo sequence does not match group rows"),(nn.has(e.verdict)?e.operations.total!==this.resultCount:e.operations.total<this.resultCount)&&t("Summary total is incompatible with its verdict"),e.verdict==="truncated-by-parse-error"!=(e.truncatedAt!==void 0)&&t("truncatedAt must appear only for a parse-truncated verdict"),this.index+=1;}finish(){if(!this.terminalSeen)throw new k("Response must end with a summary or error row",this.index)}};function an(r,e){let t;try{t=JSON.parse(r);}catch(i){throw new k(i instanceof Error?i.message:"Invalid JSON",e)}let n=rn.safeParse(t);if(!n.success)throw new k(n.error.issues[0]?.message??"Malformed row",e);return n.data}async function*qt(r,e){let t=r.body?.getReader();if(!t)throw new k("Missing response body",0);let n=new Ve,i=new TextDecoder,o="",s=0,u=false,p,l=m=>{if(m.endsWith("\r")&&(m=m.slice(0,-1)),m.length===0)throw new k("Blank response row",s);let g=an(m,s);return {pending:n.accept(g),row:g}},d=m=>{if(m.type==="summary"&&e!==void 0&&(m.submissionId!==e.submissionId||m.streamId!==e.streamId||m.groupSize!==e.groupSize))throw new k("Summary identity does not match the submission handle",s);s+=1;};try{for(;;){let{done:m,value:g}=await t.read();if(m)break;for(o+=i.decode(g,{stream:!0});;){let y=o.indexOf(`
3
- `);if(y===-1)break;let O=o.slice(0,y);o=o.slice(y+1);let{pending:f,row:R}=l(O);f&&await f,d(R),R.type==="summary"||R.type==="error"?p=R:yield R;}}if(o+=i.decode(),o.length>0){let{pending:m,row:g}=l(o);m&&await m,d(g),g.type==="summary"||g.type==="error"?p=g:yield g;}n.finish(),u=!0,p&&(yield p);}finally{u||await t.cancel().catch(()=>{}),t.releaseLock();}}var x=class extends Error{code="STREAMING_SUBMISSION_OUTCOME_UNKNOWN";outcome="unknown";retryable=false;retryIdentity;cause;constructor(e,t){super(`Streaming submission outcome is unknown for ${e.submissionId}. Reconstruct the original source and copy every retryIdentity field into the next applyStreaming call.`),this.name="StreamingSubmissionOutcomeUnknownError",this.retryIdentity=e,this.cause=t;}};function le(r){return r===void 0||r===""?void 0:r}function cn(){let r=globalThis;if(r.Bun!==void 0)return true;let e=r.process?.versions?.node;if(!e)return false;let[t=0,n=0]=e.split(".").map(Number);return t>22||t===22&&n>=2}function un(r){let e=new URLSearchParams({submissionId:r.submissionId,groupSize:String(r.groupSize)});return r.message!==void 0&&e.set("message",r.message),r.committer!==void 0&&e.set("committer",r.committer),`/api/repos/${encodeURIComponent(r.orgName)}/${encodeURIComponent(r.repoName)}/streams/${encodeURIComponent(r.streamId)}/submissions?${e}`}function pn(r){let e=ue(r,false),t=false,n=()=>{if(t)return;t=true;let o=e.returnSourceOnce();o&&Promise.resolve(o).catch(()=>{});};return {stream:new ReadableStream({async pull(o){try{let s=await e.next();if(t)return;if(s.done){o.close();return}o.enqueue(qe(s.value));}catch(s){o.error(s),n();}},cancel(){n();}}),returnSourceOnce:n}}function ln(r,e){if(!r)return ()=>{};let t=()=>e.abort(r.reason);return r.aborted?t():r.addEventListener("abort",t,{once:true}),()=>r.removeEventListener("abort",t)}function dn(r){let e=r.options?.submissionId??D();return {orgName:r.orgName,repoName:r.repoName,streamId:r.options.streamId,submissionId:e,groupSize:pe(r.options.groupSize),...le(r.message)!==void 0?{message:le(r.message)}:{},...le(r.options?.committer)!==void 0?{committer:le(r.options?.committer)}:{}}}function Bt(r,e){if(!r.options.streamId)throw e.localError("VALIDATION_ERROR","Streaming submissions require a non-empty streamId.");let t=dn(r),n=new AbortController,i=()=>{},o,s=false,u=async function*(){let p=false,l=false,d;try{if(!(e.runtimeSupported??cn)())throw e.localError("VALIDATION_ERROR","Streaming submissions require Bun or Node.js 22.2 or newer.");if(i=ln(r.options.signal,n),n.signal.aborted)throw e.localError("CANCELLED","Streaming submission was aborted.");let m=await e.prepare(un(t));if(n.signal.aborted)throw e.localError("CANCELLED","Streaming submission was aborted.");d=pn(r.operations),p=!0;let g=await m.dispatch(d.stream,n.signal);if(!g.ok)throw l=!0,await m.httpError(g);for await(let y of qt(g,t))yield y;}catch(m){throw m instanceof x?m:p&&!l?new x(t,m):e.normalizeLocalError(m)}finally{n.abort(),d?.returnSourceOnce(),i(),s=true;}};return {retryIdentity:t,[Symbol.asyncIterator](){return this},next(){return s?Promise.resolve({done:true,value:void 0}):(o??=u(),o.next())},async return(p){return n.abort(),o?o.return(p):(s=true,i(),{done:true,value:p})},async throw(p){if(n.abort(p),!o)throw s=true,i(),p;return o.throw(p)}}}var mn="0.0.0-development";function q(r){return r===mn}var He="0.106.0";var Ut=1;function gn(r){return r===g?"Run: wh update --yes":r===f?"Run: npm install @warmhub/sdk-ts@latest (or your package manager's equivalent).":r===h$1?"Run: pip install --upgrade warmhub":`Deploy a released ${r} build that satisfies the backend compatibility contract.`}function Vt(r,e){if(typeof r?.minSupportedClients!="object"||r.minSupportedClients===null||!Number.isSafeInteger(r.writeContractVersion)||r.writeContractVersion<1)return {message:"The backend does not advertise valid per-client write compatibility data.",hint:"Upgrade the WarmHub backend before retrying this write."};let t=r.minSupportedClients[e.name],n=typeof t=="string"?u(t):null;if(!n)return {message:`The backend does not advertise a valid compatibility floor for ${e.name}.`,hint:"Upgrade the WarmHub backend or register this first-party client family before writing."};if(!q(e.version)){let i=u(e.version);if(!i)return {message:`${e.name} reported malformed version "${e.version}".`,hint:"Use a released WarmHub client with a SemVer package version."};if(v$1(i,n)<0)return {message:`${e.name} ${e.version} is older than the backend's minimum supported version ${n}.`,hint:gn(e.name)}}if(r.writeContractVersion<Ut)return {message:`${e.name} requires write contract ${Ut}, but the backend provides ${r.writeContractVersion}.`,hint:"Upgrade the WarmHub backend before retrying this write."}}function Fe(r,e){try{return new URL(r).origin===new URL(e).origin}catch{return false}}var hn=new Set(["GET","POST","PUT","PATCH","DELETE"]),S=class extends Error{reason;constructor(e,t){super(t),this.name="CliCallVerificationError",this.reason=e;}};async function fn(r$1,e,t){let n$1=r$1.method.toUpperCase();if(!hn.has(n$1))throw new S("unsupported-method",`Unsupported HTTP method "${r$1.method}" \u2014 component CLI dispatch only emits GET, POST, PUT, or PATCH`);let i=n$1,o$1=r$1.headers.get(n);if(!o$1)throw new S("missing-install-repo",`Missing ${n} header`);let s=B(e.CLI_SIGNING_SECRET),u=B(e.CLI_BEARER_TOKEN),p$1=B(e.CLI_API_KEY),l=B(e.CLI_BASIC_USERNAME)&&B(e.CLI_BASIC_PASSWORD);if(!s&&!u&&!p$1&&!l)throw new S("no-scheme-configured","no-scheme-configured: need at least one of CLI_SIGNING_SECRET, CLI_BEARER_TOKEN, CLI_API_KEY, or CLI_BASIC_USERNAME + CLI_BASIC_PASSWORD");if(u&&l)throw new S("no-scheme-configured","unsupported-scheme-combination: CLI_BEARER_TOKEN and CLI_BASIC_USERNAME + CLI_BASIC_PASSWORD both use the Authorization header and cannot be configured together");let d=new URL(r$1.url),m=d.pathname,g,y,O;if(q$1(i)?g={}:(g=Object.fromEntries(d.searchParams.entries()),y="",O={...g}),s){let f=r$1.headers.get(o);if(!f)throw new S("missing-signature",`Missing ${o} header`);let R=r$1.headers.get(p);if(!R)throw new S("missing-timestamp",`Missing ${p} header`);let E=Number(R);if(!Number.isFinite(E)||!Number.isInteger(E))throw new S("invalid-timestamp",`${p} must be an integer unix seconds value; got "${R}"`);y=await Ht(r$1,i,y);let w=await r({secret:e.CLI_SIGNING_SECRET,method:i,path:m,query:g,installRepo:o$1,body:y,signature:f,timestamp:E,nowUnixSeconds:t?.nowUnixSeconds??Math.floor(Date.now()/1e3),toleranceSec:t?.toleranceSec});if(!w.ok)throw new S(w.reason,`HMAC verification failed: ${w.reason}`)}if(u){let f=`Bearer ${e.CLI_BEARER_TOKEN}`,R=r$1.headers.get("authorization")??"";if(!await We(R,f))throw new S("invalid-bearer","invalid-bearer: bearer token mismatch")}if(p$1){let f=B(e.CLI_API_KEY_HEADER)?e.CLI_API_KEY_HEADER:"X-API-Key",R=r$1.headers.get(f)??"";if(!await We(R,e.CLI_API_KEY))throw new S("invalid-api-key",`invalid-api-key: mismatch on header "${f}"`)}if(l){let f=`Basic ${btoa(`${e.CLI_BASIC_USERNAME}:${e.CLI_BASIC_PASSWORD}`)}`,R=r$1.headers.get("authorization")??"";if(!await We(R,f))throw new S("invalid-basic","invalid-basic: basic auth mismatch")}return O===void 0&&(y=await Ht(r$1,i,y),O=yn(y)),{method:i,installRepo:o$1,args:O}}async function Ht(r,e,t){return q$1(e)?t!==void 0?t:r.text():""}function yn(r){let e;try{e=JSON.parse(r);}catch{throw new S("invalid-body","POST body is not valid JSON")}if(!Rn(e))throw new S("invalid-body","POST body must be a JSON object of primitive args (string / number / boolean)");return e}function B(r){return typeof r=="string"&&r.length>0}function Rn(r){if(typeof r!="object"||r===null||Array.isArray(r))return false;for(let e of Object.values(r))if(e!==void 0&&typeof e!="string"&&typeof e!="number"&&typeof e!="boolean")return false;return true}async function We(r,e){let[t,n]=await Promise.all([Ft(r),Ft(e)]),i=0;for(let o=0;o<t.length;o++)i|=t[o]^n[o];return i===0}async function Ft(r){return new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(r)))}function Ge(r){if(r.includes("/"))return r.split("/")[0]}function $t(r){if("shapeWref"in r&&typeof r.shapeWref=="string")return r.shapeWref;if(r.name)return Ge(r.name)}function $e(r){if(typeof r!="string")return;let e=r.trim();return e.length>0?e:void 0}function U(r){return m({kind:r.kind,name:r.name,about:ge(r),type:de(r),members:me(r)})}function ge(r){if("about"in r&&r.about!==void 0)return r.about;if("aboutWref"in r)return r.aboutWref}function Ke(r){return "data"in r?r.data:void 0}function de(r){return "type"in r?r.type:void 0}function me(r){return "members"in r?r.members:void 0}function z(r,e){return m({kind:r.kind,name:e})}function Wt(r){return r.data??{}}function Gt(r){if(r.operation==="retract")return T(r);if(r.operation==="reaffirm")return T({operation:"reaffirm",name:r.name,...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.kind?{kind:r.kind}:{},...r.add?{add:[...r.add]}:{},...r.remove?{remove:[...r.remove]}:{},...r.leaseId?{leaseId:r.leaseId}:{}});if(r.operation==="add"){let n=U(r);if(n==="collection")return W(r,"OperationBuilder");let i=r,o=Wt(i),s=$e(i.name);if(!s)throw new Error("OperationBuilder: add operation missing name");if(n==="assertion"){let u=ge(i);if(u===void 0)throw new Error(`OperationBuilder: assertion add '${s}' missing required 'about'`);if(typeof u!="string")throw new Error(D$1);return {operation:"add",kind:n,name:s,about:u,data:o,...i.affirmedTargets?{affirmedTargets:[...i.affirmedTargets]}:{},...i.skipExisting===true?{skipExisting:true}:{}}}return {operation:"add",kind:n,name:s,data:o,...i.skipExisting===true?{skipExisting:true}:{}}}let e=$e(r.name)??$e(r.wref);if(!e)throw new Error("OperationBuilder: revise operation missing required target ('name' or 'wref')");let t=z(r,e);if(t==="collection")return ne({...r,name:e},"OperationBuilder");if(t==="assertion")return {operation:"revise",kind:t,name:e,data:r.data??{},...r.affirmedTargets?{affirmedTargets:[...r.affirmedTargets]}:{},...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}};if(r.affirmedTargets!==void 0)throw new Error(`OperationBuilder: REVISE '${e}' has affirmedTargets but inferred kind '${t}' \u2014 affirmedTargets applies only to assertions; set kind: 'assertion'`);return {operation:"revise",kind:t,name:e,data:Wt(r),...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}}}function N(r,e){return r.operation==="add"?{operation:r.operation,kind:e,name:r.name,about:ge(r),type:de(r),members:me(r)}:{operation:r.operation,kind:e,name:r.name??r.wref,type:de(r),members:me(r)}}function Kt(r){if(r.length!==0)throw new Error(r.join("; "))}function zt(r,e,t,n){let i=[];if((e==="thing"||e==="assertion"||e==="collection"&&r==="REVISE")&&(l(t)||i.push(`${r} ${e} name must be a local path (Shape/name), got: "${t}"`)),e==="shape"&&(r==="ADD"||r==="REVISE")&&n!==void 0){let s=$(t,n,r==="REVISE"?"revise":"add");s&&i.push(s);}return i}function jt(r,e){let t=[];if(r.name&&t.push(...zt("ADD",e,r.name,Ke(r))),e==="assertion"&&ge(r)===void 0&&t.push(`ADD assertion '${r.name}' missing required 'about' \u2014 for hierarchical thing names set kind: 'thing' explicitly`),e!=="collection"&&(de(r)!==void 0||me(r)!==void 0)&&t.push(`ADD '${r.name}' has collection fields but inferred kind '${e}' \u2014 collection adds require both 'type' and 'members', or set kind: 'collection'`),e!=="assertion"&&"affirmedTargets"in r&&r.affirmedTargets!==void 0&&t.push(`ADD '${r.name}' has affirmedTargets but inferred kind '${e}' \u2014 affirmedTargets applies only to assertions; set kind: 'assertion'`),e==="collection")try{W(r,"OperationBuilder");}catch(n){t.push(n instanceof Error?n.message:String(n));}for(let n of E(N(r,e),0))t.push(n.message);Kt(t);}function Yt(r,e,t){let n=[];r!=="collection"&&t.data===void 0&&n.push(`OperationBuilder: ${r} revise requires 'data'`),r!=="assertion"&&t.affirmedTargets!==void 0&&n.push(`REVISE '${e}' has affirmedTargets but inferred kind '${r}' \u2014 affirmedTargets applies only to assertions; set kind: 'assertion'`),n.push(...zt("REVISE",r,e,t.data),...E(N({...t,name:e},r),0).map(i=>i.message)),Kt(n);}var he=class{ops=[];pendingNames=new Set;shapes;wrefToShape=new Map;submitted=false;inFlight=false;constructor(e){this.shapes=e?.shapes;}add(e){this.assertCanModify();let t={...e};delete t.operation;let n=$t(t),i=Ke(t);if(this.shapes&&n&&i!==void 0){let p=this.shapes[n];if(p){let l=R(i,p);if(!l.valid)throw new Error(`Shape validation failed for '${t.name}' (shape: ${n}): ${l.errors.join("; ")}`)}}let o={operation:"add",...t},s=U(o);(o.name||s==="collection")&&jt(o,s);let u=Object.freeze({operation:"add",...t});return this.ops.push(u),t.name&&(this.pendingNames.add(t.name),n&&this.wrefToShape.set(t.name,n)),this}revise(e){this.assertCanModify();let t={...e};delete t.operation;let n=t.name??t.wref;if(this.shapes&&n&&t.data!==void 0){let o=this.wrefToShape.get(n)??Ge(n);if(o){let s=this.shapes[o];if(s){let u=R(t.data,s);if(!u.valid)throw new Error(`Shape validation failed for revise '${n}' (shape: ${o}): ${u.errors.join("; ")}`)}}}if(n){let o=z({...t},n);Yt(o,n,{operation:"revise",...t});}let i=Object.freeze({operation:"revise",...t});return this.ops.push(i),this}retract(e){this.assertCanModify();let t=Object.freeze(typeof e=="string"?{operation:"retract",name:e}:{operation:"retract",name:e.name,...e.kind?{kind:e.kind}:{},...e.reason?{reason:e.reason}:{},...e.expectedVersion!==void 0?{expectedVersion:e.expectedVersion}:{},...e.leaseId?{leaseId:e.leaseId}:{}});return this.ops.push(t),this}reaffirm(e){this.assertCanModify();let t=Object.freeze({operation:"reaffirm",name:e.name,...e.expectedVersion!==void 0?{expectedVersion:e.expectedVersion}:{},...e.kind?{kind:e.kind}:{},...e.add?{add:Object.freeze([...e.add])}:{},...e.remove?{remove:Object.freeze([...e.remove])}:{},...e.leaseId?{leaseId:e.leaseId}:{}});return this.ops.push(t),this}get operations(){return Object.freeze([...this.ops])}get size(){return this.ops.length}has(e){return this.pendingNames.has(e)}validate(){let e=[],t=[],n=new Set,i=new Set;for(let p=0;p<this.ops.length;p+=1){let l=this.ops[p];if(l){if(l.operation==="add"){let d=U(l);!l.name&&d!=="collection"?e.push({code:"MISSING_NAME",operationIndex:p,message:`Add operation at index ${p} is missing required 'name' field`}):l.name&&(n.has(l.name)&&e.push({code:"DUPLICATE_NAME",operationIndex:p,message:`Duplicate name '${l.name}' at index ${p} (already added earlier in commit)`}),n.add(l.name));}if(l.operation==="revise"){let d=l.name??l.wref;d?i.has(d)?e.push({code:"REVISE_AFTER_RETRACT",operationIndex:p,message:`Revise at index ${p} targets '${d}' which was already retracted in this commit`}):n.has(d)||t.push({code:"REVISE_UNKNOWN_WREF",operationIndex:p,message:`Revise at index ${p} references '${d}' which was not added in this commit (assuming it exists server-side)`}):e.push({code:"MISSING_WREF",operationIndex:p,message:`Revise operation at index ${p} is missing required target ('name' or 'wref')`});}l.operation==="retract"&&(l.name?i.has(l.name)?t.push({code:"RETRACT_AFTER_RETRACT",operationIndex:p,message:`Retract at index ${p} targets '${l.name}' which was already retracted in this commit`}):(n.has(l.name)||t.push({code:"RETRACT_UNKNOWN_WREF",operationIndex:p,message:`Retract at index ${p} references '${l.name}' which was not added in this commit (assuming it exists server-side)`}),i.add(l.name)):e.push({code:"MISSING_NAME",operationIndex:p,message:`Retract operation at index ${p} is missing required 'name' field`}));}}let o=this.ops.flatMap((p,l)=>{if(p.operation==="add")return E(N(p,U(p)),l);if(p.operation==="revise"){let d=p.name??p.wref;return E(N(p,d?z(p,d):"thing"),l)}return E({operation:"retract",kind:p.kind,name:p.name},l)});for(let p of o)e.push({code:p.code,operationIndex:p.operationIndex,message:p.message});let s=this.ops.flatMap((p,l)=>{if(p.operation==="retract"||p.operation==="reaffirm")return [];if(p.operation==="add")return [{op:N(p,U(p)),operationIndex:l}];let d=p.name??p.wref;return [{op:N(p,d?z(p,d):"thing"),operationIndex:l}]}),u=F(s.map(({op:p})=>p),{checkAddAdd:false,sourceOperationIndexes:s.map(({operationIndex:p})=>p)});for(let p of u)e.push({code:p.code,operationIndex:p.operationIndex,message:p.message});return this.ops.length===0&&e.push({code:"EMPTY_COMMIT",operationIndex:-1,message:"OperationBuilder has no operations"}),{valid:e.length===0,errors:e,warnings:t}}async commit(e){if(this.assertNotSubmitted(),this.inFlight)throw new Error("OperationBuilder: stream submission already in flight");let t=this.validate();if(!t.valid){let n=t.errors.map(i=>i.message).join("; ");throw new Error(`OperationBuilder validation failed: ${n}`)}this.inFlight=true;try{let n=this.ops.map(o=>Gt(o)),i=await M(e.client,{orgName:e.orgName,repoName:e.repoName,committer:e.committer,message:e.message,chunkSize:e.chunkSize,streamId:e.streamId,submissionId:e.submissionId,returnRepoSeq:e.returnRepoSeq,retry:e.retry,operations:n});return this.submitted=!0,i}catch(n){throw n instanceof I&&(this.submitted=true),n}finally{this.inFlight=false;}}assertNotSubmitted(){if(this.submitted)throw new Error("OperationBuilder: already submitted, cannot modify")}assertCanModify(){if(this.assertNotSubmitted(),this.inFlight)throw new Error("OperationBuilder: stream submission already in flight, cannot modify")}};function Po(r){return r.replace(/@(?:v\d+|HEAD|ALL)$/i,"")}var kn={apiUrl:true,fetch:true,accessToken:true,auth:true,functionLogs:true,client:true,clientFlags:true,decorateResponses:true},cr=Object.keys(kn),vn=new Set(cr),xn=new Set(["token","apiKey","bearer"]);function En(r){if(r)for(let e of Object.keys(r)){if(vn.has(e))continue;let t=xn.has(e)?'; did you mean "accessToken"?':`. Valid options are: ${cr.join(", ")}.`;throw new TypeError(`Unknown WarmHubClient option "${e}"${t}`)}}function Tn(r){if(!r||r.length===0)return [];for(let e of r)if(!c$1(e))throw new TypeError(`Invalid client flag "${e}": expected lowercase tokens matching [a-z0-9-]+.`);return [...new Set(r)].sort()}var ze="https://api.warmhub.ai",Nn=new Set(["commit.validate","repo.shapeInstanceCounts","thing.getMany","thing.headVersions"]),Jt=500,Qt=500,Xt=1,Zt=8;function Re(r){return {...r,actionContainer:void 0,actionContainerConfig:void 0}}function _n(r){return r.map(e=>Re(e))}function ur(r,e,t){if(e===r||t.has(e))throw new h("VALIDATION_ERROR","Paginated result cursor did not advance")}function er(r){if(r===void 0)throw new h("VALIDATION_ERROR","sinceRepoSeq is required for an incremental read")}async function*pr(r,e){let t=e,n=new Set;for(;;){t&&n.add(t);let i=await r(t);if(yield i,!i.nextCursor)return;ur(t,i.nextCursor,n),t=i.nextCursor;}}async function*b(r,e,t){for await(let n of pr(r,t))yield*e(n);}async function C(r,e,t,n){if(t!==void 0&&(!Number.isFinite(t)||Math.trunc(t)!==t||t<0))throw new h("VALIDATION_ERROR","max must be a nonnegative integer");let i=[];for await(let o of pr(r,n)){let s=e(o);if(t!==void 0&&i.length+s.length>t)throw new h("VALIDATION_ERROR",`Paginated result exceeded max=${t}`);i.push(...s);}return i}function tr(r){if(r?.slugs!==void 0)throw new h("VALIDATION_ERROR","repo.explore pagination helpers do not support slugs mode")}async function rr(r){let e=[],t,n=new Set;for(;;){t&&n.add(t);let i=await r(t);if(e.push(...i.items),!i.nextCursor){if(i.repoSeq===void 0)throw new h("VALIDATION_ERROR","Incremental read completed without repoSeq");return {items:e,repoSeq:i.repoSeq}}ur(t,i.nextCursor,n),t=i.nextCursor;}}function fe(r,e,t){return Number.isFinite(r)?Math.max(1,Math.min(t,Math.trunc(r))):e}function nr(r,e){let t=[];for(let n=0;n<r.length;n+=e)t.push(r.slice(n,n+e));return t}function ye(r){return r!==void 0&&k$1.includes(r)?r:void 0}function j(r){let[e,t,n]=r;return typeof e=="string"?{orgName:e,repoName:t,name:n}:e}function Pn(r){let[e,t]=r;return typeof e=="string"?{orgName:e,repoName:t}:e}function Ln(r){let[e,t,n,i]=r;return typeof e=="string"?{orgName:e,repoName:t,subscriptionName:n,credentialSetName:i}:e}function Dn(r){let[e,t,n]=r;return typeof e=="string"?{orgName:e,repoName:t,subscriptionName:n}:e}function Mn(r){let{actionContainer:e,actionContainerConfig:t,...n}=r;return n}function qn(r){let{actionContainer:e,actionContainerConfig:t,...n}=r;return n}function be(r){return !!r&&(!!r.shape||!!r.kind||!!r.about||!!r.match||!!r.componentRef||r.excludeComponents===true||(r.where?.length??0)>0)}function Ce(r){return !!r&&(!!r.shape||!!r.about||!!r.match||!!r.componentRef||(r.where?.length??0)>0)}function lr(r){let e=r.members;return Array.isArray(e)&&e.length>0}function Bn(r){let t=r.replace(/^wh:[^/]+\/[^/]+\//,"").replace(/@(?:HEAD|ALL|v\d+)$/,"").split("/")[0]?.toLowerCase();return t==="arc"||t==="bond"||t==="pair"||t==="set"||t==="list"?t:void 0}function Un(r,e){if(be(e.query)&&!Ce(e.query))throw new h("VALIDATION_ERROR","Selector-backed collection sources require shape, about, match, componentRef, or where; kind and excludeComponents only narrow an existing selector.");if(e.sourceRepo&&!Ce(e.query))throw new h("VALIDATION_ERROR","sourceRepo requires a selector-backed collection query");if(e.sourceRepo&&lr(e))throw new h("VALIDATION_ERROR","sourceRepo cannot be combined with explicit members; use canonical wh:org/repo/... member wrefs or omit sourceRepo.");if(be(e.query)&&r!=="set")throw new h("VALIDATION_ERROR","Selector-backed collection sources are only supported for set collections")}function Lo(r){return r??"off"}function Vn(r){if(r!==void 0)switch(r){case "BAD_REQUEST":case "PARSE_ERROR":case "PAYLOAD_TOO_LARGE":case "UNPROCESSABLE_CONTENT":case "UNSUPPORTED_MEDIA_TYPE":return "VALIDATION_ERROR";case "METHOD_NOT_SUPPORTED":return "NOT_FOUND";case "UNAUTHORIZED":return "UNAUTHENTICATED";case "FORBIDDEN":return "FORBIDDEN";case "NOT_FOUND":return "NOT_FOUND";case "CONFLICT":return "CONFLICT";case "PRECONDITION_FAILED":return "PRECONDITION_FAILED";case "TOO_MANY_REQUESTS":return "RATE_LIMITED";default:return}}function Hn(r){if(r===void 0||r===408)return;if(r===405)return "NOT_FOUND";if(r===412)return "PRECONDITION_FAILED";if(r===422)return "VALIDATION_ERROR";let e=mr(r);return e!=="BACKEND"?e:r>=400&&r<500?"VALIDATION_ERROR":e}var Fn=[/\bselect\b.+?\bfrom\b/i,/\binsert\b.+?\binto\b/i,/\bupdate\b.+?\bset\b/i,/\bdelete\b.+?\bfrom\b/i,/\bparams:\s/i,/\.ts\(\d+,\d+\)/,/at\s+\S+\s+\(.*:\d+:\d+\)/,/node_modules\//,/drizzle/i];function je(r){for(let e of Fn)if(e.test(r))return "An internal error occurred. Please try again or contact support.";return r}var h=class extends Error{code;status;hint;retryAfter;errorCode;backendCode;details;constructor(e,t,n,i,o,s,u){super(t),this.name="WarmHubError",this.code=e,this.status=n,this.hint=i,this.retryAfter=o,this.errorCode=s,this.backendCode=s,this.details=u;}get kind(){return this.code}};function ir(r,e){if(typeof e!="string")return;let t=z$2(r,e);if(t)throw new h("VALIDATION_ERROR",t)}function c(r){if(r instanceof h)return r;if(r instanceof TRPCClientError){if(r.cause instanceof h)return r.cause;let e=r.data,t=e?.warmhub?.code,n=typeof e?.code=="string"?Vn(e.code):void 0,i=Hn(e?.httpStatus),o=e?.warmhub?.message??je(r.message);return new h(t??n??i??"BACKEND",o,e?.warmhub?.status??e?.httpStatus,e?.warmhub?.hint,e?.warmhub?.retryAfter??e?.retryAfter,t,e?.warmhub?.details)}if(r instanceof Error){let e=r;return r.name==="WarmHubError"&&typeof e.code=="string"?new h(e.code,je(r.message),typeof e.status=="number"?e.status:void 0,typeof e.hint=="string"?e.hint:void 0,typeof e.retryAfter=="number"?e.retryAfter:void 0,typeof e.errorCode=="string"?e.errorCode:typeof e.backendCode=="string"?e.backendCode:void 0,e.details):r.name==="AbortError"?new h("CANCELLED",r.message):r instanceof TypeError&&/fetch/i.test(r.message)?new h("NETWORK",r.message):new h("BACKEND",je(r.message))}return new h("BACKEND","Unknown SDK error")}function Wn(r){return r instanceof h}function Do(r){if(r instanceof x)return false;let e=c(r);return e.kind==="NETWORK"||e.kind==="CANCELLED"||e.kind==="BACKEND"||e.kind==="RATE_LIMITED"}var $n=new Set(["ConnectionRefused","ECONNREFUSED","ENOTFOUND","ETIMEDOUT","EAI_AGAIN"]);function Gn(r){if(r instanceof TypeError&&/fetch/i.test(r.message))return true;if(r&&typeof r=="object"){let e=r.code;if(typeof e=="string"&&$n.has(e))return true}return false}function Kn(r){return `Unable to connect to ${r}. Is the computer able to access the url?`}function Mo(r,e){if(q(r))return false;let t=u(r),n=u(e);return !t||!n?false:v$1(t,n)<0}function dr(r,e){return new h("CLIENT_INCOMPATIBLE",r,412,e)}function zn(r,e){let t=Vt(r,e);if(t)throw dr(t.message,t.hint)}var or=class r{apiUrl;fetchImpl;accessToken;clientIdentity;clientFlags;decorateResponses;functionLogMode;getToken;compatibilityCheck;overrideNoticePrinted=false;noteCompatibilityOverride(){this.overrideNoticePrinted||(this.overrideNoticePrinted=true,console.error(`warmhub: compatibility checks overridden by client flag ${b$1}; the server remains authoritative.`));}assertWriteCompatible(){return this.clientFlags.includes(b$1)?(this.noteCompatibilityOverride(),Promise.resolve()):q(this.clientIdentity.version)&&Fe(this.apiUrl,ze)?Promise.reject(dr(`Development client ${this.clientIdentity.name}/${this.clientIdentity.version} cannot write to production.`,"Install a released WarmHub client artifact before writing to api.warmhub.ai.")):q(this.clientIdentity.version)&&!Fe(this.apiUrl,ze)?Promise.resolve():this.diagnostics.assertCompatible()}createCompatibilityLink(){return ()=>({op:e,next:t})=>e.type!=="mutation"||e.path==="commit.validate"?t(e):observable(n=>{let i=false,o;return (async()=>{try{await this.assertWriteCompatible();}catch(s){if(i)return;n.error(TRPCClientError.from(s));return}i||(o=t(e).subscribe(n));})(),()=>{i=true,o?.unsubscribe();}})}auth={getClientId:async()=>{try{return await this.trpc.auth.getClientId.query()}catch(e){throw c(e)}},sync:async()=>{try{return await this.trpc.auth.sync.mutate()}catch(e){throw c(e)}},currentUser:async()=>{try{return await this.trpc.auth.currentUser.query()}catch(e){throw c(e)}},whoami:async()=>{try{return await this.trpc.auth.whoami.query()}catch(e){throw c(e)}}};homepage={featuredLists:async()=>{try{return await this.trpc.homepage.featuredLists.query()}catch(e){throw c(e)}}};access={resolve:async e=>{try{return await this.trpc.access.resolve.query(e)}catch(t){throw c(t)}}};diagnostics={ping:async()=>{let e=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}/health`);if(!e.ok)throw new h("BACKEND",`Health request failed with status ${e.status}`,e.status);return await e.json()},capabilities:async()=>{try{return await this.trpc.diagnostics.capabilities.query()}catch(e){throw c(e)}},assertCompatible:()=>{if(this.compatibilityCheck)return this.compatibilityCheck;let e=(async()=>{let t=await this.diagnostics.capabilities();zn(t,this.clientIdentity);})();return this.compatibilityCheck=e,e.catch(t=>{Wn(t)&&t.code==="CLIENT_INCOMPATIBLE"||this.compatibilityCheck===e&&(this.compatibilityCheck=void 0);}),e}};component={list:async(e,t,n)=>{try{return await this.trpc.component.list.query({orgName:e,repoName:t,limit:n?.limit,cursor:n?.cursor})}catch(i){throw c(i)}},listIter:(e,t,n)=>b(i=>this.component.list(e,t,{...n,cursor:i}),i=>i.items,n?.cursor),listAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await C(s=>this.component.list(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},search:async(e,t)=>{try{return await this.trpc.component.search.query({query:e,limit:t?.limit,cursor:t?.cursor})}catch(n){throw c(n)}},searchIter:(e,t)=>b(n=>this.component.search(e,{...t,cursor:n}),n=>n.items,t?.cursor),searchAll:async(e,t)=>{let{max:n,...i}=t??{};return await C(o=>this.component.search(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},get:async(e,t,n)=>{try{return await this.trpc.component.get.query({orgName:e,repoName:t,componentRef:n})}catch(i){throw c(i)}},history:async(e,t,n)=>{try{return await this.trpc.component.history.query({orgName:e,repoName:t,componentRef:n?.componentRef,limit:n?.limit})}catch(i){throw c(i)}},install:async(e,t,n,i)=>{try{return await this.trpc.component.install.mutate({orgName:e,repoName:t,componentRef:n,submissionId:i.submissionId})}catch(o){throw c(o)}},uninstall:async(e,t,n,i)=>{try{return await this.trpc.component.uninstall.mutate({orgName:e,repoName:t,componentRef:n,submissionId:i.submissionId})}catch(o){throw c(o)}},registry:{register:async(e,t,n)=>{try{return await this.trpc.component.registry.register.mutate({orgName:e,componentName:t,...n})}catch(i){throw c(i)}},unregister:async(e,t)=>{try{return await this.trpc.component.registry.unregister.mutate({orgName:e,componentName:t})}catch(n){throw c(n)}},list:async e=>{try{return await this.trpc.component.registry.list.query({orgName:e})}catch(t){throw c(t)}},view:async(e,t)=>{try{return await this.trpc.component.registry.view.query({orgName:e,componentName:t})}catch(n){throw c(n)}},update:async(e,t,n)=>{try{return await this.trpc.component.registry.update.mutate({orgName:e,componentName:t,...n})}catch(i){throw c(i)}},resolve:async(e,t,n)=>await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/resolve`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({installRepo:n})}),setupCall:async(e,t,n)=>(await this.assertWriteCompatible(),await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/setup-call`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(n)}))},cli:{call:async(e,t,n,i)=>(await this.assertWriteCompatible(),await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/cli/${encodeURIComponent(n)}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(i)}))}};commit={validate:async(e,t,n,i)=>{try{return await this.trpc.commit.validate.mutate({orgName:e,repoName:t,committer:i?.committer,message:i?.message,componentRef:i?.componentRef,operations:ve(n,i?.skipExisting),includeWouldBeBody:i?.includeWouldBeBody},{signal:i?.signal})}catch(o){throw c(o)}},apply:async(e,t,n,i,o)=>{try{return await M(this,{orgName:e,repoName:t,committer:o?.committer,message:n,componentRef:o?.componentRef,chunkSize:o?.chunkSize,skipExisting:o?.skipExisting,streamId:o?.streamId,submissionId:o?.submissionId,returnRepoSeq:o?.returnRepoSeq,retry:o?.retry,operations:i})}catch(s){throw s instanceof I||s instanceof v?s:c(s)}},applyStreaming:(e,t,n,i,o)=>Bt({orgName:e,repoName:t,message:n,operations:i,options:o},{prepare:async s=>await this.prepareStreamingSubmissionRequest(s),localError:(s,u)=>new h(s,u),normalizeLocalError:c}),getReceipt:async(e,t,n)=>{try{return await this.trpc.commit.getReceipt.query({orgName:e,repoName:t,eventRequestId:n})}catch(i){throw c(i)}}};org={get:async e=>{try{return await this.trpc.org.get.query({orgName:e})}catch(t){throw c(t)}},getCallerRole:async e=>{try{return await this.trpc.org.getCallerRole.query({orgName:e})}catch(t){throw c(t)}},list:async e=>{try{return {items:await this.trpc.org.list.query({includeArchived:e?.includeArchived})}}catch(t){throw c(t)}},create:async(e,t,n)=>{try{return await this.trpc.org.create.mutate({name:e,displayName:t,description:n})}catch(i){throw c(i)}},setDescription:async(e,t)=>{try{return await this.trpc.org.setDescription.mutate({orgName:e,description:t})}catch(n){throw c(n)}},setDisplayName:async(e,t)=>{try{return await this.trpc.org.setDisplayName.mutate({orgName:e,displayName:t})}catch(n){throw c(n)}},rename:async(e,t)=>{try{return await this.trpc.org.rename.mutate({orgName:e,newName:t})}catch(n){throw c(n)}},update:async e=>{try{return await this.trpc.org.update.mutate(e)}catch(t){throw c(t)}},addMember:async(e,t,n="editor")=>{try{return await this.trpc.org.addMember.mutate({orgName:e,email:t,role:n})}catch(i){throw c(i)}},removeMember:async(e,t)=>{try{await this.trpc.org.removeMember.mutate({orgName:e,email:t});}catch(n){throw c(n)}},leave:async e=>{try{await this.trpc.org.leave.mutate({orgName:e});}catch(t){throw c(t)}},changeMemberRole:async(e,t,n)=>{try{return await this.trpc.org.changeMemberRole.mutate({orgName:e,email:t,role:n})}catch(i){throw c(i)}},setMemberScopes:async(e,t,n)=>{try{await this.trpc.org.setMemberScopes.mutate({orgName:e,email:t,scopes:n});}catch(i){throw c(i)}},clearMemberScopes:async(e,t)=>{try{await this.trpc.org.clearMemberScopes.mutate({orgName:e,email:t});}catch(n){throw c(n)}},listMembers:async(e,t)=>{try{return await this.trpc.org.listMembers.query({orgName:e,pending:t?.pending})}catch(n){throw c(n)}},archive:async e=>{try{return await this.trpc.org.archive.mutate({orgName:e})}catch(t){throw c(t)}},unarchive:async e=>{try{return await this.trpc.org.unarchive.mutate({orgName:e})}catch(t){throw c(t)}}};repo={checkpoint:bt(()=>this.trpc,c),get:async(e,t)=>{try{return await this.trpc.repo.get.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getStats:async(e,t)=>{try{return await this.trpc.repo.stats.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getStatsBatch:async(e,t)=>{try{return await this.trpc.repo.statsBatch.query({orgName:e,repoNames:t})}catch(n){throw c(n)}},getConfigureStats:async(e,t)=>{try{return await this.trpc.repo.configureStats.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getShapeInstanceCounts:async(e,t)=>{try{return await this.trpc.repo.shapeInstanceCounts.query({orgName:e,repoName:t})}catch(n){throw c(n)}},list:async(e,t)=>{try{return await this.trpc.repo.list.query({orgName:e,limit:t?.limit,cursor:t?.cursor,includeArchived:t?.includeArchived,search:t?.search,sort:t?.sort})}catch(n){throw c(n)}},listIter:(e,t)=>b(n=>this.repo.list(e,{...t,cursor:n}),n=>n.items,t?.cursor),listAll:async(e,t)=>{let{max:n,...i}=t??{};return await C(o=>this.repo.list(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},search:async(e,t)=>{try{return await this.trpc.repo.search.query({query:e,limit:t?.limit,cursor:t?.cursor})}catch(n){throw c(n)}},searchIter:(e,t)=>b(n=>this.repo.search(e,{...t,cursor:n}),n=>n.items,t?.cursor),searchAll:async(e,t)=>{let{max:n,...i}=t??{};return await C(o=>this.repo.search(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},create:async(e,t,n,i,o)=>{try{return await this.trpc.repo.create.mutate({orgName:e,repoName:t,description:n,visibility:i,displayName:o})}catch(s){throw c(s)}},setDescription:async(e,t,n)=>{try{return await this.trpc.repo.setDescription.mutate({orgName:e,repoName:t,description:n})}catch(i){throw c(i)}},setDisplayName:async(e,t,n)=>{try{return await this.trpc.repo.setDisplayName.mutate({orgName:e,repoName:t,displayName:n})}catch(i){throw c(i)}},setVisibility:async(e,t,n)=>{try{return await this.trpc.repo.setVisibility.mutate({orgName:e,repoName:t,visibility:n})}catch(i){throw c(i)}},rename:async(e,t,n)=>{try{return await this.trpc.repo.rename.mutate({orgName:e,repoName:t,newName:n})}catch(i){throw c(i)}},update:async e=>{try{return await this.trpc.repo.update.mutate(e)}catch(t){throw c(t)}},archive:async(e,t)=>{try{return await this.trpc.repo.archive.mutate({orgName:e,repoName:t})}catch(n){throw c(n)}},unarchive:async(e,t)=>{try{return await this.trpc.repo.unarchive.mutate({orgName:e,repoName:t})}catch(n){throw c(n)}},delete:async(e,t)=>{try{let n=await this.trpc.repo.delete.mutate({orgName:e,repoName:t});return {graceExpiresAt:new Date(n.graceExpiresAt)}}catch(n){throw c(n)}},listPage:async(e,t)=>{try{return await this.trpc.repo.listPage.query({orgName:e,limit:t?.limit,cursor:t?.cursor,includeArchived:t?.includeArchived,search:t?.search,sort:t?.sort})}catch(n){throw c(n)}},listPageIter:(e,t)=>b(n=>this.repo.listPage(e,{...t,cursor:n}),n=>n.items,t?.cursor),listPageAll:async(e,t)=>{let{max:n,...i}=t??{};return await C(o=>this.repo.listPage(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},listForCaller:async e=>{try{return await this.trpc.repo.listForCaller.query({limit:e?.limit,sort:e?.sort})}catch(t){throw c(t)}},explore:async e=>{try{return await this.trpc.repo.explore.query({search:e?.search,org:e?.org,activity:e?.activity,hasSubscriptions:e?.hasSubscriptions,minThings:e?.minThings,sort:e?.sort,limit:e?.limit,cursor:e?.cursor,slugs:e?.slugs})}catch(t){throw c(t)}},exploreIter:e=>(tr(e),b(t=>this.repo.explore({...e,cursor:t}),t=>t.items,e?.cursor)),exploreAll:async e=>{tr(e);let{max:t,...n}=e??{};return await C(i=>this.repo.explore({...n,cursor:i}),i=>i.items,t,n.cursor)},getReadme:async(e,t)=>{try{return await this.trpc.repo.getReadme.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getAgents:async(e,t)=>{try{return await this.trpc.repo.getAgents.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getLicense:async(e,t)=>{try{return await this.trpc.repo.getLicense.query({orgName:e,repoName:t})}catch(n){throw c(n)}},describe:async(e,t)=>{try{return await this.trpc.repo.describe.query({orgName:e,repoName:t})}catch(n){throw c(n)}},setReadme:async(e,t,n,i)=>{try{return ir("Content/Readme.content",n),await this.trpc.repo.setReadme.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,content:n})}catch(o){throw c(o)}},setAgents:async(e,t,n,i)=>{try{return ir("Content/Agents.content",n),await this.trpc.repo.setAgents.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,content:n})}catch(o){throw c(o)}},getLlmsTxt:async(e,t)=>{try{return await this.trpc.repo.getLlmsTxt.query({orgName:e,repoName:t})}catch(n){throw c(n)}},index:{describe:async(e,t)=>{try{return await this.trpc.repo.index.describe.query({orgName:e,repoName:t})}catch(n){throw c(n)}}}};shape={list:async(e,t,n)=>{try{return await this.trpc.shape.list.query({orgName:e,repoName:t,match:n?.match,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,includeRetracted:n?.includeRetracted})}catch(i){throw c(i)}},get:async(e,t,n,i)=>{try{return await this.trpc.shape.get.query({orgName:e,repoName:t,shapeName:n,includeRetracted:i?.includeRetracted})}catch(o){throw c(o)}},create:async(e,t,n,i,o)=>{let s=$(n,{fields:i,...o.description!==void 0?{description:o.description}:{}},"add");if(s)throw new h("VALIDATION_ERROR",s);try{return await this.trpc.shape.create.mutate({orgName:e,repoName:t,shapeName:n,fields:i,eventRequestId:o.eventRequestId,description:o.description})}catch(u){throw c(u)}},revise:async(e,t,n,i,o)=>{let s=$(n,{fields:i,...o.description!==void 0?{description:o.description}:{}},"revise");if(s)throw new h("VALIDATION_ERROR",s);try{return await this.trpc.shape.revise.mutate({orgName:e,repoName:t,shapeName:n,newFields:i,eventRequestId:o.eventRequestId,description:o.description})}catch(u){throw c(u)}},remove:async(e,t,n,i)=>{try{return await this.trpc.shape.remove.mutate({orgName:e,repoName:t,shapeName:n,eventRequestId:i.eventRequestId})}catch(o){throw c(o)}},rename:async(e,t,n,i,o)=>{try{return await this.trpc.shape.rename.mutate({orgName:e,repoName:t,oldName:n,newName:i,eventRequestId:o.eventRequestId})}catch(s){throw c(s)}},history:async(e,t,n,i={})=>{try{return await this.trpc.shape.history.query({orgName:e,repoName:t,name:n,includeRetracted:i.includeRetracted,limit:i.limit,cursor:i.cursor})}catch(o){throw c(o)}},historyIter:(e,t,n,i={})=>b(o=>this.shape.history(e,t,n,{...i,cursor:o}),o=>o.versions,i.cursor),historyAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(u=>this.shape.history(e,t,n,{...s,cursor:u}),u=>u.versions,o,s.cursor)}};subscription={create:async e=>{try{let t=await this.trpc.subscription.create.mutate(Mn(e));return Re(t)}catch(t){throw c(t)}},get:async(...e)=>{try{let t=await this.trpc.subscription.get.query(j(e));return Re(t)}catch(t){throw c(t)}},reveal:async(...e)=>{try{return await this.trpc.subscription.reveal.query(j(e))}catch(t){throw c(t)}},list:async(...e)=>{try{let t=await this.trpc.subscription.list.query(Pn(e));return _n(t)}catch(t){throw c(t)}},update:async e=>{try{let t=await this.trpc.subscription.update.mutate(qn(e));return Re(t)}catch(t){throw c(t)}},pause:async(...e)=>{try{return await this.trpc.subscription.pause.mutate(j(e))}catch(t){throw c(t)}},resume:async(...e)=>{try{return await this.trpc.subscription.resume.mutate(j(e))}catch(t){throw c(t)}},remove:async(...e)=>{try{return await this.trpc.subscription.remove.mutate(j(e))}catch(t){throw c(t)}},bindCredentials:async(...e)=>{try{return await this.trpc.subscription.bindCredentials.mutate(Ln(e))}catch(t){throw c(t)}},unbindCredentials:async(...e)=>{try{return await this.trpc.subscription.unbindCredentials.mutate(Dn(e))}catch(t){throw c(t)}}};action={acquireLease:async(e,t,n,i,o,s)=>{try{return await this.trpc.action.acquireLease.mutate({orgName:e,repoName:t,subscriptionName:n,holderId:i,holderType:o,graceMs:s?.graceMs,ttlMs:s?.ttlMs})}catch(u){throw c(u)}},heartbeatLease:async(e,t,n,i,o)=>{try{return await this.trpc.action.heartbeatLease.mutate({orgName:e,repoName:t,subscriptionName:n,holderId:i,ttlMs:o})}catch(s){throw c(s)}},releaseLease:async(e,t,n,i)=>{try{return await this.trpc.action.releaseLease.mutate({orgName:e,repoName:t,subscriptionName:n,holderId:i})}catch(o){throw c(o)}},claimDelivery:async(e,t,n,i)=>{let o=typeof n=="string"?{runId:n}:n;try{return await this.trpc.action.claimDelivery.mutate({orgName:e,repoName:t,...o,holderId:i})}catch(s){throw c(s)}},completeDelivery:async(e,t,n,i)=>{let o=typeof n=="string"?{runId:n}:n;try{return await this.trpc.action.completeDelivery.mutate({orgName:e,repoName:t,...o,holderId:i})}catch(s){throw c(s)}},liveFeed:async(e,t,n,i)=>{try{return await this.trpc.action.liveFeed.query({orgName:e,repoName:t,subscriptionName:n,limit:i?.limit,cursor:i?.cursor})}catch(o){throw c(o)}},liveFeedIter:(e,t,n,i)=>b(o=>this.action.liveFeed(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),liveFeedAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(u=>this.action.liveFeed(e,t,n,{...s,cursor:u}),u=>u.items,o,s.cursor)},listRuns:async(e,t,n)=>{try{return await this.trpc.action.listRuns.query({orgName:e,repoName:t,runId:n?.runId,subscriptionName:n?.subscriptionName,status:n?.status,outcome:n?.outcome,since:n?.since,cursor:n?.cursor,limit:n?.limit})}catch(i){throw c(i)}},listRunsIter:(e,t,n)=>b(i=>this.action.listRuns(e,t,{...n,since:i===void 0?n?.since:void 0,cursor:i}),i=>i.items,n?.cursor),listRunsAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await C(s=>this.action.listRuns(e,t,{...o,since:s===void 0?o.since:void 0,cursor:s}),s=>s.items,i,o.cursor)},latestRuns:async(e,t)=>{try{return await this.trpc.action.latestRuns.query({orgName:e,repoName:t})}catch(n){throw c(n)}},runStats:async(e,t,n)=>{try{return await this.trpc.action.runStats.query({orgName:e,repoName:t,subscriptionName:n?.subscriptionName,since:n?.since})}catch(i){throw c(i)}},getRunAttempts:async(e,t,n)=>{try{return await this.trpc.action.getRunAttempts.query({orgName:e,repoName:t,runId:n})}catch(i){throw c(i)}},listNotifications:async(e,t,n)=>{try{return await this.trpc.action.listNotifications.query({orgName:e,repoName:t,since:n?.since,limit:n?.limit})}catch(i){throw c(i)}}};collection={create:async(e,t,n)=>{try{return Un(n.type,n),await this.trpc.collection.create.mutate({orgName:e,repoName:t,eventRequestId:n.eventRequestId,type:n.type,name:n.name,members:n.members,from:n.from,add:n.add,remove:n.remove,replaceMembers:n.replaceMembers,query:n.query,sourceOrgName:n.sourceRepo?.orgName,sourceRepoName:n.sourceRepo?.repoName,skipExisting:n.skipExisting,message:n.message,committer:n.committer})}catch(i){throw c(i)}},members:async(e,t,n,i)=>{try{return await this.trpc.collection.members.query({orgName:e,repoName:t,wref:n,version:i?.version,limit:i?.limit,cursor:i?.cursor})}catch(o){throw c(o)}},membersIter:(e,t,n,i)=>{let o=i?.version;return b(async s=>{let u=await this.collection.members(e,t,n,{...i,version:o,cursor:s});return o??=u.version,u},s=>s.items,i?.cursor)},membersAll:async(e,t,n,i)=>{let{max:o,...s}=i??{},u=s.version;return await C(async p=>{let l=await this.collection.members(e,t,n,{...s,version:u,cursor:p});return u??=l.version,l},p=>p.items,o,s.cursor)},contains:async(e,t,n,i,o)=>{try{return await this.trpc.collection.contains.query({orgName:e,repoName:t,wref:n,version:o?.version,members:i,position:o?.position})}catch(s){throw c(s)}},diff:async(e,t,n,i,o)=>{try{return await this.trpc.collection.diff.query({orgName:e,repoName:t,leftWref:n,rightWref:i,leftVersion:o?.leftVersion,rightVersion:o?.rightVersion,mode:o?.mode})}catch(s){throw c(s)}},revise:async(e,t,n,i)=>{try{let o=Bn(n);if(be(i.query)&&!Ce(i.query))throw new h("VALIDATION_ERROR","Selector-backed collection sources require shape, about, match, componentRef, or where; kind and excludeComponents only narrow an existing selector.");if(i.sourceRepo&&!Ce(i.query))throw new h("VALIDATION_ERROR","sourceRepo requires a selector-backed collection query");if(i.sourceRepo&&lr(i))throw new h("VALIDATION_ERROR","sourceRepo cannot be combined with explicit members; use canonical wh:org/repo/... member wrefs or omit sourceRepo.");if(be(i.query)&&o&&o!=="set")throw new h("VALIDATION_ERROR","Selector-backed revise requires a Set/<name> target wref");return await this.trpc.collection.revise.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,wref:n,members:i.members,add:i.add,remove:i.remove,query:i.query,sourceOrgName:i.sourceRepo?.orgName,sourceRepoName:i.sourceRepo?.repoName,message:i.message,committer:i.committer})}catch(o){throw c(o)}},stats:async(e,t,n,i)=>{try{return await this.trpc.collection.stats.query({orgName:e,repoName:t,wref:n,version:i?.version})}catch(o){throw c(o)}}};view={evaluate:async(e,t,n,i)=>{try{return await this.trpc.view.evaluate.query({orgName:e,repoName:t,wref:n,limit:i?.limit,cursor:i?.cursor})}catch(o){throw c(o)}},evaluateIter:(e,t,n,i)=>b(o=>this.view.evaluate(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),evaluateAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(u=>this.view.evaluate(e,t,n,{...s,cursor:u}),u=>u.items,o,s.cursor)}};grant=yt(()=>this.trpc,c);thing={head:async(e,t,n)=>{try{return await this.trpc.thing.head.query({orgName:e,repoName:t,shape:n?.shape,kind:ye(n?.kind),match:n?.match,dataMode:n?.dataMode,includeRetracted:n?.includeRetracted,limit:n?.limit,cursor:n?.cursor,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,excludeInfraShapes:n?.excludeInfraShapes,where:n?.where,sinceRepoSeq:n?.sinceRepoSeq})}catch(i){throw c(i)}},headIter:(e,t,n)=>b(i=>this.thing.head(e,t,{...n,cursor:i}),i=>i.items,n?.cursor),headAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await C(s=>this.thing.head(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},headChanges:async(e,t,n)=>(er(n?.sinceRepoSeq),await rr(i=>this.thing.head(e,t,{...n,includeRetracted:true,cursor:i}))),get:async(e,t,n,i,o)=>{try{return await this.trpc.thing.get.query({orgName:e,repoName:t,wref:n,version:i,includeRetracted:o?.includeRetracted,dataMode:o?.dataMode})}catch(s){throw c(s)}},getWithLease:async(e,t,n,i)=>{try{return await this.trpc.thing.getWithLease.mutate({orgName:e,repoName:t,wref:n,ttlMs:i?.ttlMs})}catch(o){throw c(o)}},releaseLease:async(e,t,n,i)=>{try{await this.trpc.thing.releaseLease.mutate({orgName:e,repoName:t,wref:n,leaseId:i});}catch(o){throw c(o)}},graph:async(e,t,n,i)=>{try{return await this.trpc.thing.graph.query({orgName:e,repoName:t,wref:n,version:i?.version,depth:i?.depth,limit:i?.limit})}catch(o){throw c(o)}},getMany:async(e,t,n,i,o)=>{try{if(n.length===0)return {requested:0,items:[],missing:[]};let s=fe(o?.chunkSize,Jt,Qt),u=fe(o?.chunkConcurrency,Xt,Zt),p=async m=>await this.trpc.thing.getMany.query({orgName:e,repoName:t,wrefs:m,version:i,includeRetracted:o?.includeRetracted,dataMode:o?.dataMode});if(n.length<=s)return await p(n);let l=nr(n,s),d=[];for(let m=0;m<l.length;m+=u){let g=l.slice(m,m+u),y=await Promise.all(g.map(p));d.push(...y);}return {requested:n.length,items:d.flatMap(m=>m.items),missing:d.flatMap(m=>m.missing)}}catch(s){throw c(s)}},headVersions:async(e,t,n,i)=>{try{if(n.length===0)return {requested:0,items:[],missing:[]};let o=fe(i?.chunkSize,Jt,Qt),s=fe(i?.chunkConcurrency,Xt,Zt),u=async d=>await this.trpc.thing.headVersions.query({orgName:e,repoName:t,wrefs:d});if(n.length<=o)return await u(n);let p=nr(n,o),l=[];for(let d=0;d<p.length;d+=s){let m=p.slice(d,d+s),g=await Promise.all(m.map(u));l.push(...g);}return {requested:n.length,items:l.flatMap(d=>d.items),missing:l.flatMap(d=>d.missing)}}catch(o){throw c(o)}},history:async(e,t,n)=>{try{return await this.trpc.thing.history.query({orgName:e,repoName:t,wref:n.wref,shape:n.shape,about:n.about,includeRetracted:n.includeRetracted,resolveCollections:n.resolveCollections,match:n.match,limit:n.limit,cursor:n.cursor})}catch(i){throw c(i)}},historyIter:(e,t,n)=>b(i=>this.thing.history(e,t,{...n,cursor:i}),i=>i.versions,n.cursor),historyAll:async(e,t,n)=>{let{max:i,...o}=n;return await C(s=>this.thing.history(e,t,{...o,cursor:s}),s=>s.versions,i,o.cursor)},rename:async(e,t,n,i,o,s)=>{try{return await this.trpc.thing.rename.mutate({orgName:e,repoName:t,shapeName:n,oldName:i,newName:o,eventRequestId:s.eventRequestId})}catch(u){throw c(u)}},resolve:async(e,t,n)=>{try{return await this.trpc.thing.resolve.query({orgName:e,repoName:t,wref:n})}catch(i){throw c(i)}},about:async(e,t,n,i)=>{try{return await this.trpc.thing.about.query({orgName:e,repoName:t,wref:n,shape:i?.shape,match:i?.match,includeRetracted:i?.includeRetracted,depth:i?.depth,resolveCollections:i?.resolveCollections,role:i?.role,limit:i?.limit,cursor:i?.cursor,where:i?.where})}catch(o){throw c(o)}},aboutIter:(e,t,n,i)=>b(o=>this.thing.about(e,t,n,{...i,cursor:o}),o=>o.assertions,i?.cursor),aboutAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(u=>this.thing.about(e,t,n,{...s,cursor:u}),u=>u.assertions,o,s.cursor)},query:async(e,t,n)=>{try{return await this.trpc.thing.query.query({orgName:e,repoName:t,shape:n?.shape,about:n?.about,affirmedAbout:n?.affirmedAbout,kind:ye(n?.kind),match:n?.match,includeRetracted:n?.includeRetracted,resolveCollections:n?.resolveCollections,role:n?.role,limit:n?.limit,cursor:n?.cursor,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,excludeInfraShapes:n?.excludeInfraShapes,where:n?.where,sinceRepoSeq:n?.sinceRepoSeq})}catch(i){throw c(i)}},queryIter:(e,t,n)=>b(i=>this.thing.query(e,t,{...n,cursor:i}),i=>i.items,n?.cursor),queryAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await C(s=>this.thing.query(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},queryChanges:async(e,t,n)=>(er(n?.sinceRepoSeq),await rr(i=>this.thing.query(e,t,{...n,includeRetracted:true,cursor:i}))),search:async(e,t,n,i)=>{try{return await this.trpc.thing.search.query({orgName:e,repoName:t,query:n,shape:i?.shape,about:i?.about,affirmedAbout:i?.affirmedAbout,kind:ye(i?.kind),match:i?.match,includeRetracted:i?.includeRetracted,resolveCollections:i?.resolveCollections,limit:i?.limit,cursor:i?.cursor,componentRef:i?.componentRef,excludeComponents:i?.excludeComponents,excludeInfraShapes:i?.excludeInfraShapes,mode:i?.mode,nameMatch:i?.nameMatch})}catch(o){throw c(o)}},searchIter:(e,t,n,i)=>b(o=>this.thing.search(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),searchAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(u=>this.thing.search(e,t,n,{...s,cursor:u}),u=>u.items,o,s.cursor)},count:async(e,t,n)=>{try{return await this.trpc.thing.count.query({orgName:e,repoName:t,shape:n?.shape,about:n?.about,affirmedAbout:n?.affirmedAbout,kind:ye(n?.kind),match:n?.match,includeRetracted:n?.includeRetracted,resolveCollections:n?.resolveCollections,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,excludeInfraShapes:n?.excludeInfraShapes,where:n?.where,sinceRepoSeq:n?.sinceRepoSeq})}catch(i){throw c(i)}},refs:async(e,t,n,i)=>{try{return await this.trpc.thing.refs.query({orgName:e,repoName:t,wref:n,direction:i?.direction,fieldPath:i?.fieldPath,limit:i?.limit,cursor:i?.cursor})}catch(o){throw c(o)}},refsIter:(e,t,n,i)=>b(o=>this.thing.refs(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),refsAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(u=>this.thing.refs(e,t,n,{...s,cursor:u}),u=>u.items,o,s.cursor)}};live={thingHead:async(e,t,n,i)=>this.watchRepoQuery(e,t,n?.signal,()=>this.thing.head(e,t,{shape:n?.shape,kind:n?.kind,match:n?.match,dataMode:n?.dataMode,limit:n?.limit,cursor:n?.cursor,includeRetracted:n?.includeRetracted,where:n?.where}),i),thingHistory:async(e,t,n,i)=>this.watchRepoQuery(e,t,n.signal,()=>this.thing.history(e,t,{wref:n.wref,limit:n.limit,cursor:n.cursor,includeRetracted:n.includeRetracted}),i),subscriptionLog:async(e,t,n,i,o)=>this.watchRepoQuery(e,t,i?.signal,()=>this.action.liveFeed(e,t,n,{limit:i?.limit,cursor:i?.cursor}),o),subscribe:async(e,t,n,i)=>{let o=new AbortController,s=sr(n?.signal,o),u=0,p=(async()=>{let l=await this.trpc.live.issueTicket.mutate({orgName:e,repoName:t}),d=await this.openSse(l.ticket,s,async m=>{if(m.type!=="invalidate")return;let g=m.data;u++,await i({topic:g.topic,affectedShapes:g.affectedShapes,affectedThings:g.affectedThings,affectedTargets:g.affectedTargets,hasNewCommit:g.hasNewCommit});});return await d.ready,s.aborted?{updates:u}:(await d.closed,{updates:u})})();return {close(){o.abort();},closed:p}}};token={create:async e=>{try{return await this.trpc.token.create.mutate(e)}catch(t){throw c(t)}},list:async e=>{try{return await this.trpc.token.list.query(e?.includeInactive?{includeInactive:!0}:void 0)}catch(t){throw c(t)}},get:async e=>{try{return await this.trpc.token.get.query({name:e})}catch(t){throw c(t)}},revoke:async e=>{try{return await this.trpc.token.revoke.mutate({name:e})}catch(t){throw c(t)}}};stream={append:async e=>{try{return await this.trpc.stream.append.mutate(e)}catch(t){throw c(t)}}};credential={createSet:async(e,t,n,i)=>{try{return await this.trpc.credential.createSet.mutate({orgName:e,repoName:t,name:n,scope:i?.scope??"repo",description:i?.description})}catch(o){throw c(o)}},listSets:async(e,t)=>{try{return await this.trpc.credential.listSets.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getSet:async(e,t,n)=>{try{return await this.trpc.credential.getSet.query({orgName:e,repoName:t,name:n})}catch(i){throw c(i)}},setKey:async(e,t,n,i,o)=>{try{return await this.trpc.credential.setKey.mutate({orgName:e,repoName:t,setName:n,keyName:i,value:o})}catch(s){throw c(s)}},setKeys:async(e,t,n,i)=>{try{return await this.trpc.credential.setKeys.mutate({orgName:e,repoName:t,setName:n,secrets:i})}catch(o){throw c(o)}},unsetKey:async(e,t,n,i)=>{try{return await this.trpc.credential.unsetKey.mutate({orgName:e,repoName:t,setName:n,keyName:i})}catch(o){throw c(o)}},deleteSet:async(e,t,n)=>{try{return await this.trpc.credential.deleteSet.mutate({orgName:e,repoName:t,setName:n})}catch(i){throw c(i)}},listAuditLog:async(e,t,n,i)=>{try{return await this.trpc.credential.listAuditLog.query({orgName:e,repoName:t,setName:n,limit:i?.limit})}catch(o){throw c(o)}},revokeSet:async(e,t,n,i)=>{try{return await this.trpc.credential.revokeSet.mutate({orgName:e,repoName:t,setName:n,reason:i?.reason})}catch(o){throw c(o)}}};credentials=this.credential;constructor(e,t){let n=typeof e=="string"?t:e;En(n);let i=typeof e=="string"?e:e?.apiUrl??ze;if(this.apiUrl=i,this.fetchImpl=n?.fetch,this.accessToken=n?.accessToken??n?.auth?.getToken,this.functionLogMode=n?.functionLogs??"off",this.clientIdentity={name:n?.client?.name??f,version:n?.client?.version??He},this.clientFlags=Tn(n?.clientFlags),this.decorateResponses=n?.decorateResponses??false,typeof this.accessToken=="function"){let u=this.accessToken;this.getToken=async()=>await u();}else if(this.accessToken){let u=this.accessToken;this.getToken=async()=>u;}let o=`${i.replace(/\/$/,"")}/trpc`,s=((u,p)=>this.fetchWithAuth(u,p));Object.defineProperty(this,"trpc",{value:createTRPCProxyClient({links:[this.createCompatibilityLink(),ft({enabled:this.decorateResponses,getClient:()=>this}),splitLink({condition:u=>Nn.has(u.path),true:httpLink({url:o,fetch:s,methodOverride:"POST"}),false:httpBatchLink({url:o,fetch:s,methodOverride:"POST"})})]}),enumerable:false,writable:false,configurable:true});}withAccessToken(e){return new r({apiUrl:this.apiUrl,fetch:this.fetchImpl,accessToken:e,client:this.clientIdentity,clientFlags:this.clientFlags,decorateResponses:this.decorateResponses})}actions=this.action;async openSse(e,t,n){let i=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}/sse?ticket=${encodeURIComponent(e)}`,{headers:{accept:"text/event-stream"},signal:t});if(!i.ok)throw new h("BACKEND",`SSE request failed with status ${i.status}`,i.status);let o=i.body?.getReader();if(!o)throw new h("BACKEND","SSE response body is missing");let s=()=>{},u=new Promise(l=>{s=l;}),p=(async()=>{let l=new TextDecoder,d="";try{for(;;){let{done:m,value:g}=await o.read();if(m)break;for(d+=l.decode(g,{stream:!0}).replaceAll(`\r
3
+ `);if(y===-1)break;let O=o.slice(0,y);o=o.slice(y+1);let{pending:f,row:R}=l(O);f&&await f,d(R),R.type==="summary"||R.type==="error"?p=R:yield R;}}if(o+=i.decode(),o.length>0){let{pending:m,row:g}=l(o);m&&await m,d(g),g.type==="summary"||g.type==="error"?p=g:yield g;}n.finish(),u=!0,p&&(yield p);}finally{u||await t.cancel().catch(()=>{}),t.releaseLock();}}var x=class extends Error{code="STREAMING_SUBMISSION_OUTCOME_UNKNOWN";outcome="unknown";retryable=false;retryIdentity;cause;constructor(e,t){super(`Streaming submission outcome is unknown for ${e.submissionId}. Reconstruct the original source and copy every retryIdentity field into the next applyStreaming call.`),this.name="StreamingSubmissionOutcomeUnknownError",this.retryIdentity=e,this.cause=t;}};function le(r){return r===void 0||r===""?void 0:r}function cn(){let r=globalThis;if(r.Bun!==void 0)return true;let e=r.process?.versions?.node;if(!e)return false;let[t=0,n=0]=e.split(".").map(Number);return t>22||t===22&&n>=2}function un(r){let e=new URLSearchParams({submissionId:r.submissionId,groupSize:String(r.groupSize)});return r.message!==void 0&&e.set("message",r.message),r.committer!==void 0&&e.set("committer",r.committer),`/api/repos/${encodeURIComponent(r.orgName)}/${encodeURIComponent(r.repoName)}/streams/${encodeURIComponent(r.streamId)}/submissions?${e}`}function pn(r){let e=ue(r,false),t=false,n=()=>{if(t)return;t=true;let o=e.returnSourceOnce();o&&Promise.resolve(o).catch(()=>{});};return {stream:new ReadableStream({async pull(o){try{let s=await e.next();if(t)return;if(s.done){o.close();return}o.enqueue(qe(s.value));}catch(s){o.error(s),n();}},cancel(){n();}}),returnSourceOnce:n}}function ln(r,e){if(!r)return ()=>{};let t=()=>e.abort(r.reason);return r.aborted?t():r.addEventListener("abort",t,{once:true}),()=>r.removeEventListener("abort",t)}function dn(r){let e=r.options?.submissionId??D();return {orgName:r.orgName,repoName:r.repoName,streamId:r.options.streamId,submissionId:e,groupSize:pe(r.options.groupSize),...le(r.message)!==void 0?{message:le(r.message)}:{},...le(r.options?.committer)!==void 0?{committer:le(r.options?.committer)}:{}}}function Bt(r,e){if(!r.options.streamId)throw e.localError("VALIDATION_ERROR","Streaming submissions require a non-empty streamId.");let t=dn(r),n=new AbortController,i=()=>{},o,s=false,u=async function*(){let p=false,l=false,d;try{if(!(e.runtimeSupported??cn)())throw e.localError("VALIDATION_ERROR","Streaming submissions require Bun or Node.js 22.2 or newer.");if(i=ln(r.options.signal,n),n.signal.aborted)throw e.localError("CANCELLED","Streaming submission was aborted.");let m=await e.prepare(un(t));if(n.signal.aborted)throw e.localError("CANCELLED","Streaming submission was aborted.");d=pn(r.operations),p=!0;let g=await m.dispatch(d.stream,n.signal);if(!g.ok)throw l=!0,await m.httpError(g);for await(let y of qt(g,t))yield y;}catch(m){throw m instanceof x?m:p&&!l?new x(t,m):e.normalizeLocalError(m)}finally{n.abort(),d?.returnSourceOnce(),i(),s=true;}};return {retryIdentity:t,[Symbol.asyncIterator](){return this},next(){return s?Promise.resolve({done:true,value:void 0}):(o??=u(),o.next())},async return(p){return n.abort(),o?o.return(p):(s=true,i(),{done:true,value:p})},async throw(p){if(n.abort(p),!o)throw s=true,i(),p;return o.throw(p)}}}var mn="0.0.0-development";function q(r){return r===mn}var He="0.107.0";var Ut=1;function gn(r){return r===g?"Run: wh update --yes":r===f?"Run: npm install @warmhub/sdk-ts@latest (or your package manager's equivalent).":r===h$1?"Run: pip install --upgrade warmhub":`Deploy a released ${r} build that satisfies the backend compatibility contract.`}function Vt(r,e){if(typeof r?.minSupportedClients!="object"||r.minSupportedClients===null||!Number.isSafeInteger(r.writeContractVersion)||r.writeContractVersion<1)return {message:"The backend does not advertise valid per-client write compatibility data.",hint:"Upgrade the WarmHub backend before retrying this write."};let t=r.minSupportedClients[e.name],n=typeof t=="string"?u(t):null;if(!n)return {message:`The backend does not advertise a valid compatibility floor for ${e.name}.`,hint:"Upgrade the WarmHub backend or register this first-party client family before writing."};if(!q(e.version)){let i=u(e.version);if(!i)return {message:`${e.name} reported malformed version "${e.version}".`,hint:"Use a released WarmHub client with a SemVer package version."};if(v$1(i,n)<0)return {message:`${e.name} ${e.version} is older than the backend's minimum supported version ${n}.`,hint:gn(e.name)}}if(r.writeContractVersion<Ut)return {message:`${e.name} requires write contract ${Ut}, but the backend provides ${r.writeContractVersion}.`,hint:"Upgrade the WarmHub backend before retrying this write."}}function Fe(r,e){try{return new URL(r).origin===new URL(e).origin}catch{return false}}var hn=new Set(["GET","POST","PUT","PATCH","DELETE"]),S=class extends Error{reason;constructor(e,t){super(t),this.name="CliCallVerificationError",this.reason=e;}};async function fn(r$1,e,t){let n$1=r$1.method.toUpperCase();if(!hn.has(n$1))throw new S("unsupported-method",`Unsupported HTTP method "${r$1.method}" \u2014 component CLI dispatch only emits GET, POST, PUT, or PATCH`);let i=n$1,o$1=r$1.headers.get(n);if(!o$1)throw new S("missing-install-repo",`Missing ${n} header`);let s=B(e.CLI_SIGNING_SECRET),u=B(e.CLI_BEARER_TOKEN),p$1=B(e.CLI_API_KEY),l=B(e.CLI_BASIC_USERNAME)&&B(e.CLI_BASIC_PASSWORD);if(!s&&!u&&!p$1&&!l)throw new S("no-scheme-configured","no-scheme-configured: need at least one of CLI_SIGNING_SECRET, CLI_BEARER_TOKEN, CLI_API_KEY, or CLI_BASIC_USERNAME + CLI_BASIC_PASSWORD");if(u&&l)throw new S("no-scheme-configured","unsupported-scheme-combination: CLI_BEARER_TOKEN and CLI_BASIC_USERNAME + CLI_BASIC_PASSWORD both use the Authorization header and cannot be configured together");let d=new URL(r$1.url),m=d.pathname,g,y,O;if(q$1(i)?g={}:(g=Object.fromEntries(d.searchParams.entries()),y="",O={...g}),s){let f=r$1.headers.get(o);if(!f)throw new S("missing-signature",`Missing ${o} header`);let R=r$1.headers.get(p);if(!R)throw new S("missing-timestamp",`Missing ${p} header`);let E=Number(R);if(!Number.isFinite(E)||!Number.isInteger(E))throw new S("invalid-timestamp",`${p} must be an integer unix seconds value; got "${R}"`);y=await Ht(r$1,i,y);let w=await r({secret:e.CLI_SIGNING_SECRET,method:i,path:m,query:g,installRepo:o$1,body:y,signature:f,timestamp:E,nowUnixSeconds:t?.nowUnixSeconds??Math.floor(Date.now()/1e3),toleranceSec:t?.toleranceSec});if(!w.ok)throw new S(w.reason,`HMAC verification failed: ${w.reason}`)}if(u){let f=`Bearer ${e.CLI_BEARER_TOKEN}`,R=r$1.headers.get("authorization")??"";if(!await We(R,f))throw new S("invalid-bearer","invalid-bearer: bearer token mismatch")}if(p$1){let f=B(e.CLI_API_KEY_HEADER)?e.CLI_API_KEY_HEADER:"X-API-Key",R=r$1.headers.get(f)??"";if(!await We(R,e.CLI_API_KEY))throw new S("invalid-api-key",`invalid-api-key: mismatch on header "${f}"`)}if(l){let f=`Basic ${btoa(`${e.CLI_BASIC_USERNAME}:${e.CLI_BASIC_PASSWORD}`)}`,R=r$1.headers.get("authorization")??"";if(!await We(R,f))throw new S("invalid-basic","invalid-basic: basic auth mismatch")}return O===void 0&&(y=await Ht(r$1,i,y),O=yn(y)),{method:i,installRepo:o$1,args:O}}async function Ht(r,e,t){return q$1(e)?t!==void 0?t:r.text():""}function yn(r){let e;try{e=JSON.parse(r);}catch{throw new S("invalid-body","POST body is not valid JSON")}if(!Rn(e))throw new S("invalid-body","POST body must be a JSON object of primitive args (string / number / boolean)");return e}function B(r){return typeof r=="string"&&r.length>0}function Rn(r){if(typeof r!="object"||r===null||Array.isArray(r))return false;for(let e of Object.values(r))if(e!==void 0&&typeof e!="string"&&typeof e!="number"&&typeof e!="boolean")return false;return true}async function We(r,e){let[t,n]=await Promise.all([Ft(r),Ft(e)]),i=0;for(let o=0;o<t.length;o++)i|=t[o]^n[o];return i===0}async function Ft(r){return new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(r)))}function Ge(r){if(r.includes("/"))return r.split("/")[0]}function $t(r){if("shapeWref"in r&&typeof r.shapeWref=="string")return r.shapeWref;if(r.name)return Ge(r.name)}function $e(r){if(typeof r!="string")return;let e=r.trim();return e.length>0?e:void 0}function U(r){return m({kind:r.kind,name:r.name,about:ge(r),type:de(r),members:me(r)})}function ge(r){if("about"in r&&r.about!==void 0)return r.about;if("aboutWref"in r)return r.aboutWref}function Ke(r){return "data"in r?r.data:void 0}function de(r){return "type"in r?r.type:void 0}function me(r){return "members"in r?r.members:void 0}function z(r,e){return m({kind:r.kind,name:e})}function Wt(r){return r.data??{}}function Gt(r){if(r.operation==="retract")return T(r);if(r.operation==="reaffirm")return T({operation:"reaffirm",name:r.name,...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.kind?{kind:r.kind}:{},...r.add?{add:[...r.add]}:{},...r.remove?{remove:[...r.remove]}:{},...r.leaseId?{leaseId:r.leaseId}:{}});if(r.operation==="add"){let n=U(r);if(n==="collection")return W(r,"OperationBuilder");let i=r,o=Wt(i),s=$e(i.name);if(!s)throw new Error("OperationBuilder: add operation missing name");if(n==="assertion"){let u=ge(i);if(u===void 0)throw new Error(`OperationBuilder: assertion add '${s}' missing required 'about'`);if(typeof u!="string")throw new Error(D$1);return {operation:"add",kind:n,name:s,about:u,data:o,...i.affirmedTargets?{affirmedTargets:[...i.affirmedTargets]}:{},...i.skipExisting===true?{skipExisting:true}:{}}}return {operation:"add",kind:n,name:s,data:o,...i.skipExisting===true?{skipExisting:true}:{}}}let e=$e(r.name)??$e(r.wref);if(!e)throw new Error("OperationBuilder: revise operation missing required target ('name' or 'wref')");let t=z(r,e);if(t==="collection")return ne({...r,name:e},"OperationBuilder");if(t==="assertion")return {operation:"revise",kind:t,name:e,data:r.data??{},...r.affirmedTargets?{affirmedTargets:[...r.affirmedTargets]}:{},...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}};if(r.affirmedTargets!==void 0)throw new Error(`OperationBuilder: REVISE '${e}' has affirmedTargets but inferred kind '${t}' \u2014 affirmedTargets applies only to assertions; set kind: 'assertion'`);return {operation:"revise",kind:t,name:e,data:Wt(r),...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}}}function N(r,e){return r.operation==="add"?{operation:r.operation,kind:e,name:r.name,about:ge(r),type:de(r),members:me(r)}:{operation:r.operation,kind:e,name:r.name??r.wref,type:de(r),members:me(r)}}function Kt(r){if(r.length!==0)throw new Error(r.join("; "))}function zt(r,e,t,n){let i=[];if((e==="thing"||e==="assertion"||e==="collection"&&r==="REVISE")&&(l(t)||i.push(`${r} ${e} name must be a local path (Shape/name), got: "${t}"`)),e==="shape"&&(r==="ADD"||r==="REVISE")&&n!==void 0){let s=$(t,n,r==="REVISE"?"revise":"add");s&&i.push(s);}return i}function jt(r,e){let t=[];if(r.name&&t.push(...zt("ADD",e,r.name,Ke(r))),e==="assertion"&&ge(r)===void 0&&t.push(`ADD assertion '${r.name}' missing required 'about' \u2014 for hierarchical thing names set kind: 'thing' explicitly`),e!=="collection"&&(de(r)!==void 0||me(r)!==void 0)&&t.push(`ADD '${r.name}' has collection fields but inferred kind '${e}' \u2014 collection adds require both 'type' and 'members', or set kind: 'collection'`),e!=="assertion"&&"affirmedTargets"in r&&r.affirmedTargets!==void 0&&t.push(`ADD '${r.name}' has affirmedTargets but inferred kind '${e}' \u2014 affirmedTargets applies only to assertions; set kind: 'assertion'`),e==="collection")try{W(r,"OperationBuilder");}catch(n){t.push(n instanceof Error?n.message:String(n));}for(let n of E(N(r,e),0))t.push(n.message);Kt(t);}function Yt(r,e,t){let n=[];r!=="collection"&&t.data===void 0&&n.push(`OperationBuilder: ${r} revise requires 'data'`),r!=="assertion"&&t.affirmedTargets!==void 0&&n.push(`REVISE '${e}' has affirmedTargets but inferred kind '${r}' \u2014 affirmedTargets applies only to assertions; set kind: 'assertion'`),n.push(...zt("REVISE",r,e,t.data),...E(N({...t,name:e},r),0).map(i=>i.message)),Kt(n);}var he=class{ops=[];pendingNames=new Set;shapes;wrefToShape=new Map;submitted=false;inFlight=false;constructor(e){this.shapes=e?.shapes;}add(e){this.assertCanModify();let t={...e};delete t.operation;let n=$t(t),i=Ke(t);if(this.shapes&&n&&i!==void 0){let p=this.shapes[n];if(p){let l=R(i,p);if(!l.valid)throw new Error(`Shape validation failed for '${t.name}' (shape: ${n}): ${l.errors.join("; ")}`)}}let o={operation:"add",...t},s=U(o);(o.name||s==="collection")&&jt(o,s);let u=Object.freeze({operation:"add",...t});return this.ops.push(u),t.name&&(this.pendingNames.add(t.name),n&&this.wrefToShape.set(t.name,n)),this}revise(e){this.assertCanModify();let t={...e};delete t.operation;let n=t.name??t.wref;if(this.shapes&&n&&t.data!==void 0){let o=this.wrefToShape.get(n)??Ge(n);if(o){let s=this.shapes[o];if(s){let u=R(t.data,s);if(!u.valid)throw new Error(`Shape validation failed for revise '${n}' (shape: ${o}): ${u.errors.join("; ")}`)}}}if(n){let o=z({...t},n);Yt(o,n,{operation:"revise",...t});}let i=Object.freeze({operation:"revise",...t});return this.ops.push(i),this}retract(e){this.assertCanModify();let t=Object.freeze(typeof e=="string"?{operation:"retract",name:e}:{operation:"retract",name:e.name,...e.kind?{kind:e.kind}:{},...e.reason?{reason:e.reason}:{},...e.expectedVersion!==void 0?{expectedVersion:e.expectedVersion}:{},...e.leaseId?{leaseId:e.leaseId}:{}});return this.ops.push(t),this}reaffirm(e){this.assertCanModify();let t=Object.freeze({operation:"reaffirm",name:e.name,...e.expectedVersion!==void 0?{expectedVersion:e.expectedVersion}:{},...e.kind?{kind:e.kind}:{},...e.add?{add:Object.freeze([...e.add])}:{},...e.remove?{remove:Object.freeze([...e.remove])}:{},...e.leaseId?{leaseId:e.leaseId}:{}});return this.ops.push(t),this}get operations(){return Object.freeze([...this.ops])}get size(){return this.ops.length}has(e){return this.pendingNames.has(e)}validate(){let e=[],t=[],n=new Set,i=new Set;for(let p=0;p<this.ops.length;p+=1){let l=this.ops[p];if(l){if(l.operation==="add"){let d=U(l);!l.name&&d!=="collection"?e.push({code:"MISSING_NAME",operationIndex:p,message:`Add operation at index ${p} is missing required 'name' field`}):l.name&&(n.has(l.name)&&e.push({code:"DUPLICATE_NAME",operationIndex:p,message:`Duplicate name '${l.name}' at index ${p} (already added earlier in commit)`}),n.add(l.name));}if(l.operation==="revise"){let d=l.name??l.wref;d?i.has(d)?e.push({code:"REVISE_AFTER_RETRACT",operationIndex:p,message:`Revise at index ${p} targets '${d}' which was already retracted in this commit`}):n.has(d)||t.push({code:"REVISE_UNKNOWN_WREF",operationIndex:p,message:`Revise at index ${p} references '${d}' which was not added in this commit (assuming it exists server-side)`}):e.push({code:"MISSING_WREF",operationIndex:p,message:`Revise operation at index ${p} is missing required target ('name' or 'wref')`});}l.operation==="retract"&&(l.name?i.has(l.name)?t.push({code:"RETRACT_AFTER_RETRACT",operationIndex:p,message:`Retract at index ${p} targets '${l.name}' which was already retracted in this commit`}):(n.has(l.name)||t.push({code:"RETRACT_UNKNOWN_WREF",operationIndex:p,message:`Retract at index ${p} references '${l.name}' which was not added in this commit (assuming it exists server-side)`}),i.add(l.name)):e.push({code:"MISSING_NAME",operationIndex:p,message:`Retract operation at index ${p} is missing required 'name' field`}));}}let o=this.ops.flatMap((p,l)=>{if(p.operation==="add")return E(N(p,U(p)),l);if(p.operation==="revise"){let d=p.name??p.wref;return E(N(p,d?z(p,d):"thing"),l)}return E({operation:"retract",kind:p.kind,name:p.name},l)});for(let p of o)e.push({code:p.code,operationIndex:p.operationIndex,message:p.message});let s=this.ops.flatMap((p,l)=>{if(p.operation==="retract"||p.operation==="reaffirm")return [];if(p.operation==="add")return [{op:N(p,U(p)),operationIndex:l}];let d=p.name??p.wref;return [{op:N(p,d?z(p,d):"thing"),operationIndex:l}]}),u=F(s.map(({op:p})=>p),{checkAddAdd:false,sourceOperationIndexes:s.map(({operationIndex:p})=>p)});for(let p of u)e.push({code:p.code,operationIndex:p.operationIndex,message:p.message});return this.ops.length===0&&e.push({code:"EMPTY_COMMIT",operationIndex:-1,message:"OperationBuilder has no operations"}),{valid:e.length===0,errors:e,warnings:t}}async commit(e){if(this.assertNotSubmitted(),this.inFlight)throw new Error("OperationBuilder: stream submission already in flight");let t=this.validate();if(!t.valid){let n=t.errors.map(i=>i.message).join("; ");throw new Error(`OperationBuilder validation failed: ${n}`)}this.inFlight=true;try{let n=this.ops.map(o=>Gt(o)),i=await M(e.client,{orgName:e.orgName,repoName:e.repoName,committer:e.committer,message:e.message,chunkSize:e.chunkSize,streamId:e.streamId,submissionId:e.submissionId,returnRepoSeq:e.returnRepoSeq,retry:e.retry,operations:n});return this.submitted=!0,i}catch(n){throw n instanceof I&&(this.submitted=true),n}finally{this.inFlight=false;}}assertNotSubmitted(){if(this.submitted)throw new Error("OperationBuilder: already submitted, cannot modify")}assertCanModify(){if(this.assertNotSubmitted(),this.inFlight)throw new Error("OperationBuilder: stream submission already in flight, cannot modify")}};function Po(r){return r.replace(/@(?:v\d+|HEAD|ALL)$/i,"")}var kn={apiUrl:true,fetch:true,accessToken:true,auth:true,functionLogs:true,client:true,clientFlags:true,decorateResponses:true},cr=Object.keys(kn),vn=new Set(cr),xn=new Set(["token","apiKey","bearer"]);function En(r){if(r)for(let e of Object.keys(r)){if(vn.has(e))continue;let t=xn.has(e)?'; did you mean "accessToken"?':`. Valid options are: ${cr.join(", ")}.`;throw new TypeError(`Unknown WarmHubClient option "${e}"${t}`)}}function Tn(r){if(!r||r.length===0)return [];for(let e of r)if(!c$1(e))throw new TypeError(`Invalid client flag "${e}": expected lowercase tokens matching [a-z0-9-]+.`);return [...new Set(r)].sort()}var ze="https://api.warmhub.ai",Nn=new Set(["commit.validate","repo.shapeInstanceCounts","thing.getMany","thing.headVersions"]),Jt=500,Qt=500,Xt=1,Zt=8;function Re(r){return {...r,actionContainer:void 0,actionContainerConfig:void 0}}function _n(r){return r.map(e=>Re(e))}function ur(r,e,t){if(e===r||t.has(e))throw new h("VALIDATION_ERROR","Paginated result cursor did not advance")}function er(r){if(r===void 0)throw new h("VALIDATION_ERROR","sinceRepoSeq is required for an incremental read")}async function*pr(r,e){let t=e,n=new Set;for(;;){t&&n.add(t);let i=await r(t);if(yield i,!i.nextCursor)return;ur(t,i.nextCursor,n),t=i.nextCursor;}}async function*b(r,e,t){for await(let n of pr(r,t))yield*e(n);}async function C(r,e,t,n){if(t!==void 0&&(!Number.isFinite(t)||Math.trunc(t)!==t||t<0))throw new h("VALIDATION_ERROR","max must be a nonnegative integer");let i=[];for await(let o of pr(r,n)){let s=e(o);if(t!==void 0&&i.length+s.length>t)throw new h("VALIDATION_ERROR",`Paginated result exceeded max=${t}`);i.push(...s);}return i}function tr(r){if(r?.slugs!==void 0)throw new h("VALIDATION_ERROR","repo.explore pagination helpers do not support slugs mode")}async function rr(r){let e=[],t,n=new Set;for(;;){t&&n.add(t);let i=await r(t);if(e.push(...i.items),!i.nextCursor){if(i.repoSeq===void 0)throw new h("VALIDATION_ERROR","Incremental read completed without repoSeq");return {items:e,repoSeq:i.repoSeq}}ur(t,i.nextCursor,n),t=i.nextCursor;}}function fe(r,e,t){return Number.isFinite(r)?Math.max(1,Math.min(t,Math.trunc(r))):e}function nr(r,e){let t=[];for(let n=0;n<r.length;n+=e)t.push(r.slice(n,n+e));return t}function ye(r){return r!==void 0&&k$1.includes(r)?r:void 0}function j(r){let[e,t,n]=r;return typeof e=="string"?{orgName:e,repoName:t,name:n}:e}function Pn(r){let[e,t]=r;return typeof e=="string"?{orgName:e,repoName:t}:e}function Ln(r){let[e,t,n,i]=r;return typeof e=="string"?{orgName:e,repoName:t,subscriptionName:n,credentialSetName:i}:e}function Dn(r){let[e,t,n]=r;return typeof e=="string"?{orgName:e,repoName:t,subscriptionName:n}:e}function Mn(r){let{actionContainer:e,actionContainerConfig:t,...n}=r;return n}function qn(r){let{actionContainer:e,actionContainerConfig:t,...n}=r;return n}function be(r){return !!r&&(!!r.shape||!!r.kind||!!r.about||!!r.match||!!r.componentRef||r.excludeComponents===true||(r.where?.length??0)>0)}function Ce(r){return !!r&&(!!r.shape||!!r.about||!!r.match||!!r.componentRef||(r.where?.length??0)>0)}function lr(r){let e=r.members;return Array.isArray(e)&&e.length>0}function Bn(r){let t=r.replace(/^wh:[^/]+\/[^/]+\//,"").replace(/@(?:HEAD|ALL|v\d+)$/,"").split("/")[0]?.toLowerCase();return t==="arc"||t==="bond"||t==="pair"||t==="set"||t==="list"?t:void 0}function Un(r,e){if(be(e.query)&&!Ce(e.query))throw new h("VALIDATION_ERROR","Selector-backed collection sources require shape, about, match, componentRef, or where; kind and excludeComponents only narrow an existing selector.");if(e.sourceRepo&&!Ce(e.query))throw new h("VALIDATION_ERROR","sourceRepo requires a selector-backed collection query");if(e.sourceRepo&&lr(e))throw new h("VALIDATION_ERROR","sourceRepo cannot be combined with explicit members; use canonical wh:org/repo/... member wrefs or omit sourceRepo.");if(be(e.query)&&r!=="set")throw new h("VALIDATION_ERROR","Selector-backed collection sources are only supported for set collections")}function Lo(r){return r??"off"}function Vn(r){if(r!==void 0)switch(r){case "BAD_REQUEST":case "PARSE_ERROR":case "PAYLOAD_TOO_LARGE":case "UNPROCESSABLE_CONTENT":case "UNSUPPORTED_MEDIA_TYPE":return "VALIDATION_ERROR";case "METHOD_NOT_SUPPORTED":return "NOT_FOUND";case "UNAUTHORIZED":return "UNAUTHENTICATED";case "FORBIDDEN":return "FORBIDDEN";case "NOT_FOUND":return "NOT_FOUND";case "CONFLICT":return "CONFLICT";case "PRECONDITION_FAILED":return "PRECONDITION_FAILED";case "TOO_MANY_REQUESTS":return "RATE_LIMITED";default:return}}function Hn(r){if(r===void 0||r===408)return;if(r===405)return "NOT_FOUND";if(r===412)return "PRECONDITION_FAILED";if(r===422)return "VALIDATION_ERROR";let e=mr(r);return e!=="BACKEND"?e:r>=400&&r<500?"VALIDATION_ERROR":e}var Fn=[/\bselect\b.+?\bfrom\b/i,/\binsert\b.+?\binto\b/i,/\bupdate\b.+?\bset\b/i,/\bdelete\b.+?\bfrom\b/i,/\bparams:\s/i,/\.ts\(\d+,\d+\)/,/at\s+\S+\s+\(.*:\d+:\d+\)/,/node_modules\//,/drizzle/i];function je(r){for(let e of Fn)if(e.test(r))return "An internal error occurred. Please try again or contact support.";return r}var h=class extends Error{code;status;hint;retryAfter;errorCode;backendCode;details;constructor(e,t,n,i,o,s,u){super(t),this.name="WarmHubError",this.code=e,this.status=n,this.hint=i,this.retryAfter=o,this.errorCode=s,this.backendCode=s,this.details=u;}get kind(){return this.code}};function ir(r,e){if(typeof e!="string")return;let t=z$2(r,e);if(t)throw new h("VALIDATION_ERROR",t)}function c(r){if(r instanceof h)return r;if(r instanceof TRPCClientError){if(r.cause instanceof h)return r.cause;let e=r.data,t=e?.warmhub?.code,n=typeof e?.code=="string"?Vn(e.code):void 0,i=Hn(e?.httpStatus),o=e?.warmhub?.message??je(r.message);return new h(t??n??i??"BACKEND",o,e?.warmhub?.status??e?.httpStatus,e?.warmhub?.hint,e?.warmhub?.retryAfter??e?.retryAfter,t,e?.warmhub?.details)}if(r instanceof Error){let e=r;return r.name==="WarmHubError"&&typeof e.code=="string"?new h(e.code,je(r.message),typeof e.status=="number"?e.status:void 0,typeof e.hint=="string"?e.hint:void 0,typeof e.retryAfter=="number"?e.retryAfter:void 0,typeof e.errorCode=="string"?e.errorCode:typeof e.backendCode=="string"?e.backendCode:void 0,e.details):r.name==="AbortError"?new h("CANCELLED",r.message):r instanceof TypeError&&/fetch/i.test(r.message)?new h("NETWORK",r.message):new h("BACKEND",je(r.message))}return new h("BACKEND","Unknown SDK error")}function Wn(r){return r instanceof h}function Do(r){if(r instanceof x)return false;let e=c(r);return e.kind==="NETWORK"||e.kind==="CANCELLED"||e.kind==="BACKEND"||e.kind==="RATE_LIMITED"}var $n=new Set(["ConnectionRefused","ECONNREFUSED","ENOTFOUND","ETIMEDOUT","EAI_AGAIN"]);function Gn(r){if(r instanceof TypeError&&/fetch/i.test(r.message))return true;if(r&&typeof r=="object"){let e=r.code;if(typeof e=="string"&&$n.has(e))return true}return false}function Kn(r){return `Unable to connect to ${r}. Is the computer able to access the url?`}function Mo(r,e){if(q(r))return false;let t=u(r),n=u(e);return !t||!n?false:v$1(t,n)<0}function dr(r,e){return new h("CLIENT_INCOMPATIBLE",r,412,e)}function zn(r,e){let t=Vt(r,e);if(t)throw dr(t.message,t.hint)}var or=class r{apiUrl;fetchImpl;accessToken;clientIdentity;clientFlags;decorateResponses;functionLogMode;getToken;compatibilityCheck;overrideNoticePrinted=false;noteCompatibilityOverride(){this.overrideNoticePrinted||(this.overrideNoticePrinted=true,console.error(`warmhub: compatibility checks overridden by client flag ${b$1}; the server remains authoritative.`));}assertWriteCompatible(){return this.clientFlags.includes(b$1)?(this.noteCompatibilityOverride(),Promise.resolve()):q(this.clientIdentity.version)&&Fe(this.apiUrl,ze)?Promise.reject(dr(`Development client ${this.clientIdentity.name}/${this.clientIdentity.version} cannot write to production.`,"Install a released WarmHub client artifact before writing to api.warmhub.ai.")):q(this.clientIdentity.version)&&!Fe(this.apiUrl,ze)?Promise.resolve():this.diagnostics.assertCompatible()}createCompatibilityLink(){return ()=>({op:e,next:t})=>e.type!=="mutation"||e.path==="commit.validate"?t(e):observable(n=>{let i=false,o;return (async()=>{try{await this.assertWriteCompatible();}catch(s){if(i)return;n.error(TRPCClientError.from(s));return}i||(o=t(e).subscribe(n));})(),()=>{i=true,o?.unsubscribe();}})}auth={getClientId:async()=>{try{return await this.trpc.auth.getClientId.query()}catch(e){throw c(e)}},sync:async()=>{try{return await this.trpc.auth.sync.mutate()}catch(e){throw c(e)}},currentUser:async()=>{try{return await this.trpc.auth.currentUser.query()}catch(e){throw c(e)}},whoami:async()=>{try{return await this.trpc.auth.whoami.query()}catch(e){throw c(e)}}};homepage={featuredLists:async()=>{try{return await this.trpc.homepage.featuredLists.query()}catch(e){throw c(e)}}};access={resolve:async e=>{try{return await this.trpc.access.resolve.query(e)}catch(t){throw c(t)}}};diagnostics={ping:async()=>{let e=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}/health`);if(!e.ok)throw new h("BACKEND",`Health request failed with status ${e.status}`,e.status);return await e.json()},capabilities:async()=>{try{return await this.trpc.diagnostics.capabilities.query()}catch(e){throw c(e)}},assertCompatible:()=>{if(this.compatibilityCheck)return this.compatibilityCheck;let e=(async()=>{let t=await this.diagnostics.capabilities();zn(t,this.clientIdentity);})();return this.compatibilityCheck=e,e.catch(t=>{Wn(t)&&t.code==="CLIENT_INCOMPATIBLE"||this.compatibilityCheck===e&&(this.compatibilityCheck=void 0);}),e}};component={list:async(e,t,n)=>{try{return await this.trpc.component.list.query({orgName:e,repoName:t,limit:n?.limit,cursor:n?.cursor})}catch(i){throw c(i)}},listIter:(e,t,n)=>b(i=>this.component.list(e,t,{...n,cursor:i}),i=>i.items,n?.cursor),listAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await C(s=>this.component.list(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},search:async(e,t)=>{try{return await this.trpc.component.search.query({query:e,limit:t?.limit,cursor:t?.cursor})}catch(n){throw c(n)}},searchIter:(e,t)=>b(n=>this.component.search(e,{...t,cursor:n}),n=>n.items,t?.cursor),searchAll:async(e,t)=>{let{max:n,...i}=t??{};return await C(o=>this.component.search(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},get:async(e,t,n)=>{try{return await this.trpc.component.get.query({orgName:e,repoName:t,componentRef:n})}catch(i){throw c(i)}},history:async(e,t,n)=>{try{return await this.trpc.component.history.query({orgName:e,repoName:t,componentRef:n?.componentRef,limit:n?.limit})}catch(i){throw c(i)}},install:async(e,t,n,i)=>{try{return await this.trpc.component.install.mutate({orgName:e,repoName:t,componentRef:n,submissionId:i.submissionId})}catch(o){throw c(o)}},uninstall:async(e,t,n,i)=>{try{return await this.trpc.component.uninstall.mutate({orgName:e,repoName:t,componentRef:n,submissionId:i.submissionId})}catch(o){throw c(o)}},registry:{register:async(e,t,n)=>{try{return await this.trpc.component.registry.register.mutate({orgName:e,componentName:t,...n})}catch(i){throw c(i)}},unregister:async(e,t)=>{try{return await this.trpc.component.registry.unregister.mutate({orgName:e,componentName:t})}catch(n){throw c(n)}},list:async e=>{try{return await this.trpc.component.registry.list.query({orgName:e})}catch(t){throw c(t)}},view:async(e,t)=>{try{return await this.trpc.component.registry.view.query({orgName:e,componentName:t})}catch(n){throw c(n)}},update:async(e,t,n)=>{try{return await this.trpc.component.registry.update.mutate({orgName:e,componentName:t,...n})}catch(i){throw c(i)}},resolve:async(e,t,n)=>await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/resolve`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({installRepo:n})}),setupCall:async(e,t,n)=>(await this.assertWriteCompatible(),await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/setup-call`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(n)}))},cli:{call:async(e,t,n,i)=>(await this.assertWriteCompatible(),await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/cli/${encodeURIComponent(n)}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(i)}))}};commit={validate:async(e,t,n,i)=>{try{return await this.trpc.commit.validate.mutate({orgName:e,repoName:t,committer:i?.committer,message:i?.message,componentRef:i?.componentRef,operations:ve(n,i?.skipExisting),includeWouldBeBody:i?.includeWouldBeBody},{signal:i?.signal})}catch(o){throw c(o)}},apply:async(e,t,n,i,o)=>{try{return await M(this,{orgName:e,repoName:t,committer:o?.committer,message:n,componentRef:o?.componentRef,chunkSize:o?.chunkSize,skipExisting:o?.skipExisting,streamId:o?.streamId,submissionId:o?.submissionId,returnRepoSeq:o?.returnRepoSeq,retry:o?.retry,operations:i})}catch(s){throw s instanceof I||s instanceof v?s:c(s)}},applyStreaming:(e,t,n,i,o)=>Bt({orgName:e,repoName:t,message:n,operations:i,options:o},{prepare:async s=>await this.prepareStreamingSubmissionRequest(s),localError:(s,u)=>new h(s,u),normalizeLocalError:c}),getReceipt:async(e,t,n)=>{try{return await this.trpc.commit.getReceipt.query({orgName:e,repoName:t,eventRequestId:n})}catch(i){throw c(i)}}};org={get:async e=>{try{return await this.trpc.org.get.query({orgName:e})}catch(t){throw c(t)}},getCallerRole:async e=>{try{return await this.trpc.org.getCallerRole.query({orgName:e})}catch(t){throw c(t)}},list:async e=>{try{return {items:await this.trpc.org.list.query({includeArchived:e?.includeArchived})}}catch(t){throw c(t)}},create:async(e,t,n)=>{try{return await this.trpc.org.create.mutate({name:e,displayName:t,description:n})}catch(i){throw c(i)}},setDescription:async(e,t)=>{try{return await this.trpc.org.setDescription.mutate({orgName:e,description:t})}catch(n){throw c(n)}},setDisplayName:async(e,t)=>{try{return await this.trpc.org.setDisplayName.mutate({orgName:e,displayName:t})}catch(n){throw c(n)}},rename:async(e,t)=>{try{return await this.trpc.org.rename.mutate({orgName:e,newName:t})}catch(n){throw c(n)}},update:async e=>{try{return await this.trpc.org.update.mutate(e)}catch(t){throw c(t)}},addMember:async(e,t,n="editor")=>{try{return await this.trpc.org.addMember.mutate({orgName:e,email:t,role:n})}catch(i){throw c(i)}},removeMember:async(e,t)=>{try{await this.trpc.org.removeMember.mutate({orgName:e,email:t});}catch(n){throw c(n)}},leave:async e=>{try{await this.trpc.org.leave.mutate({orgName:e});}catch(t){throw c(t)}},changeMemberRole:async(e,t,n)=>{try{return await this.trpc.org.changeMemberRole.mutate({orgName:e,email:t,role:n})}catch(i){throw c(i)}},setMemberScopes:async(e,t,n)=>{try{await this.trpc.org.setMemberScopes.mutate({orgName:e,email:t,scopes:n});}catch(i){throw c(i)}},clearMemberScopes:async(e,t)=>{try{await this.trpc.org.clearMemberScopes.mutate({orgName:e,email:t});}catch(n){throw c(n)}},listMembers:async(e,t)=>{try{return await this.trpc.org.listMembers.query({orgName:e,pending:t?.pending})}catch(n){throw c(n)}},archive:async e=>{try{return await this.trpc.org.archive.mutate({orgName:e})}catch(t){throw c(t)}},unarchive:async e=>{try{return await this.trpc.org.unarchive.mutate({orgName:e})}catch(t){throw c(t)}}};repo={checkpoint:bt(()=>this.trpc,c),get:async(e,t)=>{try{return await this.trpc.repo.get.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getStats:async(e,t)=>{try{return await this.trpc.repo.stats.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getStatsBatch:async(e,t)=>{try{return await this.trpc.repo.statsBatch.query({orgName:e,repoNames:t})}catch(n){throw c(n)}},getConfigureStats:async(e,t)=>{try{return await this.trpc.repo.configureStats.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getShapeInstanceCounts:async(e,t)=>{try{return await this.trpc.repo.shapeInstanceCounts.query({orgName:e,repoName:t})}catch(n){throw c(n)}},list:async(e,t)=>{try{return await this.trpc.repo.list.query({orgName:e,limit:t?.limit,cursor:t?.cursor,includeArchived:t?.includeArchived,search:t?.search,sort:t?.sort})}catch(n){throw c(n)}},listIter:(e,t)=>b(n=>this.repo.list(e,{...t,cursor:n}),n=>n.items,t?.cursor),listAll:async(e,t)=>{let{max:n,...i}=t??{};return await C(o=>this.repo.list(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},search:async(e,t)=>{try{return await this.trpc.repo.search.query({query:e,limit:t?.limit,cursor:t?.cursor})}catch(n){throw c(n)}},searchIter:(e,t)=>b(n=>this.repo.search(e,{...t,cursor:n}),n=>n.items,t?.cursor),searchAll:async(e,t)=>{let{max:n,...i}=t??{};return await C(o=>this.repo.search(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},create:async(e,t,n,i,o)=>{try{return await this.trpc.repo.create.mutate({orgName:e,repoName:t,description:n,visibility:i,displayName:o})}catch(s){throw c(s)}},setDescription:async(e,t,n)=>{try{return await this.trpc.repo.setDescription.mutate({orgName:e,repoName:t,description:n})}catch(i){throw c(i)}},setDisplayName:async(e,t,n)=>{try{return await this.trpc.repo.setDisplayName.mutate({orgName:e,repoName:t,displayName:n})}catch(i){throw c(i)}},setVisibility:async(e,t,n)=>{try{return await this.trpc.repo.setVisibility.mutate({orgName:e,repoName:t,visibility:n})}catch(i){throw c(i)}},rename:async(e,t,n)=>{try{return await this.trpc.repo.rename.mutate({orgName:e,repoName:t,newName:n})}catch(i){throw c(i)}},update:async e=>{try{return await this.trpc.repo.update.mutate(e)}catch(t){throw c(t)}},archive:async(e,t)=>{try{return await this.trpc.repo.archive.mutate({orgName:e,repoName:t})}catch(n){throw c(n)}},unarchive:async(e,t)=>{try{return await this.trpc.repo.unarchive.mutate({orgName:e,repoName:t})}catch(n){throw c(n)}},delete:async(e,t)=>{try{let n=await this.trpc.repo.delete.mutate({orgName:e,repoName:t});return {graceExpiresAt:new Date(n.graceExpiresAt)}}catch(n){throw c(n)}},listPage:async(e,t)=>{try{return await this.trpc.repo.listPage.query({orgName:e,limit:t?.limit,cursor:t?.cursor,includeArchived:t?.includeArchived,search:t?.search,sort:t?.sort})}catch(n){throw c(n)}},listPageIter:(e,t)=>b(n=>this.repo.listPage(e,{...t,cursor:n}),n=>n.items,t?.cursor),listPageAll:async(e,t)=>{let{max:n,...i}=t??{};return await C(o=>this.repo.listPage(e,{...i,cursor:o}),o=>o.items,n,i.cursor)},listForCaller:async e=>{try{return await this.trpc.repo.listForCaller.query({limit:e?.limit,sort:e?.sort})}catch(t){throw c(t)}},explore:async e=>{try{return await this.trpc.repo.explore.query({search:e?.search,org:e?.org,activity:e?.activity,hasSubscriptions:e?.hasSubscriptions,minThings:e?.minThings,sort:e?.sort,limit:e?.limit,cursor:e?.cursor,slugs:e?.slugs})}catch(t){throw c(t)}},exploreIter:e=>(tr(e),b(t=>this.repo.explore({...e,cursor:t}),t=>t.items,e?.cursor)),exploreAll:async e=>{tr(e);let{max:t,...n}=e??{};return await C(i=>this.repo.explore({...n,cursor:i}),i=>i.items,t,n.cursor)},getReadme:async(e,t)=>{try{return await this.trpc.repo.getReadme.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getAgents:async(e,t)=>{try{return await this.trpc.repo.getAgents.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getLicense:async(e,t)=>{try{return await this.trpc.repo.getLicense.query({orgName:e,repoName:t})}catch(n){throw c(n)}},describe:async(e,t)=>{try{return await this.trpc.repo.describe.query({orgName:e,repoName:t})}catch(n){throw c(n)}},setReadme:async(e,t,n,i)=>{try{return ir("Content/Readme.content",n),await this.trpc.repo.setReadme.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,content:n})}catch(o){throw c(o)}},setAgents:async(e,t,n,i)=>{try{return ir("Content/Agents.content",n),await this.trpc.repo.setAgents.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,content:n})}catch(o){throw c(o)}},getLlmsTxt:async(e,t)=>{try{return await this.trpc.repo.getLlmsTxt.query({orgName:e,repoName:t})}catch(n){throw c(n)}},index:{describe:async(e,t)=>{try{return await this.trpc.repo.index.describe.query({orgName:e,repoName:t})}catch(n){throw c(n)}}}};shape={list:async(e,t,n)=>{try{return await this.trpc.shape.list.query({orgName:e,repoName:t,match:n?.match,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,includeRetracted:n?.includeRetracted})}catch(i){throw c(i)}},get:async(e,t,n,i)=>{try{return await this.trpc.shape.get.query({orgName:e,repoName:t,shapeName:n,includeRetracted:i?.includeRetracted})}catch(o){throw c(o)}},create:async(e,t,n,i,o)=>{let s=$(n,{fields:i,...o.description!==void 0?{description:o.description}:{}},"add");if(s)throw new h("VALIDATION_ERROR",s);try{return await this.trpc.shape.create.mutate({orgName:e,repoName:t,shapeName:n,fields:i,eventRequestId:o.eventRequestId,description:o.description})}catch(u){throw c(u)}},revise:async(e,t,n,i,o)=>{let s=$(n,{fields:i,...o.description!==void 0?{description:o.description}:{}},"revise");if(s)throw new h("VALIDATION_ERROR",s);try{return await this.trpc.shape.revise.mutate({orgName:e,repoName:t,shapeName:n,newFields:i,eventRequestId:o.eventRequestId,description:o.description})}catch(u){throw c(u)}},remove:async(e,t,n,i)=>{try{return await this.trpc.shape.remove.mutate({orgName:e,repoName:t,shapeName:n,eventRequestId:i.eventRequestId})}catch(o){throw c(o)}},rename:async(e,t,n,i,o)=>{try{return await this.trpc.shape.rename.mutate({orgName:e,repoName:t,oldName:n,newName:i,eventRequestId:o.eventRequestId})}catch(s){throw c(s)}},history:async(e,t,n,i={})=>{try{return await this.trpc.shape.history.query({orgName:e,repoName:t,name:n,includeRetracted:i.includeRetracted,limit:i.limit,cursor:i.cursor})}catch(o){throw c(o)}},historyIter:(e,t,n,i={})=>b(o=>this.shape.history(e,t,n,{...i,cursor:o}),o=>o.versions,i.cursor),historyAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(u=>this.shape.history(e,t,n,{...s,cursor:u}),u=>u.versions,o,s.cursor)}};subscription={create:async e=>{try{let t=await this.trpc.subscription.create.mutate(Mn(e));return Re(t)}catch(t){throw c(t)}},get:async(...e)=>{try{let t=await this.trpc.subscription.get.query(j(e));return Re(t)}catch(t){throw c(t)}},reveal:async(...e)=>{try{return await this.trpc.subscription.reveal.query(j(e))}catch(t){throw c(t)}},list:async(...e)=>{try{let t=await this.trpc.subscription.list.query(Pn(e));return _n(t)}catch(t){throw c(t)}},update:async e=>{try{let t=await this.trpc.subscription.update.mutate(qn(e));return Re(t)}catch(t){throw c(t)}},pause:async(...e)=>{try{return await this.trpc.subscription.pause.mutate(j(e))}catch(t){throw c(t)}},resume:async(...e)=>{try{return await this.trpc.subscription.resume.mutate(j(e))}catch(t){throw c(t)}},remove:async(...e)=>{try{return await this.trpc.subscription.remove.mutate(j(e))}catch(t){throw c(t)}},bindCredentials:async(...e)=>{try{return await this.trpc.subscription.bindCredentials.mutate(Ln(e))}catch(t){throw c(t)}},unbindCredentials:async(...e)=>{try{return await this.trpc.subscription.unbindCredentials.mutate(Dn(e))}catch(t){throw c(t)}}};action={acquireLease:async(e,t,n,i,o,s)=>{try{return await this.trpc.action.acquireLease.mutate({orgName:e,repoName:t,subscriptionName:n,holderId:i,holderType:o,graceMs:s?.graceMs,ttlMs:s?.ttlMs})}catch(u){throw c(u)}},heartbeatLease:async(e,t,n,i,o)=>{try{return await this.trpc.action.heartbeatLease.mutate({orgName:e,repoName:t,subscriptionName:n,holderId:i,ttlMs:o})}catch(s){throw c(s)}},releaseLease:async(e,t,n,i)=>{try{return await this.trpc.action.releaseLease.mutate({orgName:e,repoName:t,subscriptionName:n,holderId:i})}catch(o){throw c(o)}},claimDelivery:async(e,t,n,i)=>{let o=typeof n=="string"?{runId:n}:n;try{return await this.trpc.action.claimDelivery.mutate({orgName:e,repoName:t,...o,holderId:i})}catch(s){throw c(s)}},completeDelivery:async(e,t,n,i)=>{let o=typeof n=="string"?{runId:n}:n;try{return await this.trpc.action.completeDelivery.mutate({orgName:e,repoName:t,...o,holderId:i})}catch(s){throw c(s)}},liveFeed:async(e,t,n,i)=>{try{return await this.trpc.action.liveFeed.query({orgName:e,repoName:t,subscriptionName:n,limit:i?.limit,cursor:i?.cursor})}catch(o){throw c(o)}},liveFeedIter:(e,t,n,i)=>b(o=>this.action.liveFeed(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),liveFeedAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(u=>this.action.liveFeed(e,t,n,{...s,cursor:u}),u=>u.items,o,s.cursor)},listRuns:async(e,t,n)=>{try{return await this.trpc.action.listRuns.query({orgName:e,repoName:t,runId:n?.runId,subscriptionName:n?.subscriptionName,status:n?.status,outcome:n?.outcome,since:n?.since,cursor:n?.cursor,limit:n?.limit})}catch(i){throw c(i)}},listRunsIter:(e,t,n)=>b(i=>this.action.listRuns(e,t,{...n,since:i===void 0?n?.since:void 0,cursor:i}),i=>i.items,n?.cursor),listRunsAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await C(s=>this.action.listRuns(e,t,{...o,since:s===void 0?o.since:void 0,cursor:s}),s=>s.items,i,o.cursor)},latestRuns:async(e,t)=>{try{return await this.trpc.action.latestRuns.query({orgName:e,repoName:t})}catch(n){throw c(n)}},runStats:async(e,t,n)=>{try{return await this.trpc.action.runStats.query({orgName:e,repoName:t,subscriptionName:n?.subscriptionName,since:n?.since})}catch(i){throw c(i)}},getRunAttempts:async(e,t,n)=>{try{return await this.trpc.action.getRunAttempts.query({orgName:e,repoName:t,runId:n})}catch(i){throw c(i)}},listNotifications:async(e,t,n)=>{try{return await this.trpc.action.listNotifications.query({orgName:e,repoName:t,since:n?.since,limit:n?.limit})}catch(i){throw c(i)}}};collection={create:async(e,t,n)=>{try{return Un(n.type,n),await this.trpc.collection.create.mutate({orgName:e,repoName:t,eventRequestId:n.eventRequestId,type:n.type,name:n.name,members:n.members,from:n.from,add:n.add,remove:n.remove,replaceMembers:n.replaceMembers,query:n.query,sourceOrgName:n.sourceRepo?.orgName,sourceRepoName:n.sourceRepo?.repoName,skipExisting:n.skipExisting,message:n.message,committer:n.committer})}catch(i){throw c(i)}},members:async(e,t,n,i)=>{try{return await this.trpc.collection.members.query({orgName:e,repoName:t,wref:n,version:i?.version,limit:i?.limit,cursor:i?.cursor})}catch(o){throw c(o)}},membersIter:(e,t,n,i)=>{let o=i?.version;return b(async s=>{let u=await this.collection.members(e,t,n,{...i,version:o,cursor:s});return o??=u.version,u},s=>s.items,i?.cursor)},membersAll:async(e,t,n,i)=>{let{max:o,...s}=i??{},u=s.version;return await C(async p=>{let l=await this.collection.members(e,t,n,{...s,version:u,cursor:p});return u??=l.version,l},p=>p.items,o,s.cursor)},contains:async(e,t,n,i,o)=>{try{return await this.trpc.collection.contains.query({orgName:e,repoName:t,wref:n,version:o?.version,members:i,position:o?.position})}catch(s){throw c(s)}},diff:async(e,t,n,i,o)=>{try{return await this.trpc.collection.diff.query({orgName:e,repoName:t,leftWref:n,rightWref:i,leftVersion:o?.leftVersion,rightVersion:o?.rightVersion,mode:o?.mode})}catch(s){throw c(s)}},revise:async(e,t,n,i)=>{try{let o=Bn(n);if(be(i.query)&&!Ce(i.query))throw new h("VALIDATION_ERROR","Selector-backed collection sources require shape, about, match, componentRef, or where; kind and excludeComponents only narrow an existing selector.");if(i.sourceRepo&&!Ce(i.query))throw new h("VALIDATION_ERROR","sourceRepo requires a selector-backed collection query");if(i.sourceRepo&&lr(i))throw new h("VALIDATION_ERROR","sourceRepo cannot be combined with explicit members; use canonical wh:org/repo/... member wrefs or omit sourceRepo.");if(be(i.query)&&o&&o!=="set")throw new h("VALIDATION_ERROR","Selector-backed revise requires a Set/<name> target wref");return await this.trpc.collection.revise.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,wref:n,members:i.members,add:i.add,remove:i.remove,query:i.query,sourceOrgName:i.sourceRepo?.orgName,sourceRepoName:i.sourceRepo?.repoName,message:i.message,committer:i.committer})}catch(o){throw c(o)}},stats:async(e,t,n,i)=>{try{return await this.trpc.collection.stats.query({orgName:e,repoName:t,wref:n,version:i?.version})}catch(o){throw c(o)}}};view={evaluate:async(e,t,n,i)=>{try{return await this.trpc.view.evaluate.query({orgName:e,repoName:t,wref:n,limit:i?.limit,cursor:i?.cursor})}catch(o){throw c(o)}},evaluateIter:(e,t,n,i)=>b(o=>this.view.evaluate(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),evaluateAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(u=>this.view.evaluate(e,t,n,{...s,cursor:u}),u=>u.items,o,s.cursor)}};grant=yt(()=>this.trpc,c);thing={head:async(e,t,n)=>{try{return await this.trpc.thing.head.query({orgName:e,repoName:t,shape:n?.shape,kind:ye(n?.kind),match:n?.match,dataMode:n?.dataMode,includeRetracted:n?.includeRetracted,limit:n?.limit,cursor:n?.cursor,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,excludeInfraShapes:n?.excludeInfraShapes,where:n?.where,sinceRepoSeq:n?.sinceRepoSeq})}catch(i){throw c(i)}},headIter:(e,t,n)=>b(i=>this.thing.head(e,t,{...n,cursor:i}),i=>i.items,n?.cursor),headAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await C(s=>this.thing.head(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},headChanges:async(e,t,n)=>(er(n?.sinceRepoSeq),await rr(i=>this.thing.head(e,t,{...n,includeRetracted:true,cursor:i}))),get:async(e,t,n,i,o)=>{try{return await this.trpc.thing.get.query({orgName:e,repoName:t,wref:n,version:i,includeRetracted:o?.includeRetracted,dataMode:o?.dataMode})}catch(s){throw c(s)}},getWithLease:async(e,t,n,i)=>{try{return await this.trpc.thing.getWithLease.mutate({orgName:e,repoName:t,wref:n,ttlMs:i?.ttlMs})}catch(o){throw c(o)}},releaseLease:async(e,t,n,i)=>{try{await this.trpc.thing.releaseLease.mutate({orgName:e,repoName:t,wref:n,leaseId:i});}catch(o){throw c(o)}},graph:async(e,t,n,i)=>{try{return await this.trpc.thing.graph.query({orgName:e,repoName:t,wref:n,version:i?.version,depth:i?.depth,limit:i?.limit})}catch(o){throw c(o)}},getMany:async(e,t,n,i,o)=>{try{if(n.length===0)return {requested:0,items:[],missing:[]};let s=fe(o?.chunkSize,Jt,Qt),u=fe(o?.chunkConcurrency,Xt,Zt),p=async m=>await this.trpc.thing.getMany.query({orgName:e,repoName:t,wrefs:m,version:i,includeRetracted:o?.includeRetracted,dataMode:o?.dataMode});if(n.length<=s)return await p(n);let l=nr(n,s),d=[];for(let m=0;m<l.length;m+=u){let g=l.slice(m,m+u),y=await Promise.all(g.map(p));d.push(...y);}return {requested:n.length,items:d.flatMap(m=>m.items),missing:d.flatMap(m=>m.missing)}}catch(s){throw c(s)}},headVersions:async(e,t,n,i)=>{try{if(n.length===0)return {requested:0,items:[],missing:[]};let o=fe(i?.chunkSize,Jt,Qt),s=fe(i?.chunkConcurrency,Xt,Zt),u=async d=>await this.trpc.thing.headVersions.query({orgName:e,repoName:t,wrefs:d});if(n.length<=o)return await u(n);let p=nr(n,o),l=[];for(let d=0;d<p.length;d+=s){let m=p.slice(d,d+s),g=await Promise.all(m.map(u));l.push(...g);}return {requested:n.length,items:l.flatMap(d=>d.items),missing:l.flatMap(d=>d.missing)}}catch(o){throw c(o)}},history:async(e,t,n)=>{try{return await this.trpc.thing.history.query({orgName:e,repoName:t,wref:n.wref,shape:n.shape,about:n.about,includeRetracted:n.includeRetracted,resolveCollections:n.resolveCollections,match:n.match,limit:n.limit,cursor:n.cursor})}catch(i){throw c(i)}},historyIter:(e,t,n)=>b(i=>this.thing.history(e,t,{...n,cursor:i}),i=>i.versions,n.cursor),historyAll:async(e,t,n)=>{let{max:i,...o}=n;return await C(s=>this.thing.history(e,t,{...o,cursor:s}),s=>s.versions,i,o.cursor)},rename:async(e,t,n,i,o,s)=>{try{return await this.trpc.thing.rename.mutate({orgName:e,repoName:t,shapeName:n,oldName:i,newName:o,eventRequestId:s.eventRequestId})}catch(u){throw c(u)}},resolve:async(e,t,n)=>{try{return await this.trpc.thing.resolve.query({orgName:e,repoName:t,wref:n})}catch(i){throw c(i)}},about:async(e,t,n,i)=>{try{return await this.trpc.thing.about.query({orgName:e,repoName:t,wref:n,shape:i?.shape,match:i?.match,includeRetracted:i?.includeRetracted,depth:i?.depth,resolveCollections:i?.resolveCollections,role:i?.role,limit:i?.limit,cursor:i?.cursor,where:i?.where})}catch(o){throw c(o)}},aboutIter:(e,t,n,i)=>b(o=>this.thing.about(e,t,n,{...i,cursor:o}),o=>o.assertions,i?.cursor),aboutAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(u=>this.thing.about(e,t,n,{...s,cursor:u}),u=>u.assertions,o,s.cursor)},query:async(e,t,n)=>{try{return await this.trpc.thing.query.query({orgName:e,repoName:t,shape:n?.shape,about:n?.about,affirmedAbout:n?.affirmedAbout,kind:ye(n?.kind),match:n?.match,includeRetracted:n?.includeRetracted,resolveCollections:n?.resolveCollections,role:n?.role,limit:n?.limit,cursor:n?.cursor,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,excludeInfraShapes:n?.excludeInfraShapes,where:n?.where,sinceRepoSeq:n?.sinceRepoSeq})}catch(i){throw c(i)}},queryIter:(e,t,n)=>b(i=>this.thing.query(e,t,{...n,cursor:i}),i=>i.items,n?.cursor),queryAll:async(e,t,n)=>{let{max:i,...o}=n??{};return await C(s=>this.thing.query(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},queryChanges:async(e,t,n)=>(er(n?.sinceRepoSeq),await rr(i=>this.thing.query(e,t,{...n,includeRetracted:true,cursor:i}))),search:async(e,t,n,i)=>{try{return await this.trpc.thing.search.query({orgName:e,repoName:t,query:n,shape:i?.shape,about:i?.about,affirmedAbout:i?.affirmedAbout,kind:ye(i?.kind),match:i?.match,includeRetracted:i?.includeRetracted,resolveCollections:i?.resolveCollections,limit:i?.limit,cursor:i?.cursor,componentRef:i?.componentRef,excludeComponents:i?.excludeComponents,excludeInfraShapes:i?.excludeInfraShapes,mode:i?.mode,nameMatch:i?.nameMatch})}catch(o){throw c(o)}},searchIter:(e,t,n,i)=>b(o=>this.thing.search(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),searchAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(u=>this.thing.search(e,t,n,{...s,cursor:u}),u=>u.items,o,s.cursor)},count:async(e,t,n)=>{try{return await this.trpc.thing.count.query({orgName:e,repoName:t,shape:n?.shape,about:n?.about,affirmedAbout:n?.affirmedAbout,kind:ye(n?.kind),match:n?.match,includeRetracted:n?.includeRetracted,resolveCollections:n?.resolveCollections,componentRef:n?.componentRef,excludeComponents:n?.excludeComponents,excludeInfraShapes:n?.excludeInfraShapes,where:n?.where,sinceRepoSeq:n?.sinceRepoSeq})}catch(i){throw c(i)}},refs:async(e,t,n,i)=>{try{return await this.trpc.thing.refs.query({orgName:e,repoName:t,wref:n,direction:i?.direction,fieldPath:i?.fieldPath,limit:i?.limit,cursor:i?.cursor})}catch(o){throw c(o)}},refsIter:(e,t,n,i)=>b(o=>this.thing.refs(e,t,n,{...i,cursor:o}),o=>o.items,i?.cursor),refsAll:async(e,t,n,i)=>{let{max:o,...s}=i??{};return await C(u=>this.thing.refs(e,t,n,{...s,cursor:u}),u=>u.items,o,s.cursor)}};live={thingHead:async(e,t,n,i)=>this.watchRepoQuery(e,t,n?.signal,()=>this.thing.head(e,t,{shape:n?.shape,kind:n?.kind,match:n?.match,dataMode:n?.dataMode,limit:n?.limit,cursor:n?.cursor,includeRetracted:n?.includeRetracted,where:n?.where}),i),thingHistory:async(e,t,n,i)=>this.watchRepoQuery(e,t,n.signal,()=>this.thing.history(e,t,{wref:n.wref,limit:n.limit,cursor:n.cursor,includeRetracted:n.includeRetracted}),i),subscriptionLog:async(e,t,n,i,o)=>this.watchRepoQuery(e,t,i?.signal,()=>this.action.liveFeed(e,t,n,{limit:i?.limit,cursor:i?.cursor}),o),subscribe:async(e,t,n,i)=>{let o=new AbortController,s=sr(n?.signal,o),u=0,p=(async()=>{let l=await this.trpc.live.issueTicket.mutate({orgName:e,repoName:t}),d=await this.openSse(l.ticket,s,async m=>{if(m.type!=="invalidate")return;let g=m.data;u++,await i({topic:g.topic,affectedShapes:g.affectedShapes,affectedThings:g.affectedThings,affectedTargets:g.affectedTargets,hasNewCommit:g.hasNewCommit});});return await d.ready,s.aborted?{updates:u}:(await d.closed,{updates:u})})();return {close(){o.abort();},closed:p}}};token={create:async e=>{try{return await this.trpc.token.create.mutate(e)}catch(t){throw c(t)}},list:async e=>{try{return await this.trpc.token.list.query(e?.includeInactive?{includeInactive:!0}:void 0)}catch(t){throw c(t)}},get:async e=>{try{return await this.trpc.token.get.query({name:e})}catch(t){throw c(t)}},revoke:async e=>{try{return await this.trpc.token.revoke.mutate({name:e})}catch(t){throw c(t)}}};stream={append:async e=>{try{return await this.trpc.stream.append.mutate(e)}catch(t){throw c(t)}}};credential={createSet:async(e,t,n,i)=>{try{return await this.trpc.credential.createSet.mutate({orgName:e,repoName:t,name:n,scope:i?.scope??"repo",description:i?.description})}catch(o){throw c(o)}},listSets:async(e,t)=>{try{return await this.trpc.credential.listSets.query({orgName:e,repoName:t})}catch(n){throw c(n)}},getSet:async(e,t,n)=>{try{return await this.trpc.credential.getSet.query({orgName:e,repoName:t,name:n})}catch(i){throw c(i)}},setKey:async(e,t,n,i,o)=>{try{return await this.trpc.credential.setKey.mutate({orgName:e,repoName:t,setName:n,keyName:i,value:o})}catch(s){throw c(s)}},setKeys:async(e,t,n,i)=>{try{return await this.trpc.credential.setKeys.mutate({orgName:e,repoName:t,setName:n,secrets:i})}catch(o){throw c(o)}},unsetKey:async(e,t,n,i)=>{try{return await this.trpc.credential.unsetKey.mutate({orgName:e,repoName:t,setName:n,keyName:i})}catch(o){throw c(o)}},deleteSet:async(e,t,n)=>{try{return await this.trpc.credential.deleteSet.mutate({orgName:e,repoName:t,setName:n})}catch(i){throw c(i)}},listAuditLog:async(e,t,n,i)=>{try{return await this.trpc.credential.listAuditLog.query({orgName:e,repoName:t,setName:n,limit:i?.limit})}catch(o){throw c(o)}},revokeSet:async(e,t,n,i)=>{try{return await this.trpc.credential.revokeSet.mutate({orgName:e,repoName:t,setName:n,reason:i?.reason})}catch(o){throw c(o)}}};credentials=this.credential;constructor(e,t){let n=typeof e=="string"?t:e;En(n);let i=typeof e=="string"?e:e?.apiUrl??ze;if(this.apiUrl=i,this.fetchImpl=n?.fetch,this.accessToken=n?.accessToken??n?.auth?.getToken,this.functionLogMode=n?.functionLogs??"off",this.clientIdentity={name:n?.client?.name??f,version:n?.client?.version??He},this.clientFlags=Tn(n?.clientFlags),this.decorateResponses=n?.decorateResponses??false,typeof this.accessToken=="function"){let u=this.accessToken;this.getToken=async()=>await u();}else if(this.accessToken){let u=this.accessToken;this.getToken=async()=>u;}let o=`${i.replace(/\/$/,"")}/trpc`,s=((u,p)=>this.fetchWithAuth(u,p));Object.defineProperty(this,"trpc",{value:createTRPCProxyClient({links:[this.createCompatibilityLink(),ft({enabled:this.decorateResponses,getClient:()=>this}),splitLink({condition:u=>Nn.has(u.path),true:httpLink({url:o,fetch:s,methodOverride:"POST"}),false:httpBatchLink({url:o,fetch:s,methodOverride:"POST"})})]}),enumerable:false,writable:false,configurable:true});}withAccessToken(e){return new r({apiUrl:this.apiUrl,fetch:this.fetchImpl,accessToken:e,client:this.clientIdentity,clientFlags:this.clientFlags,decorateResponses:this.decorateResponses})}actions=this.action;async openSse(e,t,n){let i=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}/sse?ticket=${encodeURIComponent(e)}`,{headers:{accept:"text/event-stream"},signal:t});if(!i.ok)throw new h("BACKEND",`SSE request failed with status ${i.status}`,i.status);let o=i.body?.getReader();if(!o)throw new h("BACKEND","SSE response body is missing");let s=()=>{},u=new Promise(l=>{s=l;}),p=(async()=>{let l=new TextDecoder,d="";try{for(;;){let{done:m,value:g}=await o.read();if(m)break;for(d+=l.decode(g,{stream:!0}).replaceAll(`\r
4
4
  `,`
5
5
  `);;){let y=d.indexOf(`
6
6
 
7
7
  `);if(y===-1)break;let O=d.slice(0,y);d=d.slice(y+2);let f=jn(O);if(f){if(f.type==="ready"){s();continue}await n(f);}}}}catch(m){if(Yn(m)||t.aborted)return;throw m}finally{s(),o.releaseLock();}})();return {ready:u,closed:p}}applyClientHeader(e$1){e$1.has(e)||e$1.set(e,i(this.clientIdentity.name,this.clientIdentity.version)),this.clientFlags.length>0&&!e$1.has(a)&&e$1.set(a,d(this.clientFlags));}async fetchWithAuth(e,t){let n=this.fetchImpl??globalThis.fetch,i=new Headers(t?.headers),o=await Ye(this.accessToken);o&&i.set("authorization",`Bearer ${o}`),this.applyClientHeader(i);let s=async p=>{try{return await n(e,p)}catch(l){throw Gn(l)?new h("NETWORK",Kn(this.apiUrl)):l}},u=await s({...t,headers:i});if(u.status===401&&typeof this.accessToken=="function"){let p=await Ye(this.accessToken);if(p&&p!==o){let l=new Headers(t?.headers);return l.set("authorization",`Bearer ${p}`),this.applyClientHeader(l),s({...t,headers:l})}}return u}async requestResponse(e,t){let n=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}${e}`,t);if(!n.ok)throw await this.httpResponseError(n);return n}async prepareStreamingSubmissionRequest(e){let t=this.fetchImpl??globalThis.fetch,n=new Headers({accept:"application/x-ndjson","content-type":"application/x-ndjson"}),i=await Ye(this.accessToken);i&&n.set("authorization",`Bearer ${i}`),this.applyClientHeader(n);let o=`${this.apiUrl.replace(/\/$/,"")}${e}`;return {dispatch:async(s,u)=>await t(o,{method:"POST",headers:n,body:s,signal:u,duplex:"half"}),httpError:async s=>await this.httpResponseError(s)}}async httpResponseError(e){let t=`Request failed with status ${e.status}`,n=mr(e.status),i,o,s;try{let u=await e.json();typeof u.error?.message=="string"&&(t=u.error.message),typeof u.error?.code=="string"&&(n=u.error.code,i=u.error.code),typeof u.error?.hint=="string"&&(o=u.error.hint),typeof u.error?.retryAfter=="number"&&(s=u.error.retryAfter);}catch{}return new h(n,t,e.status,o,s,i)}async requestJson(e,t){return await(await this.requestResponse(e,t)).json()}async watchRepoQuery(e,t,n,i,o){let s=new AbortController,u=sr(n,s),p=0,l=(async()=>{let d=async()=>{let y=await i();p+=1,await o(y);},m=await this.trpc.live.issueTicket.mutate({orgName:e,repoName:t}),g=await this.openSse(m.ticket,u,async y=>{y.type==="invalidate"&&await d();});return await g.ready,u.aborted?{updates:p}:(await d(),await g.closed,{updates:p})})();return {close(){s.abort();},closed:l}}};function mr(r){switch(r){case 400:return "VALIDATION_ERROR";case 401:return "UNAUTHENTICATED";case 403:return "FORBIDDEN";case 404:return "NOT_FOUND";case 409:return "CONFLICT";case 429:return "RATE_LIMITED";default:return "BACKEND"}}async function Ye(r){if(r)return typeof r=="string"?r:r()}function sr(r,e){return r?r.aborted?(e.abort(),e.signal):(r.addEventListener("abort",()=>e.abort(),{once:true}),e.signal):e.signal}function jn(r){let e="message",t=[];for(let i of r.split(`
8
8
  `))if(!(!i||i.startsWith(":"))){if(i.startsWith("event:")){e=i.slice(6).trim();continue}i.startsWith("data:")&&t.push(i.slice(5).trim());}if(t.length===0)return null;let n=t.join(`
9
- `);return {type:e,data:JSON.parse(n)}}function Yn(r){return r instanceof Error&&r.name==="AbortError"}export{je as A,h as B,c as C,Wn as D,Do as E,Gn as F,Kn as G,Mo as H,or as I,Rr as a,br as b,Cr as c,ut as d,Sr as e,ie as f,_r as g,L as h,D as i,Mr as j,se as k,ae as l,I as m,v as n,Ne as o,wt as p,G as q,M as r,x as s,He as t,S as u,fn as v,he as w,Po as x,ze as y,Lo as z};//# sourceMappingURL=chunk-6ZYCTTJL.js.map
10
- //# sourceMappingURL=chunk-6ZYCTTJL.js.map
9
+ `);return {type:e,data:JSON.parse(n)}}function Yn(r){return r instanceof Error&&r.name==="AbortError"}export{je as A,h as B,c as C,Wn as D,Do as E,Gn as F,Kn as G,Mo as H,or as I,Rr as a,br as b,Cr as c,ut as d,Sr as e,ie as f,_r as g,L as h,D as i,Mr as j,se as k,ae as l,I as m,v as n,Ne as o,wt as p,G as q,M as r,x as s,He as t,S as u,fn as v,he as w,Po as x,ze as y,Lo as z};//# sourceMappingURL=chunk-YMVHXOMD.js.map
10
+ //# sourceMappingURL=chunk-YMVHXOMD.js.map