@warmhub/sdk-ts 0.83.0 → 0.85.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/README.md +13 -0
- package/dist/checkpoint.d.ts +46 -0
- package/dist/checkpoint.js +2 -0
- package/dist/checkpoint.js.map +1 -0
- package/dist/chunk-CNOPJLT7.js +8 -0
- package/dist/chunk-CNOPJLT7.js.map +1 -0
- package/dist/chunk-FDD3D4H7.js +36 -0
- package/dist/chunk-FDD3D4H7.js.map +1 -0
- package/dist/index.d.ts +2156 -500
- package/dist/index.js +1 -2
- package/dist/react.js +1 -79
- package/dist/react.js.map +1 -1
- package/package.json +12 -5
- package/dist/chunk-6AHGGJL6.js +0 -13276
- package/dist/chunk-6AHGGJL6.js.map +0 -1
package/README.md
CHANGED
|
@@ -10,6 +10,19 @@ TypeScript SDK for WarmHub.
|
|
|
10
10
|
npm install @warmhub/sdk-ts
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
+
Node 22 callers verify downloaded repository checkpoints through the isolated
|
|
14
|
+
subpath. The verifier consumes caller-supplied bytes and performs no fetch or
|
|
15
|
+
WarmHub authentication:
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import { createReadStream } from 'node:fs'
|
|
19
|
+
import { verifyRepositoryCheckpointArchive } from '@warmhub/sdk-ts/checkpoint'
|
|
20
|
+
|
|
21
|
+
const result = await verifyRepositoryCheckpointArchive(
|
|
22
|
+
createReadStream('repository-checkpoint.zip'),
|
|
23
|
+
)
|
|
24
|
+
```
|
|
25
|
+
|
|
13
26
|
## Get a Token
|
|
14
27
|
|
|
15
28
|
The `WH_TOKEN` used below is a personal access token. Mint one with the [WarmHub CLI](https://docs.warmhub.ai/get-started/quickstart/#connect-via-cli):
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable failure categories produced by offline checkpoint verification.
|
|
3
|
+
* @see https://docs.warmhub.ai/sdk-reference/type-aliases/repositorycheckpointverificationerrorreason/
|
|
4
|
+
*/
|
|
5
|
+
type RepositoryCheckpointVerificationErrorReason = 'archive_integrity_mismatch' | 'archive_invalid' | 'chunk_invalid' | 'duplicate_durable_id' | 'manifest_invalid' | 'scratch_cleanup_failed' | 'source_failed';
|
|
6
|
+
/**
|
|
7
|
+
* A server-free checkpoint verification failure with no repository row data.
|
|
8
|
+
* @see https://docs.warmhub.ai/sdk-reference/classes/repositorycheckpointverificationerror/
|
|
9
|
+
*/
|
|
10
|
+
declare class RepositoryCheckpointVerificationError extends Error {
|
|
11
|
+
readonly reason: RepositoryCheckpointVerificationErrorReason;
|
|
12
|
+
readonly name = "RepositoryCheckpointVerificationError";
|
|
13
|
+
constructor(reason: RepositoryCheckpointVerificationErrorReason);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Integrity and identity facts advertised by a checkpoint access descriptor.
|
|
17
|
+
* @see https://docs.warmhub.ai/sdk-reference/type-aliases/repositorycheckpointverificationexpected/
|
|
18
|
+
*/
|
|
19
|
+
type RepositoryCheckpointVerificationExpected = {
|
|
20
|
+
readonly checkpointId: string;
|
|
21
|
+
readonly repoSeq: number;
|
|
22
|
+
readonly byteLength: number;
|
|
23
|
+
readonly sha256: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Verified identity, counts, and digests for a complete checkpoint archive.
|
|
27
|
+
* @see https://docs.warmhub.ai/sdk-reference/type-aliases/repositorycheckpointverificationresult/
|
|
28
|
+
*/
|
|
29
|
+
type RepositoryCheckpointVerificationResult = {
|
|
30
|
+
readonly valid: true;
|
|
31
|
+
readonly checkpointId: string;
|
|
32
|
+
readonly repoSeq: number;
|
|
33
|
+
readonly recordCount: number;
|
|
34
|
+
readonly chunkCount: number;
|
|
35
|
+
readonly totalBytes: number;
|
|
36
|
+
readonly rootDigest: string;
|
|
37
|
+
readonly archiveDigest: string;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Stream and verify a repository checkpoint archive without network access.
|
|
42
|
+
* @see https://docs.warmhub.ai/sdk-reference/functions/verifyrepositorycheckpointarchive/
|
|
43
|
+
*/
|
|
44
|
+
declare function verifyRepositoryCheckpointArchive(source: AsyncIterable<Uint8Array> | ReadableStream<Uint8Array>, expected?: RepositoryCheckpointVerificationExpected): Promise<RepositoryCheckpointVerificationResult>;
|
|
45
|
+
|
|
46
|
+
export { RepositoryCheckpointVerificationError, type RepositoryCheckpointVerificationErrorReason, type RepositoryCheckpointVerificationExpected, type RepositoryCheckpointVerificationResult, verifyRepositoryCheckpointArchive };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {y,x,z as z$1,D as D$1,v,A as A$1,B as B$1,C as C$1,w as w$1}from'./chunk-FDD3D4H7.js';import {mkdtemp,chmod,rm,open}from'fs/promises';import {tmpdir}from'os';import {join}from'path';import {createHash}from'crypto';import {Writable}from'stream';import {pipeline}from'stream/promises';import {createInflateRaw,crc32}from'zlib';import {once}from'events';import {createWriteStream,createReadStream}from'fs';var u=class extends Error{constructor(e){super(tt(e));this.reason=e;}reason;name="RepositoryCheckpointVerificationError"};function tt(r){switch(r){case "source_failed":return "Repository checkpoint source could not be read";case "archive_invalid":return "Repository checkpoint archive is invalid";case "archive_integrity_mismatch":return "Repository checkpoint archive integrity does not match";case "manifest_invalid":return "Repository checkpoint manifest is invalid";case "chunk_invalid":return "Repository checkpoint chunk is invalid";case "duplicate_durable_id":return "Repository checkpoint contains a duplicate durable identity";case "scratch_cleanup_failed":return "Repository checkpoint verifier scratch cleanup failed"}}var z=67324752,ot=33639248,at=134695760,ct=101075792,ht=117853008,dt=101010256,H=2056,Y=8,A=45,Z=813,D=65535,l=4294967295,q=33,ut=33188,L=64*1024,ft=new RegExp(`^records/[0-9a-f]{64}/part-\\d{${w$1}}\\.jsonl$`),yt=new TextDecoder("utf-8",{fatal:true}),w=class extends Error{};async function W(r,t){let e=new S(r);try{let i=[],n=new Set,s=!1;for(;await e.peekU32()===z;){if(s)throw new Error("manifest must be the final entry");let a=BigInt(e.position),d=await e.readExact(30);wt(d);let o=d.readUInt16LE(26),y=d.readUInt16LE(28);if(o===0||y!==20)throw new Error("local entry metadata is invalid");let c=G(await e.readExact(o));if(bt(c),n.has(c))throw new Error("archive entry is duplicated");n.add(c),s=c===x,Et(await e.readExact(y));let p=t(c),P=await lt(e,p),Q=await e.readExact(24);gt(Q,P),await p.finish(),i.push({name:c,localOffset:a,...P});}if(!s||i.length===0)throw new Error("archive manifest entry is missing");return await mt(e,i),{...await e.finish(),entryNames:i.map(a=>a.name)}}finally{await e.close();}}async function lt(r,t){let e=createInflateRaw({chunkSize:L}),i=0n,n=0n,s=0,h=new Writable({highWaterMark:L,write(o,y,c){t.write(o).then(()=>{s=crc32(o,s),n+=BigInt(o.byteLength),c();}).catch(p=>{c(p instanceof Error?p:new Error("checkpoint sink failed"));});}}),a=pipeline(e,h),d=a.then(()=>new Promise(()=>{}),o=>Promise.reject(o));d.catch(()=>{});try{for(;!e.readableEnded;){let o=await r.readSome(L);if(!o)throw new Error("archive entry is truncated");let y=e.bytesWritten;await pt(e,o,d);let c=e.bytesWritten-y;if(!Number.isSafeInteger(c)||c<0||c>o.byteLength)throw new Error("archive inflater consumed invalid input");if(i+=BigInt(c),c<o.byteLength&&r.unread(o.subarray(c)),e.readableEnded)break;if(c===0)throw new Error("archive inflater made no progress")}return await a,{crc:s>>>0,compressedSize:i,uncompressedSize:n}}finally{e.destroyed||e.destroy(),await a.catch(()=>{});}}async function pt(r,t,e){let i=new Promise((n,s)=>{r.write(t,h=>{h?s(h):n();});});await Promise.race([i,e]);}async function mt(r,t){let e=BigInt(r.position);for(let d of t){let o=await r.readExact(46);vt(o,d);let y=o.readUInt16LE(28),c=o.readUInt16LE(30);if(c!==28||o.readUInt16LE(32)!==0)throw new Error("central entry metadata is invalid");if(G(await r.readExact(y))!==d.name)throw new Error("central entry order differs");It(await r.readExact(c),d);}let i=BigInt(r.position)-e,n=BigInt(r.position),s=await r.readExact(56);if(m(s,0,ct),s.readBigUInt64LE(4)!==44n||s.readUInt16LE(12)!==Z||s.readUInt16LE(14)!==A||s.readUInt32LE(16)!==0||s.readUInt32LE(20)!==0||s.readBigUInt64LE(24)!==BigInt(t.length)||s.readBigUInt64LE(32)!==BigInt(t.length)||s.readBigUInt64LE(40)!==i||s.readBigUInt64LE(48)!==e)throw new Error("ZIP64 end record is invalid");let h=await r.readExact(20);if(m(h,0,ht),h.readUInt32LE(4)!==0||h.readBigUInt64LE(8)!==n||h.readUInt32LE(16)!==1)throw new Error("ZIP64 locator is invalid");let a=await r.readExact(22);if(m(a,0,dt),a.readUInt16LE(4)!==0||a.readUInt16LE(6)!==0||a.readUInt16LE(8)!==D||a.readUInt16LE(10)!==D||a.readUInt32LE(12)!==l||a.readUInt32LE(16)!==l||a.readUInt16LE(20)!==0)throw new Error("classic ZIP end record is invalid")}function wt(r){if(m(r,0,z),r.readUInt16LE(4)!==A||r.readUInt16LE(6)!==H||r.readUInt16LE(8)!==Y||r.readUInt16LE(10)!==0||r.readUInt16LE(12)!==q||r.readUInt32LE(14)!==0||r.readUInt32LE(18)!==l||r.readUInt32LE(22)!==l)throw new Error("local entry header is invalid")}function Et(r){if(r.readUInt16LE(0)!==1||r.readUInt16LE(2)!==16||r.readBigUInt64LE(4)!==0n||r.readBigUInt64LE(12)!==0n)throw new Error("local ZIP64 extra is invalid")}function gt(r,t){if(m(r,0,at),r.readUInt32LE(4)!==t.crc||r.readBigUInt64LE(8)!==t.compressedSize||r.readBigUInt64LE(16)!==t.uncompressedSize)throw new Error("archive data descriptor is invalid")}function vt(r,t){if(m(r,0,ot),r.readUInt16LE(4)!==Z||r.readUInt16LE(6)!==A||r.readUInt16LE(8)!==H||r.readUInt16LE(10)!==Y||r.readUInt16LE(12)!==0||r.readUInt16LE(14)!==q||r.readUInt32LE(16)!==t.crc||r.readUInt32LE(20)!==l||r.readUInt32LE(24)!==l||r.readUInt16LE(34)!==0||r.readUInt16LE(36)!==0||(r.readUInt32LE(38)>>>16&65535)!==ut||r.readUInt32LE(42)!==l)throw new Error("central entry header is invalid")}function It(r,t){if(r.readUInt16LE(0)!==1||r.readUInt16LE(2)!==24||r.readBigUInt64LE(4)!==t.uncompressedSize||r.readBigUInt64LE(12)!==t.compressedSize||r.readBigUInt64LE(20)!==t.localOffset)throw new Error("central ZIP64 extra is invalid")}function bt(r){if(r!==x&&!ft.test(r))throw new Error("archive entry name is invalid")}function G(r){let t=yt.decode(r);if(Buffer.byteLength(t,"utf8")!==r.byteLength)throw new Error("archive entry name is not canonical UTF-8");return t}function m(r,t,e){if(r.readUInt32LE(t)!==e)throw new Error("archive signature is invalid")}var S=class{#i;#e=createHash("sha256");#t=[];#r=0;#n=false;#o=0;position=0;constructor(t){this.#i=kt(t)[Symbol.asyncIterator]();}async peekU32(){let t=await this.readExact(4);return this.unread(t),t.readUInt32LE(0)}async readExact(t){let e=Buffer.allocUnsafe(t),i=0;for(;i<t;){let n=await this.readSome(t-i);if(!n)throw new Error("archive is truncated");e.set(n,i),i+=n.byteLength;}return e}async readSome(t){for(;this.#t.length===0;)if(!await this.#s())return;let e=this.#t[0],i=e.byteLength-this.#r,n=Math.min(t,i),s=e.subarray(this.#r,this.#r+n);return this.#r+=n,this.position+=n,this.#r===e.byteLength&&(this.#t.shift(),this.#r=0),s}unread(t){if(t.byteLength!==0){if(this.#r>0){let e=this.#t[0].subarray(this.#r);this.#t[0]=e,this.#r=0;}this.#t.unshift(t),this.position-=t.byteLength;}}async finish(){if(this.#t.length>0||await this.#s())throw new Error("archive contains trailing bytes");return {byteLength:this.#o,sha256:this.#e.digest("hex")}}async close(){try{await this.#i.return?.();}catch{}}async#s(){if(this.#n)return false;for(;;){let t;try{t=await this.#i.next();}catch{throw new w}if(t.done)return this.#n=true,false;if(!(t.value instanceof Uint8Array))throw new w;if(t.value.byteLength!==0){if(this.#e.update(t.value),this.#o+=t.value.byteLength,!Number.isSafeInteger(this.#o))throw new Error("archive byte length is unsafe");return this.#t.push(t.value),true}}}};function kt(r){return Symbol.asyncIterator in r?r:{async*[Symbol.asyncIterator](){let t=r.getReader(),e=false;try{for(;;){let{value:i,done:n}=await t.read();if(n){e=!0;return}yield i;}}finally{e||await t.cancel().catch(()=>{}),t.releaseLock();}}}}var _t=4*1024*1024,Bt=8,K=64*1024,Pt=16*1024,f=4,j=4,Nt=1,xt=f+Nt,J=xt+j,E=class extends Error{},b=class{#i;#e;#t=[];#r=0;#n;constructor(t,e={}){this.#i=t;let i=e.sortBudgetBytes??_t;if(this.#n=e.mergeFanIn??Bt,!Number.isSafeInteger(i)||i<J||!Number.isSafeInteger(this.#n)||this.#n<2)throw new Error("checkpoint identity sort limits are invalid");this.#e=new R(i);}add(t){let e=Buffer.byteLength(t,"utf8");if(!this.#e.canFit(e))throw new Error("checkpoint durable identity exceeds the sort budget");if(this.#e.canAdd(e)){this.#e.add(t,e);return}return this.#o(t,e)}async finish(){if(this.#t.length===0){this.#e.sortAndAssertUnique(),this.#e.clear();return}for(this.#e.isEmpty||await this.#o();this.#t.length>this.#n;){let e=[];for(let i=0;i<this.#t.length;i+=this.#n){let n=this.#t.slice(i,i+this.#n),s=this.#s();await Vt(n,s),await Promise.all(n.map(h=>rm(h,{force:true}))),e.push(s);}this.#t=e;}let t;await X(this.#t,e=>{if(t&&_(t,e)===0)throw new E;t=e;});}async#o(t,e){let i=this.#s();this.#e.sortAndAssertUnique(),await Tt(i,this.#e),this.#t.push(i),this.#e.clear(),t!==void 0&&e!==void 0&&this.#e.add(t,e);}#s(){let t=join(this.#i,`identity-run-${String(this.#r).padStart(8,"0")}.bin`);return this.#r+=1,t}},R=class{byteBudget;#i;#e;#t=0;#r=0;constructor(t){this.byteBudget=t;let e=Math.floor(t/J);this.#e=new Uint32Array(e),this.#i=Buffer.allocUnsafe(t-e*j);}get isEmpty(){return this.#r===0}canAdd(t){return this.canFit(t)&&this.#r<this.#e.length&&this.#t+f+t<=this.#i.length}canFit(t){return t<=4294967295&&this.#e.length>0&&f+t<=this.#i.length}add(t,e){if(!this.canAdd(e))throw new Error("checkpoint durable identity exceeds the sort budget");let i=this.#t;this.#e[this.#r]=i,this.#i.writeUInt32BE(e,i),this.#i.write(t,i+f,e,"utf8"),this.#t+=f+e,this.#r+=1;}sortAndAssertUnique(){let t=this.#e.subarray(0,this.#r);t.sort((e,i)=>this.#n(e,i));for(let e=1;e<t.length;e+=1)if(this.#n(t[e-1],t[e])===0)throw new E}clear(){this.#t=0,this.#r=0;}forEachSorted(t){return Ot(this.#e.subarray(0,this.#r),e=>t(this.#s(e)))}#n(t,e){return _(this.#o(t),this.#o(e))}#o(t){let e=this.#i.readUInt32BE(t);return this.#i.subarray(t+f,t+f+e)}#s(t){let e=this.#i.readUInt32BE(t);return this.#i.subarray(t,t+f+e)}};async function Tt(r,t){await $(r,async e=>{let i=new k(e);await t.forEachSorted(n=>i.write(n)),await i.finish();});}async function Vt(r,t){await $(t,async e=>{let i=new k(e);await X(r,n=>i.writeValue(n)),await i.finish();});}async function $(r,t){await(await open(r,"wx",384)).close();let i=createWriteStream(r,{flags:"a",mode:384,highWaterMark:K});try{await t(i),i.end(),await once(i,"close");}catch(n){throw i.destroy(),n}}var k=class{#i;#e=Buffer.allocUnsafe(K);#t=0;constructor(t){this.#i=t;}write(t){if(t.byteLength>this.#e.length)return this.#r(t);if(this.#t+t.byteLength>this.#e.length)return this.#n(t);this.#e.set(t,this.#t),this.#t+=t.byteLength;}writeValue(t){let e=f+t.byteLength;if(e>this.#e.length)return this.#o(t);if(this.#t+e>this.#e.length)return this.#s(t);this.#c(t);}async finish(){await this.#a();}async#r(t){await this.#a(),await I(this.#i,t);}async#n(t){await this.#a(),this.#e.set(t,this.#t),this.#t+=t.byteLength;}async#o(t){await this.#a();let e=Buffer.allocUnsafe(f);e.writeUInt32BE(t.byteLength,0),await I(this.#i,e),await I(this.#i,t);}async#s(t){await this.#a(),this.#c(t);}async#a(){if(this.#t===0)return;let t=this.#e.subarray(0,this.#t);await I(this.#i,t),this.#t=0;}#c(t){this.#e.writeUInt32BE(t.byteLength,this.#t),this.#e.set(t,this.#t+f),this.#t+=f+t.byteLength;}};async function X(r,t){let e=r.map(i=>new C(i));try{for(await Promise.all(e.map(i=>i.advance()));;){let i;for(let s of e)s.current&&(!i||_(s.current,i.current)<0)&&(i=s);if(!i?.current)return;let n=t(i.current);n&&await n,await i.advance();}}finally{for(let i of e)i.close();}}var C=class{#i;#e;#t=Buffer.alloc(0);#r=0;current;constructor(t){this.#i=createReadStream(t,{highWaterMark:Pt}),this.#e=this.#i[Symbol.asyncIterator]();}async advance(){let t=await this.#n(f);if(!t){this.current=void 0;return}let e=t.readUInt32BE(0);if(e===0)throw new Error("checkpoint identity run is invalid");let i=await this.#n(e);if(!i)throw new Error("checkpoint identity run is truncated");this.current=i;}close(){this.#i.destroy();}async#n(t){if(t===0)return Buffer.alloc(0);if(this.#t.length-this.#r>=t){let n=this.#t.subarray(this.#r,this.#r+t);return this.#r+=t,n}let e=Buffer.allocUnsafe(t),i=0;for(;i<t;){if(this.#r<this.#t.length){let s=Math.min(t-i,this.#t.length-this.#r);this.#t.copy(e,i,this.#r,this.#r+s),this.#r+=s,i+=s;continue}let n=await this.#e.next();if(n.done){if(i===0)return;throw new Error("checkpoint identity run is truncated")}this.#t=n.value,this.#r=0;}return e}};async function Ot(r,t){for(let e of r){let i=t(e);i&&await i;}}async function I(r,t){await new Promise((e,i)=>{r.write(t,n=>{n?i(n):e();});});}function _(r,t){let e=Math.min(r.length,t.length);for(let i=0;i<e;i+=1){let n=r[i]-t[i];if(n!==0)return n}return r.length-t.length}var U=class{#i;#e=new Map;#t=new Map;#r=[];#n;constructor(t,e={}){this.#i=new b(t,{sortBudgetBytes:e.identitySortBudgetBytes,mergeFanIn:e.identityMergeFanIn});}openEntry(t){if(t===x){let e=[];return {write:async i=>{e.push(i.slice());},finish:async()=>{this.#n=Buffer.concat(e);}}}return new B(t,this.#e,this.#t,this.#i,e=>this.#r.push(e))}async finish(){if(!this.#n)throw new Error("checkpoint manifest is missing");let t=await z$1(this.#n),e=t.streams.flatMap(i=>i.chunks.map(n=>({...n,shapeName:i.shapeName})));if(e.length!==this.#r.length)throw new Error("checkpoint chunk inventory does not match");for(let[i,n]of e.entries()){let s=this.#r[i];if(s.path!==n.path||s.shapeName!==n.shapeName||s.recordCount!==n.recordCount||s.byteLength!==n.byteLength||s.sha256!==n.sha256)throw new Error("checkpoint chunk integrity does not match")}for(let i of t.streams){let n=this.#e.get(i.shapeName);if(!n||D$1(n)!==i.recordCount)throw new Error("checkpoint stream does not match its manifest")}if(this.#e.size!==t.streams.length)throw new Error("checkpoint contains an undeclared stream");return await this.#i.finish(),{manifest:t,chunkCount:e.length}}},B=class{#i;#e;#t;#r;#n;#o=createHash("sha256");#s=[];#a=0;#c;#h=0;#d=0;constructor(t,e,i,n,s){this.#i=t,this.#e=e,this.#t=i,this.#r=n,this.#n=s;}async write(t){if(this.#o.update(t),this.#d+=t.byteLength,!Number.isSafeInteger(this.#d))throw new Error("checkpoint chunk byte length is unsafe");let e=0;for(;e<t.byteLength;){let i=t.indexOf(10,e);if(i<0)break;let n=this.#u(this.#y(t.subarray(e,i+1)));n&&await n,e=i+1;}e<t.byteLength&&this.#f(t.subarray(e));}async finish(){if(this.#s.length!==0||this.#h===0||!this.#c)throw new Error("checkpoint chunk framing is invalid");if(this.#d>v&&this.#h!==1)throw new Error("oversized checkpoint chunk has multiple rows");this.#n({path:this.#i,shapeName:this.#c,recordCount:this.#h,byteLength:this.#d,sha256:this.#o.digest("hex")});let t=this.#t.get(this.#c);if(!t)throw new Error("checkpoint stream chunk state is missing");t.previous={byteLength:this.#d};}#u(t){let e=A$1(t),i=e.kind==="shape"?e.wref:e.shapeName;if(this.#c!==void 0&&this.#c!==i)throw new Error("checkpoint chunk mixes Shape streams");this.#c=i,this.#h===0&&this.#l(i,t.byteLength);let n=this.#e.get(i)??B$1(i);this.#e.set(i,n),C$1(n,e);let s=this.#r.add(e.durableId);if(this.#h+=1,!Number.isSafeInteger(this.#h))throw new Error("checkpoint chunk row count is unsafe");return s}#f(t){if(t.byteLength!==0&&(this.#s.push(t.slice()),this.#a+=t.byteLength,!Number.isSafeInteger(this.#a)))throw new Error("checkpoint row byte length is unsafe")}#y(t){if(this.#s.length===0)return t;let e=Buffer.concat([...this.#s,t],this.#a+t.byteLength);return this.#s=[],this.#a=0,e}#l(t,e){let i=Number(this.#i.match(/part-(\d{10})\.jsonl$/)?.[1]??-1),n=this.#t.get(t)??{nextPart:0};if(i!==n.nextPart)throw new Error("checkpoint stream chunk parts are not contiguous");if(n.previous&&n.previous.byteLength<=v&&n.previous.byteLength+e<=v)throw new Error("checkpoint stream chunk closed before the byte limit");n.nextPart+=1,this.#t.set(t,n);}};async function Zt(r,t){return qt(r,t)}async function qt(r,t,e={}){let i=await mkdtemp(join(e.scratchParent??tmpdir(),"warmhub-checkpoint-verify-"));await chmod(i,448);let n,s;try{let h=new U(i,e),a=await W(r,y=>h.openEntry(y)),{manifest:d,chunkCount:o}=await h.finish();Wt(t,a,d),n={valid:!0,checkpointId:d.checkpointId,repoSeq:d.repoSeq,recordCount:d.recordCount,chunkCount:o,totalBytes:a.byteLength,rootDigest:d.contentSha256,archiveDigest:a.sha256};}catch(h){s=Gt(h);}try{await rm(i,{recursive:!0,force:!0});}catch{s??=new u("scratch_cleanup_failed");}if(s)throw s;if(!n)throw new u("archive_invalid");return n}function Wt(r,t,e){if(r&&(y.parse(r.sha256),r.checkpointId!==e.checkpointId||r.repoSeq!==e.repoSeq||r.byteLength!==t.byteLength||r.sha256!==t.sha256))throw new u("archive_integrity_mismatch")}function Gt(r){if(r instanceof u)return r;if(r instanceof w)return new u("source_failed");if(r instanceof E)return new u("duplicate_durable_id");let t=r instanceof Error?r.message:"";return t.includes("manifest")?new u("manifest_invalid"):t.includes("chunk")||t.includes("row")||t.includes("Shape stream")?new u("chunk_invalid"):new u("archive_invalid")}export{u as RepositoryCheckpointVerificationError,Zt as verifyRepositoryCheckpointArchive};//# sourceMappingURL=checkpoint.js.map
|
|
2
|
+
//# sourceMappingURL=checkpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/repository-checkpoint/types.ts","../src/repository-checkpoint/archive-reader.ts","../src/repository-checkpoint/identity-sort.ts","../src/repository-checkpoint/content-verifier.ts","../src/repository-checkpoint/verify.ts"],"names":["RepositoryCheckpointVerificationError","reason","messageForReason","LOCAL_SIGNATURE","CENTRAL_SIGNATURE","DESCRIPTOR_SIGNATURE","ZIP64_END_SIGNATURE","ZIP64_LOCATOR_SIGNATURE","CLASSIC_END_SIGNATURE","ZIP_FLAGS","ZIP_METHOD_DEFLATE","ZIP_VERSION_45","ZIP_VERSION_MADE_BY_UNIX","ZIP64_SENTINEL_16","ZIP64_SENTINEL_32","DOS_EPOCH_DATE","REGULAR_FILE_0644","INFLATE_INPUT_BYTES","CHUNK_PATH","CHECKPOINT_PART_DIGITS","utf8Decoder","CheckpointSourceReadError","readCheckpointZip64Archive","source","openEntry","reader","StreamingByteReader","entries","names","manifestSeen","localOffset","header","assertLocalHeader","nameLength","extraLength","name","decodeEntryName","assertEntryName","CHECKPOINT_MANIFEST_NAME","assertLocalExtra","sink","inflated","inflateEntry","descriptor","assertDescriptor","readCentralDirectory","entry","inflater","createInflateRaw","compressedSize","uncompressedSize","crc","output","Writable","bytes","_encoding","done","crc32","error","completed","pipeline","failed","input","before","writeInflateInput","consumed","written","resolve","reject","centralOffset","expected","assertCentralHeader","assertCentralExtra","centralSize","zip64Offset","end","requireU32","locator","classic","extra","offset","value","#iterator","#hash","createHash","#queue","#queueOffset","#sourceDone","#loadedBytes","toAsyncIterable","length","result","chunk","limit","#load","head","available","current","CHECKPOINT_IDENTITY_SORT_BUDGET_BYTES","CHECKPOINT_IDENTITY_MERGE_FAN_IN","RUN_BUFFER_BYTES","RUN_READ_BUFFER_BYTES","IDENTITY_LENGTH_BYTES","OFFSET_BYTES","MINIMUM_IDENTITY_BYTES","MINIMUM_RECORD_BYTES","MINIMUM_RESIDENT_BYTES","DuplicateCheckpointDurableIdError","CheckpointIdentitySorter","#scratchPath","#resident","#runs","#nextRun","#mergeFanIn","scratchPath","options","sortBudgetBytes","ResidentDurableIds","durableId","byteLength","#flushRun","nextRuns","group","#runPath","writeMergedRun","path","rm","previous","mergeRuns","compareUtf8Bytes","nextDurableId","nextByteLength","writeResidentRun","join","#records","#offsets","#recordBytes","#count","byteBudget","offsetCapacity","offsets","left","right","#compareAt","index","consume","each","#recordAt","leftOffset","rightOffset","#valueAt","resident","writeRun","writer","BufferedRunWriter","record","inputs","outputPath","produce","open","createWriteStream","once","#output","#buffer","#length","#flushThenWrite","#flushThenBuffer","recordLength","#flushThenWriteValue","#flushThenBufferValue","#writeValue","#flush","writeChunk","batch","paths","cursors","RunCursor","cursor","selected","#stream","#chunk","#offset","createReadStream","#readExactly","copied","next","values","sharedLength","difference","CheckpointContentVerifier","#identitySorter","#streamStates","#streamChunks","#observedChunks","#manifestBytes","chunks","CheckpointChunkSink","manifest","parseCheckpointManifest","declared","stream","observed","state","finishCheckpointStreamValidation","#path","#completed","#lineFragments","#lineFragmentBytes","#shapeName","#recordCount","#byteLength","streamStates","streamChunks","identitySorter","lf","#consumeRow","#takeLine","#appendLineFragment","CHECKPOINT_CHUNK_BYTE_LIMIT","row","parseCheckpointRowLine","shapeName","#startChunk","createCheckpointStreamValidationState","validateCheckpointStreamRow","flushed","tail","line","firstRowBytes","part","verifyRepositoryCheckpointArchive","verifyRepositoryCheckpointArchiveWithOptions","mkdtemp","tmpdir","chmod","failure","content","archive","chunkCount","assertExpected","mapVerificationError","checkpointSha256Schema","message"],"mappings":"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","file":"checkpoint.js"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import {u,i,l,j,k as k$1,m,E,t,n,o,b,a as a$1,e,h,s,r,G as G$1,F as F$1,f,g,c,d as d$1}from'./chunk-FDD3D4H7.js';import {TRPCClientError,createTRPCProxyClient,splitLink,httpBatchLink,httpLink}from'@trpc/client';import {observable}from'@trpc/server/observable';function ee(n){return {...n,createdAt:new Date(n.createdAt),updatedAt:new Date(n.updatedAt),runStartedAt:new Date(n.runStartedAt),...n.state==="complete"||n.state==="failed"?{completedAt:new Date(n.completedAt)}:{}}}function Et(n){return {...n,expiresAt:new Date(n.expiresAt)}}function We(n){if(typeof n.checkpointId=="string"&&typeof n.repoSeq!="number")return {by:"id",checkpointId:n.checkpointId};if(typeof n.repoSeq=="number"&&typeof n.checkpointId!="string")return {by:"repoSeq",repoSeq:n.repoSeq};throw new TypeError("Repository checkpoint selector must contain exactly one of checkpointId or repoSeq")}function $e(n,e){return {generate:async(t,r,i)=>{try{let o=await n().repo.checkpoint.generate.mutate({orgName:t,repoName:r,atLeastRepoSeq:i?.atLeastRepoSeq});return ee(o.checkpoint)}catch(o){throw e(o)}},status:async(t,r,i)=>{try{let o=await n().repo.checkpoint.status.query({orgName:t,repoName:r,selector:We(i)});return ee(o)}catch(o){throw e(o)}},latest:async(t,r)=>{try{let i=await n().repo.checkpoint.latest.query({orgName:t,repoName:r});return i.checkpoint?ee(i.checkpoint):null}catch(i){throw e(i)}},getAccess:async(t,r,i)=>{try{let o=await n().repo.checkpoint.access.query({orgName:t,repoName:r,selector:i.checkpoint==="latest"?{by:"latest"}:We(i.checkpoint),artifact:i.artifact==="archive"||i.artifact==="manifest"?{kind:i.artifact}:{kind:"chunk",path:i.artifact.chunkPath}});return Et(o)}catch(o){throw e(o)}},retry:async(t,r,i)=>{try{let o=await n().repo.checkpoint.retry.mutate({orgName:t,repoName:r,checkpointId:i});return ee(o.checkpoint)}catch(o){throw e(o)}}}}function H(n,e,t){let r=G$1(e,t==="revise"?{allowUnsafeFieldNamePaths:F$1(e)}:void 0);return r.valid?null:`Invalid shape definition for "${n}": ${r.errors.join("; ")}`}var kt="003e7e6c-2f1e-53ea-9dfa-627edd04a8cc",vt=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;function Ke(n){if(!vt.test(n))throw new Error("Operation-event submission ID must be a canonical UUID");let e=n.toLowerCase().replaceAll("-","");return Uint8Array.from({length:16},(t,r)=>Number.parseInt(e.slice(r*2,r*2+2),16))}function be(n,e){return (n<<e|n>>>32-e)>>>0}function xt(n){let e=n.length*8,t=Math.ceil((n.length+9)/64)*64,r=new Uint8Array(t);r.set(n),r[n.length]=128;let i=new DataView(r.buffer);i.setUint32(t-8,Math.floor(e/4294967296)),i.setUint32(t-4,e>>>0);let o=1732584193,s=4023233417,p=2562383102,c=271733878,u=3285377520,l=new Uint32Array(80);for(let g=0;g<t;g+=64){for(let y=0;y<16;y+=1)l[y]=i.getUint32(g+y*4);for(let y=16;y<80;y+=1)l[y]=be(l[y-3]^l[y-8]^l[y-14]^l[y-16],1);let C=o,h=s,R=p,b=c,I=u;for(let y=0;y<80;y+=1){let S,E;y<20?(S=h&R|~h&b,E=1518500249):y<40?(S=h^R^b,E=1859775393):y<60?(S=h&R|h&b|R&b,E=2400959708):(S=h^R^b,E=3395469782);let T=be(C,5)+S+I+E+l[y]>>>0;I=b,b=R,R=be(h,30),h=C,C=T;}o=o+C>>>0,s=s+h>>>0,p=p+R>>>0,c=c+b>>>0,u=u+I>>>0;}let m=new Uint8Array(20),f=new DataView(m.buffer);for(let[g,C]of [o,s,p,c,u].entries())f.setUint32(g*4,C);return m}function Tt(n){let e=Array.from(n,t=>t.toString(16).padStart(2,"0")).join("").slice(0,32);return `${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20)}`}function te(){let n=globalThis.crypto?.randomUUID?.();if(!n)throw new Error("This runtime cannot mint a cryptographically secure UUID");return n.toLowerCase()}var Nt=te;function Ce(n,e){if(!Number.isInteger(e)||e<0||e>2147483647)throw new Error("Stream chunk ordinal must be an integer from 0 through 2147483647");Ke(n);let t=n.toLowerCase(),r=Ke(kt),i=new TextEncoder().encode(`${t}:${e}`),o=xt(Uint8Array.from([...r,...i])).slice(0,16);return o[6]=o[6]&15|80,o[8]=o[8]&63|128,Tt(o)}var _t=new Set(["arc","bond","pair","set","list"]);function V(n,e){let t=Ge(n,e,"add");return {operation:"add",kind:"collection",name:t.name,type:t.type,members:t.members,...n.skipExisting===true?{skipExisting:true}:{}}}function re(n,e){let t=Ge(n,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 n.expectedVersion=="number"?{expectedVersion:n.expectedVersion}:{},...typeof n.leaseId=="string"&&n.leaseId.length>0?{leaseId:n.leaseId}:{}}}function Ge(n,e,t$1){let r=t({operation:t$1,kind:"collection",name:typeof n.name=="string"?n.name:void 0,type:typeof n.type=="string"?n.type:void 0,members:Array.isArray(n.members)?n.members:void 0},0);if(r.length>0)throw new Error(`${e}: ${r.map(s=>s.message).join("; ")}`);let i=Lt(n.type);if(!i)throw new Error(`${e}: collection ${t$1} requires 'type'. Use one of: arc, bond, set, list`);if(!Array.isArray(n.members))throw new Error(`${e}: collection ${t$1} requires a 'members' array`);let o=Dt(n.name);if(!o)throw new Error(`${e}: collection ${t$1} name must be a non-empty string`);return Pt(n,e,t$1),{name:o,type:i,members:n.members}}function Pt(n,e,t){let r=["about","aboutWref","shapeWref","data",...t==="revise"?["skipExisting"]:[]].filter(i=>n[i]!==void 0);if(r.length>0)throw new Error(`${e}: collection ${t} does not support ${r.map(i=>`'${i}'`).join(", ")}`)}function Lt(n){if(typeof n!="string")return;let e=n.trim();if(_t.has(e))return e}function Dt(n){if(typeof n=="string"&&!(n.length===0||n.trim()!==n))return n}function ne(n){if(n.expectedVersion!==void 0&&n.operation!=="revise"&&n.operation!=="retract")throw new Error("expectedVersion is only valid on revise or retract operations \u2014 set an explicit operation discriminator");if(n.operation==="retract")return {operation:"retract",name:n.name,...n.kind?{kind:n.kind}:{},...n.reason?{reason:n.reason}:{},...n.expectedVersion!==void 0?{expectedVersion:n.expectedVersion}:{},...n.leaseId?{leaseId:n.leaseId}:{}};if(n.operation==="rename")return {operation:"rename",name:n.name,newName:n.newName,...n.kind?{kind:n.kind}:{}};if(n.operation==="revise"){let r=n.name??n.wref;if(!r)throw new Error("revise operation requires a target");let i=h({kind:n.kind,name:r});if(Object.hasOwn(n,"active"))throw new Error(`${i} revise operation no longer supports 'active' \u2014 use retract('${r}') instead`);if(i==="collection")return re(n,"commit.apply");if(n.data===void 0)throw new Error(`${i} revise operation requires 'data'`);return i==="assertion"?{operation:"revise",kind:"assertion",name:r,data:n.data,...n.expectedVersion!==void 0?{expectedVersion:n.expectedVersion}:{},...n.leaseId?{leaseId:n.leaseId}:{}}:{operation:"revise",kind:i,name:r,data:n.data,...n.expectedVersion!==void 0?{expectedVersion:n.expectedVersion}:{},...n.leaseId?{leaseId:n.leaseId}:{}}}let e=h(n),t="skipExisting"in n?n.skipExisting:void 0;if(e!=="collection"&&("type"in n&&n.type!==void 0||"members"in n&&n.members!==void 0))throw new Error(`add operation '${n.name??""}' has collection fields but resolved kind '${e}' \u2014 collection adds require both 'type' and 'members', or set kind: 'collection'`);if(e==="collection")return V({...n,skipExisting:t},"commit.apply");if(!n.name)throw new Error("add operation requires a name");if(e==="assertion"){if(!("about"in n)||n.about===void 0)throw new Error("assertion add operation requires 'about'");if(typeof n.about!="string")throw new Error(s);if(n.data===void 0)throw new Error("assertion add operation requires 'data'");return {operation:"add",kind:"assertion",name:n.name,about:n.about,data:n.data,...t===true?{skipExisting:t}:{}}}if(n.data===void 0)throw new Error(`${e} add operation requires 'data'`);return {operation:"add",kind:e,name:n.name,data:n.data,...t===true?{skipExisting:t}:{}}}var ie=1e3,oe=1e4,k=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);}},x=class extends Error{code="STREAM_ALL_OPERATIONS_FAILED";receipts;result;operations;statusCounts;cause;constructor(e){let t=e.operations.find(r=>r.error!==void 0)?.error;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 F(n){let e="status"in n?n.status:void 0;return e==="failed"?"error":e==="noop"||n.operation==="noop"?"noop":"applied"}function se(n){let e={applied:0,noop:0,error:0};for(let t of n)e[F(t)]++;return e}var Mt={maxAttempts:3,baseDelayMs:250,maxDelayMs:8e3},qt=10,ze=6e4;function Se(n){if(n===false)return false;let e={};n!==void 0&&(Number.isFinite(n.maxAttempts)&&(e.maxAttempts=n.maxAttempts),Number.isFinite(n.baseDelayMs)&&(e.baseDelayMs=n.baseDelayMs),Number.isFinite(n.maxDelayMs)&&(e.maxDelayMs=n.maxDelayMs));let t={...Mt,...e};return {maxAttempts:Math.min(qt,Math.max(1,Math.trunc(t.maxAttempts))),baseDelayMs:Math.min(ze,Math.max(0,Math.trunc(t.baseDelayMs))),maxDelayMs:Math.min(ze,Math.max(0,Math.trunc(t.maxDelayMs)))}}var Ut=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"]),Bt=new Set(["COMMIT_OUTCOME_UNKNOWN"]);function Ye(n){if(!n||typeof n!="object")return;let e=n.code;if(typeof e=="string")return e;let t=n.data,r=t?.warmhub?.code;if(typeof r=="string")return r;let i=t?.code;if(typeof i=="string")return i}function Ht(n){if(!n||typeof n!="object")return;let e=n.data?.httpStatus;if(typeof e=="number")return e;let t=n.data?.warmhub?.status;if(typeof t=="number")return t;let r=n.status;return typeof r=="number"?r:void 0}function Vt(n){return n!==void 0&&n>=400&&n<500&&n!==408}function Qe(n){let e=Ye(n);return e!==void 0&&Bt.has(e)}function W(n){if(Qe(n))return false;let e=Ye(n);return e!==void 0&&Ut.has(e)||Vt(Ht(n))}function we(n){if(Qe(n)||W(n))return false;if(je(n))return true;if(n instanceof TypeError||n instanceof SyntaxError)return false;let e=n?.cause;return je(e)?true:!(e instanceof TypeError||e instanceof SyntaxError)}function je(n){return n instanceof TypeError&&/fetch/i.test(n.message)}function Ae(n,e){let t=e.baseDelayMs*2**Math.max(0,n-1),r=Math.random()*e.baseDelayMs;return Math.min(e.maxDelayMs,t+r)}function Oe(n){return new Promise(e=>setTimeout(e,n))}var $=class extends Error{code;status=400;constructor(e,t="VALIDATION_ERROR"){super(e),this.code=t,this.name="WarmHubError";}};async function L(n,e){if(e.operations.length===0)throw new $("At least one operation is required for stream submission.");let t=e.operations.map((h,R)=>{let b;try{b=ne(h);}catch(I){let y=I instanceof Error?I.message:String(I);throw new $(`Invalid operation at index ${R}: ${y}`)}return e.skipExisting===true&&b.operation==="add"?{...b,skipExisting:true}:b});Wt(t);let r=Kt(e.chunkSize),i=e.submissionId??te(),o=e.streamId??i,s=Se(e.retry),p=[],c,u,l=[],m=[],f=0,g;for(let[h,R]of Gt(t,r).entries()){let b=Ce(i,h),I=1,y=false;for(;;)try{let S=await n.stream.append({allocatedTokenRanges:p,chunkOrdinal:h,orgName:e.orgName,repoName:e.repoName,streamId:o,submissionId:i,componentRef:e.componentRef,committer:e.committer,message:e.message,...e.returnRepoSeq!==void 0?{returnRepoSeq:e.returnRepoSeq}:{},operations:R.operations}),E=S.receipt;m.push(E),p=S.allocatedTokenRanges,c=S.createdByEmail??c,u=S.repoSeq??u,l.push(...Ie(S.results,R.start)),f+=R.operations.length;let T=Ft(E);T!==void 0&&(g=T);break}catch(S){let E=W(S);if(m.length===0&&!y&&E)throw S;if(s!==false&&I<s.maxAttempts&&we(S)){await Oe(Ae(I,s)),I+=1,y=true;continue}let T=y||!E?"unknown":"absent";throw new k({cause:S,completedReceipts:m,completedOperations:Ee(ae({committer:e.committer,createdByEmail:c,message:e.message,operations:t,repoSeq:u,receipts:m,results:l})),acknowledgedOperationCount:f,lastAcknowledgedRepoSeq:g,attemptedAppendOutcome:T==="absent"?"not_applied":"unknown",submissionId:i,eventRequestId:b,chunkOrdinal:h,pendingOutcome:T})}}let C=ae({committer:e.committer,createdByEmail:c,message:e.message,operations:t,repoSeq:u,receipts:m,results:l});if(C.operations.length>0&&C.operations.every(h=>h.status==="error"))throw new x(C);return C}function Ft(n){let e=n.event?.repoSeq;if(e===void 0)return;let t=Number(e);return Number.isSafeInteger(t)?t:void 0}function Wt(n){let t=u(n).filter(r=>!$t(r))[0];if(t)throw new $(`Invalid operation at index ${t.operationIndex}: ${t.message}`,t.code)}function $t(n){return n.code==="ILLEGAL_OP_SEQUENCE"&&n.message.includes("Cannot revise then add ")}function Kt(n){return Number.isFinite(n)?Math.max(1,Math.min(oe,Math.trunc(n))):ie}function Gt(n,e){let t=[];for(let r=0;r<n.length;r+=e)t.push({operations:n.slice(r,r+e),start:r});return t}function Ie(n,e){return n.map((t,r)=>({...t,opIndex:e+(t.opIndex??r)}))}function ae(n){let e=se(n.results),t=e.error>0;return {...n.committer!==void 0?{committer:n.committer}:{},...n.createdByEmail!==void 0?{createdByEmail:n.createdByEmail}:{},message:n.message,operationCount:n.results.length,...n.repoSeq!==void 0?{repoSeq:n.repoSeq}:{},...t?{partial:t,statusCounts:e}:{},operations:n.results.map(r=>({...r.opIndex!==void 0?{opIndex:r.opIndex}:{},name:r.name??"",operation:r.operation==="revise"||r.operation==="retract"||r.operation==="rename"||r.operation==="noop"?r.operation:"add",dataHash:r.dataHash??"",version:r.version??0,status:F(r),error:r.error,...r.status==="failed"&&r.opIndex!==void 0&&n.operations[r.opIndex]?.name!==void 0?{submittedName:n.operations[r.opIndex]?.name}:{},...r.resolvedName!==void 0?{resolvedName:r.resolvedName}:{},...r.retryable!==void 0?{retryable:r.retryable}:{},...r.warnings?{warnings:r.warnings}:{}})),receipts:n.receipts}}function Ee(n){return n.operations.filter(e=>e.status!=="error")}var zt="0.0.0-development";function D(n){return n===zt}var ke="0.85.0";var Je=1;function jt(n){return n===c?"Run: wh update --yes":n===b?"Run: npm install @warmhub/sdk-ts@latest (or your package manager's equivalent).":n===d$1?"Run: pip install --upgrade warmhub":`Deploy a released ${n} build that satisfies the backend compatibility contract.`}function Xe(n$1,e){if(typeof n$1?.minSupportedClients!="object"||n$1.minSupportedClients===null||!Number.isSafeInteger(n$1.writeContractVersion)||n$1.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=n$1.minSupportedClients[e.name];if(typeof t!="string"||!n(t))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(!D(e.version)){if(!n(e.version))return {message:`${e.name} reported malformed version "${e.version}".`,hint:"Use a released WarmHub client with a SemVer package version."};if(o(e.version,t)<0)return {message:`${e.name} ${e.version} is older than the backend's minimum supported version ${t}.`,hint:jt(e.name)}}if(n$1.writeContractVersion<Je)return {message:`${e.name} requires write contract ${Je}, but the backend provides ${n$1.writeContractVersion}.`,hint:"Upgrade the WarmHub backend before retrying this write."}}function ve(n,e){try{return new URL(n).origin===new URL(e).origin}catch{return false}}var Yt=new Set(["GET","POST","PUT","PATCH","DELETE"]),w=class extends Error{reason;constructor(e,t){super(t),this.name="CliCallVerificationError",this.reason=e;}};async function Qt(n,e,t){let r=n.method.toUpperCase();if(!Yt.has(r))throw new w("unsupported-method",`Unsupported HTTP method "${n.method}" \u2014 component CLI dispatch only emits GET, POST, PUT, or PATCH`);let i$1=r,o=n.headers.get(i);if(!o)throw new w("missing-install-repo",`Missing ${i} header`);let s=M(e.CLI_SIGNING_SECRET),p=M(e.CLI_BEARER_TOKEN),c=M(e.CLI_API_KEY),u=M(e.CLI_BASIC_USERNAME)&&M(e.CLI_BASIC_PASSWORD);if(!s&&!p&&!c&&!u)throw new w("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(p&&u)throw new w("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$1=new URL(n.url),m$1=l$1.pathname,f,g,C;if(l(i$1)?f={}:(f=Object.fromEntries(l$1.searchParams.entries()),g="",C={...f}),s){let h=n.headers.get(j);if(!h)throw new w("missing-signature",`Missing ${j} header`);let R=n.headers.get(k$1);if(!R)throw new w("missing-timestamp",`Missing ${k$1} header`);let b=Number(R);if(!Number.isFinite(b)||!Number.isInteger(b))throw new w("invalid-timestamp",`${k$1} must be an integer unix seconds value; got "${R}"`);g=await Ze(n,i$1,g);let I=await m({secret:e.CLI_SIGNING_SECRET,method:i$1,path:m$1,query:f,installRepo:o,body:g,signature:h,timestamp:b,nowUnixSeconds:t?.nowUnixSeconds??Math.floor(Date.now()/1e3),toleranceSec:t?.toleranceSec});if(!I.ok)throw new w(I.reason,`HMAC verification failed: ${I.reason}`)}if(p){let h=`Bearer ${e.CLI_BEARER_TOKEN}`,R=n.headers.get("authorization")??"";if(!await xe(R,h))throw new w("invalid-bearer","invalid-bearer: bearer token mismatch")}if(c){let h=M(e.CLI_API_KEY_HEADER)?e.CLI_API_KEY_HEADER:"X-API-Key",R=n.headers.get(h)??"";if(!await xe(R,e.CLI_API_KEY))throw new w("invalid-api-key",`invalid-api-key: mismatch on header "${h}"`)}if(u){let h=`Basic ${btoa(`${e.CLI_BASIC_USERNAME}:${e.CLI_BASIC_PASSWORD}`)}`,R=n.headers.get("authorization")??"";if(!await xe(R,h))throw new w("invalid-basic","invalid-basic: basic auth mismatch")}return C===void 0&&(g=await Ze(n,i$1,g),C=Jt(g)),{method:i$1,installRepo:o,args:C}}async function Ze(n,e,t){return l(e)?t!==void 0?t:n.text():""}function Jt(n){let e;try{e=JSON.parse(n);}catch{throw new w("invalid-body","POST body is not valid JSON")}if(!Xt(e))throw new w("invalid-body","POST body must be a JSON object of primitive args (string / number / boolean)");return e}function M(n){return typeof n=="string"&&n.length>0}function Xt(n){if(typeof n!="object"||n===null||Array.isArray(n))return false;for(let e of Object.values(n))if(e!==void 0&&typeof e!="string"&&typeof e!="number"&&typeof e!="boolean")return false;return true}async function xe(n,e){let[t,r]=await Promise.all([et(n),et(e)]),i=0;for(let o=0;o<t.length;o++)i|=t[o]^r[o];return i===0}async function et(n){return new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(n)))}function Ne(n){if(n.includes("/"))return n.split("/")[0]}function tt(n){if("shapeWref"in n&&typeof n.shapeWref=="string")return n.shapeWref;if(n.name)return Ne(n.name)}function Te(n){if(typeof n!="string")return;let e=n.trim();return e.length>0?e:void 0}function q(n){return h({kind:n.kind,name:n.name,about:ue(n),type:ce(n),members:pe(n)})}function ue(n){if("about"in n&&n.about!==void 0)return n.about;if("aboutWref"in n)return n.aboutWref}function _e(n){return "data"in n?n.data:void 0}function ce(n){return "type"in n?n.type:void 0}function pe(n){return "members"in n?n.members:void 0}function K(n,e){return h({kind:n.kind,name:e})}function rt(n){if(n.operation==="retract")return ne(n);if(n.operation==="add"){let r=q(n);if(r==="collection")return V(n,"OperationBuilder");let i=n,o=Te(i.name);if(!o)throw new Error("OperationBuilder: add operation missing name");if(r==="assertion"){let s$1=ue(i);if(s$1===void 0)throw new Error(`OperationBuilder: assertion add '${o}' missing required 'about'`);if(typeof s$1!="string")throw new Error(s);return {operation:"add",kind:r,name:o,about:s$1,data:i.data??{},...i.skipExisting===true?{skipExisting:true}:{}}}return {operation:"add",kind:r,name:o,data:i.data??{},...i.skipExisting===true?{skipExisting:true}:{}}}let e=Te(n.name)??Te(n.wref);if(!e)throw new Error("OperationBuilder: revise operation missing required target ('name' or 'wref')");let t=K(n,e);return t==="collection"?re({...n,name:e},"OperationBuilder"):{operation:"revise",kind:t,name:e,data:n.data??{},...n.expectedVersion!==void 0?{expectedVersion:n.expectedVersion}:{},...n.leaseId?{leaseId:n.leaseId}:{}}}function N(n,e){return n.operation==="add"?{operation:n.operation,kind:e,name:n.name,about:ue(n),type:ce(n),members:pe(n)}:{operation:n.operation,kind:e,name:n.name??n.wref,type:ce(n),members:pe(n)}}function nt(n){if(n.length!==0)throw new Error(n.join("; "))}function it(n,e,t,r){let i=[];if((e==="thing"||e==="assertion"||e==="collection"&&n==="REVISE")&&(g(t)||i.push(`${n} ${e} name must be a local path (Shape/name), got: "${t}"`)),e==="shape"&&(n==="ADD"||n==="REVISE")&&r!==void 0){let s=H(t,r,n==="REVISE"?"revise":"add");s&&i.push(s);}return i}function ot(n,e){let t$1=[];if(n.name&&t$1.push(...it("ADD",e,n.name,_e(n))),e==="assertion"&&ue(n)===void 0&&t$1.push(`ADD assertion '${n.name}' missing required 'about' \u2014 for hierarchical thing names set kind: 'thing' explicitly`),e!=="collection"&&(ce(n)!==void 0||pe(n)!==void 0)&&t$1.push(`ADD '${n.name}' has collection fields but inferred kind '${e}' \u2014 collection adds require both 'type' and 'members', or set kind: 'collection'`),e==="collection")try{V(n,"OperationBuilder");}catch(r){t$1.push(r instanceof Error?r.message:String(r));}for(let r of t(N(n,e),0))t$1.push(r.message);nt(t$1);}function st(n,e,t$1){let r=[];n!=="collection"&&t$1.data===void 0&&r.push(`OperationBuilder: ${n} revise requires 'data'`),r.push(...it("REVISE",n,e,t$1.data),...t(N({...t$1,name:e},n),0).map(i=>i.message)),nt(r);}var le=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 r=tt(t),i=_e(t);if(this.shapes&&r&&i!==void 0){let c=this.shapes[r];if(c){let u=E(i,c);if(!u.valid)throw new Error(`Shape validation failed for '${t.name}' (shape: ${r}): ${u.errors.join("; ")}`)}}let o={operation:"add",...t},s=q(o);(o.name||s==="collection")&&ot(o,s);let p=Object.freeze({operation:"add",...t});return this.ops.push(p),t.name&&(this.pendingNames.add(t.name),r&&this.wrefToShape.set(t.name,r)),this}revise(e){this.assertCanModify();let t={...e};delete t.operation;let r=t.name??t.wref;if(this.shapes&&r&&t.data!==void 0){let o=this.wrefToShape.get(r)??Ne(r);if(o){let s=this.shapes[o];if(s){let p=E(t.data,s);if(!p.valid)throw new Error(`Shape validation failed for revise '${r}' (shape: ${o}): ${p.errors.join("; ")}`)}}}if(r){let o=K({...t},r);st(o,r,{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}get operations(){return Object.freeze([...this.ops])}get size(){return this.ops.length}has(e){return this.pendingNames.has(e)}validate(){let e=[],t$1=[],r=new Set,i=new Set;for(let c=0;c<this.ops.length;c+=1){let u=this.ops[c];if(u){if(u.operation==="add"){let l=q(u);!u.name&&l!=="collection"?e.push({code:"MISSING_NAME",operationIndex:c,message:`Add operation at index ${c} is missing required 'name' field`}):u.name&&(r.has(u.name)&&e.push({code:"DUPLICATE_NAME",operationIndex:c,message:`Duplicate name '${u.name}' at index ${c} (already added earlier in commit)`}),r.add(u.name));}if(u.operation==="revise"){let l=u.name??u.wref;l?i.has(l)?e.push({code:"REVISE_AFTER_RETRACT",operationIndex:c,message:`Revise at index ${c} targets '${l}' which was already retracted in this commit`}):r.has(l)||t$1.push({code:"REVISE_UNKNOWN_WREF",operationIndex:c,message:`Revise at index ${c} references '${l}' which was not added in this commit (assuming it exists server-side)`}):e.push({code:"MISSING_WREF",operationIndex:c,message:`Revise operation at index ${c} is missing required target ('name' or 'wref')`});}u.operation==="retract"&&(u.name?i.has(u.name)?t$1.push({code:"RETRACT_AFTER_RETRACT",operationIndex:c,message:`Retract at index ${c} targets '${u.name}' which was already retracted in this commit`}):(r.has(u.name)||t$1.push({code:"RETRACT_UNKNOWN_WREF",operationIndex:c,message:`Retract at index ${c} references '${u.name}' which was not added in this commit (assuming it exists server-side)`}),i.add(u.name)):e.push({code:"MISSING_NAME",operationIndex:c,message:`Retract operation at index ${c} is missing required 'name' field`}));}}let o=this.ops.flatMap((c,u)=>{if(c.operation==="add")return t(N(c,q(c)),u);if(c.operation==="revise"){let l=c.name??c.wref;return t(N(c,l?K(c,l):"thing"),u)}return t({operation:"retract",kind:c.kind,name:c.name},u)});for(let c of o)e.push({code:c.code,operationIndex:c.operationIndex,message:c.message});let s=this.ops.flatMap((c,u)=>{if(c.operation==="retract")return [];if(c.operation==="add")return [{op:N(c,q(c)),operationIndex:u}];let l=c.name??c.wref;return [{op:N(c,l?K(c,l):"thing"),operationIndex:u}]}),p=u(s.map(({op:c})=>c),{checkAddAdd:false,sourceOperationIndexes:s.map(({operationIndex:c})=>c)});for(let c of p)e.push({code:c.code,operationIndex:c.operationIndex,message:c.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$1}}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 r=t.errors.map(i=>i.message).join("; ");throw new Error(`OperationBuilder validation failed: ${r}`)}this.inFlight=true;try{let r=this.ops.map(o=>rt(o)),i=await L(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:r});return this.submitted=!0,i}catch(r){throw r instanceof k&&(this.submitted=true),r}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 kn(n){return n.replace(/@(?:v\d+|HEAD|ALL)$/i,"")}var Ct=["apiUrl","fetch","accessToken","auth","functionLogs","client"],sr=new Set(Ct),ar=new Set(["token","apiKey","bearer"]);function cr(n){if(n)for(let e of Object.keys(n)){if(sr.has(e))continue;let t=ar.has(e)?'; did you mean "accessToken"?':`. Valid options are: ${Ct.join(", ")}.`;throw new TypeError(`Unknown WarmHubClient option "${e}"${t}`)}}var Pe="https://api.warmhub.ai",pr=new Set(["repo.shapeInstanceCounts","thing.getMany","thing.headVersions"]),at=500,ct=500,pt=1,ut=8;function he(n){return {...n,actionContainer:void 0,actionContainerConfig:void 0}}function ur(n){return n.map(e=>he(e))}function St(n,e,t){if(e===n||t.has(e))throw new d("VALIDATION_ERROR","Paginated result cursor did not advance")}function lt(n){if(n===void 0)throw new d("VALIDATION_ERROR","sinceRepoSeq is required for an incremental read")}async function*wt(n,e){let t=e,r=new Set;for(;;){t&&r.add(t);let i=await n(t);if(yield i,!i.nextCursor)return;St(t,i.nextCursor,r),t=i.nextCursor;}}async function*A(n,e,t){for await(let r of wt(n,t))yield*e(r);}async function O(n,e,t,r){if(t!==void 0&&(!Number.isFinite(t)||Math.trunc(t)!==t||t<0))throw new d("VALIDATION_ERROR","max must be a nonnegative integer");let i=[];for await(let o of wt(n,r)){let s=e(o);if(t!==void 0&&i.length+s.length>t)throw new d("VALIDATION_ERROR",`Paginated result exceeded max=${t}`);i.push(...s);}return i}function dt(n){if(n?.slugs!==void 0)throw new d("VALIDATION_ERROR","repo.explore pagination helpers do not support slugs mode")}async function mt(n){let e=[],t,r=new Set;for(;;){t&&r.add(t);let i=await n(t);if(e.push(...i.items),!i.nextCursor){if(i.repoSeq===void 0)throw new d("VALIDATION_ERROR","Incremental read completed without repoSeq");return {items:e,repoSeq:i.repoSeq}}St(t,i.nextCursor,r),t=i.nextCursor;}}function de(n,e,t){return Number.isFinite(n)?Math.max(1,Math.min(t,Math.trunc(n))):e}function ht(n,e){let t=[];for(let r=0;r<n.length;r+=e)t.push(n.slice(r,r+e));return t}function me(n){return n!==void 0&&f.includes(n)?n:void 0}function G(n){let[e,t,r]=n;return typeof e=="string"?{orgName:e,repoName:t,name:r}:e}function lr(n){let[e,t]=n;return typeof e=="string"?{orgName:e,repoName:t}:e}function dr(n){let[e,t,r,i]=n;return typeof e=="string"?{orgName:e,repoName:t,subscriptionName:r,credentialSetName:i}:e}function mr(n){let[e,t,r]=n;return typeof e=="string"?{orgName:e,repoName:t,subscriptionName:r}:e}function hr(n){let{actionContainer:e,actionContainerConfig:t,...r}=n;return r}function gr(n){let{actionContainer:e,actionContainerConfig:t,...r}=n;return r}function ge(n){return !!n&&(!!n.shape||!!n.kind||!!n.about||!!n.match||!!n.componentRef||n.excludeComponents===true||(n.where?.length??0)>0)}function ye(n){return !!n&&(!!n.shape||!!n.about||!!n.match||!!n.componentRef||(n.where?.length??0)>0)}function At(n){let e=n.members;return Array.isArray(e)&&e.length>0}function yr(n){let t=n.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 fr(n,e){if(ge(e.query)&&!ye(e.query))throw new d("VALIDATION_ERROR","Selector-backed collection sources require shape, about, match, componentRef, or where; kind and excludeComponents only narrow an existing selector.");if(e.sourceRepo&&!ye(e.query))throw new d("VALIDATION_ERROR","sourceRepo requires a selector-backed collection query");if(e.sourceRepo&&At(e))throw new d("VALIDATION_ERROR","sourceRepo cannot be combined with explicit members; use canonical wh:org/repo/... member wrefs or omit sourceRepo.");if(ge(e.query)&&n!=="set")throw new d("VALIDATION_ERROR","Selector-backed collection sources are only supported for set collections")}function vn(n){return n??"off"}function Rr(n){switch(n){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 br(n){if(n===void 0||n===408)return;if(n===405)return "NOT_FOUND";if(n===412)return "PRECONDITION_FAILED";if(n===422)return "VALIDATION_ERROR";let e=It(n);return e!=="BACKEND"?e:n>=400&&n<500?"VALIDATION_ERROR":e}var Cr=[/\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 Le(n){for(let e of Cr)if(e.test(n))return "An internal error occurred. Please try again or contact support.";return n}var d=class extends Error{code;status;hint;retryAfter;errorCode;backendCode;details;constructor(e,t,r,i,o,s,p){super(t),this.name="WarmHubError",this.code=e,this.status=r,this.hint=i,this.retryAfter=o,this.errorCode=s,this.backendCode=s,this.details=p;}get kind(){return this.code}};function gt(n,e){if(typeof e!="string")return;let t=r(n,e);if(t)throw new d("VALIDATION_ERROR",t)}function a(n){if(n instanceof d)return n;if(n instanceof TRPCClientError){if(n.cause instanceof d)return n.cause;let e=n.data,t=e?.warmhub?.code,r=typeof e?.code=="string"?Rr(e.code):void 0,i=br(e?.httpStatus),o=e?.warmhub?.message??Le(n.message);return new d(t??r??i??"BACKEND",o,e?.warmhub?.status??e?.httpStatus,e?.warmhub?.hint,e?.warmhub?.retryAfter??e?.retryAfter,t,e?.warmhub?.details)}if(n instanceof Error){let e=n;return n.name==="WarmHubError"&&typeof e.code=="string"?new d(e.code,Le(n.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):n.name==="AbortError"?new d("CANCELLED",n.message):n instanceof TypeError&&/fetch/i.test(n.message)?new d("NETWORK",n.message):new d("BACKEND",Le(n.message))}return new d("BACKEND","Unknown SDK error")}function Sr(n){return n instanceof d}function xn(n){let e=a(n);return e.kind==="NETWORK"||e.kind==="CANCELLED"||e.kind==="BACKEND"||e.kind==="RATE_LIMITED"}var wr=new Set(["ConnectionRefused","ECONNREFUSED","ENOTFOUND","ETIMEDOUT","EAI_AGAIN"]);function Ar(n){if(n instanceof TypeError&&/fetch/i.test(n.message))return true;if(n&&typeof n=="object"){let e=n.code;if(typeof e=="string"&&wr.has(e))return true}return false}function Or(n){return `Unable to connect to ${n}. Is the computer able to access the url?`}function Tn(n$1,e){return D(n$1)||!n(n$1)||!n(e)?false:o(n$1,e)<0}function Ot(n,e){return new d("CLIENT_INCOMPATIBLE",n,412,e)}function Ir(n,e){let t=Xe(n,e);if(t)throw Ot(t.message,t.hint)}var yt=class n{apiUrl;fetchImpl;accessToken;clientIdentity;functionLogMode;getToken;compatibilityCheck;assertWriteCompatible(){return D(this.clientIdentity.version)&&ve(this.apiUrl,Pe)?Promise.reject(Ot(`Development client ${this.clientIdentity.name}/${this.clientIdentity.version} cannot write to production.`,"Install a released WarmHub client artifact before writing to api.warmhub.ai.")):D(this.clientIdentity.version)&&!ve(this.apiUrl,Pe)?Promise.resolve():this.diagnostics.assertCompatible()}createCompatibilityLink(){return ()=>({op:e,next:t})=>e.type!=="mutation"?t(e):observable(r=>{let i=false,o;return this.assertWriteCompatible().then(()=>{i||(o=t(e).subscribe(r));}).catch(s=>{i||r.error(TRPCClientError.from(s));}),()=>{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 d("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();Ir(t,this.clientIdentity);})();return this.compatibilityCheck=e,e.catch(t=>{Sr(t)&&t.code==="CLIENT_INCOMPATIBLE"||this.compatibilityCheck===e&&(this.compatibilityCheck=void 0);}),e}};component={list:async(e,t,r)=>{try{return await this.trpc.component.list.query({orgName:e,repoName:t,limit:r?.limit,cursor:r?.cursor})}catch(i){throw a(i)}},listIter:(e,t,r)=>A(i=>this.component.list(e,t,{...r,cursor:i}),i=>i.items,r?.cursor),listAll:async(e,t,r)=>{let{max:i,...o}=r??{};return await O(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(r){throw a(r)}},searchIter:(e,t)=>A(r=>this.component.search(e,{...t,cursor:r}),r=>r.items,t?.cursor),searchAll:async(e,t)=>{let{max:r,...i}=t??{};return await O(o=>this.component.search(e,{...i,cursor:o}),o=>o.items,r,i.cursor)},get:async(e,t,r)=>{try{return await this.trpc.component.get.query({orgName:e,repoName:t,componentRef:r})}catch(i){throw a(i)}},history:async(e,t,r)=>{try{return await this.trpc.component.history.query({orgName:e,repoName:t,componentRef:r?.componentRef,limit:r?.limit})}catch(i){throw a(i)}},install:async(e,t,r,i)=>{try{return await this.trpc.component.install.mutate({orgName:e,repoName:t,componentRef:r,submissionId:i.submissionId})}catch(o){throw a(o)}},uninstall:async(e,t,r,i)=>{try{return await this.trpc.component.uninstall.mutate({orgName:e,repoName:t,componentRef:r,submissionId:i.submissionId})}catch(o){throw a(o)}},registry:{register:async(e,t,r)=>{try{return await this.trpc.component.registry.register.mutate({orgName:e,componentName:t,...r})}catch(i){throw a(i)}},unregister:async(e,t)=>{try{return await this.trpc.component.registry.unregister.mutate({orgName:e,componentName:t})}catch(r){throw a(r)}},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(r){throw a(r)}},update:async(e,t,r)=>{try{return await this.trpc.component.registry.update.mutate({orgName:e,componentName:t,...r})}catch(i){throw a(i)}},resolve:async(e,t,r)=>await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/resolve`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({installRepo:r})}),setupCall:async(e,t,r)=>(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(r)}))},cli:{call:async(e,t,r,i)=>(await this.assertWriteCompatible(),await this.requestJson(`/api/component-registry/${encodeURIComponent(e)}/${encodeURIComponent(t)}/cli/${encodeURIComponent(r)}`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(i)}))}};commit={apply:async(e,t,r,i,o)=>{try{return await L(this,{orgName:e,repoName:t,committer:o?.committer,message:r,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 k||s instanceof x?s:a(s)}},getReceipt:async(e,t,r)=>{try{return await this.trpc.commit.getReceipt.query({orgName:e,repoName:t,eventRequestId:r})}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,r)=>{try{return await this.trpc.org.create.mutate({name:e,displayName:t,description:r})}catch(i){throw a(i)}},setDescription:async(e,t)=>{try{return await this.trpc.org.setDescription.mutate({orgName:e,description:t})}catch(r){throw a(r)}},setDisplayName:async(e,t)=>{try{return await this.trpc.org.setDisplayName.mutate({orgName:e,displayName:t})}catch(r){throw a(r)}},rename:async(e,t)=>{try{return await this.trpc.org.rename.mutate({orgName:e,newName:t})}catch(r){throw a(r)}},update:async e=>{try{return await this.trpc.org.update.mutate(e)}catch(t){throw a(t)}},addMember:async(e,t,r="editor")=>{try{return await this.trpc.org.addMember.mutate({orgName:e,email:t,role:r})}catch(i){throw a(i)}},removeMember:async(e,t)=>{try{await this.trpc.org.removeMember.mutate({orgName:e,email:t});}catch(r){throw a(r)}},leave:async e=>{try{await this.trpc.org.leave.mutate({orgName:e});}catch(t){throw a(t)}},changeMemberRole:async(e,t,r)=>{try{return await this.trpc.org.changeMemberRole.mutate({orgName:e,email:t,role:r})}catch(i){throw a(i)}},setMemberScopes:async(e,t,r)=>{try{await this.trpc.org.setMemberScopes.mutate({orgName:e,email:t,scopes:r});}catch(i){throw a(i)}},clearMemberScopes:async(e,t)=>{try{await this.trpc.org.clearMemberScopes.mutate({orgName:e,email:t});}catch(r){throw a(r)}},listMembers:async(e,t)=>{try{return await this.trpc.org.listMembers.query({orgName:e,pending:t?.pending})}catch(r){throw a(r)}},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:$e(()=>this.trpc,a),get:async(e,t)=>{try{return await this.trpc.repo.get.query({orgName:e,repoName:t})}catch(r){throw a(r)}},getStats:async(e,t)=>{try{return await this.trpc.repo.stats.query({orgName:e,repoName:t})}catch(r){throw a(r)}},getStatsBatch:async(e,t)=>{try{return await this.trpc.repo.statsBatch.query({orgName:e,repoNames:t})}catch(r){throw a(r)}},getConfigureStats:async(e,t)=>{try{return await this.trpc.repo.configureStats.query({orgName:e,repoName:t})}catch(r){throw a(r)}},getShapeInstanceCounts:async(e,t)=>{try{return await this.trpc.repo.shapeInstanceCounts.query({orgName:e,repoName:t})}catch(r){throw a(r)}},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(r){throw a(r)}},listIter:(e,t)=>A(r=>this.repo.list(e,{...t,cursor:r}),r=>r.items,t?.cursor),listAll:async(e,t)=>{let{max:r,...i}=t??{};return await O(o=>this.repo.list(e,{...i,cursor:o}),o=>o.items,r,i.cursor)},search:async(e,t)=>{try{return await this.trpc.repo.search.query({query:e,limit:t?.limit,cursor:t?.cursor})}catch(r){throw a(r)}},searchIter:(e,t)=>A(r=>this.repo.search(e,{...t,cursor:r}),r=>r.items,t?.cursor),searchAll:async(e,t)=>{let{max:r,...i}=t??{};return await O(o=>this.repo.search(e,{...i,cursor:o}),o=>o.items,r,i.cursor)},create:async(e,t,r,i,o)=>{try{return await this.trpc.repo.create.mutate({orgName:e,repoName:t,description:r,visibility:i,displayName:o})}catch(s){throw a(s)}},setDescription:async(e,t,r)=>{try{return await this.trpc.repo.setDescription.mutate({orgName:e,repoName:t,description:r})}catch(i){throw a(i)}},setDisplayName:async(e,t,r)=>{try{return await this.trpc.repo.setDisplayName.mutate({orgName:e,repoName:t,displayName:r})}catch(i){throw a(i)}},setVisibility:async(e,t,r)=>{try{return await this.trpc.repo.setVisibility.mutate({orgName:e,repoName:t,visibility:r})}catch(i){throw a(i)}},rename:async(e,t,r)=>{try{return await this.trpc.repo.rename.mutate({orgName:e,repoName:t,newName:r})}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(r){throw a(r)}},unarchive:async(e,t)=>{try{return await this.trpc.repo.unarchive.mutate({orgName:e,repoName:t})}catch(r){throw a(r)}},delete:async(e,t)=>{try{let r=await this.trpc.repo.delete.mutate({orgName:e,repoName:t});return {graceExpiresAt:new Date(r.graceExpiresAt)}}catch(r){throw a(r)}},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(r){throw a(r)}},listPageIter:(e,t)=>A(r=>this.repo.listPage(e,{...t,cursor:r}),r=>r.items,t?.cursor),listPageAll:async(e,t)=>{let{max:r,...i}=t??{};return await O(o=>this.repo.listPage(e,{...i,cursor:o}),o=>o.items,r,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=>(dt(e),A(t=>this.repo.explore({...e,cursor:t}),t=>t.items,e?.cursor)),exploreAll:async e=>{dt(e);let{max:t,...r}=e??{};return await O(i=>this.repo.explore({...r,cursor:i}),i=>i.items,t,r.cursor)},getReadme:async(e,t)=>{try{return await this.trpc.repo.getReadme.query({orgName:e,repoName:t})}catch(r){throw a(r)}},getAgents:async(e,t)=>{try{return await this.trpc.repo.getAgents.query({orgName:e,repoName:t})}catch(r){throw a(r)}},getLicense:async(e,t)=>{try{return await this.trpc.repo.getLicense.query({orgName:e,repoName:t})}catch(r){throw a(r)}},describe:async(e,t)=>{try{return await this.trpc.repo.describe.query({orgName:e,repoName:t})}catch(r){throw a(r)}},setReadme:async(e,t,r,i)=>{try{return gt("Content/Readme.content",r),await this.trpc.repo.setReadme.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,content:r})}catch(o){throw a(o)}},setAgents:async(e,t,r,i)=>{try{return gt("Content/Agents.content",r),await this.trpc.repo.setAgents.mutate({orgName:e,repoName:t,eventRequestId:i.eventRequestId,content:r})}catch(o){throw a(o)}},getLlmsTxt:async(e,t)=>{try{return await this.trpc.repo.getLlmsTxt.query({orgName:e,repoName:t})}catch(r){throw a(r)}},index:{describe:async(e,t)=>{try{return await this.trpc.repo.index.describe.query({orgName:e,repoName:t})}catch(r){throw a(r)}}}};shape={list:async(e,t,r)=>{try{return await this.trpc.shape.list.query({orgName:e,repoName:t,match:r?.match,componentRef:r?.componentRef,excludeComponents:r?.excludeComponents,includeRetracted:r?.includeRetracted})}catch(i){throw a(i)}},get:async(e,t,r,i)=>{try{return await this.trpc.shape.get.query({orgName:e,repoName:t,shapeName:r,includeRetracted:i?.includeRetracted})}catch(o){throw a(o)}},create:async(e,t,r,i,o)=>{let s=H(r,{fields:i,...o.description!==void 0?{description:o.description}:{}},"add");if(s)throw new d("VALIDATION_ERROR",s);try{return await this.trpc.shape.create.mutate({orgName:e,repoName:t,shapeName:r,fields:i,eventRequestId:o.eventRequestId,description:o.description})}catch(p){throw a(p)}},revise:async(e,t,r,i,o)=>{let s=H(r,{fields:i,...o.description!==void 0?{description:o.description}:{}},"revise");if(s)throw new d("VALIDATION_ERROR",s);try{return await this.trpc.shape.revise.mutate({orgName:e,repoName:t,shapeName:r,newFields:i,eventRequestId:o.eventRequestId,description:o.description})}catch(p){throw a(p)}},remove:async(e,t,r,i)=>{try{return await this.trpc.shape.remove.mutate({orgName:e,repoName:t,shapeName:r,eventRequestId:i.eventRequestId})}catch(o){throw a(o)}},rename:async(e,t,r,i,o)=>{try{return await this.trpc.shape.rename.mutate({orgName:e,repoName:t,oldName:r,newName:i,eventRequestId:o.eventRequestId})}catch(s){throw a(s)}},history:async(e,t,r,i={})=>{try{return await this.trpc.shape.history.query({orgName:e,repoName:t,name:r,includeRetracted:i.includeRetracted,limit:i.limit,cursor:i.cursor})}catch(o){throw a(o)}},historyIter:(e,t,r,i={})=>A(o=>this.shape.history(e,t,r,{...i,cursor:o}),o=>o.versions,i.cursor),historyAll:async(e,t,r,i)=>{let{max:o,...s}=i??{};return await O(p=>this.shape.history(e,t,r,{...s,cursor:p}),p=>p.versions,o,s.cursor)}};subscription={create:async e=>{try{let t=await this.trpc.subscription.create.mutate(hr(e));return he(t)}catch(t){throw a(t)}},get:async(...e)=>{try{let t=await this.trpc.subscription.get.query(G(e));return he(t)}catch(t){throw a(t)}},reveal:async(...e)=>{try{return await this.trpc.subscription.reveal.query(G(e))}catch(t){throw a(t)}},list:async(...e)=>{try{let t=await this.trpc.subscription.list.query(lr(e));return ur(t)}catch(t){throw a(t)}},update:async e=>{try{let t=await this.trpc.subscription.update.mutate(gr(e));return he(t)}catch(t){throw a(t)}},pause:async(...e)=>{try{return await this.trpc.subscription.pause.mutate(G(e))}catch(t){throw a(t)}},resume:async(...e)=>{try{return await this.trpc.subscription.resume.mutate(G(e))}catch(t){throw a(t)}},remove:async(...e)=>{try{return await this.trpc.subscription.remove.mutate(G(e))}catch(t){throw a(t)}},bindCredentials:async(...e)=>{try{return await this.trpc.subscription.bindCredentials.mutate(dr(e))}catch(t){throw a(t)}},unbindCredentials:async(...e)=>{try{return await this.trpc.subscription.unbindCredentials.mutate(mr(e))}catch(t){throw a(t)}}};action={acquireLease:async(e,t,r,i,o,s)=>{try{return await this.trpc.action.acquireLease.mutate({orgName:e,repoName:t,subscriptionName:r,holderId:i,holderType:o,graceMs:s?.graceMs,ttlMs:s?.ttlMs})}catch(p){throw a(p)}},heartbeatLease:async(e,t,r,i,o)=>{try{return await this.trpc.action.heartbeatLease.mutate({orgName:e,repoName:t,subscriptionName:r,holderId:i,ttlMs:o})}catch(s){throw a(s)}},releaseLease:async(e,t,r,i)=>{try{return await this.trpc.action.releaseLease.mutate({orgName:e,repoName:t,subscriptionName:r,holderId:i})}catch(o){throw a(o)}},claimDelivery:async(e,t,r,i)=>{let o=typeof r=="string"?{runId:r}:r;try{return await this.trpc.action.claimDelivery.mutate({orgName:e,repoName:t,...o,holderId:i})}catch(s){throw a(s)}},completeDelivery:async(e,t,r,i)=>{let o=typeof r=="string"?{runId:r}:r;try{return await this.trpc.action.completeDelivery.mutate({orgName:e,repoName:t,...o,holderId:i})}catch(s){throw a(s)}},liveFeed:async(e,t,r,i)=>{try{return await this.trpc.action.liveFeed.query({orgName:e,repoName:t,subscriptionName:r,limit:i?.limit,cursor:i?.cursor})}catch(o){throw a(o)}},liveFeedIter:(e,t,r,i)=>A(o=>this.action.liveFeed(e,t,r,{...i,cursor:o}),o=>o.items,i?.cursor),liveFeedAll:async(e,t,r,i)=>{let{max:o,...s}=i??{};return await O(p=>this.action.liveFeed(e,t,r,{...s,cursor:p}),p=>p.items,o,s.cursor)},listRuns:async(e,t,r)=>{try{return await this.trpc.action.listRuns.query({orgName:e,repoName:t,runId:r?.runId,subscriptionName:r?.subscriptionName,status:r?.status,outcome:r?.outcome,since:r?.since,cursor:r?.cursor,limit:r?.limit})}catch(i){throw a(i)}},listRunsIter:(e,t,r)=>A(i=>this.action.listRuns(e,t,{...r,since:i===void 0?r?.since:void 0,cursor:i}),i=>i.items,r?.cursor),listRunsAll:async(e,t,r)=>{let{max:i,...o}=r??{};return await O(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(r){throw a(r)}},runStats:async(e,t,r)=>{try{return await this.trpc.action.runStats.query({orgName:e,repoName:t,subscriptionName:r?.subscriptionName,since:r?.since})}catch(i){throw a(i)}},getRunAttempts:async(e,t,r)=>{try{return await this.trpc.action.getRunAttempts.query({orgName:e,repoName:t,runId:r})}catch(i){throw a(i)}},listNotifications:async(e,t,r)=>{try{return await this.trpc.action.listNotifications.query({orgName:e,repoName:t,since:r?.since,limit:r?.limit})}catch(i){throw a(i)}}};collection={create:async(e,t,r)=>{try{return fr(r.type,r),await this.trpc.collection.create.mutate({orgName:e,repoName:t,eventRequestId:r.eventRequestId,type:r.type,name:r.name,members:r.members,from:r.from,add:r.add,remove:r.remove,replaceMembers:r.replaceMembers,query:r.query,sourceOrgName:r.sourceRepo?.orgName,sourceRepoName:r.sourceRepo?.repoName,skipExisting:r.skipExisting,message:r.message,committer:r.committer})}catch(i){throw a(i)}},members:async(e,t,r,i)=>{try{return await this.trpc.collection.members.query({orgName:e,repoName:t,wref:r,version:i?.version,limit:i?.limit,cursor:i?.cursor})}catch(o){throw a(o)}},membersIter:(e,t,r,i)=>{let o=i?.version;return A(async s=>{let p=await this.collection.members(e,t,r,{...i,version:o,cursor:s});return o??=p.version,p},s=>s.items,i?.cursor)},membersAll:async(e,t,r,i)=>{let{max:o,...s}=i??{},p=s.version;return await O(async c=>{let u=await this.collection.members(e,t,r,{...s,version:p,cursor:c});return p??=u.version,u},c=>c.items,o,s.cursor)},contains:async(e,t,r,i,o)=>{try{return await this.trpc.collection.contains.query({orgName:e,repoName:t,wref:r,version:o?.version,members:i,position:o?.position})}catch(s){throw a(s)}},diff:async(e,t,r,i,o)=>{try{return await this.trpc.collection.diff.query({orgName:e,repoName:t,leftWref:r,rightWref:i,leftVersion:o?.leftVersion,rightVersion:o?.rightVersion,mode:o?.mode})}catch(s){throw a(s)}},revise:async(e,t,r,i)=>{try{let o=yr(r);if(ge(i.query)&&!ye(i.query))throw new d("VALIDATION_ERROR","Selector-backed collection sources require shape, about, match, componentRef, or where; kind and excludeComponents only narrow an existing selector.");if(i.sourceRepo&&!ye(i.query))throw new d("VALIDATION_ERROR","sourceRepo requires a selector-backed collection query");if(i.sourceRepo&&At(i))throw new d("VALIDATION_ERROR","sourceRepo cannot be combined with explicit members; use canonical wh:org/repo/... member wrefs or omit sourceRepo.");if(ge(i.query)&&o&&o!=="set")throw new d("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:r,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,r,i)=>{try{return await this.trpc.collection.stats.query({orgName:e,repoName:t,wref:r,version:i?.version})}catch(o){throw a(o)}}};thing={head:async(e,t,r)=>{try{return await this.trpc.thing.head.query({orgName:e,repoName:t,shape:r?.shape,kind:me(r?.kind),match:r?.match,dataMode:r?.dataMode,includeRetracted:r?.includeRetracted,limit:r?.limit,cursor:r?.cursor,componentRef:r?.componentRef,excludeComponents:r?.excludeComponents,excludeInfraShapes:r?.excludeInfraShapes,where:r?.where,sinceRepoSeq:r?.sinceRepoSeq})}catch(i){throw a(i)}},headIter:(e,t,r)=>A(i=>this.thing.head(e,t,{...r,cursor:i}),i=>i.items,r?.cursor),headAll:async(e,t,r)=>{let{max:i,...o}=r??{};return await O(s=>this.thing.head(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},headChanges:async(e,t,r)=>(lt(r?.sinceRepoSeq),await mt(i=>this.thing.head(e,t,{...r,includeRetracted:true,cursor:i}))),get:async(e,t,r,i,o)=>{try{return await this.trpc.thing.get.query({orgName:e,repoName:t,wref:r,version:i,includeRetracted:o?.includeRetracted,dataMode:o?.dataMode})}catch(s){throw a(s)}},getWithLease:async(e,t,r,i)=>{try{return await this.trpc.thing.getWithLease.mutate({orgName:e,repoName:t,wref:r,ttlMs:i?.ttlMs})}catch(o){throw a(o)}},releaseLease:async(e,t,r,i)=>{try{await this.trpc.thing.releaseLease.mutate({orgName:e,repoName:t,wref:r,leaseId:i});}catch(o){throw a(o)}},graph:async(e,t,r,i)=>{try{return await this.trpc.thing.graph.query({orgName:e,repoName:t,wref:r,version:i?.version,depth:i?.depth,limit:i?.limit})}catch(o){throw a(o)}},getMany:async(e,t,r,i,o)=>{try{if(r.length===0)return {requested:0,items:[],missing:[]};let s=de(o?.chunkSize,at,ct),p=de(o?.chunkConcurrency,pt,ut),c=async m=>await this.trpc.thing.getMany.query({orgName:e,repoName:t,wrefs:m,version:i,includeRetracted:o?.includeRetracted,dataMode:o?.dataMode});if(r.length<=s)return await c(r);let u=ht(r,s),l=[];for(let m=0;m<u.length;m+=p){let f=u.slice(m,m+p),g=await Promise.all(f.map(c));l.push(...g);}return {requested:r.length,items:l.flatMap(m=>m.items),missing:l.flatMap(m=>m.missing)}}catch(s){throw a(s)}},headVersions:async(e,t,r,i)=>{try{if(r.length===0)return {requested:0,items:[],missing:[]};let o=de(i?.chunkSize,at,ct),s=de(i?.chunkConcurrency,pt,ut),p=async l=>await this.trpc.thing.headVersions.query({orgName:e,repoName:t,wrefs:l});if(r.length<=o)return await p(r);let c=ht(r,o),u=[];for(let l=0;l<c.length;l+=s){let m=c.slice(l,l+s),f=await Promise.all(m.map(p));u.push(...f);}return {requested:r.length,items:u.flatMap(l=>l.items),missing:u.flatMap(l=>l.missing)}}catch(o){throw a(o)}},history:async(e,t,r)=>{try{return await this.trpc.thing.history.query({orgName:e,repoName:t,wref:r.wref,shape:r.shape,about:r.about,includeRetracted:r.includeRetracted,resolveCollections:r.resolveCollections,match:r.match,limit:r.limit,cursor:r.cursor})}catch(i){throw a(i)}},historyIter:(e,t,r)=>A(i=>this.thing.history(e,t,{...r,cursor:i}),i=>i.versions,r.cursor),historyAll:async(e,t,r)=>{let{max:i,...o}=r;return await O(s=>this.thing.history(e,t,{...o,cursor:s}),s=>s.versions,i,o.cursor)},rename:async(e,t,r,i,o,s)=>{try{return await this.trpc.thing.rename.mutate({orgName:e,repoName:t,shapeName:r,oldName:i,newName:o,eventRequestId:s.eventRequestId})}catch(p){throw a(p)}},resolve:async(e,t,r)=>{try{return await this.trpc.thing.resolve.query({orgName:e,repoName:t,wref:r})}catch(i){throw a(i)}},about:async(e,t,r,i)=>{try{return await this.trpc.thing.about.query({orgName:e,repoName:t,wref:r,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,r,i)=>A(o=>this.thing.about(e,t,r,{...i,cursor:o}),o=>o.assertions,i?.cursor),aboutAll:async(e,t,r,i)=>{let{max:o,...s}=i??{};return await O(p=>this.thing.about(e,t,r,{...s,cursor:p}),p=>p.assertions,o,s.cursor)},query:async(e,t,r)=>{try{return await this.trpc.thing.query.query({orgName:e,repoName:t,shape:r?.shape,about:r?.about,kind:me(r?.kind),match:r?.match,includeRetracted:r?.includeRetracted,resolveCollections:r?.resolveCollections,role:r?.role,limit:r?.limit,cursor:r?.cursor,componentRef:r?.componentRef,excludeComponents:r?.excludeComponents,excludeInfraShapes:r?.excludeInfraShapes,where:r?.where,sinceRepoSeq:r?.sinceRepoSeq})}catch(i){throw a(i)}},queryIter:(e,t,r)=>A(i=>this.thing.query(e,t,{...r,cursor:i}),i=>i.items,r?.cursor),queryAll:async(e,t,r)=>{let{max:i,...o}=r??{};return await O(s=>this.thing.query(e,t,{...o,cursor:s}),s=>s.items,i,o.cursor)},queryChanges:async(e,t,r)=>(lt(r?.sinceRepoSeq),await mt(i=>this.thing.query(e,t,{...r,includeRetracted:true,cursor:i}))),search:async(e,t,r,i)=>{try{return await this.trpc.thing.search.query({orgName:e,repoName:t,query:r,shape:i?.shape,about:i?.about,kind:me(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,r,i)=>A(o=>this.thing.search(e,t,r,{...i,cursor:o}),o=>o.items,i?.cursor),searchAll:async(e,t,r,i)=>{let{max:o,...s}=i??{};return await O(p=>this.thing.search(e,t,r,{...s,cursor:p}),p=>p.items,o,s.cursor)},count:async(e,t,r)=>{try{return await this.trpc.thing.count.query({orgName:e,repoName:t,shape:r?.shape,about:r?.about,kind:me(r?.kind),match:r?.match,includeRetracted:r?.includeRetracted,resolveCollections:r?.resolveCollections,componentRef:r?.componentRef,excludeComponents:r?.excludeComponents,excludeInfraShapes:r?.excludeInfraShapes,where:r?.where,sinceRepoSeq:r?.sinceRepoSeq})}catch(i){throw a(i)}},refs:async(e,t,r,i)=>{try{return await this.trpc.thing.refs.query({orgName:e,repoName:t,wref:r,direction:i?.direction,fieldPath:i?.fieldPath,limit:i?.limit,cursor:i?.cursor})}catch(o){throw a(o)}},refsIter:(e,t,r,i)=>A(o=>this.thing.refs(e,t,r,{...i,cursor:o}),o=>o.items,i?.cursor),refsAll:async(e,t,r,i)=>{let{max:o,...s}=i??{};return await O(p=>this.thing.refs(e,t,r,{...s,cursor:p}),p=>p.items,o,s.cursor)}};live={thingHead:async(e,t,r,i)=>this.watchRepoQuery(e,t,r?.signal,()=>this.thing.head(e,t,{shape:r?.shape,kind:r?.kind,match:r?.match,dataMode:r?.dataMode,limit:r?.limit,cursor:r?.cursor,includeRetracted:r?.includeRetracted,where:r?.where}),i),thingHistory:async(e,t,r,i)=>this.watchRepoQuery(e,t,r.signal,()=>this.thing.history(e,t,{wref:r.wref,limit:r.limit,cursor:r.cursor,includeRetracted:r.includeRetracted}),i),subscriptionLog:async(e,t,r,i,o)=>this.watchRepoQuery(e,t,i?.signal,()=>this.action.liveFeed(e,t,r,{limit:i?.limit,cursor:i?.cursor}),o),subscribe:async(e,t,r,i)=>{let o=new AbortController,s=Rt(r?.signal,o),p=0,c=(async()=>{let u=await this.trpc.live.issueTicket.mutate({orgName:e,repoName:t}),l=await this.openSse(u.ticket,s,async m=>{if(m.type!=="invalidate")return;let f=m.data;p++,await i({topic:f.topic,affectedShapes:f.affectedShapes,affectedThings:f.affectedThings,affectedTargets:f.affectedTargets,hasNewCommit:f.hasNewCommit});});return await l.ready,s.aborted?{updates:p}:(await l.closed,{updates:p})})();return {close(){o.abort();},closed:c}}};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,r,i)=>{try{return await this.trpc.credential.createSet.mutate({orgName:e,repoName:t,name:r,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(r){throw a(r)}},getSet:async(e,t,r)=>{try{return await this.trpc.credential.getSet.query({orgName:e,repoName:t,name:r})}catch(i){throw a(i)}},setKey:async(e,t,r,i,o)=>{try{return await this.trpc.credential.setKey.mutate({orgName:e,repoName:t,setName:r,keyName:i,value:o})}catch(s){throw a(s)}},setKeys:async(e,t,r,i)=>{try{return await this.trpc.credential.setKeys.mutate({orgName:e,repoName:t,setName:r,secrets:i})}catch(o){throw a(o)}},unsetKey:async(e,t,r,i)=>{try{return await this.trpc.credential.unsetKey.mutate({orgName:e,repoName:t,setName:r,keyName:i})}catch(o){throw a(o)}},deleteSet:async(e,t,r)=>{try{return await this.trpc.credential.deleteSet.mutate({orgName:e,repoName:t,setName:r})}catch(i){throw a(i)}},listAuditLog:async(e,t,r,i)=>{try{return await this.trpc.credential.listAuditLog.query({orgName:e,repoName:t,setName:r,limit:i?.limit})}catch(o){throw a(o)}},revokeSet:async(e,t,r,i)=>{try{return await this.trpc.credential.revokeSet.mutate({orgName:e,repoName:t,setName:r,reason:i?.reason})}catch(o){throw a(o)}}};credentials=this.credential;constructor(e,t){let r=typeof e=="string"?t:e;cr(r);let i=typeof e=="string"?e:e?.apiUrl??Pe;if(this.apiUrl=i,this.fetchImpl=r?.fetch,this.accessToken=r?.accessToken??r?.auth?.getToken,this.functionLogMode=r?.functionLogs??"off",this.clientIdentity={name:r?.client?.name??b,version:r?.client?.version??ke},typeof this.accessToken=="function"){let p=this.accessToken;this.getToken=async()=>await p();}else if(this.accessToken){let p=this.accessToken;this.getToken=async()=>p;}let o=`${i.replace(/\/$/,"")}/trpc`,s=((p,c)=>this.fetchWithAuth(p,c));Object.defineProperty(this,"trpc",{value:createTRPCProxyClient({links:[this.createCompatibilityLink(),splitLink({condition:p=>pr.has(p.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 n({apiUrl:this.apiUrl,fetch:this.fetchImpl,accessToken:e,client:this.clientIdentity})}actions=this.action;async openSse(e,t,r){let i=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}/sse?ticket=${encodeURIComponent(e)}`,{headers:{accept:"text/event-stream"},signal:t});if(!i.ok)throw new d("BACKEND",`SSE request failed with status ${i.status}`,i.status);let o=i.body?.getReader();if(!o)throw new d("BACKEND","SSE response body is missing");let s=()=>{},p=new Promise(u=>{s=u;}),c=(async()=>{let u=new TextDecoder,l="";try{for(;;){let{done:m,value:f}=await o.read();if(m)break;for(l+=u.decode(f,{stream:!0}).replaceAll(`\r
|
|
2
|
+
`,`
|
|
3
|
+
`);;){let g=l.indexOf(`
|
|
4
|
+
|
|
5
|
+
`);if(g===-1)break;let C=l.slice(0,g);l=l.slice(g+2);let h=Er(C);if(h){if(h.type==="ready"){s();continue}await r(h);}}}}catch(m){if(kr(m)||t.aborted)return;throw m}finally{s(),o.releaseLock();}})();return {ready:p,closed:c}}applyClientHeader(e$1){e$1.has(a$1)||e$1.set(a$1,e(this.clientIdentity.name,this.clientIdentity.version));}async fetchWithAuth(e,t){let r=this.fetchImpl??globalThis.fetch,i=new Headers(t?.headers),o=await ft(this.accessToken);o&&i.set("authorization",`Bearer ${o}`),this.applyClientHeader(i);let s=async c=>{try{return await r(e,c)}catch(u){throw Ar(u)?new d("NETWORK",Or(this.apiUrl)):u}},p=await s({...t,headers:i});if(p.status===401&&typeof this.accessToken=="function"){let c=await ft(this.accessToken);if(c&&c!==o){let u=new Headers(t?.headers);return u.set("authorization",`Bearer ${c}`),this.applyClientHeader(u),s({...t,headers:u})}}return p}async requestResponse(e,t){let r=await this.fetchWithAuth(`${this.apiUrl.replace(/\/$/,"")}${e}`,t);if(!r.ok){let i=`Request failed with status ${r.status}`,o=It(r.status),s,p,c;try{let u=await r.json();typeof u.error?.message=="string"&&(i=u.error.message),typeof u.error?.code=="string"&&(o=u.error.code,s=u.error.code),typeof u.error?.hint=="string"&&(p=u.error.hint),typeof u.error?.retryAfter=="number"&&(c=u.error.retryAfter);}catch{}throw new d(o,i,r.status,p,c,s)}return r}async requestJson(e,t){return await(await this.requestResponse(e,t)).json()}async watchRepoQuery(e,t,r,i,o){let s=new AbortController,p=Rt(r,s),c=0,u=(async()=>{let l=async()=>{let g=await i();c+=1,await o(g);},m=await this.trpc.live.issueTicket.mutate({orgName:e,repoName:t}),f=await this.openSse(m.ticket,p,async g=>{g.type==="invalidate"&&await l();});return await f.ready,p.aborted?{updates:c}:(await l(),await f.closed,{updates:c})})();return {close(){s.abort();},closed:u}}};function It(n){switch(n){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 ft(n){if(n)return typeof n=="string"?n:n()}function Rt(n,e){return n?n.aborted?(e.abort(),e.signal):(n.addEventListener("abort",()=>e.abort(),{once:true}),e.signal):e.signal}function Er(n){let e="message",t=[];for(let i of n.split(`
|
|
6
|
+
`))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 r=t.join(`
|
|
7
|
+
`);return {type:e,data:JSON.parse(r)}}function kr(n){return n instanceof Error&&n.name==="AbortError"}export{Ar as A,Or as B,Tn as C,yt as D,te as a,Nt as b,Ce as c,ie as d,oe as e,k as f,x as g,F as h,se as i,W as j,L as k,Ie as l,ae as m,Ee as n,ke as o,w as p,Qt as q,le as r,kn as s,Pe as t,vn as u,Le as v,d as w,a as x,Sr as y,xn as z};//# sourceMappingURL=chunk-CNOPJLT7.js.map
|
|
8
|
+
//# sourceMappingURL=chunk-CNOPJLT7.js.map
|