diff --git a/resources/plugins/declarative/orca-testing.mjs b/resources/plugins/declarative/orca-testing.mjs index c1584b6abe3..df2d641cf8c 100644 --- a/resources/plugins/declarative/orca-testing.mjs +++ b/resources/plugins/declarative/orca-testing.mjs @@ -61,7 +61,7 @@ ${u}`:u:"",d=Function,p=`return (input) => { ${u} }`,m;try{m=new d(...a,p)(...s)}catch(f){throw new V(`this schema (generated code failed to evaluate: ${f.message})`)}return n?.debug&&(m.code=c),m.definite=o.definite,m}function L(e,n){for(let[o,t]of e.constants)if(t===n)return o;let i=`c${e.constantCounter++}`;return e.constants.set(i,n),i}function Tt(e,n){return e.definite=!1,L(e,n)}function z(e){return`v${e.varCounter++}`}function B$(e,n){let i=e._zod.run({value:n,issues:[]},{});if(i&&typeof i.then=="function")return pe;let o=i;return o.issues.length===0?o.value:pe}function ce(e,n,i,o,t=!0){let r=e.content.length,a=n.constants.size,s=n.constantCounter,u=n.varCounter;try{return Q(e,n,i,o,t)}catch(c){if(!(c instanceof V)||!c.islandable)throw c;if(e.content.length=r,n.constants.size>a){let d=Array.from(n.constants.keys()).slice(a);for(let p of d)n.constants.delete(p)}return n.constantCounter=s,n.varCounter=u,H$(e,n,i,o)}}function H$(e,n,i,o){n.definite=!1;let t=L(n,i),r=L(n,B$),a=z(n);return e.write(`const ${a} = ${r}(${t}, ${o});`),e.write(`if (${a} === INVALID) return INVALID;`),a}var K$=new Set(["max_size","min_size","size_equals","max_length","min_length","length_equals"]);function W$(e,n,i,o){let t=i._zod.def.checks;if(!t||t.length===0)return o;let r=o;for(let a of t){let s=a._zod.def;if(s.when&&!K$.has(s.check))throw new V('check with a custom "when" condition');switch(s.check){case"greater_than":J$(e,n,s,r);break;case"less_than":X$(e,n,s,r);break;case"multiple_of":q$(e,n,s,r);break;case"number_format":Jf(e,s,r);break;case"min_length":{let u=at(s.minimum,"min_length"),c=vc(e,n,r,`${r}.length >= ${u} && ${r}.length < ${s.minimum*2}`);e.write(`if (${c} < ${u}) return INVALID;`);break}case"max_length":{let u=at(s.maximum,"max_length"),c=vc(e,n,r,`${r}.length > ${u}`);e.write(`if (${c} > ${u}) return INVALID;`);break}case"length_equals":{let u=at(s.length,"length_equals"),c=vc(e,n,r,`${r}.length >= ${u} && ${r}.length <= ${s.length*2}`);e.write(`if (${c} !== ${u}) return INVALID;`);break}case"min_size":e.write(`if (${r}.size < ${at(s.minimum,"min_size")}) return INVALID;`);break;case"max_size":e.write(`if (${r}.size > ${at(s.maximum,"max_size")}) return INVALID;`);break;case"size_equals":e.write(`if (${r}.size !== ${at(s.size,"size_equals")}) return INVALID;`);break;case"string_format":r=Xf(e,n,s,r);break;case"custom":r=rk(e,n,a,r);break;case"bigint_format":Y$(e,s,r);break;case"mime_type":Q$(e,n,s,r);break;case"property":tk(e,n,s,r);break;case"properties":ek(e,n,s,r);break;case"overwrite":{let u=z(n);nk(e,n,a,r,u),r=u;break}default:throw new V(`check type ${s.check}`)}}return r}function vc(e,n,i,o){let t=L(n,xt),r=z(n);return e.write(`const ${r} = typeof ${i} === "string" && ${o} ? ${t}(${i}) : ${i}.length;`),r}function at(e,n){if(typeof e!="number"||!Number.isFinite(e))throw new V(`${n} bound of type ${typeof e}`);return`${e}`}function Wf(e,n){if(typeof n=="bigint")return`${n}n`;if(typeof n=="number"){if(Number.isNaN(n))throw new V("comparison check with NaN bound");return`${n}`}if(n instanceof Date){if(Number.isNaN(n.getTime()))throw new V("comparison check with Invalid Date bound");return L(e,n)}throw new V(`comparison check bound of type ${typeof n}`)}function J$(e,n,i,o){let t=i.inclusive?"<":"<=";e.write(`if (${o} ${t} ${Wf(n,i.value)}) return INVALID;`)}function X$(e,n,i,o){let t=i.inclusive?">":">=";e.write(`if (${o} ${t} ${Wf(n,i.value)}) return INVALID;`)}function q$(e,n,i,o){if(typeof i.value=="bigint"){if(i.value===BigInt(0))throw new V("multiple_of check with a zero divisor");e.write(`if (${o} % ${i.value}n !== 0n) return INVALID;`)}else{let t=L(n,Vn);e.write(`if (${t}(${o}, ${at(i.value,"multiple_of")}) !== 0) return INVALID;`)}}function Jf(e,n,i){let o=n.format;switch(o){case"safeint":e.write(`if (!Number.isSafeInteger(${i})) return INVALID;`);break;case"int32":e.write(`if (!Number.isInteger(${i}) || ${i} < -2147483648 || ${i} > 2147483647) return INVALID;`);break;case"uint32":e.write(`if (!Number.isInteger(${i}) || ${i} < 0 || ${i} > 4294967295) return INVALID;`);break;case"float32":e.write(`if (!Number.isFinite(${i}) || ${i} < -3.4028234663852886e38 || ${i} > 3.4028234663852886e38) return INVALID;`);break;case"float64":e.write(`if (!Number.isFinite(${i})) return INVALID;`);break;default:throw new V(`number format ${o}`)}}function Y$(e,n,i){let o=n.format;if(o)switch(o){case"int64":e.write(`if (${i} < -9223372036854775808n || ${i} > 9223372036854775807n) return INVALID;`);break;case"uint64":e.write(`if (${i} < 0n || ${i} > 18446744073709551615n) return INVALID;`);break;default:throw new V(`bigint format ${o}`)}}function Q$(e,n,i,o){let t=i.mime;if(t&&t.length>0){let r=L(n,new Set(t));e.write(`if (!${r}.has(${o}.type)) return INVALID;`)}}function ek(e,n,i,o){if(i.when)throw new V('check with a custom "when" condition');e.write(`if (${o} == null) return INVALID;`);let t=i.shape;for(let r of Reflect.ownKeys(t)){let a=typeof r=="symbol"?L(n,r):le(r),s=z(n);e.write(`const ${s} = ${o}[${a}];`),ce(e,n,t[r],s,!1)}}function tk(e,n,i,o){let t=`${o}[${JSON.stringify(i.property)}]`;Q(e,n,i.schema,t)}function nk(e,n,i,o,t){let r=i._zod.def.tx;if(!r)throw new V("overwrite check without a transform function");if(Et(r))throw new De("z.compile: async overwrite transforms are not supported");let a=L(n,r);e.write(`const ${t} = ${a}(${o});`)}function yc(){throw new $e}function $c(e){this.issues.push(e)}function rk(e,n,i,o){let t=i._zod.def;if(t.fn){if(Et(t.fn))throw new De("z.compile: async .refine() predicates are not supported");let r=Tt(n,t.fn),a=L(n,yc),s=z(n);return e.write(`const ${s} = ${r}(${o});`),e.write(`if (${s} instanceof Promise) ${a}();`),e.write(`if (!${s}) return INVALID;`),o}if(i._zod.check){if(Et(i._zod.check))throw new De("z.compile: async .superRefine() / check functions are not supported");let r=i._zod.check,s=Tt(n,c=>{let d={value:c,issues:[],addIssue:$c};return r(d)instanceof Promise&&yc(),d.issues.length===0?d.value:pe}),u=z(n);return e.write(`const ${u} = ${s}(${o});`),e.write(`if (${u} === INVALID) return INVALID;`),u}throw new V("custom check without a predicate or check function")}var ik=new Set(["cidrv4","cuid","cuid2","date","datetime","duration","e164","email","emoji","ends_with","guid","includes","ipv4","ksuid","lowercase","mac","nanoid","regex","starts_with","time","ulid","uppercase","uuid","xid"]);function Xf(e,n,i,o,t=!0){let r=i.format;if(r==="base64"){let c=L(n,ur);return e.write(`if (!${c}(${o})) return INVALID;`),o}if(r==="base64url"){let c=L(n,zi);return e.write(`if (!${c}(${o})) return INVALID;`),o}if(r==="jwt"){let c=L(n,ji),d=L(n,i.alg??null);return e.write(`if (!${c}(${o}, ${d})) return INVALID;`),o}if(r==="ipv6"){let c=L(n,sr);return e.write(`if (!${c}(${o})) return INVALID;`),o}if(r==="cidrv6"){let c=L(n,Oi);return e.write(`if (!${c}(${o})) return INVALID;`),o}if(r==="credit_card"){let c=L(n,Di);return e.write(`if (!${c}(${o})) return INVALID;`),o}if(r==="iban"){let c=L(n,Ci);return e.write(`if (!${c}(${o})) return INVALID;`),o}let a=i;if(r==="url"||r==="httpurl"||a.normalize||a.hostname!==void 0||a.protocol!==void 0){let c=L(n,Ti),d=L(n,i),p=z(n),m=z(n);if(e.write(`const ${p} = ${o}.trim();`),e.write(`const ${m} = ${c}(${p}, ${d});`),e.write(`if (typeof ${m} === "number") return INVALID;`),a.hostname!==void 0){let y=L(n,Ei);e.write(`if (!${y}(${m}, ${d}.hostname)) return INVALID;`)}if(a.protocol!==void 0){let y=L(n,Ai);e.write(`if (!${y}(${m}, ${d}.protocol)) return INVALID;`)}if(!t)return null;let f=z(n),g=a.normalize?`${m}.href`:`${L(n,ar)}(${p})`;return e.write(`const ${f} = ${g};`),f}let s=i.fn;if(s){if(Et(s))throw new V(`async string format ${r}`);let c=L(n,s);return e.write(`if (!${c}(${o})) return INVALID;`),o}if(ik.has(r)&&i.pattern){let c=L(n,i.pattern);return e.write(`${c}.lastIndex = 0;`),e.write(`if (!${c}.test(${o})) return INVALID;`),o}let u=i.format;switch(u){case"regex":throw new V("regex format without a pattern");case"lowercase":e.write(`if (${o} !== ${o}.toLowerCase()) return INVALID;`);break;case"uppercase":e.write(`if (${o} !== ${o}.toUpperCase()) return INVALID;`);break;case"includes":e.write(`if (!${o}.includes(${le(i.includes)})) return INVALID;`);break;case"starts_with":{let c=i.prefix;e.write(`if (${o}.slice(0, ${c.length}) !== ${le(c)}) return INVALID;`);break}case"ends_with":{let c=i.suffix;e.write(`if (${o}.slice(-${c.length}) !== ${le(c)}) return INVALID;`);break}default:throw new V(`string format ${u}`)}return o}function Q(e,n,i,o,t=!0){let r=i._zod.def,a=r.type;if(r.coerce)throw new V(`coercion (z.coerce.${a}())`);let s=t||!!r.checks?.length,u;switch(a){case"string":u=ok(e,n,i,o,s);break;case"number":u=ak(e,i,o);break;case"boolean":u=sk(e,o);break;case"bigint":u=uk(e,i,o);break;case"symbol":u=ck(e,o);break;case"undefined":u=lk(e,o);break;case"null":u=dk(e,o);break;case"any":case"unknown":u=o;break;case"never":e.write("return INVALID;"),u=o;break;case"void":u=pk(e,o);break;case"nan":u=mk(e,o);break;case"date":u=fk(e,o);break;case"object":u=gk(e,n,i,o,s);break;case"optional":u=hk(e,n,i,o,s);break;case"nullable":u=bk(e,n,i,o,s);break;case"array":u=_k(e,n,i,o,s);break;case"literal":u=$k(e,n,i,o);break;case"enum":u=kk(e,n,i,o);break;case"readonly":{let c=Bf(e,n,i,o),d=z(n);e.write(`const ${d} = Object.freeze(${c});`),u=d;break}case"success":Bf(e,n,i,o),u="true";break;case"default":case"prefault":u=xk(e,n,i,o);break;case"nonoptional":u=wk(e,n,i,o);break;case"tuple":u=Ik(e,n,i,o);break;case"union":u=Sk(e,n,i,o);break;case"intersection":u=Ek(e,n,i,o);break;case"record":u=Ak(e,n,i,o);break;case"map":u=Nk(e,n,i,o);break;case"set":u=zk(e,n,i,o);break;case"file":u=Dk(e,o);break;case"template_literal":u=Ck(e,n,i,o);break;case"lazy":u=jk(e,n,i,o);break;case"pipe":u=Lk(e,n,i,o);break;case"custom":u=Uk(e,n,i,o);break;case"transform":u=Zk(e,n,i,o);break;case"catch":u=Mk(e,n,i,o);break;default:throw new V(`schema type ${a}`)}return u===null?null:W$(e,n,i,u)}function ok(e,n,i,o,t=!0){e.write(`if (typeof ${o} !== "string") return INVALID;`);let r=i._zod.def;return r.format===void 0?o:Xf(e,n,r,o,t)}function ak(e,n,i){e.write(`if (typeof ${i} !== "number" || !Number.isFinite(${i})) return INVALID;`);let o=n._zod.def;return o.check==="number_format"&&o.format&&Jf(e,{format:o.format},i),i}function sk(e,n){return e.write(`if (typeof ${n} !== "boolean") return INVALID;`),n}function uk(e,n,i){e.write(`if (typeof ${i} !== "bigint") return INVALID;`);let o=n._zod.def;if(o.format)switch(o.format){case"int64":e.write(`if (${i} < -9223372036854775808n || ${i} > 9223372036854775807n) return INVALID;`);break;case"uint64":e.write(`if (${i} < 0n || ${i} > 18446744073709551615n) return INVALID;`);break}return i}function ck(e,n){return e.write(`if (typeof ${n} !== "symbol") return INVALID;`),n}function lk(e,n){return e.write(`if (${n} !== undefined) return INVALID;`),n}function dk(e,n){return e.write(`if (${n} !== null) return INVALID;`),n}function pk(e,n){return e.write(`if (${n} !== undefined) return INVALID;`),n}function mk(e,n){return e.write(`if (typeof ${n} !== "number" || !Number.isNaN(${n})) return INVALID;`),n}function fk(e,n){return e.write(`if (!(${n} instanceof Date) || Number.isNaN(${n}.getTime())) return INVALID;`),n}function gk(e,n,i,o,t=!0){let r=i._zod.def;e.write(`if (typeof ${o} !== "object" || ${o} === null || Array.isArray(${o})) return INVALID;`);let a=r.shape,s=Object.keys(a),u=Object.getOwnPropertySymbols(a),c=u.length?[...s,...u]:s,d=b=>typeof b=="symbol"?L(n,b):le(b),p=b=>typeof b=="symbol"?`[${d(b)}]`:le(b),m=a;if(s.includes("__proto__"))throw new V('object shape key "__proto__"');let f=new Map;for(let b of c){let T=m[b],A=d(b),D=z(n);if(e.write(`const ${D} = ${o}[${A}];`),T._zod.optin!==void 0){let w=z(n);e.write(`let ${w} = (() => {`),e.indented(O=>{let E=ce(O,n,T,D);O.write(`return ${E};`)}),e.write("})();"),T._zod.optout==="optional"?(e.write(`if (${w} === INVALID) {`),e.indented(O=>{O.write(`if (${A} in ${o}) return INVALID;`),O.write(`${w} = undefined;`)}),e.write("}")):e.write(`if (${w} === INVALID) return INVALID;`),f.set(b,w)}else{yk(T)&&e.write(`if (!(${A} in ${o})) return INVALID;`);let w=ce(e,n,T,D,t);w!==null&&f.set(b,w)}}let g=r.catchall,y="none";if(g){let b=g._zod.def.type;if(b==="never"){let T=s.map(A=>`k !== ${le(A)}`).join(" && ")||"true";e.write(`for (const k in ${o}) {`),e.indented(A=>{A.write(`if (${T}) return INVALID;`)}),e.write("}")}else(b==="unknown"||b==="any")&&!g._zod.def.checks?.length?y="passthrough":y="schema"}let x=z(n),I=c.some(b=>Ff(m[b])||bc(m[b]));if(!t){if(y==="schema"){let b=s.length>0?L(n,new Set(s)):null;e.write(`for (const k in ${o}) {`),e.indented(T=>{T.write('if (k === "__proto__") continue;'),b&&T.write(`if (${b}.has(k)) continue;`);let A=z(n);T.write(`const ${A} = ${o}[k];`),ce(T,n,g,A,!1)}),e.write("}")}return null}if(I){e.write(`const ${x} = {};`);for(let b of c){let T=d(b),A=f.get(b);bc(m[b])?e.write(`if (${T} in ${o}) ${x}[${T}] = ${A};`):Ff(m[b])?e.write(`if (${A} !== undefined || ${T} in ${o}) ${x}[${T}] = ${A};`):e.write(`${x}[${T}] = ${A};`)}}else{let b=c.map(T=>`${p(T)}: ${f.get(T)}`).join(", ");e.write(`const ${x} = { ${b} };`)}if(y!=="none"){let b=s.length>0?L(n,new Set(s)):null;e.write(`for (const k in ${o}) {`),e.indented(T=>{if(T.write('if (k === "__proto__") continue;'),b&&T.write(`if (${b}.has(k)) continue;`),y==="passthrough")T.write(`${x}[k] = ${o}[k];`);else{let A=z(n);T.write(`const ${A} = ${o}[k];`);let D=ce(T,n,g,A);T.write(`${x}[k] = ${D};`)}}),e.write("}")}return x}function hk(e,n,i,o,t=!0){let r=i._zod.def;if(vk(i))return Q(e,n,r.innerType,o,t);if(r.innerType._zod.optin==="defaulted"){let s=z(n),u=z(n);return e.write(`let ${s};`),e.write(`if (${o} === undefined) {`),e.indented(c=>{c.write(`const ${u} = (() => {`),c.indented(d=>{let p=Q(d,n,r.innerType,o);d.write(`return ${p};`)}),c.write("})();"),c.write(`if (${u} !== INVALID) ${s} = ${u};`)}),e.write("} else {"),e.indented(c=>{let d=Q(c,n,r.innerType,o);c.write(`${s} = ${d};`)}),e.write("}"),s}let a=t?z(n):null;return a&&e.write(`let ${a};`),e.write(`if (${o} !== undefined) {`),e.indented(s=>{let u=Q(s,n,r.innerType,o,t);a&&u!==null&&s.write(`${a} = ${u};`)}),e.write("}"),a}function vk(e){return e._zod.traits?.has("$ZodExactOptional")===!0}function yk(e){return e._zod.optin===void 0&&Pt(e)}function Pt(e){if(e._zod.def.coerce)return!0;let n=e._zod.def;switch(n.type){case"any":case"unknown":case"undefined":case"void":case"default":case"prefault":case"transform":case"custom":case"lazy":return!0;case"string":case"number":case"boolean":case"bigint":case"symbol":case"null":case"never":case"nan":case"date":case"object":case"array":case"tuple":case"record":case"map":case"set":case"file":case"template_literal":return!1;case"nonoptional":return n.innerType?Pt(n.innerType):!1;case"literal":return!!n.values?.includes(void 0);case"enum":return!!e._zod.values?.has(void 0);case"optional":case"nullable":case"readonly":case"success":return n.innerType?Pt(n.innerType):!0;case"catch":return!0;case"union":return n.options?n.options.some(Pt):!0;case"intersection":return!n.left||!n.right?!0:Pt(n.left)&&Pt(n.right);case"pipe":return n.in?Pt(n.in):!0;default:return!0}}function bc(e){return e._zod.optin==="optional"&&e._zod.optout==="optional"}function Ff(e){return(e._zod.optin!=="defaulted"||e._zod.optout==="optional")&&sn(e)}function sn(e){let n=e._zod.def;switch(n.type){case"string":case"number":case"boolean":case"bigint":case"symbol":case"null":case"nan":case"date":case"object":case"array":case"tuple":case"record":case"map":case"set":case"file":case"template_literal":case"never":case"success":return!1;case"literal":return!!n.values?.includes(void 0);case"enum":return!!e._zod.values?.has(void 0);case"optional":return!0;case"nullable":case"readonly":case"nonoptional":return n.innerType?sn(n.innerType):!0;case"union":return n.options?n.options.some(sn):!0;case"intersection":return!n.left||!n.right||sn(n.left)||sn(n.right);case"pipe":return n.out?sn(n.out):!0;default:return!0}}function bk(e,n,i,o,t=!0){let r=i._zod.def,a=t?z(n):null;return a&&e.write(`let ${a} = null;`),e.write(`if (${o} !== null) {`),e.indented(s=>{let u=Q(s,n,r.innerType,o,t);a&&u!==null&&s.write(`${a} = ${u};`)}),e.write("}"),a}function kc(e,n,i){for(let[o,t]of Xt(n._zod.def.checks))e.write(`if (${i} > ${at(o,t._zod.def.check)}) return INVALID;`)}function _k(e,n,i,o,t=!0){let r=i._zod.def;e.write(`if (!Array.isArray(${o})) return INVALID;`),kc(e,i,`${o}.length`);let a=t?z(n):null,s=z(n),u=z(n);return a&&e.write(`const ${a} = new Array(${o}.length);`),e.write(`for (let ${s} = 0; ${s} < ${o}.length; ${s}++) {`),e.indented(c=>{c.write(`const ${u} = ${o}[${s}];`);let d=ce(c,n,r.element,u,t);a&&d!==null&&c.write(`${a}[${s}] = ${d};`)}),e.write("}"),a}function $k(e,n,i,o){let r=i._zod.def.values;if(r.length!==1){let s=L(n,new Set(r));return e.write(`if (!${s}.has(${o})) return INVALID;`),o}let a=r[0];if(typeof a=="number"&&Number.isNaN(a)){let s=L(n,new Set(r));return e.write(`if (!${s}.has(${o})) return INVALID;`),o}if(typeof a=="string")e.write(`if (${o} !== ${le(a)}) return INVALID;`);else if(typeof a=="number"||typeof a=="boolean")e.write(`if (${o} !== ${a}) return INVALID;`);else if(a===null)e.write(`if (${o} !== null) return INVALID;`);else if(a===void 0)e.write(`if (${o} !== undefined) return INVALID;`);else if(typeof a=="bigint")e.write(`if (${o} !== ${a}n) return INVALID;`);else throw new V(`literal type ${typeof a}`);return o}function kk(e,n,i,o){let t=i._zod.values;if(!t)throw new V("enum schema without enumerated values");let r=L(n,t);return e.write(`if (!${r}.has(${o})) return INVALID;`),o}function Bf(e,n,i,o){let t=i._zod.def;return Q(e,n,t.innerType,o)}function xk(e,n,i,o){let t=i._zod.def,a=Object.getOwnPropertyDescriptor(i._zod.def,"defaultValue")?()=>i._zod.def.defaultValue:void 0;if(i._zod.def.type==="prefault"){if(!a)return Q(e,n,t.innerType,o);let u=L(n,a),c=z(n);return e.write(`let ${c} = ${o};`),e.write(`if (${o} === undefined) ${c} = ${u}();`),Q(e,n,t.innerType,c)}let s=z(n);if(a){let u=L(n,a),c=L(n,Gn);e.write(`let ${s};`),e.write(`if (${o} === undefined) {`),e.indented(d=>{d.write(`${s} = ${c}(${u}());`)}),e.write("} else {"),e.indented(d=>{let p=Q(d,n,t.innerType,o);d.write(`${s} = ${p} === undefined ? ${c}(${u}()) : ${p};`)}),e.write("}")}else e.write(`let ${s};`),e.write(`if (${o} !== undefined) {`),e.indented(u=>{let c=Q(u,n,t.innerType,o);u.write(`${s} = ${c};`)}),e.write("}");return s}function wk(e,n,i,o){let t=i._zod.def,r=Q(e,n,t.innerType,o),a=z(n);return e.write(`const ${a} = ${r};`),e.write(`if (${a} === undefined) return INVALID;`),a}function Ik(e,n,i,o){let t=i._zod.def,r=t.items,a=t.rest;e.write(`if (!Array.isArray(${o})) return INVALID;`);let s=Hf(r,"optin"),u=Hf(r,"optout");a?e.write(`if (${o}.length < ${s}) return INVALID;`):e.write(`if (${o}.length < ${s} || ${o}.length > ${r.length}) return INVALID;`);let c=z(n);e.write(`const ${c} = [];`);for(let d=0;d=u)e.write(`if (${c}.length === ${d}) {`),e.indented(m=>{m.write(`if (${d} < ${o}.length) {`),m.indented(f=>{let g=z(n);f.write(`const ${g} = ${o}[${d}];`);let y=ce(f,n,p,g);f.write(`${c}[${d}] = ${y};`)}),m.write("} else {"),m.indented(f=>{if(bc(p)){f.write(`${c}.length = ${d};`);return}let g=z(n),y=z(n);f.write(`const ${g} = undefined;`),f.write(`const ${y} = (() => {`),f.indented(x=>{let I=ce(x,n,p,g);x.write(`return ${I};`)}),f.write("})();"),f.write(`if (${y} === INVALID || ${y} === undefined) ${c}.length = ${d};`),f.write(`else ${c}[${d}] = ${y};`)}),m.write("}")}),e.write("}");else{let m=z(n);e.write(`const ${m} = ${o}[${d}];`);let f=ce(e,n,p,m);e.write(`${c}[${d}] = ${f};`)}}if(a){let d=z(n),p=z(n);e.write(`for (let ${d} = ${r.length}; ${d} < ${o}.length; ${d}++) {`),e.indented(m=>{m.write(`const ${p} = ${o}[${d}];`);let f=ce(m,n,a,p);m.write(`${c}[${d}] = ${f};`)}),e.write("}")}return c}function Hf(e,n){for(let i=e.length-1;i>=0;i--)if(!(n==="optin"?e[i]._zod.optin!==void 0:e[i]._zod.optout==="optional"))return i+1;return 0}function Sk(e,n,i,o){let t=i._zod.def,r=t.options;if(t.discriminator)return Pk(e,n,t,o);if(t.inclusive===!1)throw new V("exclusive unions (z.xor)");if(r.length===0)return e.write("return INVALID;"),o;if(r.length===1)return Q(e,n,r[0],o);if(r.every(u=>u._zod.def.type==="literal"&&!u._zod.def.checks?.length)){let u=new Set(r.flatMap(d=>d._zod.def.values)),c=L(n,u);return e.write(`if (!${c}.has(${o})) return INVALID;`),o}let s=z(n);e.write(`let ${s};`);for(let u=0;u {`):e.write(`if (${s} === INVALID) ${s} = (() => {`),e.indented(d=>{let p=Q(d,n,c,o);d.write(`return ${p};`)}),e.write("})();")}return e.write(`if (${s} === INVALID) return INVALID;`),s}function Pk(e,n,i,o){if(i.unionFallback)throw new V("discriminated union with unionFallback");if(i.options.length===0)return e.write("return INVALID;"),o;let t=z(n),r=z(n);e.write(`const ${t} = ${o}?.[${le(i.discriminator)}];`),e.write(`let ${r};`);let a=!0,s=new Set;for(let u of i.options){let c=u._zod.propValues?.[i.discriminator];if(!c||c.size===0)throw new V("discriminated union option without static discriminator values");for(let m of c){if(s.has(m))throw new V(`duplicate discriminator value ${String(m)}`);s.add(m)}let d=Array.from(c,m=>Tk(n,t,m)),p=a?"if":"else if";e.write(`${p} (${d.join(" || ")}) {`),e.indented(m=>{let f=Q(m,n,u,o);m.write(`${r} = ${f};`)}),e.write("}"),a=!1}return e.write("else { return INVALID; }"),r}function Tk(e,n,i){if(typeof i=="string")return`${n} === ${le(i)}`;if(typeof i=="number")return Number.isNaN(i)?`Number.isNaN(${n})`:`${n} === ${i}`;if(typeof i=="boolean")return`${n} === ${i}`;if(i===null)return`${n} === null`;if(i===void 0)return`${n} === undefined`;if(typeof i=="bigint")return`${n} === ${i}n`;if(typeof i=="symbol"){let o=L(e,i);return`${n} === ${o}`}throw new V(`literal discriminator value ${String(i)}`)}function Ek(e,n,i,o){let t=i._zod.def;n.definite=!1;let r=ce(e,n,t.left,o),a=ce(e,n,t.right,o),s=L(n,rn),u=z(n);return e.write(`const ${u} = ${s}(${r}, ${a});`),e.write(`if (!${u}.valid) return INVALID;`),`${u}.data`}function Ak(e,n,i,o){let t=i._zod.def,r=L(n,Se);e.write(`if (!${r}(${o})) return INVALID;`);let a=z(n),s=z(n),u=z(n);e.write(`const ${a} = {};`);let c=t,d=c.partial?void 0:t.keyType._zod.values;if(d){let f=[];for(let y of d){if(!(typeof y=="string"||typeof y=="number"||typeof y=="symbol"))throw new V(`record key value ${String(y)}`);let x=typeof y=="number"?y.toString():y;if(x==="__proto__")throw new V('record key "__proto__"');f.push(x);let I=L(n,y),b=Q(e,n,t.keyType,I),T=z(n);e.write(`const ${T} = ${o}[${Ok(n,x)}];`);let A=ce(e,n,t.valueType,T);e.write(`${a}[${b}] = ${A};`)}let g=L(n,new Set(f));return e.write(`for (const ${s} in ${o}) {`),e.indented(y=>{y.write(`if (${g}.has(${s})) continue;`),c.mode==="loose"?y.write(`if (${s} !== "__proto__") ${a}[${s}] = ${o}[${s}];`):y.write("return INVALID;")}),e.write("}"),a}let p=t.keyType._zod.def;if(!(p.type==="string"&&p.format===void 0&&!p.coerce&&(p.checks?.length??0)===0)){let f=t.mode==="loose",g=eo(t.keyType);g.definite===!1&&(n.definite=!1);let y=L(n,g),x=L(n,qe),I=z(n);return Kf(e,n,o,s,b=>{b.write(`let ${I} = ${y}(${s});`),b.write(`if (${I} === INVALID && typeof ${s} === "string" && ${x}.test(${s})) ${I} = ${y}(Number(${s}));`),f?b.write(`if (${I} === INVALID) { ${a}[${s}] = ${o}[${s}]; continue; }`):b.write(`if (${I} === INVALID) return INVALID;`),b.write(`if (${I} === "__proto__") continue;`);let T=z(n);b.write(`const ${T} = ${o}[${s}];`);let A=ce(b,n,t.valueType,T);b.write(`${a}[${I}] = ${A};`)}),a}return Kf(e,n,o,s,f=>{f.write(`const ${u} = ${o}[${s}];`);let g=ce(f,n,t.valueType,u);f.write(`${a}[${s}] = ${g};`)},"return INVALID;"),a}function Kf(e,n,i,o,t,r){let a=L(n,Object.prototype.propertyIsEnumerable),s=z(n),u=z(n),c=z(n);e.write(`const ${s} = Object.getOwnPropertySymbols(${i});`),e.write(`const ${u} = Object.getOwnPropertyNames(${i});`),e.write(`for (let ${c} = 0; ${c} < ${u}.length; ${c}++) {`),e.indented(d=>{d.write(`const ${o} = ${u}[${c}];`),d.write(`if (${o} === "__proto__" || !${a}.call(${i}, ${o})) continue;`),t(d)}),e.write("}"),e.write(`for (let ${c} = 0; ${c} < ${s}.length; ${c}++) {`),e.indented(d=>{d.write(`const ${o} = ${s}[${c}];`),d.write(`if (!${a}.call(${i}, ${o})) continue;`),r?d.write(r):t(d)}),e.write("}")}function Ok(e,n){return typeof n=="string"?le(n):L(e,n)}function Nk(e,n,i,o){let t=i._zod.def;e.write(`if (!(${o} instanceof Map)) return INVALID;`),kc(e,i,`${o}.size`);let r=z(n),a=z(n),s=z(n);return e.write(`const ${r} = new Map();`),e.write(`for (const [${a}, ${s}] of ${o}) {`),e.indented(u=>{let c=Q(u,n,t.keyType,a),d=Q(u,n,t.valueType,s);u.write(`${r}.set(${c}, ${d});`)}),e.write("}"),r}function zk(e,n,i,o){let t=i._zod.def;e.write(`if (!(${o} instanceof Set)) return INVALID;`),kc(e,i,`${o}.size`);let r=z(n),a=z(n);return e.write(`const ${r} = new Set();`),e.write(`for (const ${a} of ${o}) {`),e.indented(s=>{let u=Q(s,n,t.valueType,a);s.write(`${r}.add(${u});`)}),e.write("}"),r}function Dk(e,n){return e.write(`if (!(${n} instanceof File)) return INVALID;`),n}function Ck(e,n,i,o){e.write(`if (typeof ${o} !== "string") return INVALID;`);let t=i._zod.pattern;if(t){let r=L(n,t);e.write(`${r}.lastIndex = 0;`),e.write(`if (!${r}.test(${o})) return INVALID;`)}return o}function jk(e,n,i,o){let t=i._zod.def,r=Tt(n,t.getter),a=L(n,{parser:null});e.write(`if (!${a}.parser) {`),e.indented(u=>{u.write(`const inner = ${r}();`),u.write(`${a}.parser = function(input) {`),u.indented(c=>{c.write("const result = inner._zod.run({ value: input, issues: [] }, {});"),c.write("return result.issues.length === 0 ? result.value : INVALID;")}),u.write("};")}),e.write("}");let s=z(n);return e.write(`const ${s} = ${a}.parser(${o});`),e.write(`if (${s} === INVALID) return INVALID;`),s}function Lk(e,n,i,o){let t=i._zod.def,r=Q(e,n,t.in,o);if(t.transform){if(Et(t.transform))throw new De("z.compile: async transforms in pipes are not supported");let a=t.transform,u=Tt(n,d=>{let p={value:d,issues:[],addIssue:$c},m=a(d,p);return m instanceof Promise?pe:p.issues.length===0?m:pe}),c=z(n);return e.write(`const ${c} = ${u}(${r});`),e.write(`if (${c} === INVALID) return INVALID;`),Q(e,n,t.out,c)}else return Q(e,n,t.out,r)}function Et(e){return typeof e=="function"&&(e.constructor.name==="AsyncFunction"||e[Symbol.toStringTag]==="AsyncFunction")}function Uk(e,n,i,o){let t=i._zod.def;if(t.fn){if(Et(t.fn))throw new De("z.compile: async custom predicates are not supported");let r=Tt(n,t.fn),a=L(n,yc),s=z(n);e.write(`const ${s} = ${r}(${o});`),e.write(`if (${s} instanceof Promise) ${a}();`),e.write(`if (!${s}) return INVALID;`)}else throw new V("custom schema without a predicate function");return o}function Rk(e,n,i){let o=e._zod.run({value:i,issues:[]},{});if(o&&typeof o.then=="function")return pe;let t=o;return t.issues.length===0?t.value:n()}function Mk(e,n,i,o){let t=i._zod.def;if(!t.catchValue[oi])throw new V("catch with a callback (only a constant catch value compiles)",!1);let r=z(n);e.write(`let ${r} = (() => {`),e.indented(c=>{let d=ce(c,n,t.innerType,o);c.write(`return ${d};`)}),e.write("})();");let a=L(n,t.innerType),s=Tt(n,t.catchValue),u=L(n,Rk);return e.write(`if (${r} === INVALID) {`),e.indented(c=>{c.write(`${r} = ${u}(${a}, ${s}, ${o});`),c.write(`if (${r} === INVALID) return INVALID;`)}),e.write("}"),r}function Zk(e,n,i,o){let t=i._zod.def;if(t.transform){if(Et(t.transform))throw new De("z.compile: async transforms are not supported");let r=t.transform,s=Tt(n,c=>{let d={value:c,issues:[],addIssue:$c},p=r(c,d);return p instanceof Promise?pe:d.issues.length===0?p:pe}),u=z(n);return e.write(`const ${u} = ${s}(${o});`),e.write(`if (${u} === INVALID) return INVALID;`),u}return o}function to(e){return e.checks&&(e.checks=[...e.checks]),e}function xc(e,n){return new e(to({type:"string",...S(n)}))}function wc(e,n){return new e(to({type:"string",coerce:!0,...S(n)}))}function no(e,n){return new e({type:"string",format:"email",check:"string_format",abort:!1,...S(n)})}function ro(e,n){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...S(n)})}function io(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...S(n)})}function oo(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...S(n)})}function ao(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...S(n)})}function so(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...S(n)})}function br(e,n){return new e({type:"string",format:"url",check:"string_format",abort:!1,...S(n)})}function uo(e,n){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...S(n)})}function co(e,n){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...S(n)})}function lo(e,n){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...S(n)})}function po(e,n){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...S(n)})}function mo(e,n){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...S(n)})}function fo(e,n){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...S(n)})}function go(e,n){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...S(n)})}function ho(e,n){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...S(n)})}function vo(e,n){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...S(n)})}function Ic(e,n){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...S(n)})}function yo(e,n){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...S(n)})}function bo(e,n){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...S(n)})}function _o(e,n){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...S(n)})}function $o(e,n){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...S(n)})}function ko(e,n){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...S(n)})}function Sc(e,n){return new e({type:"string",format:"credit_card",check:"string_format",abort:!1,...S(n)})}function Pc(e,n){return new e({type:"string",format:"iban",check:"string_format",abort:!1,...S(n)})}function xo(e,n){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...S(n)})}var Tc={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function _r(e,n){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...S(n)})}function $r(e,n){return new e({type:"string",format:"date",check:"string_format",...S(n)})}function kr(e,n){return new e({type:"string",format:"time",check:"string_format",precision:null,...S(n)})}function xr(e,n){return new e({type:"string",format:"duration",check:"string_format",...S(n)})}function Ec(e,n){return new e(to({type:"number",checks:[],...S(n)}))}function Ac(e,n){return new e(to({type:"number",coerce:!0,checks:[],...S(n)}))}function Oc(e,n){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...S(n)})}function Nc(e,n){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...S(n)})}function zc(e,n){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...S(n)})}function Dc(e,n){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...S(n)})}function Cc(e,n){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...S(n)})}function jc(e,n){return new e({type:"boolean",...S(n)})}function Lc(e,n){return new e({type:"boolean",coerce:!0,...S(n)})}function Uc(e,n){return new e({type:"bigint",...S(n)})}function Rc(e,n){return new e({type:"bigint",coerce:!0,...S(n)})}function Mc(e,n){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...S(n)})}function Zc(e,n){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...S(n)})}function Vc(e,n){return new e({type:"symbol",...S(n)})}function Gc(e,n){return new e({type:"undefined",...S(n)})}function Fc(e,n){return new e({type:"null",...S(n)})}function Bc(e){return new e({type:"any"})}function Hc(e){return new e({type:"unknown"})}function Kc(e,n){return new e({type:"never",...S(n)})}function Wc(e,n){return new e({type:"void",...S(n)})}function Jc(e,n){return new e({type:"date",...S(n)})}function Xc(e,n){return new e({type:"date",coerce:!0,...S(n)})}function qc(e,n){return new e({type:"nan",...S(n)})}function Ze(e,n){return new $i({check:"less_than",...S(n),value:e,inclusive:!1})}function we(e,n){return new $i({check:"less_than",...S(n),value:e,inclusive:!0})}function Ve(e,n){return new ki({check:"greater_than",...S(n),value:e,inclusive:!1})}function Ie(e,n){return new ki({check:"greater_than",...S(n),value:e,inclusive:!0})}function wo(e){return Ve(0,e)}function Io(e){return Ze(0,e)}function So(e){return we(0,e)}function Po(e){return Ie(0,e)}function st(e,n){return new zs({check:"multiple_of",...S(n),value:e})}function ut(e,n){return new js({check:"max_size",...S(n),maximum:e})}function Ge(e,n){return new Ls({check:"min_size",...S(n),minimum:e})}function At(e,n){return new Us({check:"size_equals",...S(n),size:e})}function Ot(e,n){return new Rs({check:"max_length",...S(n),maximum:e})}function Ye(e,n){return new Ms({check:"min_length",...S(n),minimum:e})}function Nt(e,n){return new Zs({check:"length_equals",...S(n),length:e})}function un(e,n){return new Vs({check:"string_format",format:"regex",...S(n),pattern:e})}function cn(e){return new Gs({check:"string_format",format:"lowercase",...S(e)})}function ln(e){return new Fs({check:"string_format",format:"uppercase",...S(e)})}function dn(e,n){return new Bs({check:"string_format",format:"includes",...S(n),includes:e})}function pn(e,n){return new Hs({check:"string_format",format:"starts_with",...S(n),prefix:e})}function mn(e,n){return new Ks({check:"string_format",format:"ends_with",...S(n),suffix:e})}function To(e,n,i){return new Ws({check:"property",property:e,schema:n,...S(i)})}function fn(e,n){return new Js({check:"properties",shape:e,...S(n)})}function gn(e,n){return new Xs({check:"mime_type",mime:e,...S(n)})}function Ce(e){return new qs({check:"overwrite",tx:e})}function hn(e){return Ce(n=>n.normalize(e))}function vn(){return Ce(e=>e.trim())}function yn(){return Ce(e=>e.toLowerCase())}function bn(){return Ce(e=>e.toUpperCase())}function _n(){return Ce(e=>Ca(e))}function Yc(e,n,i){return new e({type:"array",element:n,...S(i)})}function Vk(e,n,i){return new e({type:"union",options:n,...S(i)})}function Gk(e,n,i){return new e({type:"union",options:n,inclusive:!1,...S(i)})}function Fk(e,n,i,o){return new e({type:"union",options:i,discriminator:n,...S(o)})}function Bk(e,n,i){return new e({type:"intersection",left:n,right:i})}function Hk(e,n,i,o){let t=i instanceof U,r=t?o:i,a=t?i:null;return new e({type:"tuple",items:n,rest:a,...S(r)})}function Kk(e,n,i,o){return new e({type:"record",keyType:n,valueType:i,...S(o)})}function Wk(e,n,i,o){return new e({type:"map",keyType:n,valueType:i,...S(o)})}function Jk(e,n,i){return new e({type:"set",valueType:n,...S(i)})}function Xk(e,n,i){let o=Array.isArray(n)?Object.fromEntries(n.map(t=>[t,t])):n;return new e({type:"enum",entries:o,...S(i)})}function qk(e,n,i){return new e({type:"enum",entries:n,...S(i)})}function Yk(e,n,i){return new e({type:"literal",values:Array.isArray(n)?n:[n],...S(i)})}function Qc(e,n){return new e({type:"file",...S(n)})}function Qk(e,n){return new e({type:"transform",transform:n})}function ex(e,n){return new e({type:"optional",innerType:n})}function tx(e,n){return new e({type:"nullable",innerType:n})}function nx(e,n,i){return new e({type:"default",innerType:n,get defaultValue(){return typeof i=="function"?i():Gn(i)}})}function rx(e,n,i){return new e({type:"nonoptional",innerType:n,...S(i)})}function ix(e,n){return new e({type:"success",innerType:n})}function ox(e,n,i){return new e({type:"catch",innerType:n,catchValue:typeof i=="function"?i:Za(i)})}function ax(e,n,i){return new e({type:"pipe",in:n,out:i})}function sx(e,n){return new e({type:"readonly",innerType:n})}function ux(e,n,i){return new e({type:"template_literal",parts:n,...S(i)})}function cx(e,n){return new e({type:"lazy",getter:n})}function lx(e,n){return new e({type:"promise",innerType:n})}function el(e,n,i){let o=S(i);return o.abort??(o.abort=!0),new e({type:"custom",check:"custom",fn:n,...o})}function tl(e,n,i){return new e({type:"custom",check:"custom",fn:n,...S(i)})}function nl(e,n){let i=qf(o=>(o.addIssue=t=>{if(typeof t=="string")o.issues.push(qt(t,o.value,i._zod.def));else{let r=t;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),"input"in r||(r.input=o.value),r.inst??(r.inst=i),r.continue??(r.continue=!i._zod.def.abort),o.issues.push(qt(r))}},e(o.value,o)),n);return i}function qf(e,n){let i=new q({check:"custom",...S(n)});return i._zod.check=e,i}function rl(e){let n=new q({check:"describe"});return n._zod.onattach=[i=>{let o=ue.get(i)??{};ue.add(i,{...o,description:e})}],n._zod.check=()=>{},n}function il(e){let n=new q({check:"meta"});return n._zod.onattach=[i=>{let o=ue.get(i)??{};ue.add(i,{...o,...e})}],n._zod.check=()=>{},n}function ol(e,n){let i=S(n),o=i.truthy??["true","1","yes","on","y","enabled"],t=i.falsy??["false","0","no","off","n","disabled"];i.case!=="sensitive"&&(o=o.map(f=>typeof f=="string"?f.toLowerCase():f),t=t.map(f=>typeof f=="string"?f.toLowerCase():f));let r=new Set(o),a=new Set(t),s=e.Codec??pr,u=e.Boolean??lr,c=e.String??St,d=new c({type:"string",error:i.error}),p=new u({type:"boolean",error:i.error}),m=new s({type:"pipe",in:d,out:p,transform:((f,g)=>{let y=f;return i.case!=="sensitive"&&(y=y.toLowerCase()),r.has(y)?!0:a.has(y)?!1:(g.issues.push({code:"invalid_value",expected:"stringbool",values:[...r,...a],input:g.value,inst:m,continue:!1}),{})}),reverseTransform:((f,g)=>f===!0?o[0]||"true":t[0]||"false"),error:i.error});return m._zod.bag.truthy=o,m._zod.bag.falsy=t,m._zod.bag.case=i.case??"insensitive",m}function zt(e,n,i,o={}){let t=S(o),r={check:"string_format",type:"string",format:n,fn:typeof i=="function"?i:s=>i.test(s),...t};return i instanceof RegExp&&(r.pattern=i),new e(r)}function wr(e,...n){for(let i of n)for(let o of Reflect.ownKeys(i))Object.prototype.propertyIsEnumerable.call(i,o)&&se(e,o,i[o]);return e}function ct(e){let n=e?.target??"draft-2020-12";return n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??ue,target:n,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??"ref",reused:e?.reused??"inline",intersections:[],deferred:[],external:e?.external??void 0}}function re(e,n,i,o,t){let r=typeof n.unrepresentable=="function"?n.unrepresentable({zodSchema:e,path:o.path,message:t}):n.unrepresentable;if(r==="any")return!1;if(r===void 0||r==="throw")throw new Error(t);return Object.assign(i,r),!0}function J(e,n,i={path:[],schemaPath:[]}){var o;let t=e._zod.def,r=n.seen.get(e);if(r)return r.count++,i.schemaPath.includes(e)&&(r.cycle=i.path),r.schema;let a={schema:{},count:1,cycle:void 0,path:i.path};n.seen.set(e,a),n.sharedDefsExtractedFor=void 0,n.sharedEmitDoneFor=void 0;let s=e._zod.toJSONSchema?.();if(s)a.schema=s;else{let d={...i,schemaPath:[...i.schemaPath,e],path:i.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(n,a.schema,d);else{let m=a.schema,f=n.processors[t.type];if(!f)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${t.type}`);f(e,n,m,d)}let p=e._zod.parent;p&&(a.ref||(a.ref=p),J(p,n,d),n.seen.get(p).isParent=!0)}let u=n.metadataRegistry.get(e);return u&&wr(a.schema,u),n.io==="input"&&me(e)&&(delete a.schema.examples,delete a.schema.default),n.io==="input"&&"_prefault"in a.schema&&((o=a.schema).default??(o.default=a.schema._prefault)),delete a.schema._prefault,n.seen.get(e).schema}function Yf(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function lt(e,n){let i=e.seen.get(n);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");if(e.external&&e.sharedDefsExtractedFor===e.external)return;let o=new Map;for(let a of e.seen.entries()){let s=e.metadataRegistry.get(a[0])?.id;if(s){let u=o.get(s);if(u&&u!==a[0])throw new Error(`Duplicate schema id "${s}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);o.set(s,a[0])}}let t=a=>{let s=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let p=e.external.registry.get(a[0])?.id,m=e.external.uri??(g=>g);if(p)return{ref:m(p)};let f=a[1].defId??a[1].schema.id??`schema${e.counter++}`;return a[1].defId=f,{defId:f,ref:`${m("__shared")}#/${s}/${Yf(f)}`}}let u="#",c=`${u}/${s}/`;if(a[1]===i&&!a[1].schema.id)return{ref:u};let d=a[1].schema.id??`__schema${e.counter++}`;return{defId:d,ref:c+Yf(d)}},r=a=>{if(a[1].schema.$ref)return;let s=a[1],{ref:u,defId:c}=t(a);s.def={...s.schema},c&&(s.defId=c);let d=s.schema;for(let p in d)delete d[p];d.$ref=u};if(e.cycles==="throw")for(let a of e.seen.entries()){let s=a[1];if(s.cycle)throw new Error(`Cycle detected: #/${s.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let a of e.seen.entries()){let s=a[1];if(n===a[0]){r(a);continue}if(e.external){let c=e.external.registry.get(a[0])?.id;if(n!==a[0]&&c){r(a);continue}}if(e.metadataRegistry.get(a[0])?.id){r(a);continue}if(s.cycle){r(a);continue}s.count>1&&e.reused==="ref"&&r(a)}e.external&&(e.sharedDefsExtractedFor=e.external)}function tg(e){let n=e.anyOf;if(!Array.isArray(n)||n.length===0||e.type!==void 0)return;let i=[];for(let o of n){if(!o||typeof o!="object")return;tg(o);let t=Object.keys(o);if(t.length!==1||t[0]!=="type")return;let r=o.type;for(let a of Array.isArray(r)?r:[r]){if(typeof a!="string")return;i.includes(a)||i.push(a)}}delete e.anyOf,e.type=i.length===1?i[0]:i}var ng=new Set(["type","properties","required","additionalProperties"]),Qf=["oneOf","anyOf"];function eg(e){let n=e.additionalProperties;return n===void 0||n===!1||typeof n!="object"||n===null?null:Object.keys(n).length?n:null}function al(e){let n=[];for(let r of e){if(typeof r!="object"||r.type!=="object")return null;for(let a in r)if(!ng.has(a))return null;n.push(r)}let i={},o=new Set;for(let r of n){for(let a in r.properties){if(Object.prototype.hasOwnProperty.call(i,a))continue;let s=[];for(let c of n){let d=c.properties?.[a]??eg(c);d!=null&&(s.some(p=>JSON.stringify(p)===JSON.stringify(d))||s.push(d))}let u=s.length===1?s[0]:al(s)??{allOf:s};se(i,a,u)}for(let a of r.required??[])o.add(a)}let t={type:"object",properties:i};if(o.size&&(t.required=[...o]),n.every(r=>r.additionalProperties===!1))t.additionalProperties=!1;else{let r=[];for(let a of n){let s=eg(a);s&&!r.some(u=>JSON.stringify(u)===JSON.stringify(s))&&r.push(s)}r.length===1?t.additionalProperties=r[0]:r.length>1&&(t.additionalProperties={allOf:r})}return t}function dx(e){let n=e.allOf;if(!Array.isArray(n)||n.length<2)return;for(let t of ng)if(t in e)return;let i=n.filter(t=>Qf.some(r=>Array.isArray(t[r]))),o=null;if(!i.length)o=al(n);else{let t=i[0],r=Qf.find(u=>Array.isArray(t[u]));if(Object.keys(t).length!==1)return;let a=n.filter(u=>u!==t),s=t[r].map(u=>al([...a,u]));if(s.some(u=>!u))return;o={[r]:s}}o&&(delete e.allOf,wr(e,o))}function dt(e,n){let i=e.seen.get(n);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");let o=s=>{let u=e.seen.get(s);if(u.ref===null)return;let c=u.def??u.schema,d={...c},p=u.ref;if(u.ref=null,p){o(p);let f=e.seen.get(p),g=f.schema;if(g.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(g)):wr(c,g),wr(c,d),s._zod.parent===p)for(let x in c)x==="$ref"||x==="allOf"||x in d||delete c[x];if(g.$ref&&f.def)for(let x in c)x==="$ref"||x==="allOf"||x in f.def&&JSON.stringify(c[x])===JSON.stringify(f.def[x])&&delete c[x]}let m=s._zod.parent;if(m&&m!==p){o(m);let f=e.seen.get(m);if(f?.schema.$ref&&(c.$ref=f.schema.$ref,f.def))for(let g in c)g==="$ref"||g==="allOf"||g in f.def&&JSON.stringify(c[g])===JSON.stringify(f.def[g])&&delete c[g]}e.override({zodSchema:s,jsonSchema:c,path:u.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let s of[...e.seen.entries()].reverse())o(s[0]);if(e.target!=="openapi-3.0")for(let s of e.seen.entries())tg(s[1].def??s[1].schema);for(let s of e.deferred)s();if(e.intersections.length){let s=new Map;for(let u of e.seen.values())for(let c of[u.schema,u.def]){let d=c?.allOf;if(!Array.isArray(d))continue;let p=s.get(d);p?p.push(c):s.set(d,[c])}for(let u of e.intersections)for(let c of s.get(u)??[])dx(c)}}let t={};if(e.target==="draft-2020-12"?t.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?t.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?t.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let s=e.external.registry.get(n)?.id;if(!s)throw new Error("Schema is missing an `id` property");t.$id=e.external.uri(s)}wr(t,i.defId?i.schema:i.def??i.schema);let r=e.metadataRegistry.get(n)?.id;r!==void 0&&t.id===r&&delete t.id;let a=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let s of e.seen.entries()){let u=s[1];u.def&&u.defId&&(u.def.id===u.defId&&delete u.def.id,se(a,u.defId,u.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(a).length>0&&(e.target==="draft-2020-12"?t.$defs=a:t.definitions=a);try{let s=JSON.parse(JSON.stringify(t));return Object.defineProperty(s,"~standard",{value:{...n["~standard"],jsonSchema:{input:$n(n,"input",e.processors),output:$n(n,"output",e.processors)}},enumerable:!1,writable:!1}),s}catch{throw new Error("Error converting schema to JSON.")}}function me(e,n){let i=n??{seen:new Set};if(i.seen.has(e))return!1;i.seen.add(e);let o=e._zod.def;if(o.type==="transform")return!0;if(o.type==="array")return me(o.element,i);if(o.type==="set")return me(o.valueType,i);if(o.type==="lazy")return me(o.getter(),i);if(o.type==="promise"||o.type==="optional"||o.type==="nonoptional"||o.type==="nullable"||o.type==="readonly"||o.type==="default"||o.type==="prefault"||o.type==="catch")return me(o.innerType,i);if(o.type==="intersection")return me(o.left,i)||me(o.right,i);if(o.type==="record"||o.type==="map")return me(o.keyType,i)||me(o.valueType,i);if(o.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:me(o.in,i)||me(o.out,i);if(o.type==="object"){for(let t in o.shape)if(me(o.shape[t],i))return!0;return!1}if(o.type==="union"){for(let t of o.options)if(me(t,i))return!0;return!1}if(o.type==="tuple"){for(let t of o.items)if(me(t,i))return!0;return!!(o.rest&&me(o.rest,i))}return!1}var sl=(e,n={})=>i=>{let o=ct({...i,processors:n});return J(e,o),lt(o,e),dt(o,e)},$n=(e,n,i={})=>o=>{let{libraryOptions:t,target:r}=o??{},a=ct({...t??{},target:r,io:n,processors:i});return J(e,a),lt(a,e),dt(a,e)};var kn=(e,n,i)=>{(e[n]===void 0||i>e[n])&&(e[n]=i)},xn=(e,n,i)=>{(e[n]===void 0||i{kn(e,"minimum",n),xn(e,"maximum",n)},sg=(e,n)=>{e.multipleOf??(e.multipleOf=[]),e.multipleOf.includes(n)||e.multipleOf.push(n)},ug=(e,n)=>{e.patterns??(e.patterns=new Set),e.patterns.add(n)},cg=(e,n)=>{e.mime=e.mime?e.mime.filter(i=>n.includes(i)):[...n]},lg=(e,n)=>{e.format=n,n.includes("int")&&(e.isInt=!0)},ig=(e,n)=>kn(e,"minimum",n.minimum),og=(e,n)=>xn(e,"maximum",n.maximum),ag=e=>(n,i)=>{lg(n,i.format);let[o,t]=e[i.format];kn(n,"minimum",o),xn(n,"maximum",t)},px={greater_than:(e,n)=>kn(e,n.inclusive?"minimum":"exclusiveMinimum",n.value),less_than:(e,n)=>xn(e,n.inclusive?"maximum":"exclusiveMaximum",n.value),multiple_of:(e,n)=>sg(e,n.value),number_format:ag(Bn),bigint_format:ag(Hn),min_length:ig,max_length:og,length_equals:(e,n)=>rg(e,n.length),min_size:ig,max_size:og,size_equals:(e,n)=>rg(e,n.size),string_format:(e,n)=>{lg(e,n.format),n.pattern&&ug(e,n.pattern),(n.format==="base64"||n.format==="base64url")&&(e.contentEncoding=n.format),(n.local||n.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,n)=>cg(e,n.mime)};function ie(e){let n={},i=e._zod.def,o=e._zod.traits.has("$ZodCheck")?[e,...i.checks??[]]:i.checks??[];for(let r of o)px[r._zod.def.check]?.(n,r._zod.def);let t=e._zod.bag;t.minimum!==void 0&&kn(n,"minimum",t.minimum),t.exclusiveMinimum!==void 0&&kn(n,"exclusiveMinimum",t.exclusiveMinimum),t.maximum!==void 0&&xn(n,"maximum",t.maximum),t.exclusiveMaximum!==void 0&&xn(n,"exclusiveMaximum",t.exclusiveMaximum),t.multipleOf!==void 0&&sg(n,t.multipleOf),t.format!==void 0&&(n.format??(n.format=t.format),t.format.includes("int")&&(n.isInt=!0)),t.mime&&cg(n,t.mime);for(let r of t.patterns??[])ug(n,r);return n}var mx={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},fx=new Map([[Ni,ms],[cr,fs]]),dg=e=>fx.get(e)??e,ll=(e,n,i,o)=>{let t=i;t.type="string";let{minimum:r,maximum:a,format:s,patterns:u,contentEncoding:c,laxFormat:d}=ie(e);if(typeof r=="number"&&(t.minLength=r),typeof a=="number"&&(t.maxLength=a),s&&(t.format=mx[s]??s,t.format===""&&delete t.format,(s==="time"||d)&&delete t.format),c&&(t.contentEncoding=c),u&&u.size>0){let p=[...u].map(dg);p.length===1?t.pattern=p[0].source:p.length>1&&(t.allOf=[...p.map(m=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:m.source}))])}},dl=(e,n,i,o)=>{let t=i,{minimum:r,maximum:a,multipleOf:s,exclusiveMaximum:u,exclusiveMinimum:c,isInt:d}=ie(e);t.type=d?"integer":"number";let p=typeof c=="number"&&c>=(r??Number.NEGATIVE_INFINITY),m=typeof u=="number"&&u<=(a??Number.POSITIVE_INFINITY),f=n.target==="draft-04"||n.target==="openapi-3.0";if(p?f?(t.minimum=c,t.exclusiveMinimum=!0):t.exclusiveMinimum=c:typeof r=="number"&&(t.minimum=r),m?f?(t.maximum=u,t.exclusiveMaximum=!0):t.exclusiveMaximum=u:typeof a=="number"&&(t.maximum=a),s){let g=new Set;for(let I of s)Number.isFinite(I)&&I!==0?g.add(Math.abs(I)):re(e,n,t,o,`A multipleOf divisor of ${I} cannot be represented in JSON Schema`);let[y,...x]=g;y!==void 0&&(t.multipleOf=y),x.length&&(t.allOf=[...t.allOf??[],...x.map(I=>({multipleOf:I}))])}},pl=(e,n,i,o)=>{i.type="boolean"},ml=(e,n,i,o)=>{re(e,n,i,o,"BigInt cannot be represented in JSON Schema")},fl=(e,n,i,o)=>{re(e,n,i,o,"Symbols cannot be represented in JSON Schema")},gl=(e,n,i,o)=>{n.target==="openapi-3.0"?(i.type="string",i.nullable=!0,i.enum=[null]):i.type="null"},hl=(e,n,i,o)=>{re(e,n,i,o,"Undefined cannot be represented in JSON Schema")},vl=(e,n,i,o)=>{re(e,n,i,o,"Void cannot be represented in JSON Schema")},yl=(e,n,i,o)=>{i.not={}},bl=(e,n,i,o)=>{},_l=(e,n,i,o)=>{},$l=(e,n,i,o)=>{re(e,n,i,o,"Date cannot be represented in JSON Schema")},kl=(e,n,i,o)=>{let t=e._zod.def,r=Ht(t.entries);if(r.length===0){i.not={};return}r.every(a=>typeof a=="number")&&(i.type="number"),r.every(a=>typeof a=="string")&&(i.type="string"),i.enum=r},xl=(e,n,i,o)=>{let t=e._zod.def;if(t.values.length===0){i.not={};return}let r=[];for(let a of t.values)if(a===void 0){if(re(e,n,i,o,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof a=="bigint"){if(re(e,n,i,o,"BigInt literals cannot be represented in JSON Schema"))return;r.push(Number(a))}else r.push(a);if(r.length!==0)if(r.length===1){let a=r[0];i.type=a===null?"null":typeof a,n.target==="draft-04"||n.target==="openapi-3.0"?i.enum=[a]:i.const=a}else r.every(a=>typeof a=="number")&&(i.type="number"),r.every(a=>typeof a=="string")&&(i.type="string"),r.every(a=>typeof a=="boolean")&&(i.type="boolean"),r.every(a=>a===null)&&(i.type="null"),i.enum=r},wl=(e,n,i,o)=>{re(e,n,i,o,"NaN cannot be represented in JSON Schema")},Il=(e,n,i,o)=>{let t=i,r=e._zod.pattern;if(!r)throw new Error("Pattern not found in template literal");t.type="string",t.pattern=r.source},Sl=(e,n,i,o)=>{let t=i;t.type="string",t.format="binary",t.contentEncoding="binary";let{minimum:r,maximum:a,mime:s}=ie(e);r!==void 0&&(t.minLength=r),a!==void 0&&(t.maxLength=a),s&&(s.length===0?t.not={}:s.length===1?t.contentMediaType=s[0]:t.anyOf=s.map(u=>({contentMediaType:u})))},Pl=(e,n,i,o)=>{i.type="boolean"},Tl=(e,n,i,o)=>{re(e,n,i,o,"Custom types cannot be represented in JSON Schema")},El=(e,n,i,o)=>{re(e,n,i,o,"Function types cannot be represented in JSON Schema")},Al=(e,n,i,o)=>{re(e,n,i,o,"Transforms cannot be represented in JSON Schema")},Ol=(e,n,i,o)=>{re(e,n,i,o,"Map cannot be represented in JSON Schema")},Nl=(e,n,i,o)=>{re(e,n,i,o,"Set cannot be represented in JSON Schema")},zl=(e,n,i,o)=>{let t=i,r=e._zod.def,{minimum:a,maximum:s}=ie(e);typeof a=="number"&&(t.minItems=a),typeof s=="number"&&(t.maxItems=s),t.type="array",t.items=J(r.element,n,{...o,path:[...o.path,"items"]})};function Ir(e){let n=e._zod.def;return n.type==="pipe"&&n.in._zod.traits.has("$ZodTransform")?Ir(n.out):n.type==="catch"?Ir(n.innerType):e._zod.optin}var Dl=(e,n,i,o)=>{let t=i,r=e._zod.def,a=r.shape;if(Object.getOwnPropertySymbols(a).length&&re(e,n,t,o,"Symbol keys cannot be represented in JSON Schema"))return;t.type="object",t.properties={};for(let c in a)se(t.properties,c,J(a[c],n,{...o,path:[...o.path,"properties",c]}));let u=[];for(let c of Object.keys(a)){let d=r.shape[c];(n.io==="input"?Ir(d)===void 0:d._zod.optout===void 0)&&u.push(c)}u.length>0&&(t.required=u),r.catchall?._zod.def.type==="never"?t.additionalProperties=!1:r.catchall?r.catchall&&(t.additionalProperties=J(r.catchall,n,{...o,path:[...o.path,"additionalProperties"]})):n.io==="output"&&(t.additionalProperties=!1)},Ao=(e,n,i,o)=>{let t=e._zod.def,r=t.inclusive===!1,a=t.options.map((s,u)=>J(s,n,{...o,path:[...o.path,r?"oneOf":"anyOf",u]}));r?i.oneOf=a:i.anyOf=a},Cl=(e,n,i,o)=>{let t=e._zod.def,r=J(t.left,n,{...o,path:[...o.path,"allOf",0]}),a=J(t.right,n,{...o,path:[...o.path,"allOf",1]}),s=c=>"allOf"in c&&Object.keys(c).length===1,u=[...s(r)?r.allOf:[r],...s(a)?a.allOf:[a]];i.allOf=u,n.intersections.push(u)},jl=(e,n,i,o)=>{let t=i,r=e._zod.def;t.type="array";let a=n.target==="draft-2020-12"?"prefixItems":"items",s=n.target==="draft-2020-12"||n.target==="openapi-3.0"?"items":"additionalItems",u=r.items.map((y,x)=>J(y,n,{...o,path:[...o.path,a,x]})),c=r.rest?J(r.rest,n,{...o,path:[...o.path,s,...n.target==="openapi-3.0"?[r.items.length]:[]]}):null,d=r.items.length;for(;d>0;){let y=r.items[d-1];if(!(n.io==="input"?Ir(y)!==void 0:y._zod.optout==="optional"))break;d--}let p=r.items.length,m=!r.rest;n.target==="draft-2020-12"?(t.prefixItems=u,m?t.items=!1:c&&(t.items=c),d>0&&(t.minItems=d),m&&(t.maxItems=p)):n.target==="openapi-3.0"?(t.items={anyOf:u},c&&t.items.anyOf.push(c),d>0&&(t.minItems=d),m&&(t.maxItems=p)):(t.items=u,m?t.additionalItems=!1:c&&(t.additionalItems=c),d>0&&(t.minItems=d),m&&(t.maxItems=p));let{minimum:f,maximum:g}=ie(e);typeof f=="number"&&(t.minItems=f),typeof g=="number"&&(t.maxItems=g)};function ul(e,n,i){if(n.$ref){if(i.has(n))return n;i.add(n);let g=e.get(n)?.def;if(!g)return n;let y=ul(e,g,i);return y===g?n:y}for(let g of["anyOf","oneOf"]){let y=n[g];if(!Array.isArray(y))continue;let x=y.map(I=>ul(e,I,i));x.some((I,b)=>I!==y[b])&&(n={...n,[g]:x})}let o=Array.isArray(n.type)?n.type:[n.type],t=!o.includes("string")&&o.some(g=>g==="number"||g==="integer"),r=n.enum??(n.const!==void 0?[n.const]:void 0);if(!t&&!r?.some(g=>typeof g=="number"))return n;let{minimum:a,maximum:s,exclusiveMinimum:u,exclusiveMaximum:c,multipleOf:d,format:p,id:m,...f}=n;return f.enum?f.enum=f.enum.map(g=>typeof g=="number"?String(g):g):typeof f.const=="number"&&(f.const=String(f.const)),t&&(f.type="string",r||(f.pattern=(o.includes("number")?qe:nr).source)),f}var cl=new WeakMap;function gx(e){let n=new Map;for(let o of e.seen.values())o.def&&!n.has(o.schema)&&n.set(o.schema,o);let i=new Map;for(let o of cl.get(e)??[]){let t=e.seen.get(o),r=(t?.def??t?.schema)?.propertyNames;if(!r||r===!0||i.has(r))continue;let a=ul(n,r,new Set);a!==r&&i.set(r,a)}if(i.size)for(let o of e.seen.values())for(let t of[o.schema,o.def]){let r=t&&i.get(t.propertyNames);r&&(t.propertyNames=r)}}var Ll=(e,n,i,o)=>{let t=i,r=e._zod.def;t.type="object";let a=r.keyType,s=ie(a).patterns;if(r.mode==="loose"&&s&&s.size>0){let d=J(r.valueType,n,{...o,path:[...o.path,"patternProperties","*"]});t.patternProperties={};for(let p of s)se(t.patternProperties,dg(p).source,d)}else{if(n.target==="draft-07"||n.target==="draft-2020-12"){t.propertyNames=J(r.keyType,n,{...o,path:[...o.path,"propertyNames"]});let d=cl.get(n);d||(d=[],cl.set(n,d),n.deferred.push(()=>gx(n))),d.push(e)}t.additionalProperties=J(r.valueType,n,{...o,path:[...o.path,"additionalProperties"]})}let u=a._zod.values,c=n.io==="input"&&Ir(r.valueType)!==void 0;if(u&&!r.partial&&!c){let d=[...u].filter(p=>typeof p=="string"||typeof p=="number");d.length>0&&(t.required=d.map(String))}},Ul=(e,n,i,o)=>{let t=e._zod.def,r=J(t.innerType,n,o),a=n.seen.get(e);n.target==="openapi-3.0"?(a.ref=t.innerType,i.nullable=!0):i.anyOf=[r,{type:"null"}]},Rl=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType},Ml=Symbol();function pg(e,n,i,o,t){let r=!1,a=JSON.stringify(e,(s,u)=>typeof u!="bigint"?u:(r=!0,null));return r?(re(n,i,o,t,"BigInt defaults cannot be represented in JSON Schema"),Ml):JSON.parse(a)}var Zl=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType;let a=pg(t.defaultValue,e,n,i,o);a!==Ml&&(i.default=a)},Vl=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);if(r.ref=t.innerType,n.io!=="input")return;let a=pg(t.defaultValue,e,n,i,o);a!==Ml&&(i._prefault=a)},Gl=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType;let a;try{a=t.catchValue(void 0)}catch{re(e,n,i,o,"Dynamic catch values are not supported in JSON Schema");return}i.default=a},Fl=(e,n,i,o)=>{let t=e._zod.def,r=t.in._zod.traits.has("$ZodTransform"),a=n.io==="input"?r?t.out:t.in:t.out;J(a,n,o);let s=n.seen.get(e);s.ref=a},Bl=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType,i.readOnly=!0},Hl=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType},Oo=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType},Kl=(e,n,i,o)=>{let t=e._zod.innerType;J(t,n,o);let r=n.seen.get(e);r.ref=t},Eo={string:ll,number:dl,boolean:pl,bigint:ml,symbol:fl,null:gl,undefined:hl,void:vl,never:yl,any:bl,unknown:_l,date:$l,enum:kl,literal:xl,nan:wl,template_literal:Il,file:Sl,success:Pl,custom:Tl,function:El,transform:Al,map:Ol,set:Nl,array:zl,object:Dl,union:Ao,intersection:Cl,tuple:jl,record:Ll,nullable:Ul,nonoptional:Rl,default:Zl,prefault:Vl,catch:Gl,pipe:Fl,readonly:Bl,promise:Hl,optional:Oo,lazy:Kl};function No(e,n){if("_idmap"in e){let o=e,t=ct({...n,processors:Eo}),r={};for(let u of o._idmap.entries()){let[c,d]=u;J(d,t)}let a={},s={registry:o,uri:n?.uri,defs:r};t.external=s;for(let u of o._idmap.entries()){let[c,d]=u;lt(t,d),se(a,c,dt(t,d))}if(Object.keys(r).length>0){let u=t.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[u]:r}}return{schemas:a}}let i=ct({...n,processors:Eo});return J(e,i),lt(i,e),dt(i,e)}var zo=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(n){this.ctx.counter=n}get seen(){return this.ctx.seen}constructor(n){let i=n?.target??"draft-2020-12";i==="draft-4"&&(i="draft-04"),i==="draft-7"&&(i="draft-07"),this.ctx=ct({processors:Eo,target:i,...n?.metadata&&{metadata:n.metadata},...n?.unrepresentable&&{unrepresentable:n.unrepresentable},...n?.override&&{override:n.override},...n?.io&&{io:n.io}})}process(n,i={path:[],schemaPath:[]}){return J(n,this.ctx,i)}emit(n,i){i&&(i.cycles&&(this.ctx.cycles=i.cycles),i.reused&&(this.ctx.reused=i.reused),i.external&&(this.ctx.external=i.external)),this.ctx.sharedDefsExtractedFor=void 0,this.ctx.sharedEmitDoneFor=void 0,lt(this.ctx,n);let o=dt(this.ctx,n),{"~standard":t,...r}=o;return r}};var mg={};var On={};We(On,{ZodAny:()=>gd,ZodArray:()=>bd,ZodBase64:()=>Yo,ZodBase64URL:()=>Qo,ZodBigInt:()=>En,ZodBigIntFormat:()=>na,ZodBoolean:()=>Tn,ZodCIDRv4:()=>Xo,ZodCIDRv6:()=>qo,ZodCUID:()=>Go,ZodCUID2:()=>Fo,ZodCatch:()=>Md,ZodCodec:()=>Cr,ZodCreditCard:()=>sd,ZodCustom:()=>jr,ZodCustomStringFormat:()=>Lt,ZodDate:()=>Er,ZodDefault:()=>Dd,ZodDiscriminatedUnion:()=>$d,ZodE164:()=>ea,ZodEmail:()=>Ro,ZodEmoji:()=>Zo,ZodEnum:()=>In,ZodExactOptional:()=>aa,ZodFile:()=>Ad,ZodFunction:()=>Xd,ZodGUID:()=>Mo,ZodIBAN:()=>ud,ZodIPv4:()=>Wo,ZodIPv6:()=>Jo,ZodISODate:()=>mt,ZodISODateTime:()=>pt,ZodISODuration:()=>gt,ZodISOTime:()=>ft,ZodInstanceOf:()=>Qd,ZodIntersection:()=>kd,ZodJWT:()=>ta,ZodKSUID:()=>Ko,ZodLazy:()=>Kd,ZodLiteral:()=>Ed,ZodMAC:()=>ad,ZodMap:()=>Pd,ZodNaN:()=>Vd,ZodNanoID:()=>Vo,ZodNever:()=>vd,ZodNonOptional:()=>sa,ZodNull:()=>md,ZodNullable:()=>zd,ZodNumber:()=>Pn,ZodNumberFormat:()=>Ut,ZodObject:()=>Or,ZodOptional:()=>zr,ZodPipe:()=>Dr,ZodPrefault:()=>jd,ZodPreprocess:()=>Gd,ZodPromise:()=>Jd,ZodReadonly:()=>Fd,ZodRecord:()=>wn,ZodSet:()=>Td,ZodString:()=>Sn,ZodStringFormat:()=>X,ZodSuccess:()=>Rd,ZodSymbol:()=>dd,ZodTemplateLiteral:()=>Hd,ZodTransform:()=>Od,ZodTuple:()=>wd,ZodType:()=>M,ZodULID:()=>Bo,ZodURL:()=>Tr,ZodUUID:()=>Fe,ZodUndefined:()=>pd,ZodUnion:()=>Nr,ZodUnknown:()=>hd,ZodVoid:()=>yd,ZodXID:()=>Ho,ZodXor:()=>_d,_ZodString:()=>Uo,_default:()=>Cd,_function:()=>Ih,any:()=>nh,array:()=>Ar,base64:()=>jg,base64url:()=>Lg,bigint:()=>qg,boolean:()=>ld,catch:()=>Zd,check:()=>Sh,cidrv4:()=>Dg,cidrv6:()=>Cg,codec:()=>$h,creditCard:()=>Rg,cuid:()=>Sg,cuid2:()=>Pg,currencyCode:()=>Bg,custom:()=>Ph,date:()=>ih,describe:()=>Th,discriminatedUnion:()=>lh,e164:()=>Ug,email:()=>hg,emoji:()=>wg,enum:()=>ia,exactOptional:()=>Nd,file:()=>vh,float32:()=>Kg,float64:()=>Wg,function:()=>Ih,guid:()=>vg,hash:()=>Hg,hex:()=>Fg,hostname:()=>Gg,httpUrl:()=>xg,iban:()=>Mg,instanceof:()=>Ah,int:()=>jo,int32:()=>Jg,int64:()=>Yg,intersection:()=>xd,invertCodec:()=>kh,ipv4:()=>Og,ipv6:()=>zg,json:()=>Nh,jwt:()=>Zg,keyof:()=>oh,ksuid:()=>Ag,lazy:()=>Wd,literal:()=>hh,looseObject:()=>uh,looseRecord:()=>ph,mac:()=>Ng,map:()=>mh,meta:()=>Eh,nan:()=>_h,nanoid:()=>Ig,nativeEnum:()=>gh,never:()=>ra,nonoptional:()=>Ud,null:()=>fd,nullable:()=>Pr,nullish:()=>yh,number:()=>cd,object:()=>ah,optional:()=>Ct,partialRecord:()=>dh,pipe:()=>Lo,prefault:()=>Ld,preprocess:()=>zh,promise:()=>wh,readonly:()=>Bd,record:()=>Sd,refine:()=>qd,set:()=>fh,strictObject:()=>sh,string:()=>Sr,stringFormat:()=>Vg,stringbool:()=>Oh,success:()=>bh,superRefine:()=>Yd,symbol:()=>eh,templateLiteral:()=>xh,transform:()=>oa,tuple:()=>Id,uint32:()=>Xg,uint64:()=>Qg,ulid:()=>Tg,undefined:()=>th,union:()=>An,unknown:()=>Dt,url:()=>kg,uuid:()=>yg,uuidv4:()=>bg,uuidv6:()=>_g,uuidv7:()=>$g,void:()=>rh,xid:()=>Eg,xor:()=>ch});var Do={};We(Do,{endsWith:()=>mn,gt:()=>Ve,gte:()=>Ie,includes:()=>dn,length:()=>Nt,lowercase:()=>cn,lt:()=>Ze,lte:()=>we,maxLength:()=>Ot,maxSize:()=>ut,mime:()=>gn,minLength:()=>Ye,minSize:()=>Ge,multipleOf:()=>st,negative:()=>Io,nonnegative:()=>Po,nonpositive:()=>So,normalize:()=>hn,overwrite:()=>Ce,positive:()=>wo,properties:()=>fn,property:()=>To,regex:()=>un,size:()=>At,slugify:()=>_n,startsWith:()=>pn,toLowerCase:()=>yn,toUpperCase:()=>bn,trim:()=>vn,uppercase:()=>ln});var fg=new WeakSet([Object.prototype,Error.prototype]);function Co(e,n,i){Object.defineProperty(e,n,{configurable:!0,enumerable:!1,get(){let o=i(this);return Object.defineProperty(this,n,{value:o,configurable:!0,writable:!0}),o},set(o){Object.defineProperty(this,n,{value:o,configurable:!0,writable:!0})}})}var gg=(e,n)=>{Ka.init(e,n),e.name="ZodError";let i=Object.getPrototypeOf(e);fg.has(i)||(fg.add(i),Co(i,"format",o=>t=>Yn(o,t)),Co(i,"flatten",o=>t=>qn(o,t)),Co(i,"addIssue",o=>t=>{o.issues.push(t),o.message=JSON.stringify(o.issues,Kt,2)}),Co(i,"addIssues",o=>t=>{o.issues.push(...t),o.message=JSON.stringify(o.issues,Kt,2)}),Object.defineProperty(i,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},vx=h("ZodError",gg),xe=h("ZodError",gg,void 0,{Parent:Error});var Wl=Yt(xe),Jl=Qt(xe),Xl=en(xe),ql=tn(xe),Yl=ci(xe),Ql=li(xe),ed=di(xe),td=pi(xe),nd=mi(xe),rd=fi(xe),id=gi(xe),od=hi(xe);function bx(){oe.localeError||ee(Wi())}function jt(){oe.memoizer||ee({memoizer:hr()})}var M=h("ZodType",(e,n)=>(bx(),U.init(e,n),e.def=n,e.type=n.type,e),{check(...e){let n=this.def;return this.clone(_.mergeDefs(n,{checks:[...n.checks??[],...e.map(i=>typeof i=="function"?{_zod:{check:i,def:{check:"custom"},onattach:[]}}:i)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,n){return K(this,e,n)},brand(){return this},register(e,n){return e.add(this,n),this},refine(e,n){return this.check(qd(e,n))},superRefine(e,n){return this.check(Yd(e,n))},overwrite(e){return this.check(Ce(e))},optional(){return Ct(this)},exactOptional(){return Nd(this)},nullable(){return Pr(this)},nullish(){return Ct(Pr(this))},nonoptional(e){return Ud(this,e)},array(){return Ar(this)},or(e){return An([this,e])},and(e){return xd(this,e)},transform(e){return Lo(this,oa(e))},default(e){return Cd(this,e)},prefault(e){return Ld(this,e)},catch(e){return Zd(this,e)},pipe(e){return Lo(this,e)},readonly(){return Bd(this)},describe(e){let n=this.clone();return ue.add(n,{description:e}),n},meta(...e){if(e.length===0)return ue.get(this);let n=this.clone();return ue.add(n,e[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...n){return n.length===0?e(this):e(this,...n)},get"~standard"(){return _.hide(this,"~standard",{...Pi(this),jsonSchema:{input:$n(this,"input"),output:$n(this,"output")}})},set"~standard"(e){_.own(this,"~standard",e)},parse:function e(n,i){return Wl(this,n,i,{callee:e})},parseAsync:async function e(n,i){return await Jl(this,n,i,{callee:e})},safeParse(e,n){return Xl(this,e,n)},async safeParseAsync(e,n){return ql(this,e,n)},get spa(){return this?.safeParseAsync},set spa(e){_.own(this,"spa",e)},validate(e,n){return Qn(this,e,n)},validateAsync(e,n){return er(this,e,n)},encode:function e(n,i){return Yl(this,n,i,{callee:e})},decode:function e(n,i){return Ql(this,n,i,{callee:e})},encodeAsync:async function e(n,i){return await ed(this,n,i,{callee:e})},decodeAsync:async function e(n,i){return await td(this,n,i,{callee:e})},safeEncode(e,n){return nd(this,e,n)},safeDecode(e,n){return rd(this,e,n)},async safeEncodeAsync(e,n){return id(this,e,n)},async safeDecodeAsync(e,n){return od(this,e,n)},toJSONSchema(e){return sl(this,{})(e)},get description(){return ue.get(this)?.description},get _def(){return this._zod.def}}),Uo=h("_ZodString",(e,n)=>{St.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>ll(e,i,o,t)},_.derived({format:e=>ie(e).format??null,minLength:e=>ie(e).minimum??null,maxLength:e=>ie(e).maximum??null},{regex(...e){return this.check(un(...e))},includes(...e){return this.check(dn(...e))},startsWith(...e){return this.check(pn(...e))},endsWith(...e){return this.check(mn(...e))},min(...e){return this.check(Ye(...e))},max(...e){return this.check(Ot(...e))},length(...e){return this.check(Nt(...e))},nonempty(...e){return this.check(Ye(1,...e))},lowercase(e){return this.check(cn(e))},uppercase(e){return this.check(ln(e))},trim(){return this.check(vn())},normalize(...e){return this.check(hn(...e))},toLowerCase(){return this.check(yn())},toUpperCase(){return this.check(bn())},slugify(){return this.check(_n())}})),Sn=h("ZodString",(e,n)=>{St.init(e,n),Uo.init(e,n)},{email(e){return this.check(no(Ro,e))},url(e){return this.check(br(Tr,e))},jwt(e){return this.check(xo(ta,e))},emoji(e){return this.check(uo(Zo,e))},guid(e){return this.check(ro(Mo,e))},uuid(e){return this.check(io(Fe,e))},uuidv4(e){return this.check(oo(Fe,e))},uuidv6(e){return this.check(ao(Fe,e))},uuidv7(e){return this.check(so(Fe,e))},nanoid(e){return this.check(co(Vo,e))},cuid(e){return this.check(lo(Go,e))},cuid2(e){return this.check(po(Fo,e))},ulid(e){return this.check(mo(Bo,e))},base64(e){return this.check(_o(Yo,e))},base64url(e){return this.check($o(Qo,e))},xid(e){return this.check(fo(Ho,e))},ksuid(e){return this.check(go(Ko,e))},ipv4(e){return this.check(ho(Wo,e))},ipv6(e){return this.check(vo(Jo,e))},cidrv4(e){return this.check(yo(Xo,e))},cidrv6(e){return this.check(bo(qo,e))},e164(e){return this.check(ko(ea,e))},datetime(e){return this.check(_r(pt,e))},date(e){return this.check($r(mt,e))},time(e){return this.check(kr(ft,e))},duration(e){return this.check(xr(gt,e))}});function Sr(e){return xc(Sn,e)}var X=h("ZodStringFormat",(e,n)=>{W.init(e,n),Uo.init(e,n)}),pt=h("ZodISODateTime",(e,n)=>{mu.init(e,n),X.init(e,n)}),mt=h("ZodISODate",(e,n)=>{fu.init(e,n),X.init(e,n)}),ft=h("ZodISOTime",(e,n)=>{gu.init(e,n),X.init(e,n)}),gt=h("ZodISODuration",(e,n)=>{hu.init(e,n),X.init(e,n)}),Ro=h("ZodEmail",(e,n)=>{nu.init(e,n),X.init(e,n)});function hg(e){return no(Ro,e)}var Mo=h("ZodGUID",(e,n)=>{eu.init(e,n),X.init(e,n)});function vg(e){return ro(Mo,e)}var Fe=h("ZodUUID",(e,n)=>{tu.init(e,n),X.init(e,n)});function yg(e){return io(Fe,e)}function bg(e){return oo(Fe,e)}function _g(e){return ao(Fe,e)}function $g(e){return so(Fe,e)}var Tr=h("ZodURL",(e,n)=>{ou.init(e,n),X.init(e,n)});function kg(e){return br(Tr,e)}function xg(e){return br(Tr,{protocol:tr,hostname:hs,..._.normalizeParams(e)})}var Zo=h("ZodEmoji",(e,n)=>{au.init(e,n),X.init(e,n)});function wg(e){return uo(Zo,e)}var Vo=h("ZodNanoID",(e,n)=>{su.init(e,n),X.init(e,n)});function Ig(e){return co(Vo,e)}var Go=h("ZodCUID",(e,n)=>{uu.init(e,n),X.init(e,n)});function Sg(e){return lo(Go,e)}var Fo=h("ZodCUID2",(e,n)=>{cu.init(e,n),X.init(e,n)});function Pg(e){return po(Fo,e)}var Bo=h("ZodULID",(e,n)=>{lu.init(e,n),X.init(e,n)});function Tg(e){return mo(Bo,e)}var Ho=h("ZodXID",(e,n)=>{du.init(e,n),X.init(e,n)});function Eg(e){return fo(Ho,e)}var Ko=h("ZodKSUID",(e,n)=>{pu.init(e,n),X.init(e,n)});function Ag(e){return go(Ko,e)}var Wo=h("ZodIPv4",(e,n)=>{vu.init(e,n),X.init(e,n)});function Og(e){return ho(Wo,e)}var ad=h("ZodMAC",(e,n)=>{bu.init(e,n),X.init(e,n)});function Ng(e){return Ic(ad,e)}var Jo=h("ZodIPv6",(e,n)=>{yu.init(e,n),X.init(e,n)});function zg(e){return vo(Jo,e)}var Xo=h("ZodCIDRv4",(e,n)=>{_u.init(e,n),X.init(e,n)});function Dg(e){return yo(Xo,e)}var qo=h("ZodCIDRv6",(e,n)=>{$u.init(e,n),X.init(e,n)});function Cg(e){return bo(qo,e)}var Yo=h("ZodBase64",(e,n)=>{ku.init(e,n),X.init(e,n)});function jg(e){return _o(Yo,e)}var Qo=h("ZodBase64URL",(e,n)=>{xu.init(e,n),X.init(e,n)});function Lg(e){return $o(Qo,e)}var ea=h("ZodE164",(e,n)=>{wu.init(e,n),X.init(e,n)});function Ug(e){return ko(ea,e)}var sd=h("ZodCreditCard",(e,n)=>{Iu.init(e,n),X.init(e,n)});function Rg(e){return Sc(sd,e)}var ud=h("ZodIBAN",(e,n)=>{Su.init(e,n),X.init(e,n)});function Mg(e){return Pc(ud,e)}var ta=h("ZodJWT",(e,n)=>{Pu.init(e,n),X.init(e,n)});function Zg(e){return xo(ta,e)}var Lt=h("ZodCustomStringFormat",(e,n)=>{Tu.init(e,n),X.init(e,n)});function Vg(e,n,i={}){return zt(Lt,e,n,i)}function Gg(e){return zt(Lt,"hostname",gs,e)}function Fg(e){return zt(Lt,"hex",As,e)}function Bg(e){return zt(Lt,"currency_code",ys,e)}function Hg(e,n){let i=n?.enc??"hex",o=`${e}_${i}`,t=Te[o];if(!t)throw new Error(`Unrecognized hash format: ${o}`);return zt(Lt,o,t,n)}var Pn=h("ZodNumber",(e,n)=>{Li.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>dl(e,i,o,t),e.isFinite=!0},_.derived({minValue:e=>{let{minimum:n,exclusiveMinimum:i}=ie(e);return Math.max(n??Number.NEGATIVE_INFINITY,i??Number.NEGATIVE_INFINITY)},maxValue:e=>{let{maximum:n,exclusiveMaximum:i}=ie(e);return Math.min(n??Number.POSITIVE_INFINITY,i??Number.POSITIVE_INFINITY)},isInt:e=>{let{isInt:n,multipleOf:i}=ie(e);return!!n||!!i?.some(Number.isSafeInteger)},format:e=>ie(e).format??null},{gt(e,n){return this.check(Ve(e,n))},gte(e,n){return this.check(Ie(e,n))},min(e,n){return this.check(Ie(e,n))},lt(e,n){return this.check(Ze(e,n))},lte(e,n){return this.check(we(e,n))},max(e,n){return this.check(we(e,n))},int(e){return this.check(jo(e))},safe(e){return this.check(jo(e))},positive(e){return this.check(Ve(0,e))},nonnegative(e){return this.check(Ie(0,e))},negative(e){return this.check(Ze(0,e))},nonpositive(e){return this.check(we(0,e))},multipleOf(e,n){return this.check(st(e,n))},step(e,n){return this.check(st(e,n))},finite(){return this}}));function cd(e){return Ec(Pn,e)}var Ut=h("ZodNumberFormat",(e,n)=>{Eu.init(e,n),Pn.init(e,n)});function jo(e){return Oc(Ut,e)}function Kg(e){return Nc(Ut,e)}function Wg(e){return zc(Ut,e)}function Jg(e){return Dc(Ut,e)}function Xg(e){return Cc(Ut,e)}var Tn=h("ZodBoolean",(e,n)=>{lr.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>pl(e,i,o,t)});function ld(e){return jc(Tn,e)}var En=h("ZodBigInt",(e,n)=>{Ui.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>ml(e,i,o,t)},_.derived({minValue:e=>ie(e).minimum??null,maxValue:e=>ie(e).maximum??null,format:e=>ie(e).format??null},{gte(e,n){return this.check(Ie(e,n))},min(e,n){return this.check(Ie(e,n))},gt(e,n){return this.check(Ve(e,n))},lt(e,n){return this.check(Ze(e,n))},lte(e,n){return this.check(we(e,n))},max(e,n){return this.check(we(e,n))},positive(e){return this.check(Ve(BigInt(0),e))},negative(e){return this.check(Ze(BigInt(0),e))},nonpositive(e){return this.check(we(BigInt(0),e))},nonnegative(e){return this.check(Ie(BigInt(0),e))},multipleOf(e,n){return this.check(st(e,n))}}));function qg(e){return Uc(En,e)}var na=h("ZodBigIntFormat",(e,n)=>{Au.init(e,n),En.init(e,n)});function Yg(e){return Mc(na,e)}function Qg(e){return Zc(na,e)}var dd=h("ZodSymbol",(e,n)=>{Ou.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>fl(e,i,o,t)});function eh(e){return Vc(dd,e)}var pd=h("ZodUndefined",(e,n)=>{Nu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>hl(e,i,o,t)});function th(e){return Gc(pd,e)}var md=h("ZodNull",(e,n)=>{zu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>gl(e,i,o,t)});function fd(e){return Fc(md,e)}var gd=h("ZodAny",(e,n)=>{Du.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>bl(e,i,o,t)});function nh(){return Bc(gd)}var hd=h("ZodUnknown",(e,n)=>{Cu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>_l(e,i,o,t)});function Dt(){return Hc(hd)}var vd=h("ZodNever",(e,n)=>{ju.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>yl(e,i,o,t)});function ra(e){return Kc(vd,e)}var yd=h("ZodVoid",(e,n)=>{Lu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>vl(e,i,o,t)});function rh(e){return Wc(yd,e)}var Er=h("ZodDate",(e,n)=>{Uu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>$l(e,i,o,t),e.min=(i,o)=>e.check(Ie(i,o)),e.max=(i,o)=>e.check(we(i,o))},_.derived({minDate:e=>{let{minimum:n}=ie(e);return n?new Date(n):null},maxDate:e=>{let{maximum:n}=ie(e);return n?new Date(n):null}},{}));function ih(e){return Jc(Er,e)}var bd=h("ZodArray",(e,n)=>{jt(),Mu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>zl(e,i,o,t),e.element=n.element},{min(e,n){return this.check(Ye(e,n))},nonempty(e){return this.check(Ye(1,e))},max(e,n){return this.check(Ot(e,n))},length(e,n){return this.check(Nt(e,n))},unwrap(){return this.element}});function Ar(e,n){return Yc(bd,e,n)}function oh(e){let n=e._zod.def.shape;return ia(Object.keys(n))}var Or=h("ZodObject",(e,n)=>{jt(),Zu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Dl(e,i,o,t),_.installLazyProp(e,"shape",i=>i._zod.def.shape,!1)},{keyof(){return ia(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(_.mergeDefs(this._zod.def,{catchall:e}))},passthrough(){return this.clone(_.mergeDefs(this._zod.def,{catchall:Dt()}))},loose(){return this.clone(_.mergeDefs(this._zod.def,{catchall:Dt()}))},strict(){return this.clone(_.mergeDefs(this._zod.def,{catchall:ra()}))},strip(){return this.clone(_.mergeDefs(this._zod.def,{catchall:void 0}))},extend(e){return _.extend(this,e)},safeExtend(e){return _.safeExtend(this,e)},merge(e){return _.merge(this,e)},pick(e){return _.pick(this,e)},omit(e){return _.omit(this,e)},partial(...e){return _.partial(zr,this,e[0])},exactPartial(...e){return _.partial(aa,this,e[0],"exactPartial")},required(...e){return _.required(sa,this,e[0])}});function ah(e,n){let i={type:"object",shape:e??{},..._.normalizeParams(n)};return new Or(i)}function sh(e,n){return new Or({type:"object",shape:e,catchall:ra(),..._.normalizeParams(n)})}function uh(e,n){return new Or({type:"object",shape:e,catchall:Dt(),..._.normalizeParams(n)})}var Nr=h("ZodUnion",(e,n)=>{dr.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Ao(e,i,o,t),e.options=n.options});function An(e,n){return new Nr({type:"union",options:e,..._.normalizeParams(n)})}var _d=h("ZodXor",(e,n)=>{Nr.init(e,n),Vu.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Ao(e,i,o,t),e.options=n.options});function ch(e,n){return new _d({type:"union",options:e,inclusive:!1,..._.normalizeParams(n)})}var $d=h("ZodDiscriminatedUnion",(e,n)=>{Nr.init(e,n),Fu.init(e,n)});function lh(e,n,i){return new $d({type:"union",options:n,discriminator:e,..._.normalizeParams(i)})}var kd=h("ZodIntersection",(e,n)=>{Bu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Cl(e,i,o,t)});function xd(e,n){return new kd({type:"intersection",left:e,right:n})}var wd=h("ZodTuple",(e,n)=>{jt(),Ri.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>jl(e,i,o,t)},{rest(e){return this.clone({...this._zod.def,rest:e})},partial(){let e=this._zod.def;if(e.checks?.length)throw new Error(".partial() cannot be used on tuple schemas containing refinements");return this.clone({...e,items:e.items.map(n=>new zr({type:"optional",innerType:n}))})}});function Id(e,n,i){let o=n instanceof U,t=o?i:n,r=o?n:null;return new wd({type:"tuple",items:e,rest:r,..._.normalizeParams(t)})}var wn=h("ZodRecord",(e,n)=>{jt(),Hu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Ll(e,i,o,t),e.keyType=n.keyType,e.valueType=n.valueType});function Sd(e,n,i){return!n||!n._zod?new wn({type:"record",keyType:Sr(),valueType:e,..._.normalizeParams(n)}):new wn({type:"record",keyType:e,valueType:n,..._.normalizeParams(i)})}function dh(e,n,i){return new wn({type:"record",keyType:e,valueType:n,..._.normalizeParams(i),partial:!0})}function ph(e,n,i){return new wn({type:"record",keyType:e,valueType:n,mode:"loose",..._.normalizeParams(i)})}var Pd=h("ZodMap",(e,n)=>{jt(),Ku.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Ol(e,i,o,t),e.keyType=n.keyType,e.valueType=n.valueType,e.min=(...i)=>e.check(Ge(...i)),e.nonempty=i=>e.check(Ge(1,i)),e.max=(...i)=>e.check(ut(...i)),e.size=(...i)=>e.check(At(...i))});function mh(e,n,i){return new Pd({type:"map",keyType:e,valueType:n,..._.normalizeParams(i)})}var Td=h("ZodSet",(e,n)=>{jt(),Wu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Nl(e,i,o,t),e.min=(...i)=>e.check(Ge(...i)),e.nonempty=i=>e.check(Ge(1,i)),e.max=(...i)=>e.check(ut(...i)),e.size=(...i)=>e.check(At(...i))});function fh(e,n){return new Td({type:"set",valueType:e,..._.normalizeParams(n)})}var In=h("ZodEnum",(e,n)=>{Ju.init(e,n),M.init(e,n),e._zod.processJSONSchema=(o,t,r)=>kl(e,o,t,r),e.enum=n.entries,e.options=[...e._zod.values];let i=new Set(Object.keys(n.entries));e.extract=(o,t)=>{let r={};for(let a of o)if(i.has(a))r[a]=n.entries[a];else throw new Error(`Key ${a} not found in enum`);return new In({...n,checks:[],..._.normalizeParams(t),entries:r})},e.exclude=(o,t)=>{let r={...n.entries};for(let a of o)if(i.has(a))delete r[a];else throw new Error(`Key ${a} not found in enum`);return new In({...n,checks:[],..._.normalizeParams(t),entries:r})}});function ia(e,n){let i=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new In({type:"enum",entries:i,..._.normalizeParams(n)})}function gh(e,n){return new In({type:"enum",entries:e,..._.normalizeParams(n)})}var Ed=h("ZodLiteral",(e,n)=>{Xu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>xl(e,i,o,t),e.values=new Set(n.values),Object.defineProperty(e,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function hh(e,n){return new Ed({type:"literal",values:Array.isArray(e)?e:[e],..._.normalizeParams(n)})}var Ad=h("ZodFile",(e,n)=>{qu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Sl(e,i,o,t),e.min=(i,o)=>e.check(Ge(i,o)),e.max=(i,o)=>e.check(ut(i,o)),e.mime=(i,o)=>e.check(gn(Array.isArray(i)?i:[i],o))});function vh(e){return Qc(Ad,e)}var Od=h("ZodTransform",(e,n)=>{jt(),Yu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Al(e,i,o,t),e._zod.parse=(i,o)=>{if(o.direction==="backward")throw new ot(e.constructor.name);i.addIssue=r=>{if(typeof r=="string")i.issues.push(_.issue(r,i.value,n));else{let a=r;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),"input"in a||(a.input=i.value),a.inst??(a.inst=e),i.issues.push(_.issue(a))}};let t=n.transform(i.value,i);return t instanceof Promise?t.then(r=>(i.value=r,i)):(i.value=t,i)}});function oa(e){return new Od({type:"transform",transform:e})}var zr=h("ZodOptional",(e,n)=>{Mi.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Oo(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function Ct(e){return new zr({type:"optional",innerType:e})}var aa=h("ZodExactOptional",(e,n)=>{Qu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Oo(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function Nd(e){return new aa({type:"optional",innerType:e})}var zd=h("ZodNullable",(e,n)=>{ec.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Ul(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function Pr(e){return new zd({type:"nullable",innerType:e})}function yh(e){return Ct(Pr(e))}var Dd=h("ZodDefault",(e,n)=>{tc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Zl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Cd(e,n){return new Dd({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():_.shallowClone(n)}})}var jd=h("ZodPrefault",(e,n)=>{nc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Vl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function Ld(e,n){return new jd({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():_.shallowClone(n)}})}var sa=h("ZodNonOptional",(e,n)=>{rc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Rl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function Ud(e,n){return new sa({type:"nonoptional",innerType:e,..._.normalizeParams(n)})}var Rd=h("ZodSuccess",(e,n)=>{ic.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Pl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function bh(e){return new Rd({type:"success",innerType:e})}var Md=h("ZodCatch",(e,n)=>{oc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Gl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Zd(e,n){return new Md({type:"catch",innerType:e,catchValue:typeof n=="function"?n:_.constantCatch(n)})}var Vd=h("ZodNaN",(e,n)=>{ac.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>wl(e,i,o,t)});function _h(e){return qc(Vd,e)}var Dr=h("ZodPipe",(e,n)=>{Zi.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Fl(e,i,o,t),e.in=n.in,e.out=n.out});function Lo(e,n){return new Dr({type:"pipe",in:e,out:n})}var Cr=h("ZodCodec",(e,n)=>{Dr.init(e,n),pr.init(e,n)});function $h(e,n,i){return new Cr({type:"pipe",in:e,out:n,transform:i.decode,reverseTransform:i.encode})}function kh(e){let n=e._zod.def;return new Cr({type:"pipe",in:n.out,out:n.in,transform:n.reverseTransform,reverseTransform:n.transform})}var Gd=h("ZodPreprocess",(e,n)=>{Dr.init(e,n),sc.init(e,n)}),Fd=h("ZodReadonly",(e,n)=>{uc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Bl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function Bd(e){return new Fd({type:"readonly",innerType:e})}var Hd=h("ZodTemplateLiteral",(e,n)=>{cc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Il(e,i,o,t)});function xh(e,n){return new Hd({type:"template_literal",parts:e,..._.normalizeParams(n)})}var Kd=h("ZodLazy",(e,n)=>{mr.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Kl(e,i,o,t),e.unwrap=()=>e._zod.def.getter()});function Wd(e){return new Kd({type:"lazy",getter:e})}var Jd=h("ZodPromise",(e,n)=>{dc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Hl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function wh(e){return new Jd({type:"promise",innerType:e})}var Xd=h("ZodFunction",(e,n)=>{lc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>El(e,i,o,t)});function Ih(e){return new Xd({type:"function",input:Array.isArray(e?.input)?Id(e?.input):e?.input??Ar(Dt()),output:e?.output??Dt()})}var jr=h("ZodCustom",(e,n)=>{pc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Tl(e,i,o,t)});function Sh(e){let n=new q({check:"custom"});return n._zod.check=e,n}function Ph(e,n){return el(jr,e??(()=>!0),n)}function qd(e,n={}){return tl(jr,e,n)}function Yd(e,n){return nl(e,n)}var Th=rl,Eh=il,Qd=h("ZodInstanceOf",(e,n)=>{jr.init(e,n)},{properties(e,n){return this.check(fn(e,n))}});function Ah(e,n={}){let i=new Qd({type:"custom",check:"custom",fn:o=>o instanceof e,abort:!0,..._.normalizeParams(n)});return i._zod.bag.Class=e,i._zod.check=o=>{o.value instanceof e||o.issues.push({code:"invalid_type",expected:e.name,input:o.value,inst:i,path:[...i._zod.def.path??[]]})},i}var Oh=(...e)=>ol({Codec:Cr,Boolean:Tn,String:Sn},...e);function Nh(e){let n=Wd(()=>An([Sr(e),cd(),ld(),fd(),Ar(n),Sd(Sr(),n)]));return n}function zh(e,n){return new Gd({type:"pipe",in:oa(e),out:n})}var _x={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function $x(e){ee({customError:e})}function kx(){return ee().customError}var ep;ep||(ep={});var Lr={};We(Lr,{ZodISODate:()=>mt,ZodISODateTime:()=>pt,ZodISODuration:()=>gt,ZodISOTime:()=>ft,date:()=>wx,datetime:()=>xx,duration:()=>Sx,time:()=>Ix});function xx(e){return _r(pt,e)}function wx(e){return $r(mt,e)}function Ix(e){return kr(ft,e)}function Sx(e){return xr(gt,e)}var P={...On,...Do,iso:Lr},Px=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function Tx(e,n){let i=e.$schema;return i==="https://json-schema.org/draft/2020-12/schema"?"draft-2020-12":i==="http://json-schema.org/draft-07/schema#"?"draft-7":i==="http://json-schema.org/draft-04/schema#"?"draft-4":n??"draft-2020-12"}function Dh(e,n){return e.map((i,o)=>oo).check(o=>{let t=o.value;if(typeof t!="object"||t===null||Array.isArray(t))return;let r=Object.getOwnPropertyNames(t);if(n.minProperties!==void 0&&r.length=${n.minProperties} properties`,input:t,inst:e,continue:!0}),n.maxProperties!==void 0&&r.length>n.maxProperties&&o.issues.push({origin:"object",code:"too_big",maximum:n.maxProperties,inclusive:!0,message:`Too big: expected object to have <=${n.maxProperties} properties`,input:t,inst:e,continue:!0}),n.keySchema)for(let a of r){let s=n.keySchema.safeParse(a);s.success||o.issues.push({code:"invalid_key",origin:"record",issues:s.error.issues,input:a,path:[a],continue:!0})}}).pipe(e)}function tp(e,n){if(e===null)return"z";let i=typeof e;if(i!=="object"){if(i==="number"&&Number.isNaN(e))return null;let o=String(e);return`${i[0]}${o.length}:${o}`}if(n.has(e))return null;n.add(e);try{if(Array.isArray(e)){let r=[];for(let a of e){let s=tp(a,n);if(s===null)return null;r.push(s)}return`a${r.length}:[${r.join(",")}]`}let o=Object.keys(e).sort(),t=[];for(let r of o){let a=tp(e[r],n);if(a===null)return null;t.push(`${r.length}:${r}=${a}`)}return`o${t.length}:{${t.join(",")}}`}finally{n.delete(e)}}var Nx=new Set(["items","prefixItems","additionalItems","additionalProperties","contains","propertyNames","not","if","then","else","allOf","anyOf","oneOf","unevaluatedItems","unevaluatedProperties","contentSchema"]),zx=new Set(["properties","patternProperties","dependentSchemas","dependencies","$defs","definitions"]);function Ur(e){return typeof e!="object"||e===null?!1:Array.isArray(e)?e.some(Ur):typeof e.$ref=="string"?!0:Object.entries(e).some(([n,i])=>Nx.has(n)?Ur(i):!zx.has(n)||typeof i!="object"||i===null?!1:Object.values(i).some(Ur))}function Ch(e){return e===1?"element":"elements"}function Dx(e,n){return P.transform(o=>o).check(o=>{let t=o.value;if(Array.isArray(t)){if(n.uniqueItems===!0){let r=new Map;for(let a=0;a=a)break;sn.maxContains&&o.issues.push({code:"custom",message:`Array must contain at most ${n.maxContains} matching ${Ch(n.maxContains)}`,input:t,continue:!0})}}}).pipe(e)}function jh(e,n){if(e!==!1)return e===void 0||e===!0?P.any():fe(e,n)}var Cx=/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/;function Lh(e,n){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return P.never();throw new Error("not is not supported in Zod (except { not: {} } for never)")}if(e.unevaluatedItems!==void 0)throw new Error("unevaluatedItems is not supported");if(e.unevaluatedProperties!==void 0)throw new Error("unevaluatedProperties is not supported");if(e.if!==void 0||e.then!==void 0||e.else!==void 0)throw new Error("Conditional schemas (if/then/else) are not supported");if(e.dependentSchemas!==void 0||e.dependentRequired!==void 0)throw new Error("dependentSchemas and dependentRequired are not supported");if(e.$ref){let t=e.$ref;if(n.refs.has(t))return n.refs.get(t);if(n.processing.has(t))return P.lazy(()=>{if(!n.refs.has(t))throw new Error(`Circular reference not resolved: ${t}`);return n.refs.get(t)});n.processing.add(t);let r=Ax(t,n),a=fe(r,n);return n.refs.set(t,a),n.processing.delete(t),a}if(e.enum!==void 0){let t=e.enum;if(n.version==="openapi-3.0"&&e.nullable===!0&&t.length===1&&t[0]===null)return P.null();if(t.length===0)return P.never();if(t.length===1)return P.literal(t[0]);if(t.every(a=>typeof a=="string"))return P.enum(t);let r=t.map(a=>P.literal(a));return r.length<2?r[0]:P.union([r[0],r[1],...r.slice(2)])}if(e.const!==void 0)return P.literal(e.const);let i=e.type;if(Array.isArray(i)){let t=i.map(r=>{let a={...e,type:r};return Lh(a,n)});return t.length===0?P.never():t.length===1?t[0]:P.union(t)}if(!i)return P.any();let o;switch(i){case"string":{let t=P.string();if(e.format){let r=e.format;r==="email"?t=t.check(P.email()):r==="uri"||r==="uri-reference"?t=t.check(P.url()):r==="uuid"||r==="guid"?t=t.check(P.uuid()):r==="date-time"?t=t.check(P.iso.datetime({offset:!0})):r==="date"?t=t.check(P.iso.date()):r==="time"?t=t.check(P.regex(Cx)):r==="duration"?t=t.check(P.iso.duration()):r==="hostname"?t=t.check(P.hostname()):r==="ipv4"?t=t.check(P.ipv4()):r==="ipv6"?t=t.check(P.ipv6()):r==="mac"?t=t.check(P.mac()):r==="cidr"?t=t.check(P.cidrv4()):r==="cidr-v6"?t=t.check(P.cidrv6()):r==="base64"?t=t.check(P.base64()):r==="base64url"?t=t.check(P.base64url()):r==="e164"?t=t.check(P.e164()):r==="credit_card"?t=t.check(P.creditCard()):r==="iban"?t=t.check(P.iban()):r==="jwt"?t=t.check(P.jwt()):r==="emoji"?t=t.check(P.emoji()):r==="nanoid"?t=t.check(P.nanoid()):r==="cuid"?t=t.check(P.cuid()):r==="cuid2"?t=t.check(P.cuid2()):r==="ulid"?t=t.check(P.ulid()):r==="xid"?t=t.check(P.xid()):r==="ksuid"&&(t=t.check(P.ksuid()))}typeof e.minLength=="number"&&(t=t.min(e.minLength)),typeof e.maxLength=="number"&&(t=t.max(e.maxLength)),e.pattern&&(t=t.regex(new RegExp(e.pattern))),o=t;break}case"number":case"integer":{let t=i==="integer"?P.number().int():P.number();typeof e.minimum=="number"&&e.exclusiveMinimum!==!0&&(t=t.min(e.minimum)),typeof e.maximum=="number"&&e.exclusiveMaximum!==!0&&(t=t.max(e.maximum)),typeof e.exclusiveMinimum=="number"?t=t.gt(e.exclusiveMinimum):e.exclusiveMinimum===!0&&typeof e.minimum=="number"&&(t=t.gt(e.minimum)),typeof e.exclusiveMaximum=="number"?t=t.lt(e.exclusiveMaximum):e.exclusiveMaximum===!0&&typeof e.maximum=="number"&&(t=t.lt(e.maximum)),typeof e.multipleOf=="number"&&(t=t.multipleOf(e.multipleOf)),o=t;break}case"boolean":{o=P.boolean();break}case"null":{o=P.null();break}case"object":{let t={},r=e.properties||{},a=new Set(e.required||[]),s=typeof e.additionalProperties=="object"?fe(e.additionalProperties,n):void 0;for(let[p,m]of Object.entries(r)){let f=fe(m,n);se(t,p,a.has(p)?f:f.optional())}if(e.patternProperties){let p=e.patternProperties,m=Object.keys(p),f=[];for(let y of m){let x=fe(p[y],n),I=P.string().regex(new RegExp(y));f.push(P.looseRecord(I,x))}let g=[];if(Object.keys(t).length>0&&g.push(P.object(t).passthrough()),g.push(...f),g.length===0)o=P.object({}).passthrough();else if(g.length===1)o=g[0];else{let y=P.intersection(g[0],g[1]);for(let x=2;xnew RegExp(b)),I=o;o=o.check(b=>{if(!Se(b.value))return;let T=[];for(let A of Object.keys(b.value))y.includes(A)||x.some(D=>D.test(A))||T.push(A);T.length&&b.issues.push({code:"unrecognized_keys",keys:T,input:b.value,inst:I})})}}else{let p=P.object(t);e.additionalProperties===!1?o=p.strict():s?o=p.catchall(s):o=p.passthrough()}let u=e.propertyNames!==void 0&&e.propertyNames!==!0,c=typeof e.minProperties=="number"?e.minProperties:void 0,d=typeof e.maxProperties=="number"?e.maxProperties:void 0;if(u||c!==void 0||d!==void 0){let p;if(u){let m=typeof e.propertyNames=="object"&&e.propertyNames.type===void 0?{type:"string",...e.propertyNames}:e.propertyNames;p=fe(m,n)}o=Ox(o,{keySchema:p,minProperties:c,maxProperties:d})}break}case"array":{let t=e.prefixItems,r=e.items;if(t&&Array.isArray(t)){let a=typeof e.minItems=="number"?e.minItems:0,s=t.map(p=>fe(p,n)),u=Dh(s,a),c=Array.isArray(r)?void 0:jh(r,n),d=P.tuple(u);o=c?d.rest(c):d,typeof e.minItems=="number"&&(o=o.check(P.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(P.maxLength(e.maxItems)))}else if(Array.isArray(r)){let a=typeof e.minItems=="number"?e.minItems:0,s=r.map(p=>fe(p,n)),u=Dh(s,a),c=jh(e.additionalItems,n),d=P.tuple(u);o=c?d.rest(c):d,typeof e.minItems=="number"&&(o=o.check(P.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(P.maxLength(e.maxItems)))}else if(r!==void 0){let a=fe(r,n),s=P.array(a);typeof e.minItems=="number"&&(s=s.min(e.minItems)),typeof e.maxItems=="number"&&(s=s.max(e.maxItems)),o=s}else o=P.array(P.any());(e.uniqueItems===!0||e.contains!==void 0)&&(o=Dx(o,{uniqueItems:e.uniqueItems===!0,containsSchema:e.contains!==void 0?fe(e.contains,n):void 0,minContains:typeof e.minContains=="number"?e.minContains:void 0,maxContains:typeof e.maxContains=="number"?e.maxContains:void 0}));break}default:throw new Error(`Unsupported type: ${i}`)}return o}function fe(e,n){if(typeof e=="boolean")return e?P.any():P.never();let i=Lh(e,n),o=e.type||e.enum!==void 0||e.const!==void 0;if(e.anyOf&&Array.isArray(e.anyOf)){let s=e.anyOf.map(c=>fe(c,n)),u=P.union(s);i=o?P.intersection(i,u):u}if(e.oneOf&&Array.isArray(e.oneOf)){let s=e.oneOf.map(c=>fe(c,n)),u=P.xor(s);i=o?P.intersection(i,u):u}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)i=o?i:P.any();else{let s=o?i:fe(e.allOf[0],n),u=o?0:1;for(let c=u;c0&&n.registry.add(i,t),e.description&&(i=i.describe(e.description)),i}function Uh(e,n){if(typeof e=="boolean")return e?P.any():P.never();let i;try{i=JSON.parse(JSON.stringify(e))}catch{throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas")}let o=Tx(i,n?.defaultTarget),t=i.$defs||i.definitions||{},r={version:o,defs:t,refs:new Map,processing:new Set,rootSchema:i,registry:n?.registry??ue};return fe(i,r)}var Rh=Symbol("z.visit/resolving");function Rr(e,n){let i=typeof n=="function"?n:(a,s)=>{let u=n[a._zod.def.type];return u?u(a,s):a},o=new Map;function t(a){let s=o.get(a);if(s===Rh)return new mr({type:"lazy",getter:()=>o.get(a)});if(s!==void 0)return s;o.set(a,Rh);let u=r(a),c=i(u,u!==a);return o.set(a,c),c}function r(a){let s=a._zod.def,u=s.type;switch(u){case"object":{let c=s.shape,d=Object.keys(c),p=!1,m={};for(let g of d){let y=t(c[g]);y!==c[g]&&(p=!0),m[g]=y}let f=s.catchall;return s.catchall&&(f=t(s.catchall),f!==s.catchall&&(p=!0)),p?K(a,{...s,shape:m,catchall:f}):a}case"array":{let c=t(s.element);return c===s.element?a:K(a,{...s,element:c})}case"tuple":{let c=s.items,d=!1,p=[];for(let f of c){let g=t(f);g!==f&&(d=!0),p.push(g)}let m=s.rest;return s.rest&&(m=t(s.rest),m!==s.rest&&(d=!0)),d?K(a,{...s,items:p,rest:m}):a}case"record":case"map":{let c=t(s.keyType),d=t(s.valueType);return c===s.keyType&&d===s.valueType?a:K(a,{...s,keyType:c,valueType:d})}case"set":{let c=t(s.valueType);return c===s.valueType?a:K(a,{...s,valueType:c})}case"union":{let c=s.options,d=!1,p=[];for(let m of c){let f=t(m);f!==m&&(d=!0),p.push(f)}return d?K(a,{...s,options:p}):a}case"intersection":{let c=t(s.left),d=t(s.right);return c===s.left&&d===s.right?a:K(a,{...s,left:c,right:d})}case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":{let c=t(s.innerType);return c===s.innerType?a:K(a,{...s,innerType:c})}case"pipe":{let c=t(s.in),d=t(s.out);return c===s.in&&d===s.out?a:K(a,{...s,in:c,out:d})}case"function":{let c=t(s.input),d=t(s.output);return c===s.input&&d===s.output?a:K(a,{...s,input:c,output:d})}case"lazy":{let c=s.getter,{_cachedInner:d,...p}=s;return K(a,{...p,getter:()=>t(c())})}case"template_literal":case"string":case"number":case"int":case"boolean":case"bigint":case"symbol":case"undefined":case"null":case"void":case"never":case"any":case"unknown":case"date":case"nan":case"enum":case"literal":case"file":case"transform":case"custom":return a;default:return a}}return t(e)}function Mh(e){return Rr(e,{object:n=>n.partial(),union:n=>{let i=n._zod.def;return i.discriminator===void 0?n:An(i.options)}})}function jx(e,n){if(!n?.length)return e;let i=e._zod.def;return K(e,ze(i,{checks:[...i.checks??[],...n]}),{parent:!0})}function Zh(e){return jx(e.out,e.checks)}function Lx(e){return e.in._zod.traits.has("$ZodTransform")?Zh(e):e.in}function Vh(e){return Rr(e,{pipe:n=>Lx(n._zod.def),default:(n,i)=>i?Ct(n._zod.def.innerType):n,catch:(n,i)=>i?n._zod.def.innerType:n})}function Gh(e){return Rr(e,{pipe:n=>Zh(n._zod.def),prefault:(n,i)=>i?n._zod.def.innerType:n})}var np={};We(np,{bigint:()=>Zx,boolean:()=>Mx,date:()=>Vx,number:()=>Rx,string:()=>Ux});function Ux(e){return wc(Sn,e)}function Rx(e){return Ac(Pn,e)}function Mx(e){return Lc(Tn,e)}function Zx(e){return Rc(En,e)}function Vx(e){return Xc(Er,e)}var Gx=new Set(["__proto__","prototype","constructor"]),Rt=l.string().min(1).max(256).refine(e=>!Gx.has(e),"reserved storage key"),ua=l.json(),ca=256*1024,Fx=5*1024*1024,Fh=1024,Bh=l.strictObject({key:Rt}),Hh=l.object({value:ua}),Kh=l.strictObject({key:Rt,value:ua}),Wh=l.object({ok:l.literal(!0)}),Jh=l.strictObject({key:Rt}),Xh=l.object({ok:l.literal(!0)}),qh=l.strictObject({}).optional(),Yh=l.object({keys:l.array(l.string()).max(Fh)}),Qh=l.strictObject({key:Rt}),ev=l.object({value:l.string().nullable()}),tv=l.strictObject({key:Rt,value:l.string().max(64*1024)}),nv=l.object({ok:l.literal(!0)}),rv=l.strictObject({key:Rt}),iv=l.object({ok:l.literal(!0)}),ov=l.strictObject({}).optional(),av=l.object({status:l.enum(["os-keyring","unavailable"])}),sv=l.strictObject({}).optional(),uv=l.object({settings:l.record(l.string(),ua)}),cv=l.strictObject({key:Rt,value:ua}),lv=l.object({ok:l.literal(!0)});var Nn="x-orca-enum-since";var et="1.4.160",rp="1.4.245";var Mr="1.4.246";var dv=Mr,pv=Mr;var je="1.4.248";var Hx="Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.";function mv(e,n,i){return ae(`${e} ${Hx}`,n,i)}function ae(e,n,i){return i?{description:e,"x-orca-since":n,examples:[...i]}:{description:e,"x-orca-since":n}}var ht=["workspace.created","workspace.removed","agent.status.changed","workspace.changed"],dO=ht.length,Kx={"workspace.created":rp,"workspace.removed":rp,"agent.status.changed":et,"workspace.changed":pv},la=new Map([["worktree.created","workspace.created"],["worktree.removed","workspace.removed"]]);var pO=l.object({on:l.enum(ht).meta({...ae("Event delivered to the plugin worker.",et),[Nn]:Kx})}).strict().meta({id:"EventContribution",description:"An event subscription. Requires `main`, the `trusted-worker` execution profile and the capability of the event's domain: `workspace:read` for workspace events, `agent:read` for agent events."});var ge=["worker","panel","editor"],he=["worker"],zn=["panel","editor"],B=e=>e;function fv(e,n){return n==="worker"?e.since:Math.max(e.since,e.framesSince??0)}var Wx=["success","failure","cancellation","superseded"],gv=[...Wx,"interruption","unconfirmed"];var Dn=["working","blocked","waiting","done"];var DO=new Set(Dn);var vt=l.string().regex(/^[A-Za-z0-9_.:-]{1,128}$/,"is 1-128 letters, digits, or . _ : -");var da=12e4,UO=1024*1024,RO=256*1024;var Qx=l.object({id:l.string().min(1).max(64),surface:l.enum(["panel","editor"]),contributionId:l.string().min(1).max(256)}),MO=l.object({name:vt,input:l.unknown(),panel:Qx}),ZO=l.object({event:vt,payload:l.unknown(),panel:l.string().min(1).max(64).optional()}),hv=["storage","settings"],VO=l.object({area:l.enum(hv),key:l.string().min(1).max(256)}),GO=l.discriminatedUnion("kind",[l.object({kind:l.literal("message"),event:vt,payload:l.unknown()}),l.object({kind:l.literal("event"),event:l.enum(ht),payload:l.unknown()}),l.object({kind:l.literal("changed"),area:l.enum(hv),key:l.string()})]);var ew=l.strictObject({name:vt,input:l.json().optional(),timeoutMs:l.number().int().min(1).max(da).optional()}),tw=l.object({output:l.json()}),nw=50,rw=l.strictObject({}).optional(),iw=l.object({agents:l.array(l.object({terminalId:l.string().min(1).max(1024).nullable(),title:l.string().max(512).nullable(),agent:l.string().max(128).nullable(),state:l.enum(Dn),stateStartedAt:l.number().finite()})).max(nw)}),ow=l.strictObject({event:l.enum(ht)}),aw=l.object({ok:l.literal(!0)}),vv={"plugin.request":B({summary:"Asks the plugin's own worker to run the handler it registered with `orca.panels.handle(name)`, starting the worker if needed; resolves with what the handler returned. `unknown_method` when no handler has that name.",since:2,scope:"plugin-private",capability:null,mutation:!1,surfaces:zn,params:ew,result:tw}),"agents.list":B({summary:"The agents in the focused workspace: their terminal, title, agent kind and status. `agent.status.changed` reports each change after.",since:2,scope:"active-workspace",capability:"agent:read",mutation:!1,surfaces:ge,params:rw,result:iw}),"events.subscribe":B({summary:"Delivers a workspace or agent event to this panel as `orca.on(event)`; needs the event's read capability. The frame APIs call it for you.",since:2,scope:"plugin-private",capability:null,mutation:!1,surfaces:zn,params:ow,result:aw})};var sw=/^(?:con|prn|aux|nul|clock\$|conin\$|conout\$|com[1-9\u00B9\u00B2\u00B3]|lpt[1-9\u00B9\u00B2\u00B3])(?:\..*)?$/i,uw=/[<>:"|?*]/,pa=String.raw`[^<>:"|?*\x00-\x1f\\/]*[^<>:"|?*\x00-\x1f\\/. ]`,ip=new RegExp(`^${pa}(?:[\\\\/]${pa})*$`),qO=new RegExp(`^${pa}(?:/${pa})*$`);function cw(e){return e.length===0||e==="."||e===".."?"empty and dot path segments are not allowed":e.endsWith(".")||e.endsWith(" ")?"path segments may not end with a dot or space":uw.test(e)||[...e].some(n=>n.charCodeAt(0)<=31)?"path segment contains a Windows-forbidden character or alternate-data-stream colon":sw.test(e)?"path segment is a Windows reserved device name":null}function lw(e){if(e.length===0||e.startsWith("/")||e.startsWith("\\"))return"must be a non-empty relative path";let n=e.split(/[\\/]/);for(let i of n){let o=cw(i);if(o)return o}return null}function op(e){return lw(e)===null}var yv=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,dw=new Set(["__proto__","prototype","constructor"]),ap=64;function bv(e){return dw.has(e)}var sp="must be a portable relative path inside the plugin directory",Cn=l.string().max(ap).regex(yv,"must be kebab-case (a-z, 0-9, dashes)").refine(e=>!bv(e),"must not be a reserved name"),_v=l.string().min(1).max(1024).regex(ip,sp).refine(e=>!ip.test(e)||op(e),sp),oN=l.string().min(1).max(1024).transform(e=>e.replace(/[\\/]+$/,"")).refine(op,sp),$v=l.string().min(1).max(256).regex(/^[A-Za-z0-9]+(?:[._-][A-Za-z0-9]+)*$/,"must be a portable command id");var pw=/[\p{Cc}\p{Cf}\p{Cs}\p{Zl}\p{Zp}]/u,mw=new Set(["‌","‍"]);function fw(e){return mw.has(e)||!pw.test(e)}function kv(e){return[...e].filter(fw).join("")}var gw=/[\t\n\v\f\r\u0085\u2028\u2029]+/g;function hw(e){return kv(e.replace(gw," "))}function Zr(e){let n=e.overwrite(hw);return e.minLength?n.min(e.minLength,"must contain visible characters"):n}var j={maxNodes:5e3,maxDepth:64,maxTreeBytes:524288,maxTextLength:16384,maxLabelLength:1024,maxPropsPerNode:32,maxSelectOptions:500,maxEventArgs:8,maxCallbackIdLength:64,maxRadioOptions:50,maxTableColumns:32,maxTableRows:5e3,maxTreeItems:2e3,maxTreeItemDepth:16,maxKeyValueItems:200,maxDocumentLength:65536,maxEventArgItems:5e3},dN={maxBytes:640*1024,maxMessages:200,perMs:1e4,maxDepth:j.maxDepth*2+24,maxObjects:j.maxNodes*8+1024};var Be={render:"ui.render",event:"ui.event",error:"ui.error",ack:"ui.ack",ready:"ui.ready",hydrate:"ui.hydrate",visibility:"ui.visibility",persist:"ui.persist",retain:"ui.retain",snapshot:"ui.snapshot",restore:"ui.restore"};var vw={Input:{value:"value",change:"onChange"},Textarea:{value:"value",change:"onChange"},Switch:{value:"checked",change:"onChange"},Checkbox:{value:"checked",change:"onChange"},Select:{value:"value",change:"onChange"},RadioGroup:{value:"value",change:"onChange"},Slider:{value:"value",change:"onChange"},Tabs:{value:"value",change:"onChange"},Collapsible:{value:"open",change:"onChange"},Table:{value:"selected",change:"onSelectionChange"},Tree:{value:"selected",change:"onSelect"}},yw=new Map(Object.entries(vw));function up(e){return yw.get(e)??null}var ma="$edit";var fa=/^[A-Za-z0-9_.:-]+$/,xv=l.object({$callback:l.string().min(1).max(j.maxCallbackIdLength).regex(fa)}).strict(),Mt=["neutral","accent","success","warning","danger"],G=l.string().max(j.maxLabelLength),H=G.min(1),Y=xv.optional(),Le=l.string().regex(/^[a-z0-9-]{1,64}$/),Ee=l.enum(["none","xs","sm","md","lg"]).optional(),Vr=l.enum(["start","center","end","stretch"]).optional(),tt=l.enum(Mt).optional(),ga=l.enum(["xs","sm","md"]).optional(),cp=l.enum(["solid","outline","ghost"]).optional(),N=l.boolean().optional(),jn=l.string().max(j.maxTextLength),Gr=l.enum(["sm","md","lg","none"]).optional(),Zt=l.string().min(1).max(j.maxLabelLength),ve={[ma]:l.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).optional()};function R(e,n){return{props:e,children:n}}var yt=["activity","bar-chart-3","bell","blocks","book","bot","bug","calendar","cloud","code","database","file-text","flag","folder","gauge","globe","hammer","layers","lightbulb","package","plug","puzzle","rocket","star","terminal","wrench","zap","add","remove","delete","edit","refresh","search","settings","check","close","info","warning","error","open-external","copy","download","upload","play","pause","stop","more","expand","collapse","next","filter","branch","file","agent","link"],bw=Object.fromEntries(yt.slice(yt.indexOf("add")).map(e=>[e,Mr])),xN=new Map(yt.map(e=>[e.replaceAll("-",""),e]));var _w=["html","components"],$w=/\.(?:m?js|tsx?|mts|jsx)$/i,wN=l.object({id:Cn.meta(ae("Panel id, unique among this plugin's panels. The reserved names `constructor` and `prototype` are refused.",et,["dashboard"])),title:Zr(l.string().min(1).max(256)).meta(ae("Title shown on the panel tab and its tooltip.",et,["Dashboard"])),icon:l.enum(yt).optional().meta({...ae("Icon shown in the right-sidebar activity bar. Defaults to `plug`.",et,["database"]),[Nn]:bw}),entry:_v.meta(mv(`What the panel runs: an HTML page for \`ui: "html"\`, a \`.js\`/\`.mjs\` module for \`ui: "components"\`. Either may instead be a \`.ts\`/\`.tsx\`/\`.mts\`/\`.jsx\` file, which Orca transpiles when it loads (needs \`engines.orca\` \`>=${dv}\`; an \`html\` panel then gets a generated page around it). It is trusted code: install panels you trust.`,et,["dist/panel.html"])),ui:l.enum(_w).optional().meta(ae("How the panel draws its UI. `html` (default) shows `entry` as a web page in an isolated frame; `components` runs `entry` as a hidden module and Orca draws the component tree it returns with its own controls.",Mr,["components"]))}).strict().refine(e=>e.ui!=="components"||$w.test(e.entry),{path:["entry"],message:"a components panel entry must be a .js, .mjs, .ts, .tsx, .mts or .jsx module"}).meta({id:"PanelContribution",description:"A sidebar panel. Requires the `sandboxed-ui` execution profile or higher."});var kw="1.4.248";var xw=64,ww=256,Ln=kw,wv={text:Zr(l.string().max(xw)).optional().meta(ae("Short label shown in the status bar.",Ln,["3 blocked"])),icon:l.enum(yt).optional().meta(ae("Icon shown before the text, from the panel icon set.",Ln,["bell"])),tone:l.enum(Mt).optional().meta(ae("Colour of the item. Defaults to `neutral`.",Ln,["warning"])),tooltip:Zr(l.string().max(ww)).optional().meta(ae("Shown on hover. Defaults to the plugin name.",Ln))},NN=l.object({id:Cn.meta(ae("Item id, unique among this plugin's status bar items; `statusBar.update` names it.",Ln,["blocked-count"])),...wv,command:$v.optional().meta(ae("Id of a command this plugin contributes in `contributes.commands`, run when the item is pressed.",Ln,["guard.showLog"]))}).strict().meta({id:"StatusBarItemContribution",description:"An item in the status bar. Requires the `declarative` profile; a `trusted-worker` can change it with `statusBar.update`."}),Iv=l.strictObject({...wv,visible:l.boolean().optional()});var Iw=l.strictObject({id:Cn,...Iv.shape}),Sw=l.object({ok:l.literal(!0)}),Sv={"statusBar.update":B({summary:"Changes one of the plugin's `contributes.statusBarItems` (named by `id`): fields given replace their current value, `visible: false` hides it. Desktop app only; lasts until Orca restarts, and is hidden while the plugin is disabled. A plugin with `main` and status bar items has its worker started when it is enabled and kept running while it stays enabled, so a worker can poll and update its items without an event or a hook.",since:2,scope:"plugin-private",capability:null,mutation:!1,surfaces:he,params:Iw,result:Sw})};function lp(e){return e==="linux"?"orca-ide":e==="win32"?"orca.cmd":"orca"}function Pw(e){return{...e,launchCmd:e.launchCmd??e.detectCmd,expectedProcess:e.expectedProcess??e.detectCmd}}var Tw={claude:{detectCmd:"claude",promptInjectionMode:"argv",pasteNeedsTypedRequest:!0,draftPromptFlag:"--prefill",preflightTrust:"claude",draftPasteReadySignal:"claude-composer-prompt",workerStartReadsComposerMarker:!0,ctrlEnterEncoding:"csi-u"},"claude-agent-teams":{detectCmd:"orca",detectCmdAliases:["orca-dev","orca-ide"],detectRequiredCommands:["claude"],detectUnsupportedRuntimes:["win32","wsl"],launchCmd:"orca claude-teams",launchCmdByPlatform:{linux:`${lp("linux")} claude-teams`,win32:`${lp("win32")} claude-teams`},expectedProcess:"claude",promptInjectionMode:"stdin-after-start",pasteNeedsTypedRequest:!0,preflightTrust:"claude",draftPasteReadySignal:"claude-composer-prompt",workerStartReadsComposerMarker:!0,ctrlEnterEncoding:"csi-u"},codebuddy:{detectCmd:"codebuddy",detectCmdAliases:["cbc"],promptInjectionMode:"argv"},openclaude:{detectCmd:"openclaude",promptInjectionMode:"argv",draftPromptFlag:"--prefill"},codex:{detectCmd:"codex",promptInjectionMode:"argv",windowsInputRecordPasteNewline:"alt-enter",preflightTrust:"codex",draftPasteReadySignal:"codex-composer-prompt",draftPasteReadyTimeoutMs:2e4,submitRetryDelayMs:1200},autohand:{detectCmd:"autohand",promptInjectionMode:"stdin-after-start"},ante:{detectCmd:"ante",promptInjectionMode:"stdin-after-start"},trae:{detectCmd:"traecli",promptInjectionMode:"argv",argvPromptSeparator:"--"},opencode:{detectCmd:"opencode",promptInjectionMode:"flag-prompt",draftPasteReadySignal:"render-cursor-after-bracketed-paste",submitPasteReadySignal:"opencode-agent-row",draftPasteReadyTimeoutMs:2e4,ctrlEnterEncoding:"csi-u",composerReadyCaptures:["opencode-1-18-32-timed-boot-slow","opencode-1-18-32-timed-boot-hidden-pane","opencode-1-18-32-timed-first-launch","opencode-cmd-2-0-21-timed-warm-server"]},opencode2:{detectCmd:"opencode2",launchCmd:"opencode2 --standalone",promptInjectionMode:"flag-prompt",draftPasteReadySignal:"render-cursor-after-bracketed-paste",submitPasteReadySignal:"opencode-agent-row",draftPasteReadyTimeoutMs:2e4,composerReadyCaptures:["opencode-2-0-18-timed-boot-hidden-pane","opencode-2-0-21-timed-cold-standalone","opencode-2-0-21-timed-cold-standalone-hidden-pane","opencode-2-0-21-timed-natural-load-enter-dropped","opencode-2-0-14-timed-cold-standalone"]},"mimo-code":{detectCmd:"mimo",promptInjectionMode:"flag-prompt",draftPasteReadySignal:"render-cursor-after-bracketed-paste"},pi:{detectCmd:"pi",promptInjectionMode:"argv",draftPromptEnvVar:"ORCA_PI_PREFILL",windowsShiftEnterEncoding:"csi-u"},omp:{detectCmd:"omp",promptInjectionMode:"argv",draftPromptEnvVar:"ORCA_OMP_PREFILL",windowsShiftEnterEncoding:"csi-u"},"prime-agent":{detectCmd:"prime-agent",promptInjectionMode:"argv",argvPromptSeparator:"--",windowsShiftEnterEncoding:"csi-u"},qoder:{detectCmd:"qodercli",detectCmdAliases:["qoder"],promptInjectionMode:"flag-prompt-interactive",preflightTrust:"qoder"},"qoder-cn":{detectCmd:"qoderclicn",detectCmdAliases:["qodercn"],promptInjectionMode:"flag-prompt-interactive",preflightTrust:"qoder-cn"},gemini:{detectCmd:"gemini",promptInjectionMode:"flag-prompt-interactive"},antigravity:{detectCmd:"agy",promptInjectionMode:"flag-prompt-interactive",preflightTrust:"antigravity",submitLineSettleMsPerLine:45},aider:{detectCmd:"aider",promptInjectionMode:"stdin-after-start"},goose:{detectCmd:"goose",promptInjectionMode:"stdin-after-start"},amp:{detectCmd:"amp",promptInjectionMode:"stdin-after-start"},kilo:{detectCmd:"kilo",promptInjectionMode:"stdin-after-start"},kiro:{detectCmd:"kiro-cli",launchCmd:"kiro-cli chat --tui",promptInjectionMode:"stdin-after-start"},crush:{detectCmd:"crush",promptInjectionMode:"stdin-after-start"},aug:{detectCmd:"auggie",promptInjectionMode:"stdin-after-start"},cline:{detectCmd:"cline",promptInjectionMode:"stdin-after-start"},freebuff:{detectCmd:"freebuff",promptInjectionMode:"stdin-after-start"},codebuff:{detectCmd:"codebuff",promptInjectionMode:"stdin-after-start"},"command-code":{detectCmd:"command-code",launchCmd:"command-code --trust",promptInjectionMode:"argv"},continue:{detectCmd:"cn",promptInjectionMode:"stdin-after-start"},cursor:{detectCmd:"cursor-agent",promptInjectionMode:"argv",preflightTrust:"cursor"},droid:{detectCmd:"droid",promptInjectionMode:"argv",windowsShiftEnterEncoding:"csi-u",ctrlEnterEncoding:"csi-u"},kimi:{preflightTrust:"kimi",detectCmd:"kimi",detectCmdAliases:["kimi-code"],promptInjectionMode:"stdin-after-start"},"mistral-vibe":{detectCmd:"vibe",detectCmdAliases:["mistral-vibe"],promptInjectionMode:"stdin-after-start"},"qwen-code":{detectCmd:"qwen",promptInjectionMode:"stdin-after-start",submitRetryDelayMs:1200},rovo:{detectCmd:"acli",launchCmd:"acli rovodev run",promptInjectionMode:"stdin-after-start"},hermes:{detectCmd:"hermes",launchCmd:"hermes --tui",promptInjectionMode:"hermes-query"},openclaw:{detectCmd:"openclaw",promptInjectionMode:"stdin-after-start"},copilot:{detectCmd:"copilot",promptInjectionMode:"flag-interactive",preflightTrust:"copilot"},grok:{detectCmd:"grok",promptInjectionMode:"argv",argvPromptSeparator:"--",draftPasteReadySignal:"grok-composer-prompt",ctrlEnterEncoding:"csi-u"},muse:{detectCmd:"muse",launchCmd:"muse --trust-workspace",promptInjectionMode:"stdin-after-start"},dsh:{detectCmd:"dsh-tui",detectCmdAliases:["dst"],detectRequiredCommands:["dsh"],launchCmd:"dsh-tui .",expectedProcess:"dsh",promptInjectionMode:"stdin-after-start",draftPasteReadySignal:"dsh-composer-prompt",submitRetryDelayMs:1e3,submitRetryBudgetMs:3e4},zcode:{detectCmd:"zcode",expectedProcess:"zcode-cli",promptInjectionMode:"stdin-after-start",draftPasteReadySignal:"zcode-composer-prompt",composerReadyCaptures:["zcode-composer-ready"]},devin:{detectCmd:"devin",promptInjectionMode:"argv",argvPromptSeparator:"--"},jcode:{detectCmd:"jcode",launchCmd:"jcode",expectedProcess:"jcode",promptInjectionMode:"stdin-after-start"}},Ew=Object.fromEntries(Object.entries(Tw).map(([e,n])=>[e,Pw(n)]));function Pv(e){return typeof e=="string"&&Object.hasOwn(Ew,e)}var dp=["worktree.history.back","worktree.history.forward","sidebar.left.toggle","sidebar.sleepingWorkspaces.toggle","floatingWorkspace.maximize","tab.rename","workspace.rename","workspace.openBoard","view.tasks","sidebar.right.toggle","sidebar.explorer.toggle","sidebar.search.toggle","sidebar.sourceControl.toggle","sidebar.checks.toggle","sidebar.ports.toggle"];var WN=new Set(dp);var Aw=500,pp=2e3,Fr=1024,Tv=4096,Br=l.string().min(1).max(Fr),mp=l.string().min(1).max(Fr),Ow=l.strictObject({}).optional(),Nw=l.object({workspaces:l.array(l.object({id:Br,kind:l.enum(["worktree","folder"]),name:l.string().max(512),path:l.string().max(Fr),branch:l.string().max(512).nullable(),hostId:l.string().max(Fr).nullable()})).max(Aw),truncated:l.boolean()}),zw=l.strictObject({workspaceId:Br}),Dw=l.object({opened:l.literal(!0)}),Cw=l.strictObject({workspaceId:Br,title:l.string().min(1).max(512).optional(),command:l.string().min(1).max(Tv).optional()}),jw=l.object({terminalId:mp}),Lw=l.strictObject({terminalId:mp,maxLines:l.number().int().min(1).max(pp).optional()}),Uw=l.object({lines:l.array(l.string()).max(pp),truncated:l.boolean()}),Rw=l.strictObject({workspaceId:Br,agent:l.string().min(1).max(64).refine(Pv,"unknown agent"),prompt:l.string().min(1).max(Tv).optional()}),Mw=l.object({terminalId:mp});function Zw(e){let n=e.split(/[\\/]/);return!/^[a-z]:/i.test(e)&&n[0]!==""&&n.every(i=>i!=="..")&&n.some(i=>i!==""&&i!==".")}var Vw=l.strictObject({workspaceId:Br,path:l.string().min(1).max(Fr).refine(Zw,"path must be relative and inside the workspace")}),Gw=l.object({opened:l.literal(!0)}),Fw=l.strictObject({action:l.enum(dp)}),Bw=l.object({ran:l.literal(!0)}),Ev={"workspace.list":B({summary:"Lists every workspace, Git worktrees and folders, on every host Orca reaches.",since:3,scope:"any-workspace",capability:"workspace:read",mutation:!1,surfaces:he,params:Ow,result:Nw}),"workspace.open":B({summary:"Shows a workspace in Orca, as clicking it in the sidebar does; a folder workspace needs the desktop app.",since:3,scope:"any-workspace",capability:"workspace:write",mutation:!0,surfaces:he,params:zw,result:Dw}),"terminal.create":B({summary:"Opens a terminal in a workspace, optionally running a command, in the background.",since:3,scope:"any-workspace",capability:"terminal:send",mutation:!0,surfaces:he,params:Cw,result:jw}),"terminal.read":B({summary:`Reads a terminal's newest output as plain text, at most ${pp} lines.`,since:3,scope:"explicit-terminal",capability:"terminal:read",mutation:!1,surfaces:he,params:Lw,result:Uw}),"agent.launch":B({summary:"Starts an agent's CLI in a new terminal of a workspace, in the background, and returns as soon as it starts; a `prompt` is sent once the agent is ready.",since:3,scope:"any-workspace",capability:"agent:launch",mutation:!0,surfaces:he,params:Rw,result:Mw}),"editor.open":B({summary:"Opens a file of a workspace in an editor tab of Orca's window; desktop app only. `workspace.open` shows the workspace.",since:3,scope:"any-workspace",capability:"workspace:write",mutation:!0,surfaces:he,params:Vw,result:Gw}),"commands.run":B({summary:"Runs one of Orca's built-in actions in its window, never a plugin's replacement of it; desktop app only.",since:3,scope:"desktop",capability:"workspace:write",mutation:!0,surfaces:he,params:Fw,result:Bw})};var fp=l.string().regex(/^[a-f0-9]{64}$/),Av=l.string().min(1).max(16*1024),Hw=l.strictObject({expectedRevision:fp,app:Av,terminal:Av}),Ov={"appearance.read":B({summary:"Reads the current desktop appearance revision for a conditional update.",since:4,scope:"desktop",capability:"appearance:write",mutation:!1,surfaces:he,params:l.strictObject({}).optional(),result:l.strictObject({revision:fp})}),"appearance.apply":B({summary:"Publishes owned app/editor and terminal colors and selects them in the desktop. Returns publication, not renderer acknowledgement.",since:4,scope:"desktop",capability:"appearance:write",mutation:!0,surfaces:he,params:Hw,result:l.strictObject({revision:fp,themeId:l.templateLiteral(["plugin:",l.string()]),mode:l.enum(["dark","light"]),delivery:l.literal("published")})})};var Nv={...Sv,...Ov,...Ev};var Kw=4096,Ww=50,Hr=512,nt=1024,Jw=l.strictObject({}).optional(),gp=l.object({branch:l.string().max(Hr),displayName:l.string().max(Hr),terminals:l.array(l.object({id:l.string().min(1).max(nt),title:l.string().max(Hr).optional()}).strict()).max(Ww)}).strict().nullable(),Xw=gp,qw=l.strictObject({terminalId:l.string().min(1).max(nt),text:l.string().min(1).max(Kw),enter:l.boolean().default(!1)}),Yw=l.object({accepted:l.boolean()}),Qw=l.strictObject({title:l.string().min(1).max(120),body:l.string().max(1e3).optional()}),eI=l.object({delivered:l.boolean()}),hp={openExternal:"shell.openExternal",saveAs:"files.saveAs"},tI=8192,nI=["http:","https:","mailto:"],zv=64*1024*1024,rI=l.strictObject({url:l.string().min(1).max(tI).refine(uI,"url must be an http:, https: or mailto: URL")}),iI=l.object({opened:l.boolean(),reason:l.enum(["cancelled","consent-unavailable"]).optional()}),oI=l.union([l.string().max(zv),l.custom(e=>e instanceof ArrayBuffer||e instanceof Uint8Array,"data must be a string or ArrayBuffer").refine(e=>e.byteLength<=zv,"data exceeds 64 MiB").meta({type:"ArrayBuffer"})]),aI=l.strictObject({suggestedName:l.string().min(1).max(255).optional(),mimeType:l.string().min(1).max(255).optional(),data:oI}),sI=l.object({status:l.enum(["saved","cancelled"])});function uI(e){try{return nI.includes(new URL(e).protocol)}catch{return!1}}var Vt={"workspace.readContext":B({summary:"Branch, name and terminal ids of the focused workspace, or null when none is focused.",since:0,scope:"active-workspace",capability:"workspace:read",mutation:!1,surfaces:ge,params:Jw,result:Xw}),"terminal.sendText":B({summary:"Types text into one terminal named by id, optionally pressing Enter.",since:0,scope:"explicit-terminal",capability:"terminal:send",mutation:!0,surfaces:he,params:qw,result:Yw}),"notifications.show":B({summary:"Shows a desktop notification.",since:0,scope:"desktop",capability:"notifications:show",mutation:!0,surfaces:ge,params:Qw,result:eI}),"storage.get":B({summary:"Reads a JSON value from the plugin's private store; null when absent.",since:0,scope:"plugin-private",capability:"storage:own",mutation:!1,framesSince:2,surfaces:ge,params:Bh,result:Hh}),"storage.set":B({summary:"Writes a JSON value to the plugin's private store.",since:0,scope:"plugin-private",capability:"storage:own",mutation:!0,framesSince:2,surfaces:ge,params:Kh,result:Wh}),"storage.delete":B({summary:"Removes a key from the plugin's private store.",since:0,scope:"plugin-private",capability:"storage:own",mutation:!0,framesSince:2,surfaces:ge,params:Jh,result:Xh}),"storage.keys":B({summary:"Lists the keys in the plugin's private store.",since:0,scope:"plugin-private",capability:"storage:own",mutation:!1,framesSince:2,surfaces:ge,params:qh,result:Yh}),"secrets.get":B({summary:"Reads a secret from the plugin's encrypted secrets file; null when absent.",since:0,scope:"plugin-private",capability:"secrets:own",mutation:!1,framesSince:2,surfaces:ge,params:Qh,result:ev}),"secrets.set":B({summary:"Stores a secret in the plugin's encrypted secrets file.",since:0,scope:"plugin-private",capability:"secrets:own",mutation:!0,framesSince:2,surfaces:ge,params:tv,result:nv}),"secrets.delete":B({summary:"Removes a secret from the plugin's encrypted secrets file.",since:0,scope:"plugin-private",capability:"secrets:own",mutation:!0,framesSince:2,surfaces:ge,params:rv,result:iv}),"secrets.protection":B({summary:"How secrets are protected at rest: `os-keyring`, or `unavailable` (no OS key store, or Linux `basic_text`), where `secrets.set` fails.",since:1,scope:"plugin-private",capability:"secrets:own",mutation:!1,framesSince:2,surfaces:ge,params:ov,result:av}),"settings.get":B({summary:"Reads every setting the plugin owns.",since:0,scope:"plugin-private",capability:"settings:own",mutation:!1,framesSince:2,surfaces:ge,params:sv,result:uv}),"settings.set":B({summary:"Writes one setting the plugin owns.",since:0,scope:"plugin-private",capability:"settings:own",mutation:!0,framesSince:2,surfaces:ge,params:cv,result:lv}),"shell.openExternal":B({summary:"Opens an http:, https: or mailto: URL in the default browser. Needs a click or key press in the frame; desktop app only. Orca asks the person before an http(s) host the plugin was not allowed; `opened` is false if they cancel.",since:1,scope:"desktop",capability:null,userActivation:!0,mutation:!1,surfaces:zn,params:rI,result:iI}),"files.saveAs":B({summary:"Offers data (a string or ArrayBuffer, up to 64 MiB) in Orca's save dialog; the plugin never learns the path. Needs a click or key press in the frame; desktop app only.",since:1,scope:"desktop",capability:null,userActivation:!0,mutation:!0,surfaces:zn,params:aI,result:sI}),...vv,...Nv},Dv=Object.keys(Vt).filter(Cv);function Cv(e){return Object.hasOwn(Vt,e)}function vp(e){return Cv(e)?Vt[e]:null}var jv=Math.max(...Dv.map(e=>Vt[e].since));function Kr(e){return Dv.filter(n=>Vt[n].surfaces.includes(e))}function ha(e,n){return Kr(e).filter(i=>n||Vt[i].userActivation!==!0)}function va(e,n="panel"){return Math.max(0,...e.map(i=>fv(Vt[i],n)))}var Ue=1,gz=l.number().refine(e=>e===Ue,{error:e=>typeof e.input=="number"&&e.input>Ue?`targets host API ${e.input}, but this Orca supports only ${Ue}; update Orca`:`must be ${Ue}`}).meta({const:Ue});var cI=new Set(["rate_limited","unavailable","timeout","conflict"]);function He(e,n=e,i){return Object.assign(new Error(n),{code:e,retryable:cI.has(e),...i===void 0?{}:{retryAfterMs:i}})}var lI=new Set(["plugin.request","events.subscribe","storage.get","storage.set","storage.delete","storage.keys","settings.get","settings.set","secrets.get","secrets.set","secrets.delete","secrets.protection"]);function ya(e,n){return typeof e=="object"&&e!==null&&n in e?Object.getOwnPropertyDescriptor(e,n)?.value:void 0}function Lv(e){let n={storage:new Map(Object.entries(e.storage??{})),settings:new Map(Object.entries(e.settings??{})),secrets:new Map(Object.entries(e.secrets??{}))},i=new Set,o=(a,s,u)=>{if(u===void 0?n[a].delete(s):n[a].set(s,u),a!=="secrets")for(let c of i)c(a,s);return{ok:!0}},t=null;async function r(a){let s=String(ya(a,"name")),u=ya(a,"input");if(!e.requests||!Object.hasOwn(e.requests,s)){if(t)return{output:await t(s,u)??null};throw He("unknown_method",`no panel handler named ${s}`)}let c=e.requests[s];return{output:(typeof c=="function"?await c(u):c)??null}}return{handles:a=>lI.has(a),async answer(a,s){let u=String(ya(s,"key")),c=ya(s,"value");switch(a){case"plugin.request":return r(s);case"storage.get":return{value:n.storage.get(u)??null};case"storage.keys":return{keys:[...n.storage.keys()]};case"settings.get":return{settings:Object.fromEntries(n.settings)};case"secrets.get":return{value:n.secrets.get(u)??null};case"secrets.protection":return{status:"os-keyring"};case"storage.set":return o("storage",u,c);case"settings.set":return o("settings",u,c);case"secrets.set":return o("secrets",u,c);case"storage.delete":return o("storage",u,void 0);case"secrets.delete":return o("secrets",u,void 0);default:return{ok:!0}}},routeRequests(a){return t=a,()=>{t===a&&(t=null)}},onChange(a){return i.add(a),()=>i.delete(a)},snapshot:()=>({storage:Object.fromEntries(n.storage),settings:Object.fromEntries(n.settings),secrets:Object.fromEntries(n.secrets)})}}var ba=class extends Error{constructor(i,o){super(o);this.code=i}code};function dI(e){return typeof e=="function"}var Uv={ok:!0};function pI(e){return e.result.safeParse(Uv).success}var yp={"workspace.readContext":null,"notifications.show":{delivered:!0},"shell.openExternal":{opened:!0},"files.saveAs":{status:"saved"},"agents.list":{agents:[]}};function Rv(e,n){let i=new Set(e.capabilities??n),o=new Map(Object.entries(e.results??{})),t=Lv(e),r={panel:ha("panel",!0),worker:Kr("worker")},a=[],s=[],u=new Set,c=0,d=(g,y)=>{throw new ba(g,y)};async function p(g,y,x){let I=vp(g);if(!I)return d("unknown_method",`${g} does not exist in this Orca`);if(!I.surfaces.includes(x))return d("not_permitted",`${g} is not available to ${x}s`);if(I.userActivation===!0){if(c===0)return d("not_permitted",`${g} needs a click or key press in the frame`);c-=1}if(I.capability&&!i.has(I.capability))return d("capability_denied",`${g} needs the ${I.capability} capability`);let b=I.params.safeParse(y);return b.success?b.data:d("invalid_params",b.error.issues[0]?.message??"invalid params")}async function m(g,y,x){let I;try{I=await p(g,y,x)}catch(E){throw E instanceof ba?(s.push({method:g,code:E.code,message:E.message}),He(E.code,E.message)):E}let b=vp(g);if(!b)throw He("unknown_method",g);let T=!o.has(g)&&t.handles(g),A=pI(b);if(!o.has(g)&&!T&&!Object.hasOwn(yp,g)&&!A)throw He("unavailable",`the test configured no result for ${g}`);let D=o.has(g)?o.get(g):Object.hasOwn(yp,g)?yp[g]:Uv,w=T?await t.answer(g,I):dI(D)?await D(I):D,O=b.result.safeParse(w);if(!O.success)throw new TypeError(`mockHost: the result configured for ${g} does not match the host API: ${O.error.issues[0]?.message??"invalid result"}`);return O.data}let f=g=>({api:{major:Ue,minor:va(r[g])},call(y,x){a.push({method:y,params:x});let I=m(y,x,g);return u.add(I),I.catch(()=>{}).finally(()=>u.delete(I)),I},has:y=>r[g].some(x=>x===y)});return{calls:a,refusals:s,capabilities:[...i],callsOf:g=>a.filter(y=>y.method===g).map(y=>y.params),respond:(g,y)=>o.set(g,y),grantGesture:()=>{c=1},data:()=>t.snapshot(),onDataChange:g=>t.onChange(g),routeRequests:g=>t.routeRequests(g),async idle(){for(;u.size>0;)await Promise.allSettled(u)},bridge:f("panel"),worker:f("worker")}}var mI=l.object({label:H,labelHidden:N,value:jn.optional(),defaultValue:jn.optional(),placeholder:G.optional(),rows:l.number().int().min(2).max(20).optional(),maxLength:l.number().int().positive().max(j.maxTextLength).optional(),invalid:N,disabled:N,onChange:Y,onSubmit:Y,...ve}).strict(),fI=l.object({label:H,description:G.optional(),checked:N,defaultChecked:N,disabled:N,onChange:Y,...ve}).strict(),gI=l.object({label:H,labelHidden:N,value:G.optional(),defaultValue:G.optional(),options:l.array(l.object({value:H,label:H,description:G.optional(),disabled:N}).strict()).max(j.maxRadioOptions),orientation:l.enum(["vertical","horizontal"]).optional(),disabled:N,onChange:Y,...ve}).strict(),_a=l.number().refine(Number.isFinite,"must be finite"),hI=l.object({label:H,labelHidden:N,value:_a.optional(),defaultValue:_a.optional(),min:_a.optional(),max:_a.optional(),step:l.number().positive().refine(Number.isFinite).optional(),showValue:N,disabled:N,onChange:Y,...ve}).strict(),vI=l.object({label:H,description:G.optional(),error:G.optional(),required:N}).strict(),Mv={Textarea:R(mI,"none"),Checkbox:R(fI,"none"),RadioGroup:R(gI,"none"),Slider:R(hI,"none"),Field:R(vI,"any")};var yI=l.object({label:H,value:G.optional(),defaultValue:G.optional(),onChange:Y,...ve}).strict(),bI=l.object({value:H,label:H,icon:Le.optional(),disabled:N}).strict(),_I=l.object({title:H,description:G.optional(),open:N,defaultOpen:N,disabled:N,onChange:Y,...ve}).strict(),$I=l.object({label:H,gap:Ee}).strict(),kI=l.object({columns:l.number().int().min(1).max(6).optional(),minItemWidth:l.enum(["xs","sm","md","lg"]).optional(),gap:Ee}).strict(),Zv={Tabs:R(yI,"tabs"),Tab:R(bI,"any"),Collapsible:R(_I,"any"),Toolbar:R($I,"any"),Grid:R(kI,"any")};function Re(e){return typeof e=="object"&&e!==null}var Wr=["long","short","duration"],bp=l.number().refine(Number.isFinite,"must be a finite time in milliseconds"),Vv=l.object({type:l.literal("relative"),at:bp,format:l.enum(Wr).optional()}).strict(),xI=[["day",864e5],["hour",36e5],["minute",6e4],["second",1e3]];function wI(e){let n=Math.abs(e),[i,o]=xI.find(([,t])=>n>=t)??["second",1e3];return{value:Math.trunc(e/o),unit:i}}function Gv(e,n,i,o){let{value:t,unit:r}=wI(e-n);return i==="duration"?new Intl.NumberFormat(o,{style:"unit",unit:r,unitDisplay:"narrow"}).format(Math.abs(t)):new Intl.RelativeTimeFormat(o,{numeric:i==="long"?"auto":"always",style:i==="long"?"long":"narrow"}).format(t,r)}var _p=l.string().min(1).max(64),II=l.union([l.string().max(j.maxLabelLength),l.number(),l.boolean(),l.null(),Vv]),Fv=e=>new Set(e.map(n=>n.key)).size===e.length,SI=l.object({label:H,columns:l.array(l.object({key:_p,label:H,align:l.enum(["start","center","end"]).optional(),width:l.enum(["auto","xs","sm","md","lg"]).optional(),minWidth:l.enum(["auto","xs","sm","md"]).optional(),hideBelow:l.enum(["sm","md"]).optional(),sortable:N}).strict()).min(1).max(j.maxTableColumns).refine(Fv,"column keys must be unique"),rows:l.array(l.object({key:Zt,cells:l.record(_p,II.refine(e=>typeof e!="number"||Number.isFinite(e))).refine(e=>Object.keys(e).length<=j.maxTableColumns),disabled:N}).strict()).max(j.maxTableRows).refine(Fv,"row keys must be unique"),sort:l.object({column:_p,direction:l.enum(["asc","desc"])}).strict().optional(),selectionMode:l.enum(["none","single","multiple"]).optional(),selected:l.array(Zt).max(j.maxTableRows).optional(),defaultSelected:l.array(Zt).max(j.maxTableRows).optional(),hasMore:N,loading:N,emptyText:G.optional(),maxHeight:Gr,onSortChange:Y,onSelectionChange:Y,onRowAction:Y,onLoadMore:Y,...ve}).strict(),PI=l.object({key:Zt,label:H,description:G.optional(),icon:Le.optional(),disabled:N,hasChildren:N,children:l.array(l.unknown()).optional()}).strict();function TI(e){let n=[],i=new Set,o=[{raw:e,out:n,depth:1}],t=0;for(let r=o.pop();r;r=o.pop()){if(r.depth>j.maxTreeItemDepth)return`items nest deeper than ${j.maxTreeItemDepth}`;for(let a of r.raw){if(++t>j.maxTreeItems)return`more than ${j.maxTreeItems} items`;let s=PI.safeParse(Re(a)?a:null);if(!s.success)return"each item needs a key and a label";let{children:u,...c}=s.data;if(i.has(c.key))return`duplicate item key ${JSON.stringify(c.key.slice(0,64))}`;i.add(c.key);let d=c;r.out.push(d),u&&(d.children=[],o.push({raw:u,out:d.children,depth:r.depth+1}))}}return n}var EI=l.array(l.unknown()).transform((e,n)=>{let i=TI(e);return typeof i=="string"?(n.addIssue({code:"custom",message:i}),l.NEVER):i}),AI=l.object({label:H,items:EI,selected:G.optional(),defaultSelected:G.optional(),expanded:l.array(Zt).max(j.maxTreeItems).optional(),defaultExpanded:l.array(Zt).max(j.maxTreeItems).optional(),maxHeight:Gr,onSelect:Y,onToggle:Y,onAction:Y,...ve}).strict(),Bv={Table:R(SI,"none"),Tree:R(AI,"none")};var Hv=l.string().max(j.maxDocumentLength),OI=/\.(?:png|jpe?g|webp)$/i;function NI(e){return OI.test(e)&&!/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e)&&!/[\\\0?#]/.test(e)&&e.split("/").every(n=>n!==""&&n!=="."&&n!=="..")}var zI=l.object({content:Hv}).strict(),DI=l.object({code:Hv,language:l.string().regex(/^[A-Za-z0-9_+#.-]{1,64}$/).optional(),label:G.optional(),lineNumbers:N,wrap:N,maxHeight:Gr}).strict(),CI=l.object({src:l.string().max(512).refine(NI,"must be an image file in the plugin"),alt:G,size:l.enum(["xs","sm","md","lg","full"]).optional(),fit:l.enum(["contain","cover"]).optional(),rounded:N}).strict(),jI=l.object({label:G.optional(),items:l.array(l.object({label:H,value:l.union([G,l.number().refine(Number.isFinite),l.boolean(),l.null()]),tone:tt,code:N}).strict()).max(j.maxKeyValueItems)}).strict(),LI=l.object({tone:tt,title:G.optional(),icon:Le.optional()}).strict(),UI=l.object({at:bp,format:l.enum(Wr).optional(),tone:tt,muted:N}).strict(),RI=l.object({shape:l.enum(["text","block","circle"]).optional(),lines:l.number().int().min(1).max(10).optional(),label:G.optional()}).strict(),Kv={Markdown:R(zI,"none"),CodeView:R(DI,"none"),Image:R(CI,"none"),KeyValue:R(jI,"none"),Callout:R(LI,"any"),Skeleton:R(RI,"none"),RelativeTime:R(UI,"none")};var MI=4096,Un=l.union([l.number().min(0).max(MI),l.string().regex(/^(100|[1-9]?[0-9])%$/)]).optional(),ZI=["none","muted","card",...Mt],VI=l.object({direction:l.enum(["row","column"]).optional(),gap:Ee,padding:Ee,paddingX:Ee,paddingY:Ee,margin:Ee,align:Vr,justify:l.enum(["start","center","end","between"]).optional(),wrap:N,grow:N,shrink:N,width:Un,height:Un,minWidth:Un,minHeight:Un,maxWidth:Un,maxHeight:Un,columns:l.number().int().min(1).max(6).optional(),scroll:l.enum(["x","y","both"]).optional(),border:l.union([l.boolean(),l.enum(Mt)]).optional(),radius:l.enum(["none","sm","md","lg","full"]).optional(),background:l.enum(ZI).optional()}).strict(),Wv={Box:R(VI,"any")};var GI=yt,Jv=new Set(GI),FI=l.object({gap:Ee,align:Vr}).strict(),BI=l.object({gap:Ee,align:Vr,justify:l.enum(["start","center","end","between"]).optional(),wrap:N}).strict(),HI=l.object({tone:tt,muted:N,size:ga,weight:l.enum(["regular","medium","semibold"]).optional(),truncate:N}).strict(),KI=l.object({level:l.union([l.literal(1),l.literal(2),l.literal(3)]).optional()}).strict(),WI=l.object({variant:cp,tone:tt,size:ga,icon:Le.optional(),tooltip:G.optional(),disabled:N,onPress:Y}).strict(),JI=l.object({icon:Le,label:H,tooltip:G.optional(),variant:cp,tone:tt,size:ga,disabled:N,onPress:Y}).strict(),XI=l.object({tone:tt}).strict(),qI=l.object({title:G.optional(),description:G.optional()}).strict(),YI=l.object({label:G.optional()}).strict(),QI=l.object({title:G.optional(),description:G.optional(),icon:Le.optional(),current:N,disabled:N,onPress:Y}).strict(),eS=l.object({label:H,labelHidden:N,value:jn.optional(),defaultValue:jn.optional(),placeholder:G.optional(),type:l.enum(["text","search","password"]).optional(),maxLength:l.number().int().positive().max(j.maxTextLength).optional(),invalid:N,disabled:N,onChange:Y,onSubmit:Y,...ve}).strict(),tS=l.object({label:H,checked:N,defaultChecked:N,disabled:N,onChange:Y,...ve}).strict(),nS=l.object({label:H,labelHidden:N,value:G.optional(),defaultValue:G.optional(),placeholder:G.optional(),options:l.array(l.object({value:H,label:H,disabled:N}).strict()).max(j.maxSelectOptions),disabled:N,onChange:Y,...ve}).strict(),rS=l.object({orientation:l.enum(["horizontal","vertical"]).optional()}).strict(),iS=l.object({label:H,labelHidden:N,value:l.number().min(0).max(100).optional()}).strict(),oS=l.object({label:H,labelHidden:N}).strict(),aS=l.object({title:H,description:G.optional(),icon:Le.optional()}).strict(),sS=l.object({href:l.string().max(2048).regex(/^(https?:\/\/|mailto:)/i).optional(),onPress:Y}).strict(),uS=l.object({block:N}).strict(),Jr={Stack:R(FI,"any"),Row:R(BI,"any"),Text:R(HI,"inline"),Heading:R(KI,"inline"),Button:R(WI,"text"),IconButton:R(JI,"none"),Badge:R(XI,"text"),Card:R(qI,"any"),List:R(YI,"items"),ListItem:R(QI,"any"),Input:R(eS,"none"),Switch:R(tS,"none"),Select:R(nS,"none"),Separator:R(rS,"none"),Progress:R(iS,"none"),Spinner:R(oS,"none"),EmptyState:R(aS,"any"),Link:R(sS,"text"),Code:R(uS,"text"),...Mv,...Zv,...Bv,...Kv,...Wv};function $p(e){return typeof e=="string"&&Object.hasOwn(Jr,e)}var oD=Object.keys(Jr).filter($p),Xv=new Set(["Text","Link","Code","Badge","RelativeTime"]),qv=new Set(["Button","IconButton","Input","Switch","Select","Link","ListItem","Textarea","Checkbox","RadioGroup","Slider","Tabs","Collapsible","Table","Tree","Markdown"]),$a={items:"ListItem",tabs:"Tab"};var cS=new Set(["type","key","props","children"]),kp=32,lS=8,dS=/^[A-Z][A-Za-z0-9]{0,63}$/,pS=20,mS=new Map([[$a.items,"items"],[$a.tabs,"tabs"]]),fS={ListItem:"List",Tab:"Tabs"};function Yv(e){return e==="items"||e==="tabs"?$a[e]:void 0}var ka=class extends Error{};function te(e,n){throw new ka(`${e}: ${n}`)}function gS(e,n){return e===void 0?[]:(Array.isArray(e)||te(n,"children must be an array"),e)}function hS(e,n,i){let o=Jr[e].props.shape,t={};for(let[r,a]of Object.entries(n)){if(a===void 0)continue;if(!Object.hasOwn(o,r)){i(`${e}: ignored unknown prop "${r.slice(0,64)}"`);continue}let s=o[r].safeParse(a);if(!s.success){i(`${e}: ignored invalid ${r}`);continue}t[r]=s.data}for(let[r,a]of Object.entries(o))if(!Object.hasOwn(t,r)&&!a.safeParse(void 0).success)return i(`${e}: missing required ${r}; showing a placeholder`),null;return typeof t.icon=="string"&&!Jv.has(t.icon)&&i(`${e}: unknown icon "${t.icon}"; showing a fallback glyph`),t}function Qv(e){if(e===null)return{ok:!0,tree:null,nodes:0,warnings:[]};let n=new Set,i=c=>{n.sizej.maxTextLength&&te(I,"text is too long"),r+ ++a>j.maxNodes&&te(I,`more than ${j.maxNodes} nodes`),s+=lS+Ne.length,s>j.maxTreeBytes&&te(I,`tree exceeds ${j.maxTreeBytes} bytes`),x.push(Ne);continue}Re(d)||te(I,"expected a node, string or number");let b=d.type,T=$p(b);!T&&(typeof b!="string"||!dS.test(b))&&te(I,`invalid component name ${JSON.stringify(String(b)).slice(0,80)}`),(f==="none"||f==="text")&&te(I,`${m} accepts only text`),f==="inline"&&T&&!Xv.has(b)&&te(I,`${m} accepts only text, Text, Link, Code, Badge and RelativeTime`);let A=Yv(f),D=typeof b=="string"?mS.get(b):void 0;A!==void 0&&b!==A&&te(I,`${m} holds only ${A}`),D!==void 0&&D!==f&&te(I,`${b} must be a direct child of ${fS[b]??"its container"}`),g&&qv.has(b)&&te(I,`a ListItem with onPress cannot contain a ${b}`),++r+a>j.maxNodes&&te(I,`more than ${j.maxNodes} nodes`),p>j.maxDepth&&te(I,`deeper than ${j.maxDepth}`);for(let Ne of Object.keys(d))cS.has(Ne)||te(I,`unknown node field ${Ne.slice(0,64)}`);let w=d.key;w!==void 0&&((typeof w!="string"||w.length>j.maxLabelLength)&&te(I,"key must be a short string"),y.has(w)&&te(I,`duplicate key ${JSON.stringify(w.slice(0,64))} among siblings`),y.add(w));let O=w===void 0?{}:{key:w};if(!T){i(`unknown component ${b}; showing a placeholder`),x.push({type:"Unsupported",...O,props:{name:b},children:[]}),s+=kp+b.length;continue}let E=d.props??{};(!Re(E)||Object.keys(E).length>j.maxPropsPerNode)&&te(I,"props must be an object with few fields");let F=hS(b,E,i);if(!F){x.push({type:"Unsupported",...O,props:{name:b},children:[]}),s+=kp+b.length;continue}s+=kp+JSON.stringify(F).length,s>j.maxTreeBytes&&te(I,`tree exceeds ${j.maxTreeBytes} bytes`);let C=[],ne={type:b,...O,props:F,children:C};x.push(ne);let ye=gS(d.children,I);ye.length>j.maxNodes&&te(I,`more than ${j.maxNodes} children`);let Oe=new Set,ti=g||b==="ListItem"&&F.onPress!==void 0;for(let Ne=ye.length-1;Ne>=0;Ne--)t.push({raw:ye[Ne],depth:p+1,parentType:b,policy:Jr[b].children,inPressable:ti,siblingKeys:Oe,out:C,path:`${I}.children.${Ne}`})}}catch(c){if(c instanceof ka)return{ok:!1,error:c.message};throw c}let u=o[0];return typeof u=="object"?{ok:!0,tree:u,nodes:r,warnings:[...n]}:{ok:!1,error:"tree: expected a node"}}var Xr=l.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),Gt=l.string().min(1).max(64),xp=l.union([l.string().max(j.maxTextLength),l.number().refine(Number.isFinite),l.boolean(),l.null()]),ey=l.array(xp).max(j.maxEventArgItems),vS=l.union([xp,ey,l.record(l.string().max(64),l.union([xp,ey])).refine(e=>Object.keys(e).length<=16,"too many fields")]),vD=l.object({document:Gt,revision:Xr,callback:l.string().min(1).max(j.maxCallbackIdLength).regex(fa),args:l.array(vS).max(j.maxEventArgs),edit:Xr.optional()}).strict(),yS=l.object({document:Gt,revision:Xr,tree:l.unknown()}).strict(),ty=l.object({document:Gt.optional(),revision:Xr,message:l.string().max(j.maxLabelLength*4),stack:l.string().max(8192).optional()}).strict();function ny(e){let n=yS.safeParse(e);if(!n.success)return{ok:!1,document:null,revision:null,error:"malformed render"};let{document:i,revision:o}=n.data,t=Qv(n.data.tree);return t.ok?{...t,document:i,revision:o}:{ok:!1,document:i,revision:o,error:t.error}}var yD=l.object({document:Gt,revision:Xr,accepted:l.boolean(),retryAfterMs:l.number().int().nonnegative().max(6e4).optional()}).strict(),bD=l.object({document:Gt}).strict(),ry=/^[A-Za-z0-9_.:-]{1,128}$/,bS=["plugin","workspace"],wp=l.number().int().min(0).max(1e6),_D=l.object({version:wp,value:l.json()}).strict().refine(e=>JSON.stringify(e.value).length<=ca,"persisted value is too large"),iy=l.object({document:Gt,entries:l.array(l.object({scope:l.enum(bS),key:l.string().regex(ry),version:wp,value:l.json()}).strict()).min(1).max(64)}).strict(),$D=l.object({document:Gt,entries:l.array(l.object({key:l.string().regex(ry),version:wp,value:l.json().optional()}).strict().refine(e=>JSON.stringify(e.value??null).length<=ca,"retained value is too large")).min(1).max(64)}).strict();import{installOrcaDeclarativeRuntime as zS}from"./orca-runtime.mjs";var _S={Stack:"group",Row:"group",Card:"region",Text:"text",Heading:"heading",Button:"button",IconButton:"button",Badge:"status",List:"list",ListItem:"listitem",Input:"textbox",Switch:"switch",Select:"combobox",Separator:"separator",Progress:"progressbar",Spinner:"status",EmptyState:"group",Link:"link",Code:"code",Textarea:"textbox",Checkbox:"checkbox",RadioGroup:"radiogroup",Slider:"slider",Field:"group",Tabs:"tablist",Tab:"tab",Collapsible:"group",Toolbar:"toolbar",Grid:"group",Table:"grid",Tree:"tree",Markdown:"document",CodeView:"code",Image:"img",KeyValue:"list",Callout:"note",Skeleton:"status",RelativeTime:"time",Box:"group",Unsupported:"unsupported"};function ay(e,n){if(typeof e!="number")return"";let i=Wr.find(o=>o===n)??"short";return Gv(e,Date.now(),i,"en")}function $S(e){return typeof e=="object"&&e!==null&&"at"in e?ay(e.at,"format"in e?e.format:void 0):String(e??"")}var kS=["title","description","content","code","error","alt"];function xS(e){let n=[],i=[e.rows,e.items].flatMap(o=>Array.isArray(o)?o:[]);for(let o=i.shift();o!==void 0;o=i.shift()){if(typeof o!="object"||o===null)continue;let t={...o};typeof t.cells=="object"&&t.cells!==null&&n.push(...Object.values(t.cells).map($S));for(let r of["label","value"])t[r]!==void 0&&t[r]!==null&&n.push(String(t[r]));Array.isArray(t.children)&&i.push(...t.children)}return n}function sy(e){if(typeof e=="string")return e;let n=e.props,i=kS.map(o=>n[o]).filter(o=>typeof o=="string");return e.type==="RelativeTime"?ay(n.at,n.format):e.type==="Tab"?typeof n.label=="string"?n.label:"":[...i,...xS(n),...e.children.map(sy)].join(" ")}var Ip=e=>e.replace(/\s+/g," ").trim();function wS(e){let n=e.props,i=n.label??n.title;return typeof i=="string"?i:void 0}function IS(e,n){let i=e.props,o=e.type==="ListItem"&&i.onPress!==void 0;return{type:e.type,key:e.key?.startsWith("#")?void 0:e.key,role:o?"button":_S[e.type]??"generic",label:wS(e),text:Ip(sy(e)),props:i,disabled:i.disabled===!0,path:n}}function xa(e){let n=[],i=(o,t)=>{n.push(IS(o,t)),o.children.forEach((r,a)=>{typeof r!="string"&&i(r,`${t}/${r.key??`#${a}`}`)})};return e&&i(e,e.key??"#0"),n}function oy(e,n){return e===void 0?!1:typeof n=="string"?Ip(e)===Ip(n):n.test(e)}function uy(e,n){return(n.type===void 0||e.type===n.type)&&(n.role===void 0||e.role===n.role)&&(n.text===void 0||oy(e.text,n.text))&&(n.label===void 0||oy(e.label,n.label))&&(n.testId===void 0||e.key===n.testId)}function cy(e){return e.filter(n=>!e.some(i=>i.path.startsWith(`${n.path}/`)))}function ly(e){return Object.entries(e).map(([n,i])=>`${n}: ${i instanceof RegExp?String(i):JSON.stringify(i)}`).join(", ")}function Sp(e){if(typeof e=="string")return e;let n={};for(let[i,o]of Object.entries(e.props)){if(i.startsWith("$"))continue;let t=typeof o=="object"&&o!==null&&"$callback"in o;n[i]=t?"[handler]":o}return{type:e.type,...e.key&&!e.key.startsWith("#")?{key:e.key}:{},...Object.keys(n).length>0?{props:n}:{},...e.children.length>0?{children:e.children.map(Sp)}:{}}}var SS={value:"defaultValue",checked:"defaultChecked",open:"defaultOpen",selected:"defaultSelected"};function Pp(e){return typeof e=="string"||typeof e=="boolean"||typeof e=="number"||Array.isArray(e)&&e.every(n=>typeof n=="string")}function PS(e){switch(e.type){case"Switch":case"Checkbox":case"Collapsible":return!1;case"Slider":return typeof e.props.min=="number"?e.props.min:0;case"Table":return[];default:return""}}function dy(){let e=new Map;function n(t){let r=up(t.type);if(!r)throw new Error(`a ${t.type} has no value; expected a form control, Tabs or Table`);return r}function i(t){let r=e.get(t.path);if(r)return r;let{value:a}=n(t),s=t.props[a],u=t.props[SS[a]??""],d={value:Pp(s)?s:Pp(u)?u:PS(t),sent:0};return e.set(t.path,d),d}function o(t,r){let{value:a,change:s}=n(t);if(t.props[a]!==void 0&&t.props[s]===void 0)throw new Error(`the ${t.type} is read-only: it has a ${a} and no ${s}`);let u=i(t);return u.sent+=1,u.value=r,{value:r,id:u.sent}}return{observe(t){let r=new Map;for(let a of t){let s=up(a.type);if(!s)continue;let u=e.get(a.path)??i(a),c=a.props[s.value],d=a.props[ma];Pp(c)&&(typeof d=="number"?d:0)>=u.sent&&(u.value=c),r.set(a.path,u)}e=r},valueOf:t=>i(t).value,edit:o,typeInto(t,r,a){if(t.type!=="Input"&&t.type!=="Textarea")throw new Error(`type: a ${t.type} takes no text; expected an Input or Textarea`);let s=a?"":String(i(t).value),u=[];a&&u.push(o(t,s));for(let c of r)s+=c,u.push(o(t,s));return u},toggle(t){if(!["Switch","Checkbox","Collapsible"].includes(t.type))throw new Error(`toggle: expected a Switch, Checkbox or Collapsible, not a ${t.type}`);return o(t,!i(t).value)}}}function py(e){let n=new Map,i=(s,u)=>{let c=n.get(s)??new Set;return c.add(u),n.set(s,c),{dispose:()=>c.delete(u)}},o=(s,u)=>{for(let c of n.get(s)??[])c(u)},t=s=>u=>typeof u=="object"&&u!==null&&s in u?Object.getOwnPropertyDescriptor(u,s)?.value:void 0,r=()=>{};return{facades:{plugin:{request:(s,u,c)=>{let d=typeof c=="object"&&c!==null&&"timeoutMs"in c?c.timeoutMs:void 0;return e("plugin.request",{name:s,...u===void 0?{}:{input:u},...typeof d=="number"?{timeoutMs:d}:{}}).then(t("output"))},on:(s,u)=>i(`message:${s}`,u)},storage:{get:s=>e("storage.get",{key:s}).then(u=>t("value")(u)??null),set:(s,u)=>e("storage.set",{key:s,value:u}).then(r),delete:s=>e("storage.delete",{key:s}).then(r),keys:async()=>{let s=t("keys")(await e("storage.keys"));return Array.isArray(s)?s.map(String):[]},onDidChange:s=>i("changed:storage",u=>s({key:String(u)}))},settings:{get:async s=>{let u=t("settings")(await e("settings.get"));return s===void 0?u:t(s)(u)},set:(s,u)=>e("settings.set",{key:s,value:u}).then(r),onDidChange:s=>i("changed:settings",u=>s({key:String(u)}))},secrets:{get:async s=>{let u=t("value")(await e("secrets.get",{key:s}));return typeof u=="string"?u:null},set:(s,u)=>e("secrets.set",{key:s,value:u}).then(r),delete:s=>e("secrets.delete",{key:s}).then(r)}},post:(s,u)=>o(`message:${s}`,u),changed:(s,u)=>o(`changed:${s}`,u)}}var my=Symbol.for("orca.testing.stored");function fy(e,n){return Object.freeze({[my]:!0,version:n,value:e})}function TS(e){return typeof e=="object"&&e!==null&&my in e}function gy(e,n){for(let i of["plugin","workspace"])for(let[o,t]of Object.entries(n?.[i]??{}))e[i].set(o,TS(t)?{version:t.version,value:t.value}:{version:1,value:t})}var ES={sm:360,md:480};function hy(e,n){let i=e.filter(o=>!o.hideBelow||n>=ES[o.hideBelow]);return i.length>0?i:e.slice(0,1)}var Tp=(e,n)=>e.path.startsWith(`${n.path}/`);function wa(e,n){return n.filter(i=>i.type==="Tab"&&Tp(i,e)&&!i.path.slice(e.path.length+1).includes("/"))}function Ep(e,n,i){let o=wa(e,n);return o.find(t=>t.props.value===i)??o.find(t=>!t.disabled)}function vy(e,n){let i=[];for(let o of e)if(!i.some(t=>Tp(o,t))&&(o.type==="Collapsible"&&n(o)!==!0&&i.push(o),o.type==="Tabs")){let t=Ep(o,e,n(o));i.push(...wa(o,e).filter(r=>r!==t))}return e.filter(o=>!i.some(t=>Tp(o,t)))}function yy(e){return typeof e=="object"&&e!==null&&"key"in e&&typeof e.key=="string"}function Ap(e){return Array.isArray(e.props.rows)?e.props.rows.filter(yy):[]}function Op(e){let n=[],i=Array.isArray(e.props.items)?[...e.props.items]:[];for(let o=i.shift();o!==void 0;o=i.shift())if(yy(o)){n.push(o);let t="children"in o?o.children:void 0;Array.isArray(t)&&i.push(...t)}return n}function Ae(e,n,i){if(e.type!==n)throw new Error(`${i}: expected a ${n}, not a ${e.type}`)}function Np(e,n,i){let o=Ap(e).find(t=>t.key===n);if(!o||o.disabled===!0)throw new Error(`${i}: the Table has no enabled row "${n}"`);return o}function Ia(e,n,i){let o=Op(e).find(t=>t.key===n);if(!o)throw new Error(`${i}: the Tree has no item "${n}"`);return o}function by(e){return e.hasChildren===!0||Array.isArray(e.children)&&e.children.length>0}function _y(e,n){let o=(Array.isArray(e.props.columns)?e.props.columns:[]).find(a=>typeof a=="object"&&a!==null&&"key"in a&&a.key===n);if(!o||typeof o!="object"||!("sortable"in o)||o.sortable!==!0)throw new Error(`sort: the Table has no sortable column "${n}"`);let t=e.props.sort,r=typeof t=="object"&&t!==null&&"column"in t&&t.column===n&&"direction"in t&&t.direction==="asc";return{column:n,direction:r?"desc":"asc"}}function AS(e,n){return e.type==="Tabs"?wa(e,n).map(o=>({value:o.props.value,disabled:o.disabled})):(Array.isArray(e.props.options)?e.props.options:[]).map(o=>typeof o=="object"&&o!==null&&"value"in o?{value:o.value,disabled:"disabled"in o&&o.disabled===!0}:{value:void 0,disabled:!0})}function $y({host:e,controls:n,resolve:i,elements:o,dispatch:t,settled:r}){let a=new Map,s=d=>{let p=a.get(d.path);if(!p){let m=d.props.expanded??d.props.defaultExpanded;p=new Set(Array.isArray(m)?m.filter(f=>typeof f=="string"):[]),a.set(d.path,p)}return p},u=async(d,p,m,f)=>{let g=n.edit(d,m);t(p,[f],g.id),await r()},c=async(d,p,m,f)=>{let g=i(d,f);if(Ae(g,"Tree",f),!by(Ia(g,p,f)))throw new Error(`${f}: the Tree item "${p}" has no children`);let y=s(g);y.has(p)!==m&&(m?y.add(p):y.delete(p),t(g.props.onToggle,[{key:p,expanded:m}]),await r())};return{async press(d){let p=i(d,"press"),{href:m,onPress:f}=p.props;if(p.type==="Link"&&typeof m=="string")e.grantGesture(),e.bridge.call("shell.openExternal",{url:m}).catch(()=>{});else{if(f===void 0)throw new Error(`press: the ${p.type} has no onPress`);e.grantGesture()}t(f,[]),await r()},async type(d,p,m={}){let f=i(d,"type");for(let g of n.typeInto(f,p,m.replace===!0))t(f.props.onChange,[g.value],g.id),await r();m.submit&&(t(f.props.onSubmit,[n.valueOf(f)]),await r())},async submit(d){let p=i(d,"submit");t(p.props.onSubmit,[n.valueOf(p)]),await r()},async toggle(d){let p=i(d,"toggle"),m=n.toggle(p);t(p.props.onChange,[m.value],m.id),await r()},async select(d,p){let m=i(d,"select");if(!["Select","RadioGroup","Tabs"].includes(m.type))throw new Error(`select: expected a Select, RadioGroup or Tabs, not a ${m.type}`);let f=AS(m,o()).find(g=>g.value===p);if(!f||f.disabled)throw new Error(`select: the ${m.type} has no enabled option "${p}"`);await u(m,m.props.onChange,p,p)},async slide(d,p){let m=i(d,"slide");Ae(m,"Slider","slide");let f=typeof m.props.min=="number"?m.props.min:0,g=typeof m.props.max=="number"?m.props.max:100;if(!Number.isFinite(p)||pg)throw new Error(`slide: ${p} is outside the Slider's ${f} to ${g}`);await u(m,m.props.onChange,p,p)},async sort(d,p){let m=i(d,"sort");if(Ae(m,"Table","sort"),m.props.onSortChange===void 0)throw new Error("sort: the Table has no onSortChange");t(m.props.onSortChange,[_y(m,p)]),await r()},async selectRows(d,p){let m=i(d,"selectRows");Ae(m,"Table","selectRows");let f=m.props.selectionMode??"none";if(f==="none"||f==="single"&&p.length>1)throw new Error(`selectRows: the Table's selectionMode is ${String(f)}`);p.forEach(g=>Np(m,g,"selectRows")),await u(m,m.props.onSelectionChange,[...p],{keys:[...p]})},async activateRow(d,p){let m=i(d,"activateRow");if(Ae(m,"Table","activateRow"),Np(m,p,"activateRow"),m.props.onRowAction===void 0)throw new Error("activateRow: the Table has no onRowAction");t(m.props.onRowAction,[{key:p}]),await r()},async loadMore(d){let p=i(d,"loadMore");if(Ae(p,"Table","loadMore"),p.props.hasMore!==!0||p.props.onLoadMore===void 0)throw new Error("loadMore: the Table has no more rows (hasMore and onLoadMore)");t(p.props.onLoadMore,[]),await r()},expand:(d,p)=>c(d,p,!0,"expand"),collapse:(d,p)=>c(d,p,!1,"collapse"),async selectItem(d,p){let m=i(d,"selectItem");if(Ae(m,"Tree","selectItem"),Ia(m,p,"selectItem").disabled===!0)throw new Error(`selectItem: the Tree item "${p}" is disabled`);await u(m,m.props.onSelect,p,{key:p})},async activateItem(d,p){let m=i(d,"activateItem");if(Ae(m,"Tree","activateItem"),Ia(m,p,"activateItem").disabled===!0||!m.props.onAction)throw new Error(`activateItem: the Tree item "${p}" cannot be activated`);t(m.props.onAction,[{key:p}]),await r()},expandedOf:d=>{let p=i(d,"expandedOf");return Ae(p,"Tree","expandedOf"),Op(p).map(m=>m.key).filter(m=>s(p).has(m))},columnsOf:(d,p={})=>{let m=i(d,"columnsOf");Ae(m,"Table","columnsOf");let g=(Array.isArray(m.props.columns)?m.props.columns:[]).flatMap(y=>{if(typeof y!="object"||y===null||!("key"in y))return[];let x="hideBelow"in y?y.hideBelow:void 0;return typeof y.key=="string"?[{key:y.key,hideBelow:x==="sm"||x==="md"?x:void 0}]:[]});return hy(g,p.width??Number.POSITIVE_INFINITY).map(y=>y.key)},rowsOf:d=>{let p=i(d,"rowsOf");return Ae(p,"Table","rowsOf"),Ap(p).map(m=>m.key)}}}var Me=e=>{let n=(e??"").replace(/\s+/g," ").trim();return JSON.stringify(n.length>60?`${n.slice(0,59)}…`:n)},OS=e=>e==="danger"||e==="warning",ky=e=>Array.isArray(e)?e.length:0;function NS(e,n){let{props:i}=e;switch(e.type){case"Heading":return`Heading ${Me(e.text)}`;case"Callout":return`Callout ${String(i.tone??"neutral")} ${Me(e.label??e.text)}`;case"EmptyState":return`EmptyState ${Me(e.label)}`;case"Table":return`Table ${Me(e.label)}: ${ky(i.rows)} row(s)${i.hasMore===!0?", more":""}`;case"Tree":return`Tree ${Me(e.label)}: ${ky(i.items)} top-level item(s)`;case"Tabs":return`Tabs ${Me(e.label)}: ${Me(n.get(e.path))} selected`;case"Skeleton":case"Spinner":return`${e.type} ${Me(e.label??"Loading")}`;case"Text":return i.tone==="danger"||i.tone==="warning"?`Text ${String(i.tone)} ${Me(e.text)}`:null;case"Box":{let o=[i.background,i.border].find(OS);return o?`Box ${o} ${Me(e.text)}`:null}default:return null}}function xy(e,n){let i=[];for(let o of e){if(o.type==="List"){let r=e.filter(a=>a.type==="ListItem"&&a.path.startsWith(`${o.path}/`)).length;i.push(`List ${Me(o.label)}: ${r} item(s)`);continue}let t=NS(o,n);t&&i.push(t)}return i.length>12?[...i.slice(0,12),`… ${i.length-12} more`]:i}function wy(e){return"path"in e}var DS=100,CS=()=>new Promise(e=>typeof setImmediate=="function"?setImmediate(e):setTimeout(e,0));async function Iy(e,n){let i=n.host,o=new Map,t=(w,O)=>{for(let E of o.get(w)??[])E(O)},r=[],a=[],s=[],u={plugin:new Map,workspace:new Map};gy(u,n.persisted);let c=n.visible??!0,d={document:"",revision:0,tree:null},p=dy(),m=py(i.bridge.call),f=i.onDataChange(m.changed);function g(w,O){if(w===Be.ready)t(Be.hydrate,{panel:{id:n.panelId??"panel"},visible:c,plugin:Object.fromEntries(u.plugin),workspace:Object.fromEntries(u.workspace)});else if(w===Be.render){let E=ny(O);if(!E.ok){a.push({kind:"refused",message:E.error}),E.document!==null&&E.revision!==null&&t(Be.ack,{document:E.document,revision:E.revision,accepted:!1});return}s.push(...E.warnings.filter(F=>!s.includes(F))),d={document:E.document,revision:E.revision,tree:E.tree},p.observe(xa(E.tree)),t(Be.ack,{document:E.document,revision:E.revision,accepted:!0})}else if(w===Be.error){let E=ty.safeParse(O);a.push(E.success?{kind:"plugin",message:E.data.message,...E.data.stack?{stack:E.data.stack}:{}}:{kind:"plugin",message:String(O)})}else if(w===Be.persist){let E=iy.safeParse(O);if(!E.success){a.push({kind:"refused",message:"persisted state Orca would not store"});return}for(let F of E.data.entries)u[F.scope].set(F.key,{version:F.version,value:F.value})}}let y=zS({post:g,awaitHydration:!0,colorScheme:n.theme??"dark",schedule:w=>r.push(w),bridge:{api:i.bridge.api,locale:n.locale??"en",host:{call:i.bridge.call,has:i.bridge.has},...m.facades,on(w,O){let E=o.get(w)??new Set;return E.add(O),o.set(w,E),{dispose:()=>E.delete(O)}}}});async function x(){for(let w=0;wvy(xa(d.tree),w=>p.valueOf(w)),b=w=>cy(I().filter(O=>uy(O,w)));function T(w,O){let E=wy(w)?I().find(F=>F.path===w.path):b(w)[0];if(!E)throw new Error(wy(w)?`${O}: the element is no longer in the panel`:`${O}: nothing in the panel matches { ${ly(w)} }`);if(E.disabled)throw new Error(`${O}: the ${E.type} is disabled`);return E}function A(w,O,E){let F=typeof w=="object"&&w!==null&&"$callback"in w?w.$callback:null;typeof F=="string"&&t(Be.event,{document:d.document,revision:d.revision,callback:F,args:O,...E===void 0?{}:{edit:E}})}await Promise.resolve(typeof e=="function"?{default:e}:e).then(w=>y.boot(w)).catch(w=>a.push({kind:"plugin",message:w instanceof Error?w.message:String(w),...w instanceof Error&&w.stack?{stack:w.stack}:{}})),await x();let D=$y({host:i,controls:p,resolve:T,elements:I,dispatch:A,settled:x});return{host:i,errors:a,warnings:s,get refusals(){return i.refusals},find:w=>b(w)[0]??null,findAll:b,tree:()=>d.tree?Sp(d.tree):null,drawnTree:()=>d.tree,summary:()=>{let w=xa(d.tree),O=I(),E=new Map(O.filter(F=>F.type==="Tabs").map(F=>[F.path,Ep(F,w,p.valueOf(F))?.label??""]));return xy(O,E)},get persisted(){let w=O=>Object.fromEntries([...u[O]].map(([E,F])=>[E,F.value]));return{plugin:w("plugin"),workspace:w("workspace"),storage:i.data().storage}},settled:x,...D,valueOf:w=>p.valueOf(T(w,"valueOf")),async emit(w,O){t(w,O),await x()},async post(w,O){m.post(w,O),await x()},async setVisible(w){c=w,t(Be.visibility,{visible:w}),await x()},async rerender(){y.rerender(),await x()},async unmount(){y.dispose(),o.clear(),f()}}}var Sy={workspaceId:l.string().min(1).max(2048),kind:l.enum(["worktree","folder"])},jS=l.object({...Sy,path:l.string().min(1).max(32*1024),branch:l.string().max(1024)}),LS=l.object({...Sy,path:l.string().min(1).max(32*1024)}),US=l.object({workspaceId:l.string().min(1).max(2048).nullable(),paneKey:l.string().min(1).max(2048),terminalId:l.string().min(1).max(nt).optional(),title:l.string().max(Hr).optional(),state:l.enum(Dn),receivedAt:l.number().finite().positive(),mainAgent:l.object({state:l.enum(Dn),outcome:l.enum(gv).optional(),stateStartedAt:l.number().finite()}).optional()}),RS=l.object({context:gp}),zp={"workspace.created":jS,"workspace.removed":LS,"agent.status.changed":US,"workspace.changed":RS};var qr=["terminal.send","workspace.create.before","workspace.create.after","agent.launch.before","agent.prompt.before","agent.tool.before","agent.tool.after","editor.save.before"],rC=qr.length,MS={"terminal.send":je,"workspace.create.before":je,"workspace.create.after":je,"agent.launch.before":je,"agent.prompt.before":je,"agent.tool.before":je,"agent.tool.after":je,"editor.save.before":je};function Sa(e){return qr.some(n=>n===e)}var iC=l.object({event:l.enum(qr).meta({...ae("Hook the worker handles with `orca.hooks.on`.",je),[Nn]:MS}),onError:l.enum(["pass","deny"]).optional().meta(ae("What Orca does when this plugin's hook throws, times out, crashes or does not start: `pass` (the default) carries on as if it passed; `deny` refuses the action, naming the plugin, so a guard fails closed. Ignored for hooks that only observe.",je))}).strict().meta({id:"HookContribution",description:"A hook Orca runs through the worker before (or after) it acts. Requires `main` and the `trusted-worker` execution profile."});var sC=1024*1024,uC=new TextEncoder,cC=new Uint8Array(0);var vC=16*1024*1024,yC=16*1024*1024;var ZS=256*1024;var IC=16*1024,Yr=16*1024*1024;var bt=2e3,Rn=l.strictObject({deny:l.string().min(1).max(500)}),VS=l.object({terminalId:l.string().min(1).max(nt),text:l.string().max(Yr),enter:l.boolean(),inputKind:l.enum(["driving","orchestration","launch"])}),GS=l.object({kind:l.enum(["worktree","folder"]),projectId:l.string().min(1).max(2048),name:l.string().min(1).max(1024),branch:l.string().min(1).max(1024).optional(),base:l.string().min(1).max(1024).optional()}),FS=l.object({workspaceId:l.string().min(1).max(2048),kind:l.enum(["worktree","folder"]),path:l.string().min(1).max(32*1024),branch:l.string().max(1024)}),BS=l.record(l.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(256).refine(e=>!e.toUpperCase().startsWith("ORCA_"),"ORCA_* variables are reserved"),l.string().max(32*1024)).refine(e=>Object.keys(e).length<=64,"at most 64 variables"),HS=l.enum(["worktree","folder"]),KS=l.object({agent:l.string().min(1).max(64),workspaceId:l.string().min(1).max(2048).nullable(),workspaceKind:HS.nullable(),terminalId:l.string().min(1).max(nt).optional(),command:l.string().min(1).max(Yr),env:BS}),WS=l.object({agent:l.string().min(1).max(64).nullable(),terminalId:l.string().min(1).max(nt),prompt:l.string().max(Yr),inputKind:l.enum(["driving","orchestration","launch"])}),Py={agent:l.string().min(1).max(64),workspaceId:l.string().min(1).max(2048).nullable(),terminalId:l.string().min(1).max(nt).optional(),tool:l.string().min(1).max(256),input:l.unknown(),callId:l.string().min(1).max(256).optional()},JS=l.object(Py),XS=l.object({...Py,output:l.unknown().optional()}),qS=l.object({workspaceId:l.string().min(1).max(2048).nullable(),path:l.string().min(1).max(32*1024),languageId:l.string().min(1).max(128).optional(),text:l.string().max(Yr)}),Qr={"terminal.send":{payload:VS,result:Rn,mutable:["text","enter"],deadlineMs:bt,summary:"Text Orca, the CLI or a plugin is about to send to a terminal. A person typing (on the desktop, a phone or a paired client) is never hooked, and prompts Orca submits to an agent take `agent.prompt.before` instead. Writes to one terminal stay in order while a hook decides. Rewrite `text` or `enter` with `next`, or return `{ deny }` to refuse the send."},"workspace.create.before":{payload:GS,result:Rn,mutable:["name","branch","base"],deadlineMs:bt,summary:"A worktree or folder workspace is about to be created. Change `name`, `branch` or `base` with `next`, or return `{ deny }` to refuse it."},"workspace.create.after":{payload:FS,result:null,mutable:[],deadlineMs:bt,summary:"A worktree or folder workspace was created. Observe only: Orca does not wait for it, and results are ignored."},"agent.launch.before":{payload:KS,result:Rn,mutable:["command","env"],deadlineMs:bt,summary:"Orca is about to start an agent CLI in a terminal, from any launcher (new tab, workspace create, CLI, automation, orchestration). Change `command` or add `env` with `next`, or return `{ deny }` to refuse the launch. Restores of saved sessions are not hooked."},"agent.prompt.before":{payload:WS,result:Rn,mutable:["prompt"],deadlineMs:bt,summary:"Orca is about to submit a prompt to an agent in a terminal: a launch prompt, an orchestration dispatch, an issue or task prompt, or `orca terminal send` to an agent. A prompt a person submits is never hooked, and writes to one terminal stay in order while it decides. Rewrite `prompt` with `next`, or return `{ deny }` to refuse it."},"agent.tool.before":{payload:JS,result:Rn,mutable:["input"],deadlineMs:bt,summary:"An agent in an Orca terminal is about to run a tool. Claude Code waits for the answer: return `{ deny }` to refuse the call (the agent sees the reason) or change `input` with `next`; the person is still asked as usual. Other agents only report the call, so their results are ignored. Agents on SSH or WSL hosts are not hooked yet."},"agent.tool.after":{payload:XS,result:null,mutable:[],deadlineMs:bt,summary:"An agent in an Orca terminal finished a tool call (successfully or not). Observe only: Orca does not wait for it."},"editor.save.before":{payload:qS,result:Rn,mutable:["text"],deadlineMs:bt,summary:"The person is about to save a text file from an Orca editor tab (an explicit save, not autosave). Change `text` with `next` (format on save) or return `{ deny }` to refuse the save, which shows your reason. Edits made while the hook ran stay unsaved."}};var Pa=class{constructor(n){this.event=n}event},zC=l.object({event:l.enum(qr),payload:l.unknown()}),Ty=l.discriminatedUnion("decision",[l.object({decision:l.literal("continue"),payload:l.unknown()}),l.object({decision:l.literal("result"),result:l.unknown()})]);async function Ey(e,n){let i=n;for(let o of e){let r=await o(i,a=>new Pa(a??i));if(r instanceof Pa)i=r.event;else if(r!=null)return{decision:"result",result:r}}return{decision:"continue",payload:i}}function YS(e){return e instanceof Error?e.message:String(e)}function Ay(e,n,i="timed out"){let o,t=new Promise((r,a)=>{o=setTimeout(()=>a(new Error(`${i} after ${n}ms`)),n)});return Promise.race([e,t]).finally(()=>clearTimeout(o))}function QS(e,n,i){let o=Qr[e];if(!Re(n)||!Re(i))return{ok:!1,reason:"next() was given something other than the event object"};let t={...n};for(let a of o.mutable)Object.hasOwn(i,a)&&(t[a]=i[a]);let r=o.payload.safeParse(t);return r.success?{ok:!0,payload:r.data}:{ok:!1,reason:r.error.issues[0]?.message??"invalid change"}}var Dp=class extends Error{};async function Oy(e){let{event:n}=e,i=Qr[n],o=e.deadlineMs??i.deadlineMs,t=e.payload;for(let r of e.participants){let a=e.now(),s=()=>Math.round(e.now()-a),u=i.result!==null&&e.failsClosed?.(r)===!0,c=(f,g=!1)=>u&&!g?(e.log(r,`hook ${n} denied after ${s()}ms (onError: deny): ${f}`),{kind:"deny",pluginKey:r,reason:`${r} failed and denies on error: ${f}`}):(e.log(r,`hook ${n} skipped after ${s()}ms: ${f}`),null),d;try{if(e.start){let f=e.startTimeoutMs??o;await Ay(e.start(r),f,"worker did not start")}d=await Ay(e.invoke(r,t,o),o)}catch(f){let g=c(YS(f),f instanceof Dp);if(g)return g;continue}let p=Ty.safeParse(d);if(!p.success){let f=c("the worker answered with something other than a hook decision");if(f)return f;continue}if(p.data.decision==="continue"){let f=QS(n,t,p.data.payload);f.ok?t=f.payload:e.log(r,`hook ${n}: change ignored: ${f.reason}`);continue}if(i.result===null)continue;let m=i.result.safeParse(p.data.result);if(!m.success){e.log(r,`hook ${n}: result ignored: return next(event) or { deny: reason }`);continue}return{kind:"deny",pluginKey:r,reason:m.data.deny}}return{kind:"continue",payload:t}}function eP(e){return typeof e!="object"||e===null||!("workspaceId"in e)||"worktreeId"in e?e:{...e,worktreeId:e.workspaceId}}function ei(e,n){return typeof e=="object"&&e!==null&&n in e?Object.getOwnPropertyDescriptor(e,n)?.value:void 0}function Ta(e,n){return e.add(n),{dispose:()=>{e.delete(n)}}}var tP=new Set(Kr("worker"));function Ny(){return{commands:new Map,events:new Map,hooks:new Map,panelRequests:new Map,dataListeners:{storage:new Set,settings:new Set}}}function zy(e){let{tables:n,hostCall:i}=e,o=async(t,r)=>{await i(t,r)};return Object.freeze({api:Object.freeze({major:Ue,minor:jv}),commands:Object.freeze({register(t,r){return n.commands.set(t,r),{dispose:()=>{n.commands.delete(t)}}}}),events:Object.freeze({on(t,r){let a=la.get(t)??t,s=n.events.get(a)??new Set;n.events.set(a,s);let u=a!==t||t==="agent.status.changed",c=Ta(s,p=>r(u?eP(p):p));if(t!=="workspace.changed")return c;let d=!0;return i("workspace.readContext").then(p=>d&&r({context:p})).catch(()=>{}),{dispose:()=>{d=!1,c.dispose()}}}}),hooks:Object.freeze({on(t,r){if(!Sa(t))throw new TypeError(`orca.hooks.on: unknown hook ${String(t)}`);if(typeof r!="function")throw new TypeError("orca.hooks.on needs a handler function");let a=n.hooks.get(t)??new Set;return n.hooks.set(t,a),Ta(a,r)}}),host:Object.freeze({call:(t,r,a)=>i(t,r,a),has:t=>tP.has(t)}),panels:Object.freeze({handle(t,r){if(vt.parse(t),typeof r!="function")throw new TypeError("orca.panels.handle needs a handler function");return n.panelRequests.set(t,r),{dispose:()=>{n.panelRequests.get(t)===r&&n.panelRequests.delete(t)}}},post(t,r,a){vt.parse(t),e.postToPanels({event:t,payload:r,...a?.panel?{panel:a.panel}:{}})}}),storage:Object.freeze({get:async t=>ei(await i("storage.get",{key:t}),"value")??null,set:(t,r)=>o("storage.set",{key:t,value:r}),delete:t=>o("storage.delete",{key:t}),keys:async()=>{let t=ei(await i("storage.keys"),"keys");return Array.isArray(t)?t.filter(r=>typeof r=="string"):[]},onDidChange:t=>Ta(n.dataListeners.storage,t)}),settings:Object.freeze({get:async t=>{let r=ei(await i("settings.get"),"settings"),a=typeof r=="object"&&r!==null?{...r}:{};return t===void 0?a:ei(a,t)},set:(t,r)=>o("settings.set",{key:t,value:r}),onDidChange:t=>Ta(n.dataListeners.settings,t)}),secrets:Object.freeze({get:async t=>{let r=ei(await i("secrets.get",{key:t}),"value");return typeof r=="string"?r:null},set:(t,r)=>o("secrets.set",{key:t,value:r}),delete:t=>o("secrets.delete",{key:t})}),grantedCapabilities:Object.freeze([...e.grantedCapabilities]),log:t=>e.log(String(t))})}var Dy={id:"test-panel",surface:"panel",contributionId:"panel"};function nP(e){return Object.hasOwn(zp,e)}function rP(e){return e instanceof Error?e.message:String(e)}async function Cy(e,n){let{host:i}=n,o=new Set(n.events),t=n.hooks.map(b=>typeof b=="string"?{event:b}:b),r=new Set(t.map(b=>b.event)),a=new Set(t.filter(b=>b.onError==="deny").map(b=>b.event)),s=Ny(),u=[],c=[],d=!0,p=e.default;if(typeof p!="function")throw new TypeError(typeof e.activate=="function"?"mountWorker: the module exports activate by name, but Orca calls the default export: write `export default function activate(orca)`":"mountWorker: the module has no default-exported activate(orca) function");let m=e.deactivate;if(m!==void 0&&typeof m!="function")throw new TypeError("mountWorker: the module exports a deactivate that is not a function");let f=zy({tables:s,hostCall:(b,T)=>i.worker.call(b,T),postToPanels:b=>{c.push(b)},log:b=>{u.push(b)},grantedCapabilities:i.capabilities}),g=i.onDataChange((b,T)=>{for(let A of s.dataListeners[b])A({key:T})});await p(f);let y=n.commands?[...s.commands.keys()].find(b=>!n.commands?.includes(b)):void 0;if(y!==void 0)throw new Error(`registered undeclared command ${y}: list it in contributes.commands`);async function x(b,T,A){let D=s.panelRequests.get(b);if(!D)throw He("unknown_method",`no panel handler named ${b}`);let w={...Dy,contributionId:A??Dy.contributionId};return D(T,{panel:w,signal:new AbortController().signal})}let I=i.routeRequests((b,T)=>x(b,T));return{host:i,logs:u,posts:c,get refusals(){return i.refusals},async emit(b,T){if(!nP(b))throw new Error(`emit: "${b}" is not an event Orca sends to workers`);if(!o.has(b))throw new Error(`emit: "${b}" never arrives: it is not in contributes.events`);let A=zp[b].safeParse(T);if(!A.success)throw new TypeError(`emit: that ${b} payload is not one Orca sends: ${A.error.issues[0]?.message??""}`);let D=s.events.get(la.get(b)??b)??[];await Promise.all([...D].map(async w=>w(A.data))),await i.idle()},hooks:{async fire(b,T){if(!Sa(b))throw new Error(`hooks.fire: "${b}" is not a hook Orca runs`);if(!r.has(b))throw new Error(`hooks.fire: "${b}" never runs: it is not in contributes.hooks`);let A=Qr[b].payload.safeParse(T);if(!A.success)throw new TypeError(`hooks.fire: that ${b} event is not one Orca sends: ${A.error.issues[0]?.message??""}`);let D=await Oy({event:b,payload:A.data,participants:["worker"],invoke:(w,O)=>Ey(s.hooks.get(b)??[],O),log:(w,O)=>{u.push(O)},now:()=>performance.now(),failsClosed:()=>a.has(b)});return await i.idle(),D.kind==="deny"?{kind:"deny",reason:D.reason}:{kind:"continue",event:D.payload}}},async command(b,T){let A=s.commands.get(b);if(!A)throw new Error(`command: the worker registered no "${b}"`);let D=await A(T,{signal:new AbortController().signal});return await i.idle(),D},async request(b,T,A={}){let D=await x(b,T,A.panel);return await i.idle(),D},async deactivate(){if(d){d=!1,g(),I(),s.events.clear(),s.hooks.clear(),s.commands.clear(),s.panelRequests.clear();try{await(typeof m=="function"?m():void 0)}catch(b){throw new Error(`deactivate threw: ${rP(b)}`,{cause:b})}await i.idle()}}}}import{test as Yj,describe as Qj,beforeEach as eL,afterEach as tL}from"node:test";import{default as rL}from"node:assert/strict";import{runInThisContext as dP}from"node:vm";function jy(e){if(typeof e!="object"||e===null||!("on"in e)||!("document"in e))return!1;let n=e.document;return typeof e.on=="function"&&typeof n=="object"&&n!==null&&"session"in n&&typeof n.session=="function"&&"applyEdit"in n&&typeof n.applyEdit=="function"}var Ke=1;var jp=["invalid_request","invalid_params","unknown_method","capability_denied","consent_required","not_permitted","rate_limited","unavailable","action_failed","cancelled","timeout","conflict","too_large"],iP=new Set(["rate_limited","unavailable","timeout","conflict"]);function oP(e){return jp.find(n=>n===e)??"action_failed"}function _t(e,n,i){let o=oP(e);return{code:o,message:n.slice(0,8192),retryable:iP.has(o),...i===void 0?{}:{retryAfterMs:i}}}var Cp=l.number().int().nonnegative(),Ly=l.string().min(1).max(128),aP=l.object({code:l.string().max(64),message:l.string().max(8192),retryable:l.boolean(),retryAfterMs:l.number().int().nonnegative().optional()}),rj=l.discriminatedUnion("kind",[l.object({orca:l.literal(Ke),kind:l.literal("req"),id:Cp,method:Ly,params:l.unknown().optional()}),l.object({orca:l.literal(Ke),kind:l.literal("res"),id:Cp,result:l.unknown().optional(),error:aP.optional()}),l.object({orca:l.literal(Ke),kind:l.literal("evt"),event:Ly,payload:l.unknown().optional()}),l.object({orca:l.literal(Ke),kind:l.literal("cancel"),id:Cp})]);var Ft={ready:"ready",hello:"hello",theme:"theme",ping:"ping",pong:"pong",editorKeydown:"editor.keydown",editorDocument:"editor.document",editorSubscribed:"editor.subscribed",editorMerges:"editor.merges",push:"plugin.push"},Mn={applyEdit:"editor.applyEdit",flush:"editor.flush"},Uy=64*1024;var sP=l.string().min(32).max(128),uj=l.object({sessionToken:sP,action:l.string().min(1),params:l.unknown().optional()}).strict();var Lp=64*1024*1024,fj=16*1024*1024;var Up=1e3,uP=l.strictObject({baseVersion:l.number().int().nonnegative(),content:l.discriminatedUnion("kind",[l.strictObject({kind:l.literal("text"),text:l.string()}),l.strictObject({kind:l.literal("bytes"),bytes:l.instanceof(ArrayBuffer)})])});function Ry(e){let n=uP.safeParse(e);return n.success?n.data:null}var Rp=_t("conflict","The file changed outside this editor; edit the latest document."),My=_t("too_large","The edit is larger than Orca accepts; the file keeps its last accepted edit.");var Zy="__orcaPluginFrameTransport",Vy="__orcaDeclarativePost";var Gy=` +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let a of e.seen.entries()){let s=a[1];if(n===a[0]){r(a);continue}if(e.external){let c=e.external.registry.get(a[0])?.id;if(n!==a[0]&&c){r(a);continue}}if(e.metadataRegistry.get(a[0])?.id){r(a);continue}if(s.cycle){r(a);continue}s.count>1&&e.reused==="ref"&&r(a)}e.external&&(e.sharedDefsExtractedFor=e.external)}function tg(e){let n=e.anyOf;if(!Array.isArray(n)||n.length===0||e.type!==void 0)return;let i=[];for(let o of n){if(!o||typeof o!="object")return;tg(o);let t=Object.keys(o);if(t.length!==1||t[0]!=="type")return;let r=o.type;for(let a of Array.isArray(r)?r:[r]){if(typeof a!="string")return;i.includes(a)||i.push(a)}}delete e.anyOf,e.type=i.length===1?i[0]:i}var ng=new Set(["type","properties","required","additionalProperties"]),Qf=["oneOf","anyOf"];function eg(e){let n=e.additionalProperties;return n===void 0||n===!1||typeof n!="object"||n===null?null:Object.keys(n).length?n:null}function al(e){let n=[];for(let r of e){if(typeof r!="object"||r.type!=="object")return null;for(let a in r)if(!ng.has(a))return null;n.push(r)}let i={},o=new Set;for(let r of n){for(let a in r.properties){if(Object.prototype.hasOwnProperty.call(i,a))continue;let s=[];for(let c of n){let d=c.properties?.[a]??eg(c);d!=null&&(s.some(p=>JSON.stringify(p)===JSON.stringify(d))||s.push(d))}let u=s.length===1?s[0]:al(s)??{allOf:s};se(i,a,u)}for(let a of r.required??[])o.add(a)}let t={type:"object",properties:i};if(o.size&&(t.required=[...o]),n.every(r=>r.additionalProperties===!1))t.additionalProperties=!1;else{let r=[];for(let a of n){let s=eg(a);s&&!r.some(u=>JSON.stringify(u)===JSON.stringify(s))&&r.push(s)}r.length===1?t.additionalProperties=r[0]:r.length>1&&(t.additionalProperties={allOf:r})}return t}function dx(e){let n=e.allOf;if(!Array.isArray(n)||n.length<2)return;for(let t of ng)if(t in e)return;let i=n.filter(t=>Qf.some(r=>Array.isArray(t[r]))),o=null;if(!i.length)o=al(n);else{let t=i[0],r=Qf.find(u=>Array.isArray(t[u]));if(Object.keys(t).length!==1)return;let a=n.filter(u=>u!==t),s=t[r].map(u=>al([...a,u]));if(s.some(u=>!u))return;o={[r]:s}}o&&(delete e.allOf,wr(e,o))}function dt(e,n){let i=e.seen.get(n);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");let o=s=>{let u=e.seen.get(s);if(u.ref===null)return;let c=u.def??u.schema,d={...c},p=u.ref;if(u.ref=null,p){o(p);let f=e.seen.get(p),g=f.schema;if(g.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(g)):wr(c,g),wr(c,d),s._zod.parent===p)for(let x in c)x==="$ref"||x==="allOf"||x in d||delete c[x];if(g.$ref&&f.def)for(let x in c)x==="$ref"||x==="allOf"||x in f.def&&JSON.stringify(c[x])===JSON.stringify(f.def[x])&&delete c[x]}let m=s._zod.parent;if(m&&m!==p){o(m);let f=e.seen.get(m);if(f?.schema.$ref&&(c.$ref=f.schema.$ref,f.def))for(let g in c)g==="$ref"||g==="allOf"||g in f.def&&JSON.stringify(c[g])===JSON.stringify(f.def[g])&&delete c[g]}e.override({zodSchema:s,jsonSchema:c,path:u.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let s of[...e.seen.entries()].reverse())o(s[0]);if(e.target!=="openapi-3.0")for(let s of e.seen.entries())tg(s[1].def??s[1].schema);for(let s of e.deferred)s();if(e.intersections.length){let s=new Map;for(let u of e.seen.values())for(let c of[u.schema,u.def]){let d=c?.allOf;if(!Array.isArray(d))continue;let p=s.get(d);p?p.push(c):s.set(d,[c])}for(let u of e.intersections)for(let c of s.get(u)??[])dx(c)}}let t={};if(e.target==="draft-2020-12"?t.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?t.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?t.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let s=e.external.registry.get(n)?.id;if(!s)throw new Error("Schema is missing an `id` property");t.$id=e.external.uri(s)}wr(t,i.defId?i.schema:i.def??i.schema);let r=e.metadataRegistry.get(n)?.id;r!==void 0&&t.id===r&&delete t.id;let a=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let s of e.seen.entries()){let u=s[1];u.def&&u.defId&&(u.def.id===u.defId&&delete u.def.id,se(a,u.defId,u.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(a).length>0&&(e.target==="draft-2020-12"?t.$defs=a:t.definitions=a);try{let s=JSON.parse(JSON.stringify(t));return Object.defineProperty(s,"~standard",{value:{...n["~standard"],jsonSchema:{input:$n(n,"input",e.processors),output:$n(n,"output",e.processors)}},enumerable:!1,writable:!1}),s}catch{throw new Error("Error converting schema to JSON.")}}function me(e,n){let i=n??{seen:new Set};if(i.seen.has(e))return!1;i.seen.add(e);let o=e._zod.def;if(o.type==="transform")return!0;if(o.type==="array")return me(o.element,i);if(o.type==="set")return me(o.valueType,i);if(o.type==="lazy")return me(o.getter(),i);if(o.type==="promise"||o.type==="optional"||o.type==="nonoptional"||o.type==="nullable"||o.type==="readonly"||o.type==="default"||o.type==="prefault"||o.type==="catch")return me(o.innerType,i);if(o.type==="intersection")return me(o.left,i)||me(o.right,i);if(o.type==="record"||o.type==="map")return me(o.keyType,i)||me(o.valueType,i);if(o.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:me(o.in,i)||me(o.out,i);if(o.type==="object"){for(let t in o.shape)if(me(o.shape[t],i))return!0;return!1}if(o.type==="union"){for(let t of o.options)if(me(t,i))return!0;return!1}if(o.type==="tuple"){for(let t of o.items)if(me(t,i))return!0;return!!(o.rest&&me(o.rest,i))}return!1}var sl=(e,n={})=>i=>{let o=ct({...i,processors:n});return J(e,o),lt(o,e),dt(o,e)},$n=(e,n,i={})=>o=>{let{libraryOptions:t,target:r}=o??{},a=ct({...t??{},target:r,io:n,processors:i});return J(e,a),lt(a,e),dt(a,e)};var kn=(e,n,i)=>{(e[n]===void 0||i>e[n])&&(e[n]=i)},xn=(e,n,i)=>{(e[n]===void 0||i{kn(e,"minimum",n),xn(e,"maximum",n)},sg=(e,n)=>{e.multipleOf??(e.multipleOf=[]),e.multipleOf.includes(n)||e.multipleOf.push(n)},ug=(e,n)=>{e.patterns??(e.patterns=new Set),e.patterns.add(n)},cg=(e,n)=>{e.mime=e.mime?e.mime.filter(i=>n.includes(i)):[...n]},lg=(e,n)=>{e.format=n,n.includes("int")&&(e.isInt=!0)},ig=(e,n)=>kn(e,"minimum",n.minimum),og=(e,n)=>xn(e,"maximum",n.maximum),ag=e=>(n,i)=>{lg(n,i.format);let[o,t]=e[i.format];kn(n,"minimum",o),xn(n,"maximum",t)},px={greater_than:(e,n)=>kn(e,n.inclusive?"minimum":"exclusiveMinimum",n.value),less_than:(e,n)=>xn(e,n.inclusive?"maximum":"exclusiveMaximum",n.value),multiple_of:(e,n)=>sg(e,n.value),number_format:ag(Bn),bigint_format:ag(Hn),min_length:ig,max_length:og,length_equals:(e,n)=>rg(e,n.length),min_size:ig,max_size:og,size_equals:(e,n)=>rg(e,n.size),string_format:(e,n)=>{lg(e,n.format),n.pattern&&ug(e,n.pattern),(n.format==="base64"||n.format==="base64url")&&(e.contentEncoding=n.format),(n.local||n.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,n)=>cg(e,n.mime)};function ie(e){let n={},i=e._zod.def,o=e._zod.traits.has("$ZodCheck")?[e,...i.checks??[]]:i.checks??[];for(let r of o)px[r._zod.def.check]?.(n,r._zod.def);let t=e._zod.bag;t.minimum!==void 0&&kn(n,"minimum",t.minimum),t.exclusiveMinimum!==void 0&&kn(n,"exclusiveMinimum",t.exclusiveMinimum),t.maximum!==void 0&&xn(n,"maximum",t.maximum),t.exclusiveMaximum!==void 0&&xn(n,"exclusiveMaximum",t.exclusiveMaximum),t.multipleOf!==void 0&&sg(n,t.multipleOf),t.format!==void 0&&(n.format??(n.format=t.format),t.format.includes("int")&&(n.isInt=!0)),t.mime&&cg(n,t.mime);for(let r of t.patterns??[])ug(n,r);return n}var mx={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},fx=new Map([[Ni,ms],[cr,fs]]),dg=e=>fx.get(e)??e,ll=(e,n,i,o)=>{let t=i;t.type="string";let{minimum:r,maximum:a,format:s,patterns:u,contentEncoding:c,laxFormat:d}=ie(e);if(typeof r=="number"&&(t.minLength=r),typeof a=="number"&&(t.maxLength=a),s&&(t.format=mx[s]??s,t.format===""&&delete t.format,(s==="time"||d)&&delete t.format),c&&(t.contentEncoding=c),u&&u.size>0){let p=[...u].map(dg);p.length===1?t.pattern=p[0].source:p.length>1&&(t.allOf=[...p.map(m=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:m.source}))])}},dl=(e,n,i,o)=>{let t=i,{minimum:r,maximum:a,multipleOf:s,exclusiveMaximum:u,exclusiveMinimum:c,isInt:d}=ie(e);t.type=d?"integer":"number";let p=typeof c=="number"&&c>=(r??Number.NEGATIVE_INFINITY),m=typeof u=="number"&&u<=(a??Number.POSITIVE_INFINITY),f=n.target==="draft-04"||n.target==="openapi-3.0";if(p?f?(t.minimum=c,t.exclusiveMinimum=!0):t.exclusiveMinimum=c:typeof r=="number"&&(t.minimum=r),m?f?(t.maximum=u,t.exclusiveMaximum=!0):t.exclusiveMaximum=u:typeof a=="number"&&(t.maximum=a),s){let g=new Set;for(let I of s)Number.isFinite(I)&&I!==0?g.add(Math.abs(I)):re(e,n,t,o,`A multipleOf divisor of ${I} cannot be represented in JSON Schema`);let[y,...x]=g;y!==void 0&&(t.multipleOf=y),x.length&&(t.allOf=[...t.allOf??[],...x.map(I=>({multipleOf:I}))])}},pl=(e,n,i,o)=>{i.type="boolean"},ml=(e,n,i,o)=>{re(e,n,i,o,"BigInt cannot be represented in JSON Schema")},fl=(e,n,i,o)=>{re(e,n,i,o,"Symbols cannot be represented in JSON Schema")},gl=(e,n,i,o)=>{n.target==="openapi-3.0"?(i.type="string",i.nullable=!0,i.enum=[null]):i.type="null"},hl=(e,n,i,o)=>{re(e,n,i,o,"Undefined cannot be represented in JSON Schema")},vl=(e,n,i,o)=>{re(e,n,i,o,"Void cannot be represented in JSON Schema")},yl=(e,n,i,o)=>{i.not={}},bl=(e,n,i,o)=>{},_l=(e,n,i,o)=>{},$l=(e,n,i,o)=>{re(e,n,i,o,"Date cannot be represented in JSON Schema")},kl=(e,n,i,o)=>{let t=e._zod.def,r=Ht(t.entries);if(r.length===0){i.not={};return}r.every(a=>typeof a=="number")&&(i.type="number"),r.every(a=>typeof a=="string")&&(i.type="string"),i.enum=r},xl=(e,n,i,o)=>{let t=e._zod.def;if(t.values.length===0){i.not={};return}let r=[];for(let a of t.values)if(a===void 0){if(re(e,n,i,o,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof a=="bigint"){if(re(e,n,i,o,"BigInt literals cannot be represented in JSON Schema"))return;r.push(Number(a))}else r.push(a);if(r.length!==0)if(r.length===1){let a=r[0];i.type=a===null?"null":typeof a,n.target==="draft-04"||n.target==="openapi-3.0"?i.enum=[a]:i.const=a}else r.every(a=>typeof a=="number")&&(i.type="number"),r.every(a=>typeof a=="string")&&(i.type="string"),r.every(a=>typeof a=="boolean")&&(i.type="boolean"),r.every(a=>a===null)&&(i.type="null"),i.enum=r},wl=(e,n,i,o)=>{re(e,n,i,o,"NaN cannot be represented in JSON Schema")},Il=(e,n,i,o)=>{let t=i,r=e._zod.pattern;if(!r)throw new Error("Pattern not found in template literal");t.type="string",t.pattern=r.source},Sl=(e,n,i,o)=>{let t=i;t.type="string",t.format="binary",t.contentEncoding="binary";let{minimum:r,maximum:a,mime:s}=ie(e);r!==void 0&&(t.minLength=r),a!==void 0&&(t.maxLength=a),s&&(s.length===0?t.not={}:s.length===1?t.contentMediaType=s[0]:t.anyOf=s.map(u=>({contentMediaType:u})))},Pl=(e,n,i,o)=>{i.type="boolean"},Tl=(e,n,i,o)=>{re(e,n,i,o,"Custom types cannot be represented in JSON Schema")},El=(e,n,i,o)=>{re(e,n,i,o,"Function types cannot be represented in JSON Schema")},Al=(e,n,i,o)=>{re(e,n,i,o,"Transforms cannot be represented in JSON Schema")},Ol=(e,n,i,o)=>{re(e,n,i,o,"Map cannot be represented in JSON Schema")},Nl=(e,n,i,o)=>{re(e,n,i,o,"Set cannot be represented in JSON Schema")},zl=(e,n,i,o)=>{let t=i,r=e._zod.def,{minimum:a,maximum:s}=ie(e);typeof a=="number"&&(t.minItems=a),typeof s=="number"&&(t.maxItems=s),t.type="array",t.items=J(r.element,n,{...o,path:[...o.path,"items"]})};function Ir(e){let n=e._zod.def;return n.type==="pipe"&&n.in._zod.traits.has("$ZodTransform")?Ir(n.out):n.type==="catch"?Ir(n.innerType):e._zod.optin}var Dl=(e,n,i,o)=>{let t=i,r=e._zod.def,a=r.shape;if(Object.getOwnPropertySymbols(a).length&&re(e,n,t,o,"Symbol keys cannot be represented in JSON Schema"))return;t.type="object",t.properties={};for(let c in a)se(t.properties,c,J(a[c],n,{...o,path:[...o.path,"properties",c]}));let u=[];for(let c of Object.keys(a)){let d=r.shape[c];(n.io==="input"?Ir(d)===void 0:d._zod.optout===void 0)&&u.push(c)}u.length>0&&(t.required=u),r.catchall?._zod.def.type==="never"?t.additionalProperties=!1:r.catchall?r.catchall&&(t.additionalProperties=J(r.catchall,n,{...o,path:[...o.path,"additionalProperties"]})):n.io==="output"&&(t.additionalProperties=!1)},Ao=(e,n,i,o)=>{let t=e._zod.def,r=t.inclusive===!1,a=t.options.map((s,u)=>J(s,n,{...o,path:[...o.path,r?"oneOf":"anyOf",u]}));r?i.oneOf=a:i.anyOf=a},Cl=(e,n,i,o)=>{let t=e._zod.def,r=J(t.left,n,{...o,path:[...o.path,"allOf",0]}),a=J(t.right,n,{...o,path:[...o.path,"allOf",1]}),s=c=>"allOf"in c&&Object.keys(c).length===1,u=[...s(r)?r.allOf:[r],...s(a)?a.allOf:[a]];i.allOf=u,n.intersections.push(u)},jl=(e,n,i,o)=>{let t=i,r=e._zod.def;t.type="array";let a=n.target==="draft-2020-12"?"prefixItems":"items",s=n.target==="draft-2020-12"||n.target==="openapi-3.0"?"items":"additionalItems",u=r.items.map((y,x)=>J(y,n,{...o,path:[...o.path,a,x]})),c=r.rest?J(r.rest,n,{...o,path:[...o.path,s,...n.target==="openapi-3.0"?[r.items.length]:[]]}):null,d=r.items.length;for(;d>0;){let y=r.items[d-1];if(!(n.io==="input"?Ir(y)!==void 0:y._zod.optout==="optional"))break;d--}let p=r.items.length,m=!r.rest;n.target==="draft-2020-12"?(t.prefixItems=u,m?t.items=!1:c&&(t.items=c),d>0&&(t.minItems=d),m&&(t.maxItems=p)):n.target==="openapi-3.0"?(t.items={anyOf:u},c&&t.items.anyOf.push(c),d>0&&(t.minItems=d),m&&(t.maxItems=p)):(t.items=u,m?t.additionalItems=!1:c&&(t.additionalItems=c),d>0&&(t.minItems=d),m&&(t.maxItems=p));let{minimum:f,maximum:g}=ie(e);typeof f=="number"&&(t.minItems=f),typeof g=="number"&&(t.maxItems=g)};function ul(e,n,i){if(n.$ref){if(i.has(n))return n;i.add(n);let g=e.get(n)?.def;if(!g)return n;let y=ul(e,g,i);return y===g?n:y}for(let g of["anyOf","oneOf"]){let y=n[g];if(!Array.isArray(y))continue;let x=y.map(I=>ul(e,I,i));x.some((I,b)=>I!==y[b])&&(n={...n,[g]:x})}let o=Array.isArray(n.type)?n.type:[n.type],t=!o.includes("string")&&o.some(g=>g==="number"||g==="integer"),r=n.enum??(n.const!==void 0?[n.const]:void 0);if(!t&&!r?.some(g=>typeof g=="number"))return n;let{minimum:a,maximum:s,exclusiveMinimum:u,exclusiveMaximum:c,multipleOf:d,format:p,id:m,...f}=n;return f.enum?f.enum=f.enum.map(g=>typeof g=="number"?String(g):g):typeof f.const=="number"&&(f.const=String(f.const)),t&&(f.type="string",r||(f.pattern=(o.includes("number")?qe:nr).source)),f}var cl=new WeakMap;function gx(e){let n=new Map;for(let o of e.seen.values())o.def&&!n.has(o.schema)&&n.set(o.schema,o);let i=new Map;for(let o of cl.get(e)??[]){let t=e.seen.get(o),r=(t?.def??t?.schema)?.propertyNames;if(!r||r===!0||i.has(r))continue;let a=ul(n,r,new Set);a!==r&&i.set(r,a)}if(i.size)for(let o of e.seen.values())for(let t of[o.schema,o.def]){let r=t&&i.get(t.propertyNames);r&&(t.propertyNames=r)}}var Ll=(e,n,i,o)=>{let t=i,r=e._zod.def;t.type="object";let a=r.keyType,s=ie(a).patterns;if(r.mode==="loose"&&s&&s.size>0){let d=J(r.valueType,n,{...o,path:[...o.path,"patternProperties","*"]});t.patternProperties={};for(let p of s)se(t.patternProperties,dg(p).source,d)}else{if(n.target==="draft-07"||n.target==="draft-2020-12"){t.propertyNames=J(r.keyType,n,{...o,path:[...o.path,"propertyNames"]});let d=cl.get(n);d||(d=[],cl.set(n,d),n.deferred.push(()=>gx(n))),d.push(e)}t.additionalProperties=J(r.valueType,n,{...o,path:[...o.path,"additionalProperties"]})}let u=a._zod.values,c=n.io==="input"&&Ir(r.valueType)!==void 0;if(u&&!r.partial&&!c){let d=[...u].filter(p=>typeof p=="string"||typeof p=="number");d.length>0&&(t.required=d.map(String))}},Ul=(e,n,i,o)=>{let t=e._zod.def,r=J(t.innerType,n,o),a=n.seen.get(e);n.target==="openapi-3.0"?(a.ref=t.innerType,i.nullable=!0):i.anyOf=[r,{type:"null"}]},Rl=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType},Ml=Symbol();function pg(e,n,i,o,t){let r=!1,a=JSON.stringify(e,(s,u)=>typeof u!="bigint"?u:(r=!0,null));return r?(re(n,i,o,t,"BigInt defaults cannot be represented in JSON Schema"),Ml):JSON.parse(a)}var Zl=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType;let a=pg(t.defaultValue,e,n,i,o);a!==Ml&&(i.default=a)},Vl=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);if(r.ref=t.innerType,n.io!=="input")return;let a=pg(t.defaultValue,e,n,i,o);a!==Ml&&(i._prefault=a)},Gl=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType;let a;try{a=t.catchValue(void 0)}catch{re(e,n,i,o,"Dynamic catch values are not supported in JSON Schema");return}i.default=a},Fl=(e,n,i,o)=>{let t=e._zod.def,r=t.in._zod.traits.has("$ZodTransform"),a=n.io==="input"?r?t.out:t.in:t.out;J(a,n,o);let s=n.seen.get(e);s.ref=a},Bl=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType,i.readOnly=!0},Hl=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType},Oo=(e,n,i,o)=>{let t=e._zod.def;J(t.innerType,n,o);let r=n.seen.get(e);r.ref=t.innerType},Kl=(e,n,i,o)=>{let t=e._zod.innerType;J(t,n,o);let r=n.seen.get(e);r.ref=t},Eo={string:ll,number:dl,boolean:pl,bigint:ml,symbol:fl,null:gl,undefined:hl,void:vl,never:yl,any:bl,unknown:_l,date:$l,enum:kl,literal:xl,nan:wl,template_literal:Il,file:Sl,success:Pl,custom:Tl,function:El,transform:Al,map:Ol,set:Nl,array:zl,object:Dl,union:Ao,intersection:Cl,tuple:jl,record:Ll,nullable:Ul,nonoptional:Rl,default:Zl,prefault:Vl,catch:Gl,pipe:Fl,readonly:Bl,promise:Hl,optional:Oo,lazy:Kl};function No(e,n){if("_idmap"in e){let o=e,t=ct({...n,processors:Eo}),r={};for(let u of o._idmap.entries()){let[c,d]=u;J(d,t)}let a={},s={registry:o,uri:n?.uri,defs:r};t.external=s;for(let u of o._idmap.entries()){let[c,d]=u;lt(t,d),se(a,c,dt(t,d))}if(Object.keys(r).length>0){let u=t.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[u]:r}}return{schemas:a}}let i=ct({...n,processors:Eo});return J(e,i),lt(i,e),dt(i,e)}var zo=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(n){this.ctx.counter=n}get seen(){return this.ctx.seen}constructor(n){let i=n?.target??"draft-2020-12";i==="draft-4"&&(i="draft-04"),i==="draft-7"&&(i="draft-07"),this.ctx=ct({processors:Eo,target:i,...n?.metadata&&{metadata:n.metadata},...n?.unrepresentable&&{unrepresentable:n.unrepresentable},...n?.override&&{override:n.override},...n?.io&&{io:n.io}})}process(n,i={path:[],schemaPath:[]}){return J(n,this.ctx,i)}emit(n,i){i&&(i.cycles&&(this.ctx.cycles=i.cycles),i.reused&&(this.ctx.reused=i.reused),i.external&&(this.ctx.external=i.external)),this.ctx.sharedDefsExtractedFor=void 0,this.ctx.sharedEmitDoneFor=void 0,lt(this.ctx,n);let o=dt(this.ctx,n),{"~standard":t,...r}=o;return r}};var mg={};var On={};We(On,{ZodAny:()=>gd,ZodArray:()=>bd,ZodBase64:()=>Yo,ZodBase64URL:()=>Qo,ZodBigInt:()=>En,ZodBigIntFormat:()=>na,ZodBoolean:()=>Tn,ZodCIDRv4:()=>Xo,ZodCIDRv6:()=>qo,ZodCUID:()=>Go,ZodCUID2:()=>Fo,ZodCatch:()=>Md,ZodCodec:()=>Cr,ZodCreditCard:()=>sd,ZodCustom:()=>jr,ZodCustomStringFormat:()=>Lt,ZodDate:()=>Er,ZodDefault:()=>Dd,ZodDiscriminatedUnion:()=>$d,ZodE164:()=>ea,ZodEmail:()=>Ro,ZodEmoji:()=>Zo,ZodEnum:()=>In,ZodExactOptional:()=>aa,ZodFile:()=>Ad,ZodFunction:()=>Xd,ZodGUID:()=>Mo,ZodIBAN:()=>ud,ZodIPv4:()=>Wo,ZodIPv6:()=>Jo,ZodISODate:()=>mt,ZodISODateTime:()=>pt,ZodISODuration:()=>gt,ZodISOTime:()=>ft,ZodInstanceOf:()=>Qd,ZodIntersection:()=>kd,ZodJWT:()=>ta,ZodKSUID:()=>Ko,ZodLazy:()=>Kd,ZodLiteral:()=>Ed,ZodMAC:()=>ad,ZodMap:()=>Pd,ZodNaN:()=>Vd,ZodNanoID:()=>Vo,ZodNever:()=>vd,ZodNonOptional:()=>sa,ZodNull:()=>md,ZodNullable:()=>zd,ZodNumber:()=>Pn,ZodNumberFormat:()=>Ut,ZodObject:()=>Or,ZodOptional:()=>zr,ZodPipe:()=>Dr,ZodPrefault:()=>jd,ZodPreprocess:()=>Gd,ZodPromise:()=>Jd,ZodReadonly:()=>Fd,ZodRecord:()=>wn,ZodSet:()=>Td,ZodString:()=>Sn,ZodStringFormat:()=>X,ZodSuccess:()=>Rd,ZodSymbol:()=>dd,ZodTemplateLiteral:()=>Hd,ZodTransform:()=>Od,ZodTuple:()=>wd,ZodType:()=>M,ZodULID:()=>Bo,ZodURL:()=>Tr,ZodUUID:()=>Fe,ZodUndefined:()=>pd,ZodUnion:()=>Nr,ZodUnknown:()=>hd,ZodVoid:()=>yd,ZodXID:()=>Ho,ZodXor:()=>_d,_ZodString:()=>Uo,_default:()=>Cd,_function:()=>Ih,any:()=>nh,array:()=>Ar,base64:()=>jg,base64url:()=>Lg,bigint:()=>qg,boolean:()=>ld,catch:()=>Zd,check:()=>Sh,cidrv4:()=>Dg,cidrv6:()=>Cg,codec:()=>$h,creditCard:()=>Rg,cuid:()=>Sg,cuid2:()=>Pg,currencyCode:()=>Bg,custom:()=>Ph,date:()=>ih,describe:()=>Th,discriminatedUnion:()=>lh,e164:()=>Ug,email:()=>hg,emoji:()=>wg,enum:()=>ia,exactOptional:()=>Nd,file:()=>vh,float32:()=>Kg,float64:()=>Wg,function:()=>Ih,guid:()=>vg,hash:()=>Hg,hex:()=>Fg,hostname:()=>Gg,httpUrl:()=>xg,iban:()=>Mg,instanceof:()=>Ah,int:()=>jo,int32:()=>Jg,int64:()=>Yg,intersection:()=>xd,invertCodec:()=>kh,ipv4:()=>Og,ipv6:()=>zg,json:()=>Nh,jwt:()=>Zg,keyof:()=>oh,ksuid:()=>Ag,lazy:()=>Wd,literal:()=>hh,looseObject:()=>uh,looseRecord:()=>ph,mac:()=>Ng,map:()=>mh,meta:()=>Eh,nan:()=>_h,nanoid:()=>Ig,nativeEnum:()=>gh,never:()=>ra,nonoptional:()=>Ud,null:()=>fd,nullable:()=>Pr,nullish:()=>yh,number:()=>cd,object:()=>ah,optional:()=>Ct,partialRecord:()=>dh,pipe:()=>Lo,prefault:()=>Ld,preprocess:()=>zh,promise:()=>wh,readonly:()=>Bd,record:()=>Sd,refine:()=>qd,set:()=>fh,strictObject:()=>sh,string:()=>Sr,stringFormat:()=>Vg,stringbool:()=>Oh,success:()=>bh,superRefine:()=>Yd,symbol:()=>eh,templateLiteral:()=>xh,transform:()=>oa,tuple:()=>Id,uint32:()=>Xg,uint64:()=>Qg,ulid:()=>Tg,undefined:()=>th,union:()=>An,unknown:()=>Dt,url:()=>kg,uuid:()=>yg,uuidv4:()=>bg,uuidv6:()=>_g,uuidv7:()=>$g,void:()=>rh,xid:()=>Eg,xor:()=>ch});var Do={};We(Do,{endsWith:()=>mn,gt:()=>Ve,gte:()=>Ie,includes:()=>dn,length:()=>Nt,lowercase:()=>cn,lt:()=>Ze,lte:()=>we,maxLength:()=>Ot,maxSize:()=>ut,mime:()=>gn,minLength:()=>Ye,minSize:()=>Ge,multipleOf:()=>st,negative:()=>Io,nonnegative:()=>Po,nonpositive:()=>So,normalize:()=>hn,overwrite:()=>Ce,positive:()=>wo,properties:()=>fn,property:()=>To,regex:()=>un,size:()=>At,slugify:()=>_n,startsWith:()=>pn,toLowerCase:()=>yn,toUpperCase:()=>bn,trim:()=>vn,uppercase:()=>ln});var fg=new WeakSet([Object.prototype,Error.prototype]);function Co(e,n,i){Object.defineProperty(e,n,{configurable:!0,enumerable:!1,get(){let o=i(this);return Object.defineProperty(this,n,{value:o,configurable:!0,writable:!0}),o},set(o){Object.defineProperty(this,n,{value:o,configurable:!0,writable:!0})}})}var gg=(e,n)=>{Ka.init(e,n),e.name="ZodError";let i=Object.getPrototypeOf(e);fg.has(i)||(fg.add(i),Co(i,"format",o=>t=>Yn(o,t)),Co(i,"flatten",o=>t=>qn(o,t)),Co(i,"addIssue",o=>t=>{o.issues.push(t),o.message=JSON.stringify(o.issues,Kt,2)}),Co(i,"addIssues",o=>t=>{o.issues.push(...t),o.message=JSON.stringify(o.issues,Kt,2)}),Object.defineProperty(i,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},vx=h("ZodError",gg),xe=h("ZodError",gg,void 0,{Parent:Error});var Wl=Yt(xe),Jl=Qt(xe),Xl=en(xe),ql=tn(xe),Yl=ci(xe),Ql=li(xe),ed=di(xe),td=pi(xe),nd=mi(xe),rd=fi(xe),id=gi(xe),od=hi(xe);function bx(){oe.localeError||ee(Wi())}function jt(){oe.memoizer||ee({memoizer:hr()})}var M=h("ZodType",(e,n)=>(bx(),U.init(e,n),e.def=n,e.type=n.type,e),{check(...e){let n=this.def;return this.clone(_.mergeDefs(n,{checks:[...n.checks??[],...e.map(i=>typeof i=="function"?{_zod:{check:i,def:{check:"custom"},onattach:[]}}:i)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,n){return K(this,e,n)},brand(){return this},register(e,n){return e.add(this,n),this},refine(e,n){return this.check(qd(e,n))},superRefine(e,n){return this.check(Yd(e,n))},overwrite(e){return this.check(Ce(e))},optional(){return Ct(this)},exactOptional(){return Nd(this)},nullable(){return Pr(this)},nullish(){return Ct(Pr(this))},nonoptional(e){return Ud(this,e)},array(){return Ar(this)},or(e){return An([this,e])},and(e){return xd(this,e)},transform(e){return Lo(this,oa(e))},default(e){return Cd(this,e)},prefault(e){return Ld(this,e)},catch(e){return Zd(this,e)},pipe(e){return Lo(this,e)},readonly(){return Bd(this)},describe(e){let n=this.clone();return ue.add(n,{description:e}),n},meta(...e){if(e.length===0)return ue.get(this);let n=this.clone();return ue.add(n,e[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...n){return n.length===0?e(this):e(this,...n)},get"~standard"(){return _.hide(this,"~standard",{...Pi(this),jsonSchema:{input:$n(this,"input"),output:$n(this,"output")}})},set"~standard"(e){_.own(this,"~standard",e)},parse:function e(n,i){return Wl(this,n,i,{callee:e})},parseAsync:async function e(n,i){return await Jl(this,n,i,{callee:e})},safeParse(e,n){return Xl(this,e,n)},async safeParseAsync(e,n){return ql(this,e,n)},get spa(){return this?.safeParseAsync},set spa(e){_.own(this,"spa",e)},validate(e,n){return Qn(this,e,n)},validateAsync(e,n){return er(this,e,n)},encode:function e(n,i){return Yl(this,n,i,{callee:e})},decode:function e(n,i){return Ql(this,n,i,{callee:e})},encodeAsync:async function e(n,i){return await ed(this,n,i,{callee:e})},decodeAsync:async function e(n,i){return await td(this,n,i,{callee:e})},safeEncode(e,n){return nd(this,e,n)},safeDecode(e,n){return rd(this,e,n)},async safeEncodeAsync(e,n){return id(this,e,n)},async safeDecodeAsync(e,n){return od(this,e,n)},toJSONSchema(e){return sl(this,{})(e)},get description(){return ue.get(this)?.description},get _def(){return this._zod.def}}),Uo=h("_ZodString",(e,n)=>{St.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>ll(e,i,o,t)},_.derived({format:e=>ie(e).format??null,minLength:e=>ie(e).minimum??null,maxLength:e=>ie(e).maximum??null},{regex(...e){return this.check(un(...e))},includes(...e){return this.check(dn(...e))},startsWith(...e){return this.check(pn(...e))},endsWith(...e){return this.check(mn(...e))},min(...e){return this.check(Ye(...e))},max(...e){return this.check(Ot(...e))},length(...e){return this.check(Nt(...e))},nonempty(...e){return this.check(Ye(1,...e))},lowercase(e){return this.check(cn(e))},uppercase(e){return this.check(ln(e))},trim(){return this.check(vn())},normalize(...e){return this.check(hn(...e))},toLowerCase(){return this.check(yn())},toUpperCase(){return this.check(bn())},slugify(){return this.check(_n())}})),Sn=h("ZodString",(e,n)=>{St.init(e,n),Uo.init(e,n)},{email(e){return this.check(no(Ro,e))},url(e){return this.check(br(Tr,e))},jwt(e){return this.check(xo(ta,e))},emoji(e){return this.check(uo(Zo,e))},guid(e){return this.check(ro(Mo,e))},uuid(e){return this.check(io(Fe,e))},uuidv4(e){return this.check(oo(Fe,e))},uuidv6(e){return this.check(ao(Fe,e))},uuidv7(e){return this.check(so(Fe,e))},nanoid(e){return this.check(co(Vo,e))},cuid(e){return this.check(lo(Go,e))},cuid2(e){return this.check(po(Fo,e))},ulid(e){return this.check(mo(Bo,e))},base64(e){return this.check(_o(Yo,e))},base64url(e){return this.check($o(Qo,e))},xid(e){return this.check(fo(Ho,e))},ksuid(e){return this.check(go(Ko,e))},ipv4(e){return this.check(ho(Wo,e))},ipv6(e){return this.check(vo(Jo,e))},cidrv4(e){return this.check(yo(Xo,e))},cidrv6(e){return this.check(bo(qo,e))},e164(e){return this.check(ko(ea,e))},datetime(e){return this.check(_r(pt,e))},date(e){return this.check($r(mt,e))},time(e){return this.check(kr(ft,e))},duration(e){return this.check(xr(gt,e))}});function Sr(e){return xc(Sn,e)}var X=h("ZodStringFormat",(e,n)=>{W.init(e,n),Uo.init(e,n)}),pt=h("ZodISODateTime",(e,n)=>{mu.init(e,n),X.init(e,n)}),mt=h("ZodISODate",(e,n)=>{fu.init(e,n),X.init(e,n)}),ft=h("ZodISOTime",(e,n)=>{gu.init(e,n),X.init(e,n)}),gt=h("ZodISODuration",(e,n)=>{hu.init(e,n),X.init(e,n)}),Ro=h("ZodEmail",(e,n)=>{nu.init(e,n),X.init(e,n)});function hg(e){return no(Ro,e)}var Mo=h("ZodGUID",(e,n)=>{eu.init(e,n),X.init(e,n)});function vg(e){return ro(Mo,e)}var Fe=h("ZodUUID",(e,n)=>{tu.init(e,n),X.init(e,n)});function yg(e){return io(Fe,e)}function bg(e){return oo(Fe,e)}function _g(e){return ao(Fe,e)}function $g(e){return so(Fe,e)}var Tr=h("ZodURL",(e,n)=>{ou.init(e,n),X.init(e,n)});function kg(e){return br(Tr,e)}function xg(e){return br(Tr,{protocol:tr,hostname:hs,..._.normalizeParams(e)})}var Zo=h("ZodEmoji",(e,n)=>{au.init(e,n),X.init(e,n)});function wg(e){return uo(Zo,e)}var Vo=h("ZodNanoID",(e,n)=>{su.init(e,n),X.init(e,n)});function Ig(e){return co(Vo,e)}var Go=h("ZodCUID",(e,n)=>{uu.init(e,n),X.init(e,n)});function Sg(e){return lo(Go,e)}var Fo=h("ZodCUID2",(e,n)=>{cu.init(e,n),X.init(e,n)});function Pg(e){return po(Fo,e)}var Bo=h("ZodULID",(e,n)=>{lu.init(e,n),X.init(e,n)});function Tg(e){return mo(Bo,e)}var Ho=h("ZodXID",(e,n)=>{du.init(e,n),X.init(e,n)});function Eg(e){return fo(Ho,e)}var Ko=h("ZodKSUID",(e,n)=>{pu.init(e,n),X.init(e,n)});function Ag(e){return go(Ko,e)}var Wo=h("ZodIPv4",(e,n)=>{vu.init(e,n),X.init(e,n)});function Og(e){return ho(Wo,e)}var ad=h("ZodMAC",(e,n)=>{bu.init(e,n),X.init(e,n)});function Ng(e){return Ic(ad,e)}var Jo=h("ZodIPv6",(e,n)=>{yu.init(e,n),X.init(e,n)});function zg(e){return vo(Jo,e)}var Xo=h("ZodCIDRv4",(e,n)=>{_u.init(e,n),X.init(e,n)});function Dg(e){return yo(Xo,e)}var qo=h("ZodCIDRv6",(e,n)=>{$u.init(e,n),X.init(e,n)});function Cg(e){return bo(qo,e)}var Yo=h("ZodBase64",(e,n)=>{ku.init(e,n),X.init(e,n)});function jg(e){return _o(Yo,e)}var Qo=h("ZodBase64URL",(e,n)=>{xu.init(e,n),X.init(e,n)});function Lg(e){return $o(Qo,e)}var ea=h("ZodE164",(e,n)=>{wu.init(e,n),X.init(e,n)});function Ug(e){return ko(ea,e)}var sd=h("ZodCreditCard",(e,n)=>{Iu.init(e,n),X.init(e,n)});function Rg(e){return Sc(sd,e)}var ud=h("ZodIBAN",(e,n)=>{Su.init(e,n),X.init(e,n)});function Mg(e){return Pc(ud,e)}var ta=h("ZodJWT",(e,n)=>{Pu.init(e,n),X.init(e,n)});function Zg(e){return xo(ta,e)}var Lt=h("ZodCustomStringFormat",(e,n)=>{Tu.init(e,n),X.init(e,n)});function Vg(e,n,i={}){return zt(Lt,e,n,i)}function Gg(e){return zt(Lt,"hostname",gs,e)}function Fg(e){return zt(Lt,"hex",As,e)}function Bg(e){return zt(Lt,"currency_code",ys,e)}function Hg(e,n){let i=n?.enc??"hex",o=`${e}_${i}`,t=Te[o];if(!t)throw new Error(`Unrecognized hash format: ${o}`);return zt(Lt,o,t,n)}var Pn=h("ZodNumber",(e,n)=>{Li.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>dl(e,i,o,t),e.isFinite=!0},_.derived({minValue:e=>{let{minimum:n,exclusiveMinimum:i}=ie(e);return Math.max(n??Number.NEGATIVE_INFINITY,i??Number.NEGATIVE_INFINITY)},maxValue:e=>{let{maximum:n,exclusiveMaximum:i}=ie(e);return Math.min(n??Number.POSITIVE_INFINITY,i??Number.POSITIVE_INFINITY)},isInt:e=>{let{isInt:n,multipleOf:i}=ie(e);return!!n||!!i?.some(Number.isSafeInteger)},format:e=>ie(e).format??null},{gt(e,n){return this.check(Ve(e,n))},gte(e,n){return this.check(Ie(e,n))},min(e,n){return this.check(Ie(e,n))},lt(e,n){return this.check(Ze(e,n))},lte(e,n){return this.check(we(e,n))},max(e,n){return this.check(we(e,n))},int(e){return this.check(jo(e))},safe(e){return this.check(jo(e))},positive(e){return this.check(Ve(0,e))},nonnegative(e){return this.check(Ie(0,e))},negative(e){return this.check(Ze(0,e))},nonpositive(e){return this.check(we(0,e))},multipleOf(e,n){return this.check(st(e,n))},step(e,n){return this.check(st(e,n))},finite(){return this}}));function cd(e){return Ec(Pn,e)}var Ut=h("ZodNumberFormat",(e,n)=>{Eu.init(e,n),Pn.init(e,n)});function jo(e){return Oc(Ut,e)}function Kg(e){return Nc(Ut,e)}function Wg(e){return zc(Ut,e)}function Jg(e){return Dc(Ut,e)}function Xg(e){return Cc(Ut,e)}var Tn=h("ZodBoolean",(e,n)=>{lr.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>pl(e,i,o,t)});function ld(e){return jc(Tn,e)}var En=h("ZodBigInt",(e,n)=>{Ui.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>ml(e,i,o,t)},_.derived({minValue:e=>ie(e).minimum??null,maxValue:e=>ie(e).maximum??null,format:e=>ie(e).format??null},{gte(e,n){return this.check(Ie(e,n))},min(e,n){return this.check(Ie(e,n))},gt(e,n){return this.check(Ve(e,n))},lt(e,n){return this.check(Ze(e,n))},lte(e,n){return this.check(we(e,n))},max(e,n){return this.check(we(e,n))},positive(e){return this.check(Ve(BigInt(0),e))},negative(e){return this.check(Ze(BigInt(0),e))},nonpositive(e){return this.check(we(BigInt(0),e))},nonnegative(e){return this.check(Ie(BigInt(0),e))},multipleOf(e,n){return this.check(st(e,n))}}));function qg(e){return Uc(En,e)}var na=h("ZodBigIntFormat",(e,n)=>{Au.init(e,n),En.init(e,n)});function Yg(e){return Mc(na,e)}function Qg(e){return Zc(na,e)}var dd=h("ZodSymbol",(e,n)=>{Ou.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>fl(e,i,o,t)});function eh(e){return Vc(dd,e)}var pd=h("ZodUndefined",(e,n)=>{Nu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>hl(e,i,o,t)});function th(e){return Gc(pd,e)}var md=h("ZodNull",(e,n)=>{zu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>gl(e,i,o,t)});function fd(e){return Fc(md,e)}var gd=h("ZodAny",(e,n)=>{Du.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>bl(e,i,o,t)});function nh(){return Bc(gd)}var hd=h("ZodUnknown",(e,n)=>{Cu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>_l(e,i,o,t)});function Dt(){return Hc(hd)}var vd=h("ZodNever",(e,n)=>{ju.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>yl(e,i,o,t)});function ra(e){return Kc(vd,e)}var yd=h("ZodVoid",(e,n)=>{Lu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>vl(e,i,o,t)});function rh(e){return Wc(yd,e)}var Er=h("ZodDate",(e,n)=>{Uu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>$l(e,i,o,t),e.min=(i,o)=>e.check(Ie(i,o)),e.max=(i,o)=>e.check(we(i,o))},_.derived({minDate:e=>{let{minimum:n}=ie(e);return n?new Date(n):null},maxDate:e=>{let{maximum:n}=ie(e);return n?new Date(n):null}},{}));function ih(e){return Jc(Er,e)}var bd=h("ZodArray",(e,n)=>{jt(),Mu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>zl(e,i,o,t),e.element=n.element},{min(e,n){return this.check(Ye(e,n))},nonempty(e){return this.check(Ye(1,e))},max(e,n){return this.check(Ot(e,n))},length(e,n){return this.check(Nt(e,n))},unwrap(){return this.element}});function Ar(e,n){return Yc(bd,e,n)}function oh(e){let n=e._zod.def.shape;return ia(Object.keys(n))}var Or=h("ZodObject",(e,n)=>{jt(),Zu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Dl(e,i,o,t),_.installLazyProp(e,"shape",i=>i._zod.def.shape,!1)},{keyof(){return ia(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(_.mergeDefs(this._zod.def,{catchall:e}))},passthrough(){return this.clone(_.mergeDefs(this._zod.def,{catchall:Dt()}))},loose(){return this.clone(_.mergeDefs(this._zod.def,{catchall:Dt()}))},strict(){return this.clone(_.mergeDefs(this._zod.def,{catchall:ra()}))},strip(){return this.clone(_.mergeDefs(this._zod.def,{catchall:void 0}))},extend(e){return _.extend(this,e)},safeExtend(e){return _.safeExtend(this,e)},merge(e){return _.merge(this,e)},pick(e){return _.pick(this,e)},omit(e){return _.omit(this,e)},partial(...e){return _.partial(zr,this,e[0])},exactPartial(...e){return _.partial(aa,this,e[0],"exactPartial")},required(...e){return _.required(sa,this,e[0])}});function ah(e,n){let i={type:"object",shape:e??{},..._.normalizeParams(n)};return new Or(i)}function sh(e,n){return new Or({type:"object",shape:e,catchall:ra(),..._.normalizeParams(n)})}function uh(e,n){return new Or({type:"object",shape:e,catchall:Dt(),..._.normalizeParams(n)})}var Nr=h("ZodUnion",(e,n)=>{dr.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Ao(e,i,o,t),e.options=n.options});function An(e,n){return new Nr({type:"union",options:e,..._.normalizeParams(n)})}var _d=h("ZodXor",(e,n)=>{Nr.init(e,n),Vu.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Ao(e,i,o,t),e.options=n.options});function ch(e,n){return new _d({type:"union",options:e,inclusive:!1,..._.normalizeParams(n)})}var $d=h("ZodDiscriminatedUnion",(e,n)=>{Nr.init(e,n),Fu.init(e,n)});function lh(e,n,i){return new $d({type:"union",options:n,discriminator:e,..._.normalizeParams(i)})}var kd=h("ZodIntersection",(e,n)=>{Bu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Cl(e,i,o,t)});function xd(e,n){return new kd({type:"intersection",left:e,right:n})}var wd=h("ZodTuple",(e,n)=>{jt(),Ri.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>jl(e,i,o,t)},{rest(e){return this.clone({...this._zod.def,rest:e})},partial(){let e=this._zod.def;if(e.checks?.length)throw new Error(".partial() cannot be used on tuple schemas containing refinements");return this.clone({...e,items:e.items.map(n=>new zr({type:"optional",innerType:n}))})}});function Id(e,n,i){let o=n instanceof U,t=o?i:n,r=o?n:null;return new wd({type:"tuple",items:e,rest:r,..._.normalizeParams(t)})}var wn=h("ZodRecord",(e,n)=>{jt(),Hu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Ll(e,i,o,t),e.keyType=n.keyType,e.valueType=n.valueType});function Sd(e,n,i){return!n||!n._zod?new wn({type:"record",keyType:Sr(),valueType:e,..._.normalizeParams(n)}):new wn({type:"record",keyType:e,valueType:n,..._.normalizeParams(i)})}function dh(e,n,i){return new wn({type:"record",keyType:e,valueType:n,..._.normalizeParams(i),partial:!0})}function ph(e,n,i){return new wn({type:"record",keyType:e,valueType:n,mode:"loose",..._.normalizeParams(i)})}var Pd=h("ZodMap",(e,n)=>{jt(),Ku.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Ol(e,i,o,t),e.keyType=n.keyType,e.valueType=n.valueType,e.min=(...i)=>e.check(Ge(...i)),e.nonempty=i=>e.check(Ge(1,i)),e.max=(...i)=>e.check(ut(...i)),e.size=(...i)=>e.check(At(...i))});function mh(e,n,i){return new Pd({type:"map",keyType:e,valueType:n,..._.normalizeParams(i)})}var Td=h("ZodSet",(e,n)=>{jt(),Wu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Nl(e,i,o,t),e.min=(...i)=>e.check(Ge(...i)),e.nonempty=i=>e.check(Ge(1,i)),e.max=(...i)=>e.check(ut(...i)),e.size=(...i)=>e.check(At(...i))});function fh(e,n){return new Td({type:"set",valueType:e,..._.normalizeParams(n)})}var In=h("ZodEnum",(e,n)=>{Ju.init(e,n),M.init(e,n),e._zod.processJSONSchema=(o,t,r)=>kl(e,o,t,r),e.enum=n.entries,e.options=[...e._zod.values];let i=new Set(Object.keys(n.entries));e.extract=(o,t)=>{let r={};for(let a of o)if(i.has(a))r[a]=n.entries[a];else throw new Error(`Key ${a} not found in enum`);return new In({...n,checks:[],..._.normalizeParams(t),entries:r})},e.exclude=(o,t)=>{let r={...n.entries};for(let a of o)if(i.has(a))delete r[a];else throw new Error(`Key ${a} not found in enum`);return new In({...n,checks:[],..._.normalizeParams(t),entries:r})}});function ia(e,n){let i=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new In({type:"enum",entries:i,..._.normalizeParams(n)})}function gh(e,n){return new In({type:"enum",entries:e,..._.normalizeParams(n)})}var Ed=h("ZodLiteral",(e,n)=>{Xu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>xl(e,i,o,t),e.values=new Set(n.values),Object.defineProperty(e,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function hh(e,n){return new Ed({type:"literal",values:Array.isArray(e)?e:[e],..._.normalizeParams(n)})}var Ad=h("ZodFile",(e,n)=>{qu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Sl(e,i,o,t),e.min=(i,o)=>e.check(Ge(i,o)),e.max=(i,o)=>e.check(ut(i,o)),e.mime=(i,o)=>e.check(gn(Array.isArray(i)?i:[i],o))});function vh(e){return Qc(Ad,e)}var Od=h("ZodTransform",(e,n)=>{jt(),Yu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Al(e,i,o,t),e._zod.parse=(i,o)=>{if(o.direction==="backward")throw new ot(e.constructor.name);i.addIssue=r=>{if(typeof r=="string")i.issues.push(_.issue(r,i.value,n));else{let a=r;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),"input"in a||(a.input=i.value),a.inst??(a.inst=e),i.issues.push(_.issue(a))}};let t=n.transform(i.value,i);return t instanceof Promise?t.then(r=>(i.value=r,i)):(i.value=t,i)}});function oa(e){return new Od({type:"transform",transform:e})}var zr=h("ZodOptional",(e,n)=>{Mi.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Oo(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function Ct(e){return new zr({type:"optional",innerType:e})}var aa=h("ZodExactOptional",(e,n)=>{Qu.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Oo(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function Nd(e){return new aa({type:"optional",innerType:e})}var zd=h("ZodNullable",(e,n)=>{ec.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Ul(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function Pr(e){return new zd({type:"nullable",innerType:e})}function yh(e){return Ct(Pr(e))}var Dd=h("ZodDefault",(e,n)=>{tc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Zl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Cd(e,n){return new Dd({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():_.shallowClone(n)}})}var jd=h("ZodPrefault",(e,n)=>{nc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Vl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function Ld(e,n){return new jd({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():_.shallowClone(n)}})}var sa=h("ZodNonOptional",(e,n)=>{rc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Rl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function Ud(e,n){return new sa({type:"nonoptional",innerType:e,..._.normalizeParams(n)})}var Rd=h("ZodSuccess",(e,n)=>{ic.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Pl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function bh(e){return new Rd({type:"success",innerType:e})}var Md=h("ZodCatch",(e,n)=>{oc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Gl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Zd(e,n){return new Md({type:"catch",innerType:e,catchValue:typeof n=="function"?n:_.constantCatch(n)})}var Vd=h("ZodNaN",(e,n)=>{ac.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>wl(e,i,o,t)});function _h(e){return qc(Vd,e)}var Dr=h("ZodPipe",(e,n)=>{Zi.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Fl(e,i,o,t),e.in=n.in,e.out=n.out});function Lo(e,n){return new Dr({type:"pipe",in:e,out:n})}var Cr=h("ZodCodec",(e,n)=>{Dr.init(e,n),pr.init(e,n)});function $h(e,n,i){return new Cr({type:"pipe",in:e,out:n,transform:i.decode,reverseTransform:i.encode})}function kh(e){let n=e._zod.def;return new Cr({type:"pipe",in:n.out,out:n.in,transform:n.reverseTransform,reverseTransform:n.transform})}var Gd=h("ZodPreprocess",(e,n)=>{Dr.init(e,n),sc.init(e,n)}),Fd=h("ZodReadonly",(e,n)=>{uc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Bl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function Bd(e){return new Fd({type:"readonly",innerType:e})}var Hd=h("ZodTemplateLiteral",(e,n)=>{cc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Il(e,i,o,t)});function xh(e,n){return new Hd({type:"template_literal",parts:e,..._.normalizeParams(n)})}var Kd=h("ZodLazy",(e,n)=>{mr.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Kl(e,i,o,t),e.unwrap=()=>e._zod.def.getter()});function Wd(e){return new Kd({type:"lazy",getter:e})}var Jd=h("ZodPromise",(e,n)=>{dc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Hl(e,i,o,t),e.unwrap=()=>e._zod.def.innerType});function wh(e){return new Jd({type:"promise",innerType:e})}var Xd=h("ZodFunction",(e,n)=>{lc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>El(e,i,o,t)});function Ih(e){return new Xd({type:"function",input:Array.isArray(e?.input)?Id(e?.input):e?.input??Ar(Dt()),output:e?.output??Dt()})}var jr=h("ZodCustom",(e,n)=>{pc.init(e,n),M.init(e,n),e._zod.processJSONSchema=(i,o,t)=>Tl(e,i,o,t)});function Sh(e){let n=new q({check:"custom"});return n._zod.check=e,n}function Ph(e,n){return el(jr,e??(()=>!0),n)}function qd(e,n={}){return tl(jr,e,n)}function Yd(e,n){return nl(e,n)}var Th=rl,Eh=il,Qd=h("ZodInstanceOf",(e,n)=>{jr.init(e,n)},{properties(e,n){return this.check(fn(e,n))}});function Ah(e,n={}){let i=new Qd({type:"custom",check:"custom",fn:o=>o instanceof e,abort:!0,..._.normalizeParams(n)});return i._zod.bag.Class=e,i._zod.check=o=>{o.value instanceof e||o.issues.push({code:"invalid_type",expected:e.name,input:o.value,inst:i,path:[...i._zod.def.path??[]]})},i}var Oh=(...e)=>ol({Codec:Cr,Boolean:Tn,String:Sn},...e);function Nh(e){let n=Wd(()=>An([Sr(e),cd(),ld(),fd(),Ar(n),Sd(Sr(),n)]));return n}function zh(e,n){return new Gd({type:"pipe",in:oa(e),out:n})}var _x={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function $x(e){ee({customError:e})}function kx(){return ee().customError}var ep;ep||(ep={});var Lr={};We(Lr,{ZodISODate:()=>mt,ZodISODateTime:()=>pt,ZodISODuration:()=>gt,ZodISOTime:()=>ft,date:()=>wx,datetime:()=>xx,duration:()=>Sx,time:()=>Ix});function xx(e){return _r(pt,e)}function wx(e){return $r(mt,e)}function Ix(e){return kr(ft,e)}function Sx(e){return xr(gt,e)}var P={...On,...Do,iso:Lr},Px=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function Tx(e,n){let i=e.$schema;return i==="https://json-schema.org/draft/2020-12/schema"?"draft-2020-12":i==="http://json-schema.org/draft-07/schema#"?"draft-7":i==="http://json-schema.org/draft-04/schema#"?"draft-4":n??"draft-2020-12"}function Dh(e,n){return e.map((i,o)=>oo).check(o=>{let t=o.value;if(typeof t!="object"||t===null||Array.isArray(t))return;let r=Object.getOwnPropertyNames(t);if(n.minProperties!==void 0&&r.length=${n.minProperties} properties`,input:t,inst:e,continue:!0}),n.maxProperties!==void 0&&r.length>n.maxProperties&&o.issues.push({origin:"object",code:"too_big",maximum:n.maxProperties,inclusive:!0,message:`Too big: expected object to have <=${n.maxProperties} properties`,input:t,inst:e,continue:!0}),n.keySchema)for(let a of r){let s=n.keySchema.safeParse(a);s.success||o.issues.push({code:"invalid_key",origin:"record",issues:s.error.issues,input:a,path:[a],continue:!0})}}).pipe(e)}function tp(e,n){if(e===null)return"z";let i=typeof e;if(i!=="object"){if(i==="number"&&Number.isNaN(e))return null;let o=String(e);return`${i[0]}${o.length}:${o}`}if(n.has(e))return null;n.add(e);try{if(Array.isArray(e)){let r=[];for(let a of e){let s=tp(a,n);if(s===null)return null;r.push(s)}return`a${r.length}:[${r.join(",")}]`}let o=Object.keys(e).sort(),t=[];for(let r of o){let a=tp(e[r],n);if(a===null)return null;t.push(`${r.length}:${r}=${a}`)}return`o${t.length}:{${t.join(",")}}`}finally{n.delete(e)}}var Nx=new Set(["items","prefixItems","additionalItems","additionalProperties","contains","propertyNames","not","if","then","else","allOf","anyOf","oneOf","unevaluatedItems","unevaluatedProperties","contentSchema"]),zx=new Set(["properties","patternProperties","dependentSchemas","dependencies","$defs","definitions"]);function Ur(e){return typeof e!="object"||e===null?!1:Array.isArray(e)?e.some(Ur):typeof e.$ref=="string"?!0:Object.entries(e).some(([n,i])=>Nx.has(n)?Ur(i):!zx.has(n)||typeof i!="object"||i===null?!1:Object.values(i).some(Ur))}function Ch(e){return e===1?"element":"elements"}function Dx(e,n){return P.transform(o=>o).check(o=>{let t=o.value;if(Array.isArray(t)){if(n.uniqueItems===!0){let r=new Map;for(let a=0;a=a)break;sn.maxContains&&o.issues.push({code:"custom",message:`Array must contain at most ${n.maxContains} matching ${Ch(n.maxContains)}`,input:t,continue:!0})}}}).pipe(e)}function jh(e,n){if(e!==!1)return e===void 0||e===!0?P.any():fe(e,n)}var Cx=/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/;function Lh(e,n){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return P.never();throw new Error("not is not supported in Zod (except { not: {} } for never)")}if(e.unevaluatedItems!==void 0)throw new Error("unevaluatedItems is not supported");if(e.unevaluatedProperties!==void 0)throw new Error("unevaluatedProperties is not supported");if(e.if!==void 0||e.then!==void 0||e.else!==void 0)throw new Error("Conditional schemas (if/then/else) are not supported");if(e.dependentSchemas!==void 0||e.dependentRequired!==void 0)throw new Error("dependentSchemas and dependentRequired are not supported");if(e.$ref){let t=e.$ref;if(n.refs.has(t))return n.refs.get(t);if(n.processing.has(t))return P.lazy(()=>{if(!n.refs.has(t))throw new Error(`Circular reference not resolved: ${t}`);return n.refs.get(t)});n.processing.add(t);let r=Ax(t,n),a=fe(r,n);return n.refs.set(t,a),n.processing.delete(t),a}if(e.enum!==void 0){let t=e.enum;if(n.version==="openapi-3.0"&&e.nullable===!0&&t.length===1&&t[0]===null)return P.null();if(t.length===0)return P.never();if(t.length===1)return P.literal(t[0]);if(t.every(a=>typeof a=="string"))return P.enum(t);let r=t.map(a=>P.literal(a));return r.length<2?r[0]:P.union([r[0],r[1],...r.slice(2)])}if(e.const!==void 0)return P.literal(e.const);let i=e.type;if(Array.isArray(i)){let t=i.map(r=>{let a={...e,type:r};return Lh(a,n)});return t.length===0?P.never():t.length===1?t[0]:P.union(t)}if(!i)return P.any();let o;switch(i){case"string":{let t=P.string();if(e.format){let r=e.format;r==="email"?t=t.check(P.email()):r==="uri"||r==="uri-reference"?t=t.check(P.url()):r==="uuid"||r==="guid"?t=t.check(P.uuid()):r==="date-time"?t=t.check(P.iso.datetime({offset:!0})):r==="date"?t=t.check(P.iso.date()):r==="time"?t=t.check(P.regex(Cx)):r==="duration"?t=t.check(P.iso.duration()):r==="hostname"?t=t.check(P.hostname()):r==="ipv4"?t=t.check(P.ipv4()):r==="ipv6"?t=t.check(P.ipv6()):r==="mac"?t=t.check(P.mac()):r==="cidr"?t=t.check(P.cidrv4()):r==="cidr-v6"?t=t.check(P.cidrv6()):r==="base64"?t=t.check(P.base64()):r==="base64url"?t=t.check(P.base64url()):r==="e164"?t=t.check(P.e164()):r==="credit_card"?t=t.check(P.creditCard()):r==="iban"?t=t.check(P.iban()):r==="jwt"?t=t.check(P.jwt()):r==="emoji"?t=t.check(P.emoji()):r==="nanoid"?t=t.check(P.nanoid()):r==="cuid"?t=t.check(P.cuid()):r==="cuid2"?t=t.check(P.cuid2()):r==="ulid"?t=t.check(P.ulid()):r==="xid"?t=t.check(P.xid()):r==="ksuid"&&(t=t.check(P.ksuid()))}typeof e.minLength=="number"&&(t=t.min(e.minLength)),typeof e.maxLength=="number"&&(t=t.max(e.maxLength)),e.pattern&&(t=t.regex(new RegExp(e.pattern))),o=t;break}case"number":case"integer":{let t=i==="integer"?P.number().int():P.number();typeof e.minimum=="number"&&e.exclusiveMinimum!==!0&&(t=t.min(e.minimum)),typeof e.maximum=="number"&&e.exclusiveMaximum!==!0&&(t=t.max(e.maximum)),typeof e.exclusiveMinimum=="number"?t=t.gt(e.exclusiveMinimum):e.exclusiveMinimum===!0&&typeof e.minimum=="number"&&(t=t.gt(e.minimum)),typeof e.exclusiveMaximum=="number"?t=t.lt(e.exclusiveMaximum):e.exclusiveMaximum===!0&&typeof e.maximum=="number"&&(t=t.lt(e.maximum)),typeof e.multipleOf=="number"&&(t=t.multipleOf(e.multipleOf)),o=t;break}case"boolean":{o=P.boolean();break}case"null":{o=P.null();break}case"object":{let t={},r=e.properties||{},a=new Set(e.required||[]),s=typeof e.additionalProperties=="object"?fe(e.additionalProperties,n):void 0;for(let[p,m]of Object.entries(r)){let f=fe(m,n);se(t,p,a.has(p)?f:f.optional())}if(e.patternProperties){let p=e.patternProperties,m=Object.keys(p),f=[];for(let y of m){let x=fe(p[y],n),I=P.string().regex(new RegExp(y));f.push(P.looseRecord(I,x))}let g=[];if(Object.keys(t).length>0&&g.push(P.object(t).passthrough()),g.push(...f),g.length===0)o=P.object({}).passthrough();else if(g.length===1)o=g[0];else{let y=P.intersection(g[0],g[1]);for(let x=2;xnew RegExp(b)),I=o;o=o.check(b=>{if(!Se(b.value))return;let T=[];for(let A of Object.keys(b.value))y.includes(A)||x.some(D=>D.test(A))||T.push(A);T.length&&b.issues.push({code:"unrecognized_keys",keys:T,input:b.value,inst:I})})}}else{let p=P.object(t);e.additionalProperties===!1?o=p.strict():s?o=p.catchall(s):o=p.passthrough()}let u=e.propertyNames!==void 0&&e.propertyNames!==!0,c=typeof e.minProperties=="number"?e.minProperties:void 0,d=typeof e.maxProperties=="number"?e.maxProperties:void 0;if(u||c!==void 0||d!==void 0){let p;if(u){let m=typeof e.propertyNames=="object"&&e.propertyNames.type===void 0?{type:"string",...e.propertyNames}:e.propertyNames;p=fe(m,n)}o=Ox(o,{keySchema:p,minProperties:c,maxProperties:d})}break}case"array":{let t=e.prefixItems,r=e.items;if(t&&Array.isArray(t)){let a=typeof e.minItems=="number"?e.minItems:0,s=t.map(p=>fe(p,n)),u=Dh(s,a),c=Array.isArray(r)?void 0:jh(r,n),d=P.tuple(u);o=c?d.rest(c):d,typeof e.minItems=="number"&&(o=o.check(P.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(P.maxLength(e.maxItems)))}else if(Array.isArray(r)){let a=typeof e.minItems=="number"?e.minItems:0,s=r.map(p=>fe(p,n)),u=Dh(s,a),c=jh(e.additionalItems,n),d=P.tuple(u);o=c?d.rest(c):d,typeof e.minItems=="number"&&(o=o.check(P.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(P.maxLength(e.maxItems)))}else if(r!==void 0){let a=fe(r,n),s=P.array(a);typeof e.minItems=="number"&&(s=s.min(e.minItems)),typeof e.maxItems=="number"&&(s=s.max(e.maxItems)),o=s}else o=P.array(P.any());(e.uniqueItems===!0||e.contains!==void 0)&&(o=Dx(o,{uniqueItems:e.uniqueItems===!0,containsSchema:e.contains!==void 0?fe(e.contains,n):void 0,minContains:typeof e.minContains=="number"?e.minContains:void 0,maxContains:typeof e.maxContains=="number"?e.maxContains:void 0}));break}default:throw new Error(`Unsupported type: ${i}`)}return o}function fe(e,n){if(typeof e=="boolean")return e?P.any():P.never();let i=Lh(e,n),o=e.type||e.enum!==void 0||e.const!==void 0;if(e.anyOf&&Array.isArray(e.anyOf)){let s=e.anyOf.map(c=>fe(c,n)),u=P.union(s);i=o?P.intersection(i,u):u}if(e.oneOf&&Array.isArray(e.oneOf)){let s=e.oneOf.map(c=>fe(c,n)),u=P.xor(s);i=o?P.intersection(i,u):u}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)i=o?i:P.any();else{let s=o?i:fe(e.allOf[0],n),u=o?0:1;for(let c=u;c0&&n.registry.add(i,t),e.description&&(i=i.describe(e.description)),i}function Uh(e,n){if(typeof e=="boolean")return e?P.any():P.never();let i;try{i=JSON.parse(JSON.stringify(e))}catch{throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas")}let o=Tx(i,n?.defaultTarget),t=i.$defs||i.definitions||{},r={version:o,defs:t,refs:new Map,processing:new Set,rootSchema:i,registry:n?.registry??ue};return fe(i,r)}var Rh=Symbol("z.visit/resolving");function Rr(e,n){let i=typeof n=="function"?n:(a,s)=>{let u=n[a._zod.def.type];return u?u(a,s):a},o=new Map;function t(a){let s=o.get(a);if(s===Rh)return new mr({type:"lazy",getter:()=>o.get(a)});if(s!==void 0)return s;o.set(a,Rh);let u=r(a),c=i(u,u!==a);return o.set(a,c),c}function r(a){let s=a._zod.def,u=s.type;switch(u){case"object":{let c=s.shape,d=Object.keys(c),p=!1,m={};for(let g of d){let y=t(c[g]);y!==c[g]&&(p=!0),m[g]=y}let f=s.catchall;return s.catchall&&(f=t(s.catchall),f!==s.catchall&&(p=!0)),p?K(a,{...s,shape:m,catchall:f}):a}case"array":{let c=t(s.element);return c===s.element?a:K(a,{...s,element:c})}case"tuple":{let c=s.items,d=!1,p=[];for(let f of c){let g=t(f);g!==f&&(d=!0),p.push(g)}let m=s.rest;return s.rest&&(m=t(s.rest),m!==s.rest&&(d=!0)),d?K(a,{...s,items:p,rest:m}):a}case"record":case"map":{let c=t(s.keyType),d=t(s.valueType);return c===s.keyType&&d===s.valueType?a:K(a,{...s,keyType:c,valueType:d})}case"set":{let c=t(s.valueType);return c===s.valueType?a:K(a,{...s,valueType:c})}case"union":{let c=s.options,d=!1,p=[];for(let m of c){let f=t(m);f!==m&&(d=!0),p.push(f)}return d?K(a,{...s,options:p}):a}case"intersection":{let c=t(s.left),d=t(s.right);return c===s.left&&d===s.right?a:K(a,{...s,left:c,right:d})}case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":{let c=t(s.innerType);return c===s.innerType?a:K(a,{...s,innerType:c})}case"pipe":{let c=t(s.in),d=t(s.out);return c===s.in&&d===s.out?a:K(a,{...s,in:c,out:d})}case"function":{let c=t(s.input),d=t(s.output);return c===s.input&&d===s.output?a:K(a,{...s,input:c,output:d})}case"lazy":{let c=s.getter,{_cachedInner:d,...p}=s;return K(a,{...p,getter:()=>t(c())})}case"template_literal":case"string":case"number":case"int":case"boolean":case"bigint":case"symbol":case"undefined":case"null":case"void":case"never":case"any":case"unknown":case"date":case"nan":case"enum":case"literal":case"file":case"transform":case"custom":return a;default:return a}}return t(e)}function Mh(e){return Rr(e,{object:n=>n.partial(),union:n=>{let i=n._zod.def;return i.discriminator===void 0?n:An(i.options)}})}function jx(e,n){if(!n?.length)return e;let i=e._zod.def;return K(e,ze(i,{checks:[...i.checks??[],...n]}),{parent:!0})}function Zh(e){return jx(e.out,e.checks)}function Lx(e){return e.in._zod.traits.has("$ZodTransform")?Zh(e):e.in}function Vh(e){return Rr(e,{pipe:n=>Lx(n._zod.def),default:(n,i)=>i?Ct(n._zod.def.innerType):n,catch:(n,i)=>i?n._zod.def.innerType:n})}function Gh(e){return Rr(e,{pipe:n=>Zh(n._zod.def),prefault:(n,i)=>i?n._zod.def.innerType:n})}var np={};We(np,{bigint:()=>Zx,boolean:()=>Mx,date:()=>Vx,number:()=>Rx,string:()=>Ux});function Ux(e){return wc(Sn,e)}function Rx(e){return Ac(Pn,e)}function Mx(e){return Lc(Tn,e)}function Zx(e){return Rc(En,e)}function Vx(e){return Xc(Er,e)}var Gx=new Set(["__proto__","prototype","constructor"]),Rt=l.string().min(1).max(256).refine(e=>!Gx.has(e),"reserved storage key"),ua=l.json(),ca=256*1024,Fx=5*1024*1024,Fh=1024,Bh=l.strictObject({key:Rt}),Hh=l.object({value:ua}),Kh=l.strictObject({key:Rt,value:ua}),Wh=l.object({ok:l.literal(!0)}),Jh=l.strictObject({key:Rt}),Xh=l.object({ok:l.literal(!0)}),qh=l.strictObject({}).optional(),Yh=l.object({keys:l.array(l.string()).max(Fh)}),Qh=l.strictObject({key:Rt}),ev=l.object({value:l.string().nullable()}),tv=l.strictObject({key:Rt,value:l.string().max(64*1024)}),nv=l.object({ok:l.literal(!0)}),rv=l.strictObject({key:Rt}),iv=l.object({ok:l.literal(!0)}),ov=l.strictObject({}).optional(),av=l.object({status:l.enum(["os-keyring","unavailable"])}),sv=l.strictObject({}).optional(),uv=l.object({settings:l.record(l.string(),ua)}),cv=l.strictObject({key:Rt,value:ua}),lv=l.object({ok:l.literal(!0)});var Nn="x-orca-enum-since";var et="1.4.160",rp="1.4.245";var Mr="1.4.246";var dv=Mr,pv=Mr;var je="1.4.248";var Hx="Relative to the plugin root; `..` segments and Windows device names such as `CON` are refused.";function mv(e,n,i){return ae(`${e} ${Hx}`,n,i)}function ae(e,n,i){return i?{description:e,"x-orca-since":n,examples:[...i]}:{description:e,"x-orca-since":n}}var ht=["workspace.created","workspace.removed","agent.status.changed","workspace.changed"],dO=ht.length,Kx={"workspace.created":rp,"workspace.removed":rp,"agent.status.changed":et,"workspace.changed":pv},la=new Map([["worktree.created","workspace.created"],["worktree.removed","workspace.removed"]]);var pO=l.object({on:l.enum(ht).meta({...ae("Event delivered to the plugin worker.",et),[Nn]:Kx})}).strict().meta({id:"EventContribution",description:"An event subscription. Requires `main`, the `trusted-worker` execution profile and the capability of the event's domain: `workspace:read` for workspace events, `agent:read` for agent events."});var ge=["worker","panel","editor"],he=["worker"],zn=["panel","editor"],B=e=>e;function fv(e,n){return n==="worker"?e.since:Math.max(e.since,e.framesSince??0)}var Wx=["success","failure","cancellation","superseded"],gv=[...Wx,"interruption","unconfirmed"];var Dn=["working","blocked","waiting","done"];var DO=new Set(Dn);var vt=l.string().regex(/^[A-Za-z0-9_.:-]{1,128}$/,"is 1-128 letters, digits, or . _ : -");var da=12e4,UO=1024*1024,RO=256*1024;var Qx=l.object({id:l.string().min(1).max(64),surface:l.enum(["panel","editor"]),contributionId:l.string().min(1).max(256)}),MO=l.object({name:vt,input:l.unknown(),panel:Qx}),ZO=l.object({event:vt,payload:l.unknown(),panel:l.string().min(1).max(64).optional()}),hv=["storage","settings"],VO=l.object({area:l.enum(hv),key:l.string().min(1).max(256)}),GO=l.discriminatedUnion("kind",[l.object({kind:l.literal("message"),event:vt,payload:l.unknown()}),l.object({kind:l.literal("event"),event:l.enum(ht),payload:l.unknown()}),l.object({kind:l.literal("changed"),area:l.enum(hv),key:l.string()})]);var ew=l.strictObject({name:vt,input:l.json().optional(),timeoutMs:l.number().int().min(1).max(da).optional()}),tw=l.object({output:l.json()}),nw=50,rw=l.strictObject({}).optional(),iw=l.object({agents:l.array(l.object({terminalId:l.string().min(1).max(1024).nullable(),title:l.string().max(512).nullable(),agent:l.string().max(128).nullable(),state:l.enum(Dn),stateStartedAt:l.number().finite()})).max(nw)}),ow=l.strictObject({event:l.enum(ht)}),aw=l.object({ok:l.literal(!0)}),vv={"plugin.request":B({summary:"Asks the plugin's own worker to run the handler it registered with `orca.panels.handle(name)`, starting the worker if needed; resolves with what the handler returned. `unknown_method` when no handler has that name.",since:2,scope:"plugin-private",capability:null,mutation:!1,surfaces:zn,params:ew,result:tw}),"agents.list":B({summary:"The agents in the focused workspace: their terminal, title, agent kind and status. `agent.status.changed` reports each change after.",since:2,scope:"active-workspace",capability:"agent:read",mutation:!1,surfaces:ge,params:rw,result:iw}),"events.subscribe":B({summary:"Delivers a workspace or agent event to this panel as `orca.on(event)`; needs the event's read capability. The frame APIs call it for you.",since:2,scope:"plugin-private",capability:null,mutation:!1,surfaces:zn,params:ow,result:aw})};var sw=/^(?:con|prn|aux|nul|clock\$|conin\$|conout\$|com[1-9\u00B9\u00B2\u00B3]|lpt[1-9\u00B9\u00B2\u00B3])(?:\..*)?$/i,uw=/[<>:"|?*]/,pa=String.raw`[^<>:"|?*\x00-\x1f\\/]*[^<>:"|?*\x00-\x1f\\/. ]`,ip=new RegExp(`^${pa}(?:[\\\\/]${pa})*$`),qO=new RegExp(`^${pa}(?:/${pa})*$`);function cw(e){return e.length===0||e==="."||e===".."?"empty and dot path segments are not allowed":e.endsWith(".")||e.endsWith(" ")?"path segments may not end with a dot or space":uw.test(e)||[...e].some(n=>n.charCodeAt(0)<=31)?"path segment contains a Windows-forbidden character or alternate-data-stream colon":sw.test(e)?"path segment is a Windows reserved device name":null}function lw(e){if(e.length===0||e.startsWith("/")||e.startsWith("\\"))return"must be a non-empty relative path";let n=e.split(/[\\/]/);for(let i of n){let o=cw(i);if(o)return o}return null}function op(e){return lw(e)===null}var yv=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,dw=new Set(["__proto__","prototype","constructor"]),ap=64;function bv(e){return dw.has(e)}var sp="must be a portable relative path inside the plugin directory",Cn=l.string().max(ap).regex(yv,"must be kebab-case (a-z, 0-9, dashes)").refine(e=>!bv(e),"must not be a reserved name"),_v=l.string().min(1).max(1024).regex(ip,sp).refine(e=>!ip.test(e)||op(e),sp),oN=l.string().min(1).max(1024).transform(e=>e.replace(/[\\/]+$/,"")).refine(op,sp),$v=l.string().min(1).max(256).regex(/^[A-Za-z0-9]+(?:[._-][A-Za-z0-9]+)*$/,"must be a portable command id");var pw=/[\p{Cc}\p{Cf}\p{Cs}\p{Zl}\p{Zp}]/u,mw=new Set(["‌","‍"]);function fw(e){return mw.has(e)||!pw.test(e)}function kv(e){return[...e].filter(fw).join("")}var gw=/[\t\n\v\f\r\u0085\u2028\u2029]+/g;function hw(e){return kv(e.replace(gw," "))}function Zr(e){let n=e.overwrite(hw);return e.minLength?n.min(e.minLength,"must contain visible characters"):n}var j={maxNodes:5e3,maxDepth:64,maxTreeBytes:524288,maxTextLength:16384,maxLabelLength:1024,maxPropsPerNode:32,maxSelectOptions:500,maxEventArgs:8,maxCallbackIdLength:64,maxRadioOptions:50,maxTableColumns:32,maxTableRows:5e3,maxTreeItems:2e3,maxTreeItemDepth:16,maxKeyValueItems:200,maxDocumentLength:65536,maxEventArgItems:5e3},dN={maxBytes:640*1024,maxMessages:200,perMs:1e4,maxDepth:j.maxDepth*2+24,maxObjects:j.maxNodes*8+1024};var Be={render:"ui.render",event:"ui.event",error:"ui.error",ack:"ui.ack",ready:"ui.ready",hydrate:"ui.hydrate",visibility:"ui.visibility",persist:"ui.persist",retain:"ui.retain",snapshot:"ui.snapshot",restore:"ui.restore"};var vw={Input:{value:"value",change:"onChange"},Textarea:{value:"value",change:"onChange"},Switch:{value:"checked",change:"onChange"},Checkbox:{value:"checked",change:"onChange"},Select:{value:"value",change:"onChange"},RadioGroup:{value:"value",change:"onChange"},Slider:{value:"value",change:"onChange"},Tabs:{value:"value",change:"onChange"},Collapsible:{value:"open",change:"onChange"},Table:{value:"selected",change:"onSelectionChange"},Tree:{value:"selected",change:"onSelect"}},yw=new Map(Object.entries(vw));function up(e){return yw.get(e)??null}var ma="$edit";var fa=/^[A-Za-z0-9_.:-]+$/,xv=l.object({$callback:l.string().min(1).max(j.maxCallbackIdLength).regex(fa)}).strict(),Mt=["neutral","accent","success","warning","danger"],G=l.string().max(j.maxLabelLength),H=G.min(1),Y=xv.optional(),Le=l.string().regex(/^[a-z0-9-]{1,64}$/),Ee=l.enum(["none","xs","sm","md","lg"]).optional(),Vr=l.enum(["start","center","end","stretch"]).optional(),tt=l.enum(Mt).optional(),ga=l.enum(["xs","sm","md"]).optional(),cp=l.enum(["solid","outline","ghost"]).optional(),N=l.boolean().optional(),jn=l.string().max(j.maxTextLength),Gr=l.enum(["sm","md","lg","none"]).optional(),Zt=l.string().min(1).max(j.maxLabelLength),ve={[ma]:l.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER).optional()};function R(e,n){return{props:e,children:n}}var yt=["activity","bar-chart-3","bell","blocks","book","bot","bug","calendar","cloud","code","database","file-text","flag","folder","gauge","globe","hammer","layers","lightbulb","package","plug","puzzle","rocket","star","terminal","wrench","zap","add","remove","delete","edit","refresh","search","settings","check","close","info","warning","error","open-external","copy","download","upload","play","pause","stop","more","expand","collapse","next","filter","branch","file","agent","link"],bw=Object.fromEntries(yt.slice(yt.indexOf("add")).map(e=>[e,Mr])),xN=new Map(yt.map(e=>[e.replaceAll("-",""),e]));var _w=["html","components"],$w=/\.(?:m?js|tsx?|mts|jsx)$/i,wN=l.object({id:Cn.meta(ae("Panel id, unique among this plugin's panels. The reserved names `constructor` and `prototype` are refused.",et,["dashboard"])),title:Zr(l.string().min(1).max(256)).meta(ae("Title shown on the panel tab and its tooltip.",et,["Dashboard"])),icon:l.enum(yt).optional().meta({...ae("Icon shown in the right-sidebar activity bar. Defaults to `plug`.",et,["database"]),[Nn]:bw}),entry:_v.meta(mv(`What the panel runs: an HTML page for \`ui: "html"\`, a \`.js\`/\`.mjs\` module for \`ui: "components"\`. Either may instead be a \`.ts\`/\`.tsx\`/\`.mts\`/\`.jsx\` file, which Orca transpiles when it loads (needs \`engines.orca\` \`>=${dv}\`; an \`html\` panel then gets a generated page around it). It is trusted code: install panels you trust.`,et,["dist/panel.html"])),ui:l.enum(_w).optional().meta(ae("How the panel draws its UI. `html` (default) shows `entry` as a web page in an isolated frame; `components` runs `entry` as a hidden module and Orca draws the component tree it returns with its own controls.",Mr,["components"]))}).strict().refine(e=>e.ui!=="components"||$w.test(e.entry),{path:["entry"],message:"a components panel entry must be a .js, .mjs, .ts, .tsx, .mts or .jsx module"}).meta({id:"PanelContribution",description:"A sidebar panel. Requires the `sandboxed-ui` execution profile or higher."});var kw="1.4.248";var xw=64,ww=256,Ln=kw,wv={text:Zr(l.string().max(xw)).optional().meta(ae("Short label shown in the status bar.",Ln,["3 blocked"])),icon:l.enum(yt).optional().meta(ae("Icon shown before the text, from the panel icon set.",Ln,["bell"])),tone:l.enum(Mt).optional().meta(ae("Colour of the item. Defaults to `neutral`.",Ln,["warning"])),tooltip:Zr(l.string().max(ww)).optional().meta(ae("Shown on hover. Defaults to the plugin name.",Ln))},NN=l.object({id:Cn.meta(ae("Item id, unique among this plugin's status bar items; `statusBar.update` names it.",Ln,["blocked-count"])),...wv,command:$v.optional().meta(ae("Id of a command this plugin contributes in `contributes.commands`, run when the item is pressed.",Ln,["guard.showLog"]))}).strict().meta({id:"StatusBarItemContribution",description:"An item in the status bar. Requires the `declarative` profile; a `trusted-worker` can change it with `statusBar.update`."}),Iv=l.strictObject({...wv,visible:l.boolean().optional()});var Iw=l.strictObject({id:Cn,...Iv.shape}),Sw=l.object({ok:l.literal(!0)}),Sv={"statusBar.update":B({summary:"Changes one of the plugin's `contributes.statusBarItems` (named by `id`): fields given replace their current value, `visible: false` hides it. Desktop app only; lasts until Orca restarts, and is hidden while the plugin is disabled. A plugin with `main` and status bar items has its worker started when it is enabled and kept running while it stays enabled, so a worker can poll and update its items without an event or a hook.",since:2,scope:"plugin-private",capability:null,mutation:!1,surfaces:he,params:Iw,result:Sw})};function lp(e){return e==="linux"?"orca-ide":e==="win32"?"orca.cmd":"orca"}function Pw(e){return{...e,launchCmd:e.launchCmd??e.detectCmd,expectedProcess:e.expectedProcess??e.detectCmd}}var Tw={claude:{detectCmd:"claude",promptInjectionMode:"argv",pasteNeedsTypedRequest:!0,draftPromptFlag:"--prefill",preflightTrust:"claude",draftPasteReadySignal:"claude-composer-prompt",workerStartReadsComposerMarker:!0,ctrlEnterEncoding:"csi-u"},"claude-agent-teams":{detectCmd:"orca",detectCmdAliases:["orca-dev","orca-ide"],detectRequiredCommands:["claude"],detectUnsupportedRuntimes:["win32","wsl"],launchCmd:"orca claude-teams",launchCmdByPlatform:{linux:`${lp("linux")} claude-teams`,win32:`${lp("win32")} claude-teams`},expectedProcess:"claude",promptInjectionMode:"stdin-after-start",pasteNeedsTypedRequest:!0,preflightTrust:"claude",draftPasteReadySignal:"claude-composer-prompt",workerStartReadsComposerMarker:!0,ctrlEnterEncoding:"csi-u"},codebuddy:{detectCmd:"codebuddy",detectCmdAliases:["cbc"],promptInjectionMode:"argv"},openclaude:{detectCmd:"openclaude",promptInjectionMode:"argv",draftPromptFlag:"--prefill"},codex:{detectCmd:"codex",promptInjectionMode:"argv",windowsInputRecordPasteNewline:"alt-enter",preflightTrust:"codex",draftPasteReadySignal:"codex-composer-prompt",draftPasteReadyTimeoutMs:2e4,submitRetryDelayMs:1200},autohand:{detectCmd:"autohand",promptInjectionMode:"stdin-after-start"},ante:{detectCmd:"ante",promptInjectionMode:"stdin-after-start"},trae:{detectCmd:"traecli",promptInjectionMode:"argv",argvPromptSeparator:"--"},opencode:{detectCmd:"opencode",promptInjectionMode:"flag-prompt",draftPasteReadySignal:"render-cursor-after-bracketed-paste",submitPasteReadySignal:"opencode-agent-row",draftPasteReadyTimeoutMs:2e4,ctrlEnterEncoding:"csi-u",composerReadyCaptures:["opencode-1-18-32-timed-boot-slow","opencode-1-18-32-timed-boot-hidden-pane","opencode-1-18-32-timed-first-launch","opencode-cmd-2-0-21-timed-warm-server"]},opencode2:{detectCmd:"opencode2",launchCmd:"opencode2 --standalone",promptInjectionMode:"flag-prompt",draftPasteReadySignal:"render-cursor-after-bracketed-paste",submitPasteReadySignal:"opencode-agent-row",draftPasteReadyTimeoutMs:2e4,composerReadyCaptures:["opencode-2-0-18-timed-boot-hidden-pane","opencode-2-0-21-timed-cold-standalone","opencode-2-0-21-timed-cold-standalone-hidden-pane","opencode-2-0-21-timed-natural-load-enter-dropped","opencode-2-0-14-timed-cold-standalone"]},"mimo-code":{detectCmd:"mimo",promptInjectionMode:"flag-prompt",draftPasteReadySignal:"render-cursor-after-bracketed-paste"},pi:{detectCmd:"pi",promptInjectionMode:"argv",draftPromptEnvVar:"ORCA_PI_PREFILL",windowsShiftEnterEncoding:"csi-u"},omp:{detectCmd:"omp",promptInjectionMode:"argv",draftPromptEnvVar:"ORCA_OMP_PREFILL",windowsShiftEnterEncoding:"csi-u"},"prime-agent":{detectCmd:"prime-agent",promptInjectionMode:"argv",argvPromptSeparator:"--",windowsShiftEnterEncoding:"csi-u"},qoder:{detectCmd:"qodercli",detectCmdAliases:["qoder"],promptInjectionMode:"flag-prompt-interactive",preflightTrust:"qoder"},"qoder-cn":{detectCmd:"qoderclicn",detectCmdAliases:["qodercn"],promptInjectionMode:"flag-prompt-interactive",preflightTrust:"qoder-cn"},gemini:{detectCmd:"gemini",promptInjectionMode:"flag-prompt-interactive"},antigravity:{detectCmd:"agy",promptInjectionMode:"flag-prompt-interactive",preflightTrust:"antigravity",draftPasteReadySignal:"antigravity-composer-prompt",draftPasteReadyTimeoutMs:2e4,submitLineSettleMsPerLine:45},aider:{detectCmd:"aider",promptInjectionMode:"stdin-after-start"},goose:{detectCmd:"goose",promptInjectionMode:"stdin-after-start"},amp:{detectCmd:"amp",promptInjectionMode:"stdin-after-start"},kilo:{detectCmd:"kilo",promptInjectionMode:"stdin-after-start"},kiro:{detectCmd:"kiro-cli",launchCmd:"kiro-cli chat --tui",promptInjectionMode:"stdin-after-start"},crush:{detectCmd:"crush",promptInjectionMode:"stdin-after-start"},aug:{detectCmd:"auggie",promptInjectionMode:"stdin-after-start"},cline:{detectCmd:"cline",promptInjectionMode:"stdin-after-start"},freebuff:{detectCmd:"freebuff",promptInjectionMode:"stdin-after-start"},codebuff:{detectCmd:"codebuff",promptInjectionMode:"stdin-after-start"},"command-code":{detectCmd:"command-code",launchCmd:"command-code --trust",promptInjectionMode:"argv"},continue:{detectCmd:"cn",promptInjectionMode:"stdin-after-start"},cursor:{detectCmd:"cursor-agent",promptInjectionMode:"argv",preflightTrust:"cursor"},droid:{detectCmd:"droid",promptInjectionMode:"argv",windowsShiftEnterEncoding:"csi-u",ctrlEnterEncoding:"csi-u"},kimi:{preflightTrust:"kimi",detectCmd:"kimi",detectCmdAliases:["kimi-code"],promptInjectionMode:"stdin-after-start"},"mistral-vibe":{detectCmd:"vibe",detectCmdAliases:["mistral-vibe"],promptInjectionMode:"stdin-after-start"},"qwen-code":{detectCmd:"qwen",promptInjectionMode:"stdin-after-start",submitRetryDelayMs:1200},rovo:{detectCmd:"acli",launchCmd:"acli rovodev run",promptInjectionMode:"stdin-after-start"},hermes:{detectCmd:"hermes",launchCmd:"hermes --tui",promptInjectionMode:"hermes-query"},openclaw:{detectCmd:"openclaw",promptInjectionMode:"stdin-after-start"},copilot:{detectCmd:"copilot",promptInjectionMode:"flag-interactive",preflightTrust:"copilot"},grok:{detectCmd:"grok",promptInjectionMode:"argv",argvPromptSeparator:"--",draftPasteReadySignal:"grok-composer-prompt",ctrlEnterEncoding:"csi-u"},muse:{detectCmd:"muse",launchCmd:"muse --trust-workspace",promptInjectionMode:"stdin-after-start"},dsh:{detectCmd:"dsh-tui",detectCmdAliases:["dst"],detectRequiredCommands:["dsh"],launchCmd:"dsh-tui .",expectedProcess:"dsh",promptInjectionMode:"stdin-after-start",draftPasteReadySignal:"dsh-composer-prompt",submitRetryDelayMs:1e3,submitRetryBudgetMs:3e4},zcode:{detectCmd:"zcode",expectedProcess:"zcode-cli",promptInjectionMode:"stdin-after-start",draftPasteReadySignal:"zcode-composer-prompt",composerReadyCaptures:["zcode-composer-ready"]},devin:{detectCmd:"devin",promptInjectionMode:"argv",argvPromptSeparator:"--"},jcode:{detectCmd:"jcode",launchCmd:"jcode",expectedProcess:"jcode",promptInjectionMode:"stdin-after-start"}},Ew=Object.fromEntries(Object.entries(Tw).map(([e,n])=>[e,Pw(n)]));function Pv(e){return typeof e=="string"&&Object.hasOwn(Ew,e)}var dp=["worktree.history.back","worktree.history.forward","sidebar.left.toggle","sidebar.sleepingWorkspaces.toggle","floatingWorkspace.maximize","tab.rename","workspace.rename","workspace.openBoard","view.tasks","sidebar.right.toggle","sidebar.explorer.toggle","sidebar.search.toggle","sidebar.sourceControl.toggle","sidebar.checks.toggle","sidebar.ports.toggle"];var WN=new Set(dp);var Aw=500,pp=2e3,Fr=1024,Tv=4096,Br=l.string().min(1).max(Fr),mp=l.string().min(1).max(Fr),Ow=l.strictObject({}).optional(),Nw=l.object({workspaces:l.array(l.object({id:Br,kind:l.enum(["worktree","folder"]),name:l.string().max(512),path:l.string().max(Fr),branch:l.string().max(512).nullable(),hostId:l.string().max(Fr).nullable()})).max(Aw),truncated:l.boolean()}),zw=l.strictObject({workspaceId:Br}),Dw=l.object({opened:l.literal(!0)}),Cw=l.strictObject({workspaceId:Br,title:l.string().min(1).max(512).optional(),command:l.string().min(1).max(Tv).optional()}),jw=l.object({terminalId:mp}),Lw=l.strictObject({terminalId:mp,maxLines:l.number().int().min(1).max(pp).optional()}),Uw=l.object({lines:l.array(l.string()).max(pp),truncated:l.boolean()}),Rw=l.strictObject({workspaceId:Br,agent:l.string().min(1).max(64).refine(Pv,"unknown agent"),prompt:l.string().min(1).max(Tv).optional()}),Mw=l.object({terminalId:mp});function Zw(e){let n=e.split(/[\\/]/);return!/^[a-z]:/i.test(e)&&n[0]!==""&&n.every(i=>i!=="..")&&n.some(i=>i!==""&&i!==".")}var Vw=l.strictObject({workspaceId:Br,path:l.string().min(1).max(Fr).refine(Zw,"path must be relative and inside the workspace")}),Gw=l.object({opened:l.literal(!0)}),Fw=l.strictObject({action:l.enum(dp)}),Bw=l.object({ran:l.literal(!0)}),Ev={"workspace.list":B({summary:"Lists every workspace, Git worktrees and folders, on every host Orca reaches.",since:3,scope:"any-workspace",capability:"workspace:read",mutation:!1,surfaces:he,params:Ow,result:Nw}),"workspace.open":B({summary:"Shows a workspace in Orca, as clicking it in the sidebar does; a folder workspace needs the desktop app.",since:3,scope:"any-workspace",capability:"workspace:write",mutation:!0,surfaces:he,params:zw,result:Dw}),"terminal.create":B({summary:"Opens a terminal in a workspace, optionally running a command, in the background.",since:3,scope:"any-workspace",capability:"terminal:send",mutation:!0,surfaces:he,params:Cw,result:jw}),"terminal.read":B({summary:`Reads a terminal's newest output as plain text, at most ${pp} lines.`,since:3,scope:"explicit-terminal",capability:"terminal:read",mutation:!1,surfaces:he,params:Lw,result:Uw}),"agent.launch":B({summary:"Starts an agent's CLI in a new terminal of a workspace, in the background, and returns as soon as it starts; a `prompt` is sent once the agent is ready.",since:3,scope:"any-workspace",capability:"agent:launch",mutation:!0,surfaces:he,params:Rw,result:Mw}),"editor.open":B({summary:"Opens a file of a workspace in an editor tab of Orca's window; desktop app only. `workspace.open` shows the workspace.",since:3,scope:"any-workspace",capability:"workspace:write",mutation:!0,surfaces:he,params:Vw,result:Gw}),"commands.run":B({summary:"Runs one of Orca's built-in actions in its window, never a plugin's replacement of it; desktop app only.",since:3,scope:"desktop",capability:"workspace:write",mutation:!0,surfaces:he,params:Fw,result:Bw})};var fp=l.string().regex(/^[a-f0-9]{64}$/),Av=l.string().min(1).max(16*1024),Hw=l.strictObject({expectedRevision:fp,app:Av,terminal:Av}),Ov={"appearance.read":B({summary:"Reads the current desktop appearance revision for a conditional update.",since:4,scope:"desktop",capability:"appearance:write",mutation:!1,surfaces:he,params:l.strictObject({}).optional(),result:l.strictObject({revision:fp})}),"appearance.apply":B({summary:"Publishes owned app/editor and terminal colors and selects them in the desktop. Returns publication, not renderer acknowledgement.",since:4,scope:"desktop",capability:"appearance:write",mutation:!0,surfaces:he,params:Hw,result:l.strictObject({revision:fp,themeId:l.templateLiteral(["plugin:",l.string()]),mode:l.enum(["dark","light"]),delivery:l.literal("published")})})};var Nv={...Sv,...Ov,...Ev};var Kw=4096,Ww=50,Hr=512,nt=1024,Jw=l.strictObject({}).optional(),gp=l.object({branch:l.string().max(Hr),displayName:l.string().max(Hr),terminals:l.array(l.object({id:l.string().min(1).max(nt),title:l.string().max(Hr).optional()}).strict()).max(Ww)}).strict().nullable(),Xw=gp,qw=l.strictObject({terminalId:l.string().min(1).max(nt),text:l.string().min(1).max(Kw),enter:l.boolean().default(!1)}),Yw=l.object({accepted:l.boolean()}),Qw=l.strictObject({title:l.string().min(1).max(120),body:l.string().max(1e3).optional()}),eI=l.object({delivered:l.boolean()}),hp={openExternal:"shell.openExternal",saveAs:"files.saveAs"},tI=8192,nI=["http:","https:","mailto:"],zv=64*1024*1024,rI=l.strictObject({url:l.string().min(1).max(tI).refine(uI,"url must be an http:, https: or mailto: URL")}),iI=l.object({opened:l.boolean(),reason:l.enum(["cancelled","consent-unavailable"]).optional()}),oI=l.union([l.string().max(zv),l.custom(e=>e instanceof ArrayBuffer||e instanceof Uint8Array,"data must be a string or ArrayBuffer").refine(e=>e.byteLength<=zv,"data exceeds 64 MiB").meta({type:"ArrayBuffer"})]),aI=l.strictObject({suggestedName:l.string().min(1).max(255).optional(),mimeType:l.string().min(1).max(255).optional(),data:oI}),sI=l.object({status:l.enum(["saved","cancelled"])});function uI(e){try{return nI.includes(new URL(e).protocol)}catch{return!1}}var Vt={"workspace.readContext":B({summary:"Branch, name and terminal ids of the focused workspace, or null when none is focused.",since:0,scope:"active-workspace",capability:"workspace:read",mutation:!1,surfaces:ge,params:Jw,result:Xw}),"terminal.sendText":B({summary:"Types text into one terminal named by id, optionally pressing Enter.",since:0,scope:"explicit-terminal",capability:"terminal:send",mutation:!0,surfaces:he,params:qw,result:Yw}),"notifications.show":B({summary:"Shows a desktop notification.",since:0,scope:"desktop",capability:"notifications:show",mutation:!0,surfaces:ge,params:Qw,result:eI}),"storage.get":B({summary:"Reads a JSON value from the plugin's private store; null when absent.",since:0,scope:"plugin-private",capability:"storage:own",mutation:!1,framesSince:2,surfaces:ge,params:Bh,result:Hh}),"storage.set":B({summary:"Writes a JSON value to the plugin's private store.",since:0,scope:"plugin-private",capability:"storage:own",mutation:!0,framesSince:2,surfaces:ge,params:Kh,result:Wh}),"storage.delete":B({summary:"Removes a key from the plugin's private store.",since:0,scope:"plugin-private",capability:"storage:own",mutation:!0,framesSince:2,surfaces:ge,params:Jh,result:Xh}),"storage.keys":B({summary:"Lists the keys in the plugin's private store.",since:0,scope:"plugin-private",capability:"storage:own",mutation:!1,framesSince:2,surfaces:ge,params:qh,result:Yh}),"secrets.get":B({summary:"Reads a secret from the plugin's encrypted secrets file; null when absent.",since:0,scope:"plugin-private",capability:"secrets:own",mutation:!1,framesSince:2,surfaces:ge,params:Qh,result:ev}),"secrets.set":B({summary:"Stores a secret in the plugin's encrypted secrets file.",since:0,scope:"plugin-private",capability:"secrets:own",mutation:!0,framesSince:2,surfaces:ge,params:tv,result:nv}),"secrets.delete":B({summary:"Removes a secret from the plugin's encrypted secrets file.",since:0,scope:"plugin-private",capability:"secrets:own",mutation:!0,framesSince:2,surfaces:ge,params:rv,result:iv}),"secrets.protection":B({summary:"How secrets are protected at rest: `os-keyring`, or `unavailable` (no OS key store, or Linux `basic_text`), where `secrets.set` fails.",since:1,scope:"plugin-private",capability:"secrets:own",mutation:!1,framesSince:2,surfaces:ge,params:ov,result:av}),"settings.get":B({summary:"Reads every setting the plugin owns.",since:0,scope:"plugin-private",capability:"settings:own",mutation:!1,framesSince:2,surfaces:ge,params:sv,result:uv}),"settings.set":B({summary:"Writes one setting the plugin owns.",since:0,scope:"plugin-private",capability:"settings:own",mutation:!0,framesSince:2,surfaces:ge,params:cv,result:lv}),"shell.openExternal":B({summary:"Opens an http:, https: or mailto: URL in the default browser. Needs a click or key press in the frame; desktop app only. Orca asks the person before an http(s) host the plugin was not allowed; `opened` is false if they cancel.",since:1,scope:"desktop",capability:null,userActivation:!0,mutation:!1,surfaces:zn,params:rI,result:iI}),"files.saveAs":B({summary:"Offers data (a string or ArrayBuffer, up to 64 MiB) in Orca's save dialog; the plugin never learns the path. Needs a click or key press in the frame; desktop app only.",since:1,scope:"desktop",capability:null,userActivation:!0,mutation:!0,surfaces:zn,params:aI,result:sI}),...vv,...Nv},Dv=Object.keys(Vt).filter(Cv);function Cv(e){return Object.hasOwn(Vt,e)}function vp(e){return Cv(e)?Vt[e]:null}var jv=Math.max(...Dv.map(e=>Vt[e].since));function Kr(e){return Dv.filter(n=>Vt[n].surfaces.includes(e))}function ha(e,n){return Kr(e).filter(i=>n||Vt[i].userActivation!==!0)}function va(e,n="panel"){return Math.max(0,...e.map(i=>fv(Vt[i],n)))}var Ue=1,gz=l.number().refine(e=>e===Ue,{error:e=>typeof e.input=="number"&&e.input>Ue?`targets host API ${e.input}, but this Orca supports only ${Ue}; update Orca`:`must be ${Ue}`}).meta({const:Ue});var cI=new Set(["rate_limited","unavailable","timeout","conflict"]);function He(e,n=e,i){return Object.assign(new Error(n),{code:e,retryable:cI.has(e),...i===void 0?{}:{retryAfterMs:i}})}var lI=new Set(["plugin.request","events.subscribe","storage.get","storage.set","storage.delete","storage.keys","settings.get","settings.set","secrets.get","secrets.set","secrets.delete","secrets.protection"]);function ya(e,n){return typeof e=="object"&&e!==null&&n in e?Object.getOwnPropertyDescriptor(e,n)?.value:void 0}function Lv(e){let n={storage:new Map(Object.entries(e.storage??{})),settings:new Map(Object.entries(e.settings??{})),secrets:new Map(Object.entries(e.secrets??{}))},i=new Set,o=(a,s,u)=>{if(u===void 0?n[a].delete(s):n[a].set(s,u),a!=="secrets")for(let c of i)c(a,s);return{ok:!0}},t=null;async function r(a){let s=String(ya(a,"name")),u=ya(a,"input");if(!e.requests||!Object.hasOwn(e.requests,s)){if(t)return{output:await t(s,u)??null};throw He("unknown_method",`no panel handler named ${s}`)}let c=e.requests[s];return{output:(typeof c=="function"?await c(u):c)??null}}return{handles:a=>lI.has(a),async answer(a,s){let u=String(ya(s,"key")),c=ya(s,"value");switch(a){case"plugin.request":return r(s);case"storage.get":return{value:n.storage.get(u)??null};case"storage.keys":return{keys:[...n.storage.keys()]};case"settings.get":return{settings:Object.fromEntries(n.settings)};case"secrets.get":return{value:n.secrets.get(u)??null};case"secrets.protection":return{status:"os-keyring"};case"storage.set":return o("storage",u,c);case"settings.set":return o("settings",u,c);case"secrets.set":return o("secrets",u,c);case"storage.delete":return o("storage",u,void 0);case"secrets.delete":return o("secrets",u,void 0);default:return{ok:!0}}},routeRequests(a){return t=a,()=>{t===a&&(t=null)}},onChange(a){return i.add(a),()=>i.delete(a)},snapshot:()=>({storage:Object.fromEntries(n.storage),settings:Object.fromEntries(n.settings),secrets:Object.fromEntries(n.secrets)})}}var ba=class extends Error{constructor(i,o){super(o);this.code=i}code};function dI(e){return typeof e=="function"}var Uv={ok:!0};function pI(e){return e.result.safeParse(Uv).success}var yp={"workspace.readContext":null,"notifications.show":{delivered:!0},"shell.openExternal":{opened:!0},"files.saveAs":{status:"saved"},"agents.list":{agents:[]}};function Rv(e,n){let i=new Set(e.capabilities??n),o=new Map(Object.entries(e.results??{})),t=Lv(e),r={panel:ha("panel",!0),worker:Kr("worker")},a=[],s=[],u=new Set,c=0,d=(g,y)=>{throw new ba(g,y)};async function p(g,y,x){let I=vp(g);if(!I)return d("unknown_method",`${g} does not exist in this Orca`);if(!I.surfaces.includes(x))return d("not_permitted",`${g} is not available to ${x}s`);if(I.userActivation===!0){if(c===0)return d("not_permitted",`${g} needs a click or key press in the frame`);c-=1}if(I.capability&&!i.has(I.capability))return d("capability_denied",`${g} needs the ${I.capability} capability`);let b=I.params.safeParse(y);return b.success?b.data:d("invalid_params",b.error.issues[0]?.message??"invalid params")}async function m(g,y,x){let I;try{I=await p(g,y,x)}catch(E){throw E instanceof ba?(s.push({method:g,code:E.code,message:E.message}),He(E.code,E.message)):E}let b=vp(g);if(!b)throw He("unknown_method",g);let T=!o.has(g)&&t.handles(g),A=pI(b);if(!o.has(g)&&!T&&!Object.hasOwn(yp,g)&&!A)throw He("unavailable",`the test configured no result for ${g}`);let D=o.has(g)?o.get(g):Object.hasOwn(yp,g)?yp[g]:Uv,w=T?await t.answer(g,I):dI(D)?await D(I):D,O=b.result.safeParse(w);if(!O.success)throw new TypeError(`mockHost: the result configured for ${g} does not match the host API: ${O.error.issues[0]?.message??"invalid result"}`);return O.data}let f=g=>({api:{major:Ue,minor:va(r[g])},call(y,x){a.push({method:y,params:x});let I=m(y,x,g);return u.add(I),I.catch(()=>{}).finally(()=>u.delete(I)),I},has:y=>r[g].some(x=>x===y)});return{calls:a,refusals:s,capabilities:[...i],callsOf:g=>a.filter(y=>y.method===g).map(y=>y.params),respond:(g,y)=>o.set(g,y),grantGesture:()=>{c=1},data:()=>t.snapshot(),onDataChange:g=>t.onChange(g),routeRequests:g=>t.routeRequests(g),async idle(){for(;u.size>0;)await Promise.allSettled(u)},bridge:f("panel"),worker:f("worker")}}var mI=l.object({label:H,labelHidden:N,value:jn.optional(),defaultValue:jn.optional(),placeholder:G.optional(),rows:l.number().int().min(2).max(20).optional(),maxLength:l.number().int().positive().max(j.maxTextLength).optional(),invalid:N,disabled:N,onChange:Y,onSubmit:Y,...ve}).strict(),fI=l.object({label:H,description:G.optional(),checked:N,defaultChecked:N,disabled:N,onChange:Y,...ve}).strict(),gI=l.object({label:H,labelHidden:N,value:G.optional(),defaultValue:G.optional(),options:l.array(l.object({value:H,label:H,description:G.optional(),disabled:N}).strict()).max(j.maxRadioOptions),orientation:l.enum(["vertical","horizontal"]).optional(),disabled:N,onChange:Y,...ve}).strict(),_a=l.number().refine(Number.isFinite,"must be finite"),hI=l.object({label:H,labelHidden:N,value:_a.optional(),defaultValue:_a.optional(),min:_a.optional(),max:_a.optional(),step:l.number().positive().refine(Number.isFinite).optional(),showValue:N,disabled:N,onChange:Y,...ve}).strict(),vI=l.object({label:H,description:G.optional(),error:G.optional(),required:N}).strict(),Mv={Textarea:R(mI,"none"),Checkbox:R(fI,"none"),RadioGroup:R(gI,"none"),Slider:R(hI,"none"),Field:R(vI,"any")};var yI=l.object({label:H,value:G.optional(),defaultValue:G.optional(),onChange:Y,...ve}).strict(),bI=l.object({value:H,label:H,icon:Le.optional(),disabled:N}).strict(),_I=l.object({title:H,description:G.optional(),open:N,defaultOpen:N,disabled:N,onChange:Y,...ve}).strict(),$I=l.object({label:H,gap:Ee}).strict(),kI=l.object({columns:l.number().int().min(1).max(6).optional(),minItemWidth:l.enum(["xs","sm","md","lg"]).optional(),gap:Ee}).strict(),Zv={Tabs:R(yI,"tabs"),Tab:R(bI,"any"),Collapsible:R(_I,"any"),Toolbar:R($I,"any"),Grid:R(kI,"any")};function Re(e){return typeof e=="object"&&e!==null}var Wr=["long","short","duration"],bp=l.number().refine(Number.isFinite,"must be a finite time in milliseconds"),Vv=l.object({type:l.literal("relative"),at:bp,format:l.enum(Wr).optional()}).strict(),xI=[["day",864e5],["hour",36e5],["minute",6e4],["second",1e3]];function wI(e){let n=Math.abs(e),[i,o]=xI.find(([,t])=>n>=t)??["second",1e3];return{value:Math.trunc(e/o),unit:i}}function Gv(e,n,i,o){let{value:t,unit:r}=wI(e-n);return i==="duration"?new Intl.NumberFormat(o,{style:"unit",unit:r,unitDisplay:"narrow"}).format(Math.abs(t)):new Intl.RelativeTimeFormat(o,{numeric:i==="long"?"auto":"always",style:i==="long"?"long":"narrow"}).format(t,r)}var _p=l.string().min(1).max(64),II=l.union([l.string().max(j.maxLabelLength),l.number(),l.boolean(),l.null(),Vv]),Fv=e=>new Set(e.map(n=>n.key)).size===e.length,SI=l.object({label:H,columns:l.array(l.object({key:_p,label:H,align:l.enum(["start","center","end"]).optional(),width:l.enum(["auto","xs","sm","md","lg"]).optional(),minWidth:l.enum(["auto","xs","sm","md"]).optional(),hideBelow:l.enum(["sm","md"]).optional(),sortable:N}).strict()).min(1).max(j.maxTableColumns).refine(Fv,"column keys must be unique"),rows:l.array(l.object({key:Zt,cells:l.record(_p,II.refine(e=>typeof e!="number"||Number.isFinite(e))).refine(e=>Object.keys(e).length<=j.maxTableColumns),disabled:N}).strict()).max(j.maxTableRows).refine(Fv,"row keys must be unique"),sort:l.object({column:_p,direction:l.enum(["asc","desc"])}).strict().optional(),selectionMode:l.enum(["none","single","multiple"]).optional(),selected:l.array(Zt).max(j.maxTableRows).optional(),defaultSelected:l.array(Zt).max(j.maxTableRows).optional(),hasMore:N,loading:N,emptyText:G.optional(),maxHeight:Gr,onSortChange:Y,onSelectionChange:Y,onRowAction:Y,onLoadMore:Y,...ve}).strict(),PI=l.object({key:Zt,label:H,description:G.optional(),icon:Le.optional(),disabled:N,hasChildren:N,children:l.array(l.unknown()).optional()}).strict();function TI(e){let n=[],i=new Set,o=[{raw:e,out:n,depth:1}],t=0;for(let r=o.pop();r;r=o.pop()){if(r.depth>j.maxTreeItemDepth)return`items nest deeper than ${j.maxTreeItemDepth}`;for(let a of r.raw){if(++t>j.maxTreeItems)return`more than ${j.maxTreeItems} items`;let s=PI.safeParse(Re(a)?a:null);if(!s.success)return"each item needs a key and a label";let{children:u,...c}=s.data;if(i.has(c.key))return`duplicate item key ${JSON.stringify(c.key.slice(0,64))}`;i.add(c.key);let d=c;r.out.push(d),u&&(d.children=[],o.push({raw:u,out:d.children,depth:r.depth+1}))}}return n}var EI=l.array(l.unknown()).transform((e,n)=>{let i=TI(e);return typeof i=="string"?(n.addIssue({code:"custom",message:i}),l.NEVER):i}),AI=l.object({label:H,items:EI,selected:G.optional(),defaultSelected:G.optional(),expanded:l.array(Zt).max(j.maxTreeItems).optional(),defaultExpanded:l.array(Zt).max(j.maxTreeItems).optional(),maxHeight:Gr,onSelect:Y,onToggle:Y,onAction:Y,...ve}).strict(),Bv={Table:R(SI,"none"),Tree:R(AI,"none")};var Hv=l.string().max(j.maxDocumentLength),OI=/\.(?:png|jpe?g|webp)$/i;function NI(e){return OI.test(e)&&!/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e)&&!/[\\\0?#]/.test(e)&&e.split("/").every(n=>n!==""&&n!=="."&&n!=="..")}var zI=l.object({content:Hv}).strict(),DI=l.object({code:Hv,language:l.string().regex(/^[A-Za-z0-9_+#.-]{1,64}$/).optional(),label:G.optional(),lineNumbers:N,wrap:N,maxHeight:Gr}).strict(),CI=l.object({src:l.string().max(512).refine(NI,"must be an image file in the plugin"),alt:G,size:l.enum(["xs","sm","md","lg","full"]).optional(),fit:l.enum(["contain","cover"]).optional(),rounded:N}).strict(),jI=l.object({label:G.optional(),items:l.array(l.object({label:H,value:l.union([G,l.number().refine(Number.isFinite),l.boolean(),l.null()]),tone:tt,code:N}).strict()).max(j.maxKeyValueItems)}).strict(),LI=l.object({tone:tt,title:G.optional(),icon:Le.optional()}).strict(),UI=l.object({at:bp,format:l.enum(Wr).optional(),tone:tt,muted:N}).strict(),RI=l.object({shape:l.enum(["text","block","circle"]).optional(),lines:l.number().int().min(1).max(10).optional(),label:G.optional()}).strict(),Kv={Markdown:R(zI,"none"),CodeView:R(DI,"none"),Image:R(CI,"none"),KeyValue:R(jI,"none"),Callout:R(LI,"any"),Skeleton:R(RI,"none"),RelativeTime:R(UI,"none")};var MI=4096,Un=l.union([l.number().min(0).max(MI),l.string().regex(/^(100|[1-9]?[0-9])%$/)]).optional(),ZI=["none","muted","card",...Mt],VI=l.object({direction:l.enum(["row","column"]).optional(),gap:Ee,padding:Ee,paddingX:Ee,paddingY:Ee,margin:Ee,align:Vr,justify:l.enum(["start","center","end","between"]).optional(),wrap:N,grow:N,shrink:N,width:Un,height:Un,minWidth:Un,minHeight:Un,maxWidth:Un,maxHeight:Un,columns:l.number().int().min(1).max(6).optional(),scroll:l.enum(["x","y","both"]).optional(),border:l.union([l.boolean(),l.enum(Mt)]).optional(),radius:l.enum(["none","sm","md","lg","full"]).optional(),background:l.enum(ZI).optional()}).strict(),Wv={Box:R(VI,"any")};var GI=yt,Jv=new Set(GI),FI=l.object({gap:Ee,align:Vr}).strict(),BI=l.object({gap:Ee,align:Vr,justify:l.enum(["start","center","end","between"]).optional(),wrap:N}).strict(),HI=l.object({tone:tt,muted:N,size:ga,weight:l.enum(["regular","medium","semibold"]).optional(),truncate:N}).strict(),KI=l.object({level:l.union([l.literal(1),l.literal(2),l.literal(3)]).optional()}).strict(),WI=l.object({variant:cp,tone:tt,size:ga,icon:Le.optional(),tooltip:G.optional(),disabled:N,onPress:Y}).strict(),JI=l.object({icon:Le,label:H,tooltip:G.optional(),variant:cp,tone:tt,size:ga,disabled:N,onPress:Y}).strict(),XI=l.object({tone:tt}).strict(),qI=l.object({title:G.optional(),description:G.optional()}).strict(),YI=l.object({label:G.optional()}).strict(),QI=l.object({title:G.optional(),description:G.optional(),icon:Le.optional(),current:N,disabled:N,onPress:Y}).strict(),eS=l.object({label:H,labelHidden:N,value:jn.optional(),defaultValue:jn.optional(),placeholder:G.optional(),type:l.enum(["text","search","password"]).optional(),maxLength:l.number().int().positive().max(j.maxTextLength).optional(),invalid:N,disabled:N,onChange:Y,onSubmit:Y,...ve}).strict(),tS=l.object({label:H,checked:N,defaultChecked:N,disabled:N,onChange:Y,...ve}).strict(),nS=l.object({label:H,labelHidden:N,value:G.optional(),defaultValue:G.optional(),placeholder:G.optional(),options:l.array(l.object({value:H,label:H,disabled:N}).strict()).max(j.maxSelectOptions),disabled:N,onChange:Y,...ve}).strict(),rS=l.object({orientation:l.enum(["horizontal","vertical"]).optional()}).strict(),iS=l.object({label:H,labelHidden:N,value:l.number().min(0).max(100).optional()}).strict(),oS=l.object({label:H,labelHidden:N}).strict(),aS=l.object({title:H,description:G.optional(),icon:Le.optional()}).strict(),sS=l.object({href:l.string().max(2048).regex(/^(https?:\/\/|mailto:)/i).optional(),onPress:Y}).strict(),uS=l.object({block:N}).strict(),Jr={Stack:R(FI,"any"),Row:R(BI,"any"),Text:R(HI,"inline"),Heading:R(KI,"inline"),Button:R(WI,"text"),IconButton:R(JI,"none"),Badge:R(XI,"text"),Card:R(qI,"any"),List:R(YI,"items"),ListItem:R(QI,"any"),Input:R(eS,"none"),Switch:R(tS,"none"),Select:R(nS,"none"),Separator:R(rS,"none"),Progress:R(iS,"none"),Spinner:R(oS,"none"),EmptyState:R(aS,"any"),Link:R(sS,"text"),Code:R(uS,"text"),...Mv,...Zv,...Bv,...Kv,...Wv};function $p(e){return typeof e=="string"&&Object.hasOwn(Jr,e)}var oD=Object.keys(Jr).filter($p),Xv=new Set(["Text","Link","Code","Badge","RelativeTime"]),qv=new Set(["Button","IconButton","Input","Switch","Select","Link","ListItem","Textarea","Checkbox","RadioGroup","Slider","Tabs","Collapsible","Table","Tree","Markdown"]),$a={items:"ListItem",tabs:"Tab"};var cS=new Set(["type","key","props","children"]),kp=32,lS=8,dS=/^[A-Z][A-Za-z0-9]{0,63}$/,pS=20,mS=new Map([[$a.items,"items"],[$a.tabs,"tabs"]]),fS={ListItem:"List",Tab:"Tabs"};function Yv(e){return e==="items"||e==="tabs"?$a[e]:void 0}var ka=class extends Error{};function te(e,n){throw new ka(`${e}: ${n}`)}function gS(e,n){return e===void 0?[]:(Array.isArray(e)||te(n,"children must be an array"),e)}function hS(e,n,i){let o=Jr[e].props.shape,t={};for(let[r,a]of Object.entries(n)){if(a===void 0)continue;if(!Object.hasOwn(o,r)){i(`${e}: ignored unknown prop "${r.slice(0,64)}"`);continue}let s=o[r].safeParse(a);if(!s.success){i(`${e}: ignored invalid ${r}`);continue}t[r]=s.data}for(let[r,a]of Object.entries(o))if(!Object.hasOwn(t,r)&&!a.safeParse(void 0).success)return i(`${e}: missing required ${r}; showing a placeholder`),null;return typeof t.icon=="string"&&!Jv.has(t.icon)&&i(`${e}: unknown icon "${t.icon}"; showing a fallback glyph`),t}function Qv(e){if(e===null)return{ok:!0,tree:null,nodes:0,warnings:[]};let n=new Set,i=c=>{n.sizej.maxTextLength&&te(I,"text is too long"),r+ ++a>j.maxNodes&&te(I,`more than ${j.maxNodes} nodes`),s+=lS+Ne.length,s>j.maxTreeBytes&&te(I,`tree exceeds ${j.maxTreeBytes} bytes`),x.push(Ne);continue}Re(d)||te(I,"expected a node, string or number");let b=d.type,T=$p(b);!T&&(typeof b!="string"||!dS.test(b))&&te(I,`invalid component name ${JSON.stringify(String(b)).slice(0,80)}`),(f==="none"||f==="text")&&te(I,`${m} accepts only text`),f==="inline"&&T&&!Xv.has(b)&&te(I,`${m} accepts only text, Text, Link, Code, Badge and RelativeTime`);let A=Yv(f),D=typeof b=="string"?mS.get(b):void 0;A!==void 0&&b!==A&&te(I,`${m} holds only ${A}`),D!==void 0&&D!==f&&te(I,`${b} must be a direct child of ${fS[b]??"its container"}`),g&&qv.has(b)&&te(I,`a ListItem with onPress cannot contain a ${b}`),++r+a>j.maxNodes&&te(I,`more than ${j.maxNodes} nodes`),p>j.maxDepth&&te(I,`deeper than ${j.maxDepth}`);for(let Ne of Object.keys(d))cS.has(Ne)||te(I,`unknown node field ${Ne.slice(0,64)}`);let w=d.key;w!==void 0&&((typeof w!="string"||w.length>j.maxLabelLength)&&te(I,"key must be a short string"),y.has(w)&&te(I,`duplicate key ${JSON.stringify(w.slice(0,64))} among siblings`),y.add(w));let O=w===void 0?{}:{key:w};if(!T){i(`unknown component ${b}; showing a placeholder`),x.push({type:"Unsupported",...O,props:{name:b},children:[]}),s+=kp+b.length;continue}let E=d.props??{};(!Re(E)||Object.keys(E).length>j.maxPropsPerNode)&&te(I,"props must be an object with few fields");let F=hS(b,E,i);if(!F){x.push({type:"Unsupported",...O,props:{name:b},children:[]}),s+=kp+b.length;continue}s+=kp+JSON.stringify(F).length,s>j.maxTreeBytes&&te(I,`tree exceeds ${j.maxTreeBytes} bytes`);let C=[],ne={type:b,...O,props:F,children:C};x.push(ne);let ye=gS(d.children,I);ye.length>j.maxNodes&&te(I,`more than ${j.maxNodes} children`);let Oe=new Set,ti=g||b==="ListItem"&&F.onPress!==void 0;for(let Ne=ye.length-1;Ne>=0;Ne--)t.push({raw:ye[Ne],depth:p+1,parentType:b,policy:Jr[b].children,inPressable:ti,siblingKeys:Oe,out:C,path:`${I}.children.${Ne}`})}}catch(c){if(c instanceof ka)return{ok:!1,error:c.message};throw c}let u=o[0];return typeof u=="object"?{ok:!0,tree:u,nodes:r,warnings:[...n]}:{ok:!1,error:"tree: expected a node"}}var Xr=l.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),Gt=l.string().min(1).max(64),xp=l.union([l.string().max(j.maxTextLength),l.number().refine(Number.isFinite),l.boolean(),l.null()]),ey=l.array(xp).max(j.maxEventArgItems),vS=l.union([xp,ey,l.record(l.string().max(64),l.union([xp,ey])).refine(e=>Object.keys(e).length<=16,"too many fields")]),vD=l.object({document:Gt,revision:Xr,callback:l.string().min(1).max(j.maxCallbackIdLength).regex(fa),args:l.array(vS).max(j.maxEventArgs),edit:Xr.optional()}).strict(),yS=l.object({document:Gt,revision:Xr,tree:l.unknown()}).strict(),ty=l.object({document:Gt.optional(),revision:Xr,message:l.string().max(j.maxLabelLength*4),stack:l.string().max(8192).optional()}).strict();function ny(e){let n=yS.safeParse(e);if(!n.success)return{ok:!1,document:null,revision:null,error:"malformed render"};let{document:i,revision:o}=n.data,t=Qv(n.data.tree);return t.ok?{...t,document:i,revision:o}:{ok:!1,document:i,revision:o,error:t.error}}var yD=l.object({document:Gt,revision:Xr,accepted:l.boolean(),retryAfterMs:l.number().int().nonnegative().max(6e4).optional()}).strict(),bD=l.object({document:Gt}).strict(),ry=/^[A-Za-z0-9_.:-]{1,128}$/,bS=["plugin","workspace"],wp=l.number().int().min(0).max(1e6),_D=l.object({version:wp,value:l.json()}).strict().refine(e=>JSON.stringify(e.value).length<=ca,"persisted value is too large"),iy=l.object({document:Gt,entries:l.array(l.object({scope:l.enum(bS),key:l.string().regex(ry),version:wp,value:l.json()}).strict()).min(1).max(64)}).strict(),$D=l.object({document:Gt,entries:l.array(l.object({key:l.string().regex(ry),version:wp,value:l.json().optional()}).strict().refine(e=>JSON.stringify(e.value??null).length<=ca,"retained value is too large")).min(1).max(64)}).strict();import{installOrcaDeclarativeRuntime as zS}from"./orca-runtime.mjs";var _S={Stack:"group",Row:"group",Card:"region",Text:"text",Heading:"heading",Button:"button",IconButton:"button",Badge:"status",List:"list",ListItem:"listitem",Input:"textbox",Switch:"switch",Select:"combobox",Separator:"separator",Progress:"progressbar",Spinner:"status",EmptyState:"group",Link:"link",Code:"code",Textarea:"textbox",Checkbox:"checkbox",RadioGroup:"radiogroup",Slider:"slider",Field:"group",Tabs:"tablist",Tab:"tab",Collapsible:"group",Toolbar:"toolbar",Grid:"group",Table:"grid",Tree:"tree",Markdown:"document",CodeView:"code",Image:"img",KeyValue:"list",Callout:"note",Skeleton:"status",RelativeTime:"time",Box:"group",Unsupported:"unsupported"};function ay(e,n){if(typeof e!="number")return"";let i=Wr.find(o=>o===n)??"short";return Gv(e,Date.now(),i,"en")}function $S(e){return typeof e=="object"&&e!==null&&"at"in e?ay(e.at,"format"in e?e.format:void 0):String(e??"")}var kS=["title","description","content","code","error","alt"];function xS(e){let n=[],i=[e.rows,e.items].flatMap(o=>Array.isArray(o)?o:[]);for(let o=i.shift();o!==void 0;o=i.shift()){if(typeof o!="object"||o===null)continue;let t={...o};typeof t.cells=="object"&&t.cells!==null&&n.push(...Object.values(t.cells).map($S));for(let r of["label","value"])t[r]!==void 0&&t[r]!==null&&n.push(String(t[r]));Array.isArray(t.children)&&i.push(...t.children)}return n}function sy(e){if(typeof e=="string")return e;let n=e.props,i=kS.map(o=>n[o]).filter(o=>typeof o=="string");return e.type==="RelativeTime"?ay(n.at,n.format):e.type==="Tab"?typeof n.label=="string"?n.label:"":[...i,...xS(n),...e.children.map(sy)].join(" ")}var Ip=e=>e.replace(/\s+/g," ").trim();function wS(e){let n=e.props,i=n.label??n.title;return typeof i=="string"?i:void 0}function IS(e,n){let i=e.props,o=e.type==="ListItem"&&i.onPress!==void 0;return{type:e.type,key:e.key?.startsWith("#")?void 0:e.key,role:o?"button":_S[e.type]??"generic",label:wS(e),text:Ip(sy(e)),props:i,disabled:i.disabled===!0,path:n}}function xa(e){let n=[],i=(o,t)=>{n.push(IS(o,t)),o.children.forEach((r,a)=>{typeof r!="string"&&i(r,`${t}/${r.key??`#${a}`}`)})};return e&&i(e,e.key??"#0"),n}function oy(e,n){return e===void 0?!1:typeof n=="string"?Ip(e)===Ip(n):n.test(e)}function uy(e,n){return(n.type===void 0||e.type===n.type)&&(n.role===void 0||e.role===n.role)&&(n.text===void 0||oy(e.text,n.text))&&(n.label===void 0||oy(e.label,n.label))&&(n.testId===void 0||e.key===n.testId)}function cy(e){return e.filter(n=>!e.some(i=>i.path.startsWith(`${n.path}/`)))}function ly(e){return Object.entries(e).map(([n,i])=>`${n}: ${i instanceof RegExp?String(i):JSON.stringify(i)}`).join(", ")}function Sp(e){if(typeof e=="string")return e;let n={};for(let[i,o]of Object.entries(e.props)){if(i.startsWith("$"))continue;let t=typeof o=="object"&&o!==null&&"$callback"in o;n[i]=t?"[handler]":o}return{type:e.type,...e.key&&!e.key.startsWith("#")?{key:e.key}:{},...Object.keys(n).length>0?{props:n}:{},...e.children.length>0?{children:e.children.map(Sp)}:{}}}var SS={value:"defaultValue",checked:"defaultChecked",open:"defaultOpen",selected:"defaultSelected"};function Pp(e){return typeof e=="string"||typeof e=="boolean"||typeof e=="number"||Array.isArray(e)&&e.every(n=>typeof n=="string")}function PS(e){switch(e.type){case"Switch":case"Checkbox":case"Collapsible":return!1;case"Slider":return typeof e.props.min=="number"?e.props.min:0;case"Table":return[];default:return""}}function dy(){let e=new Map;function n(t){let r=up(t.type);if(!r)throw new Error(`a ${t.type} has no value; expected a form control, Tabs or Table`);return r}function i(t){let r=e.get(t.path);if(r)return r;let{value:a}=n(t),s=t.props[a],u=t.props[SS[a]??""],d={value:Pp(s)?s:Pp(u)?u:PS(t),sent:0};return e.set(t.path,d),d}function o(t,r){let{value:a,change:s}=n(t);if(t.props[a]!==void 0&&t.props[s]===void 0)throw new Error(`the ${t.type} is read-only: it has a ${a} and no ${s}`);let u=i(t);return u.sent+=1,u.value=r,{value:r,id:u.sent}}return{observe(t){let r=new Map;for(let a of t){let s=up(a.type);if(!s)continue;let u=e.get(a.path)??i(a),c=a.props[s.value],d=a.props[ma];Pp(c)&&(typeof d=="number"?d:0)>=u.sent&&(u.value=c),r.set(a.path,u)}e=r},valueOf:t=>i(t).value,edit:o,typeInto(t,r,a){if(t.type!=="Input"&&t.type!=="Textarea")throw new Error(`type: a ${t.type} takes no text; expected an Input or Textarea`);let s=a?"":String(i(t).value),u=[];a&&u.push(o(t,s));for(let c of r)s+=c,u.push(o(t,s));return u},toggle(t){if(!["Switch","Checkbox","Collapsible"].includes(t.type))throw new Error(`toggle: expected a Switch, Checkbox or Collapsible, not a ${t.type}`);return o(t,!i(t).value)}}}function py(e){let n=new Map,i=(s,u)=>{let c=n.get(s)??new Set;return c.add(u),n.set(s,c),{dispose:()=>c.delete(u)}},o=(s,u)=>{for(let c of n.get(s)??[])c(u)},t=s=>u=>typeof u=="object"&&u!==null&&s in u?Object.getOwnPropertyDescriptor(u,s)?.value:void 0,r=()=>{};return{facades:{plugin:{request:(s,u,c)=>{let d=typeof c=="object"&&c!==null&&"timeoutMs"in c?c.timeoutMs:void 0;return e("plugin.request",{name:s,...u===void 0?{}:{input:u},...typeof d=="number"?{timeoutMs:d}:{}}).then(t("output"))},on:(s,u)=>i(`message:${s}`,u)},storage:{get:s=>e("storage.get",{key:s}).then(u=>t("value")(u)??null),set:(s,u)=>e("storage.set",{key:s,value:u}).then(r),delete:s=>e("storage.delete",{key:s}).then(r),keys:async()=>{let s=t("keys")(await e("storage.keys"));return Array.isArray(s)?s.map(String):[]},onDidChange:s=>i("changed:storage",u=>s({key:String(u)}))},settings:{get:async s=>{let u=t("settings")(await e("settings.get"));return s===void 0?u:t(s)(u)},set:(s,u)=>e("settings.set",{key:s,value:u}).then(r),onDidChange:s=>i("changed:settings",u=>s({key:String(u)}))},secrets:{get:async s=>{let u=t("value")(await e("secrets.get",{key:s}));return typeof u=="string"?u:null},set:(s,u)=>e("secrets.set",{key:s,value:u}).then(r),delete:s=>e("secrets.delete",{key:s}).then(r)}},post:(s,u)=>o(`message:${s}`,u),changed:(s,u)=>o(`changed:${s}`,u)}}var my=Symbol.for("orca.testing.stored");function fy(e,n){return Object.freeze({[my]:!0,version:n,value:e})}function TS(e){return typeof e=="object"&&e!==null&&my in e}function gy(e,n){for(let i of["plugin","workspace"])for(let[o,t]of Object.entries(n?.[i]??{}))e[i].set(o,TS(t)?{version:t.version,value:t.value}:{version:1,value:t})}var ES={sm:360,md:480};function hy(e,n){let i=e.filter(o=>!o.hideBelow||n>=ES[o.hideBelow]);return i.length>0?i:e.slice(0,1)}var Tp=(e,n)=>e.path.startsWith(`${n.path}/`);function wa(e,n){return n.filter(i=>i.type==="Tab"&&Tp(i,e)&&!i.path.slice(e.path.length+1).includes("/"))}function Ep(e,n,i){let o=wa(e,n);return o.find(t=>t.props.value===i)??o.find(t=>!t.disabled)}function vy(e,n){let i=[];for(let o of e)if(!i.some(t=>Tp(o,t))&&(o.type==="Collapsible"&&n(o)!==!0&&i.push(o),o.type==="Tabs")){let t=Ep(o,e,n(o));i.push(...wa(o,e).filter(r=>r!==t))}return e.filter(o=>!i.some(t=>Tp(o,t)))}function yy(e){return typeof e=="object"&&e!==null&&"key"in e&&typeof e.key=="string"}function Ap(e){return Array.isArray(e.props.rows)?e.props.rows.filter(yy):[]}function Op(e){let n=[],i=Array.isArray(e.props.items)?[...e.props.items]:[];for(let o=i.shift();o!==void 0;o=i.shift())if(yy(o)){n.push(o);let t="children"in o?o.children:void 0;Array.isArray(t)&&i.push(...t)}return n}function Ae(e,n,i){if(e.type!==n)throw new Error(`${i}: expected a ${n}, not a ${e.type}`)}function Np(e,n,i){let o=Ap(e).find(t=>t.key===n);if(!o||o.disabled===!0)throw new Error(`${i}: the Table has no enabled row "${n}"`);return o}function Ia(e,n,i){let o=Op(e).find(t=>t.key===n);if(!o)throw new Error(`${i}: the Tree has no item "${n}"`);return o}function by(e){return e.hasChildren===!0||Array.isArray(e.children)&&e.children.length>0}function _y(e,n){let o=(Array.isArray(e.props.columns)?e.props.columns:[]).find(a=>typeof a=="object"&&a!==null&&"key"in a&&a.key===n);if(!o||typeof o!="object"||!("sortable"in o)||o.sortable!==!0)throw new Error(`sort: the Table has no sortable column "${n}"`);let t=e.props.sort,r=typeof t=="object"&&t!==null&&"column"in t&&t.column===n&&"direction"in t&&t.direction==="asc";return{column:n,direction:r?"desc":"asc"}}function AS(e,n){return e.type==="Tabs"?wa(e,n).map(o=>({value:o.props.value,disabled:o.disabled})):(Array.isArray(e.props.options)?e.props.options:[]).map(o=>typeof o=="object"&&o!==null&&"value"in o?{value:o.value,disabled:"disabled"in o&&o.disabled===!0}:{value:void 0,disabled:!0})}function $y({host:e,controls:n,resolve:i,elements:o,dispatch:t,settled:r}){let a=new Map,s=d=>{let p=a.get(d.path);if(!p){let m=d.props.expanded??d.props.defaultExpanded;p=new Set(Array.isArray(m)?m.filter(f=>typeof f=="string"):[]),a.set(d.path,p)}return p},u=async(d,p,m,f)=>{let g=n.edit(d,m);t(p,[f],g.id),await r()},c=async(d,p,m,f)=>{let g=i(d,f);if(Ae(g,"Tree",f),!by(Ia(g,p,f)))throw new Error(`${f}: the Tree item "${p}" has no children`);let y=s(g);y.has(p)!==m&&(m?y.add(p):y.delete(p),t(g.props.onToggle,[{key:p,expanded:m}]),await r())};return{async press(d){let p=i(d,"press"),{href:m,onPress:f}=p.props;if(p.type==="Link"&&typeof m=="string")e.grantGesture(),e.bridge.call("shell.openExternal",{url:m}).catch(()=>{});else{if(f===void 0)throw new Error(`press: the ${p.type} has no onPress`);e.grantGesture()}t(f,[]),await r()},async type(d,p,m={}){let f=i(d,"type");for(let g of n.typeInto(f,p,m.replace===!0))t(f.props.onChange,[g.value],g.id),await r();m.submit&&(t(f.props.onSubmit,[n.valueOf(f)]),await r())},async submit(d){let p=i(d,"submit");t(p.props.onSubmit,[n.valueOf(p)]),await r()},async toggle(d){let p=i(d,"toggle"),m=n.toggle(p);t(p.props.onChange,[m.value],m.id),await r()},async select(d,p){let m=i(d,"select");if(!["Select","RadioGroup","Tabs"].includes(m.type))throw new Error(`select: expected a Select, RadioGroup or Tabs, not a ${m.type}`);let f=AS(m,o()).find(g=>g.value===p);if(!f||f.disabled)throw new Error(`select: the ${m.type} has no enabled option "${p}"`);await u(m,m.props.onChange,p,p)},async slide(d,p){let m=i(d,"slide");Ae(m,"Slider","slide");let f=typeof m.props.min=="number"?m.props.min:0,g=typeof m.props.max=="number"?m.props.max:100;if(!Number.isFinite(p)||pg)throw new Error(`slide: ${p} is outside the Slider's ${f} to ${g}`);await u(m,m.props.onChange,p,p)},async sort(d,p){let m=i(d,"sort");if(Ae(m,"Table","sort"),m.props.onSortChange===void 0)throw new Error("sort: the Table has no onSortChange");t(m.props.onSortChange,[_y(m,p)]),await r()},async selectRows(d,p){let m=i(d,"selectRows");Ae(m,"Table","selectRows");let f=m.props.selectionMode??"none";if(f==="none"||f==="single"&&p.length>1)throw new Error(`selectRows: the Table's selectionMode is ${String(f)}`);p.forEach(g=>Np(m,g,"selectRows")),await u(m,m.props.onSelectionChange,[...p],{keys:[...p]})},async activateRow(d,p){let m=i(d,"activateRow");if(Ae(m,"Table","activateRow"),Np(m,p,"activateRow"),m.props.onRowAction===void 0)throw new Error("activateRow: the Table has no onRowAction");t(m.props.onRowAction,[{key:p}]),await r()},async loadMore(d){let p=i(d,"loadMore");if(Ae(p,"Table","loadMore"),p.props.hasMore!==!0||p.props.onLoadMore===void 0)throw new Error("loadMore: the Table has no more rows (hasMore and onLoadMore)");t(p.props.onLoadMore,[]),await r()},expand:(d,p)=>c(d,p,!0,"expand"),collapse:(d,p)=>c(d,p,!1,"collapse"),async selectItem(d,p){let m=i(d,"selectItem");if(Ae(m,"Tree","selectItem"),Ia(m,p,"selectItem").disabled===!0)throw new Error(`selectItem: the Tree item "${p}" is disabled`);await u(m,m.props.onSelect,p,{key:p})},async activateItem(d,p){let m=i(d,"activateItem");if(Ae(m,"Tree","activateItem"),Ia(m,p,"activateItem").disabled===!0||!m.props.onAction)throw new Error(`activateItem: the Tree item "${p}" cannot be activated`);t(m.props.onAction,[{key:p}]),await r()},expandedOf:d=>{let p=i(d,"expandedOf");return Ae(p,"Tree","expandedOf"),Op(p).map(m=>m.key).filter(m=>s(p).has(m))},columnsOf:(d,p={})=>{let m=i(d,"columnsOf");Ae(m,"Table","columnsOf");let g=(Array.isArray(m.props.columns)?m.props.columns:[]).flatMap(y=>{if(typeof y!="object"||y===null||!("key"in y))return[];let x="hideBelow"in y?y.hideBelow:void 0;return typeof y.key=="string"?[{key:y.key,hideBelow:x==="sm"||x==="md"?x:void 0}]:[]});return hy(g,p.width??Number.POSITIVE_INFINITY).map(y=>y.key)},rowsOf:d=>{let p=i(d,"rowsOf");return Ae(p,"Table","rowsOf"),Ap(p).map(m=>m.key)}}}var Me=e=>{let n=(e??"").replace(/\s+/g," ").trim();return JSON.stringify(n.length>60?`${n.slice(0,59)}…`:n)},OS=e=>e==="danger"||e==="warning",ky=e=>Array.isArray(e)?e.length:0;function NS(e,n){let{props:i}=e;switch(e.type){case"Heading":return`Heading ${Me(e.text)}`;case"Callout":return`Callout ${String(i.tone??"neutral")} ${Me(e.label??e.text)}`;case"EmptyState":return`EmptyState ${Me(e.label)}`;case"Table":return`Table ${Me(e.label)}: ${ky(i.rows)} row(s)${i.hasMore===!0?", more":""}`;case"Tree":return`Tree ${Me(e.label)}: ${ky(i.items)} top-level item(s)`;case"Tabs":return`Tabs ${Me(e.label)}: ${Me(n.get(e.path))} selected`;case"Skeleton":case"Spinner":return`${e.type} ${Me(e.label??"Loading")}`;case"Text":return i.tone==="danger"||i.tone==="warning"?`Text ${String(i.tone)} ${Me(e.text)}`:null;case"Box":{let o=[i.background,i.border].find(OS);return o?`Box ${o} ${Me(e.text)}`:null}default:return null}}function xy(e,n){let i=[];for(let o of e){if(o.type==="List"){let r=e.filter(a=>a.type==="ListItem"&&a.path.startsWith(`${o.path}/`)).length;i.push(`List ${Me(o.label)}: ${r} item(s)`);continue}let t=NS(o,n);t&&i.push(t)}return i.length>12?[...i.slice(0,12),`… ${i.length-12} more`]:i}function wy(e){return"path"in e}var DS=100,CS=()=>new Promise(e=>typeof setImmediate=="function"?setImmediate(e):setTimeout(e,0));async function Iy(e,n){let i=n.host,o=new Map,t=(w,O)=>{for(let E of o.get(w)??[])E(O)},r=[],a=[],s=[],u={plugin:new Map,workspace:new Map};gy(u,n.persisted);let c=n.visible??!0,d={document:"",revision:0,tree:null},p=dy(),m=py(i.bridge.call),f=i.onDataChange(m.changed);function g(w,O){if(w===Be.ready)t(Be.hydrate,{panel:{id:n.panelId??"panel"},visible:c,plugin:Object.fromEntries(u.plugin),workspace:Object.fromEntries(u.workspace)});else if(w===Be.render){let E=ny(O);if(!E.ok){a.push({kind:"refused",message:E.error}),E.document!==null&&E.revision!==null&&t(Be.ack,{document:E.document,revision:E.revision,accepted:!1});return}s.push(...E.warnings.filter(F=>!s.includes(F))),d={document:E.document,revision:E.revision,tree:E.tree},p.observe(xa(E.tree)),t(Be.ack,{document:E.document,revision:E.revision,accepted:!0})}else if(w===Be.error){let E=ty.safeParse(O);a.push(E.success?{kind:"plugin",message:E.data.message,...E.data.stack?{stack:E.data.stack}:{}}:{kind:"plugin",message:String(O)})}else if(w===Be.persist){let E=iy.safeParse(O);if(!E.success){a.push({kind:"refused",message:"persisted state Orca would not store"});return}for(let F of E.data.entries)u[F.scope].set(F.key,{version:F.version,value:F.value})}}let y=zS({post:g,awaitHydration:!0,colorScheme:n.theme??"dark",schedule:w=>r.push(w),bridge:{api:i.bridge.api,locale:n.locale??"en",host:{call:i.bridge.call,has:i.bridge.has},...m.facades,on(w,O){let E=o.get(w)??new Set;return E.add(O),o.set(w,E),{dispose:()=>E.delete(O)}}}});async function x(){for(let w=0;wvy(xa(d.tree),w=>p.valueOf(w)),b=w=>cy(I().filter(O=>uy(O,w)));function T(w,O){let E=wy(w)?I().find(F=>F.path===w.path):b(w)[0];if(!E)throw new Error(wy(w)?`${O}: the element is no longer in the panel`:`${O}: nothing in the panel matches { ${ly(w)} }`);if(E.disabled)throw new Error(`${O}: the ${E.type} is disabled`);return E}function A(w,O,E){let F=typeof w=="object"&&w!==null&&"$callback"in w?w.$callback:null;typeof F=="string"&&t(Be.event,{document:d.document,revision:d.revision,callback:F,args:O,...E===void 0?{}:{edit:E}})}await Promise.resolve(typeof e=="function"?{default:e}:e).then(w=>y.boot(w)).catch(w=>a.push({kind:"plugin",message:w instanceof Error?w.message:String(w),...w instanceof Error&&w.stack?{stack:w.stack}:{}})),await x();let D=$y({host:i,controls:p,resolve:T,elements:I,dispatch:A,settled:x});return{host:i,errors:a,warnings:s,get refusals(){return i.refusals},find:w=>b(w)[0]??null,findAll:b,tree:()=>d.tree?Sp(d.tree):null,drawnTree:()=>d.tree,summary:()=>{let w=xa(d.tree),O=I(),E=new Map(O.filter(F=>F.type==="Tabs").map(F=>[F.path,Ep(F,w,p.valueOf(F))?.label??""]));return xy(O,E)},get persisted(){let w=O=>Object.fromEntries([...u[O]].map(([E,F])=>[E,F.value]));return{plugin:w("plugin"),workspace:w("workspace"),storage:i.data().storage}},settled:x,...D,valueOf:w=>p.valueOf(T(w,"valueOf")),async emit(w,O){t(w,O),await x()},async post(w,O){m.post(w,O),await x()},async setVisible(w){c=w,t(Be.visibility,{visible:w}),await x()},async rerender(){y.rerender(),await x()},async unmount(){y.dispose(),o.clear(),f()}}}var Sy={workspaceId:l.string().min(1).max(2048),kind:l.enum(["worktree","folder"])},jS=l.object({...Sy,path:l.string().min(1).max(32*1024),branch:l.string().max(1024)}),LS=l.object({...Sy,path:l.string().min(1).max(32*1024)}),US=l.object({workspaceId:l.string().min(1).max(2048).nullable(),paneKey:l.string().min(1).max(2048),terminalId:l.string().min(1).max(nt).optional(),title:l.string().max(Hr).optional(),state:l.enum(Dn),receivedAt:l.number().finite().positive(),mainAgent:l.object({state:l.enum(Dn),outcome:l.enum(gv).optional(),stateStartedAt:l.number().finite()}).optional()}),RS=l.object({context:gp}),zp={"workspace.created":jS,"workspace.removed":LS,"agent.status.changed":US,"workspace.changed":RS};var qr=["terminal.send","workspace.create.before","workspace.create.after","agent.launch.before","agent.prompt.before","agent.tool.before","agent.tool.after","editor.save.before"],rC=qr.length,MS={"terminal.send":je,"workspace.create.before":je,"workspace.create.after":je,"agent.launch.before":je,"agent.prompt.before":je,"agent.tool.before":je,"agent.tool.after":je,"editor.save.before":je};function Sa(e){return qr.some(n=>n===e)}var iC=l.object({event:l.enum(qr).meta({...ae("Hook the worker handles with `orca.hooks.on`.",je),[Nn]:MS}),onError:l.enum(["pass","deny"]).optional().meta(ae("What Orca does when this plugin's hook throws, times out, crashes or does not start: `pass` (the default) carries on as if it passed; `deny` refuses the action, naming the plugin, so a guard fails closed. Ignored for hooks that only observe.",je))}).strict().meta({id:"HookContribution",description:"A hook Orca runs through the worker before (or after) it acts. Requires `main` and the `trusted-worker` execution profile."});var sC=1024*1024,uC=new TextEncoder,cC=new Uint8Array(0);var vC=16*1024*1024,yC=16*1024*1024;var ZS=256*1024;var IC=16*1024,Yr=16*1024*1024;var bt=2e3,Rn=l.strictObject({deny:l.string().min(1).max(500)}),VS=l.object({terminalId:l.string().min(1).max(nt),text:l.string().max(Yr),enter:l.boolean(),inputKind:l.enum(["driving","orchestration","launch"])}),GS=l.object({kind:l.enum(["worktree","folder"]),projectId:l.string().min(1).max(2048),name:l.string().min(1).max(1024),branch:l.string().min(1).max(1024).optional(),base:l.string().min(1).max(1024).optional()}),FS=l.object({workspaceId:l.string().min(1).max(2048),kind:l.enum(["worktree","folder"]),path:l.string().min(1).max(32*1024),branch:l.string().max(1024)}),BS=l.record(l.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(256).refine(e=>!e.toUpperCase().startsWith("ORCA_"),"ORCA_* variables are reserved"),l.string().max(32*1024)).refine(e=>Object.keys(e).length<=64,"at most 64 variables"),HS=l.enum(["worktree","folder"]),KS=l.object({agent:l.string().min(1).max(64),workspaceId:l.string().min(1).max(2048).nullable(),workspaceKind:HS.nullable(),terminalId:l.string().min(1).max(nt).optional(),command:l.string().min(1).max(Yr),env:BS}),WS=l.object({agent:l.string().min(1).max(64).nullable(),terminalId:l.string().min(1).max(nt),prompt:l.string().max(Yr),inputKind:l.enum(["driving","orchestration","launch"])}),Py={agent:l.string().min(1).max(64),workspaceId:l.string().min(1).max(2048).nullable(),terminalId:l.string().min(1).max(nt).optional(),tool:l.string().min(1).max(256),input:l.unknown(),callId:l.string().min(1).max(256).optional()},JS=l.object(Py),XS=l.object({...Py,output:l.unknown().optional()}),qS=l.object({workspaceId:l.string().min(1).max(2048).nullable(),path:l.string().min(1).max(32*1024),languageId:l.string().min(1).max(128).optional(),text:l.string().max(Yr)}),Qr={"terminal.send":{payload:VS,result:Rn,mutable:["text","enter"],deadlineMs:bt,summary:"Text Orca, the CLI or a plugin is about to send to a terminal. A person typing (on the desktop, a phone or a paired client) is never hooked, and prompts Orca submits to an agent take `agent.prompt.before` instead. Writes to one terminal stay in order while a hook decides. Rewrite `text` or `enter` with `next`, or return `{ deny }` to refuse the send."},"workspace.create.before":{payload:GS,result:Rn,mutable:["name","branch","base"],deadlineMs:bt,summary:"A worktree or folder workspace is about to be created. Change `name`, `branch` or `base` with `next`, or return `{ deny }` to refuse it."},"workspace.create.after":{payload:FS,result:null,mutable:[],deadlineMs:bt,summary:"A worktree or folder workspace was created. Observe only: Orca does not wait for it, and results are ignored."},"agent.launch.before":{payload:KS,result:Rn,mutable:["command","env"],deadlineMs:bt,summary:"Orca is about to start an agent CLI in a terminal, from any launcher (new tab, workspace create, CLI, automation, orchestration). Change `command` or add `env` with `next`, or return `{ deny }` to refuse the launch. Restores of saved sessions are not hooked."},"agent.prompt.before":{payload:WS,result:Rn,mutable:["prompt"],deadlineMs:bt,summary:"Orca is about to submit a prompt to an agent in a terminal: a launch prompt, an orchestration dispatch, an issue or task prompt, or `orca terminal send` to an agent. A prompt a person submits is never hooked, and writes to one terminal stay in order while it decides. Rewrite `prompt` with `next`, or return `{ deny }` to refuse it."},"agent.tool.before":{payload:JS,result:Rn,mutable:["input"],deadlineMs:bt,summary:"An agent in an Orca terminal is about to run a tool. Claude Code waits for the answer: return `{ deny }` to refuse the call (the agent sees the reason) or change `input` with `next`; the person is still asked as usual. Other agents only report the call, so their results are ignored. Agents on SSH or WSL hosts are not hooked yet."},"agent.tool.after":{payload:XS,result:null,mutable:[],deadlineMs:bt,summary:"An agent in an Orca terminal finished a tool call (successfully or not). Observe only: Orca does not wait for it."},"editor.save.before":{payload:qS,result:Rn,mutable:["text"],deadlineMs:bt,summary:"The person is about to save a text file from an Orca editor tab (an explicit save, not autosave). Change `text` with `next` (format on save) or return `{ deny }` to refuse the save, which shows your reason. Edits made while the hook ran stay unsaved."}};var Pa=class{constructor(n){this.event=n}event},zC=l.object({event:l.enum(qr),payload:l.unknown()}),Ty=l.discriminatedUnion("decision",[l.object({decision:l.literal("continue"),payload:l.unknown()}),l.object({decision:l.literal("result"),result:l.unknown()})]);async function Ey(e,n){let i=n;for(let o of e){let r=await o(i,a=>new Pa(a??i));if(r instanceof Pa)i=r.event;else if(r!=null)return{decision:"result",result:r}}return{decision:"continue",payload:i}}function YS(e){return e instanceof Error?e.message:String(e)}function Ay(e,n,i="timed out"){let o,t=new Promise((r,a)=>{o=setTimeout(()=>a(new Error(`${i} after ${n}ms`)),n)});return Promise.race([e,t]).finally(()=>clearTimeout(o))}function QS(e,n,i){let o=Qr[e];if(!Re(n)||!Re(i))return{ok:!1,reason:"next() was given something other than the event object"};let t={...n};for(let a of o.mutable)Object.hasOwn(i,a)&&(t[a]=i[a]);let r=o.payload.safeParse(t);return r.success?{ok:!0,payload:r.data}:{ok:!1,reason:r.error.issues[0]?.message??"invalid change"}}var Dp=class extends Error{};async function Oy(e){let{event:n}=e,i=Qr[n],o=e.deadlineMs??i.deadlineMs,t=e.payload;for(let r of e.participants){let a=e.now(),s=()=>Math.round(e.now()-a),u=i.result!==null&&e.failsClosed?.(r)===!0,c=(f,g=!1)=>u&&!g?(e.log(r,`hook ${n} denied after ${s()}ms (onError: deny): ${f}`),{kind:"deny",pluginKey:r,reason:`${r} failed and denies on error: ${f}`}):(e.log(r,`hook ${n} skipped after ${s()}ms: ${f}`),null),d;try{if(e.start){let f=e.startTimeoutMs??o;await Ay(e.start(r),f,"worker did not start")}d=await Ay(e.invoke(r,t,o),o)}catch(f){let g=c(YS(f),f instanceof Dp);if(g)return g;continue}let p=Ty.safeParse(d);if(!p.success){let f=c("the worker answered with something other than a hook decision");if(f)return f;continue}if(p.data.decision==="continue"){let f=QS(n,t,p.data.payload);f.ok?t=f.payload:e.log(r,`hook ${n}: change ignored: ${f.reason}`);continue}if(i.result===null)continue;let m=i.result.safeParse(p.data.result);if(!m.success){e.log(r,`hook ${n}: result ignored: return next(event) or { deny: reason }`);continue}return{kind:"deny",pluginKey:r,reason:m.data.deny}}return{kind:"continue",payload:t}}function eP(e){return typeof e!="object"||e===null||!("workspaceId"in e)||"worktreeId"in e?e:{...e,worktreeId:e.workspaceId}}function ei(e,n){return typeof e=="object"&&e!==null&&n in e?Object.getOwnPropertyDescriptor(e,n)?.value:void 0}function Ta(e,n){return e.add(n),{dispose:()=>{e.delete(n)}}}var tP=new Set(Kr("worker"));function Ny(){return{commands:new Map,events:new Map,hooks:new Map,panelRequests:new Map,dataListeners:{storage:new Set,settings:new Set}}}function zy(e){let{tables:n,hostCall:i}=e,o=async(t,r)=>{await i(t,r)};return Object.freeze({api:Object.freeze({major:Ue,minor:jv}),commands:Object.freeze({register(t,r){return n.commands.set(t,r),{dispose:()=>{n.commands.delete(t)}}}}),events:Object.freeze({on(t,r){let a=la.get(t)??t,s=n.events.get(a)??new Set;n.events.set(a,s);let u=a!==t||t==="agent.status.changed",c=Ta(s,p=>r(u?eP(p):p));if(t!=="workspace.changed")return c;let d=!0;return i("workspace.readContext").then(p=>d&&r({context:p})).catch(()=>{}),{dispose:()=>{d=!1,c.dispose()}}}}),hooks:Object.freeze({on(t,r){if(!Sa(t))throw new TypeError(`orca.hooks.on: unknown hook ${String(t)}`);if(typeof r!="function")throw new TypeError("orca.hooks.on needs a handler function");let a=n.hooks.get(t)??new Set;return n.hooks.set(t,a),Ta(a,r)}}),host:Object.freeze({call:(t,r,a)=>i(t,r,a),has:t=>tP.has(t)}),panels:Object.freeze({handle(t,r){if(vt.parse(t),typeof r!="function")throw new TypeError("orca.panels.handle needs a handler function");return n.panelRequests.set(t,r),{dispose:()=>{n.panelRequests.get(t)===r&&n.panelRequests.delete(t)}}},post(t,r,a){vt.parse(t),e.postToPanels({event:t,payload:r,...a?.panel?{panel:a.panel}:{}})}}),storage:Object.freeze({get:async t=>ei(await i("storage.get",{key:t}),"value")??null,set:(t,r)=>o("storage.set",{key:t,value:r}),delete:t=>o("storage.delete",{key:t}),keys:async()=>{let t=ei(await i("storage.keys"),"keys");return Array.isArray(t)?t.filter(r=>typeof r=="string"):[]},onDidChange:t=>Ta(n.dataListeners.storage,t)}),settings:Object.freeze({get:async t=>{let r=ei(await i("settings.get"),"settings"),a=typeof r=="object"&&r!==null?{...r}:{};return t===void 0?a:ei(a,t)},set:(t,r)=>o("settings.set",{key:t,value:r}),onDidChange:t=>Ta(n.dataListeners.settings,t)}),secrets:Object.freeze({get:async t=>{let r=ei(await i("secrets.get",{key:t}),"value");return typeof r=="string"?r:null},set:(t,r)=>o("secrets.set",{key:t,value:r}),delete:t=>o("secrets.delete",{key:t})}),grantedCapabilities:Object.freeze([...e.grantedCapabilities]),log:t=>e.log(String(t))})}var Dy={id:"test-panel",surface:"panel",contributionId:"panel"};function nP(e){return Object.hasOwn(zp,e)}function rP(e){return e instanceof Error?e.message:String(e)}async function Cy(e,n){let{host:i}=n,o=new Set(n.events),t=n.hooks.map(b=>typeof b=="string"?{event:b}:b),r=new Set(t.map(b=>b.event)),a=new Set(t.filter(b=>b.onError==="deny").map(b=>b.event)),s=Ny(),u=[],c=[],d=!0,p=e.default;if(typeof p!="function")throw new TypeError(typeof e.activate=="function"?"mountWorker: the module exports activate by name, but Orca calls the default export: write `export default function activate(orca)`":"mountWorker: the module has no default-exported activate(orca) function");let m=e.deactivate;if(m!==void 0&&typeof m!="function")throw new TypeError("mountWorker: the module exports a deactivate that is not a function");let f=zy({tables:s,hostCall:(b,T)=>i.worker.call(b,T),postToPanels:b=>{c.push(b)},log:b=>{u.push(b)},grantedCapabilities:i.capabilities}),g=i.onDataChange((b,T)=>{for(let A of s.dataListeners[b])A({key:T})});await p(f);let y=n.commands?[...s.commands.keys()].find(b=>!n.commands?.includes(b)):void 0;if(y!==void 0)throw new Error(`registered undeclared command ${y}: list it in contributes.commands`);async function x(b,T,A){let D=s.panelRequests.get(b);if(!D)throw He("unknown_method",`no panel handler named ${b}`);let w={...Dy,contributionId:A??Dy.contributionId};return D(T,{panel:w,signal:new AbortController().signal})}let I=i.routeRequests((b,T)=>x(b,T));return{host:i,logs:u,posts:c,get refusals(){return i.refusals},async emit(b,T){if(!nP(b))throw new Error(`emit: "${b}" is not an event Orca sends to workers`);if(!o.has(b))throw new Error(`emit: "${b}" never arrives: it is not in contributes.events`);let A=zp[b].safeParse(T);if(!A.success)throw new TypeError(`emit: that ${b} payload is not one Orca sends: ${A.error.issues[0]?.message??""}`);let D=s.events.get(la.get(b)??b)??[];await Promise.all([...D].map(async w=>w(A.data))),await i.idle()},hooks:{async fire(b,T){if(!Sa(b))throw new Error(`hooks.fire: "${b}" is not a hook Orca runs`);if(!r.has(b))throw new Error(`hooks.fire: "${b}" never runs: it is not in contributes.hooks`);let A=Qr[b].payload.safeParse(T);if(!A.success)throw new TypeError(`hooks.fire: that ${b} event is not one Orca sends: ${A.error.issues[0]?.message??""}`);let D=await Oy({event:b,payload:A.data,participants:["worker"],invoke:(w,O)=>Ey(s.hooks.get(b)??[],O),log:(w,O)=>{u.push(O)},now:()=>performance.now(),failsClosed:()=>a.has(b)});return await i.idle(),D.kind==="deny"?{kind:"deny",reason:D.reason}:{kind:"continue",event:D.payload}}},async command(b,T){let A=s.commands.get(b);if(!A)throw new Error(`command: the worker registered no "${b}"`);let D=await A(T,{signal:new AbortController().signal});return await i.idle(),D},async request(b,T,A={}){let D=await x(b,T,A.panel);return await i.idle(),D},async deactivate(){if(d){d=!1,g(),I(),s.events.clear(),s.hooks.clear(),s.commands.clear(),s.panelRequests.clear();try{await(typeof m=="function"?m():void 0)}catch(b){throw new Error(`deactivate threw: ${rP(b)}`,{cause:b})}await i.idle()}}}}import{test as Yj,describe as Qj,beforeEach as eL,afterEach as tL}from"node:test";import{default as rL}from"node:assert/strict";import{runInThisContext as dP}from"node:vm";function jy(e){if(typeof e!="object"||e===null||!("on"in e)||!("document"in e))return!1;let n=e.document;return typeof e.on=="function"&&typeof n=="object"&&n!==null&&"session"in n&&typeof n.session=="function"&&"applyEdit"in n&&typeof n.applyEdit=="function"}var Ke=1;var jp=["invalid_request","invalid_params","unknown_method","capability_denied","consent_required","not_permitted","rate_limited","unavailable","action_failed","cancelled","timeout","conflict","too_large"],iP=new Set(["rate_limited","unavailable","timeout","conflict"]);function oP(e){return jp.find(n=>n===e)??"action_failed"}function _t(e,n,i){let o=oP(e);return{code:o,message:n.slice(0,8192),retryable:iP.has(o),...i===void 0?{}:{retryAfterMs:i}}}var Cp=l.number().int().nonnegative(),Ly=l.string().min(1).max(128),aP=l.object({code:l.string().max(64),message:l.string().max(8192),retryable:l.boolean(),retryAfterMs:l.number().int().nonnegative().optional()}),rj=l.discriminatedUnion("kind",[l.object({orca:l.literal(Ke),kind:l.literal("req"),id:Cp,method:Ly,params:l.unknown().optional()}),l.object({orca:l.literal(Ke),kind:l.literal("res"),id:Cp,result:l.unknown().optional(),error:aP.optional()}),l.object({orca:l.literal(Ke),kind:l.literal("evt"),event:Ly,payload:l.unknown().optional()}),l.object({orca:l.literal(Ke),kind:l.literal("cancel"),id:Cp})]);var Ft={ready:"ready",hello:"hello",theme:"theme",ping:"ping",pong:"pong",editorKeydown:"editor.keydown",editorDocument:"editor.document",editorSubscribed:"editor.subscribed",editorMerges:"editor.merges",push:"plugin.push"},Mn={applyEdit:"editor.applyEdit",flush:"editor.flush"},Uy=64*1024;var sP=l.string().min(32).max(128),uj=l.object({sessionToken:sP,action:l.string().min(1),params:l.unknown().optional()}).strict();var Lp=64*1024*1024,fj=16*1024*1024;var Up=1e3,uP=l.strictObject({baseVersion:l.number().int().nonnegative(),content:l.discriminatedUnion("kind",[l.strictObject({kind:l.literal("text"),text:l.string()}),l.strictObject({kind:l.literal("bytes"),bytes:l.instanceof(ArrayBuffer)})])});function Ry(e){let n=uP.safeParse(e);return n.success?n.data:null}var Rp=_t("conflict","The file changed outside this editor; edit the latest document."),My=_t("too_large","The edit is larger than Orca accepts; the file keeps its last accepted edit.");var Zy="__orcaPluginFrameTransport",Vy="__orcaDeclarativePost";var Gy=` var domainEvents = ${JSON.stringify(ht)} var subscribed = new Set() var pluginListeners = new Map() diff --git a/src/renderer/src/components/terminal-pane/agent-pre-ready-typed-draft.test.ts b/src/renderer/src/components/terminal-pane/agent-pre-ready-typed-draft.test.ts index 6cf4db5f186..92ddec1a172 100644 --- a/src/renderer/src/components/terminal-pane/agent-pre-ready-typed-draft.test.ts +++ b/src/renderer/src/components/terminal-pane/agent-pre-ready-typed-draft.test.ts @@ -32,11 +32,13 @@ const { toastInfo, waitForAgentDraftInputReady, sendAgentDraftPasteContent, - onPasteTimeout + onPasteTimeout, + pasteTimeoutNotice } = vi.hoisted(() => ({ waitForAgentDraftInputReady: vi.fn(), sendAgentDraftPasteContent: vi.fn(async () => true), onPasteTimeout: vi.fn(), + pasteTimeoutNotice: vi.fn(), notifyCodexPaneBoundForStaleSweep: vi.fn(), scheduleRuntimeGraphSync: vi.fn(), shouldSeedCacheTimerOnInitialTitle: vi.fn(() => false), @@ -103,7 +105,10 @@ vi.mock('./pty-transport/remote-runtime/remote-runtime-pty-transport', () => ({ vi.mock('@/lib/agent-draft-paste-content', () => ({ sendAgentDraftPasteContent })) vi.mock('@/lib/agent-session/launch/prompt/launch-agent-paste-timeout-notice', () => ({ - createPasteReadinessTimeoutNotice: () => ({ onTimeout: onPasteTimeout, wasNotified: () => false }) + createPasteReadinessTimeoutNotice: (args: unknown) => { + pasteTimeoutNotice(args) + return { onTimeout: onPasteTimeout, wasNotified: () => false } + } })) vi.mock('@/store', () => ({ @@ -303,6 +308,10 @@ describe('agent pane keys typed before its PTY binds', () => { expect(sendAgentDraftPasteContent).not.toHaveBeenCalled() expect(onPasteTimeout).toHaveBeenCalledOnce() + // The typed text exists nowhere else, so the notice must carry it back to the user. + expect(pasteTimeoutNotice).toHaveBeenCalledWith( + expect.objectContaining({ droppedText: 'hello' }) + ) pane.dispose() }) diff --git a/src/renderer/src/components/terminal-pane/pty-connection/agent-pre-ready-typed-draft.ts b/src/renderer/src/components/terminal-pane/pty-connection/agent-pre-ready-typed-draft.ts index c77cb27762d..e0b404489b5 100644 --- a/src/renderer/src/components/terminal-pane/pty-connection/agent-pre-ready-typed-draft.ts +++ b/src/renderer/src/components/terminal-pane/pty-connection/agent-pre-ready-typed-draft.ts @@ -108,15 +108,16 @@ export function installAgentPreReadyTypedDraft(session: ConnectPanePtySession): } const dropDraft = (draftAgent: TuiAgent): void => { - const dropped = draft !== '' + const droppedText = draft draft = '' phase = 'closed' - if (dropped && !session.disposed) { + if (droppedText !== '' && !session.disposed) { createPasteReadinessTimeoutNotice({ worktreeId: session.deps.worktreeId, tabId: session.deps.tabId, agent: draftAgent, - submitted: false + submitted: false, + droppedText }).onTimeout() } } diff --git a/src/renderer/src/lib/agent-session/launch/prompt/launch-agent-paste-timeout-notice.ts b/src/renderer/src/lib/agent-session/launch/prompt/launch-agent-paste-timeout-notice.ts index 3390a65fb0d..2c2768864eb 100644 --- a/src/renderer/src/lib/agent-session/launch/prompt/launch-agent-paste-timeout-notice.ts +++ b/src/renderer/src/lib/agent-session/launch/prompt/launch-agent-paste-timeout-notice.ts @@ -11,6 +11,8 @@ export function createPasteReadinessTimeoutNotice(args: { tabId: string agent: TuiAgent submitted: boolean + /** Text the user typed that only lives here; the toast offers it back instead of losing it. */ + droppedText?: string }): { onTimeout: () => void; wasNotified: () => boolean } { let notified = false return { @@ -24,7 +26,7 @@ export function createPasteReadinessTimeoutNotice(args: { // Why: PTY never spawned = genuine launch failure; stay silent so the caller emits the sole notice. return } - if (!currentTab || state.activeWorktreeId !== args.worktreeId) { + if (!currentTab || (state.activeWorktreeId !== args.worktreeId && !args.droppedText)) { // Why: user cancelled (closed tab / switched worktrees); mark notified so the deferred caller suppresses its toast too. notified = true return @@ -34,7 +36,8 @@ export function createPasteReadinessTimeoutNotice(args: { 'auto.lib.launch.agent.in.new.tab.a5a1f7033f', "Your {{value0}} wasn't sent — paste it once the agent is ready.", { value0: args.submitted ? 'prompt' : 'notes' } - ) + ), + args.droppedText ? copyDroppedTextAction(args.droppedText) : undefined ) notified = true track('agent_error', { @@ -44,3 +47,14 @@ export function createPasteReadinessTimeoutNotice(args: { } } } + +function copyDroppedTextAction(text: string): { action: { label: string; onClick: () => void } } { + return { + action: { + label: translate('menu.copy', 'Copy'), + onClick: () => { + void window.api.ui.writeClipboardText(text) + } + } + } +} diff --git a/src/shared/agent-launch/catalog/tui-agent-config-types.ts b/src/shared/agent-launch/catalog/tui-agent-config-types.ts index 7c6d36df39a..dc0f32fdb5b 100644 --- a/src/shared/agent-launch/catalog/tui-agent-config-types.ts +++ b/src/shared/agent-launch/catalog/tui-agent-config-types.ts @@ -15,6 +15,7 @@ export type DraftPasteMarkerSignal = | 'dsh-composer-prompt' | 'claude-composer-prompt' | 'zcode-composer-prompt' + | 'antigravity-composer-prompt' /** Submit signals may also ask for a grace (`readyAfterMs`); only the paste waiters honour it. */ export type DraftPasteReadySignal = DraftPasteMarkerSignal | 'opencode-agent-row' diff --git a/src/shared/agent-launch/catalog/tui-agent-config.ts b/src/shared/agent-launch/catalog/tui-agent-config.ts index d69f51afe9c..3abbeed0a48 100644 --- a/src/shared/agent-launch/catalog/tui-agent-config.ts +++ b/src/shared/agent-launch/catalog/tui-agent-config.ts @@ -166,6 +166,9 @@ const TUI_AGENT_CONFIG_SOURCE: Record = { promptInjectionMode: 'flag-prompt-interactive', // Antigravity trust is exact-path, so every child workspace can show a menu that consumes paste; pre-write trust (agent-trust-presets.ts). preflightTrust: 'antigravity', + // The shell's own 2004h armed the quiet window, so a slow agy start got the paste in cooked mode (#18088). + draftPasteReadySignal: 'antigravity-composer-prompt', + draftPasteReadyTimeoutMs: 20_000, // agy 1.2.x expands collapsed multiline pastes over seconds; byte ingest finishing does not prove submit readiness. submitLineSettleMsPerLine: 45 }, diff --git a/src/shared/draft-paste-ready-scanner.test.ts b/src/shared/draft-paste-ready-scanner.test.ts index 6aae0a43c41..12419b026ba 100644 --- a/src/shared/draft-paste-ready-scanner.test.ts +++ b/src/shared/draft-paste-ready-scanner.test.ts @@ -52,4 +52,29 @@ describe('createDraftPasteReadyScanner', () => { expect(graced.observe(DECRST_BRACKETED_PASTE).readyAfterMs).toBeNull() }) }) + + describe('antigravity-composer-prompt', () => { + it('fires on the composer rows when a custom statusLine replaces the hint row', () => { + const rule = `\x1b[38;2;65;72;104m${'─'.repeat(80)}\x1b[m\r\n` + // agy 1.5.2 with a two-line command statusLine, after its startup splash. + const startup = `${DECSET_BRACKETED_PASTE}${ALT_SCREEN_ENTER} ⣾ Signing in...\r\ncustom-status-one\x1b[?1049l\r\n\n${rule}\x1b[38;2;122;162;247m>\x1b[m\r\n${rule}custom-status-one\r\ncustom-status-two\r\x1b[3A\x1b[2C${SHOW_CURSOR}` + expect( + createDraftPasteReadyScanner('antigravity-composer-prompt').observe(startup).ready + ).toBe(true) + expect( + createDraftPasteReadyScanner('antigravity-composer-prompt').observe( + startup.replace(DECSET_BRACKETED_PASTE, '') + ).ready + ).toBe(false) + }) + + it('never arms the quiet window from the shell prompt that launches agy (#18088)', () => { + const scanner = createDraftPasteReadyScanner('antigravity-composer-prompt') + // zsh enables paste at its prompt, echoes the command, then disables paste before exec. + expect( + scanner.observe(`${DECSET_BRACKETED_PASTE}% agy '--dangerously-skip-permissions'`) + ).toEqual({ ready: false, armQuietTimer: false }) + expect(scanner.observe(`${DECRST_BRACKETED_PASTE}\r\r\n? for shortcuts`).ready).toBe(false) + }) + }) }) diff --git a/src/shared/draft-paste-ready-scanner.ts b/src/shared/draft-paste-ready-scanner.ts index 3161ddaf38d..f4dc1ce01ef 100644 --- a/src/shared/draft-paste-ready-scanner.ts +++ b/src/shared/draft-paste-ready-scanner.ts @@ -22,6 +22,11 @@ const CLAUDE_COMPOSER_PROMPT = '❯\u00a0' // only while idle at its prompt, where a `❯` + NBSP glyph is unlikely. const DECSET_COLOR_PALETTE_UPDATES = '\x1b[?2031h' const DECRST_COLOR_PALETTE_UPDATES = '\x1b[?2031l' +const SGR_RUN = '(?:\\x1b\\[[0-9;:]*m)*' +// agy's hint row, or its rule / `>` / rule composer rows, which a custom statusLine keeps after replacing the hint (#38930). +const ANTIGRAVITY_COMPOSER_READY = new RegExp( + `\\? for shortcuts|─{8}${SGR_RUN}\\r?\\n${SGR_RUN}>(?:\\s+[A-Za-z][A-Za-z-]*\\s+mode:[^\\n]*)?${SGR_RUN}\\r?\\n${SGR_RUN}─{8}` +) const DECSET_ALT_SCREEN = '\x1b[?1049h' const DECRST_ALT_SCREEN = '\x1b[?1049l' @@ -31,7 +36,7 @@ type DraftPasteReadySignalSpec = { /** Bytes that revoke `markerAnchor` again, for anchors that describe a mode the agent can leave. */ markerAnchorEnd: string | null /** Composer-ready marker, or null for signals that only use the quiet window. */ - marker: string | null + marker: string | RegExp | null /** Bytes that arm the quiet-window fallback, or null when the signal has none. */ quietAnchor: string | null } @@ -86,6 +91,14 @@ const DRAFT_PASTE_READY_SIGNALS: Record // ZCode banner animates indefinitely; keep quiet fallback for inline builds whose alt-screen marker never arms. quietAnchor: DECSET_BRACKETED_PASTE }, + // agy's composer; its trust dialog, sign-in menu and a shell prompt never draw it. No quiet fallback: + // the shell prompt's 2004h would arm it before agy starts. Evidence: agy 1.2.14 and 1.5.2 startups. + 'antigravity-composer-prompt': { + markerAnchor: DECSET_BRACKETED_PASTE, + markerAnchorEnd: DECRST_BRACKETED_PASTE, + marker: ANTIGRAVITY_COMPOSER_READY, + quietAnchor: null + }, 'render-quiet-after-bracketed-paste': { markerAnchor: null, markerAnchorEnd: null, @@ -182,7 +195,7 @@ function createSingleSignalScanner(readySignal: SingleSignal): { const segmentStart = Math.max(cursor, carriedLength) const segment = leaveIndex === -1 ? window.slice(segmentStart) : window.slice(segmentStart, leaveIndex) - if ((postAnchorRecent + segment).includes(signalMarker ?? '')) { + if (signalMarker !== null && containsMarker(postAnchorRecent + segment, signalMarker)) { return true } if (leaveIndex === -1) { @@ -217,13 +230,13 @@ function createSingleSignalScanner(readySignal: SingleSignal): { if (anchorIndex !== -1) { sawMarkerAnchor = true const postAnchorChunk = combined.slice(anchorIndex + markerAnchor.length) - if (postAnchorChunk.includes(signalMarker)) { + if (containsMarker(postAnchorChunk, signalMarker)) { return { ready: true, armQuietTimer: false } } postAnchorRecent = postAnchorChunk.slice(-512) } } else { - if (data.includes(signalMarker) || (postAnchorRecent + data).includes(signalMarker)) { + if (containsMarker(postAnchorRecent + data, signalMarker)) { return { ready: true, armQuietTimer: false } } postAnchorRecent = (postAnchorRecent + data).slice(-512) @@ -234,3 +247,7 @@ function createSingleSignalScanner(readySignal: SingleSignal): { } } } + +function containsMarker(text: string, marker: string | RegExp): boolean { + return typeof marker === 'string' ? text.includes(marker) : marker.test(text) +}