@warmhub/sdk-ts 0.134.0 → 0.136.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.
- package/CHANGELOG.md +8 -0
- package/changelog.json +10 -0
- package/dist/checkpoint.js +1 -1
- package/dist/chunk-7T6CND6V.js +10 -0
- package/dist/chunk-7T6CND6V.js.map +1 -0
- package/dist/{chunk-LUVEYT45.js → chunk-SRE4N5LD.js} +15 -15
- package/dist/chunk-SRE4N5LD.js.map +1 -0
- package/dist/index.d.ts +189 -1
- package/dist/index.js +1 -1
- package/dist/react.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-GUV5WOJK.js +0 -10
- package/dist/chunk-GUV5WOJK.js.map +0 -1
- package/dist/chunk-LUVEYT45.js.map +0 -1
package/dist/chunk-GUV5WOJK.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import {r,_ as _$1,K,W as W$1,X as X$1,Z as Z$1,J as J$1,v,y as y$1,w as w$1,x as x$1,z as z$2,ba,I,b,C as C$1,D as D$1,i,n,m,l,p,h,k,G,c,Y as Y$1,U as U$1,u,d,H as H$1,g,aa,$ as $$1,s,j as j$1,t,V as V$1,o,a as a$1}from'./chunk-LUVEYT45.js';import {TRPCClientError,createTRPCProxyClient,splitLink,httpBatchLink,httpLink}from'@trpc/client';import {observable}from'@trpc/server/observable';import {z as z$1}from'zod';function It(r,e){let{childContext:t,onStringValue:n,onObjectKey:i}=e,o=[{value:r,context:e.rootContext}];for(;o.length>0;){let{value:s,context:c$1}=o.pop();if(typeof s=="string"){n(s,c$1);continue}if(Array.isArray(s)){for(let d=s.length-1;d>=0;d--)o.push({value:s[d],context:t(c$1,d)});continue}if(!c(s))continue;let u=Object.entries(s).map(([d,l])=>[d,t(c$1,d),l]);if(i)for(let[d,l]of u)i(d,l);for(let d=u.length-1;d>=0;d--){let l=u[d];l&&o.push({value:l[2],context:l[1]});}}}var Mr=new Set(["arc","bond","pair","set","list"]);function z(r,e){let t=At(r,e,"add");return {operation:"add",kind:"collection",name:t.name,type:t.type,members:t.members,...r.skipExisting===true?{skipExisting:true}:{}}}function me(r,e){let t=At(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 At(r,e,t){let n=I({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=Ur(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=Vr(r.name);if(!o)throw new Error(`${e}: collection ${t} name must be a non-empty string`);return Br(r,e,t),{name:o,type:i,members:r.members}}function Br(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 Ur(r){if(typeof r!="string")return;let e=r.trim();if(Mr.has(e))return e}function Vr(r){if(typeof r=="string"&&!(r.length===0||r.trim()!==r))return r}var Me="thing add operation does not accept top-level 'about' \u2014 put the target in data.about, or use kind: 'assertion' for the deprecated envelope form";function D(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=u({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 me(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=u(r);if(e==="thing"&&"about"in r&&r.about!==void 0)throw new Error(Me);let 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 z({...r,skipExisting:t},"commit.apply");if(!r.name)throw new Error("add operation requires a name");if(e==="assertion"){let n="about"in r&&r.about!==void 0?r.about:d(r.data);if(n===void 0)throw new Error("assertion add operation requires 'about', on the envelope or as data.about");if(typeof n!="string")throw new Error(H$1);if(r.data===void 0)throw new Error("assertion add operation requires 'data'");return {operation:"add",kind:"assertion",name:r.name,about:n,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 Hr=1e4,Fr=4*1024*1024,Be=class extends Error{code="VALIDATION_ERROR";status=400;constructor(e){super(e),this.name="WarmHubError";}};function Ue(r,e){return r.map((t,n)=>{let i;try{i=D(t);}catch(o){let s=o instanceof Error?o.message:String(o);throw new Be(`Invalid operation at index ${n}: ${s}`)}return e===true&&i.operation==="add"?{...i,skipExisting:true}:i})}function Wr(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:Ue(t,n?.skipExisting),...n?.includeWouldBeBody!==void 0?{includeWouldBeBody:n.includeWouldBeBody}:{}}}function vt(r){return JSON.stringify(r)}function $r(r){return new TextEncoder().encode(vt(r)).byteLength}function ge(r){let e=new Set;return It(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=a$1(t);i&&e.add(i.durableId);}}),e}function zr(r){let e={};for(let t of r)e[t.durableId]=t.canonicalWref;return e}function Ve(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function jr(r){if(!Ve(r))return;let e=r.decorations;return Ve(e)?e:void 0}function Jr(r){let e=r instanceof Error?r:new Error(String(r));return Object.assign(e,{decorationFailure:true})}function kt(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,c=()=>{!i&&o&&!s&&n.complete();},u=t(e).subscribe({next:d=>{let l=d.result?.data;if(!Ve(l)){n.next(d);return}let m=ge(l);if(m.size===0){n.next(d);return}s=true,r.getClient().thing.headVersions(void 0,void 0,[...m]).then(({items:g})=>{i||n.next({...d,result:{...d.result,data:{...l,decorations:zr(g)}}});}).catch(g=>{i||n.error(TRPCClientError.from(Jr(g)));}).finally(()=>{s=false,c();});},error:d=>n.error(d),complete:()=>{o=true,c();}});return ()=>{i=true,u.unsubscribe();}})}function Tt(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 _t(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 Yr(r){return {...r,expiresAt:new Date(r.expiresAt)}}function Nt(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 Pt(r,e){return {status:async(t,n,i)=>{try{let o=await r().repo.checkpoint.status.query({orgName:t,repoName:n,selector:Nt(i)});return _t(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?_t(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"}:Nt(i.checkpoint),artifact:i.artifact==="archive"||i.artifact==="manifest"?{kind:i.artifact}:{kind:"chunk",path:i.artifact.chunkPath}});return Yr(o)}catch(o){throw e(o)}}}}function Qr(r){return typeof r.get=="function"}function Dt(r){return Qr(r)?r.values():r}function Lt(r,e){let t=new Map;for(let n of Dt(r))n.active?t.set(n.durableId,n):t.delete(n.durableId);for(let n of Dt(e))n.active?t.set(n.durableId,n):t.delete(n.durableId);return t}var y=class extends Error{constructor(t,n){super(n??Xr[t]);this.reason=t;}reason;name="RepositoryExportError"},Xr={count_mismatch:"Repository export trailer record count does not match the rows read",digest_mismatch:"Repository export content digest does not match the trailer",fence_mismatch:"Repository export header and trailer disagree about atRepoSeq",header_invalid:"Repository export header is invalid",row_invalid:"Repository export row is invalid or not canonical",row_out_of_order:"Repository export rows are not strictly increasing by durableId",since_below_epoch_floor:"Repository export delta base is below the epoch floor",trailer_invalid:"Repository export trailer is invalid",truncated:"Repository export stream ended before its trailer"},j=class{#n=_$1();#i=_$1();#o=0;#t;#e;#a;#s=false;#c=false;#r;get header(){return this.#t}get lastDurableId(){return this.#e}get rowCount(){return this.#n.rowCount}get segmentRowCount(){return this.#o}get contentSha256(){return this.#r}finalizeContentSha256(){return this.#r===void 0&&(this.#r=this.#n.finalize(),this.#s=true),this.#r}beginSegment(){this.assertResumable(),this.#i=_$1(),this.#o=0;}markUnverifiable(){this.#c=true;}finalizeSegment(){return this.#i.finalize()}get token(){return this.#a}set token(e){this.#a=e;}get complete(){return this.#s}markComplete(){this.finalizeContentSha256();}assertResumable(){if(this.#c)throw new y("digest_mismatch","Repository export session failed verification and cannot be resumed; start a new session");if(this.#s)throw new y("header_invalid","Repository export session is already complete; start a new session")}adoptHeader(e){this.assertResumable();let t=this.#t;if(t!==void 0&&(t.repo!==e.repo||t.mode!==e.mode||t.sinceRepoSeq!==e.sinceRepoSeq||t.atRepoSeq!==e.atRepoSeq))throw new y("header_invalid","Resumed repository export header does not match the opening header");this.#t=e;}recordRow(e,t){if(this.#t?.mode==="heads"&&this.#e!==void 0&&K(this.#e,e)>=0)throw new y("row_out_of_order",`Repository export row '${e}' does not follow '${this.#e}'`);this.#n.update(t),this.#i.update(t),this.#o+=1,this.#e=e;}};function B(){return new j}var qt=10,Zr=new TextDecoder;function en(r){let e=r.header;if(!e)throw new y("header_invalid","Repository export resumed without an opening header to inherit");return e}async function tn(r,e,t){let n=await r.next();if(n.done)throw new y("truncated");let i;try{i=Y$1(n.value);}catch(o){He("header_invalid",o);}if(i.formatVersion!==U$1||t!==void 0&&(i.repo!==t.repo||i.mode!==t.mode||t.sinceRepoSeq!==void 0&&i.sinceRepoSeq!==t.sinceRepoSeq||t.atRepoSeq!==void 0&&i.atRepoSeq!==t.atRepoSeq))throw new y("header_invalid",t===void 0?`Repository export header declares format version ${i.formatVersion}; expected ${U$1}`:`Repository export header describes ${i.repo} (${i.mode}, ${i.sinceRepoSeq}..${i.atRepoSeq}); expected ${t.repo} (${t.mode}${t.sinceRepoSeq!==void 0?`, since ${t.sinceRepoSeq}`:""}${t.atRepoSeq!==void 0?`, at ${t.atRepoSeq}`:""})`);return e.adoptHeader(i),i}async function*rn(r,e){let t=new Uint8Array(0);for await(let n of nn(r)){let i=new Uint8Array(t.length+n.length);i.set(t),i.set(n,t.length),t=i;let o=t.indexOf(qt);for(;o!==-1;)yield t.subarray(0,o+1),t=t.subarray(o+1),o=t.indexOf(qt);}e.unterminated=t.length>0;}function nn(r){return Symbol.asyncIterator in r?r:{async*[Symbol.asyncIterator](){let e=r.getReader();try{for(;;){let{done:t,value:n}=await e.read();if(t)return;n&&(yield n);}}finally{e.releaseLock();}}}}function on(r){try{let e=JSON.parse(Zr.decode(r));if(e!==null&&typeof e=="object"&&"kind"in e){let t=e.kind;if(typeof t=="string")return t}}catch{}return ""}function He(r,e){throw e instanceof y?e:new y(r,e instanceof Error?e.message:void 0)}async function*J(r,e,t,n={}){yield*Bt(r,e,t,n);}async function Mt(r,e={}){let t=B(),n=Bt(r,t,void 0,e),i=await n.next();for(;!i.done;)i=await n.next();return t}async function*Bt(r,e,t,n){let i={unterminated:false},o=rn(r,i);try{yield*sn(o,i,e,t,n);}finally{await o.return(void 0);}}async function*sn(r,e,t,n,i){t.assertResumable();let o=i.resumed===true?en(t):await tn(r,t,n),s=W$1(o);for(t.beginSegment();;){let c=await r.next();if(c.done){if(i.partial===true)return;throw new y("truncated")}let u=c.value;if(on(u)!=="trailer"){let l;try{l=X$1(u);}catch(m){He("row_invalid",m);}if(!l.active&&!s)throw new y("row_invalid","Repository export tombstone is not legal in a full export");t.recordRow(l.durableId,u),yield l;continue}let d;try{if(d=Z$1(u),d.atRepoSeq!==o.atRepoSeq)throw new y("fence_mismatch");if(d.recordCount!==t.segmentRowCount)throw new y("count_mismatch");if(d.contentSha256!==t.finalizeSegment())throw new y("digest_mismatch")}catch(l){if(t.markUnverifiable(),l instanceof y)throw l;He("trailer_invalid",l);}if(!(await r.next()).done||e.unterminated)throw new y("trailer_invalid","Repository export stream continues past its trailer");t.markComplete();return}}var an="since-below-epoch-floor",cn=1e3,pn=50,un=3;function Fe(r,e,t){let n=new URLSearchParams;for(let[o,s]of Object.entries(t))s!==void 0&&n.set(o,String(s));let i=n.toString();return `/api/repos/${encodeURIComponent(r)}/${encodeURIComponent(e)}/export${i?`?${i}`:""}`}function Ut(r){let e=r?.reason;return e instanceof Error?e:new Error("Repository export was aborted")}function dn(r){return r===void 0||!Number.isFinite(r)?cn:Math.max(r,pn)}async function ln(r,e){if(e?.aborted)throw Ut(e);await new Promise((t,n)=>{let i=()=>{clearTimeout(o),n(Ut(e));},o=setTimeout(()=>{e?.removeEventListener("abort",i),t();},r);e?.addEventListener("abort",i,{once:true});});}async function mn(r,e){let t;try{t=await r.clone().json();}catch{}return (t?.code??t?.error?.code)===an?new y("since_below_epoch_floor",t?.message):t?.code!==void 0&&t.error===void 0?await e(new Response(JSON.stringify({error:t}),{status:r.status,headers:{"content-type":"application/json"}})):await e(r)}function gn(r){let e=r;return typeof e?.url=="string"&&e.url!==""&&typeof e.expiresAt=="number"&&typeof e.atRepoSeq=="number"&&typeof e.recordCount=="number"&&typeof e.contentSha256=="string"}async function hn(r){let e;try{e=await r.json();}catch{throw new y("header_invalid","Repository export redemption did not return a JSON download envelope")}if(!gn(e))throw new y("header_invalid","Repository export download envelope must carry url, expiresAt, atRepoSeq, recordCount, and contentSha256");return e}function yn(r,e){let t=r.header?.atRepoSeq;if(t!==e.atRepoSeq)throw new y("fence_mismatch",`Repository export download is pinned to ${t}; the redemption named ${e.atRepoSeq}`);if(r.rowCount!==e.recordCount)throw new y("count_mismatch",`Repository export download carried ${r.rowCount} rows; the redemption named ${e.recordCount}`);if(r.contentSha256!==e.contentSha256)throw new y("digest_mismatch","Repository export download digest does not match the digest the redemption named")}function We(r,e,t=(n,i)=>globalThis.fetch(n,i)){let n=async(c,u)=>{let d=await r(c,{method:"GET",headers:{accept:V$1},...u?{signal:u}:{}});if(!d.ok&&d.status!==202)throw await mn(d,e);return d},i=async(c,u,d={})=>{let m=await(await n(Fe(c,u,{mode:d.mode??"heads",sinceRepoSeq:d.sinceRepoSeq,atRepoSeq:d.atRepoSeq,prefer:"async"}),d.signal)).json();if(typeof m.exportToken!="string"||typeof m.atRepoSeq!="number")throw new y("header_invalid","Repository export async request did not return an exportToken and atRepoSeq");return {exportToken:m.exportToken,atRepoSeq:m.atRepoSeq}};return {prepare:i,stream:(c,u,d={})=>{let l=d.session?.lastDurableId??d.afterDurableId;if(l!==void 0&&(d.token!==void 0||d.session?.token!==void 0||d.prefer==="async"))throw new y("header_invalid",`Repository export token download cannot continue from '${l}': redemption returns the whole prepared object. Start a new session and redeem the token again.`);if(d.afterDurableId!==void 0&&d.session?.header===void 0)throw new y("header_invalid","Repository export afterDurableId needs a session carrying the opening header; reuse the session the broken stream wrote, or rebuild one with restoreRepositoryExportSession");return s(c,u,d)}};async function*s(c,u,d){let l=d.session??B(),m=l.header,g=d.signal,h={mode:m?.mode??d.mode??"heads",sinceRepoSeq:m?.sinceRepoSeq??d.sinceRepoSeq,atRepoSeq:m?.atRepoSeq??d.atRepoSeq,afterDurableId:l.lastDurableId??d.afterDurableId},O={repo:`${c}/${u}`,mode:h.mode,...d.sinceRepoSeq===void 0?{}:{sinceRepoSeq:d.sinceRepoSeq},...d.atRepoSeq===void 0?{}:{atRepoSeq:d.atRepoSeq}};if(d.token!==void 0&&l.token!==void 0&&d.token!==l.token)throw new y("header_invalid",`Repository export session was redeeming token ${l.token}; resuming it with token ${d.token} would splice two exports`);let R=d.token??l.token;if(R!==void 0){l.token=R,yield*E(R);return}if(d.prefer==="async"){let v=await i(c,u,{mode:h.mode,...h.sinceRepoSeq===void 0?{}:{sinceRepoSeq:h.sinceRepoSeq},...h.atRepoSeq===void 0?{}:{atRepoSeq:h.atRepoSeq},...g?{signal:g}:{}});l.token=v.exportToken,yield*E(v.exportToken);return}let b=await n(Fe(c,u,h),g);if(!b.body)throw new y("truncated");yield*J(b.body,l,O,{resumed:h.afterDurableId!==void 0});async function*E(v){for(let I=1;;I+=1){let te=await P(v);try{yield*S(te);return}catch(Te){if(!(!(Te instanceof y)||Te.reason==="truncated")||l.rowCount>0||I>=un||g?.aborted===true)throw Te}}}async function*S(v){let I=await t(v.url,g?{signal:g}:{});if(!I.ok||!I.body)throw await I.body?.cancel(),new y("truncated",`Repository export download returned HTTP ${I.status}`);yield*J(I.body,l,O,{resumed:false}),yn(l,v);}async function P(v){let I=Fe(c,u,{token:v});for(;;){let te=await n(I,g);if(te.status!==202)return await hn(te);await ln(dn(d.pollIntervalMs),g);}}}}function Y(r,e,t){let n=aa(e,t==="revise"?{allowUnsafeFieldNamePaths:$$1(e)}:void 0);return n.valid?null:`Invalid shape definition for "${r}": ${n.errors.join("; ")}`}function fn(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 U=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=fn(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 V(){let r=globalThis.crypto?.randomUUID?.();if(!r)throw new Error("This runtime cannot mint a cryptographically secure UUID");return r.toLowerCase()}var Rn=V;var he=1e3,ye=1e4,A=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);}},_=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 $e(r){let e="status"in r?r.status:void 0;return e==="failed"||e==="error"?"error":e==="noop"||r.operation==="noop"?"noop":"applied"}function Ft(r){let e={applied:0,noop:0,error:0};for(let t of r)e[$e(t)]++;return e}var bn={maxAttempts:3,baseDelayMs:250,maxDelayMs:8e3},Sn=10,Vt=6e4;function Ge(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={...bn,...e};return {maxAttempts:Math.min(Sn,Math.max(1,Math.trunc(t.maxAttempts))),baseDelayMs:Math.min(Vt,Math.max(0,Math.trunc(t.baseDelayMs))),maxDelayMs:Math.min(Vt,Math.max(0,Math.trunc(t.maxDelayMs)))}}var wn=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"]),Cn=new Set(["COMMIT_OUTCOME_UNKNOWN"]);function Wt(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 xn(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 On(r){return r!==void 0&&r>=400&&r<500&&r!==408}function $t(r){let e=Wt(r);return e!==void 0&&Cn.has(e)}function Q(r){if($t(r))return false;let e=Wt(r);return e!==void 0&&wn.has(e)||On(xn(r))}function Ke(r){if($t(r)||Q(r))return false;if(Ht(r))return true;if(r instanceof TypeError||r instanceof SyntaxError)return false;let e=r?.cause;return Ht(e)?true:!(e instanceof TypeError||e instanceof SyntaxError)}function Ht(r){return r instanceof TypeError&&/fetch/i.test(r.message)}function ze(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 je(r){return new Promise(e=>setTimeout(e,r))}var X=class extends Error{code;status=400;constructor(e,t="VALIDATION_ERROR"){super(e),this.code=t,this.name="WarmHubError";}},fe=class extends Error{constructor(t){super("operation source failed");this.reason=t;}reason};async function H(r,e){let t=be(e.chunkSize),n=e.submissionId??V(),i=e.streamId??n,o=Ge(e.retry),s=new U,c=[],u,d,l=0,m,g=0,h=R=>new A({cause:R.cause,completedReceipts:s.receipts,completedOperations:s.completedOperations(),acknowledgedOperationCount:l,lastAcknowledgedRepoSeq:m,attemptedAppendOutcome:R.pendingOutcome==="absent"?"not_applied":"unknown",submissionId:n,eventRequestId:G(n,g),chunkOrdinal:g,pendingOutcome:R.pendingOutcome});try{for await(let R of En(e.operations,t,e.skipExisting===!0)){let b=1,E=!1;for(;;)try{let S=await r.stream.append({allocatedTokenRanges:c,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:R.operations});s.addReceipt(S.receipt),c=S.allocatedTokenRanges,u=S.createdByEmail??u,d=S.repoSeq??d,s.addChunk({result:S,chunkStart:R.start,submittedOperations:R.operations}),l+=R.operations.length;let P=An(S.receipt);P!==void 0&&(m=P);break}catch(S){let P=Q(S);if(s.receipts.length===0&&!E&&P)throw S;if(o!==!1&&b<o.maxAttempts&&Ke(S)){await je(ze(b,o)),b+=1,E=!0;continue}throw h({cause:S,pendingOutcome:E||!P?"unknown":"absent"})}g+=1;}}catch(R){throw R instanceof fe?s.receipts.length===0?R.reason:h({cause:R.reason,pendingOutcome:"absent"}):R}if(g===0)throw new X("At least one operation is required for stream submission.");let O=s.toResult({committer:e.committer,createdByEmail:u,message:e.message,repoSeq:d});if(s.allFailed)throw new _(O);return O}async function*En(r,e,t){try{if(Array.isArray(r)){let o=r.map((s,c)=>Je(s,c,t));zt(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 Gt(i,n),i=[]);i.length>0&&(yield Gt(i,n));}catch(n){throw new fe(n)}}function Gt(r,e){let t=e-r.length;return zt(r,t),{operations:r,start:t}}function Je(r,e,t){let n;try{n=D(r);}catch(i){let o=i instanceof Error?i.message:String(i);throw new X(`Invalid operation at index ${e}: ${o}`)}return t&&n.operation==="add"?{...n,skipExisting:true}:n}async function*Kt(r,e){let t=Re(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 Re(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 c=await s().next();if(c.done)return o=true,{done:true,value:void 0};let u=Je(c.value,n,e);return n+=1,{done:false,value:u}},returnSourceOnce(){if(!i&&(i=true,!o))return t?.return?.()}}}function Ye(r){return In.encode(`${JSON.stringify(r)}
|
|
2
|
-
`)}var In=new TextEncoder;function An(r){let e=r.event?.repoSeq;if(e===void 0)return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function zt(r,e){let t=J$1(r).find(n=>!vn(n));if(t)throw new X(`Invalid operation at index ${e+t.operationIndex}: ${t.message}`,t.code)}function vn(r){return r.code==="ILLEGAL_OP_SEQUENCE"&&r.message.includes("Cannot revise then add ")}function be(r){return Number.isFinite(r)?Math.max(1,Math.min(ye,Math.trunc(r))):he}var Yt="warmhub/streaming-submission-manifest/v1",kn=new TextEncoder,Xe=z$1.string().regex(/^sha256:[0-9a-f]{64}$/),Qt={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()},Tn=z$1.enum(r),_n=z$1.enum([...r,"noop"]),Xt=z$1.object({path:z$1.string(),message:z$1.string()}),Zt=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(),er=z$1.object({added:z$1.array(z$1.string()),removed:z$1.array(z$1.string()),ignored:z$1.array(z$1.string())}),Nn=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.iso.datetime()}),z$1.object({reason:z$1.literal("validation_failed"),issues:z$1.array(Xt)}),z$1.object({reason:z$1.literal("rate_limit_reset"),retryAfterSeconds:z$1.number().int().positive(),resetAt:z$1.iso.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)})]),Pn=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.iso.datetime()}).strict(),z$1.object({reason:z$1.literal("validation_failed"),issues:z$1.array(Xt.strict())}).strict(),z$1.object({reason:z$1.literal("rate_limit_reset"),retryAfterSeconds:z$1.number().nonnegative(),resetAt:z$1.iso.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()]),jt={...Qt,operation:Tn,submittedName:z$1.string().optional(),resolvedName:z$1.string().optional(),warnings:Zt,affirmations:er.optional()},Dn=z$1.union([z$1.looseObject({...Qt,operation:_n.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:Nn.optional()}).optional(),resolvedName:z$1.string().optional(),retryable:z$1.boolean().optional(),warnings:Zt,affirmations:er.optional()}),z$1.looseObject({...jt,status:z$1.enum(["applied","noop"]),version:z$1.number().int().positive().optional(),dataHash:z$1.string().min(1).optional()}),z$1.looseObject({...jt,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:Pn.optional(),retryable:z$1.boolean().optional()}).strict()).min(1)})]),tr=z$1.object({applied:z$1.number().int().nonnegative(),noop:z$1.number().int().nonnegative(),failed:z$1.number().int().nonnegative()}),Ln=z$1.looseObject({type:z$1.literal("group"),chunkOrdinal:z$1.number().int().nonnegative(),eventRequestId:z$1.uuid(),requestDigest:Xe,outcome:z$1.enum(["event","no_event"]),repoSeq:z$1.number().int().nonnegative().optional(),operations:tr,manifestDigest:Xe}),qn=z$1.looseObject({type:z$1.literal("summary"),submissionId:z$1.uuid(),streamId:z$1.string().min(1),groupSize:z$1.number().int().positive(),groups:z$1.number().int().nonnegative(),operations:tr.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:Xe})}),Mn=z$1.looseObject({type:z$1.literal("error"),code:z$1.string().min(1),message:z$1.string().optional()}),Bn=z$1.union([Dn,Ln,qn,Mn]),Qe=()=>({applied:0,noop:0,failed:0}),Jt=(r,e)=>r.applied===e.applied&&r.noop===e.noop&&r.failed===e.failed,Un=new Set(["complete","operation-limit-reached","group-limit-reached"]),T=class extends Error{constructor(t,n){super(`Streaming submission protocol error at row ${n}: ${t}`);this.rowIndex=n;this.name="StreamingSubmissionProtocolError";}rowIndex};async function rr(r){let e=kn.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 Vn(r,e,t){return rr(`${Yt}\0${r}\0${e}\0${t}`)}function Hn(r){return r.status==="failed"||r.status==="error"?"failed":r.status==="noop"||r.operation==="noop"?"noop":"applied"}var Ze=class{index=0;groupCount=0;resultCount=0;pendingCount=0;pendingCounts=Qe();totalCounts=Qe();firstRepoSeq=null;lastRepoSeq=null;manifestDigest=rr(Yt);terminalSeen=false;accept(e){let t=n=>{throw new T(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=Hn(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"),Jt(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=>Vn(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=Qe(),this.index+=1;}async acceptSummary(e,t){Jt(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"),(Un.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 T("Response must end with a summary or error row",this.index)}};function Fn(r,e){let t;try{t=JSON.parse(r);}catch(i){throw new T(i instanceof Error?i.message:"Invalid JSON",e)}let n=Bn.safeParse(t);if(!n.success)throw new T(n.error.issues[0]?.message??"Malformed row",e);return n.data}async function*nr(r,e){let t=r.body?.getReader();if(!t)throw new T("Missing response body",0);let n=new Ze,i=new TextDecoder,o="",s=0,c=false,u,d=m=>{if(m.endsWith("\r")&&(m=m.slice(0,-1)),m.length===0)throw new T("Blank response row",s);let g=Fn(m,s);return {pending:n.accept(g),row:g}},l=m=>{if(m.type==="summary"&&e!==void 0&&(m.submissionId!==e.submissionId||m.streamId!==e.streamId||m.groupSize!==e.groupSize))throw new T("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 h=o.indexOf(`
|
|
3
|
-
`);if(h===-1)break;let O=o.slice(0,h);o=o.slice(h+1);let{pending:R,row:b}=d(O);R&&await R,l(b),b.type==="summary"||b.type==="error"?u=b:yield b;}}if(o+=i.decode(),o.length>0){let{pending:m,row:g}=d(o);m&&await m,l(g),g.type==="summary"||g.type==="error"?u=g:yield g;}n.finish(),c=!0,u&&(yield u);}finally{if(!c)try{await t.cancel();}catch{}t.releaseLock();}}var N=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 Se(r){return r===void 0||r===""?void 0:r}function Wn(){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 $n(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 Gn(r){let e=Re(r,false),t=false,n=async s=>{try{await s;}catch{}},i=()=>{if(!t){t=true;try{let s=e.returnSourceOnce();s&&n(s);}catch{}}};return {stream:new ReadableStream({async pull(s){try{let c=await e.next();if(t)return;if(c.done){s.close();return}s.enqueue(Ye(c.value));}catch(c){s.error(c),i();}},cancel(){i();}}),returnSourceOnce:i}}function Kn(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 zn(r){let e=r.options?.submissionId??V();return {orgName:r.orgName,repoName:r.repoName,streamId:r.options.streamId,submissionId:e,groupSize:be(r.options.groupSize),...Se(r.message)!==void 0?{message:Se(r.message)}:{},...Se(r.options?.committer)!==void 0?{committer:Se(r.options?.committer)}:{}}}function or(r,e){if(!r.options.streamId)throw e.localError("VALIDATION_ERROR","Streaming submissions require a non-empty streamId.");let t=zn(r),n=new AbortController,i=()=>{},o,s=false,c=async function*(){let u=false,d=false,l;try{if(!(e.runtimeSupported??Wn)())throw e.localError("VALIDATION_ERROR","Streaming submissions require Bun or Node.js 22.2 or newer.");if(i=Kn(r.options.signal,n),n.signal.aborted)throw e.localError("CANCELLED","Streaming submission was aborted.");let m=await e.prepare($n(t));if(n.signal.aborted)throw e.localError("CANCELLED","Streaming submission was aborted.");l=Gn(r.operations),u=!0;let g=await m.dispatch(l.stream,n.signal);if(!g.ok)throw d=!0,await m.httpError(g);for await(let h of nr(g,t))yield h;}catch(m){throw m instanceof N?m:u&&!d?new N(t,m):e.normalizeLocalError(m)}finally{n.abort(),l?.returnSourceOnce(),i(),s=true;}};return {retryIdentity:t,[Symbol.asyncIterator](){return this},next(){return s?Promise.resolve({done:true,value:void 0}):(o??=c(),o.next())},async return(u){return n.abort(),o?o.return(u):(s=true,i(),{done:true,value:u})},async throw(u){if(n.abort(u),!o)throw s=true,i(),u;return o.throw(u)}}}var jn="0.0.0-development";function F(r){return r===jn}var et="0.134.0";var sr=2;function Jn(r){return r===n?"Run: wh update --yes":r===m?"Run: npm install @warmhub/sdk-ts@latest (or your package manager's equivalent).":r===o?"Run: pip install --upgrade warmhub":`Deploy a released ${r} build that satisfies the backend compatibility contract.`}function ar(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"?C$1(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(!F(e.version)){let i=C$1(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(D$1(i,n)<0)return {message:`${e.name} ${e.version} is older than the backend's minimum supported version ${n}.`,hint:Jn(e.name)}}if(r.writeContractVersion<sr)return {message:`${e.name} requires write contract ${sr}, but the backend provides ${r.writeContractVersion}.`,hint:"Upgrade the WarmHub backend before retrying this write."}}function cr(r,e){try{return new URL(r).origin===new URL(e).origin}catch{return false}}var Yn=new Set(["GET","POST","PUT","PATCH","DELETE"]),x=class extends Error{reason;constructor(e,t){super(t),this.name="CliCallVerificationError",this.reason=e;}};async function Qn(r,e,t){let n=r.method.toUpperCase();if(!Yn.has(n))throw new x("unsupported-method",`Unsupported HTTP method "${r.method}" \u2014 component CLI dispatch only emits GET, POST, PUT, or PATCH`);let i=n,o=r.headers.get(v);if(!o)throw new x("missing-install-repo",`Missing ${v} header`);let s=W(e.CLI_SIGNING_SECRET),c=W(e.CLI_BEARER_TOKEN),u=W(e.CLI_API_KEY),d=W(e.CLI_BASIC_USERNAME)&&W(e.CLI_BASIC_PASSWORD);if(!s&&!c&&!u&&!d)throw new x("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(c&&d)throw new x("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 l=new URL(r.url),m=l.pathname,g,h,O;if(y$1(i)?g={}:(g=Object.fromEntries(l.searchParams.entries()),h="",O={...g}),s){let R=r.headers.get(w$1);if(!R)throw new x("missing-signature",`Missing ${w$1} header`);let b=r.headers.get(x$1);if(!b)throw new x("missing-timestamp",`Missing ${x$1} header`);let E=Number(b);if(!Number.isFinite(E)||!Number.isInteger(E))throw new x("invalid-timestamp",`${x$1} must be an integer unix seconds value; got "${b}"`);h=await pr(r,i,h);let S=await z$2({secret:e.CLI_SIGNING_SECRET,method:i,path:m,query:g,installRepo:o,body:h,signature:R,timestamp:E,nowUnixSeconds:t?.nowUnixSeconds??Math.floor(Date.now()/1e3),toleranceSec:t?.toleranceSec});if(!S.ok)throw new x(S.reason,`HMAC verification failed: ${S.reason}`)}if(c){let R=`Bearer ${e.CLI_BEARER_TOKEN}`,b=r.headers.get("authorization")??"";if(!await tt(b,R))throw new x("invalid-bearer","invalid-bearer: bearer token mismatch")}if(u){let R=W(e.CLI_API_KEY_HEADER)?e.CLI_API_KEY_HEADER:"X-API-Key",b=r.headers.get(R)??"";if(!await tt(b,e.CLI_API_KEY))throw new x("invalid-api-key",`invalid-api-key: mismatch on header "${R}"`)}if(d){let R=`Basic ${btoa(`${e.CLI_BASIC_USERNAME}:${e.CLI_BASIC_PASSWORD}`)}`,b=r.headers.get("authorization")??"";if(!await tt(b,R))throw new x("invalid-basic","invalid-basic: basic auth mismatch")}return O===void 0&&(h=await pr(r,i,h),O=Xn(h)),{method:i,installRepo:o,args:O}}async function pr(r,e,t){return y$1(e)?t!==void 0?t:r.text():""}function Xn(r){let e;try{e=JSON.parse(r);}catch{throw new x("invalid-body","POST body is not valid JSON")}if(!Zn(e))throw new x("invalid-body","POST body must be a JSON object of primitive args (string / number / boolean)");return e}function W(r){return typeof r=="string"&&r.length>0}function Zn(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 tt(r,e){let[t,n]=await Promise.all([ur(r),ur(e)]),i=0;for(let o=0;o<t.length;o++)i|=t[o]^n[o];return i===0}async function ur(r){return new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(r)))}function nt(r){if(r.includes("/"))return r.split("/")[0]}function lr(r){if("shapeWref"in r&&typeof r.shapeWref=="string")return r.shapeWref;if(r.name)return nt(r.name)}function rt(r){if(typeof r!="string")return;let e=r.trim();return e.length>0?e:void 0}function $(r){return u({kind:r.kind,name:r.name,about:it(r),type:we(r),members:Ce(r)})}function it(r){if("about"in r&&r.about!==void 0)return r.about;if("aboutWref"in r)return r.aboutWref}function ot(r){return it(r)??d(xe(r))}function xe(r){return "data"in r?r.data:void 0}function we(r){return "type"in r?r.type:void 0}function Ce(r){return "members"in r?r.members:void 0}function Z(r,e){return u({kind:r.kind,name:e})}function dr(r){return r.data??{}}function mr(r){if(r.operation==="retract")return D(r);if(r.operation==="reaffirm")return D({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=$(r);if(n==="thing"&&it(r)!==void 0)throw new Error(Me);if(n==="collection")return z(r,"OperationBuilder");let i=r,o=dr(i),s=rt(i.name);if(!s)throw new Error("OperationBuilder: add operation missing name");if(n==="assertion"){let c=ot(i);if(c===void 0)throw new Error(`OperationBuilder: assertion add '${s}' missing required 'about'`);if(typeof c!="string")throw new Error(H$1);return {operation:"add",kind:n,name:s,about:c,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=rt(r.name)??rt(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 me({...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:dr(r),...r.expectedVersion!==void 0?{expectedVersion:r.expectedVersion}:{},...r.leaseId?{leaseId:r.leaseId}:{}}}function L(r,e){return r.operation==="add"?{operation:r.operation,kind:e,name:r.name,about:ot(r),type:we(r),members:Ce(r)}:{operation:r.operation,kind:e,name:r.name??r.wref,type:we(r),members:Ce(r)}}function gr(r){if(r.length!==0)throw new Error(r.join("; "))}function hr(r,e,t$1,n){let i=[];if((e==="thing"||e==="assertion"||e==="collection"&&r==="REVISE")&&(t(t$1)||i.push(`${r} ${e} name must be a local path (Shape/name), got: "${t$1}"`)),e==="shape"&&(r==="ADD"||r==="REVISE")&&n!==void 0){let s=Y(t$1,n,r==="REVISE"?"revise":"add");s&&i.push(s);}return i}function yr(r,e){let t=[];if(r.name&&t.push(...hr("ADD",e,r.name,xe(r))),e==="assertion"&&ot(r)===void 0&&t.push(`ADD assertion '${r.name}' missing required 'about' \u2014 for hierarchical thing names set kind: 'thing' explicitly`),e!=="collection"&&(we(r)!==void 0||Ce(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{z(r,"OperationBuilder");}catch(n){t.push(n instanceof Error?n.message:String(n));}for(let n of I(L(r,e),0))t.push(n.message);gr(t);}function fr(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(...hr("REVISE",r,e,t.data),...I(L({...t,name:e},r),0).map(i=>i.message)),gr(n);}var Oe=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=lr(t),i=xe(t);if(this.shapes&&n&&i!==void 0){let u=this.shapes[n];if(u){let d=ba(i,u);if(!d.valid)throw new Error(`Shape validation failed for '${t.name}' (shape: ${n}): ${d.errors.join("; ")}`)}}let o={operation:"add",...t},s=$(o);(o.name||s==="collection")&&yr(o,s);let c=Object.freeze({operation:"add",...t});return this.ops.push(c),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)??nt(n);if(o){let s=this.shapes[o];if(s){let c=ba(t.data,s);if(!c.valid)throw new Error(`Shape validation failed for revise '${n}' (shape: ${o}): ${c.errors.join("; ")}`)}}}if(n){let o=Z({...t},n);fr(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 u=0;u<this.ops.length;u+=1){let d=this.ops[u];if(d){if(d.operation==="add"){let l=$(d);!d.name&&l!=="collection"?e.push({code:"MISSING_NAME",operationIndex:u,message:`Add operation at index ${u} is missing required 'name' field`}):d.name&&(n.has(d.name)&&e.push({code:"DUPLICATE_NAME",operationIndex:u,message:`Duplicate name '${d.name}' at index ${u} (already added earlier in commit)`}),n.add(d.name));}if(d.operation==="revise"){let l=d.name??d.wref;l?i.has(l)?e.push({code:"REVISE_AFTER_RETRACT",operationIndex:u,message:`Revise at index ${u} targets '${l}' which was already retracted in this commit`}):n.has(l)||t.push({code:"REVISE_UNKNOWN_WREF",operationIndex:u,message:`Revise at index ${u} references '${l}' which was not added in this commit (assuming it exists server-side)`}):e.push({code:"MISSING_WREF",operationIndex:u,message:`Revise operation at index ${u} is missing required target ('name' or 'wref')`});}d.operation==="retract"&&(d.name?i.has(d.name)?t.push({code:"RETRACT_AFTER_RETRACT",operationIndex:u,message:`Retract at index ${u} targets '${d.name}' which was already retracted in this commit`}):(n.has(d.name)||t.push({code:"RETRACT_UNKNOWN_WREF",operationIndex:u,message:`Retract at index ${u} references '${d.name}' which was not added in this commit (assuming it exists server-side)`}),i.add(d.name)):e.push({code:"MISSING_NAME",operationIndex:u,message:`Retract operation at index ${u} is missing required 'name' field`}));}}let o=this.ops.flatMap((u,d)=>{if(u.operation==="add")return I(L(u,$(u)),d);if(u.operation==="revise"){let l=u.name??u.wref;return I(L(u,l?Z(u,l):"thing"),d)}return I({operation:"retract",kind:u.kind,name:u.name},d)});for(let u of o)e.push({code:u.code,operationIndex:u.operationIndex,message:u.message});let s=this.ops.flatMap((u,d)=>{if(u.operation==="retract"||u.operation==="reaffirm")return [];if(u.operation==="add")return [{op:L(u,$(u)),operationIndex:d}];let l=u.name??u.wref;return [{op:L(u,l?Z(u,l):"thing"),operationIndex:d}]}),c=J$1(s.map(({op:u})=>u),{checkAddAdd:false,sourceOperationIndexes:s.map(({operationIndex:u})=>u)});for(let u of c)e.push({code:u.code,operationIndex:u.operationIndex,message:u.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=>mr(o)),i=await H(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 A&&(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 ks(r){return b(r)}var ai={apiUrl:true,fetch:true,accessToken:true,auth:true,functionLogs:true,client:true,clientFlags:true,decorateResponses:true},_r=Object.keys(ai),ci=new Set(_r),pi=new Set(["token","apiKey","bearer"]);function ui(r){if(r)for(let e of Object.keys(r)){if(ci.has(e))continue;let t=pi.has(e)?'; did you mean "accessToken"?':`. Valid options are: ${_r.join(", ")}.`;throw new TypeError(`Unknown WarmHubClient option "${e}"${t}`)}}function di(r){if(!r||r.length===0)return [];for(let e of r)if(!j$1(e))throw new TypeError(`Invalid client flag "${e}": expected lowercase tokens matching [a-z0-9-]+.`);return [...new Set(r)].sort()}var Rr="https://api.warmhub.ai",li=new Set(["commit.validate","repo.shapeInstanceCounts","thing.getMany","thing.headVersions"]),br=500,Sr=500,wr=1,Cr=8;function Ae(r){return {...r,actionContainer:void 0,actionContainerConfig:void 0}}function mi(r){return r.map(e=>Ae(e))}function Nr(r,e,t){if(e===r||t.has(e))throw new f("VALIDATION_ERROR","Paginated result cursor did not advance")}function xr(r){if(r===void 0)throw new f("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;Nr(t,i.nextCursor,n),t=i.nextCursor;}}async function*w(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 f("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 f("VALIDATION_ERROR",`Paginated result exceeded max=${t}`);i.push(...s);}return i}function Or(r){if(r?.slugs!==void 0)throw new f("VALIDATION_ERROR","repo.explore pagination helpers do not support slugs mode")}async function Er(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 f("VALIDATION_ERROR","Incremental read completed without repoSeq");return {items:e,repoSeq:i.repoSeq}}Nr(t,i.nextCursor,n),t=i.nextCursor;}}function Ee(r,e,t){return Number.isFinite(r)?Math.max(1,Math.min(t,Math.trunc(r))):e}function Ir(r,e){let t=[];for(let n=0;n<r.length;n+=e)t.push(r.slice(n,n+e));return t}function Ie(r){return r!==void 0&&s.includes(r)?r:void 0}function ee(r){let[e,t,n]=r;return typeof e=="string"?{orgName:e,repoName:t,name:n}:e}function gi(r){let[e,t]=r;return typeof e=="string"?{orgName:e,repoName:t}:e}function hi(r){let[e,t,n,i]=r;return typeof e=="string"?{orgName:e,repoName:t,subscriptionName:n,credentialSetName:i}:e}function yi(r){let[e,t,n]=r;return typeof e=="string"?{orgName:e,repoName:t,subscriptionName:n}:e}function fi(r){let{actionContainer:e,actionContainerConfig:t,...n}=r;return n}function Ri(r){let{actionContainer:e,actionContainerConfig:t,...n}=r;return n}function ve(r){return !!r&&(!!r.shape||!!r.kind||!!r.about||!!r.match||!!r.componentRef||r.excludeComponents===true||(r.where?.length??0)>0)}function ke(r){return !!r&&(!!r.shape||!!r.about||!!r.match||!!r.componentRef||(r.where?.length??0)>0)}function Dr(r){let e=r.members;return Array.isArray(e)&&e.length>0}function bi(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 Si(r,e){if(ve(e.query)&&!ke(e.query))throw new f("VALIDATION_ERROR","Selector-backed collection sources require shape, about, match, componentRef, or where; kind and excludeComponents only narrow an existing selector.");if(e.sourceRepo&&!ke(e.query))throw new f("VALIDATION_ERROR","sourceRepo requires a selector-backed collection query");if(e.sourceRepo&&Dr(e))throw new f("VALIDATION_ERROR","sourceRepo cannot be combined with explicit members; use canonical wh:org/repo/... member wrefs or omit sourceRepo.");if(ve(e.query)&&r!=="set")throw new f("VALIDATION_ERROR","Selector-backed collection sources are only supported for set collections")}function Ts(r){return r??"off"}function wi(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 Ci(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=qr(r);return e!=="BACKEND"?e:r>=400&&r<500?"VALIDATION_ERROR":e}var xi=[/\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 st(r){for(let e of xi)if(e.test(r))return "An internal error occurred. Please try again or contact support.";return r}var f=class extends Error{code;status;hint;retryAfter;errorCode;backendCode;details;constructor(e,t,n,i,o,s,c){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=c;}get kind(){return this.code}};function Ar(r,e){if(typeof e!="string")return;let t=g(r,e);if(t)throw new f("VALIDATION_ERROR",t)}function a(r){if(r instanceof f)return r;if(r instanceof TRPCClientError){if(r.cause instanceof f)return r.cause;let e=r.data,t=e?.warmhub?.code,n=typeof e?.code=="string"?wi(e.code):void 0,i=Ci(e?.httpStatus),o=e?.warmhub?.message??st(r.message);return new f(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 f(e.code,st(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 f("CANCELLED",r.message):r instanceof TypeError&&/fetch/i.test(r.message)?new f("NETWORK",r.message):new f("BACKEND",st(r.message))}return new f("BACKEND","Unknown SDK error")}function Oi(r){return r instanceof f}function _s(r){if(r instanceof N)return false;let e=a(r);return e.kind==="NETWORK"||e.kind==="CANCELLED"||e.kind==="BACKEND"||e.kind==="RATE_LIMITED"}var Ei=new Set(["ConnectionRefused","ECONNREFUSED","ENOTFOUND","ETIMEDOUT","EAI_AGAIN"]);function Ii(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"&&Ei.has(e))return true}return false}function Ai(r){return `Unable to connect to ${r}. Is the computer able to access the url?`}function Ns(r,e){if(F(r))return false;let t=C$1(r),n=C$1(e);return !t||!n?false:D$1(t,n)<0}function Lr(r,e){return new f("CLIENT_INCOMPATIBLE",r,412,e)}function vi(r,e){let t=ar(r,e);if(t)throw Lr(t.message,t.hint)}var vr=class r{apiUrl;fetchImpl;accessToken;clientIdentity;clientFlags;decorateResponses;functionLogMode;getToken;compatibilityCheck;overrideNoticePrinted=false;repositoryExport=We((e,t)=>this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}${e}`,t),e=>this.httpResponseError(e),(e,t)=>(this.fetchImpl??globalThis.fetch)(e,t));noteCompatibilityOverride(){this.overrideNoticePrinted||(this.overrideNoticePrinted=true,console.error(`warmhub: compatibility checks overridden by client flag ${i}; the server remains authoritative.`));}assertWriteCompatible(){return this.clientFlags.includes(i)?(this.noteCompatibilityOverride(),Promise.resolve()):F(this.clientIdentity.version)&&cr(this.apiUrl,Rr)?Promise.reject(Lr(`Development client ${this.clientIdentity.name}/${this.clientIdentity.version} cannot write to production.`,"Install a released WarmHub client artifact before writing to api.warmhub.ai.")):F(this.clientIdentity.version)&&this.clientIdentity.name!==n?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 a(e)}},sync:async()=>{try{return await this.trpc.auth.sync.mutate()}catch(e){throw a(e)}},currentUser:async()=>{try{return await this.trpc.auth.currentUser.query()}catch(e){throw a(e)}},whoami:async()=>{try{return await this.trpc.auth.whoami.query()}catch(e){throw a(e)}}};homepage={featuredLists:async()=>{try{return await this.trpc.homepage.featuredLists.query()}catch(e){throw a(e)}}};access={resolve:async e=>{try{return await this.trpc.access.resolve.query(e)}catch(t){throw a(t)}}};diagnostics={ping:async()=>{let e=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}/health`);if(!e.ok)throw new f("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 a(e)}},assertCompatible:()=>{if(this.compatibilityCheck)return this.compatibilityCheck;let e=(async()=>{let t=await this.diagnostics.capabilities();vi(t,this.clientIdentity);})();return this.compatibilityCheck=e,e.catch(t=>{Oi(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 a(i)}},listIter:(e,t,n)=>w(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 a(n)}},searchIter:(e,t)=>w(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 a(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 a(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 a(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 a(o)}},registry:{register:async(e,t,n)=>{try{return await this.trpc.component.registry.register.mutate({orgName:e,componentName:t,...n})}catch(i){throw a(i)}},unregister:async(e,t)=>{try{return await this.trpc.component.registry.unregister.mutate({orgName:e,componentName:t})}catch(n){throw a(n)}},list:async e=>{try{return await this.trpc.component.registry.list.query({orgName:e})}catch(t){throw a(t)}},view:async(e,t)=>{try{return await this.trpc.component.registry.view.query({orgName:e,componentName:t})}catch(n){throw a(n)}},update:async(e,t,n)=>{try{return await this.trpc.component.registry.update.mutate({orgName:e,componentName:t,...n})}catch(i){throw a(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:Ue(n,i?.skipExisting),includeWouldBeBody:i?.includeWouldBeBody},{signal:i?.signal})}catch(o){throw a(o)}},apply:async(e,t,n,i,o)=>{try{return await H(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 A||s instanceof _?s:a(s)}},applyStreaming:(e,t,n,i,o)=>or({orgName:e,repoName:t,message:n,operations:i,options:o},{prepare:async s=>await this.prepareStreamingSubmissionRequest(s),localError:(s,c)=>new f(s,c),normalizeLocalError:a}),getReceipt:async(e,t,n)=>{try{return await this.trpc.commit.getReceipt.query({orgName:e,repoName:t,eventRequestId:n})}catch(i){throw a(i)}}};org={get:async e=>{try{return await this.trpc.org.get.query({orgName:e})}catch(t){throw a(t)}},getCallerRole:async e=>{try{return await this.trpc.org.getCallerRole.query({orgName:e})}catch(t){throw a(t)}},list:async e=>{try{return {items:await this.trpc.org.list.query({includeArchived:e?.includeArchived})}}catch(t){throw a(t)}},create:async(e,t,n)=>{try{return await this.trpc.org.create.mutate({name:e,displayName:t,description:n})}catch(i){throw a(i)}},setDescription:async(e,t)=>{try{return await this.trpc.org.setDescription.mutate({orgName:e,description:t})}catch(n){throw a(n)}},setDisplayName:async(e,t)=>{try{return await this.trpc.org.setDisplayName.mutate({orgName:e,displayName:t})}catch(n){throw a(n)}},rename:async(e,t)=>{try{return await this.trpc.org.rename.mutate({orgName:e,newName:t})}catch(n){throw a(n)}},update:async e=>{try{return await this.trpc.org.update.mutate(e)}catch(t){throw a(t)}},addMember:async(e,t,n="editor")=>{try{return await this.trpc.org.addMember.mutate({orgName:e,email:t,role:n})}catch(i){throw a(i)}},removeMember:async(e,t)=>{try{await this.trpc.org.removeMember.mutate({orgName:e,email:t});}catch(n){throw a(n)}},leave:async e=>{try{await this.trpc.org.leave.mutate({orgName:e});}catch(t){throw a(t)}},changeMemberRole:async(e,t,n)=>{try{return await this.trpc.org.changeMemberRole.mutate({orgName:e,email:t,role:n})}catch(i){throw a(i)}},setMemberScopes:async(e,t,n)=>{try{await this.trpc.org.setMemberScopes.mutate({orgName:e,email:t,scopes:n});}catch(i){throw a(i)}},clearMemberScopes:async(e,t)=>{try{await this.trpc.org.clearMemberScopes.mutate({orgName:e,email:t});}catch(n){throw a(n)}},listMembers:async(e,t)=>{try{return await this.trpc.org.listMembers.query({orgName:e,pending:t?.pending})}catch(n){throw a(n)}},archive:async e=>{try{return await this.trpc.org.archive.mutate({orgName:e})}catch(t){throw a(t)}},unarchive:async e=>{try{return await this.trpc.org.unarchive.mutate({orgName:e})}catch(t){throw a(t)}}};repo={checkpoint:Pt(()=>this.trpc,a),export:(e,t,n)=>this.repositoryExport.stream(e,t,n),exportPrepare:(e,t,n)=>this.repositoryExport.prepare(e,t,n),get:async(e,t)=>{try{return await this.trpc.repo.get.query({orgName:e,repoName:t})}catch(n){throw a(n)}},getStats:async(e,t)=>{try{return await this.trpc.repo.stats.query({orgName:e,repoName:t})}catch(n){throw a(n)}},getStatsBatch:async(e,t)=>{try{return await this.trpc.repo.statsBatch.query({orgName:e,repoNames:t})}catch(n){throw a(n)}},getConfigureStats:async(e,t)=>{try{return await this.trpc.repo.configureStats.query({orgName:e,repoName:t})}catch(n){throw a(n)}},getShapeInstanceCounts:async(e,t)=>{try{return await this.trpc.repo.shapeInstanceCounts.query({orgName:e,repoName:t})}catch(n){throw a(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 a(n)}},listIter:(e,t)=>w(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 a(n)}},searchIter:(e,t)=>w(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 a(s)}},setDescription:async(e,t,n)=>{try{return await this.trpc.repo.setDescription.mutate({orgName:e,repoName:t,description:n})}catch(i){throw a(i)}},setDisplayName:async(e,t,n)=>{try{return await this.trpc.repo.setDisplayName.mutate({orgName:e,repoName:t,displayName:n})}catch(i){throw a(i)}},setVisibility:async(e,t,n)=>{try{return await this.trpc.repo.setVisibility.mutate({orgName:e,repoName:t,visibility:n})}catch(i){throw a(i)}},rename:async(e,t,n)=>{try{return await this.trpc.repo.rename.mutate({orgName:e,repoName:t,newName:n})}catch(i){throw a(i)}},update:async e=>{try{return await this.trpc.repo.update.mutate(e)}catch(t){throw a(t)}},archive:async(e,t)=>{try{return await this.trpc.repo.archive.mutate({orgName:e,repoName:t})}catch(n){throw a(n)}},unarchive:async(e,t)=>{try{return await this.trpc.repo.unarchive.mutate({orgName:e,repoName:t})}catch(n){throw a(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 a(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 a(n)}},listPageIter:(e,t)=>w(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 a(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 a(t)}},exploreIter:e=>(Or(e),w(t=>this.repo.explore({...e,cursor:t}),t=>t.items,e?.cursor)),exploreAll:async e=>{Or(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 a(n)}},getAgents:async(e,t)=>{try{return await this.trpc.repo.getAgents.query({orgName:e,repoName:t})}catch(n){throw a(n)}},getLicense:async(e,t)=>{try{return await this.trpc.repo.getLicense.query({orgName:e,repoName:t})}catch(n){throw a(n)}},describe:async(e,t,n={})=>{try{return await this.trpc.repo.describe.query({orgName:e,repoName:t,includeHead:n.includeHead})}catch(i){throw a(i)}},setReadme:async(e,t,n,i)=>{try{return Ar("Content/Readme.content",n),await this.trpc.repo.setReadme.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,content:n})}catch(o){throw a(o)}},setAgents:async(e,t,n,i)=>{try{return Ar("Content/Agents.content",n),await this.trpc.repo.setAgents.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,content:n})}catch(o){throw a(o)}},getLlmsTxt:async(e,t)=>{try{return await this.trpc.repo.getLlmsTxt.query({orgName:e,repoName:t})}catch(n){throw a(n)}},index:{describe:async(e,t)=>{try{return await this.trpc.repo.index.describe.query({orgName:e,repoName:t})}catch(n){throw a(n)}},pin:async(e,t,n,i)=>{try{return await this.trpc.repo.index.pin.mutate({orgName:e,repoName:t,shape:n,fieldPath:i})}catch(o){throw a(o)}},unpin:async(e,t,n,i)=>{try{return await this.trpc.repo.index.unpin.mutate({orgName:e,repoName:t,shape:n,fieldPath:i})}catch(o){throw a(o)}}}};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 a(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 a(o)}},create:async(e,t,n,i,o)=>{let s=Y(n,{fields:i,...o.description!==void 0?{description:o.description}:{},...o.composes!==void 0?{composes:o.composes}:{}},"add");if(s)throw new f("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,composes:o.composes})}catch(c){throw a(c)}},revise:async(...e)=>{let[t,n,i]=e,o=e.length===5?e[3]:void 0,s=e.length===5?e[4]:e[3],c=o?Y(i,{fields:o,...s.description!==void 0?{description:s.description}:{},...s.composes!==void 0?{composes:s.composes}:{}},"revise"):void 0;if(c)throw new f("VALIDATION_ERROR",c);try{return await this.trpc.shape.revise.mutate({orgName:t,repoName:n,shapeName:i,newFields:o,eventRequestId:s.eventRequestId,description:s.description,composes:s.composes})}catch(u){throw a(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 a(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 a(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 a(o)}},historyIter:(e,t,n,i={})=>w(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(c=>this.shape.history(e,t,n,{...s,cursor:c}),c=>c.versions,o,s.cursor)}};subscription={create:async e=>{try{let t=await this.trpc.subscription.create.mutate(fi(e));return Ae(t)}catch(t){throw a(t)}},get:async(...e)=>{try{let t=await this.trpc.subscription.get.query(ee(e));return Ae(t)}catch(t){throw a(t)}},reveal:async(...e)=>{try{return await this.trpc.subscription.reveal.query(ee(e))}catch(t){throw a(t)}},list:async(...e)=>{try{let t=await this.trpc.subscription.list.query(gi(e));return mi(t)}catch(t){throw a(t)}},update:async e=>{try{let t=await this.trpc.subscription.update.mutate(Ri(e));return Ae(t)}catch(t){throw a(t)}},pause:async(...e)=>{try{return await this.trpc.subscription.pause.mutate(ee(e))}catch(t){throw a(t)}},resume:async(...e)=>{try{return await this.trpc.subscription.resume.mutate(ee(e))}catch(t){throw a(t)}},remove:async(...e)=>{try{return await this.trpc.subscription.remove.mutate(ee(e))}catch(t){throw a(t)}},bindCredentials:async(...e)=>{try{return await this.trpc.subscription.bindCredentials.mutate(hi(e))}catch(t){throw a(t)}},unbindCredentials:async(...e)=>{try{return await this.trpc.subscription.unbindCredentials.mutate(yi(e))}catch(t){throw a(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(c){throw a(c)}},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 a(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 a(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 a(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 a(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 a(o)}},liveFeedIter:(e,t,n,i)=>w(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(c=>this.action.liveFeed(e,t,n,{...s,cursor:c}),c=>c.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 a(i)}},listRunsIter:(e,t,n)=>w(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 a(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 a(i)}},getRunAttempts:async(e,t,n)=>{try{return await this.trpc.action.getRunAttempts.query({orgName:e,repoName:t,runId:n})}catch(i){throw a(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 a(i)}}};collection={create:async(e,t,n)=>{try{return Si(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 a(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,shape:i?.shape})}catch(o){throw a(o)}},membersIter:(e,t,n,i)=>{let o=i?.version;return w(async s=>{let c=await this.collection.members(e,t,n,{...i,version:o,cursor:s});return o??=c.version,c},s=>s.items,i?.cursor)},membersAll:async(e,t,n,i)=>{let{max:o,...s}=i??{},c=s.version;return await C(async u=>{let d=await this.collection.members(e,t,n,{...s,version:c,cursor:u});return c??=d.version,d},u=>u.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,shape:o?.shape})}catch(s){throw a(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,shape:o?.shape})}catch(s){throw a(s)}},revise:async(e,t,n,i)=>{try{let o=bi(n);if(ve(i.query)&&!ke(i.query))throw new f("VALIDATION_ERROR","Selector-backed collection sources require shape, about, match, componentRef, or where; kind and excludeComponents only narrow an existing selector.");if(i.sourceRepo&&!ke(i.query))throw new f("VALIDATION_ERROR","sourceRepo requires a selector-backed collection query");if(i.sourceRepo&&Dr(i))throw new f("VALIDATION_ERROR","sourceRepo cannot be combined with explicit members; use canonical wh:org/repo/... member wrefs or omit sourceRepo.");if(ve(i.query)&&o&&o!=="set")throw new f("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 a(o)}},stats:async(e,t,n,i)=>{try{return await this.trpc.collection.stats.query({orgName:e,repoName:t,wref:n,version:i?.version,shape:i?.shape})}catch(o){throw a(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 a(o)}},evaluateIter:(e,t,n,i)=>w(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(c=>this.view.evaluate(e,t,n,{...s,cursor:c}),c=>c.items,o,s.cursor)}};grant=Tt(()=>this.trpc,a);thing={head:async(e,t,n)=>{try{return await this.trpc.thing.head.query({orgName:e,repoName:t,shape:n?.shape,declaredShape:n?.declaredShape,includeValidatedShapes:n?.includeValidatedShapes,kind:Ie(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 a(i)}},headIter:(e,t,n)=>w(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)=>(xr(n?.sinceRepoSeq),await Er(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 a(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 a(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 a(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 a(o)}},getMany:async(e,t,n,i,o)=>{try{if(n.length===0)return {requested:0,items:[],missing:[]};let s=Ee(o?.chunkSize,br,Sr),c=Ee(o?.chunkConcurrency,wr,Cr),u=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 u(n);let d=Ir(n,s),l=[];for(let m=0;m<d.length;m+=c){let g=d.slice(m,m+c),h=await Promise.all(g.map(u));l.push(...h);}return {requested:n.length,items:l.flatMap(m=>m.items),missing:l.flatMap(m=>m.missing)}}catch(s){throw a(s)}},headVersions:async(e,t,n,i)=>{try{if(n.length===0)return {requested:0,items:[],missing:[]};let o=Ee(i?.chunkSize,br,Sr),s=Ee(i?.chunkConcurrency,wr,Cr),c=async l=>await this.trpc.thing.headVersions.query({orgName:e,repoName:t,wrefs:l});if(n.length<=o)return await c(n);let u=Ir(n,o),d=[];for(let l=0;l<u.length;l+=s){let m=u.slice(l,l+s),g=await Promise.all(m.map(c));d.push(...g);}return {requested:n.length,items:d.flatMap(l=>l.items),missing:d.flatMap(l=>l.missing)}}catch(o){throw a(o)}},history:async(e,t,n)=>{try{return await this.trpc.thing.history.query({orgName:e,repoName:t,wref:n.wref,shape:n.shape,declaredShape:n.declaredShape,about:n.about,includeRetracted:n.includeRetracted,resolveCollections:n.resolveCollections,match:n.match,limit:n.limit,cursor:n.cursor})}catch(i){throw a(i)}},historyIter:(e,t,n)=>w(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(c){throw a(c)}},resolve:async(e,t,n)=>{try{return await this.trpc.thing.resolve.query({orgName:e,repoName:t,wref:n})}catch(i){throw a(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 a(o)}},aboutIter:(e,t,n,i)=>w(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(c=>this.thing.about(e,t,n,{...s,cursor:c}),c=>c.assertions,o,s.cursor)},query:async(e,t,n)=>{try{return await this.trpc.thing.query.query({orgName:e,repoName:t,shape:n?.shape,declaredShape:n?.declaredShape,includeValidatedShapes:n?.includeValidatedShapes,about:n?.about,affirmedAbout:n?.affirmedAbout,kind:Ie(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 a(i)}},queryIter:(e,t,n)=>w(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)=>(xr(n?.sinceRepoSeq),await Er(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:Ie(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 a(o)}},searchIter:(e,t,n,i)=>w(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(c=>this.thing.search(e,t,n,{...s,cursor:c}),c=>c.items,o,s.cursor)},count:async(e,t,n)=>{try{return await this.trpc.thing.count.query({orgName:e,repoName:t,shape:n?.shape,declaredShape:n?.declaredShape,about:n?.about,affirmedAbout:n?.affirmedAbout,kind:Ie(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 a(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,binding:i?.binding,limit:i?.limit,cursor:i?.cursor})}catch(o){throw a(o)}},refsIter:(e,t,n,i)=>w(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(c=>this.thing.refs(e,t,n,{...s,cursor:c}),c=>c.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,declaredShape:n?.declaredShape,includeValidatedShapes:n?.includeValidatedShapes,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,shape:n.shape,declaredShape:n.declaredShape,about:n.about,resolveCollections:n.resolveCollections,match:n.match,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=kr(n?.signal,o),c=0,u=(async()=>{let d=await this.trpc.live.issueTicket.mutate({orgName:e,repoName:t}),l=await this.openSse(d.ticket,s,async m=>{if(m.type!=="invalidate")return;let g=m.data;c++,await i({topic:g.topic,affectedShapes:g.affectedShapes,affectedThings:g.affectedThings,affectedTargets:g.affectedTargets,hasNewCommit:g.hasNewCommit});});return await l.ready,s.aborted?{updates:c}:(await l.closed,{updates:c})})();return {close(){o.abort();},closed:u}}};token={create:async e=>{try{return await this.trpc.token.create.mutate(e)}catch(t){throw a(t)}},list:async e=>{try{return await this.trpc.token.list.query(e?.includeInactive?{includeInactive:!0}:void 0)}catch(t){throw a(t)}},get:async e=>{try{return await this.trpc.token.get.query({name:e})}catch(t){throw a(t)}},revoke:async e=>{try{return await this.trpc.token.revoke.mutate({name:e})}catch(t){throw a(t)}}};stream={append:async e=>{try{return await this.trpc.stream.append.mutate(e)}catch(t){throw a(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 a(o)}},listSets:async(e,t)=>{try{return await this.trpc.credential.listSets.query({orgName:e,repoName:t})}catch(n){throw a(n)}},getSet:async(e,t,n)=>{try{return await this.trpc.credential.getSet.query({orgName:e,repoName:t,name:n})}catch(i){throw a(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 a(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 a(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 a(o)}},deleteSet:async(e,t,n)=>{try{return await this.trpc.credential.deleteSet.mutate({orgName:e,repoName:t,setName:n})}catch(i){throw a(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 a(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 a(o)}}};credentials=this.credential;constructor(e,t){let n=typeof e=="string"?t:e;ui(n);let i=typeof e=="string"?e:e?.apiUrl??Rr;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??m,version:n?.client?.version??et},this.clientFlags=di(n?.clientFlags),this.decorateResponses=n?.decorateResponses??false,typeof this.accessToken=="function"){let c=this.accessToken;this.getToken=async()=>await c();}else if(this.accessToken){let c=this.accessToken;this.getToken=async()=>c;}let o=`${i.replace(/\/$/,"")}/trpc`,s=((c,u)=>this.fetchWithAuth(c,u));Object.defineProperty(this,"trpc",{value:createTRPCProxyClient({links:[this.createCompatibilityLink(),kt({enabled:this.decorateResponses,getClient:()=>this}),splitLink({condition:c=>li.has(c.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 f("BACKEND",`SSE request failed with status ${i.status}`,i.status);let o=i.body?.getReader();if(!o)throw new f("BACKEND","SSE response body is missing");let s=()=>{},c=new Promise(d=>{s=d;}),u=(async()=>{let d=new TextDecoder,l="";try{for(;;){let{done:m,value:g}=await o.read();if(m)break;for(l+=d.decode(g,{stream:!0}).replaceAll(`\r
|
|
4
|
-
`,`
|
|
5
|
-
`);;){let h=l.indexOf(`
|
|
6
|
-
|
|
7
|
-
`);if(h===-1)break;let O=l.slice(0,h);l=l.slice(h+2);let R=ki(O);if(R){if(R.type==="ready"){s();continue}await n(R);}}}}catch(m){if(Ti(m)||t.aborted)return;throw m}finally{s(),o.releaseLock();}})();return {ready:c,closed:u}}applyClientHeader(e){e.has(l)||e.set(l,p(this.clientIdentity.name,this.clientIdentity.version)),this.clientFlags.length>0&&!e.has(h)&&e.set(h,k(this.clientFlags));}async fetchWithAuth(e,t){let n=this.fetchImpl??globalThis.fetch,i=new Headers(t?.headers),o=await at(this.accessToken);o&&i.set("authorization",`Bearer ${o}`),this.applyClientHeader(i);let s=async u=>{try{return await n(e,u)}catch(d){throw Ii(d)?new f("NETWORK",Ai(this.apiUrl)):d}},c=await s({...t,headers:i});if(c.status===401&&typeof this.accessToken=="function"){let u=await at(this.accessToken);if(u&&u!==o){let d=new Headers(t?.headers);return d.set("authorization",`Bearer ${u}`),this.applyClientHeader(d),s({...t,headers:d})}}return c}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 at(this.accessToken);i&&n.set("authorization",`Bearer ${i}`),this.applyClientHeader(n);let o=`${this.apiUrl.replace(/\/$/,"")}${e}`;return {dispatch:async(s,c)=>await t(o,{method:"POST",headers:n,body:s,signal:c,duplex:"half"}),httpError:async s=>await this.httpResponseError(s)}}async httpResponseError(e){let t=`Request failed with status ${e.status}`,n=qr(e.status),i,o,s;try{let c=await e.json();typeof c.error?.message=="string"&&(t=c.error.message),typeof c.error?.code=="string"&&(n=c.error.code,i=c.error.code),typeof c.error?.hint=="string"&&(o=c.error.hint),typeof c.error?.retryAfter=="number"&&(s=c.error.retryAfter);}catch{}return new f(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,c=kr(n,s),u=0,d=(async()=>{let l=async()=>{let h=await i();u+=1,await o(h);},m=await this.trpc.live.issueTicket.mutate({orgName:e,repoName:t}),g=await this.openSse(m.ticket,c,async h=>{h.type==="invalidate"&&await l();});return await g.ready,c.aborted?{updates:u}:(await l(),await g.closed,{updates:u})})();return {close(){s.abort();},closed:d}}};function qr(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 at(r){if(r)return typeof r=="string"?r:r()}function kr(r,e){return r?r.aborted?(e.abort(),e.signal):(r.addEventListener("abort",()=>e.abort(),{once:true}),e.signal):e.signal}function ki(r){let e="message",t=[];for(let i of r.split(`
|
|
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 Ti(r){return r instanceof Error&&r.name==="AbortError"}export{x as A,Qn as B,Oe as C,ks as D,Rr as E,Ts as F,st as G,f as H,a as I,Oi as J,_s as K,Ii as L,Ai as M,Ns as N,vr as O,Hr as a,Fr as b,Wr as c,vt as d,$r as e,ge as f,jr as g,Lt as h,y as i,j,B as k,J as l,Mt as m,U as n,V as o,Rn as p,he as q,ye as r,A as s,_ as t,$e as u,Ft as v,Q as w,H as x,N as y,et as z};//# sourceMappingURL=chunk-GUV5WOJK.js.map
|
|
10
|
-
//# sourceMappingURL=chunk-GUV5WOJK.js.map
|