@crewx/sdk 0.9.0-rc.212 → 0.9.0-rc.213
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/history-snapshot/index.js +8 -8
- package/dist/esm/index.js +282 -282
- package/dist/history-snapshot/index.d.ts +1 -0
- package/dist/history-snapshot/index.js +8 -8
- package/dist/index.browser.js +1 -1
- package/dist/index.js +283 -283
- package/dist/route/types.d.ts +20 -0
- package/dist/types/index.d.ts +10 -0
- package/package.json +1 -1
|
@@ -80,3 +80,4 @@ export declare function readHistory(projectRoot: string, ref: string, scope: His
|
|
|
80
80
|
}): Promise<HistoryPage>;
|
|
81
81
|
export declare function recordHistoryEmission(projectRoot: string, ref: string, scope: HistorySnapshotScope, page: HistoryPage): Promise<void>;
|
|
82
82
|
export declare function readHistoryAudit(projectRoot: string, ref: string, scope: HistorySnapshotScope): Promise<readonly HistoryAuditRecord[]>;
|
|
83
|
+
export declare function resolveWorkspaceRealPathSync(path: string): string;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
'use strict';var crypto=require('crypto'),fs=require('fs'),path=require('path');var B=class extends Error{code;constructor(e){super(e),this.name="HistorySnapshotError",this.code=e;}},Z=8e3,q=1e3,N=64*1024*1024,K=1024*1024,It=512,Rt=1440*60*1e3,wt=/^hs1-([0-9a-f]{64})$/,at=448,b=384,At=20,$t=20,
|
|
1
|
+
'use strict';var crypto=require('crypto'),fs=require('fs'),path=require('path');var B=class extends Error{code;constructor(e){super(e),this.name="HistorySnapshotError",this.code=e;}},Z=8e3,q=1e3,N=64*1024*1024,K=1024*1024,It=512,Rt=1440*60*1e3,wt=/^hs1-([0-9a-f]{64})$/,at=448,b=384,At=20,$t=20,vt=12,Ut=8,jt=6e3,Gt=1024,Vt=64,Xt=16,_t=/^(?:env(?:ironment)?|authorization|auth(?:entication)?[_-]?(?:token|key)|token|access[_-]?token|refresh[_-]?token|api[_-]?key|password|passwd|secret|credentials?|execution[_-]?(?:auth(?:entication)?[_-]?)?(?:key|token)|system[_-]?prompt)$/i,Yt=new Map,zt=new Map,Jt=new Map,M;function Te(t){(!t||!Array.isArray(t.messages)||!t.activityByTask||typeof t.activityByTask[Symbol.iterator]!="function"||!Array.isArray(t.highlights))&&s("IO_ERROR"),(!Number.isSafeInteger(t.runEpoch)||t.runEpoch<0||!Number.isSafeInteger(t.preparedAtMs)||t.preparedAtMs<0)&&s("IO_ERROR");let e=Ot(t.scope),n=t.preparedAtMs+Rt;Number.isSafeInteger(n)||s("IO_ERROR");let r=[],i=new Map,o=0;for(let a of t.messages){(!a||typeof a.text!="string"||typeof a.isAssistant!="boolean")&&s("IO_ERROR"),(!a.isAssistant||o===0)&&(o+=1);let c=Ee(a);c&&i.set(c,o),r.push({ordinal:r.length+1,kind:"message",taskId:c??null,turn:o,body:I(a.text),metadata:be(a.metadata),details:St({id:a.id,isAssistant:a.isAssistant,taskId:a.taskId,timestamp:a.timestamp,activity_log:a.activity_log,files:a.files,appCard:a.appCard})});}for(let[a,c]of t.activityByTask)(typeof a!="string"||a.length===0||typeof c!="string")&&s("IDENTITY_MISSING"),r.push({ordinal:r.length+1,kind:"activity",taskId:I(a),turn:i.get(a)??null,body:I(c),metadata:null,details:null});for(let a of t.highlights){(!a||typeof a.id!="string"||typeof a.text!="string")&&s("IO_ERROR");let c=a.coversToTaskId??a.covers_to_task_id??a.coversFromTaskId??a.covers_from_task_id;r.push({ordinal:r.length+1,kind:"highlight",taskId:c?I(c):null,turn:c?i.get(c)??null:null,body:I(a.text),metadata:null,details:St({id:a.id,kind:a.kind,source:a.source,coversFromTaskId:a.coversFromTaskId,coversToTaskId:a.coversToTaskId,covers_from_task_id:a.covers_from_task_id,covers_to_task_id:a.covers_to_task_id,createdAt:a.createdAt,created_at:a.created_at})});}let d={schemaVersion:1,scope:e,runEpoch:t.runEpoch,preparedAtMs:t.preparedAtMs,expiresAtMs:n,...t.activityCoverage===void 0?{}:{activityCoverage:v(t.activityCoverage,new Set)},entries:r},f=Buffer.from(G(d),"utf8");return f.byteLength>N&&s("TOO_LARGE"),{ref:`hs1-${crypto.createHash("sha256").update(f.toString("latin1"),"latin1").digest("hex")}`,expiresAtMs:n,bytes:f}}async function Pe(t,e){let n=Wt(e);Date.now()>=n.snapshot.expiresAtMs&&s("EXPIRED");let r=await Pt(t,true);r.projectRoot!==n.snapshot.scope.workspaceRealPath&&s("SCOPE_MISMATCH");let i=path.join(r.directory,`${n.ref}.json`),o=await ut(Yt,i,async()=>{if(await w(r),await T(i)){let c=await $(r,i,N);return rt(n,c)}let f=path.join(r.directory,`.tmp-${process.pid}-${crypto.randomBytes(16).toString("hex")}`),y,a;try{await w(r),y=await fs.promises.open(f,fs.constants.O_CREAT|fs.constants.O_EXCL|fs.constants.O_WRONLY|V(),b),await y.chmod(b);let c=await y.stat({bigint:!0});a=c,S(c,b),await Ie(y,n.bytes),await y.sync();let l=await y.stat({bigint:!0});S(l,b),(!R(c,l)||l.size!==BigInt(n.bytes.byteLength))&&s("TAMPERED"),a=l,await w(r);let u=await fs.promises.lstat(f,{bigint:!0});S(u,b),R(u,l)||s("UNSAFE_FILE"),await y.close(),y=void 0;try{await fs.promises.link(f,i);}catch(h){if(X(h)!=="EEXIST")throw h;await it(r,f,a),a=void 0;let E=await qt(r,i);return rt(n,E)}await it(r,f,a),a=void 0;let g=await $(r,i,N);return rt(n,g)}catch(c){throw y&&await y.close().catch(()=>{}),a&&await it(r,f,a).catch(()=>{}),Y(c)}});return await ut(Jt,"history-snapshot-retention",async()=>{await oe(r,n.ref);}).catch(()=>{}),o}function Me(t,e){return (typeof t.CREWX_AGENT_ID!="string"||t.CREWX_AGENT_ID.length===0)&&s("IDENTITY_MISSING"),(typeof t.CREWX_TASK_ID!="string"||t.CREWX_TASK_ID.length===0)&&s("IDENTITY_MISSING"),typeof t.CREWX_THREAD_ID!="string"&&s("IDENTITY_MISSING"),Ot({workspaceRealPath:e,agentId:t.CREWX_AGENT_ID,threadId:t.CREWX_THREAD_ID,taskId:t.CREWX_TASK_ID})}async function Be(t,e,n,r={}){let i=await j(t,e,n),o=r.from??1;(!Number.isSafeInteger(o)||o<1||o>i.snapshot.entries.length+1)&&s("NOT_FOUND");let d=r.limit??vt;(!Number.isSafeInteger(d)||d<=0)&&s("TOO_LARGE");let f=Math.min(d,At);if(o===i.snapshot.entries.length+1)return C(e,"toc","no entries on this page",[],[],void 0);let y=[],a=[],c;for(let u=o-1;u<i.snapshot.entries.length&&y.length<f;u+=1){let g=i.snapshot.entries[u],h=ue(g.body,120),E=`entry=${g.ordinal} kind=${g.kind} task=${ht(g.taskId??"unknown",48)} turn=${g.turn??"unknown"} bytes=${Buffer.byteLength(g.body)} preview=${JSON.stringify(h.text)}`,m=u+1<i.snapshot.entries.length?ce(e,g.ordinal+1,f):void 0,P=[...y,E],z=[...a,{entry:g.ordinal,startByte:0,endByte:h.endByte}],H=i.snapshot.entries.slice(o-1,o-1+P.length).map(J=>J.ordinal),x=C(e,"toc",P.join(`
|
|
2
2
|
`),H,z,m);if(!lt(x))break;y.push(E),a.push({entry:g.ordinal,startByte:0,endByte:h.endByte}),c=m;}y.length===0&&s("TOO_LARGE");let l=i.snapshot.entries.slice(o-1,o-1+y.length).map(u=>u.ordinal);return C(e,"toc",y.join(`
|
|
3
|
-
`),l,a,c)}async function
|
|
3
|
+
`),l,a,c)}async function Ne(t,e,n,r){let i=await j(t,e,n);(!r||typeof r.query!="string")&&s("TOO_LARGE");let o=I(r.query);(o.length===0||Buffer.byteLength(o)>256)&&s("TOO_LARGE");let d=r.limit??Ut;(!Number.isSafeInteger(d)||d<=0)&&s("TOO_LARGE");let f=Math.min(d,$t),y=crypto.createHash("sha256").update(o,"utf8").digest("hex"),a=r.cursor===void 0?void 0:me(r.cursor,e,y,i.snapshot.entries.length),c=le(i.snapshot.entries,o,f+1,a);if(c.length===0)return C(e,"search",`no matches for ${JSON.stringify(nt(o,80).text)}`,[],[],void 0);let l=[],u=[],g=[],h,E=c.slice(0,f);for(let A=0;A<E.length;A+=1){let m=E[A],P=`entry=${m.entry.ordinal} kind=${m.entry.kind} task=${ht(m.entry.taskId??"unknown",48)} turn=${m.entry.turn??"unknown"} match=${m.startByte}..${m.endByte} snippet=${JSON.stringify(m.snippet)}`,H=A+1<c.length?de(e,o,f,pe({version:1,ref:e,queryHash:y,entry:m.entry.ordinal,afterByte:m.startByte+1})):void 0,x=[...l,P],J={entry:m.entry.ordinal,startByte:m.snippetStartByte,endByte:m.snippetEndByte},Lt=[...u,J],xt=[...g,m.entry.ordinal],Dt=C(e,"search",x.join(`
|
|
4
4
|
`),xt,Lt,H);if(!lt(Dt))break;l.push(P),u.push(J),g.push(m.entry.ordinal),h=H;}return l.length===0&&s("TOO_LARGE"),C(e,"search",l.join(`
|
|
5
|
-
`),g,u,h)}async function
|
|
5
|
+
`),g,u,h)}async function Le(t,e,n,r){let i=await j(t,e,n);(!r||!Number.isSafeInteger(r.entry)||r.entry<1)&&s("NOT_FOUND");let o=i.snapshot.entries[r.entry-1];o||s("NOT_FOUND");let d=Buffer.from(o.body,"utf8"),f=r.offset??0;(!Number.isSafeInteger(f)||f<0||f>d.byteLength||!dt(d,f))&&s("NOT_FOUND");let y=r.bytes??jt;(!Number.isSafeInteger(y)||y<=0)&&s("TOO_LARGE");let a=Math.min(y,Z),c=f===d.byteLength?d.byteLength:F(d,Math.min(d.byteLength,f+a));c===f&&f<d.byteLength&&(c=Bt(d,f));let l=`${ye(o)}
|
|
6
6
|
body:
|
|
7
|
-
`;for(;;){let g=c<d.byteLength?
|
|
7
|
+
`;for(;;){let g=c<d.byteLength?fe(e,o.ordinal,c,a):void 0,h=d.toString("utf8",f,c),E=`${l}${h}${h.endsWith(`
|
|
8
8
|
`)?"":`
|
|
9
|
-
`}`,A=C(e,"read",E,[o.ordinal],[{entry:o.ordinal,startByte:f,endByte:c}],g);if(lt(A))return A;let m=gt(A.text);if(m>q){let z=
|
|
10
|
-
`,"utf8");y.byteLength>It&&s("TOO_LARGE");let a=path.join(i.storage.directory,`${e}.reads.jsonl`);await ut(zt,a,async()=>{await w(i.storage);let c=await T(a),l;if(c)S(c,b),l=await mt(a);else try{l=await fs.promises.open(a,fs.constants.O_CREAT|fs.constants.O_EXCL|fs.constants.O_WRONLY|fs.constants.O_APPEND|V(),b),await l.chmod(b);}catch(u){if(X(u)!=="EEXIST")throw u;c=await fs.promises.lstat(a,{bigint:!0}),l=await mt(a);}try{let u=await l.stat({bigint:!0});S(u,b),c&&!R(c,u)&&s("UNSAFE_FILE"),u.size+BigInt(y.byteLength)>BigInt(K)&&s("TOO_LARGE"),await w(i.storage);let g=await fs.promises.lstat(a,{bigint:!0});S(g,b),R(g,u)||s("UNSAFE_FILE");let{bytesWritten:h}=await l.write(y.toString("latin1"),null,"latin1");h!==y.byteLength&&s("IO_ERROR"),await l.sync();let E=await l.stat({bigint:!0});S(E,b),E.size>BigInt(K)&&s("TOO_LARGE");}finally{await l.close().catch(()=>{});}});}async function
|
|
9
|
+
`}`,A=C(e,"read",E,[o.ordinal],[{entry:o.ordinal,startByte:f,endByte:c}],g);if(lt(A))return A;let m=gt(A.text);if(m>q){let z=se(d,f,c),H=Math.max(0,z-(m-q)),x=ae(d,f,c,H);if(x>f&&x<c){c=x;continue}}c-f<=4&&s("TOO_LARGE");let P=F(d,f+Math.floor((c-f)/2));P<=f&&s("TOO_LARGE"),c=P;}}async function xe(t,e,n,r){let i=await j(t,e,n);(!r||r.snapshotRef!==e||!Nt(r.operation)||typeof r.text!="string")&&s("TAMPERED");let o=Buffer.byteLength(r.text,"utf8");(o>Z||gt(r.text)>q||r.byteCount!==o||!Array.isArray(r.entries)||!Array.isArray(r.ranges))&&s("TAMPERED");for(let c of r.entries)(!Number.isSafeInteger(c)||c<1||c>i.snapshot.entries.length)&&s("TAMPERED");for(let c of r.ranges){let l=i.snapshot.entries[c.entry-1],u=l?Buffer.from(l.body,"utf8"):void 0;(!l||!u||!Number.isSafeInteger(c.startByte)||!Number.isSafeInteger(c.endByte)||c.startByte<0||c.endByte<c.startByte||c.endByte>u.byteLength||!dt(u,c.startByte)||!dt(u,c.endByte))&&s("TAMPERED");}(r.entries.length!==r.ranges.length||r.entries.some((c,l)=>c!==r.ranges[l]?.entry))&&s("TAMPERED");let d={version:1,timestampMs:Date.now(),operation:r.operation,taskId:i.scope.taskId,entries:[...r.entries],ranges:r.ranges.map(c=>({entry:c.entry,startByte:c.startByte,endByte:c.endByte})),byteCount:o},f={version:d.version,timestampMs:d.timestampMs,operation:d.operation,taskId:d.taskId,ranges:kt(d.ranges),byteCount:d.byteCount},y=Buffer.from(`${G(f)}
|
|
10
|
+
`,"utf8");y.byteLength>It&&s("TOO_LARGE");let a=path.join(i.storage.directory,`${e}.reads.jsonl`);await ut(zt,a,async()=>{await w(i.storage);let c=await T(a),l;if(c)S(c,b),l=await mt(a);else try{l=await fs.promises.open(a,fs.constants.O_CREAT|fs.constants.O_EXCL|fs.constants.O_WRONLY|fs.constants.O_APPEND|V(),b),await l.chmod(b);}catch(u){if(X(u)!=="EEXIST")throw u;c=await fs.promises.lstat(a,{bigint:!0}),l=await mt(a);}try{let u=await l.stat({bigint:!0});S(u,b),c&&!R(c,u)&&s("UNSAFE_FILE"),u.size+BigInt(y.byteLength)>BigInt(K)&&s("TOO_LARGE"),await w(i.storage);let g=await fs.promises.lstat(a,{bigint:!0});S(g,b),R(g,u)||s("UNSAFE_FILE");let{bytesWritten:h}=await l.write(y.toString("latin1"),null,"latin1");h!==y.byteLength&&s("IO_ERROR"),await l.sync();let E=await l.stat({bigint:!0});S(E,b),E.size>BigInt(K)&&s("TOO_LARGE");}finally{await l.close().catch(()=>{});}});}async function De(t,e,n){let r=await j(t,e,n),i=path.join(r.storage.directory,`${e}.reads.jsonl`);await w(r.storage);let o=await T(i);if(!o)return [];S(o,b),o.size>BigInt(K)&&s("TOO_LARGE");let f=(await $(r.storage,i,K,true)).toString("utf8");if(f.length===0)return [];f.endsWith(`
|
|
11
11
|
`)||s("TAMPERED");let y=f.slice(0,-1).split(`
|
|
12
|
-
`),a=[];for(let c of y){Buffer.byteLength(c,"utf8")+1>It&&s("TOO_LARGE");let l;try{l=JSON.parse(c);}catch{s("TAMPERED");}let u=Kt(l,r.snapshot.entries);(G(Qt(u))!==c||u.taskId!==r.scope.taskId)&&s("TAMPERED"),a.push(u);}return a}function Wt(t){(!t||typeof t.ref!="string"||!wt.test(t.ref)||!Buffer.isBuffer(t.bytes))&&s("INVALID_REF"),t.bytes.byteLength>N&&s("TOO_LARGE");let e=crypto.createHash("sha256").update(t.bytes.toString("latin1"),"latin1").digest("hex");t.ref!==`hs1-${e}`&&s("TAMPERED");let n=tt(t.bytes);return t.expiresAtMs!==n.expiresAtMs&&s("TAMPERED"),{ref:t.ref,bytes:Buffer.from(t.bytes.toString("latin1"),"latin1"),snapshot:n}}function rt(t,e){(`hs1-${crypto.createHash("sha256").update(e.toString("latin1"),"latin1").digest("hex")}`!==t.ref||e.toString("latin1")!==t.bytes.toString("latin1"))&&s("TAMPERED");let r=tt(e);return r.expiresAtMs!==t.snapshot.expiresAtMs&&s("TAMPERED"),{ref:t.ref,entries:r.entries.length,bytes:e.byteLength,expiresAtMs:r.expiresAtMs}}async function qt(t,e){for(let n=0;n<12;n+=1)try{return await $(t,e,N)}catch(r){if(!(r instanceof B)||r.code!=="UNSAFE_FILE"||n===11)throw r;await Re(5);}s("IO_ERROR");}async function v(t,e,n){let r=re(e),i=await te(n),o=await Pt(t,false);o.projectRoot!==i.workspaceRealPath&&s("SCOPE_MISMATCH");let d=path.join(o.directory,`${e}.json`),f=await $(o,d,N);crypto.createHash("sha256").update(f.toString("latin1"),"latin1").digest("hex")!==r&&s("TAMPERED");let y=tt(f);return ne(y.scope,i)||s("SCOPE_MISMATCH"),Date.now()>=y.expiresAtMs&&s("EXPIRED"),{storage:o,snapshot:y,scope:i}}function tt(t){let e;try{e=JSON.parse(t.toString("utf8"));}catch{s("TAMPERED");}(!O(e)||!st(e,["schemaVersion","scope","runEpoch","preparedAtMs","expiresAtMs","activityCoverage","entries"])||e.schemaVersion!==1||!ee(e.scope)||!Array.isArray(e.entries))&&s("TAMPERED"),(!st(e.scope,["workspaceRealPath","agentId","threadId","taskId"])||!path.isAbsolute(e.scope.workspaceRealPath)||path.resolve(e.scope.workspaceRealPath)!==e.scope.workspaceRealPath||!L(e.scope.workspaceRealPath)||!L(e.scope.agentId)||!L(e.scope.threadId)||!L(e.scope.taskId))&&s("TAMPERED"),(!Number.isSafeInteger(e.runEpoch)||e.runEpoch<0||!Number.isSafeInteger(e.preparedAtMs)||e.preparedAtMs<0||!Number.isSafeInteger(e.expiresAtMs)||e.expiresAtMs!==e.preparedAtMs+Rt)&&s("TAMPERED");let n=[];for(let i=0;i<e.entries.length;i+=1){let o=e.entries[i];(!O(o)||!st(o,["ordinal","kind","taskId","turn","body","metadata","details"])||o.ordinal!==i+1||o.kind!=="message"&&o.kind!=="activity"&&o.kind!=="highlight"||!(o.taskId===null||typeof o.taskId=="string")||!(o.turn===null||Number.isSafeInteger(o.turn)&&o.turn>0)||typeof o.body!="string"||!L(o.body)||!(o.metadata===null||O(o.metadata))||!(o.details===null||O(o.details)))&&s("TAMPERED"),n.push(o);}let r=e;return G(r)!==t.toString("utf8")&&s("TAMPERED"),e.activityCoverage!==void 0&&be(e.activityCoverage,new Set),yt(r)&&s("TAMPERED"),{...r,entries:n}}function Kt(t,e){(!O(t)||t.version!==1||!Number.isSafeInteger(t.timestampMs)||t.timestampMs<0)&&s("TAMPERED"),(!Nt(t.operation)||typeof t.taskId!="string"||typeof t.ranges!="string")&&s("TAMPERED"),(!Number.isSafeInteger(t.byteCount)||t.byteCount<0||t.byteCount>Z)&&s("TAMPERED");let n=Zt(t.ranges),r=[...new Set(n.map(i=>i.entry))];for(let i of n){let o=e[i.entry-1];(!o||i.endByte>Buffer.byteLength(o.body,"utf8"))&&s("TAMPERED");}return {version:1,timestampMs:t.timestampMs,operation:t.operation,taskId:t.taskId,entries:r,ranges:n,byteCount:t.byteCount}}function Qt(t){return {version:t.version,timestampMs:t.timestampMs,operation:t.operation,taskId:t.taskId,ranges:kt(t.ranges),byteCount:t.byteCount}}function kt(t){let e=[];W(e,BigInt(t.length));let n=0,r=0;for(let i of t){let o=i.entry-n,d=i.startByte-r;o<0&&s("TAMPERED"),W(e,BigInt(o));let f=BigInt(d);W(e,f>=0n?f*2n:-f*2n-1n),W(e,BigInt(i.endByte-i.startByte)),n=i.entry,r=i.startByte;}return Buffer.from(e).toString("base64url")}function Zt(t){(!/^[A-Za-z0-9_-]*$/.test(t)||Buffer.byteLength(t)>448)&&s("TAMPERED");let e=Buffer.from(t,"base64url");e.toString("base64url")!==t&&s("TAMPERED");let n=0,r=()=>{let y=0n,a=0n;for(let c=0;c<10&&n<e.length;c+=1){let l=e[n++];if(y|=BigInt(l&127)<<a,(l&128)===0)return y;a+=7n;}s("TAMPERED");},i=Number(r());(!Number.isSafeInteger(i)||i<0||i>At)&&s("TAMPERED");let o=[],d=0,f=0;for(let y=0;y<i;y+=1){let a=Number(r()),c=r(),l=c%2n===0n?Number(c/2n):-Number((c+1n)/2n),u=Number(r()),g=d+a,h=f+l,E=h+u;(!Number.isSafeInteger(g)||g<1||!Number.isSafeInteger(h)||h<0||!Number.isSafeInteger(E)||E<h)&&s("TAMPERED"),o.push({entry:g,startByte:h,endByte:E}),d=g,f=h;}return n!==e.length&&s("TAMPERED"),o}function W(t,e){e<0n&&s("TAMPERED");let n=e;for(;n>=0x80n;)t.push(Number(n&0x7fn|0x80n)),n>>=7n;t.push(Number(n));}function Ot(t){Tt(t);try{return {workspaceRealPath:fs.realpathSync(path.resolve(t.workspaceRealPath)),agentId:I(t.agentId),threadId:I(t.threadId),taskId:I(t.taskId)}}catch{s("IO_ERROR");}}async function te(t){Tt(t);try{return {workspaceRealPath:await fs.promises.realpath(path.resolve(t.workspaceRealPath)),agentId:I(t.agentId),threadId:I(t.threadId),taskId:I(t.taskId)}}catch{s("IO_ERROR");}}function Tt(t){(!t||typeof t.workspaceRealPath!="string"||t.workspaceRealPath.length===0)&&s("IDENTITY_MISSING"),(typeof t.agentId!="string"||t.agentId.length===0)&&s("IDENTITY_MISSING"),(typeof t.taskId!="string"||t.taskId.length===0)&&s("IDENTITY_MISSING"),typeof t.threadId!="string"&&s("IDENTITY_MISSING");}function ee(t){return O(t)&&typeof t.workspaceRealPath=="string"&&typeof t.agentId=="string"&&typeof t.threadId=="string"&&typeof t.taskId=="string"&&t.agentId.length>0&&t.taskId.length>0}function ne(t,e){return t.workspaceRealPath===e.workspaceRealPath&&t.agentId===e.agentId&&t.threadId===e.threadId&&t.taskId===e.taskId}function re(t){typeof t!="string"&&s("INVALID_REF");let e=wt.exec(t);return e||s("INVALID_REF"),e[1]}async function Pt(t,e){(typeof t!="string"||t.length===0)&&s("IO_ERROR");try{let n=await fs.promises.realpath(path.resolve(t)),r=await fs.promises.lstat(n,{bigint:!0});(r.isSymbolicLink()||!r.isDirectory())&&s("UNSAFE_FILE"),et(r);let i={path:n,dev:r.dev,ino:r.ino,isSnapshotDirectory:!1},o=await pt(path.join(n,".crewx"),e,!1,[i]),d=await pt(path.join(n,".crewx","history-snapshots"),e,!0,[i,o]);return {projectRoot:n,directory:d.path,pins:[i,o,d]}}catch(n){throw Y(n)}}async function pt(t,e,n,r){await ct(r);let i=await T(t),o=false;if(!i){e||s("NOT_FOUND");try{await fs.promises.mkdir(t,{mode:at}),o=!0;}catch(f){if(X(f)!=="EEXIST")throw f}i=await fs.promises.lstat(t,{bigint:true}),o&&process.platform!=="win32"&&await fs.promises.chmod(t,at);}if(D(i,n),o&&(i=await fs.promises.lstat(t,{bigint:true}),D(i,n)),process.platform!=="win32"){let f=await fs.promises.open(t,fs.constants.O_RDONLY|Ie()|V());try{let y=await f.stat({bigint:!0});D(y,n),R(i,y)||s("UNSAFE_FILE");}finally{await f.close();}}await ct(r);let d=await fs.promises.lstat(t,{bigint:true});return D(d,n),R(i,d)||s("UNSAFE_FILE"),{path:t,dev:i.dev,ino:i.ino,isSnapshotDirectory:n}}async function w(t){await ct(t.pins);}async function ct(t){for(let e of t){let n=await T(e.path);(!n||n.isSymbolicLink()||!n.isDirectory()||!R(n,e))&&s("UNSAFE_FILE"),D(n,e.isSnapshotDirectory);}}function D(t,e){if((t.isSymbolicLink()||!t.isDirectory())&&s("UNSAFE_FILE"),et(t),process.platform==="win32")return;let n=Number(t.mode&0o777n);(e?n!==at:(n&18)!==0)&&s("UNSAFE_FILE");}function S(t,e){(t.isSymbolicLink()||!t.isFile()||t.nlink!==1n)&&s("UNSAFE_FILE"),et(t),process.platform!=="win32"&&Number(t.mode&0o777n)!==e&&s("UNSAFE_FILE");}function et(t){if(process.platform==="win32")return;let e=process.getuid;typeof e=="function"&&t.uid!==BigInt(e())&&s("UNSAFE_FILE");}async function $(t,e,n,r=false){let i;try{await w(t);let o=await T(e);if(!o){if(r)return Buffer.alloc(0);s("NOT_FOUND");}S(o,b),o.size>BigInt(n)&&s("TOO_LARGE"),i=await fs.promises.open(e,fs.constants.O_RDONLY|V());let d=await i.stat({bigint:!0});S(d,b),R(o,d)||s("UNSAFE_FILE"),d.size>BigInt(n)&&s("TOO_LARGE"),await w(t);let f=await fs.promises.lstat(e,{bigint:!0});(f.isSymbolicLink()||!R(f,d))&&s("UNSAFE_FILE");let y=await i.readFile();y.byteLength>n&&s("TOO_LARGE");let a=await i.stat({bigint:!0});S(a,b),(!R(d,a)||a.size!==d.size||a.size!==BigInt(y.byteLength))&&s("TAMPERED");let c=await fs.promises.lstat(e,{bigint:!0});return S(c,b),R(c,a)||s("UNSAFE_FILE"),await w(t),y}catch(o){throw Y(o)}finally{i&&await i.close().catch(()=>{});}}async function mt(t){let e=await fs.promises.lstat(t,{bigint:true});S(e,b);let n=await fs.promises.open(t,fs.constants.O_WRONLY|fs.constants.O_APPEND|V());try{let r=await n.stat({bigint:!0});return S(r,b),R(e,r)||s("UNSAFE_FILE"),n}catch(r){throw await n.close().catch(()=>{}),r}}async function it(t,e,n){await w(t);let r=await T(e);r&&((r.isSymbolicLink()||!r.isFile()||!R(r,n))&&s("UNSAFE_FILE"),et(r),await fs.promises.unlink(e),await w(t));}async function ie(t,e){let n=N,r=0,i=0;try{await w(t);let o=t.pins.find(d=>d.isSnapshotDirectory);if(o||s("UNSAFE_FILE"),M&&(M.path!==t.directory||M.dev!==o.dev||M.ino!==o.ino)&&await ot(),!M){let d=await fs.promises.lstat(t.directory,{bigint:!0});D(d,!0),R(d,o)||s("UNSAFE_FILE");let f=await fs.promises.opendir(t.directory),y=await fs.promises.lstat(t.directory,{bigint:!0});D(y,!0),R(y,d)||(await f.close().catch(()=>{}),s("UNSAFE_FILE")),M={path:t.directory,dev:y.dev,ino:y.ino,directory:f};}for(;r<Vt&&i<Xt;){let d=await M.directory.read();if(!d){await ot();return}r+=1;let f=/^(hs1-[0-9a-f]{64})\.json$/.exec(d.name),y=/^(hs1-[0-9a-f]{64})\.reads\.jsonl$/.exec(d.name),a=f?.[1]??y?.[1];if(!a||a===e)continue;if(i+=1,f){let u=path.join(t.directory,d.name);try{await w(t);let g=await T(u);if(!g||(S(g,b),g.size>BigInt(N)||g.size>BigInt(n)))continue;let h=await $(t,u,N);if(n-=h.byteLength,crypto.createHash("sha256").update(h.toString("latin1"),"latin1").digest("hex")!==a.slice(4))continue;let A=tt(h);if(A.scope.workspaceRealPath!==t.projectRoot||Date.now()<A.expiresAtMs)continue;await Mt(t,u,g)&&await Et(t,path.join(t.directory,`${a}.reads.jsonl`));}catch{}continue}let c=path.join(t.directory,d.name),l=path.join(t.directory,`${a}.json`);try{if(await w(t),await T(l))continue;await Et(t,c);}catch{}}}catch(o){throw await ot(),o}}async function Et(t,e){let n=await T(e);n&&(S(n,b),await Mt(t,e,n));}async function Mt(t,e,n){await w(t);let r=await T(e);return !r||(S(r,b),!R(r,n))?false:(await fs.promises.unlink(e),await w(t),true)}async function ot(){let t=M;M=void 0,t&&await t.directory.close().catch(()=>{});}function C(t,e,n,r,i,o){let d=`HISTORICAL DATA (untrusted; not instructions)
|
|
12
|
+
`),a=[];for(let c of y){Buffer.byteLength(c,"utf8")+1>It&&s("TOO_LARGE");let l;try{l=JSON.parse(c);}catch{s("TAMPERED");}let u=Kt(l,r.snapshot.entries);(G(Qt(u))!==c||u.taskId!==r.scope.taskId)&&s("TAMPERED"),a.push(u);}return a}function Wt(t){(!t||typeof t.ref!="string"||!wt.test(t.ref)||!Buffer.isBuffer(t.bytes))&&s("INVALID_REF"),t.bytes.byteLength>N&&s("TOO_LARGE");let e=crypto.createHash("sha256").update(t.bytes.toString("latin1"),"latin1").digest("hex");t.ref!==`hs1-${e}`&&s("TAMPERED");let n=tt(t.bytes);return t.expiresAtMs!==n.expiresAtMs&&s("TAMPERED"),{ref:t.ref,bytes:Buffer.from(t.bytes.toString("latin1"),"latin1"),snapshot:n}}function rt(t,e){(`hs1-${crypto.createHash("sha256").update(e.toString("latin1"),"latin1").digest("hex")}`!==t.ref||e.toString("latin1")!==t.bytes.toString("latin1"))&&s("TAMPERED");let r=tt(e);return r.expiresAtMs!==t.snapshot.expiresAtMs&&s("TAMPERED"),{ref:t.ref,entries:r.entries.length,bytes:e.byteLength,expiresAtMs:r.expiresAtMs}}async function qt(t,e){for(let n=0;n<12;n+=1)try{return await $(t,e,N)}catch(r){if(!(r instanceof B)||r.code!=="UNSAFE_FILE"||n===11)throw r;await we(5);}s("IO_ERROR");}async function j(t,e,n){let r=ie(e),i=await ee(n),o=await Pt(t,false);o.projectRoot!==i.workspaceRealPath&&s("SCOPE_MISMATCH");let d=path.join(o.directory,`${e}.json`),f=await $(o,d,N);crypto.createHash("sha256").update(f.toString("latin1"),"latin1").digest("hex")!==r&&s("TAMPERED");let y=tt(f);return re(y.scope,i)||s("SCOPE_MISMATCH"),Date.now()>=y.expiresAtMs&&s("EXPIRED"),{storage:o,snapshot:y,scope:i}}function tt(t){let e;try{e=JSON.parse(t.toString("utf8"));}catch{s("TAMPERED");}(!O(e)||!st(e,["schemaVersion","scope","runEpoch","preparedAtMs","expiresAtMs","activityCoverage","entries"])||e.schemaVersion!==1||!ne(e.scope)||!Array.isArray(e.entries))&&s("TAMPERED"),(!st(e.scope,["workspaceRealPath","agentId","threadId","taskId"])||!path.isAbsolute(e.scope.workspaceRealPath)||path.resolve(e.scope.workspaceRealPath)!==e.scope.workspaceRealPath||!L(e.scope.workspaceRealPath)||!L(e.scope.agentId)||!L(e.scope.threadId)||!L(e.scope.taskId))&&s("TAMPERED"),(!Number.isSafeInteger(e.runEpoch)||e.runEpoch<0||!Number.isSafeInteger(e.preparedAtMs)||e.preparedAtMs<0||!Number.isSafeInteger(e.expiresAtMs)||e.expiresAtMs!==e.preparedAtMs+Rt)&&s("TAMPERED");let n=[];for(let i=0;i<e.entries.length;i+=1){let o=e.entries[i];(!O(o)||!st(o,["ordinal","kind","taskId","turn","body","metadata","details"])||o.ordinal!==i+1||o.kind!=="message"&&o.kind!=="activity"&&o.kind!=="highlight"||!(o.taskId===null||typeof o.taskId=="string")||!(o.turn===null||Number.isSafeInteger(o.turn)&&o.turn>0)||typeof o.body!="string"||!L(o.body)||!(o.metadata===null||O(o.metadata))||!(o.details===null||O(o.details)))&&s("TAMPERED"),n.push(o);}let r=e;return G(r)!==t.toString("utf8")&&s("TAMPERED"),e.activityCoverage!==void 0&&Se(e.activityCoverage,new Set),yt(r)&&s("TAMPERED"),{...r,entries:n}}function Kt(t,e){(!O(t)||t.version!==1||!Number.isSafeInteger(t.timestampMs)||t.timestampMs<0)&&s("TAMPERED"),(!Nt(t.operation)||typeof t.taskId!="string"||typeof t.ranges!="string")&&s("TAMPERED"),(!Number.isSafeInteger(t.byteCount)||t.byteCount<0||t.byteCount>Z)&&s("TAMPERED");let n=Zt(t.ranges),r=[...new Set(n.map(i=>i.entry))];for(let i of n){let o=e[i.entry-1];(!o||i.endByte>Buffer.byteLength(o.body,"utf8"))&&s("TAMPERED");}return {version:1,timestampMs:t.timestampMs,operation:t.operation,taskId:t.taskId,entries:r,ranges:n,byteCount:t.byteCount}}function Qt(t){return {version:t.version,timestampMs:t.timestampMs,operation:t.operation,taskId:t.taskId,ranges:kt(t.ranges),byteCount:t.byteCount}}function kt(t){let e=[];W(e,BigInt(t.length));let n=0,r=0;for(let i of t){let o=i.entry-n,d=i.startByte-r;o<0&&s("TAMPERED"),W(e,BigInt(o));let f=BigInt(d);W(e,f>=0n?f*2n:-f*2n-1n),W(e,BigInt(i.endByte-i.startByte)),n=i.entry,r=i.startByte;}return Buffer.from(e).toString("base64url")}function Zt(t){(!/^[A-Za-z0-9_-]*$/.test(t)||Buffer.byteLength(t)>448)&&s("TAMPERED");let e=Buffer.from(t,"base64url");e.toString("base64url")!==t&&s("TAMPERED");let n=0,r=()=>{let y=0n,a=0n;for(let c=0;c<10&&n<e.length;c+=1){let l=e[n++];if(y|=BigInt(l&127)<<a,(l&128)===0)return y;a+=7n;}s("TAMPERED");},i=Number(r());(!Number.isSafeInteger(i)||i<0||i>At)&&s("TAMPERED");let o=[],d=0,f=0;for(let y=0;y<i;y+=1){let a=Number(r()),c=r(),l=c%2n===0n?Number(c/2n):-Number((c+1n)/2n),u=Number(r()),g=d+a,h=f+l,E=h+u;(!Number.isSafeInteger(g)||g<1||!Number.isSafeInteger(h)||h<0||!Number.isSafeInteger(E)||E<h)&&s("TAMPERED"),o.push({entry:g,startByte:h,endByte:E}),d=g,f=h;}return n!==e.length&&s("TAMPERED"),o}function W(t,e){e<0n&&s("TAMPERED");let n=e;for(;n>=0x80n;)t.push(Number(n&0x7fn|0x80n)),n>>=7n;t.push(Number(n));}function te(t){return fs.realpathSync.native(path.resolve(t))}function Ot(t){Tt(t);try{return {workspaceRealPath:te(t.workspaceRealPath),agentId:I(t.agentId),threadId:I(t.threadId),taskId:I(t.taskId)}}catch{s("IO_ERROR");}}async function ee(t){Tt(t);try{return {workspaceRealPath:await fs.promises.realpath(path.resolve(t.workspaceRealPath)),agentId:I(t.agentId),threadId:I(t.threadId),taskId:I(t.taskId)}}catch{s("IO_ERROR");}}function Tt(t){(!t||typeof t.workspaceRealPath!="string"||t.workspaceRealPath.length===0)&&s("IDENTITY_MISSING"),(typeof t.agentId!="string"||t.agentId.length===0)&&s("IDENTITY_MISSING"),(typeof t.taskId!="string"||t.taskId.length===0)&&s("IDENTITY_MISSING"),typeof t.threadId!="string"&&s("IDENTITY_MISSING");}function ne(t){return O(t)&&typeof t.workspaceRealPath=="string"&&typeof t.agentId=="string"&&typeof t.threadId=="string"&&typeof t.taskId=="string"&&t.agentId.length>0&&t.taskId.length>0}function re(t,e){return t.workspaceRealPath===e.workspaceRealPath&&t.agentId===e.agentId&&t.threadId===e.threadId&&t.taskId===e.taskId}function ie(t){typeof t!="string"&&s("INVALID_REF");let e=wt.exec(t);return e||s("INVALID_REF"),e[1]}async function Pt(t,e){(typeof t!="string"||t.length===0)&&s("IO_ERROR");try{let n=await fs.promises.realpath(path.resolve(t)),r=await fs.promises.lstat(n,{bigint:!0});(r.isSymbolicLink()||!r.isDirectory())&&s("UNSAFE_FILE"),et(r);let i={path:n,dev:r.dev,ino:r.ino,isSnapshotDirectory:!1},o=await pt(path.join(n,".crewx"),e,!1,[i]),d=await pt(path.join(n,".crewx","history-snapshots"),e,!0,[i,o]);return {projectRoot:n,directory:d.path,pins:[i,o,d]}}catch(n){throw Y(n)}}async function pt(t,e,n,r){await ct(r);let i=await T(t),o=false;if(!i){e||s("NOT_FOUND");try{await fs.promises.mkdir(t,{mode:at}),o=!0;}catch(f){if(X(f)!=="EEXIST")throw f}i=await fs.promises.lstat(t,{bigint:true}),o&&process.platform!=="win32"&&await fs.promises.chmod(t,at);}if(D(i,n),o&&(i=await fs.promises.lstat(t,{bigint:true}),D(i,n)),process.platform!=="win32"){let f=await fs.promises.open(t,fs.constants.O_RDONLY|Re()|V());try{let y=await f.stat({bigint:!0});D(y,n),R(i,y)||s("UNSAFE_FILE");}finally{await f.close();}}await ct(r);let d=await fs.promises.lstat(t,{bigint:true});return D(d,n),R(i,d)||s("UNSAFE_FILE"),{path:t,dev:i.dev,ino:i.ino,isSnapshotDirectory:n}}async function w(t){await ct(t.pins);}async function ct(t){for(let e of t){let n=await T(e.path);(!n||n.isSymbolicLink()||!n.isDirectory()||!R(n,e))&&s("UNSAFE_FILE"),D(n,e.isSnapshotDirectory);}}function D(t,e){if((t.isSymbolicLink()||!t.isDirectory())&&s("UNSAFE_FILE"),et(t),process.platform==="win32")return;let n=Number(t.mode&0o777n);(e?n!==at:(n&18)!==0)&&s("UNSAFE_FILE");}function S(t,e){(t.isSymbolicLink()||!t.isFile()||t.nlink!==1n)&&s("UNSAFE_FILE"),et(t),process.platform!=="win32"&&Number(t.mode&0o777n)!==e&&s("UNSAFE_FILE");}function et(t){if(process.platform==="win32")return;let e=process.getuid;typeof e=="function"&&t.uid!==BigInt(e())&&s("UNSAFE_FILE");}async function $(t,e,n,r=false){let i;try{await w(t);let o=await T(e);if(!o){if(r)return Buffer.alloc(0);s("NOT_FOUND");}S(o,b),o.size>BigInt(n)&&s("TOO_LARGE"),i=await fs.promises.open(e,fs.constants.O_RDONLY|V());let d=await i.stat({bigint:!0});S(d,b),R(o,d)||s("UNSAFE_FILE"),d.size>BigInt(n)&&s("TOO_LARGE"),await w(t);let f=await fs.promises.lstat(e,{bigint:!0});(f.isSymbolicLink()||!R(f,d))&&s("UNSAFE_FILE");let y=await i.readFile();y.byteLength>n&&s("TOO_LARGE");let a=await i.stat({bigint:!0});S(a,b),(!R(d,a)||a.size!==d.size||a.size!==BigInt(y.byteLength))&&s("TAMPERED");let c=await fs.promises.lstat(e,{bigint:!0});return S(c,b),R(c,a)||s("UNSAFE_FILE"),await w(t),y}catch(o){throw Y(o)}finally{i&&await i.close().catch(()=>{});}}async function mt(t){let e=await fs.promises.lstat(t,{bigint:true});S(e,b);let n=await fs.promises.open(t,fs.constants.O_WRONLY|fs.constants.O_APPEND|V());try{let r=await n.stat({bigint:!0});return S(r,b),R(e,r)||s("UNSAFE_FILE"),n}catch(r){throw await n.close().catch(()=>{}),r}}async function it(t,e,n){await w(t);let r=await T(e);r&&((r.isSymbolicLink()||!r.isFile()||!R(r,n))&&s("UNSAFE_FILE"),et(r),await fs.promises.unlink(e),await w(t));}async function oe(t,e){let n=N,r=0,i=0;try{await w(t);let o=t.pins.find(d=>d.isSnapshotDirectory);if(o||s("UNSAFE_FILE"),M&&(M.path!==t.directory||M.dev!==o.dev||M.ino!==o.ino)&&await ot(),!M){let d=await fs.promises.lstat(t.directory,{bigint:!0});D(d,!0),R(d,o)||s("UNSAFE_FILE");let f=await fs.promises.opendir(t.directory),y=await fs.promises.lstat(t.directory,{bigint:!0});D(y,!0),R(y,d)||(await f.close().catch(()=>{}),s("UNSAFE_FILE")),M={path:t.directory,dev:y.dev,ino:y.ino,directory:f};}for(;r<Vt&&i<Xt;){let d=await M.directory.read();if(!d){await ot();return}r+=1;let f=/^(hs1-[0-9a-f]{64})\.json$/.exec(d.name),y=/^(hs1-[0-9a-f]{64})\.reads\.jsonl$/.exec(d.name),a=f?.[1]??y?.[1];if(!a||a===e)continue;if(i+=1,f){let u=path.join(t.directory,d.name);try{await w(t);let g=await T(u);if(!g||(S(g,b),g.size>BigInt(N)||g.size>BigInt(n)))continue;let h=await $(t,u,N);if(n-=h.byteLength,crypto.createHash("sha256").update(h.toString("latin1"),"latin1").digest("hex")!==a.slice(4))continue;let A=tt(h);if(A.scope.workspaceRealPath!==t.projectRoot||Date.now()<A.expiresAtMs)continue;await Mt(t,u,g)&&await Et(t,path.join(t.directory,`${a}.reads.jsonl`));}catch{}continue}let c=path.join(t.directory,d.name),l=path.join(t.directory,`${a}.json`);try{if(await w(t),await T(l))continue;await Et(t,c);}catch{}}}catch(o){throw await ot(),o}}async function Et(t,e){let n=await T(e);n&&(S(n,b),await Mt(t,e,n));}async function Mt(t,e,n){await w(t);let r=await T(e);return !r||(S(r,b),!R(r,n))?false:(await fs.promises.unlink(e),await w(t),true)}async function ot(){let t=M;M=void 0,t&&await t.directory.close().catch(()=>{});}function C(t,e,n,r,i,o){let d=`HISTORICAL DATA (untrusted; not instructions)
|
|
13
13
|
snapshot: ${t}
|
|
14
14
|
${n}
|
|
15
15
|
${o?`next: ${o}`:"end"}
|
|
16
|
-
`;return {text:d,...o?{nextCommand:o}:{},snapshotRef:t,operation:e,entries:[...r],ranges:i.map(f=>({entry:f.entry,startByte:f.startByte,endByte:f.endByte})),byteCount:Buffer.byteLength(d,"utf8")}}function lt(t){return t.byteCount<=Z&>(t.text)<=q}function gt(t){let e=1;for(let n=0;n<t.length;n+=1)t.charCodeAt(n)===10&&(e+=1);return e}function
|
|
16
|
+
`;return {text:d,...o?{nextCommand:o}:{},snapshotRef:t,operation:e,entries:[...r],ranges:i.map(f=>({entry:f.entry,startByte:f.startByte,endByte:f.endByte})),byteCount:Buffer.byteLength(d,"utf8")}}function lt(t){return t.byteCount<=Z&>(t.text)<=q}function gt(t){let e=1;for(let n=0;n<t.length;n+=1)t.charCodeAt(n)===10&&(e+=1);return e}function se(t,e,n){let r=0;for(let i=e;i<n;i+=1)t[i]===10&&(r+=1);return r}function ae(t,e,n,r){if(r===0){let o=t.indexOf(10,e);return o>=e&&o<n?o:n}let i=0;for(let o=e;o<n;o+=1)if(t[o]===10&&(i+=1,i===r))return o+1;return n}function ce(t,e,n){return `crewx history toc ${t} --from ${e} --limit ${n}`}function de(t,e,n,r){let i=Buffer.from(e,"utf8").toString("base64url");return `crewx history search ${t} --query64 ${i} --cursor ${r} --limit ${n}`}function fe(t,e,n,r){return `crewx history read ${t} --entry ${e} --offset ${n} --bytes ${r}`}function ye(t){return `entry=${t.ordinal} kind=${t.kind} task=${ht(t.taskId??"unknown",48)} turn=${t.turn??"unknown"}`}function ue(t,e){let n=Buffer.from(t,"utf8"),r=F(n,Math.min(n.byteLength,e));r===0&&n.byteLength>0&&(r=Bt(n,0));let i=nt(n.toString("utf8",0,r),e+32);return {text:i.text,endByte:i.consumedBytes}}function ht(t,e){return JSON.stringify(nt(t,e).text)}function nt(t,e){let n=I(t),r="",i=0,o=0,d=false;for(let f of n){let y=f.codePointAt(0)??0,a=y<=31||y===127||y>=128&&y<=159?`\\u{${y.toString(16)}}`:f,c=Buffer.byteLength(a,"utf8");if(i+c>e){d=true;break}r+=a,i+=c,o+=Buffer.byteLength(f,"utf8");}return d&&i+3<=e&&(r+="\u2026"),{text:r,consumedBytes:o}}function le(t,e,n,r){let i=[],o=r?.entry??1;for(let d of t){if(d.ordinal<o)continue;let f=r&&d.ordinal===r.entry?r.afterByte:0,y=Buffer.byteLength(d.body,"utf8");f>y&&s("INVALID_REF");let a=Buffer.from(d.body,"utf8");if(ge(d.body,e,(c,l)=>{if(d.ordinal===o&&c<f)return true;let u=he(a,c,l,180);return i.push({entry:d,startByte:c,endByte:l,snippetStartByte:u.startByte,snippetEndByte:u.endByte,snippet:u.text}),i.length<n}),i.length>=n)break}return i}function ge(t,e,n){let r=bt(e);if(r.length===0)return;let i=Array.from({length:r.length},(l,u)=>r.charCodeAt(u)),o=new Int32Array(i.length);for(let l=1,u=0;l<i.length;l+=1){for(;u>0&&i[l]!==i[u];)u=o[u-1];i[l]===i[u]&&(u+=1),o[l]=u;}let d=new Float64Array(i.length),f=new Float64Array(i.length),y=0,a=0,c=0;for(let l of t){let u=c,g=u+Buffer.byteLength(l,"utf8"),h=bt(l);for(let E=0;E<h.length;E+=1){let A=h.charCodeAt(E);for(d[a%i.length]=u,f[a%i.length]=g;y>0&&A!==i[y];)y=o[y-1];if(A===i[y]&&(y+=1),y===i.length){let m=a-i.length+1,P=n(d[m%i.length],f[a%i.length]);if(y=o[y-1],!P)return}a+=1;}c=g;}}function bt(t){return t.toLowerCase().replace(/\u03c2/g,"\u03C3")}function he(t,e,n,r){let i=Math.min(40,Math.floor(r/4)),o=F(t,Math.max(0,e-i)),d=F(t,Math.min(t.byteLength,Math.max(n,o+r)));d<n&&(d=F(t,n)),o>e&&(o=e);let f=nt(t.toString("utf8",o,d),r*4);return {text:f.text,startByte:o,endByte:o+f.consumedBytes}}function pe(t){return Buffer.from(G(t),"utf8").toString("base64url")}function me(t,e,n,r){(typeof t!="string"||!/^[A-Za-z0-9_-]+$/.test(t)||Buffer.byteLength(t)>Gt)&&s("INVALID_REF");let i;try{let o=Buffer.from(t,"base64url");o.toString("base64url")!==t&&s("INVALID_REF"),i=JSON.parse(o.toString("utf8"));}catch(o){if(o instanceof B)throw o;s("INVALID_REF");}return (!O(i)||i.version!==1||typeof i.ref!="string"||typeof i.queryHash!="string")&&s("INVALID_REF"),(i.ref!==e||i.queryHash!==n)&&s("SCOPE_MISMATCH"),(!Number.isSafeInteger(i.entry)||i.entry<1||i.entry>r||!Number.isSafeInteger(i.afterByte)||i.afterByte<0)&&s("INVALID_REF"),i}function dt(t,e){return e===t.byteLength||e<t.byteLength&&(t[e]&192)!==128}function F(t,e){let n=Math.max(0,Math.min(t.byteLength,e));for(;n>0&&n<t.byteLength&&(t[n]&192)===128;)n-=1;return n}function Bt(t,e){if(e>=t.byteLength)return t.byteLength;let n=e+1;for(;n<t.byteLength&&(t[n]&192)===128;)n+=1;return n}function Ee(t){let e=t.metadata,n=t.taskId??e?.task_id??e?.taskId;return typeof n=="string"&&n.length>0?I(n):void 0}function be(t){if(t===void 0)return null;let e=v(t,new Set);return O(e)||s("IO_ERROR"),e}function St(t){let e=v(t,new Set);return O(e)?e:null}function v(t,e){if(t===null||typeof t=="boolean")return t;if(typeof t=="string")return I(t);if(typeof t=="number")return Number.isFinite(t)||s("IO_ERROR"),t;if(Array.isArray(t)){e.has(t)&&s("IO_ERROR"),e.add(t);let n=t.map(r=>r===void 0?null:v(r,e));return e.delete(t),n}if(typeof t=="object"&&t!==null){e.has(t)&&s("IO_ERROR");let n=Object.getPrototypeOf(t);n!==Object.prototype&&n!==null&&s("IO_ERROR"),e.add(t);let r=Object.create(null);for(let i of Object.keys(t).sort()){if(_t.test(i))continue;let o=t[i];o!==void 0&&(r[I(i)]=v(o,e));}return e.delete(t),r}s("IO_ERROR");}function Se(t,e){v(t,e);}function G(t){return JSON.stringify(ft(t,new Set))}function ft(t,e){if(t===null||typeof t=="boolean"||typeof t=="string")return typeof t=="string"&&!L(t)&&s("TAMPERED"),t;if(typeof t=="number")return Number.isFinite(t)||s("TAMPERED"),t;if(Array.isArray(t)){e.has(t)&&s("TAMPERED"),e.add(t);let n=t.map(r=>ft(r,e));return e.delete(t),n}if(O(t)){e.has(t)&&s("TAMPERED"),e.add(t);let n=Object.create(null);for(let r of Object.keys(t).sort())L(r)||s("TAMPERED"),n[r]=ft(t[r],e);return e.delete(t),n}s("TAMPERED");}function L(t){for(let e=0;e<t.length;e+=1){let n=t.charCodeAt(e);if(n>=55296&&n<=56319){let r=t.charCodeAt(e+1);if(!(r>=56320&&r<=57343))return false;e+=1;}else if(n>=56320&&n<=57343)return false}return true}function I(t){if(L(t))return t;let e="";for(let n=0;n<t.length;n+=1){let r=t.charCodeAt(n);if(r>=55296&&r<=56319){let i=t.charCodeAt(n+1);i>=56320&&i<=57343?(e+=t[n]+t[n+1],n+=1):e+="\uFFFD";}else r>=56320&&r<=57343?e+="\uFFFD":e+=t[n];}return e}function O(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)&&(Object.getPrototypeOf(t)===Object.prototype||Object.getPrototypeOf(t)===null)}function st(t,e){let n=new Set(e);return Object.keys(t).every(r=>n.has(r))}function yt(t){if(Array.isArray(t))return t.some(e=>yt(e));if(!O(t))return false;for(let[e,n]of Object.entries(t))if(_t.test(e)||yt(n))return true;return false}function Nt(t){return t==="toc"||t==="search"||t==="read"}async function Ie(t,e){let n=0;for(;n<e.byteLength;){let{bytesWritten:r}=await t.write(e.toString("latin1",n),null,"latin1");r<=0&&s("IO_ERROR"),n+=r;}}async function ut(t,e,n){let r=t.get(e)??Promise.resolve(),i,o=new Promise(d=>{i=d;});t.set(e,o),await r.catch(()=>{});try{return await n()}catch(d){throw Y(d)}finally{i(),t.get(e)===o&&t.delete(e);}}async function T(t){try{return await fs.promises.lstat(t,{bigint:!0})}catch(e){if(X(e)==="ENOENT")return;throw Y(e)}}function R(t,e){return t.dev===e.dev&&t.ino===e.ino}function V(){return fs.constants.O_NOFOLLOW??0}function Re(){return fs.constants.O_DIRECTORY??0}function X(t){if(typeof t=="object"&&t!==null&&"code"in t&&typeof t.code=="string")return t.code}function Y(t){if(t instanceof B)return t;let e=X(t);return e==="ENOENT"?new B("NOT_FOUND"):e==="ELOOP"||e==="EMLINK"||e==="EISDIR"?new B("UNSAFE_FILE"):new B("IO_ERROR")}function s(t){throw new B(t)}function we(t){return new Promise(e=>setTimeout(e,t))}exports.HistorySnapshotError=B;exports.MAX_AUDIT_BYTES=K;exports.MAX_AUDIT_RECORD_BYTES=It;exports.MAX_PAGE_BYTES=Z;exports.MAX_PAGE_LINES=q;exports.MAX_SNAPSHOT_BYTES=N;exports.planHistorySnapshot=Te;exports.readHistory=Le;exports.readHistoryAudit=De;exports.recordHistoryEmission=xe;exports.resolveWorkspaceRealPathSync=te;exports.scopeFromEnv=Me;exports.searchHistory=Ne;exports.tocHistory=Be;exports.writeHistorySnapshot=Pe;
|
package/dist/index.browser.js
CHANGED
|
@@ -3,4 +3,4 @@ import {load}from'js-yaml';import'js-tiktoken';import'js-tiktoken/lite';import y
|
|
|
3
3
|
|
|
4
4
|
`).trim(),Hn(n,1024)||void 0}function Hn(e,n){let t=new TextEncoder;if(t.encode(e).byteLength<=n)return e;let r="",o=0;for(let i of e){let s=t.encode(i).byteLength;if(o+s>n)break;r+=i,o+=s;}return r}function Gn(e){let n=/\b(?:request|response|http)?\s*body\s*[:=]\s*/gim,t="",r=0,o;for(;(o=n.exec(e))!==null;){if(o.index<r)continue;let i=o.index+o[0].length,s=Jn(e,i),a=s>=0?s:e.indexOf(`
|
|
5
5
|
`,i)>=0?e.indexOf(`
|
|
6
|
-
`,i):e.length;t+=e.slice(r,o.index),t+=`[HTTP BODY ${y}]`,r=a;}return t+e.slice(r)}function Jn(e,n){let t=e[n];if(t==='"'||t==="'")return zn(e,n,t);if(t!=="{"&&t!=="[")return -1;let r=[],o,i=false;for(let s=n;s<e.length;s+=1){let a=e[s];if(o){i?i=false:a==="\\"?i=true:a===o&&(o=void 0);continue}if(a==='"'||a==="'"){o=a;continue}if(a==="{"||a==="["){r.push(a);continue}if(a!=="}"&&a!=="]")continue;let p=r.pop();if(a==="}"&&p!=="{"||a==="]"&&p!=="[")return -1;if(r.length===0)return s+1}return -1}function zn(e,n,t){let r=false;for(let o=n+1;o<e.length;o+=1){let i=e[o];if(r)r=false;else if(i==="\\")r=true;else if(i===t)return o+1}return -1}function He(e,n=240){if(typeof e!="string")return;let t=e.split(/\r?\n/).map(r=>r.trim()).find(r=>r&&!/^at\s+/.test(r));if(t)return t.replace(/\u001b\[[0-?]*[ -/]*[@-~]/g,"").replace(/(^|[\s"'(=])((?:[A-Za-z]:[\\/]|\/)(?:[^\s"'`()\[\]{}]+[\\/])*[^\s"'`()\[\]{}]+)/g,"$1[path]").slice(0,n).trim()}function Ge(e){let n=He(e);if(n)return He(n.replace(/^Upstream request failed:\s*/i,""),200)}var Vn=new Set(["USAGE_LIMITED","CONTEXT_WINDOW_EXCEEDED","INPUT_TOO_LARGE","MODEL_NOT_SUPPORTED","MODEL_AT_CAPACITY","AUTH_REQUIRED","ACCOUNT_SETTING_REQUIRED","MODEL_RETIRED","SUBSCRIPTION_REQUIRED","CLI_NOT_AVAILABLE","CLI_UPDATE_REQUIRED","AGENT_NOT_FOUND","PERMISSION_OR_TRUST","TIMEOUT_OR_STUCK","NETWORK_OR_PROVIDER_TRANSIENT","PROVIDER_CONFIGURATION","AGENT_MODE_RESTRICTED","PROCESS_FAILED"]),qn=new Set(["plan","plan-auto","read-only"]),Wn={QUOTA_EXHAUSTED:"USAGE_LIMITED",RATE_LIMITED:"USAGE_LIMITED",AUTH_REQUIRED:"AUTH_REQUIRED",ACCOUNT_SETTING_REQUIRED:"ACCOUNT_SETTING_REQUIRED",MODEL_RETIRED:"MODEL_RETIRED",SUBSCRIPTION_REQUIRED:"SUBSCRIPTION_REQUIRED",TIMEOUT_IDLE:"TIMEOUT_OR_STUCK",TIMEOUT_TOTAL:"TIMEOUT_OR_STUCK",TIMEOUT_RESUME:"NETWORK_OR_PROVIDER_TRANSIENT",PROVIDER_NOT_FOUND:"PROVIDER_CONFIGURATION",INVALID_PROVIDER_FORMAT:"PROVIDER_CONFIGURATION",PROVIDER_CRASHED:"PROCESS_FAILED",EMPTY_OUTPUT:"PROCESS_FAILED"},$n=[{code:"USAGE_LIMITED",pattern:/(?:rate[ _-]?limit|quota|usage[ /_-]?limit|usage exhausted|too many requests|429\b)/i},{code:"CONTEXT_WINDOW_EXCEEDED",pattern:/context (?:window|length)|maximum context|context[_ -]?window[_ -]?exceeded|too many tokens/i},{code:"INPUT_TOO_LARGE",pattern:/input[_ -]?(?:is[_ -]?)?too[_ -]?large|prompt (?:is )?too (?:large|long)|request[_ -]?(?:is[_ -]?)?too[_ -]?large|payload[_ -]?(?:is[_ -]?)?too[_ -]?large|maximum input/i},{code:"MODEL_AT_CAPACITY",pattern:/(?:model|service|provider).*(?:at capacity|overloaded|temporarily busy)|at capacity|overloaded/i},{code:"MODEL_NOT_SUPPORTED",pattern:/(?:model|invalid_request_error).*(?:not[ _-]?supported|unsupported|does[ _-]?not[ _-]?exist|not[ _-]?found|invalid)|model[_-]?not[_-]?(?:found|supported)/i},{code:"MODEL_NOT_SUPPORTED",pattern:/\bunrecognized_model\b/i},{code:"AUTH_REQUIRED",pattern:/(?:401\b|unauthori[sz]ed|not logged in|login required|sign[ -]?in required|api key (?:is )?(?:missing|invalid|required)|authentication required)/i},{code:"CLI_UPDATE_REQUIRED",pattern:/(?:requires? a newer version|update (?:your )?cli|cli version.*(?:old|outdated|unsupported)|version mismatch)/i},{code:"CLI_NOT_AVAILABLE",pattern:/(?:ENOENT|command not found|executable.*not found|cli.*(?:not installed|unavailable)|is .* installed\?)/i},{code:"AGENT_NOT_FOUND",pattern:/agent[_ -]?not[_ -]?found|unknown agent/i},{code:"PERMISSION_OR_TRUST",pattern:/(?:permission denied|operation not permitted|workspace trust|not trusted|access denied|EACCES|EPERM)/i},{code:"NETWORK_OR_PROVIDER_TRANSIENT",pattern:/(?:resume failed|failed .*resum(?:e|ing)|after resuming the session|재개 실패|세션 재개)/i},{code:"TIMEOUT_OR_STUCK",pattern:/(?:timeout|timed out|took too long|stuck|idle timeout|ETIMEDOUT)/i},{code:"NETWORK_OR_PROVIDER_TRANSIENT",pattern:/(?:network (?:unreachable|error)|connection (?:reset|refused|closed)|ECONN(?:RESET|REFUSED|ABORTED)|service unavailable|upstream.*(?:5\d\d|error)|provider.*(?:5\d\d|unavailable|down)|\b5\d\d\b)/i},{code:"PROVIDER_CONFIGURATION",pattern:/(?:invalid provider|unsupported provider|provider namespace|provider configuration|provider config|missing provider)/i}];function Xn(e){try{if(!I(e)||e.status!=="failed")return ne();let n=Yn(e.error);if(oe(n.message))return ne();let t=A(e.providerId)??n.provider??null,r=Qn(e.logs),o=ze(n.code);if(o)return M(o,t,n.message,n);let i=L(n.providerCode)??L(n.code),s=i?re(i,n.message,{exitCode:st(e.exitCode),mode:n.mode,fromProviderCodeField:!!n.providerCode}):void 0;if(s)return M(s,t,n.message,n,i);let a=Zn(r);if(!Kn(n)&&a&&(a.type==="user_stop"||oe(a.message)))return ne();if(a){let l=et(a.code,a.providerCode,a.message);if(l)return M(l,t,a.message??n.message,n,a.providerCode??a.code,a,a.structuredFailure?"terminal":"envelope")}let p=nt(n.message,r);return p?M(p.code,t,p.message,n,p.terminal?.providerCode??p.terminal?.code,p.terminal,p.terminal?.structuredFailure?"terminal":"envelope"):M("PROCESS_FAILED",t,n.message,n)}catch{return {errorCode:"PROCESS_FAILED",errorProvider:null}}}function ne(){return {errorCode:null,errorProvider:null}}function M(e,n,t,r,o,i,s="envelope"){let a={};if(i?.resetAt!==void 0?a.resetAt=i.resetAt:r?.resetAt!==void 0?a.resetAt=r.resetAt:r?.retryAfterMs!==void 0&&(a.resetAt=Date.now()+r.retryAfterMs),e==="ACCOUNT_SETTING_REQUIRED"&&r?.settingReason&&(a.settingReason=r.settingReason),e==="MODEL_RETIRED"&&r?.replacementModel&&(a.replacementModel=r.replacementModel),e==="ACCOUNT_SETTING_REQUIRED"||e==="MODEL_RETIRED"||e==="SUBSCRIPTION_REQUIRED"){let m=Ge(r?.providerReason);m&&(a.providerReason=m);}if(r?.model&&(a.model=r.model),r?.mode&&(a.mode=r.mode),i?.type&&(a.upstreamType=i.type),o&&(a.upstreamCode=o),e==="CLI_NOT_AVAILABLE"||e==="CLI_UPDATE_REQUIRED"){let m=n?.startsWith("cli/")?n.slice(4):void 0;m&&(a.cliName=m);}let p=s==="terminal"?t:r?.message,l=s==="terminal"?i?.structuredFailure?p:void 0:r?.isEnvelope?p:void 0,c=ee(l);return c&&(a.technicalMessage=c),Object.keys(a).length>0?{errorCode:e,errorProvider:n,errorMeta:a}:{errorCode:e,errorProvider:n}}function Yn(e){let n=typeof e=="string"?C(e):e;return I(n)?{isEnvelope:true,code:A(n.code),providerCode:A(n.providerCode),settingReason:ot(n.settingReason),replacementModel:it(n.replacementModel),providerReason:A(n.providerReason),retryAfterMs:rt(n.retryAfterMs),resetAt:Ve(n.resetAt),message:A(n.message)??A(n.error),provider:A(n.provider)??A(n.errorProvider),model:A(n.model),mode:A(n.mode)}:{isEnvelope:false,...typeof e=="string"&&e.trim()?{message:e.trim()}:{}}}function C(e){try{return JSON.parse(e)}catch{return}}function Kn(e){return !!(e.code||e.providerCode||e.message)}function Qn(e){let n=[];if(typeof e=="string"){let t=C(e);if(Array.isArray(t))n.push(...t);else for(let r of e.split(/\r?\n/)){let o=C(r.trim());o!==void 0&&n.push(o);}}else Array.isArray(e)?n.push(...e):I(e)&&n.push(e);return n.flatMap(P)}function P(e){if(!I(e))return [];let n=A(e.type),t=A(e.message);if(t&&!n){let o=C(t);if(Array.isArray(o))return o.flatMap(P);if(I(o))return P(o);let i=t.split(/\r?\n/).map(s=>C(s.trim())).filter(s=>I(s));return i.length>0?i.flatMap(P):e.level==="stderr"?[{type:"stderr",message:t,rank:1,structuredFailure:false}]:P({type:"info",content:t})}if(n==="rate_limit_event"){let o=Je(e.rate_limit_info);return A(o?.status)!=="rejected"?[]:[{type:n,code:"RATE_LIMITED",message:v(o?.message,e.message),resetAt:Ve(o?.resetsAt),rank:4,structuredFailure:true}]}if(n==="turn.failed"||n==="error"){let o=Je(e.error),i=v(o?.message,o?.detail,e.message,e.errorMessage,e.content),s=v(o?.code,e.code,e.errorCode);return [{type:n,code:s,providerCode:v(o?.providerCode,e.providerCode),message:i,rank:n==="turn.failed"?3:2,structuredFailure:true}]}if(n==="text"&&typeof e.content=="string"){let o=C(e.content);if(I(o))return P(o)}let r=v(e.errorMessage,e.content);return r&&oe(r)?[{type:"user_stop",message:r,rank:1,structuredFailure:false}]:r&&/(?:turn\.failed|type:error)/i.test(r)?[{type:r.match(/turn\.failed/i)?"turn.failed":"error",message:r,rank:3,structuredFailure:false}]:[]}function Zn(e){return [...e].sort((n,t)=>t.rank-n.rank)[0]}function et(e,n,t){let r=ze(e);if(r)return r;if(e){let o=re(e,t);if(o)return o}if(n){let o=re(n,t);if(o)return o}return te(t)}function nt(e,n){let t=te(e);if(t)return {code:t,message:e};for(let r of [...n].sort((o,i)=>i.rank-o.rank)){let o=te(r.message);if(o)return {code:o,message:r.message,terminal:r}}}function te(e){if(!(typeof e!="string"||!e.trim()))return $n.find(n=>n.pattern.test(e))?.code}function re(e,n,t){let r=L(e)??e;if(r==="MODEL_UNAVAILABLE")return /(?:capacity|overloaded|busy)/i.test(n??"")?"MODEL_AT_CAPACITY":"MODEL_NOT_SUPPORTED";if(r==="EMPTY_OUTPUT"&&t?.fromProviderCodeField===true&&t.exitCode===0&&tt(t.mode))return "AGENT_MODE_RESTRICTED";if(r!=="UNKNOWN")return Wn[r]}function ze(e){let n=L(e);return n&&Vn.has(n)?n:void 0}function L(e){return typeof e=="string"&&e.trim()?e.trim().toUpperCase():void 0}function tt(e){return typeof e=="string"&&qn.has(e.trim().toLowerCase())}function oe(e){return e?/\b(?:stopped|killed|aborted|cancelled|canceled)\s+by\s+user\b/i.test(e)||/사용자에 의해 중지됨/.test(e)||/\b(?:SIGTERM\s+143|143\s+SIGTERM)\b/i.test(e):false}function I(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Je(e){return I(e)?e:void 0}function A(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function Ve(e){return typeof e=="string"||typeof e=="number"&&Number.isFinite(e)?e:void 0}function rt(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function ot(e){return e==="region"||e==="training_consent"||e==="access"||e==="other"?e:void 0}function it(e){return typeof e=="string"&&/^[A-Za-z0-9._/-]{1,128}$/.test(e)?e:void 0}function st(e){return typeof e=="number"&&Number.isInteger(e)?e:void 0}function v(...e){return e.map(A).find(n=>!!n)}var at=["none","minimal","low","medium","high","xhigh","max","ultra"],dt={claude:["low","medium","high","xhigh","max"],codex:["none","minimal","low","medium","high","xhigh","max","ultra"],opencode:[],copilot:["none","low","medium","high","xhigh","max"],antigravity:["low","medium","high"],grok:["low","medium","high","xhigh"]};var B={claude:{models:[{id:"claude-fable-5-1",name:"Claude Fable 5.1",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-fable-5",name:"Claude Fable 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-5-5",name:"Claude Opus 5.5",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-opus-5",name:"Claude Opus 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5",contextWindowTokens:1e6,tier:"balanced",recommended:true},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-opus-4-8[1m]",name:"Claude Opus 4.8",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-7[1m]",name:"Claude Opus 4.7",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-6[1m]",name:"Claude Opus 4.6",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-4-6[1m]",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-haiku-5-5",name:"Claude Haiku 5.5",contextWindowTokens:1e6,tier:"speed"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindowTokens:2e5,tier:"speed"}],modes:[{id:"default",name:"Default",description:"Uses Claude's default permission handling with normal approval prompts."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without approval; other permission checks remain in place."},{id:"plan",name:"Plan",description:"Keeps Claude in plan mode so it can inspect and propose changes without applying them."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permissions; only pre-approved tool actions can proceed."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Claude permission checks so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"claude-fable-5-1":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-fable-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"medium"},"claude-opus-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-sonnet-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-sonnet-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-8[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-7[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-sonnet-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-haiku-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"medium"},"claude-haiku-4-5":{effort:[]}},providerOptions:[]},codex:{models:[{id:"gpt-6-astra",name:"GPT-6 Astra",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-6.1-sol",name:"GPT-6.1 Sol",contextWindowTokens:105e4,tier:"balanced",recommended:true},{id:"gpt-6.1-terra",name:"GPT-6.1 Terra",contextWindowTokens:5e5,tier:"balanced"},{id:"gpt-6-sol",name:"GPT-6 Sol",contextWindowTokens:105e4,tier:"balanced"},{id:"gpt-6-luna",name:"GPT-6 Luna",contextWindowTokens:105e4,tier:"speed",recommended:true},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextWindowTokens:105e4,tier:"balanced"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextWindowTokens:105e4,tier:"speed"}],modes:[{id:"agent",name:"Agent",description:"Uses the workspace-write sandbox; can read and modify workspace files without full machine access."},{id:"read-only",name:"Read Only",description:"Uses the read-only sandbox; can inspect files but cannot write to the workspace."},{id:"plan",name:"Plan",description:"Uses the read-only sandbox for planning and inspection; cannot write to the workspace."},{id:"agent-full-access",name:"Agent Full Access",description:"Bypasses approvals and the sandbox; can access and modify files beyond the workspace."},{id:"yolo",name:"YOLO",description:"Bypasses approvals and the sandbox for unrestricted execution and full filesystem access."}],effort:["minimal","low","medium","high"],modelOverrides:{"gpt-6-astra":{effort:["low","medium","high","xhigh","max"],defaultEffort:"xhigh"},"gpt-6.1-sol":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"gpt-6.1-terra":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"max"},"gpt-6-sol":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"max"},"gpt-6-luna":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"medium"},"gpt-5.6-sol":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"xhigh"},"gpt-5.6-terra":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"high"},"gpt-5.6-luna":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"gpt-5.5":{effort:["low","medium","high","xhigh"],defaultEffort:"high"}},providerOptions:[]},opencode:{models:[],suggestedModels:[{id:"opencode-go/glm-5.3-flash",name:"GLM-5.3 Flash",contextWindowTokens:1e6,tier:"speed",recommended:true},{id:"opencode-go/qwen3.8-flash",name:"Qwen3.8 Flash",contextWindowTokens:1e6,tier:"speed",recommended:true},{id:"opencode-go/minimax-m3",name:"MiniMax M3",contextWindowTokens:1e6,tier:"balanced",recommended:true},{id:"opencode-go/kimi-k2.7-code",name:"Kimi K2.7 Code",contextWindowTokens:262144,tier:"balanced",recommended:true}],modes:[{id:"plan",name:"Plan",description:"Uses the plan agent without --auto; planning follows standard approval behavior."},{id:"plan-auto",name:"Plan \xB7 Auto",description:"Uses the plan agent with --auto; planning uses automatic approvals."},{id:"build",name:"Build",description:"Uses the build agent without --auto; work follows standard approval behavior."},{id:"build-auto",name:"Build \xB7 Auto",description:"Uses the build agent with --auto; work uses automatic approvals."}],effort:[],modelOverrides:{},providerOptions:[]},copilot:{models:[{id:"auto",name:"Auto"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced"}],modes:[{id:"interactive",name:"Interactive",description:"Passes --mode interactive; tool access follows Copilot's interactive mode behavior."},{id:"plan",name:"Plan",description:"Passes --mode plan; planning and permission behavior follow Copilot's plan mode."},{id:"autopilot",name:"Autopilot",description:"Passes --mode autopilot; execution behavior follows Copilot's autonomous mode."}],effort:["none","low","medium","high","xhigh","max"],modelOverrides:{},providerOptions:[]},antigravity:{models:[{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",tier:"balanced"},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",contextWindowTokens:1048576,tier:"flagship"},{id:"claude-sonnet-5-5-medium",name:"Claude Sonnet 5.5",tier:"balanced"},{id:"claude-opus-5-5-medium",name:"Claude Opus 5.5",tier:"flagship"},{id:"gemini-4-argon",name:"Gemini 4 Argon",tier:"flagship"}],modes:[{id:"default",name:"Default",description:"Uses Antigravity's default permission handling. No extra permission flags are passed."},{id:"plan",name:"Plan",description:"Passes --mode plan. This turns on /plan; it is not a Claude-style permission mode."},{id:"acceptEdits",name:"Accept Edits",description:"Passes --mode accept-edits."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Passes --dangerously-skip-permissions so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"gemini-3.8-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.7-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.6-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.5-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.1-pro":{effort:["low","high"],defaultEffort:"high"},"claude-sonnet-5-5-medium":{effort:["low","medium","high"],defaultEffort:"medium"},"claude-opus-5-5-medium":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-4-argon":{effort:["low","medium","high"],defaultEffort:"high"},"claude-sonnet-4-6":{effort:[]},"claude-opus-4-6-thinking":{effort:[]},"gpt-oss-120b":{effort:["medium"],defaultEffort:"medium"}},providerOptions:[]},grok:{models:[{id:"grok-4.7",name:"Grok 4.7",contextWindowTokens:5e5,tier:"flagship",recommended:true},{id:"grok-4.6",name:"Grok 4.6",contextWindowTokens:5e5,tier:"flagship"},{id:"grok-4.5",name:"Grok 4.5",contextWindowTokens:5e5,tier:"flagship"}],modes:[{id:"default",name:"Default",description:"Uses Grok's default permission handling."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without changing the selected sandbox profile."},{id:"auto",name:"Auto",description:"Uses Grok automatic permission handling."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permission before tool execution."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Grok permission checks for tool execution."},{id:"plan",name:"Plan",description:"Keeps Grok in planning mode without applying changes."}],effort:["low","medium","high"],modelOverrides:{"grok-4.7":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.6":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.5":{effort:["low","medium","high"],defaultEffort:"high"}},providerOptions:[{key:"alwaysApprove",type:"boolean"},{key:"sandbox",type:"enum",values:["workspace","read-only","off"]}]}},ie={providers:{"cli/codex":{model:"gpt-6.1-sol",query:{mode:"agent",effort:"high"},execute:{mode:"agent-full-access",effort:"high"}},"cli/claude":{model:"claude-opus-5-5",query:{mode:"default",effort:"high"},execute:{mode:"bypassPermissions",effort:"xhigh"}},"cli/grok":{model:"grok-4.7",query:{mode:"default",effort:"high",providerOptions:{alwaysApprove:true,sandbox:"off"}},execute:{mode:"bypassPermissions",effort:"xhigh",providerOptions:{alwaysApprove:true,sandbox:"off"}}},"cli/antigravity":{model:"gemini-3.8-flash",query:{mode:"default",effort:"medium"},execute:{mode:"bypassPermissions",effort:"medium"}}}};Object.fromEntries(Object.entries(B).map(([e,n])=>[e,n.models]));var lt="claude-opus-4-8",ut="claude-opus-4-8[1m]",qe=[{baseModelId:"claude-opus-4-8",catalogModelId:"claude-opus-4-8[1m]"},{baseModelId:"claude-opus-4-7",catalogModelId:"claude-opus-4-7[1m]"},{baseModelId:"claude-opus-4-6",catalogModelId:"claude-opus-4-6[1m]"},{baseModelId:"claude-sonnet-4-6",catalogModelId:"claude-sonnet-4-6[1m]"}];var ft=new Map(qe.map(({baseModelId:e,catalogModelId:n})=>[e,n]));function We(e){return ft.get(e)??e}var $e=[{legacyId:"Gemini 3.7 Flash (High)",model:"gemini-3.7-flash",effort:"high"},{legacyId:"Gemini 3.7 Flash (Medium)",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"Gemini 3.7 Flash (Low)",model:"gemini-3.7-flash",effort:"low"},{legacyId:"Gemini 3.6 Flash (High)",model:"gemini-3.6-flash",effort:"high"},{legacyId:"Gemini 3.6 Flash (Medium)",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"Gemini 3.6 Flash (Low)",model:"gemini-3.6-flash",effort:"low"},{legacyId:"Gemini 3.5 Flash (Medium)",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"Gemini 3.5 Flash (High)",model:"gemini-3.5-flash",effort:"high"},{legacyId:"Gemini 3.5 Flash (Low)",model:"gemini-3.5-flash",effort:"low"},{legacyId:"Gemini 3.1 Pro (Low)",model:"gemini-3.1-pro",effort:"low"},{legacyId:"Gemini 3.1 Pro (High)",model:"gemini-3.1-pro",effort:"high"},{legacyId:"Claude Sonnet 4.6 (Thinking)",model:"claude-sonnet-4-6"},{legacyId:"Claude Opus 4.6 (Thinking)",model:"claude-opus-4-6-thinking"},{legacyId:"GPT-OSS 120B (Medium)",model:"gpt-oss-120b",effort:"medium"},{legacyId:"gemini-3.7-flash-high",model:"gemini-3.7-flash",effort:"high"},{legacyId:"gemini-3.7-flash-medium",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"gemini-3.7-flash-low",model:"gemini-3.7-flash",effort:"low"},{legacyId:"gemini-3.6-flash-high",model:"gemini-3.6-flash",effort:"high"},{legacyId:"gemini-3.6-flash-medium",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"gemini-3.6-flash-low",model:"gemini-3.6-flash",effort:"low"},{legacyId:"gemini-3.5-flash-high",model:"gemini-3.5-flash",effort:"high"},{legacyId:"gemini-3.5-flash-medium",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"gemini-3.5-flash-low",model:"gemini-3.5-flash",effort:"low"},{legacyId:"gemini-3.1-pro-high",model:"gemini-3.1-pro",effort:"high"},{legacyId:"gemini-3.1-pro-low",model:"gemini-3.1-pro",effort:"low"},{legacyId:"gpt-oss-120b-medium",model:"gpt-oss-120b",effort:"medium"}],gt=new Map($e.map(({legacyId:e,model:n,effort:t})=>[e,t===void 0?{model:n}:{model:n,effort:t}]));function Xe(e){if(!e)return {};let n=gt.get(e);return n?{...n}:{model:e}}function se(e,n){return e==="antigravity"||e==="cli/antigravity"?Xe(n):n===void 0?{}:{model:We(n)}}var Ye=30,Ke=80;Object.keys(yt.special_tokens);var Qe=z$1.object({id:z$1.string().min(1),provider:z$1.string().min(1),model:z$1.string().min(1),weight:z$1.number().finite().int().min(1).default(1),account:z$1.string().min(1).optional()}).strict();var At=z$1.object({kind:z$1.literal("custom"),run:z$1.string().min(1)}).strict(),ht=z$1.object({name:z$1.string().min(1).max(60).optional(),strategy:z$1.enum(["round-robin","weighted"]),chain:z$1.array(At).optional(),models:z$1.array(Qe).min(1).max(8).optional(),candidates:z$1.array(Qe).min(1).max(8).optional(),sticky:z$1.enum(["conversation","none"]).default("none"),defaultModel:z$1.string().min(1).optional(),defaultCandidate:z$1.string().min(1).optional()}).strict().superRefine((e,n)=>{e.models!==void 0&&e.candidates!==void 0&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["models"],message:'Cannot specify both "models" and legacy "candidates".'}),e.defaultModel!==void 0&&e.defaultCandidate!==void 0&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["defaultModel"],message:'Cannot specify both "defaultModel" and legacy "defaultCandidate".'});let t=e.models??e.candidates;if(!t){n.addIssue({code:z$1.ZodIssueCode.custom,path:["models"],message:"At least one model is required."});return}let r=new Set;t.forEach((i,s)=>{r.has(i.id)&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["models",s,"id"],message:`Duplicate route model id: ${i.id}`}),r.add(i.id);});let o=e.defaultModel??e.defaultCandidate;o&&!r.has(o)&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["defaultModel"],message:`Unknown defaultModel for route: ${o}`});}),Ze=ht.transform(e=>{let{candidates:n,defaultCandidate:t,...r}=e,o=e.defaultModel??e.defaultCandidate,i={...r,models:e.models??e.candidates??[],...o===void 0?{}:{defaultModel:o}};return Object.defineProperty(i,"candidates",{configurable:false,enumerable:false,value:i.models,writable:false}),o!==void 0&&Object.defineProperty(i,"defaultCandidate",{configurable:false,enumerable:false,value:o,writable:false}),i});var _t=z$1.object({model:z$1.string().optional(),system_prompt:z$1.string().optional(),prompt:z$1.string().optional(),layout:z$1.union([z$1.string(),z$1.object({id:z$1.string(),props:z$1.record(z$1.unknown()).optional()}),z$1.object({props:z$1.record(z$1.unknown())}),z$1.object({template:z$1.string(),capabilities:z$1.object({semanticContinuity:z$1.boolean().optional(),continuity:z$1.boolean().optional(),continuitySlot:z$1.string().optional(),slot:z$1.string().optional()}).optional()})]).optional()}).catchall(z$1.unknown()),Et=z$1.object({include:z$1.array(z$1.string()).optional()}).optional(),It=z$1.object({id:z$1.string(),name:z$1.string().optional(),role:z$1.string().optional(),team:z$1.string().optional(),provider:z$1.union([z$1.string(),z$1.array(z$1.string())]),provider_account:z$1.string().min(1).optional(),working_directory:z$1.string().optional(),description:z$1.string().optional(),tags:z$1.array(z$1.string()).optional(),inline:_t.optional(),skills:Et,interceptors:z$1.unknown().optional()}).catchall(z$1.unknown());z$1.object({id:z$1.string(),name:z$1.string(),workflow_id:z$1.string(),description:z$1.string().optional(),goal_id:z$1.string().optional()});var Tt=z$1.number().finite().int().min(Ye).max(Ke),xt=z$1.object({inputBudgetPercent:Tt.optional()}).catchall(z$1.unknown()),Pt=z$1.object({continuity:xt.optional()}).catchall(z$1.unknown()),Ct=z$1.object({bin_resolution:z$1.enum(["global_first","local_first"]).optional(),dreaming:Pt.optional(),wi:z$1.object({boards:z$1.array(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()),en=z$1.object({agents:z$1.array(It).optional(),routes:z$1.record(Ze).optional(),hooks:z$1.array(z$1.unknown()).optional(),settings:Ct.optional(),skills:z$1.unknown().optional(),layouts:z$1.record(z$1.unknown()).optional(),documents:z$1.record(z$1.unknown()).optional()}).catchall(z$1.unknown()).superRefine((e,n)=>{for(let[t,r]of (e.agents??[]).entries()){let o=r.inline?.model;if(!o?.startsWith("route/"))continue;let i=o.slice(6);(!i||!e.routes?.[i])&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["agents",t,"inline","model"],message:`Agent '${r.id}' references unknown model route '${i}'`});}});var O=class extends Error{constructor(t,r){super(t);this.cause=r;this.name="ConfigLoadError";}cause};function Rt(e){if(!e||typeof e!="string"||!e.trim())throw new O("YAML content must be a non-empty string");let n;try{n=load(e);}catch(o){throw new O(`YAML parse error: ${o.message}`,o)}let t=bt(n),r=en.safeParse(t);if(!r.success)throw new O(`Config validation error: ${r.error.message}`);return r.data}function bt(e){if(!e||typeof e!="object")return {agents:[]};let n=e;if(n.agents&&typeof n.agents=="object"&&!Array.isArray(n.agents)){let t=n.agents,r=Object.entries(t).map(([o,i])=>({id:o,...i&&typeof i=="object"?i:{}}));return {...n,agents:r}}return n.agents?n:{...n,agents:[]}}var Mt={auto:"default"};function vt(e){return Mt[e]??e}var St="crewx:fs:",ae=class{prefix;store;constructor(n){this.prefix=n?.prefix??St,this.store=n?.storage??new Map;}async readFile(n){let t=this.toKey(n),r=this.store.get(t);if(r===void 0)throw new Error(`BrowserFsAdapter: file not found: ${n}`);return r}async exists(n){return this.store.has(this.toKey(n))}resolvePath(...n){let t=n.map(s=>s.replace(/\\/g,"/")).join("/").replace(/\/+/g,"/"),r=t.split("/"),o=[];for(let s of r)s==="."||s===""||(s===".."?o.pop():o.push(s));let i=o.join("/");return t.startsWith("/")?`/${i}`:i}isAbsolute(n){return n.startsWith("/")}setItem(n,t){this.store.set(this.toKey(n),t);}removeItem(n){this.store.delete(this.toKey(n));}keys(){return Array.from(this.store.keys()).filter(n=>n.startsWith(this.prefix)).map(n=>n.slice(this.prefix.length))}async readdir(n){let t=n.replace(/\\/g,"/").replace(/\/$/,""),r=this.toKey(t+"/"),o=[];for(let i of this.store.keys())if(i.startsWith(r)){let a=i.slice(r.length).split("/")[0];a&&!o.includes(a)&&o.push(a);}return o}toKey(n){return `${this.prefix}${n.replace(/\\/g,"/")}`}};var de=["codex","claude","grok","opencode","antigravity","copilot"];function kt(e){let n=e.indexOf("/");return n===-1?e:e.slice(n+1)}function pe(e){let n=kt(e),t=de.indexOf(n);return t===-1?de.length:t}function wt(e,n){return pe(e)-pe(n)}var Dt=new Set(["claude","copilot","codex","grok","opencode"]);function Nt(e){if(!e)return "";if(e.startsWith("acp/")){let n=e.slice(4);if(Dt.has(n))return `cli/${n}`}return e}function j(e){return {mode:e.mode,effort:e.effort}}function Ut(e){let n=ie.providers[e];if(!n)return;let t=e.startsWith("cli/")?e.slice(4):e,r=B[t]?.models.find(s=>s.recommended===true&&s.tier==="balanced")?.id??n.model,o={query:j(n.query),execute:j(n.execute)},i={query:j(n.query),execute:j(n.execute)};return {planner:{model:n.model,...o},worker:{model:r,...i}}}var tn=["urgent","high","medium","low"],rn=["investigating","in-progress","in-review","on-hold","done"],S="custom:";var Lt=new Set(tn),Bt=new Set(rn),jt={urgent:"U \uAE34\uAE09 Urgent",high:"P0 \uAE09\uD568 High",medium:"P1 \uC911\uC694 Medium",low:"P2 \uBCF4\uD1B5 Low"},ce={investigating:"\uC870\uC0AC\uC911 Looking into","in-progress":"\uC9C4\uD589\uC911 In progress","in-review":"\uAC80\uD1A0\uC911 In review","on-hold":"\uBCF4\uB958 On hold",done:"\uC644\uB8CC Done"};function nn(e,n){return !n||n.includes(e)?n??e:`${e} ${n}`}function le(e){return typeof e=="string"&&Lt.has(e)}function ue(e){if(typeof e!="string")return false;if(Bt.has(e))return true;if(e.startsWith("c_"))return e.length>2;if(!e.startsWith(S))return false;let n=e.slice(S.length);return n.length>=1&&n.length<=20}function on(e){if(e.startsWith(S))return e.slice(S.length)}function fe(e){if(!e)return null;try{let n=JSON.parse(e);return !n||typeof n!="object"||Array.isArray(n)?null:n}catch{return null}}function Ft(e){let n=fe(e);return !!n&&Object.prototype.hasOwnProperty.call(n,"threadTitle")}function sn(e){let n=fe(e);if(!n)return {};let t=n.threadTitle;if(!t||typeof t!="object"||Array.isArray(t))return {};let r=t,o={};return le(r.priority)&&(o.priority=r.priority),ue(r.state)&&(o.state=r.state),o}function Ht(e,n){let t=fe(e)??{},r={...sn(e)};return n.priority===null?delete r.priority:n.priority!==void 0&&(r.priority=n.priority),n.state===null?delete r.state:n.state!==void 0&&(r.state=n.state),r.priority===void 0&&r.state===void 0?delete t.threadTitle:t.threadTitle=r,Object.keys(t).length===0?null:JSON.stringify(t)}function Gt(e,n=new Map){let t=[];return e.priority&&t.push(nn(jt[e.priority],n.get(e.priority))),e.state&&(e.state.startsWith(S)?t.push(on(e.state)??""):ce[e.state]?t.push(nn(ce[e.state],n.get(e.state))):n.has(e.state)?t.push(e.state,n.get(e.state)??""):e.state.startsWith("c_")?t.push(e.state):t.push(ce[e.state]??"")),t.filter(Boolean).join(" ")}function an(e,n){if(!e||e.trim().length===0)return;let t=new Set,r=false,o=false;for(let i of e.split(",")){let s=i.trim();if(s){if(s==="none"){r=true,o=true;continue}n(s)&&(t.add(s),o=true);}}if(o)return {values:t,includeNone:r}}function Jt(e){return an(e,le)}function zt(e){return an(e,ue)}function Vt(e,n){return n?e?n.values.has(e):n.includeNone:true}var qt=["crewx_app_terminal_connect","crewx_app_html_viewer_open","crewx_app_browser","crewx_files_list","crewx_files_read","crewx_files_write","crewx_docs_share"];var ge=["text/plain","application/json"];var Wt=["__proto__","prototype","constructor","proof","token","secret","password","cookie","authorization","private_key","private-key","stack","exception","plugin_text","url","uri","endpoint","path","filename","filepath","cwd","shell","directory","dir","folder"];new Set(Wt);var dn=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/;var $t=/^uic_[A-Za-z0-9_-]+$/,Xt=/^[0-9a-f]{64}$/,_="MCP App content declarations are invalid";function w(e){return typeof e=="string"&&ge.includes(e)}function F(e){return typeof e=="string"&&e.length<=128&&$t.test(e)}function Yt(e,n){try{let t=n,r=k(t,"actions");if(!cn(r))throw new Error(_);let o=[];for(let s of Object.keys(r)){let a=k(r,s);if(a===null||typeof a!="object"||Array.isArray(a))throw new Error(_);let p=Object.getOwnPropertyDescriptor(a,"content");if(p===void 0)continue;if(!Object.hasOwn(p,"value"))throw new Error(_);let l=Qt(p.value);o.push({actionId:s,...l});}if(o.length===0)return;o.sort((s,a)=>s.actionId<a.actionId?-1:s.actionId>a.actionId?1:0);let i={schemaVersion:1,instanceId:e,definition:{id:k(t,"id"),version:k(t,"version"),hash:k(t,"hash")},actions:o};if(!me(i))throw new Error(_);for(let s of o)s.in!==void 0&&Object.freeze(s.in),s.out!==void 0&&Object.freeze(s.out),Object.freeze(s);return Object.freeze(o),Object.freeze(i.definition),Object.freeze(i)}catch{throw new Error(_)}}function me(e){try{if(!H(e,["schemaVersion","instanceId","definition","actions"]))return !1;let n=e;if(n.schemaVersion!==1||!F(n.instanceId)||!nr(n.definition))return !1;let t=n.actions;if(!sr(t)||t.length===0)return !1;let r;for(let o=0;o<t.length;o+=1){let i=t[o];if(!tr(i)||r!==void 0&&!(r<i.actionId))return !1;r=i.actionId;}return !0}catch{return false}}function Kt(e,n,t){return me(e)?e.instanceId===n&&e.definition.id===t.id&&e.definition.version===t.version&&e.definition.hash===t.hash:false}function Qt(e){if(!D(e,["in","out"]))throw new Error(_);let n=e,t=Object.hasOwn(n,"in"),r=Object.hasOwn(n,"out");if(!t&&!r)throw new Error(_);return {...t?{in:Zt(n.in)}:{},...r?{out:er(n.out)}:{}}}function Zt(e){if(!D(e,["mediaType","required"],["mediaType"]))throw new Error(_);let n=e,t=n.mediaType,r=Object.hasOwn(n,"required")?n.required:false;if(!w(t)||typeof r!="boolean")throw new Error(_);return {mediaType:t,required:r}}function er(e){if(!D(e,["mediaType","range"],["mediaType"]))throw new Error(_);let n=e,t=n.mediaType,r=Object.hasOwn(n,"range")?n.range:false;if(!w(t)||typeof r!="boolean")throw new Error(_);return {mediaType:t,range:r}}function nr(e){if(!H(e,["id","version","hash"]))return false;let n=e;return pn(n.id)&&ir(n.version)&&typeof n.hash=="string"&&Xt.test(n.hash)}function tr(e){if(!D(e,["actionId","in","out"],["actionId"]))return false;let n=e,t=n.actionId,r=Object.hasOwn(n,"in"),o=Object.hasOwn(n,"out");return !(typeof t!="string"||!pn(t)||!r&&!o||r&&!rr(n.in)||o&&!or(n.out))}function rr(e){if(!H(e,["mediaType","required"]))return false;let n=e;return w(n.mediaType)&&typeof n.required=="boolean"}function or(e){if(!H(e,["mediaType","range"]))return false;let n=e;return w(n.mediaType)&&typeof n.range=="boolean"}function pn(e){return typeof e=="string"&&dn.test(e)}function ir(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function sr(e){if(!Array.isArray(e))return false;let n=Reflect.ownKeys(e);if(n.length!==e.length+1||n[e.length]!=="length")return false;for(let t=0;t<e.length;t+=1){if(n[t]!==String(t))return false;let r=Object.getOwnPropertyDescriptor(e,String(t));if(r===void 0||!Object.hasOwn(r,"value"))return false}return true}function H(e,n){return D(e,n,n)}function D(e,n,t=[]){if(!cn(e))return false;let r=Reflect.ownKeys(e);if(r.length>n.length||r.length<t.length)return false;for(let o of r){if(typeof o!="string"||!n.includes(o))return false;let i=Object.getOwnPropertyDescriptor(e,o);if(i===void 0||!Object.hasOwn(i,"value"))return false}return t.every(o=>Object.hasOwn(e,o))}function cn(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function k(e,n){if(e===null||typeof e!="object")return;let t=Object.getOwnPropertyDescriptor(e,n);return t!==void 0&&Object.hasOwn(t,"value")?t.value:void 0}var ln=[5,15,30,60],ye=Object.freeze({min:15e3,max:6e5,default:3e5}),ar=1;var dr="exit 78",un=["standby","disabled","draining","degraded"],pr=["cron","cron_manual","app_enable"],cr=/^[A-Z][A-Z0-9_]{0,63}$/u;function lr(e){return typeof e=="string"&&cr.test(e)}function ur(e){return ln.includes(e)}function fr(e){return Number.isSafeInteger(e)&&e>=ye.min&&e<=ye.max}function gr(e){return un.includes(e)}var fn={refCodePoints:200,refSegments:3},mr=/^[\p{L}\p{N}][\p{L}\p{N}\p{M}_-]{0,99}$/u;function yr(e){let n=e.normalize("NFC");if([...n].length>fn.refCodePoints)return;let t=n.split("/");if(t.length>fn.refSegments)return;let r=t[t.length-1];return r.endsWith(".md")&&[...t.slice(0,-1),r.slice(0,-3)].every(i=>mr.test(i))?n:void 0}var Ae=Object.freeze({min:6e4,max:18e5,default:6e5}),Ar=1,gn="crewx/appJobs",mn=1,he=["starting","running","stopping","finished"],_e=["succeeded","failed","timed_out","cancelled","shutdown","interrupted"],Ee=["cancelled","timed_out","shutdown"],Ie=["manual","schedule"],hr=/^[a-z][a-z0-9_]{0,63}$/u,_r=/^[A-Z][A-Z0-9_]{0,63}$/u,yn=["start","status","cancel"],An=["APP_JOB_NOT_DECLARED","APP_JOB_NOT_AUTHORIZED","APP_JOB_SELF_START","APP_JOB_OWNER_INVALID","APP_JOB_DEFINITION_INVALID","APP_JOB_DEFINITION_CHANGED","APP_JOB_DEADLINE_INVALID","APP_JOB_SHUTTING_DOWN","APP_JOB_OWNER_MISMATCH","APP_JOB_STALE_HANDLE","APP_JOB_NOT_ACTIVE","APP_JOB_NOT_GRANTED"],Er="APP_JOB_RUN_REQUIRED";function Ir(e){return Number.isSafeInteger(e)&&e>=Ae.min&&e<=Ae.max}function Te(e){return typeof e=="string"&&_r.test(e)}function xe(e){return typeof e=="string"&&hr.test(e)}function hn(e){return yn.includes(e)}function Tr(e){return e?.some(({name:n,version:t})=>n===gn&&t===mn)===true}var xr="CREWX_APP_JOB_CHANNEL",Pr=1,Cr=4096,Or=1e4,Rr=5e3;var br=/^[A-Za-z0-9._:-]{1,128}$/u,Mr=64,vr=2147483647;function Sr(e){return e==="schedule"?"schedule":"manual"}function kr(e){return wr(e)}function wr(e){let n=Tn(e)?e:void 0;if(n===void 0||!In(n,["handle","state","stopReason","trigger","outcome","phase","completed","total","resumable","lastHeartbeatAt","startedAt","finishedAt","errorCode","recoverable"],[]))return;let t=Dr(n.handle),r=n.stopReason,o=n.outcome,i=n.phase,s=n.errorCode,a=n.recoverable;if(!(t===void 0||!he.includes(n.state)||!(r===null||Ee.includes(r))||r!==null&&n.state!=="stopping"||!Ie.includes(n.trigger)||!(o===null||_e.includes(o))||!(i===null||xe(i))||!(n.completed===null||_n(n.completed))||!(n.total===null||_n(n.total))||typeof n.resumable!="boolean"||!En(n.lastHeartbeatAt)||!xn(n.startedAt)||!En(n.finishedAt)||!(s===null||Te(s))||!(a===null||typeof a=="boolean")))return {handle:t,state:n.state,stopReason:r,trigger:n.trigger,outcome:o,phase:i,completed:n.completed,total:n.total,resumable:n.resumable,lastHeartbeatAt:n.lastHeartbeatAt,startedAt:n.startedAt,finishedAt:n.finishedAt,errorCode:s,recoverable:a}}function Dr(e){if(!(!Tn(e)||!In(e,["runId","generation"],[]))&&!(typeof e.runId!="string"||!br.test(e.runId)||!Nr(e.generation)))return {runId:e.runId,generation:e.generation}}function In(e,n,t){let r=new Set([...n,...t]);return Object.keys(e).every(o=>r.has(o))&&n.every(o=>Object.hasOwn(e,o))}function Tn(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function Nr(e){return Number.isSafeInteger(e)&&e>=1&&e<=vr}function _n(e){return Number.isSafeInteger(e)&&e>=0}function xn(e){return typeof e=="string"&&e.length>0&&e.length<=Mr}function En(e){return e===null||xn(e)}var Ur="crewx/openApp",Ce=1,Lr="ui/crewx-open-app",Br="ui/crewx-open-app-status",Cn=32768,On=8,Oe=["opened","completed","pending"],Re=["UI_APP_OPEN_INVALID","UI_APP_OPEN_UNAVAILABLE","UI_APP_OPEN_GESTURE_REQUIRED","UI_APP_OPEN_STALE","UI_APP_OPEN_BUSY","UI_APP_OPEN_REJECTED","UI_APP_OPEN_FAILED","UI_APP_OPEN_REQUEST_ID_CONFLICT"],be=["RECEIPT_FAILED","RECEIPT_REJECTED","RECEIPT_CONFLICTED","RECEIPT_EXPIRED","LEDGER_MISSING","LEDGER_EXPIRED"],J=class extends Error{constructor(t,r){super(t);this.errorCode=t;this.causeCode=r;}errorCode;causeCode;name="CrewxOpenAppError"},jr=/^[A-Za-z0-9-]{8,64}$/,Fr=/^[A-Za-z0-9_-]{1,128}$/,z=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/,Hr=new TextEncoder,Pn=/\p{Surrogate}/u,Gr=new Set(["__proto__","constructor","prototype"]);function f(){throw new J("UI_APP_OPEN_INVALID")}function N(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function q(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function T(e,n,t=[]){q(e)||f();let r=new Set([...n,...t]);for(let o of Object.keys(e))r.has(o)||f();for(let o of n)N(e,o)||f();return e}function V(e,n){return (typeof e!="string"||!n.test(e))&&f(),e}function W(e){return (typeof e!="string"||!jr.test(e))&&f(),e}function b(e){(typeof e!="string"||!Fr.test(e))&&f();let n=e.indexOf("_");return (n<0||n===e.length-1)&&f(),W(e.slice(0,n)),e}function Rn(e){return b(e).slice(0,e.indexOf("_"))}function bn(e){return F(e)||f(),e}function R(e,n){let t=n.find(r=>r===e);return t===void 0&&f(),t}function Pe(e,n){if(e===null)return "null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return Number.isFinite(e)||f(),JSON.stringify(e);if(typeof e=="string")return Pn.test(e)&&f(),JSON.stringify(e);if(n>On&&f(),Array.isArray(e)){let o=[];for(let i=0;i<e.length;i+=1)N(e,String(i))||f(),o.push(Pe(e[i],n+1));return `[${o.join(",")}]`}q(e)||f();let t=e;return `{${Object.keys(t).sort().map(o=>((Gr.has(o)||Pn.test(o))&&f(),`${JSON.stringify(o)}:${Pe(t[o],n+1)}`)).join(",")}}`}function Jr(e){let n=T(e,["requestId","appId"],["action"]),t=b(n.requestId),r=V(n.appId,z);if(!N(n,"action"))return {requestId:t,appId:r};let o=T(n.action,["actionId","input"]),i=o.input;return q(i)||f(),{requestId:t,appId:r,action:{actionId:V(o.actionId,z),input:i}}}function Mn(e){return {version:Ce,sessionId:W(e)}}function zr(e){let n=T(e,["version","sessionId"]);return n.version!==Ce&&f(),Mn(W(n.sessionId))}function Vr(e,n){return typeof n!="string"&&f(),b(`${W(e)}_${n}`)}function vn(e){let n=Pe(Jr(e),1);return Hr.encode(n).byteLength>Cn&&f(),n}function qr(e){return JSON.parse(vn(e))}function Wr(e){let n=T(e,["requestId"]);return {requestId:b(n.requestId)}}function Sn(e){return {status:R(e.status,Oe),appId:V(e.appId,z),instanceId:bn(e.instanceId),requestId:b(e.requestId)}}function kn(e,n){let t=R(e,Re);return n===void 0?{isError:true,_meta:{errorCode:t}}:{isError:true,_meta:{errorCode:t,causeCode:R(n,be)}}}function $r(e){if(q(e)||f(),N(e,"isError")){let t=T(e,["isError","_meta"]);t.isError!==true&&f();let r=T(t._meta,["errorCode"],["causeCode"]);return kn(R(r.errorCode,Re),N(r,"causeCode")?R(r.causeCode,be):void 0)}let n=T(e,["status","appId","instanceId","requestId"]);return Sn({status:R(n.status,Oe),appId:V(n.appId,z),instanceId:bn(n.instanceId),requestId:b(n.requestId)})}function G(e,n){return {state:"failed",errorCode:e,causeCode:n}}function Xr(e){if(e.kind==="pending"||e.status==="requested")return {state:"pending"};if(e.outcome==="succeeded")return {state:"completed"};switch(e.outcome){case "rejected":return G("UI_APP_OPEN_REJECTED","RECEIPT_REJECTED");case "conflicted":return G("UI_APP_OPEN_STALE","RECEIPT_CONFLICTED");case "expired":return G("UI_APP_OPEN_STALE","RECEIPT_EXPIRED");default:return G("UI_APP_OPEN_FAILED","RECEIPT_FAILED")}}function Me(e,n){return e.workspaceId===n.workspaceId&&e.threadId===n.threadId&&e.instanceId===n.instanceId&&e.definition.id===n.definition.id&&e.definition.version===n.definition.version&&e.definition.hash===n.definition.hash&&e.entryHash===n.entryHash}function Yr(e){if(Rn(e.requestId)!==e.activeSessionId)return "stale";let{lookup:n}=e;return n.kind==="absent"?n.capacity==="full"?"busy":"new":Me(n.record.source,e.source)&&n.record.payloadDigest===e.payloadDigest?"known":"conflict"}function Kr(e){return Rn(e.requestId)!==e.activeSessionId||e.lookup.kind!=="present"?"stale":Me(e.lookup.record.source,e.source)?"known":"stale"}export{$e as ANTIGRAVITY_MODEL_COMPATIBILITY,Rr as APP_JOB_BRIDGE_DRAIN_TIMEOUT_MS,xr as APP_JOB_BRIDGE_ENV,Cr as APP_JOB_BRIDGE_MAX_LINE_BYTES,Or as APP_JOB_BRIDGE_REPLY_TIMEOUT_MS,Pr as APP_JOB_BRIDGE_VERSION,gn as APP_JOB_CAPABILITY,mn as APP_JOB_CAPABILITY_VERSION,Ae as APP_JOB_DEADLINE_MS,Ar as APP_JOB_MAX_PER_APP,yn as APP_JOB_OPERATIONS,_e as APP_JOB_OUTCOMES,An as APP_JOB_REFUSAL_CODES,Er as APP_JOB_RUN_REQUIRED,he as APP_JOB_STATES,Ee as APP_JOB_STOP_REASONS,Ie as APP_JOB_TRIGGERS,dr as APP_SCHEDULE_INERT_COMMAND,ln as APP_SCHEDULE_INTERVALS_MINUTES,ar as APP_SCHEDULE_MAX_PER_APP,un as APP_SCHEDULE_PERIODIC_REASONS,ye as APP_SCHEDULE_TIMEOUT_MS,rn as BUILTIN_THREAD_STATES,ae as BrowserFsAdapter,qe as CLAUDE_MODEL_COMPATIBILITY_PAIRS,lt as CLAUDE_OPUS_4_8_BASE_MODEL_ID,ut as CLAUDE_OPUS_4_8_LEGACY_MODEL_ID,Ur as CREWX_OPEN_APP_CAPABILITY,Ce as CREWX_OPEN_APP_CAPABILITY_VERSION,On as CREWX_OPEN_APP_MAX_JSON_DEPTH,Cn as CREWX_OPEN_APP_MAX_PARAMS_BYTES,Lr as CREWX_OPEN_APP_METHOD,Br as CREWX_OPEN_APP_STATUS_METHOD,Oe as CREWX_OPEN_APP_SUCCESS_STATUSES,O as ConfigLoadError,Z as Crewx,J as CrewxOpenAppError,at as EFFORT_LEVELS,qt as MCP_APP_HOST_TOOL_ALLOWLIST,dt as PROVIDER_ARGV_EFFORTS,de as PROVIDER_ORDER,h as ProviderError,pr as SCHEDULE_TRIGGERS,tn as THREAD_PRIORITIES,be as UI_APP_OPEN_CAUSE_CODES,Re as UI_APP_OPEN_ERROR_CODES,ge as UI_CONTENT_MEDIA_TYPES,Sr as appJobTriggerForActor,Yt as buildMcpAppContentActions,vn as canonicalCrewxOpenAppPayload,Xn as classifyTaskError,wt as compareProviders,Kt as contentActionsMatch,Mn as createCrewxOpenAppCapabilityDeclaration,kn as createCrewxOpenAppErrorResult,Vr as createCrewxOpenAppRequestId,Sn as createCrewxOpenAppSuccessResult,U as createProvider,on as customStateLabel,Yr as decideCrewxOpenAppOpen,Kr as decideCrewxOpenAppStatus,Ut as getDefaultAgentProfile,Tr as hasAppJobCapability,Ft as hasThreadTitleKey,Te as isAppJobCode,Ir as isAppJobDeadlineMs,hn as isAppJobOperation,xe as isAppJobPhase,lr as isAppScheduleCode,ur as isAppScheduleIntervalMinutes,gr as isAppSchedulePeriodicReason,fr as isAppScheduleTimeoutMs,me as isMcpAppContentActions,Me as isSameCrewxOpenAppSourceBinding,le as isThreadPriority,ue as isThreadState,w as isUiContentMediaType,F as isValidUiAppInstanceId,Vt as matchesThreadTitleFilter,Ht as mergeThreadTitleMeta,yr as normalizeAppFilesRef,vt as normalizeClaudeMode,Nt as normalizeProviderId,kr as parseAppJobView,zr as parseCrewxOpenAppCapabilityDeclaration,qr as parseCrewxOpenAppRequest,$r as parseCrewxOpenAppResult,Wr as parseCrewxOpenAppStatusRequest,Jt as parseThreadPriorityFilter,zt as parseThreadStateFilter,Rt as parseYamlContent,pe as providerRank,sn as readThreadTitleMeta,ee as redactTechnicalMessage,Q as registerProviderFactory,Xe as resolveAntigravityModel,We as resolveCatalogModelId,Xr as resolveCrewxOpenAppActionOutcome,se as resolveProviderCatalogModel,Gt as threadTitleSearchHaystack};
|
|
6
|
+
`,i):e.length;t+=e.slice(r,o.index),t+=`[HTTP BODY ${y}]`,r=a;}return t+e.slice(r)}function Jn(e,n){let t=e[n];if(t==='"'||t==="'")return zn(e,n,t);if(t!=="{"&&t!=="[")return -1;let r=[],o,i=false;for(let s=n;s<e.length;s+=1){let a=e[s];if(o){i?i=false:a==="\\"?i=true:a===o&&(o=void 0);continue}if(a==='"'||a==="'"){o=a;continue}if(a==="{"||a==="["){r.push(a);continue}if(a!=="}"&&a!=="]")continue;let p=r.pop();if(a==="}"&&p!=="{"||a==="]"&&p!=="[")return -1;if(r.length===0)return s+1}return -1}function zn(e,n,t){let r=false;for(let o=n+1;o<e.length;o+=1){let i=e[o];if(r)r=false;else if(i==="\\")r=true;else if(i===t)return o+1}return -1}function He(e,n=240){if(typeof e!="string")return;let t=e.split(/\r?\n/).map(r=>r.trim()).find(r=>r&&!/^at\s+/.test(r));if(t)return t.replace(/\u001b\[[0-?]*[ -/]*[@-~]/g,"").replace(/(^|[\s"'(=])((?:[A-Za-z]:[\\/]|\/)(?:[^\s"'`()\[\]{}]+[\\/])*[^\s"'`()\[\]{}]+)/g,"$1[path]").slice(0,n).trim()}function Ge(e){let n=He(e);if(n)return He(n.replace(/^Upstream request failed:\s*/i,""),200)}var Vn=new Set(["USAGE_LIMITED","CONTEXT_WINDOW_EXCEEDED","INPUT_TOO_LARGE","MODEL_NOT_SUPPORTED","MODEL_AT_CAPACITY","AUTH_REQUIRED","ACCOUNT_SETTING_REQUIRED","MODEL_RETIRED","SUBSCRIPTION_REQUIRED","CLI_NOT_AVAILABLE","CLI_UPDATE_REQUIRED","AGENT_NOT_FOUND","PERMISSION_OR_TRUST","TIMEOUT_OR_STUCK","NETWORK_OR_PROVIDER_TRANSIENT","PROVIDER_CONFIGURATION","AGENT_MODE_RESTRICTED","PROCESS_FAILED"]),qn=new Set(["plan","plan-auto","read-only"]),Wn={QUOTA_EXHAUSTED:"USAGE_LIMITED",RATE_LIMITED:"USAGE_LIMITED",AUTH_REQUIRED:"AUTH_REQUIRED",ACCOUNT_SETTING_REQUIRED:"ACCOUNT_SETTING_REQUIRED",MODEL_RETIRED:"MODEL_RETIRED",SUBSCRIPTION_REQUIRED:"SUBSCRIPTION_REQUIRED",TIMEOUT_IDLE:"TIMEOUT_OR_STUCK",TIMEOUT_TOTAL:"TIMEOUT_OR_STUCK",TIMEOUT_RESUME:"NETWORK_OR_PROVIDER_TRANSIENT",PROVIDER_NOT_FOUND:"PROVIDER_CONFIGURATION",INVALID_PROVIDER_FORMAT:"PROVIDER_CONFIGURATION",PROVIDER_CRASHED:"PROCESS_FAILED",EMPTY_OUTPUT:"PROCESS_FAILED"},$n=[{code:"USAGE_LIMITED",pattern:/(?:rate[ _-]?limit|quota|usage[ /_-]?limit|usage exhausted|too many requests|429\b)/i},{code:"CONTEXT_WINDOW_EXCEEDED",pattern:/context (?:window|length)|maximum context|context[_ -]?window[_ -]?exceeded|too many tokens/i},{code:"INPUT_TOO_LARGE",pattern:/input[_ -]?(?:is[_ -]?)?too[_ -]?large|prompt (?:is )?too (?:large|long)|request[_ -]?(?:is[_ -]?)?too[_ -]?large|payload[_ -]?(?:is[_ -]?)?too[_ -]?large|maximum input/i},{code:"MODEL_AT_CAPACITY",pattern:/(?:model|service|provider).*(?:at capacity|overloaded|temporarily busy)|at capacity|overloaded/i},{code:"MODEL_NOT_SUPPORTED",pattern:/(?:model|invalid_request_error).*(?:not[ _-]?supported|unsupported|does[ _-]?not[ _-]?exist|not[ _-]?found|invalid)|model[_-]?not[_-]?(?:found|supported)/i},{code:"MODEL_NOT_SUPPORTED",pattern:/\bunrecognized_model\b/i},{code:"AUTH_REQUIRED",pattern:/(?:401\b|unauthori[sz]ed|not logged in|login required|sign[ -]?in required|api key (?:is )?(?:missing|invalid|required)|authentication required)/i},{code:"CLI_UPDATE_REQUIRED",pattern:/(?:requires? a newer version|update (?:your )?cli|cli version.*(?:old|outdated|unsupported)|version mismatch)/i},{code:"CLI_NOT_AVAILABLE",pattern:/(?:ENOENT|command not found|executable.*not found|cli.*(?:not installed|unavailable)|is .* installed\?)/i},{code:"AGENT_NOT_FOUND",pattern:/agent[_ -]?not[_ -]?found|unknown agent/i},{code:"PERMISSION_OR_TRUST",pattern:/(?:permission denied|operation not permitted|workspace trust|not trusted|access denied|EACCES|EPERM)/i},{code:"NETWORK_OR_PROVIDER_TRANSIENT",pattern:/(?:resume failed|failed .*resum(?:e|ing)|after resuming the session|재개 실패|세션 재개)/i},{code:"TIMEOUT_OR_STUCK",pattern:/(?:timeout|timed out|took too long|stuck|idle timeout|ETIMEDOUT)/i},{code:"NETWORK_OR_PROVIDER_TRANSIENT",pattern:/(?:network (?:unreachable|error)|connection (?:reset|refused|closed)|ECONN(?:RESET|REFUSED|ABORTED)|service unavailable|upstream.*(?:5\d\d|error)|provider.*(?:5\d\d|unavailable|down)|\b5\d\d\b)/i},{code:"PROVIDER_CONFIGURATION",pattern:/(?:invalid provider|unsupported provider|provider namespace|provider configuration|provider config|missing provider)/i}];function Xn(e){try{if(!I(e)||e.status!=="failed")return ne();let n=Yn(e.error);if(oe(n.message))return ne();let t=A(e.providerId)??n.provider??null,r=Qn(e.logs),o=ze(n.code);if(o)return M(o,t,n.message,n);let i=L(n.providerCode)??L(n.code),s=i?re(i,n.message,{exitCode:st(e.exitCode),mode:n.mode,fromProviderCodeField:!!n.providerCode}):void 0;if(s)return M(s,t,n.message,n,i);let a=Zn(r);if(!Kn(n)&&a&&(a.type==="user_stop"||oe(a.message)))return ne();if(a){let l=et(a.code,a.providerCode,a.message);if(l)return M(l,t,a.message??n.message,n,a.providerCode??a.code,a,a.structuredFailure?"terminal":"envelope")}let p=nt(n.message,r);return p?M(p.code,t,p.message,n,p.terminal?.providerCode??p.terminal?.code,p.terminal,p.terminal?.structuredFailure?"terminal":"envelope"):M("PROCESS_FAILED",t,n.message,n)}catch{return {errorCode:"PROCESS_FAILED",errorProvider:null}}}function ne(){return {errorCode:null,errorProvider:null}}function M(e,n,t,r,o,i,s="envelope"){let a={};if(i?.resetAt!==void 0?a.resetAt=i.resetAt:r?.resetAt!==void 0?a.resetAt=r.resetAt:r?.retryAfterMs!==void 0&&(a.resetAt=Date.now()+r.retryAfterMs),e==="ACCOUNT_SETTING_REQUIRED"&&r?.settingReason&&(a.settingReason=r.settingReason),e==="MODEL_RETIRED"&&r?.replacementModel&&(a.replacementModel=r.replacementModel),e==="ACCOUNT_SETTING_REQUIRED"||e==="MODEL_RETIRED"||e==="SUBSCRIPTION_REQUIRED"){let m=Ge(r?.providerReason);m&&(a.providerReason=m);}if(r?.model&&(a.model=r.model),r?.mode&&(a.mode=r.mode),i?.type&&(a.upstreamType=i.type),o&&(a.upstreamCode=o),e==="CLI_NOT_AVAILABLE"||e==="CLI_UPDATE_REQUIRED"){let m=n?.startsWith("cli/")?n.slice(4):void 0;m&&(a.cliName=m);}let p=s==="terminal"?t:r?.message,l=s==="terminal"?i?.structuredFailure?p:void 0:r?.isEnvelope?p:void 0,c=ee(l);return c&&(a.technicalMessage=c),Object.keys(a).length>0?{errorCode:e,errorProvider:n,errorMeta:a}:{errorCode:e,errorProvider:n}}function Yn(e){let n=typeof e=="string"?C(e):e;return I(n)?{isEnvelope:true,code:A(n.code),providerCode:A(n.providerCode),settingReason:ot(n.settingReason),replacementModel:it(n.replacementModel),providerReason:A(n.providerReason),retryAfterMs:rt(n.retryAfterMs),resetAt:Ve(n.resetAt),message:A(n.message)??A(n.error),provider:A(n.provider)??A(n.errorProvider),model:A(n.model),mode:A(n.mode)}:{isEnvelope:false,...typeof e=="string"&&e.trim()?{message:e.trim()}:{}}}function C(e){try{return JSON.parse(e)}catch{return}}function Kn(e){return !!(e.code||e.providerCode||e.message)}function Qn(e){let n=[];if(typeof e=="string"){let t=C(e);if(Array.isArray(t))n.push(...t);else for(let r of e.split(/\r?\n/)){let o=C(r.trim());o!==void 0&&n.push(o);}}else Array.isArray(e)?n.push(...e):I(e)&&n.push(e);return n.flatMap(P)}function P(e){if(!I(e))return [];let n=A(e.type),t=A(e.message);if(t&&!n){let o=C(t);if(Array.isArray(o))return o.flatMap(P);if(I(o))return P(o);let i=t.split(/\r?\n/).map(s=>C(s.trim())).filter(s=>I(s));return i.length>0?i.flatMap(P):e.level==="stderr"?[{type:"stderr",message:t,rank:1,structuredFailure:false}]:P({type:"info",content:t})}if(n==="rate_limit_event"){let o=Je(e.rate_limit_info);return A(o?.status)!=="rejected"?[]:[{type:n,code:"RATE_LIMITED",message:v(o?.message,e.message),resetAt:Ve(o?.resetsAt),rank:4,structuredFailure:true}]}if(n==="turn.failed"||n==="error"){let o=Je(e.error),i=v(o?.message,o?.detail,e.message,e.errorMessage,e.content),s=v(o?.code,e.code,e.errorCode);return [{type:n,code:s,providerCode:v(o?.providerCode,e.providerCode),message:i,rank:n==="turn.failed"?3:2,structuredFailure:true}]}if(n==="text"&&typeof e.content=="string"){let o=C(e.content);if(I(o))return P(o)}let r=v(e.errorMessage,e.content);return r&&oe(r)?[{type:"user_stop",message:r,rank:1,structuredFailure:false}]:r&&/(?:turn\.failed|type:error)/i.test(r)?[{type:r.match(/turn\.failed/i)?"turn.failed":"error",message:r,rank:3,structuredFailure:false}]:[]}function Zn(e){return [...e].sort((n,t)=>t.rank-n.rank)[0]}function et(e,n,t){let r=ze(e);if(r)return r;if(e){let o=re(e,t);if(o)return o}if(n){let o=re(n,t);if(o)return o}return te(t)}function nt(e,n){let t=te(e);if(t)return {code:t,message:e};for(let r of [...n].sort((o,i)=>i.rank-o.rank)){let o=te(r.message);if(o)return {code:o,message:r.message,terminal:r}}}function te(e){if(!(typeof e!="string"||!e.trim()))return $n.find(n=>n.pattern.test(e))?.code}function re(e,n,t){let r=L(e)??e;if(r==="MODEL_UNAVAILABLE")return /(?:capacity|overloaded|busy)/i.test(n??"")?"MODEL_AT_CAPACITY":"MODEL_NOT_SUPPORTED";if(r==="EMPTY_OUTPUT"&&t?.fromProviderCodeField===true&&t.exitCode===0&&tt(t.mode))return "AGENT_MODE_RESTRICTED";if(r!=="UNKNOWN")return Wn[r]}function ze(e){let n=L(e);return n&&Vn.has(n)?n:void 0}function L(e){return typeof e=="string"&&e.trim()?e.trim().toUpperCase():void 0}function tt(e){return typeof e=="string"&&qn.has(e.trim().toLowerCase())}function oe(e){return e?/\b(?:stopped|killed|aborted|cancelled|canceled)\s+by\s+user\b/i.test(e)||/사용자에 의해 중지됨/.test(e)||/\b(?:SIGTERM\s+143|143\s+SIGTERM)\b/i.test(e):false}function I(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Je(e){return I(e)?e:void 0}function A(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function Ve(e){return typeof e=="string"||typeof e=="number"&&Number.isFinite(e)?e:void 0}function rt(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function ot(e){return e==="region"||e==="training_consent"||e==="access"||e==="other"?e:void 0}function it(e){return typeof e=="string"&&/^[A-Za-z0-9._/-]{1,128}$/.test(e)?e:void 0}function st(e){return typeof e=="number"&&Number.isInteger(e)?e:void 0}function v(...e){return e.map(A).find(n=>!!n)}var at=["none","minimal","low","medium","high","xhigh","max","ultra"],dt={claude:["low","medium","high","xhigh","max"],codex:["none","minimal","low","medium","high","xhigh","max","ultra"],opencode:[],copilot:["none","low","medium","high","xhigh","max"],antigravity:["low","medium","high"],grok:["low","medium","high","xhigh"]};var B={claude:{models:[{id:"claude-fable-5-1",name:"Claude Fable 5.1",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-fable-5",name:"Claude Fable 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-5-5",name:"Claude Opus 5.5",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-opus-5",name:"Claude Opus 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5",contextWindowTokens:1e6,tier:"balanced",recommended:true},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-opus-4-8[1m]",name:"Claude Opus 4.8",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-7[1m]",name:"Claude Opus 4.7",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-6[1m]",name:"Claude Opus 4.6",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-4-6[1m]",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-haiku-5-5",name:"Claude Haiku 5.5",contextWindowTokens:1e6,tier:"speed"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindowTokens:2e5,tier:"speed"}],modes:[{id:"default",name:"Default",description:"Uses Claude's default permission handling with normal approval prompts."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without approval; other permission checks remain in place."},{id:"plan",name:"Plan",description:"Keeps Claude in plan mode so it can inspect and propose changes without applying them."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permissions; only pre-approved tool actions can proceed."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Claude permission checks so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"claude-fable-5-1":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-fable-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"medium"},"claude-opus-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-sonnet-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-sonnet-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-8[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-7[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-sonnet-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-haiku-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"medium"},"claude-haiku-4-5":{effort:[]}},providerOptions:[]},codex:{models:[{id:"gpt-6-astra",name:"GPT-6 Astra",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-6.1-sol",name:"GPT-6.1 Sol",contextWindowTokens:105e4,tier:"balanced",recommended:true},{id:"gpt-6.1-terra",name:"GPT-6.1 Terra",contextWindowTokens:5e5,tier:"balanced"},{id:"gpt-6-sol",name:"GPT-6 Sol",contextWindowTokens:105e4,tier:"balanced"},{id:"gpt-6-luna",name:"GPT-6 Luna",contextWindowTokens:105e4,tier:"speed",recommended:true},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextWindowTokens:105e4,tier:"balanced"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextWindowTokens:105e4,tier:"speed"}],modes:[{id:"agent",name:"Agent",description:"Uses the workspace-write sandbox; can read and modify workspace files without full machine access."},{id:"read-only",name:"Read Only",description:"Uses the read-only sandbox; can inspect files but cannot write to the workspace."},{id:"plan",name:"Plan",description:"Uses the read-only sandbox for planning and inspection; cannot write to the workspace."},{id:"agent-full-access",name:"Agent Full Access",description:"Bypasses approvals and the sandbox; can access and modify files beyond the workspace."},{id:"yolo",name:"YOLO",description:"Bypasses approvals and the sandbox for unrestricted execution and full filesystem access."}],effort:["minimal","low","medium","high"],modelOverrides:{"gpt-6-astra":{effort:["low","medium","high","xhigh","max"],defaultEffort:"xhigh"},"gpt-6.1-sol":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"gpt-6.1-terra":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"max"},"gpt-6-sol":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"max"},"gpt-6-luna":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"medium"},"gpt-5.6-sol":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"xhigh"},"gpt-5.6-terra":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"high"},"gpt-5.6-luna":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"gpt-5.5":{effort:["low","medium","high","xhigh"],defaultEffort:"high"}},providerOptions:[]},opencode:{models:[],suggestedModels:[{id:"opencode-go/glm-5.3-flash",name:"GLM-5.3 Flash",contextWindowTokens:1e6,tier:"speed",recommended:true},{id:"opencode-go/qwen3.8-flash",name:"Qwen3.8 Flash",contextWindowTokens:1e6,tier:"speed",recommended:true},{id:"opencode-go/minimax-m3",name:"MiniMax M3",contextWindowTokens:1e6,tier:"balanced",recommended:true},{id:"opencode-go/kimi-k2.7-code",name:"Kimi K2.7 Code",contextWindowTokens:262144,tier:"balanced",recommended:true}],modes:[{id:"plan",name:"Plan",description:"Uses the plan agent without --auto; planning follows standard approval behavior."},{id:"plan-auto",name:"Plan \xB7 Auto",description:"Uses the plan agent with --auto; planning uses automatic approvals."},{id:"build",name:"Build",description:"Uses the build agent without --auto; work follows standard approval behavior."},{id:"build-auto",name:"Build \xB7 Auto",description:"Uses the build agent with --auto; work uses automatic approvals."}],effort:[],modelOverrides:{},providerOptions:[]},copilot:{models:[{id:"auto",name:"Auto"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced"}],modes:[{id:"interactive",name:"Interactive",description:"Passes --mode interactive; tool access follows Copilot's interactive mode behavior."},{id:"plan",name:"Plan",description:"Passes --mode plan; planning and permission behavior follow Copilot's plan mode."},{id:"autopilot",name:"Autopilot",description:"Passes --mode autopilot; execution behavior follows Copilot's autonomous mode."}],effort:["none","low","medium","high","xhigh","max"],modelOverrides:{},providerOptions:[]},antigravity:{models:[{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",tier:"balanced"},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",contextWindowTokens:1048576,tier:"flagship"},{id:"claude-sonnet-5-5-medium",name:"Claude Sonnet 5.5",tier:"balanced"},{id:"claude-opus-5-5-medium",name:"Claude Opus 5.5",tier:"flagship"},{id:"gemini-4-argon",name:"Gemini 4 Argon",tier:"flagship"}],modes:[{id:"default",name:"Default",description:"Uses Antigravity's default permission handling. No extra permission flags are passed."},{id:"plan",name:"Plan",description:"Passes --mode plan. This turns on /plan; it is not a Claude-style permission mode."},{id:"acceptEdits",name:"Accept Edits",description:"Passes --mode accept-edits."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Passes --dangerously-skip-permissions so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"gemini-3.8-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.7-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.6-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.5-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.1-pro":{effort:["low","high"],defaultEffort:"high"},"claude-sonnet-5-5-medium":{effort:["low","medium","high"],defaultEffort:"medium"},"claude-opus-5-5-medium":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-4-argon":{effort:["low","medium","high"],defaultEffort:"high"},"claude-sonnet-4-6":{effort:[]},"claude-opus-4-6-thinking":{effort:[]},"gpt-oss-120b":{effort:["medium"],defaultEffort:"medium"}},providerOptions:[]},grok:{models:[{id:"grok-4.7",name:"Grok 4.7",contextWindowTokens:5e5,tier:"flagship",recommended:true},{id:"grok-4.6",name:"Grok 4.6",contextWindowTokens:5e5,tier:"flagship"},{id:"grok-4.5",name:"Grok 4.5",contextWindowTokens:5e5,tier:"flagship"}],modes:[{id:"default",name:"Default",description:"Uses Grok's default permission handling."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without changing the selected sandbox profile."},{id:"auto",name:"Auto",description:"Uses Grok automatic permission handling."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permission before tool execution."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Grok permission checks for tool execution."},{id:"plan",name:"Plan",description:"Keeps Grok in planning mode without applying changes."}],effort:["low","medium","high"],modelOverrides:{"grok-4.7":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.6":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.5":{effort:["low","medium","high"],defaultEffort:"high"}},providerOptions:[{key:"alwaysApprove",type:"boolean"},{key:"sandbox",type:"enum",values:["workspace","read-only","off"]}]}},ie={providers:{"cli/codex":{model:"gpt-6.1-sol",query:{mode:"agent",effort:"high"},execute:{mode:"agent-full-access",effort:"high"}},"cli/claude":{model:"claude-opus-5-5",query:{mode:"default",effort:"high"},execute:{mode:"bypassPermissions",effort:"xhigh"}},"cli/grok":{model:"grok-4.7",query:{mode:"default",effort:"high",providerOptions:{alwaysApprove:true,sandbox:"off"}},execute:{mode:"bypassPermissions",effort:"xhigh",providerOptions:{alwaysApprove:true,sandbox:"off"}}},"cli/antigravity":{model:"gemini-3.8-flash",query:{mode:"default",effort:"medium"},execute:{mode:"bypassPermissions",effort:"medium"}}}};Object.fromEntries(Object.entries(B).map(([e,n])=>[e,n.models]));var lt="claude-opus-4-8",ut="claude-opus-4-8[1m]",qe=[{baseModelId:"claude-opus-4-8",catalogModelId:"claude-opus-4-8[1m]"},{baseModelId:"claude-opus-4-7",catalogModelId:"claude-opus-4-7[1m]"},{baseModelId:"claude-opus-4-6",catalogModelId:"claude-opus-4-6[1m]"},{baseModelId:"claude-sonnet-4-6",catalogModelId:"claude-sonnet-4-6[1m]"}];var ft=new Map(qe.map(({baseModelId:e,catalogModelId:n})=>[e,n]));function We(e){return ft.get(e)??e}var $e=[{legacyId:"Gemini 3.7 Flash (High)",model:"gemini-3.7-flash",effort:"high"},{legacyId:"Gemini 3.7 Flash (Medium)",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"Gemini 3.7 Flash (Low)",model:"gemini-3.7-flash",effort:"low"},{legacyId:"Gemini 3.6 Flash (High)",model:"gemini-3.6-flash",effort:"high"},{legacyId:"Gemini 3.6 Flash (Medium)",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"Gemini 3.6 Flash (Low)",model:"gemini-3.6-flash",effort:"low"},{legacyId:"Gemini 3.5 Flash (Medium)",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"Gemini 3.5 Flash (High)",model:"gemini-3.5-flash",effort:"high"},{legacyId:"Gemini 3.5 Flash (Low)",model:"gemini-3.5-flash",effort:"low"},{legacyId:"Gemini 3.1 Pro (Low)",model:"gemini-3.1-pro",effort:"low"},{legacyId:"Gemini 3.1 Pro (High)",model:"gemini-3.1-pro",effort:"high"},{legacyId:"Claude Sonnet 4.6 (Thinking)",model:"claude-sonnet-4-6"},{legacyId:"Claude Opus 4.6 (Thinking)",model:"claude-opus-4-6-thinking"},{legacyId:"GPT-OSS 120B (Medium)",model:"gpt-oss-120b",effort:"medium"},{legacyId:"gemini-3.7-flash-high",model:"gemini-3.7-flash",effort:"high"},{legacyId:"gemini-3.7-flash-medium",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"gemini-3.7-flash-low",model:"gemini-3.7-flash",effort:"low"},{legacyId:"gemini-3.6-flash-high",model:"gemini-3.6-flash",effort:"high"},{legacyId:"gemini-3.6-flash-medium",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"gemini-3.6-flash-low",model:"gemini-3.6-flash",effort:"low"},{legacyId:"gemini-3.5-flash-high",model:"gemini-3.5-flash",effort:"high"},{legacyId:"gemini-3.5-flash-medium",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"gemini-3.5-flash-low",model:"gemini-3.5-flash",effort:"low"},{legacyId:"gemini-3.1-pro-high",model:"gemini-3.1-pro",effort:"high"},{legacyId:"gemini-3.1-pro-low",model:"gemini-3.1-pro",effort:"low"},{legacyId:"gpt-oss-120b-medium",model:"gpt-oss-120b",effort:"medium"}],gt=new Map($e.map(({legacyId:e,model:n,effort:t})=>[e,t===void 0?{model:n}:{model:n,effort:t}]));function Xe(e){if(!e)return {};let n=gt.get(e);return n?{...n}:{model:e}}function se(e,n){return e==="antigravity"||e==="cli/antigravity"?Xe(n):n===void 0?{}:{model:We(n)}}var Ye=30,Ke=80;Object.keys(yt.special_tokens);var Qe=z$1.object({id:z$1.string().min(1),provider:z$1.string().min(1),model:z$1.string().min(1),weight:z$1.number().finite().int().min(1).default(1),account:z$1.string().min(1).optional(),effort:z$1.string().min(1).optional()}).strict();var At=z$1.object({kind:z$1.literal("custom"),run:z$1.string().min(1)}).strict(),ht=z$1.object({name:z$1.string().min(1).max(60).optional(),strategy:z$1.enum(["round-robin","weighted"]),chain:z$1.array(At).optional(),models:z$1.array(Qe).min(1).max(8).optional(),candidates:z$1.array(Qe).min(1).max(8).optional(),sticky:z$1.enum(["conversation","none"]).default("none"),defaultModel:z$1.string().min(1).optional(),defaultCandidate:z$1.string().min(1).optional()}).strict().superRefine((e,n)=>{e.models!==void 0&&e.candidates!==void 0&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["models"],message:'Cannot specify both "models" and legacy "candidates".'}),e.defaultModel!==void 0&&e.defaultCandidate!==void 0&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["defaultModel"],message:'Cannot specify both "defaultModel" and legacy "defaultCandidate".'});let t=e.models??e.candidates;if(!t){n.addIssue({code:z$1.ZodIssueCode.custom,path:["models"],message:"At least one model is required."});return}let r=new Set;t.forEach((i,s)=>{r.has(i.id)&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["models",s,"id"],message:`Duplicate route model id: ${i.id}`}),r.add(i.id);});let o=e.defaultModel??e.defaultCandidate;o&&!r.has(o)&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["defaultModel"],message:`Unknown defaultModel for route: ${o}`});}),Ze=ht.transform(e=>{let{candidates:n,defaultCandidate:t,...r}=e,o=e.defaultModel??e.defaultCandidate,i={...r,models:e.models??e.candidates??[],...o===void 0?{}:{defaultModel:o}};return Object.defineProperty(i,"candidates",{configurable:false,enumerable:false,value:i.models,writable:false}),o!==void 0&&Object.defineProperty(i,"defaultCandidate",{configurable:false,enumerable:false,value:o,writable:false}),i});var _t=z$1.object({model:z$1.string().optional(),system_prompt:z$1.string().optional(),prompt:z$1.string().optional(),layout:z$1.union([z$1.string(),z$1.object({id:z$1.string(),props:z$1.record(z$1.unknown()).optional()}),z$1.object({props:z$1.record(z$1.unknown())}),z$1.object({template:z$1.string(),capabilities:z$1.object({semanticContinuity:z$1.boolean().optional(),continuity:z$1.boolean().optional(),continuitySlot:z$1.string().optional(),slot:z$1.string().optional()}).optional()})]).optional()}).catchall(z$1.unknown()),Et=z$1.object({include:z$1.array(z$1.string()).optional()}).optional(),It=z$1.object({id:z$1.string(),name:z$1.string().optional(),role:z$1.string().optional(),team:z$1.string().optional(),provider:z$1.union([z$1.string(),z$1.array(z$1.string())]),provider_account:z$1.string().min(1).optional(),working_directory:z$1.string().optional(),description:z$1.string().optional(),tags:z$1.array(z$1.string()).optional(),inline:_t.optional(),skills:Et,interceptors:z$1.unknown().optional()}).catchall(z$1.unknown());z$1.object({id:z$1.string(),name:z$1.string(),workflow_id:z$1.string(),description:z$1.string().optional(),goal_id:z$1.string().optional()});var Tt=z$1.number().finite().int().min(Ye).max(Ke),xt=z$1.object({inputBudgetPercent:Tt.optional()}).catchall(z$1.unknown()),Pt=z$1.object({continuity:xt.optional()}).catchall(z$1.unknown()),Ct=z$1.object({bin_resolution:z$1.enum(["global_first","local_first"]).optional(),dreaming:Pt.optional(),wi:z$1.object({boards:z$1.array(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()).optional().catch(()=>{})}).catchall(z$1.unknown()),en=z$1.object({agents:z$1.array(It).optional(),routes:z$1.record(Ze).optional(),hooks:z$1.array(z$1.unknown()).optional(),settings:Ct.optional(),skills:z$1.unknown().optional(),layouts:z$1.record(z$1.unknown()).optional(),documents:z$1.record(z$1.unknown()).optional()}).catchall(z$1.unknown()).superRefine((e,n)=>{for(let[t,r]of (e.agents??[]).entries()){let o=r.inline?.model;if(!o?.startsWith("route/"))continue;let i=o.slice(6);(!i||!e.routes?.[i])&&n.addIssue({code:z$1.ZodIssueCode.custom,path:["agents",t,"inline","model"],message:`Agent '${r.id}' references unknown model route '${i}'`});}});var O=class extends Error{constructor(t,r){super(t);this.cause=r;this.name="ConfigLoadError";}cause};function Rt(e){if(!e||typeof e!="string"||!e.trim())throw new O("YAML content must be a non-empty string");let n;try{n=load(e);}catch(o){throw new O(`YAML parse error: ${o.message}`,o)}let t=bt(n),r=en.safeParse(t);if(!r.success)throw new O(`Config validation error: ${r.error.message}`);return r.data}function bt(e){if(!e||typeof e!="object")return {agents:[]};let n=e;if(n.agents&&typeof n.agents=="object"&&!Array.isArray(n.agents)){let t=n.agents,r=Object.entries(t).map(([o,i])=>({id:o,...i&&typeof i=="object"?i:{}}));return {...n,agents:r}}return n.agents?n:{...n,agents:[]}}var Mt={auto:"default"};function vt(e){return Mt[e]??e}var St="crewx:fs:",ae=class{prefix;store;constructor(n){this.prefix=n?.prefix??St,this.store=n?.storage??new Map;}async readFile(n){let t=this.toKey(n),r=this.store.get(t);if(r===void 0)throw new Error(`BrowserFsAdapter: file not found: ${n}`);return r}async exists(n){return this.store.has(this.toKey(n))}resolvePath(...n){let t=n.map(s=>s.replace(/\\/g,"/")).join("/").replace(/\/+/g,"/"),r=t.split("/"),o=[];for(let s of r)s==="."||s===""||(s===".."?o.pop():o.push(s));let i=o.join("/");return t.startsWith("/")?`/${i}`:i}isAbsolute(n){return n.startsWith("/")}setItem(n,t){this.store.set(this.toKey(n),t);}removeItem(n){this.store.delete(this.toKey(n));}keys(){return Array.from(this.store.keys()).filter(n=>n.startsWith(this.prefix)).map(n=>n.slice(this.prefix.length))}async readdir(n){let t=n.replace(/\\/g,"/").replace(/\/$/,""),r=this.toKey(t+"/"),o=[];for(let i of this.store.keys())if(i.startsWith(r)){let a=i.slice(r.length).split("/")[0];a&&!o.includes(a)&&o.push(a);}return o}toKey(n){return `${this.prefix}${n.replace(/\\/g,"/")}`}};var de=["codex","claude","grok","opencode","antigravity","copilot"];function kt(e){let n=e.indexOf("/");return n===-1?e:e.slice(n+1)}function pe(e){let n=kt(e),t=de.indexOf(n);return t===-1?de.length:t}function wt(e,n){return pe(e)-pe(n)}var Dt=new Set(["claude","copilot","codex","grok","opencode"]);function Nt(e){if(!e)return "";if(e.startsWith("acp/")){let n=e.slice(4);if(Dt.has(n))return `cli/${n}`}return e}function j(e){return {mode:e.mode,effort:e.effort}}function Ut(e){let n=ie.providers[e];if(!n)return;let t=e.startsWith("cli/")?e.slice(4):e,r=B[t]?.models.find(s=>s.recommended===true&&s.tier==="balanced")?.id??n.model,o={query:j(n.query),execute:j(n.execute)},i={query:j(n.query),execute:j(n.execute)};return {planner:{model:n.model,...o},worker:{model:r,...i}}}var tn=["urgent","high","medium","low"],rn=["investigating","in-progress","in-review","on-hold","done"],S="custom:";var Lt=new Set(tn),Bt=new Set(rn),jt={urgent:"U \uAE34\uAE09 Urgent",high:"P0 \uAE09\uD568 High",medium:"P1 \uC911\uC694 Medium",low:"P2 \uBCF4\uD1B5 Low"},ce={investigating:"\uC870\uC0AC\uC911 Looking into","in-progress":"\uC9C4\uD589\uC911 In progress","in-review":"\uAC80\uD1A0\uC911 In review","on-hold":"\uBCF4\uB958 On hold",done:"\uC644\uB8CC Done"};function nn(e,n){return !n||n.includes(e)?n??e:`${e} ${n}`}function le(e){return typeof e=="string"&&Lt.has(e)}function ue(e){if(typeof e!="string")return false;if(Bt.has(e))return true;if(e.startsWith("c_"))return e.length>2;if(!e.startsWith(S))return false;let n=e.slice(S.length);return n.length>=1&&n.length<=20}function on(e){if(e.startsWith(S))return e.slice(S.length)}function fe(e){if(!e)return null;try{let n=JSON.parse(e);return !n||typeof n!="object"||Array.isArray(n)?null:n}catch{return null}}function Ft(e){let n=fe(e);return !!n&&Object.prototype.hasOwnProperty.call(n,"threadTitle")}function sn(e){let n=fe(e);if(!n)return {};let t=n.threadTitle;if(!t||typeof t!="object"||Array.isArray(t))return {};let r=t,o={};return le(r.priority)&&(o.priority=r.priority),ue(r.state)&&(o.state=r.state),o}function Ht(e,n){let t=fe(e)??{},r={...sn(e)};return n.priority===null?delete r.priority:n.priority!==void 0&&(r.priority=n.priority),n.state===null?delete r.state:n.state!==void 0&&(r.state=n.state),r.priority===void 0&&r.state===void 0?delete t.threadTitle:t.threadTitle=r,Object.keys(t).length===0?null:JSON.stringify(t)}function Gt(e,n=new Map){let t=[];return e.priority&&t.push(nn(jt[e.priority],n.get(e.priority))),e.state&&(e.state.startsWith(S)?t.push(on(e.state)??""):ce[e.state]?t.push(nn(ce[e.state],n.get(e.state))):n.has(e.state)?t.push(e.state,n.get(e.state)??""):e.state.startsWith("c_")?t.push(e.state):t.push(ce[e.state]??"")),t.filter(Boolean).join(" ")}function an(e,n){if(!e||e.trim().length===0)return;let t=new Set,r=false,o=false;for(let i of e.split(",")){let s=i.trim();if(s){if(s==="none"){r=true,o=true;continue}n(s)&&(t.add(s),o=true);}}if(o)return {values:t,includeNone:r}}function Jt(e){return an(e,le)}function zt(e){return an(e,ue)}function Vt(e,n){return n?e?n.values.has(e):n.includeNone:true}var qt=["crewx_app_terminal_connect","crewx_app_html_viewer_open","crewx_app_browser","crewx_files_list","crewx_files_read","crewx_files_write","crewx_docs_share"];var ge=["text/plain","application/json"];var Wt=["__proto__","prototype","constructor","proof","token","secret","password","cookie","authorization","private_key","private-key","stack","exception","plugin_text","url","uri","endpoint","path","filename","filepath","cwd","shell","directory","dir","folder"];new Set(Wt);var dn=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/;var $t=/^uic_[A-Za-z0-9_-]+$/,Xt=/^[0-9a-f]{64}$/,_="MCP App content declarations are invalid";function w(e){return typeof e=="string"&&ge.includes(e)}function F(e){return typeof e=="string"&&e.length<=128&&$t.test(e)}function Yt(e,n){try{let t=n,r=k(t,"actions");if(!cn(r))throw new Error(_);let o=[];for(let s of Object.keys(r)){let a=k(r,s);if(a===null||typeof a!="object"||Array.isArray(a))throw new Error(_);let p=Object.getOwnPropertyDescriptor(a,"content");if(p===void 0)continue;if(!Object.hasOwn(p,"value"))throw new Error(_);let l=Qt(p.value);o.push({actionId:s,...l});}if(o.length===0)return;o.sort((s,a)=>s.actionId<a.actionId?-1:s.actionId>a.actionId?1:0);let i={schemaVersion:1,instanceId:e,definition:{id:k(t,"id"),version:k(t,"version"),hash:k(t,"hash")},actions:o};if(!me(i))throw new Error(_);for(let s of o)s.in!==void 0&&Object.freeze(s.in),s.out!==void 0&&Object.freeze(s.out),Object.freeze(s);return Object.freeze(o),Object.freeze(i.definition),Object.freeze(i)}catch{throw new Error(_)}}function me(e){try{if(!H(e,["schemaVersion","instanceId","definition","actions"]))return !1;let n=e;if(n.schemaVersion!==1||!F(n.instanceId)||!nr(n.definition))return !1;let t=n.actions;if(!sr(t)||t.length===0)return !1;let r;for(let o=0;o<t.length;o+=1){let i=t[o];if(!tr(i)||r!==void 0&&!(r<i.actionId))return !1;r=i.actionId;}return !0}catch{return false}}function Kt(e,n,t){return me(e)?e.instanceId===n&&e.definition.id===t.id&&e.definition.version===t.version&&e.definition.hash===t.hash:false}function Qt(e){if(!D(e,["in","out"]))throw new Error(_);let n=e,t=Object.hasOwn(n,"in"),r=Object.hasOwn(n,"out");if(!t&&!r)throw new Error(_);return {...t?{in:Zt(n.in)}:{},...r?{out:er(n.out)}:{}}}function Zt(e){if(!D(e,["mediaType","required"],["mediaType"]))throw new Error(_);let n=e,t=n.mediaType,r=Object.hasOwn(n,"required")?n.required:false;if(!w(t)||typeof r!="boolean")throw new Error(_);return {mediaType:t,required:r}}function er(e){if(!D(e,["mediaType","range"],["mediaType"]))throw new Error(_);let n=e,t=n.mediaType,r=Object.hasOwn(n,"range")?n.range:false;if(!w(t)||typeof r!="boolean")throw new Error(_);return {mediaType:t,range:r}}function nr(e){if(!H(e,["id","version","hash"]))return false;let n=e;return pn(n.id)&&ir(n.version)&&typeof n.hash=="string"&&Xt.test(n.hash)}function tr(e){if(!D(e,["actionId","in","out"],["actionId"]))return false;let n=e,t=n.actionId,r=Object.hasOwn(n,"in"),o=Object.hasOwn(n,"out");return !(typeof t!="string"||!pn(t)||!r&&!o||r&&!rr(n.in)||o&&!or(n.out))}function rr(e){if(!H(e,["mediaType","required"]))return false;let n=e;return w(n.mediaType)&&typeof n.required=="boolean"}function or(e){if(!H(e,["mediaType","range"]))return false;let n=e;return w(n.mediaType)&&typeof n.range=="boolean"}function pn(e){return typeof e=="string"&&dn.test(e)}function ir(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function sr(e){if(!Array.isArray(e))return false;let n=Reflect.ownKeys(e);if(n.length!==e.length+1||n[e.length]!=="length")return false;for(let t=0;t<e.length;t+=1){if(n[t]!==String(t))return false;let r=Object.getOwnPropertyDescriptor(e,String(t));if(r===void 0||!Object.hasOwn(r,"value"))return false}return true}function H(e,n){return D(e,n,n)}function D(e,n,t=[]){if(!cn(e))return false;let r=Reflect.ownKeys(e);if(r.length>n.length||r.length<t.length)return false;for(let o of r){if(typeof o!="string"||!n.includes(o))return false;let i=Object.getOwnPropertyDescriptor(e,o);if(i===void 0||!Object.hasOwn(i,"value"))return false}return t.every(o=>Object.hasOwn(e,o))}function cn(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function k(e,n){if(e===null||typeof e!="object")return;let t=Object.getOwnPropertyDescriptor(e,n);return t!==void 0&&Object.hasOwn(t,"value")?t.value:void 0}var ln=[5,15,30,60],ye=Object.freeze({min:15e3,max:6e5,default:3e5}),ar=1;var dr="exit 78",un=["standby","disabled","draining","degraded"],pr=["cron","cron_manual","app_enable"],cr=/^[A-Z][A-Z0-9_]{0,63}$/u;function lr(e){return typeof e=="string"&&cr.test(e)}function ur(e){return ln.includes(e)}function fr(e){return Number.isSafeInteger(e)&&e>=ye.min&&e<=ye.max}function gr(e){return un.includes(e)}var fn={refCodePoints:200,refSegments:3},mr=/^[\p{L}\p{N}][\p{L}\p{N}\p{M}_-]{0,99}$/u;function yr(e){let n=e.normalize("NFC");if([...n].length>fn.refCodePoints)return;let t=n.split("/");if(t.length>fn.refSegments)return;let r=t[t.length-1];return r.endsWith(".md")&&[...t.slice(0,-1),r.slice(0,-3)].every(i=>mr.test(i))?n:void 0}var Ae=Object.freeze({min:6e4,max:18e5,default:6e5}),Ar=1,gn="crewx/appJobs",mn=1,he=["starting","running","stopping","finished"],_e=["succeeded","failed","timed_out","cancelled","shutdown","interrupted"],Ee=["cancelled","timed_out","shutdown"],Ie=["manual","schedule"],hr=/^[a-z][a-z0-9_]{0,63}$/u,_r=/^[A-Z][A-Z0-9_]{0,63}$/u,yn=["start","status","cancel"],An=["APP_JOB_NOT_DECLARED","APP_JOB_NOT_AUTHORIZED","APP_JOB_SELF_START","APP_JOB_OWNER_INVALID","APP_JOB_DEFINITION_INVALID","APP_JOB_DEFINITION_CHANGED","APP_JOB_DEADLINE_INVALID","APP_JOB_SHUTTING_DOWN","APP_JOB_OWNER_MISMATCH","APP_JOB_STALE_HANDLE","APP_JOB_NOT_ACTIVE","APP_JOB_NOT_GRANTED"],Er="APP_JOB_RUN_REQUIRED";function Ir(e){return Number.isSafeInteger(e)&&e>=Ae.min&&e<=Ae.max}function Te(e){return typeof e=="string"&&_r.test(e)}function xe(e){return typeof e=="string"&&hr.test(e)}function hn(e){return yn.includes(e)}function Tr(e){return e?.some(({name:n,version:t})=>n===gn&&t===mn)===true}var xr="CREWX_APP_JOB_CHANNEL",Pr=1,Cr=4096,Or=1e4,Rr=5e3;var br=/^[A-Za-z0-9._:-]{1,128}$/u,Mr=64,vr=2147483647;function Sr(e){return e==="schedule"?"schedule":"manual"}function kr(e){return wr(e)}function wr(e){let n=Tn(e)?e:void 0;if(n===void 0||!In(n,["handle","state","stopReason","trigger","outcome","phase","completed","total","resumable","lastHeartbeatAt","startedAt","finishedAt","errorCode","recoverable"],[]))return;let t=Dr(n.handle),r=n.stopReason,o=n.outcome,i=n.phase,s=n.errorCode,a=n.recoverable;if(!(t===void 0||!he.includes(n.state)||!(r===null||Ee.includes(r))||r!==null&&n.state!=="stopping"||!Ie.includes(n.trigger)||!(o===null||_e.includes(o))||!(i===null||xe(i))||!(n.completed===null||_n(n.completed))||!(n.total===null||_n(n.total))||typeof n.resumable!="boolean"||!En(n.lastHeartbeatAt)||!xn(n.startedAt)||!En(n.finishedAt)||!(s===null||Te(s))||!(a===null||typeof a=="boolean")))return {handle:t,state:n.state,stopReason:r,trigger:n.trigger,outcome:o,phase:i,completed:n.completed,total:n.total,resumable:n.resumable,lastHeartbeatAt:n.lastHeartbeatAt,startedAt:n.startedAt,finishedAt:n.finishedAt,errorCode:s,recoverable:a}}function Dr(e){if(!(!Tn(e)||!In(e,["runId","generation"],[]))&&!(typeof e.runId!="string"||!br.test(e.runId)||!Nr(e.generation)))return {runId:e.runId,generation:e.generation}}function In(e,n,t){let r=new Set([...n,...t]);return Object.keys(e).every(o=>r.has(o))&&n.every(o=>Object.hasOwn(e,o))}function Tn(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function Nr(e){return Number.isSafeInteger(e)&&e>=1&&e<=vr}function _n(e){return Number.isSafeInteger(e)&&e>=0}function xn(e){return typeof e=="string"&&e.length>0&&e.length<=Mr}function En(e){return e===null||xn(e)}var Ur="crewx/openApp",Ce=1,Lr="ui/crewx-open-app",Br="ui/crewx-open-app-status",Cn=32768,On=8,Oe=["opened","completed","pending"],Re=["UI_APP_OPEN_INVALID","UI_APP_OPEN_UNAVAILABLE","UI_APP_OPEN_GESTURE_REQUIRED","UI_APP_OPEN_STALE","UI_APP_OPEN_BUSY","UI_APP_OPEN_REJECTED","UI_APP_OPEN_FAILED","UI_APP_OPEN_REQUEST_ID_CONFLICT"],be=["RECEIPT_FAILED","RECEIPT_REJECTED","RECEIPT_CONFLICTED","RECEIPT_EXPIRED","LEDGER_MISSING","LEDGER_EXPIRED"],J=class extends Error{constructor(t,r){super(t);this.errorCode=t;this.causeCode=r;}errorCode;causeCode;name="CrewxOpenAppError"},jr=/^[A-Za-z0-9-]{8,64}$/,Fr=/^[A-Za-z0-9_-]{1,128}$/,z=/^[A-Za-z][A-Za-z0-9._-]{0,127}$/,Hr=new TextEncoder,Pn=/\p{Surrogate}/u,Gr=new Set(["__proto__","constructor","prototype"]);function f(){throw new J("UI_APP_OPEN_INVALID")}function N(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function q(e){if(e===null||typeof e!="object"||Array.isArray(e))return false;let n=Object.getPrototypeOf(e);return n===Object.prototype||n===null}function T(e,n,t=[]){q(e)||f();let r=new Set([...n,...t]);for(let o of Object.keys(e))r.has(o)||f();for(let o of n)N(e,o)||f();return e}function V(e,n){return (typeof e!="string"||!n.test(e))&&f(),e}function W(e){return (typeof e!="string"||!jr.test(e))&&f(),e}function b(e){(typeof e!="string"||!Fr.test(e))&&f();let n=e.indexOf("_");return (n<0||n===e.length-1)&&f(),W(e.slice(0,n)),e}function Rn(e){return b(e).slice(0,e.indexOf("_"))}function bn(e){return F(e)||f(),e}function R(e,n){let t=n.find(r=>r===e);return t===void 0&&f(),t}function Pe(e,n){if(e===null)return "null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return Number.isFinite(e)||f(),JSON.stringify(e);if(typeof e=="string")return Pn.test(e)&&f(),JSON.stringify(e);if(n>On&&f(),Array.isArray(e)){let o=[];for(let i=0;i<e.length;i+=1)N(e,String(i))||f(),o.push(Pe(e[i],n+1));return `[${o.join(",")}]`}q(e)||f();let t=e;return `{${Object.keys(t).sort().map(o=>((Gr.has(o)||Pn.test(o))&&f(),`${JSON.stringify(o)}:${Pe(t[o],n+1)}`)).join(",")}}`}function Jr(e){let n=T(e,["requestId","appId"],["action"]),t=b(n.requestId),r=V(n.appId,z);if(!N(n,"action"))return {requestId:t,appId:r};let o=T(n.action,["actionId","input"]),i=o.input;return q(i)||f(),{requestId:t,appId:r,action:{actionId:V(o.actionId,z),input:i}}}function Mn(e){return {version:Ce,sessionId:W(e)}}function zr(e){let n=T(e,["version","sessionId"]);return n.version!==Ce&&f(),Mn(W(n.sessionId))}function Vr(e,n){return typeof n!="string"&&f(),b(`${W(e)}_${n}`)}function vn(e){let n=Pe(Jr(e),1);return Hr.encode(n).byteLength>Cn&&f(),n}function qr(e){return JSON.parse(vn(e))}function Wr(e){let n=T(e,["requestId"]);return {requestId:b(n.requestId)}}function Sn(e){return {status:R(e.status,Oe),appId:V(e.appId,z),instanceId:bn(e.instanceId),requestId:b(e.requestId)}}function kn(e,n){let t=R(e,Re);return n===void 0?{isError:true,_meta:{errorCode:t}}:{isError:true,_meta:{errorCode:t,causeCode:R(n,be)}}}function $r(e){if(q(e)||f(),N(e,"isError")){let t=T(e,["isError","_meta"]);t.isError!==true&&f();let r=T(t._meta,["errorCode"],["causeCode"]);return kn(R(r.errorCode,Re),N(r,"causeCode")?R(r.causeCode,be):void 0)}let n=T(e,["status","appId","instanceId","requestId"]);return Sn({status:R(n.status,Oe),appId:V(n.appId,z),instanceId:bn(n.instanceId),requestId:b(n.requestId)})}function G(e,n){return {state:"failed",errorCode:e,causeCode:n}}function Xr(e){if(e.kind==="pending"||e.status==="requested")return {state:"pending"};if(e.outcome==="succeeded")return {state:"completed"};switch(e.outcome){case "rejected":return G("UI_APP_OPEN_REJECTED","RECEIPT_REJECTED");case "conflicted":return G("UI_APP_OPEN_STALE","RECEIPT_CONFLICTED");case "expired":return G("UI_APP_OPEN_STALE","RECEIPT_EXPIRED");default:return G("UI_APP_OPEN_FAILED","RECEIPT_FAILED")}}function Me(e,n){return e.workspaceId===n.workspaceId&&e.threadId===n.threadId&&e.instanceId===n.instanceId&&e.definition.id===n.definition.id&&e.definition.version===n.definition.version&&e.definition.hash===n.definition.hash&&e.entryHash===n.entryHash}function Yr(e){if(Rn(e.requestId)!==e.activeSessionId)return "stale";let{lookup:n}=e;return n.kind==="absent"?n.capacity==="full"?"busy":"new":Me(n.record.source,e.source)&&n.record.payloadDigest===e.payloadDigest?"known":"conflict"}function Kr(e){return Rn(e.requestId)!==e.activeSessionId||e.lookup.kind!=="present"?"stale":Me(e.lookup.record.source,e.source)?"known":"stale"}export{$e as ANTIGRAVITY_MODEL_COMPATIBILITY,Rr as APP_JOB_BRIDGE_DRAIN_TIMEOUT_MS,xr as APP_JOB_BRIDGE_ENV,Cr as APP_JOB_BRIDGE_MAX_LINE_BYTES,Or as APP_JOB_BRIDGE_REPLY_TIMEOUT_MS,Pr as APP_JOB_BRIDGE_VERSION,gn as APP_JOB_CAPABILITY,mn as APP_JOB_CAPABILITY_VERSION,Ae as APP_JOB_DEADLINE_MS,Ar as APP_JOB_MAX_PER_APP,yn as APP_JOB_OPERATIONS,_e as APP_JOB_OUTCOMES,An as APP_JOB_REFUSAL_CODES,Er as APP_JOB_RUN_REQUIRED,he as APP_JOB_STATES,Ee as APP_JOB_STOP_REASONS,Ie as APP_JOB_TRIGGERS,dr as APP_SCHEDULE_INERT_COMMAND,ln as APP_SCHEDULE_INTERVALS_MINUTES,ar as APP_SCHEDULE_MAX_PER_APP,un as APP_SCHEDULE_PERIODIC_REASONS,ye as APP_SCHEDULE_TIMEOUT_MS,rn as BUILTIN_THREAD_STATES,ae as BrowserFsAdapter,qe as CLAUDE_MODEL_COMPATIBILITY_PAIRS,lt as CLAUDE_OPUS_4_8_BASE_MODEL_ID,ut as CLAUDE_OPUS_4_8_LEGACY_MODEL_ID,Ur as CREWX_OPEN_APP_CAPABILITY,Ce as CREWX_OPEN_APP_CAPABILITY_VERSION,On as CREWX_OPEN_APP_MAX_JSON_DEPTH,Cn as CREWX_OPEN_APP_MAX_PARAMS_BYTES,Lr as CREWX_OPEN_APP_METHOD,Br as CREWX_OPEN_APP_STATUS_METHOD,Oe as CREWX_OPEN_APP_SUCCESS_STATUSES,O as ConfigLoadError,Z as Crewx,J as CrewxOpenAppError,at as EFFORT_LEVELS,qt as MCP_APP_HOST_TOOL_ALLOWLIST,dt as PROVIDER_ARGV_EFFORTS,de as PROVIDER_ORDER,h as ProviderError,pr as SCHEDULE_TRIGGERS,tn as THREAD_PRIORITIES,be as UI_APP_OPEN_CAUSE_CODES,Re as UI_APP_OPEN_ERROR_CODES,ge as UI_CONTENT_MEDIA_TYPES,Sr as appJobTriggerForActor,Yt as buildMcpAppContentActions,vn as canonicalCrewxOpenAppPayload,Xn as classifyTaskError,wt as compareProviders,Kt as contentActionsMatch,Mn as createCrewxOpenAppCapabilityDeclaration,kn as createCrewxOpenAppErrorResult,Vr as createCrewxOpenAppRequestId,Sn as createCrewxOpenAppSuccessResult,U as createProvider,on as customStateLabel,Yr as decideCrewxOpenAppOpen,Kr as decideCrewxOpenAppStatus,Ut as getDefaultAgentProfile,Tr as hasAppJobCapability,Ft as hasThreadTitleKey,Te as isAppJobCode,Ir as isAppJobDeadlineMs,hn as isAppJobOperation,xe as isAppJobPhase,lr as isAppScheduleCode,ur as isAppScheduleIntervalMinutes,gr as isAppSchedulePeriodicReason,fr as isAppScheduleTimeoutMs,me as isMcpAppContentActions,Me as isSameCrewxOpenAppSourceBinding,le as isThreadPriority,ue as isThreadState,w as isUiContentMediaType,F as isValidUiAppInstanceId,Vt as matchesThreadTitleFilter,Ht as mergeThreadTitleMeta,yr as normalizeAppFilesRef,vt as normalizeClaudeMode,Nt as normalizeProviderId,kr as parseAppJobView,zr as parseCrewxOpenAppCapabilityDeclaration,qr as parseCrewxOpenAppRequest,$r as parseCrewxOpenAppResult,Wr as parseCrewxOpenAppStatusRequest,Jt as parseThreadPriorityFilter,zt as parseThreadStateFilter,Rt as parseYamlContent,pe as providerRank,sn as readThreadTitleMeta,ee as redactTechnicalMessage,Q as registerProviderFactory,Xe as resolveAntigravityModel,We as resolveCatalogModelId,Xr as resolveCrewxOpenAppActionOutcome,se as resolveProviderCatalogModel,Gt as threadTitleSearchHaystack};
|