@apptoolkit/harness 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -17
- package/package.json +24 -10
- package/LICENSE +0 -21
- package/harness.js +0 -104
- package/payload/HARNESS.md +0 -21
- package/payload/author-style/README.md +0 -56
- package/payload/author-style/biome-core.json +0 -57
- package/payload/author-style/biome-react.json +0 -9
- package/payload/author-style/biome-sql.json +0 -9
- package/payload/author-style/bun.lock +0 -37
- package/payload/author-style/check.llm.md +0 -17
- package/payload/author-style/check.test.llm.md +0 -17
- package/payload/author-style/check.test.ts +0 -238
- package/payload/author-style/check.ts +0 -181
- package/payload/author-style/member-spacing.test.ts +0 -172
- package/payload/author-style/member-spacing.ts +0 -106
- package/payload/author-style/package.json +0 -18
- package/payload/author-style/plugins/class-member-order.grit +0 -133
- package/payload/author-style/plugins/event-handler-names.grit +0 -110
- package/payload/author-style/plugins/explicit-arrow-body.grit +0 -15
- package/payload/author-style/plugins/explicit-source-constructs.grit +0 -10
- package/payload/author-style/plugins/react-arrow-body.grit +0 -85
- package/payload/author-style/plugins/sql-style.grit +0 -125
- package/payload/author-style/react-module.llm.md +0 -17
- package/payload/author-style/react-module.test.ts +0 -150
- package/payload/author-style/react-module.ts +0 -255
- package/payload/author-style/source-policy.llm.md +0 -17
- package/payload/author-style/source-policy.test.ts +0 -70
- package/payload/author-style/source-policy.ts +0 -215
- package/payload/author-style/spacing.llm.md +0 -17
- package/payload/author-style/spacing.test.ts +0 -174
- package/payload/author-style/spacing.ts +0 -211
- package/payload/harness/POLICY.md +0 -33
- package/payload/harness/PROJECT.md +0 -26
- package/payload/harness/REVIEW.md +0 -17
- package/payload/harness/TEMPLATES.md +0 -20
- package/payload/harness/WORKFLOWS.md +0 -65
- package/payload/harness/runtime/ZOD-LICENSE +0 -21
- package/payload/harness/runtime/harness.mjs +0 -104
- package/payload/harness/services/README.md +0 -26
- package/payload/harness/services/penpot.json +0 -7
- package/payload/harness/services/plane.json +0 -9
- package/payload/harness/workflows/W01.md +0 -13
- package/payload/harness/workflows/W02.md +0 -13
- package/payload/harness/workflows/W03.md +0 -13
- package/payload/harness/workflows/W04.md +0 -13
- package/payload/harness/workflows/W05.md +0 -13
- package/payload/harness/workflows/W06.md +0 -13
- package/payload/harness/workflows/W07.md +0 -13
- package/payload/harness/workflows/W08.md +0 -13
- package/payload/harness/workflows/W09.md +0 -13
- package/payload/harness/workflows/W10.md +0 -13
- package/payload/harness/workflows/W11.md +0 -13
- package/payload/harness/workflows/W12.md +0 -13
- package/payload/harness/workflows/W13.md +0 -13
- package/payload/harness/workflows/W14.md +0 -13
- package/payload/harness/workflows/W15.md +0 -13
- package/payload/harness/workflows/W16.md +0 -13
- package/payload/harness/workflows/W17.md +0 -13
- package/payload/harness/workflows/W18.md +0 -13
- package/payload/harness/workflows/W19.md +0 -13
- package/payload/harness/workflows/W20.md +0 -13
- package/payload/harness/workflows/W21.md +0 -15
- package/payload/harness/workflows/W22.md +0 -13
- package/payload/harness/workflows/W23.md +0 -21
- package/payload/harness/workflows/W24.md +0 -13
- package/payload/harness/workflows/W25.md +0 -13
- package/payload/harness/workflows/W26.md +0 -13
- package/payload/harness/workflows/W27.md +0 -13
- package/payload/harness/workflows/W28.md +0 -13
- package/payload/harness/workflows/W29.md +0 -13
- package/payload/harness/workflows/W30.md +0 -13
- package/payload/harness/workflows/W31.md +0 -13
- package/payload/harness/workflows/W32.md +0 -13
- package/payload/harness/workflows/W33.md +0 -13
- package/payload/harness/workflows/W34.md +0 -13
- package/payload/harness/workflows/W35.md +0 -13
- package/payload/harness/workflows/W36.md +0 -13
- package/payload/harness/workflows/W37.md +0 -13
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
var tp=Object.defineProperty;var rp=(e)=>e;function op(e,t){this[e]=rp.bind(null,t)}var np=(e,t)=>{for(var r in t)tp(e,r,{get:t[r],enumerable:!0,configurable:!0,set:op.bind(t,r)})};import{resolve as sr}from"node:path";import{fileURLToPath as Dh}from"node:url";function Ke(e){let t=Object.values(e).filter((o)=>typeof o==="number");return Object.entries(e).filter(([o,n])=>t.indexOf(+o)===-1).map(([o,n])=>n)}function ur(e,t="|"){return e.map((r)=>fr(r)).join(t)}function Ge(e,t){if(typeof t==="bigint")return t.toString();return t}class Ho{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;if(e!==void 0)this._value=e(),this._getter=void 0;return this._value}}function qe(e){return new Ho(e)}function Ko(e){return e===null||e===void 0}function vt(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function Go(e,t){let r=e/t,o=Math.round(r),n=4*Number.EPSILON*Math.max(Math.abs(r),1);if(Math.abs(r-o)<n)return 0;return r-o}function Q(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Xe(e){let t=Object.getOwnPropertyDescriptor(e,"shape");return t?.get?t.get.raw:t?.value}function ue(e){return Xe(e._zod.def)??e._zod.def.shape}function qo(e,t,r){Object.defineProperty(e,t,{get(){let o=r();return Q(this,t,o),o},enumerable:!0,configurable:!0})}function Xo(e,t,r){if(t in e)Q(e,t,r);else e[t]=r}function ke(e,t,r,o){let n=ue(t);for(let s of r){let i=Object.getOwnPropertyDescriptor(n,s);if(!i.enumerable)continue;if(i.get)qo(e,s,()=>{let c=t._zod.def.shape[s];return o?o(c,s):c});else Xo(e,s,o?o(i.value,s):i.value)}}function sp(e,t){for(let r of Reflect.ownKeys(t)){let o=Object.getOwnPropertyDescriptor(t,r);if(!o.enumerable)continue;if(o.get)qo(e,r,()=>t[r]);else Xo(e,r,o.value)}}function B(...e){let t={};for(let r of e){let o=Object.getOwnPropertyDescriptors(r);Object.assign(t,o)}return Object.defineProperties({},t)}function Yo(e){return JSON.stringify(e)}function Qo(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var pr="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Ce(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}var en=qe(()=>{if(J.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function Ie(e){if(Ce(e)===!1)return!1;let t=e.constructor;if(t===void 0)return!0;if(typeof t!=="function")return!0;let r=t.prototype;if(Ce(r)===!1)return!1;if(Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)return!1;return!0}function lr(e){if(Ie(e))return{...e};if(Array.isArray(e))return[...e];if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);return e}var tn=new Set(["string","number","symbol"]);function ye(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ne(e,t,r){let o=new e._zod.constr(t??e._zod.def);if(!t||r?.parent)o._zod.parent=e;return o}function x(e){let t=e;if(!t)return{};if(typeof t==="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}if(delete t.message,typeof t.error==="string")return{...t,error:()=>t.error};return t}function fr(e){if(typeof e==="bigint")return e.toString()+"n";if(typeof e==="string")return`"${e}"`;return`${e}`}function rn(e){return Object.keys(e).filter((t)=>e[t]._zod.optin!==void 0&&e[t]._zod.optout==="optional")}var wt=(()=>({safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]}))(),dr={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function ip(e,t){let r=e._zod.def,o=r.checks;if(o&&o.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let s={};return ke(s,e,_t(e,t)),ne(e,B(r,{shape:s,checks:[]}))}function _t(e,t){let r=ue(e),o=[];for(let n of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(r,n)?.enumerable)throw Error(`Unrecognized key: "${String(n)}"`);if(t[n])o.push(n)}return o}function cp(e,t){let r=e._zod.def,o=r.checks;if(o&&o.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let s=new Set(_t(e,t)),i={};return ke(i,e,Reflect.ownKeys(ue(e)).filter((c)=>!s.has(c))),ne(e,B(r,{shape:i,checks:[]}))}function ap(e,t){if(!Ie(t))throw Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let n=ue(e);for(let s of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,s)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return ne(e,B(e._zod.def,{shape:on(e,t)}))}function on(e,t){let r={};return ke(r,e,Reflect.ownKeys(ue(e))),sp(r,t),r}function up(e,t){if(!Ie(t))throw Error("Invalid input to safeExtend: expected a plain object");return ne(e,B(e._zod.def,{shape:on(e,t)}))}function pp(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r={};ke(r,e,Reflect.ownKeys(ue(e))),ke(r,t,Reflect.ownKeys(ue(t)));let o=B(e._zod.def,{shape:r,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return ne(e,o)}function nn(e,t,r,o="partial"){let s=t._zod.def.checks;if(s&&s.length>0)throw Error(`.${o}() cannot be used on object schemas containing refinements`);let c=r?new Set(_t(t,r)):void 0,a={};return ke(a,t,Reflect.ownKeys(ue(t)),e&&((u,p)=>c&&!c.has(p)?u:new e({type:"optional",innerType:u}))),ne(t,B(t._zod.def,{shape:a,checks:[]}))}function lp(e,t,r){let o=r?new Set(_t(t,r)):void 0,n={};return ke(n,t,Reflect.ownKeys(ue(t)),(s,i)=>o&&!o.has(i)?s:new e({type:"nonoptional",innerType:s})),ne(t,B(t._zod.def,{shape:n}))}function se(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function sn(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function bt(e,t){return t.map((r)=>{var o;return(o=r).path??(o.path=[]),r.path.unshift(e),r})}function He(e){return typeof e==="string"?e:e?.message}function hr(e){let t=[];for(let r of e??[]){let o=r._zod.def;if(!/_(length|size)$|_equals$/.test(o.check))break;let n=o.maximum??o.length??o.size;if(n>=0)t.push([n,r])}return t}function kt(e,t,r){var o;for(let n=t;n<e.length;n++)(o=e[n]).schema??(o.schema=r)}function xe(e,t,r){var o;let n=e.inst?._zod?.traits;if(n?.has("$ZodType"))if(n.has("$ZodCheck"))(o=e).schema??(o.schema=e.inst);else e.schema=e.inst;let s=e.schema!==e.inst?e.schema?._zod.def?.error:void 0,i=e.message?e.message:He(e.inst?._zod.def?.error?.(e))??He(s?.(e))??He(t?.error?.(e))??He(r.customError?.(e))??He(r.localeError?.(e))??"Invalid input",c={};for(let a of Object.keys(e)){if(a==="inst"||a==="schema"||a==="continue"||a==="input"||a==="__proto__")continue;c[a]=e[a]}if(c.path??(c.path=[]),c.message=i,t?.reportInput)c.input=e.input;return c}var fp=/[\uD800-\uDBFF]/;function $t(e){let t=e.length;if(!fp.test(e))return t;let r=t;for(let o=0;o<t-1;o++)if((e.charCodeAt(o)&64512)===55296&&(e.charCodeAt(o+1)&64512)===56320)r--,o++;return r}function zt(e){if(Array.isArray(e))return"array";if(typeof e==="string")return"string";return"unknown"}function cn(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function $e(...e){let[t,r,o]=e;if(typeof t==="string")return{message:t,code:"custom",input:r,inst:o};return{...t}}function an(e,t){for(let r in t){let o=Object.getOwnPropertyDescriptor(t,r);if(o.get)Object.defineProperty(e,r,{...o,enumerable:!1});else dp(e,r,o.value)}}function pe(e,t,r,o=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:o,value:r}),r}function St(e,t,r){return pe(e,t,r,!1)}function Pt(e,t){for(let r in e){let o=e[r];Object.defineProperty(t,r,{configurable:!0,enumerable:!0,get(){return pe(this,r,o(this))},set(n){pe(this,r,n)}})}return t}function dp(e,t,r){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?r:pe(this,t,r.bind(this))},set(o){pe(this,t,o)}})}function hp(e,t){let r=Object.getPrototypeOf(e);return t in r?void 0:r}var ar,ge=!1,mp={configurable:!0,get(){ge=!0;return}};function b(e,t,r){let o=Object.getPrototypeOf(e._zod);if(t in o&&ar!==e._zod){ar=void 0;return}ar=e._zod,Object.defineProperty(o,t,{configurable:!0,get(){Object.defineProperty(this,t,mp);let n=ge;ge=!1;try{let s=r(this);if(ge)delete this[t];else Object.defineProperty(this,t,{configurable:!0,writable:!0,value:s});return ge=ge||n,s}catch(s){throw delete this[t],ge=ge||n,s}},set(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})}function gp(e,t,r,o){let n=hp(e,t);if(!n)return;Object.defineProperty(n,t,{configurable:!0,get(){let s={configurable:!0,writable:!0,enumerable:o,value:void 0};return Object.defineProperty(this,t,s),s.value=r(this),Object.defineProperty(this,t,s),s.value},set(s){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:o,value:s})}})}var yp="~constantCatch";function un(e){let t=()=>e;return t[yp]=!0,t}var pn;var mr={value:void 0,enumerable:!1},ln="captureStackTrace"in Error?Error:null;function xp(e){let t=ln;if(t){let r=t.stackTraceLimit;if(typeof r==="number"){try{t.stackTraceLimit=0}catch{return ln=null,new e}try{return new e}finally{t.stackTraceLimit=r}}}return new e}function h(e,t,r,o){let n={};function s(f){this.def=f,this.constr=l,this.traits=new Set}s.prototype=n;let i=r,c=i&&new WeakSet;function a(f,d){if(!f._zod){mr.value=new s(d);try{Object.defineProperty(f,"_zod",mr)}finally{mr.value=void 0}}else if(f._zod.traits.has(e))return;if(f._zod.traits.add(e),t(f,d),c){let g=Object.getPrototypeOf(f),y=f._zod.constr.prototype,v=g;while(v&&v!==y)v=Object.getPrototypeOf(v);let k=v??g;if(!c.has(k))c.add(k),an(k,i)}let m=l.prototype;for(let g in m){if(!Object.prototype.hasOwnProperty.call(m,g))continue;if(!(g in f))f[g]=m[g].bind(f)}}let u=o?.Parent??Object;class p extends u{}Object.defineProperty(p,"name",{value:e});function l(f){let d=o?.Parent?xp(p):this;a(d,f);let m=d._zod.deferred;if(m){for(let y of m)y();d._zod.deferred=void 0}let g=globalThis.__zod_globalConfig?.postProcessor;if(g)g(d);return d}return Object.defineProperty(l,"init",{value:a}),Object.defineProperty(l,Symbol.hasInstance,{value:(f)=>{if(o?.Parent&&f instanceof o.Parent)return!0;return f?._zod?.traits?.has(e)}}),Object.defineProperty(l,"name",{value:e}),l}class ie extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Ye extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`);this.name="ZodEncodeError"}}(pn=globalThis).__zod_globalConfig??(pn.__zod_globalConfig={});var J=globalThis.__zod_globalConfig;function te(e){if(e)Object.assign(J,e);return J}function vp(){let e=this._zod;return e.message??(e.message=JSON.stringify(e.def,Ge,2)),e.message}function wp(e){this._zod.message=e}var _p={get:vp,set:wp,enumerable:!0,configurable:!0},yr={value:void 0,enumerable:!1},fn=new WeakSet([Object.prototype,Error.prototype]),dn=(e,t)=>{e.name="$ZodError",yr.value=t,Object.defineProperty(e,"issues",yr),yr.value=void 0,Object.defineProperty(e,"message",_p);let r=Object.getPrototypeOf(e);if(!fn.has(r))fn.add(r),Object.defineProperty(r,"toString",{configurable:!0,enumerable:!1,get(){let o=()=>this.message;return Object.defineProperty(this,"toString",{value:o,configurable:!0,writable:!0}),o},set(o){Object.defineProperty(this,"toString",{value:o,configurable:!0,writable:!0})}})},hn=h("$ZodError",dn),Vh=h("$ZodError",dn,void 0,{Parent:Error});function bp(e,t,r){if(!Object.prototype.hasOwnProperty.call(e,t))if(t==="__proto__")Object.defineProperty(e,t,{value:r(),writable:!0,enumerable:!0,configurable:!0});else e[t]=r();return e[t]}function mn(e,t=(r)=>r.message){let r={},o=[];for(let n of e.issues)if(n.path.length>0)bp(r,n.path[0],()=>[]).push(t(n));else o.push(t(n));return{formErrors:o,fieldErrors:r}}function gn(e,t=(r)=>r.message){let r={_errors:[]},o=(n,s=[])=>{for(let i of n.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map((c)=>o({issues:c},[...s,...i.path]));else if(i.code==="invalid_key")o({issues:i.issues},[...s,...i.path]);else if(i.code==="invalid_element")o({issues:i.issues},[...s,...i.path]);else{let c=[...s,...i.path];if(c.length===0)r._errors.push(t(i));else{let a=r,u=0;while(u<c.length){let p=c[u],l=u===c.length-1;if(p==="_errors"){if(l)a._errors.push(t(i));u++;continue}if(!Object.prototype.hasOwnProperty.call(a,p))Object.defineProperty(a,p,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let f=a[p];if(l)f._errors.push(t(i));a=f,u++}}}};return o(e),r}function Et(e,t){return{callee:t?.callee??e,Err:t?.Err}}var Zt=(e)=>{let t=(r,o,n,s)=>{let i=n?{...n,async:!1}:{async:!1},c=r._zod.run({value:o,issues:[]},i);if(c instanceof Promise)throw new ie;if(c.issues.length){let a=new(s?.Err??e)(c.issues.map((u)=>xe(u,i,te())));throw pr(a,s?.callee??t),a}return c.value};return t};var Ot=(e)=>{let t=async(r,o,n,s)=>{let i=n?{...n,async:!0}:{async:!0},c=r._zod.run({value:o,issues:[]},i);if(c instanceof Promise)c=await c;if(c.issues.length){let a=new(s?.Err??e)(c.issues.map((u)=>xe(u,i,te())));throw pr(a,s?.callee??t),a}return c.value};return t};var Rt=(e)=>(t,r,o)=>{let n=o?{...o,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},n);if(s instanceof Promise)throw new ie;return s.issues.length?yn(e,s.issues,n):{success:!0,data:s.value}};function yn(e,t,r){let o;return{success:!1,get error(){if(!o)o=new e(t.map((n)=>xe(n,r,te()))),t=void 0,r=void 0;return o},set error(n){o=n,t=void 0,r=void 0}}}var Ct=(e)=>async(t,r,o)=>{let n=o?{...o,async:!0}:{async:!0},s=t._zod.run({value:r,issues:[]},n);if(s instanceof Promise)s=await s;return s.issues.length?yn(e,s.issues,n):{success:!0,data:s.value}};var kp=Symbol.for("zod.compile.invalid"),$p=Symbol.for("zod.compile.fallback"),xr=(e,t,r)=>{let o=e._zod.bag.validator;if(o!==void 0){if(o(t)!==kp)return!0;if(o.definite===!0&&r===void 0)return!1}return zp(e,t,r)};function zp(e,t,r){let o=r?{...r,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},n=e._zod.bag.fallbackRun,s;if(n)o[$p]=!0,s=n({value:t,issues:[]},o);else s=e._zod.run({value:t,issues:[]},o);if(s instanceof Promise)throw new ie;return s.issues.length===0}var vr=async(e,t,r)=>{let o=r?{...r,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},n=e._zod.run({value:t,issues:[]},o);if(n instanceof Promise)n=await n;return n.issues.length===0},xn=(e)=>{let t=Zt(e),r=(o,n,s,i)=>{let c=s?{...s,direction:"backward"}:{direction:"backward"};return t(o,n,c,Et(r,i))};return r};var vn=(e)=>{let t=Zt(e),r=(o,n,s,i)=>t(o,n,s,Et(r,i));return r};var wn=(e)=>{let t=Ot(e),r=async(o,n,s,i)=>{let c=s?{...s,direction:"backward"}:{direction:"backward"};return await t(o,n,c,Et(r,i))};return r};var _n=(e)=>{let t=Ot(e),r=async(o,n,s,i)=>await t(o,n,s,Et(r,i));return r};var bn=(e)=>(t,r,o)=>{let n=o?{...o,direction:"backward"}:{direction:"backward"};return Rt(e)(t,r,n)};var kn=(e)=>(t,r,o)=>Rt(e)(t,r,o);var $n=(e)=>async(t,r,o)=>{let n=o?{...o,direction:"backward"}:{direction:"backward"};return Ct(e)(t,r,n)};var zn=(e)=>async(t,r,o)=>Ct(e)(t,r,o);var Sn=/^[cC][0-9a-z]{6,}$/,Pn=/^[0-9a-z]+$/,En=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,Zn=/^[0-9a-vA-V]{20}$/,On=/^[A-Za-z0-9]{27}$/,Rn=/^[a-zA-Z0-9_-]{21}$/;function Cn(e){return new RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}var In=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var An=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,_r=(e)=>{if(!e)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)};var Tn=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var Sp="^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$";function Nn(){return new RegExp(Sp,"u")}var jn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Dn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;var Fn=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Ln=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Mn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Wn=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/;var Un=/^https?$/,Bn=/^\+[1-9]\d{6,14}$/;var Jn="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))";function Pp(e){return new RegExp(`^${e}$`)}var Vn=Pp(Jn);function wr(e){return typeof e.precision==="number"?e.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":e.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?":"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function Hn(e){return new RegExp(`^${wr(e)}$`)}function Kn(e){let t=["Z"];if(e.offset)t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let r=`${wr({precision:e.precision,seconds:!0})}(?:${t.join("|")})`,o=e.local?`${r}|${wr({precision:e.precision})}`:r;return new RegExp(`^${Jn}T(?:${o})$`)}var Gn=/^[\s\S]{0,}$/;var qn=/^-?\d+n?$/;var br=/^-?\d+(?:\.\d+)?$/,Xn=/^(?:true|false)$/i;var Yn=/^[^A-Z]*$/,Qn=/^[^a-z]*$/;var T=h("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])});var kr=(e)=>{let t=e.value;return!Ko(t)&&t.length!==void 0},It={number:"number",bigint:"bigint",object:"date"},$r=h("$ZodCheckLessThan",(e,t)=>{T.init(e,t);let r=It[typeof t.value];e._zod.check=(o)=>{if(t.inclusive?o.value<=t.value:o.value<t.value)return;o.issues.push({origin:It[typeof o.value]??r,code:"too_big",maximum:typeof t.value==="object"?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),zr=h("$ZodCheckGreaterThan",(e,t)=>{T.init(e,t);let r=It[typeof t.value];e._zod.check=(o)=>{if(t.inclusive?o.value>=t.value:o.value>t.value)return;o.issues.push({origin:It[typeof o.value]??r,code:"too_small",minimum:typeof t.value==="object"?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),es=h("$ZodCheckMultipleOf",(e,t)=>{T.init(e,t),e._zod.check=(r)=>{if(typeof r.value!==typeof t.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof r.value==="bigint"?t.value!==BigInt(0)&&r.value%t.value===BigInt(0):Go(r.value,t.value)===0)return;r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),ts=h("$ZodCheckNumberFormat",(e,t)=>{T.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),o=r?"int":"number",[n,s]=wt[t.format];e._zod.check=(i)=>{let c=i.value;if(r){if(!Number.isInteger(c)){i.issues.push({expected:o,format:t.format,code:"invalid_type",continue:!1,input:c,inst:e});return}if(!Number.isSafeInteger(c)){if(c>0)i.issues.push({input:c,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort});else i.issues.push({input:c,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort});return}}if(c<n)i.issues.push({origin:"number",input:c,code:"too_small",minimum:n,inclusive:!0,inst:e,continue:!t.abort});if(c>s)i.issues.push({origin:"number",input:c,code:"too_big",maximum:s,inclusive:!0,inst:e,continue:!t.abort})}});var rs=h("$ZodCheckMaxLength",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=kr),e._zod.check=(o)=>{let n=o.value,s=n.length;if((typeof n==="string"&&s>t.maximum?$t(n):s)<=t.maximum)return;let c=zt(n);o.issues.push({origin:c,code:"too_big",maximum:t.maximum,inclusive:!0,input:n,inst:e,continue:!t.abort})}}),os=h("$ZodCheckMinLength",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=kr),e._zod.check=(o)=>{let n=o.value,s=n.length;if((typeof n==="string"&&s>=t.minimum&&s<t.minimum*2?$t(n):s)>=t.minimum)return;let c=zt(n);o.issues.push({origin:c,code:"too_small",minimum:t.minimum,inclusive:!0,input:n,inst:e,continue:!t.abort})}}),ns=h("$ZodCheckLengthEquals",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=kr),e._zod.check=(o)=>{let n=o.value,s=n.length,i=typeof n==="string"&&s>=t.length&&s<=t.length*2?$t(n):s;if(i===t.length)return;let c=zt(n),a=i>t.length;o.issues.push({origin:c,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:o.value,inst:e,continue:!t.abort})}}),et=h("$ZodCheckStringFormat",(e,t)=>{var r,o;if(T.init(e,t),t.pattern)(r=e._zod).check??(r.check=(n)=>{if(t.pattern.lastIndex=0,t.pattern.test(n.value))return;n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})});else(o=e._zod).check??(o.check=()=>{})}),ss=h("$ZodCheckRegex",(e,t)=>{et.init(e,t),e._zod.check=(r)=>{if(t.pattern.lastIndex=0,t.pattern.test(r.value))return;r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),is=h("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Yn),et.init(e,t)}),cs=h("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Qn),et.init(e,t)}),as=h("$ZodCheckIncludes",(e,t)=>{T.init(e,t);let r=ye(t.includes),o=new RegExp(typeof t.position==="number"?`^.{${t.position},}${r}`:r);t.pattern=o,e._zod.check=(n)=>{if(n.value.includes(t.includes,t.position))return;n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),us=h("$ZodCheckStartsWith",(e,t)=>{T.init(e,t);let r=new RegExp(`^${ye(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.check=(o)=>{if(o.value.startsWith(t.prefix))return;o.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:o.value,inst:e,continue:!t.abort})}}),ps=h("$ZodCheckEndsWith",(e,t)=>{T.init(e,t);let r=new RegExp(`.*${ye(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.check=(o)=>{if(o.value.endsWith(t.suffix))return;o.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:o.value,inst:e,continue:!t.abort})}});var ls=h("$ZodCheckOverwrite",(e,t)=>{T.init(e,t),e._zod.check=(r)=>{r.value=t.tx(r.value)}});class Sr{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1;try{e(this)}finally{this.indent-=1}}write(e){if(typeof e==="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let r=e.split(`
|
|
3
|
-
`).filter((s)=>s),o=Math.min(...r.map((s)=>s.length-s.trimStart().length)),n=r.map((s)=>s.slice(o)).map((s)=>" ".repeat(this.indent*2)+s);for(let s of n)this.content.push(s)}compile(){let e=Function,t=this?.content??[""];return new e(...Object.keys(this.closed),`return function (${this.args.join(", ")}) {
|
|
4
|
-
${t.join(`
|
|
5
|
-
`)}
|
|
6
|
-
};`)(...Object.values(this.closed))}}var ds={major:4,minor:6,patch:7};var E=h("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=ds;let o=e._zod.def.checks,n=e._zod.traits.has("$ZodCheck")?[e,...o??[]]:o?.length?[...o]:[];for(let s of n)for(let i of s._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let s=(c,a,u)=>{if(c.memo)return c;let p=se(c),l;for(let f of a){if(f._zod.def.when){if(sn(c))continue;if(!f._zod.def.when(c))continue}else if(p)continue;let d=c.issues.length,m=f._zod.check(c);if(m instanceof Promise&&u?.async===!1)throw new ie;if(l||m instanceof Promise)l=(l??Promise.resolve()).then(async()=>{if(await m,c.issues.length===d)return;if(kt(c.issues,d,e),!p)p=se(c,d)});else{if(c.issues.length===d)continue;if(kt(c.issues,d,e),!p)p=se(c,d)}}if(l)return l.then(()=>c);return c},i=(c,a,u)=>{if(se(c))return c.aborted=!0,c;let p=s(a,n,u);if(p instanceof Promise){if(u.async===!1)throw new ie;return p.then((l)=>e._zod.parse(l,u))}return e._zod.parse(p,u)};e._zod.run=(c,a)=>{if(a.skipChecks)return e._zod.parse(c,a);if(a.direction==="backward"){let p=e._zod.parse({value:c.value,issues:[]},{...a,skipChecks:!0});if(p instanceof Promise)return p.then((l)=>i(l,c,a));return i(p,c,a)}let u=e._zod.parse(c,a);if(u instanceof Promise){if(a.async===!1)throw new ie;return u.then((p)=>s(p,n,a))}return s(u,n,a)}}},{get "~standard"(){return St(this,"~standard",Er(this))},set "~standard"(e){pe(this,"~standard",e)}}),$s=(e,t)=>e.issues.length?{issues:e.issues.map((r)=>xe(r,t,te()))}:{value:e.value};async function Zp(e,t){let r={async:!0};return $s(await e._zod.run({value:t,issues:[]},r),r)}function Er(e){return{validate:(t)=>{let r={async:!1};try{let o=e._zod.run({value:t,issues:[]},r);if(!(o instanceof Promise))return $s(o,r)}catch(o){}return Zp(e,t)},vendor:"zod",version:1}}var jt=h("$ZodString",(e,t)=>{E.init(e,t),e._zod.pattern=t.pattern??Gn,e._zod.parse=(r,o)=>{if(t.coerce)try{r.value=String(r.value)}catch(n){}if(typeof r.value==="string")return r;return r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),Z=h("$ZodStringFormat",(e,t)=>{et.init(e,t),jt.init(e,t)}),zs=h("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=An),Z.init(e,t)}),Ss=h("$ZodUUID",(e,t)=>{if(t.version){let o={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(o===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=_r(o))}else t.pattern??(t.pattern=_r());Z.init(e,t)}),Ps=h("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Tn),Z.init(e,t)}),Es=1,Tt=2;function Zs(e){try{if(typeof URL<"u"&&typeof URL.canParse==="function")return URL.canParse(e);return new URL(e),!0}catch{return!1}}function Op(e,t){if(!("normalize"in t)&&!("hostname"in t)&&!("protocol"in t))return Zs(e)||Tt;return Rp(e,t)}function Rp(e,t){if(!t.normalize&&t.protocol?.source===Un.source&&!/^https?:\/\//i.test(e))return Es;try{if(typeof URL<"u"){let r=URL;if(typeof r.parse==="function")return r.parse(e)??Tt}return new URL(e)}catch{return Tt}}var Cp=/[\t\n\r]/g;function hs(e){return e.replace(Cp,"")}function Ip(e,t){return t.lastIndex=0,t.test(e.hostname)}function Ap(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(":")?e.protocol.slice(0,-1):e.protocol)}var Os=h("$ZodURL",(e,t)=>{Z.init(e,t),e._zod.check=(r)=>{try{let o=r.value.trim(),n=Op(o,t);if(n===Es){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!t.abort});return}if(n===Tt){r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort});return}if(n===!0){r.value=hs(o);return}if(t.hostname&&!Ip(n,t.hostname))r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort});if(t.protocol&&!Ap(n,t.protocol))r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort});r.value=t.normalize?n.href:hs(o);return}catch(o){r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),Rs=h("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Nn()),Z.init(e,t)}),Cs=h("$ZodNanoID",(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??(t.pattern=t.length===void 0?Rn:Cn(t.length)),Z.init(e,t)}),Is=h("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Sn),Z.init(e,t)}),As=h("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Pn),Z.init(e,t)}),Ts=h("$ZodULID",(e,t)=>{t.pattern??(t.pattern=En),Z.init(e,t)}),Ns=h("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Zn),Z.init(e,t)}),js=h("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=On),Z.init(e,t)}),Ds=h("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Kn(t)),Z.init(e,t)}),Fs=h("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Vn),Z.init(e,t)}),Ls=h("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Hn(t)),Z.init(e,t)}),Ms=h("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=In),Z.init(e,t)}),Ws=h("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=jn),Z.init(e,t)}),Tp=/^[0-9a-fA-F:.]+$/;function Us(e){if(!Tp.test(e))return!1;return Zs(`http://[${e}]`)}var Bs=h("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Dn),Z.init(e,t),e._zod.check=(r)=>{if(!Us(r.value))r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}});var Js=h("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Fn),Z.init(e,t)});function Np(e){let t=e.split("/");if(t.length!==2)return!1;let[r,o]=t;if(!o)return!1;let n=Number(o);if(`${n}`!==o)return!1;if(n<0||n>128)return!1;return Us(r)}var Vs=h("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Ln),Z.init(e,t),e._zod.check=(r)=>{if(!Np(r.value))r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}});function Hs(e){if(e==="")return!0;if(/\s/.test(e))return!1;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Zr=/^[0-9a-zA-Z+/]*={0,2}$/,Ks=h("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Zr),Z.init(e,t),e._zod.check=(r)=>{if(Hs(r.value))return;r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}}),Dt=/^[A-Za-z0-9_-]*$/;function jp(e){if(!Dt.test(e))return!1;let t=e.replace(/[-_]/g,(o)=>o==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return Hs(r)}var Gs=h("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Dt),Z.init(e,t),e._zod.check=(r)=>{if(jp(r.value))return;r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),qs=h("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Bn),Z.init(e,t)});function Dp(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[o]=r;if(!o)return!1;let n=JSON.parse(atob(o));if("typ"in n&&n?.typ!=="JWT")return!1;if(!n.alg)return!1;if(t&&(!("alg"in n)||n.alg!==t))return!1;return!0}catch{return!1}}var Xs=h("$ZodJWT",(e,t)=>{Z.init(e,t),e._zod.check=(r)=>{if(Dp(r.value,t.alg))return;r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}});var Or=h("$ZodNumber",(e,t)=>{E.init(e,t),e._zod.pattern=br,e._zod.parse=(r,o)=>{if(t.coerce)try{r.value=Number(r.value)}catch(i){}let n=r.value;if(typeof n==="number"&&!Number.isNaN(n)&&Number.isFinite(n))return r;let s=typeof n==="number"?Number.isNaN(n)?"NaN":!Number.isFinite(n)?String(n):void 0:void 0;return r.issues.push({expected:"number",code:"invalid_type",input:n,inst:e,...s?{received:s}:{}}),r}}),Ys=h("$ZodNumberFormat",(e,t)=>{ts.init(e,t),Or.init(e,t)}),Qs=h("$ZodBoolean",(e,t)=>{E.init(e,t),e._zod.pattern=Xn,e._zod.parse=(r,o)=>{if(t.coerce)try{r.value=Boolean(r.value)}catch(s){}let n=r.value;if(typeof n==="boolean")return r;return r.issues.push({expected:"boolean",code:"invalid_type",input:n,inst:e}),r}}),ei=h("$ZodBigInt",(e,t)=>{E.init(e,t),e._zod.pattern=qn,e._zod.parse=(r,o)=>{if(t.coerce)try{r.value=BigInt(r.value)}catch(n){}if(typeof r.value==="bigint")return r;return r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:e}),r}});var ti=h("$ZodUnknown",(e,t)=>{E.init(e,t),e._zod.parse=(r)=>r}),ri=h("$ZodNever",(e,t)=>{E.init(e,t),e._zod.parse=(r,o)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)});var oi=h("$ZodDate",(e,t)=>{E.init(e,t),e._zod.parse=(r,o)=>{if(t.coerce)try{r.value=new Date(r.value)}catch(c){}let n=r.value,s=n instanceof Date;if(s&&!Number.isNaN(n.getTime()))return r;return r.issues.push({expected:"date",code:"invalid_type",input:n,...s?{received:"Invalid Date"}:{},inst:e}),r}});function Fp(e,t){let r=hr(e._zod.def.checks);if(!r.length)return;let o=Math.min(...r.map((s)=>s[0])),n=e._zod.parse;e._zod.parse=(s,i)=>{let c=t(s.value);if(c>o&&!i?.skipChecks&&i?.direction!=="backward"){for(let[a,u]of hr(e._zod.def.checks))if(c>a&&u._zod.def.when(s)){let p=s.issues.length;return u._zod.check(s),s.issues[p].continue=!1,kt(s.issues,p,e),s}}return n(s,i)}}var Lp=(e)=>Array.isArray(e)?e.length:-1;function ms(e,t,r){if(e.issues.length)t.issues.push(...bt(r,e.issues));t.value[r]=e.value}var ni=h("$ZodArray",(e,t)=>{E.init(e,t);let r=J.memoizer;r?.attach(e),e._zod.parse=(o,n)=>{let s=o.value;if(!Array.isArray(s))return o.issues.push({expected:"array",code:"invalid_type",input:s,inst:e}),o;o.value=r?r.alloc(e,o,Array(s.length),n):Array(s.length);let i=[],c=n?.abortEarly;for(let a=0;a<s.length;a++){let u=s[a],p=t.element._zod.run({value:u,issues:[]},n);if(p instanceof Promise)i.push(p.then((l)=>ms(l,o,a)));else if(ms(p,o,a),c&&p.issues.length!==0&&se(p))break}if(i.length)return Promise.all(i).then(()=>o);return o},Fp(e,Lp)});function Nt(e,t,r,o,n,s){let i=r in o,c=s==="optional";if(!i&&c&&n==="optional")return;if(e.issues.length){if(n!==void 0&&c&&!i)return;t.issues.push(...bt(r,e.issues))}if(!i&&n===void 0){if(!e.issues.length)t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}if(e.value===void 0){if(i||n==="defaulted"&&!c)t.value[r]=void 0}else t.value[r]=e.value}var Mp=[];function si(e){let t=Object.keys(e.shape),r=Object.getOwnPropertySymbols(e.shape),o=r.length?r:Mp,n=o.length?[...t,...o]:t;for(let i of n)if(!e.shape?.[i]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${String(i)}": expected a Zod schema`);let s=rn(e.shape);return{...e,allKeys:n,symbolKeys:o,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(s)}}function ii(e,t,r,o,n,s,i){let c=[],a=n.keySet,u=n.catchall._zod,p=u.def.type,{optin:l,optout:f}=u,d=0;for(let m in t){if(i&&r.issues.length!==d){if(se(r,d))break;d=r.issues.length}if(a.has(m))continue;if(m==="__proto__"){if(p==="never")c.push(m);continue}if(p==="never"){c.push(m);continue}let g=u.run({value:t[m],issues:[]},o);if(g instanceof Promise)e.push(g.then((y)=>Nt(y,r,m,t,l,f)));else Nt(g,r,m,t,l,f)}if(c.length)r.issues.push({code:"unrecognized_keys",keys:c,input:t,inst:s,continue:!0});if(!e.length)return r;return Promise.all(e).then(()=>r)}var Wp=h("$ZodObject",(e,t)=>{E.init(e,t);let r=Object.getOwnPropertyDescriptor(t,"shape"),o=r?.get?r.get.raw:t.shape??{};if(o){let u=()=>{let p={...o};return Object.defineProperty(t,"shape",{value:p}),u.raw=p,p};u.raw=o,Object.defineProperty(t,"shape",{get:u})}let n=qe(()=>si(t));b(e,"propValues",(u)=>{let p=u.def.shape,l={};for(let f in p){let d=p[f]._zod;if(d.values){if(!Object.prototype.hasOwnProperty.call(l,f))Q(l,f,new Set);for(let m of d.values)l[f].add(m);if(d.optin!==void 0)l[f].add(void 0)}}return l});let s=Ce,i=t.catchall,c,a=J.memoizer;a?.attach(e),e._zod.parse=(u,p)=>{c??(c=n.value);let l=u.value;if(!s(l))return u.issues.push({expected:"object",code:"invalid_type",input:l,inst:e}),u;u.value=a?a.alloc(e,u,{},p):{};let f=[],d=c.shape,m=p?.abortEarly,g=u.issues.length;for(let y of c.allKeys){if(m&&u.issues.length!==g){if(se(u,g))break;g=u.issues.length}if(y==="__proto__")continue;let v=d[y],k=v._zod.optin,G=v._zod.optout,z=v._zod.run({value:l[y],issues:[]},p);if(z instanceof Promise)f.push(z.then((I)=>Nt(I,u,y,l,k,G)));else Nt(z,u,y,l,k,G)}if(!i)return f.length?Promise.all(f).then(()=>u):u;return ii(f,l,u,p,n.value,e,m===!0)}}),ci=h("$ZodObjectJIT",(e,t)=>{Wp.init(e,t);let r=e._zod.parse,o=qe(()=>si(t)),n=J.memoizer,s=(d)=>{let m=o.value,g=m.symbolKeys,y=new Sr(["payload","ctx"],{shape:d,inst:e,memo:n,syms:g}),v=(I)=>`shape[${I}]._zod.run({ value: input[${I}], issues: [] }, ctx)`,k=(I,S)=>`
|
|
7
|
-
let ${I}_ab = false;
|
|
8
|
-
for (let i = 0; i < ${I}.issues.length; i++) {
|
|
9
|
-
const iss = ${I}.issues[i];
|
|
10
|
-
iss.path = iss.path ? [${S}, ...iss.path] : [${S}];
|
|
11
|
-
payload.issues.push(iss);
|
|
12
|
-
if (iss.continue !== true) ${I}_ab = true;
|
|
13
|
-
}
|
|
14
|
-
if (${I}_ab && ctx && ctx.abortEarly) {
|
|
15
|
-
payload.value = newResult;
|
|
16
|
-
return payload;
|
|
17
|
-
}`;y.write("const input = payload.value;");let G=Object.create(null),z=0;for(let I of m.allKeys)G[I]=`key_${z++}`;y.write(n?"const newResult = memo.alloc(inst, payload, {}, ctx);":"const newResult = {};");for(let I of m.allKeys){if(I==="__proto__")continue;let S=G[I],q=typeof I==="symbol"?`syms[${g.indexOf(I)}]`:Yo(I),ir=`${q} in input`,Jo=d[I],cr=Jo?._zod?.optin,Vo=cr!==void 0,Qu=Jo?._zod?.optout==="optional";if(y.write(`const ${S} = ${v(q)};`),Vo&&Qu){let ep=cr==="optional"?`${S}_present`:`${S}.value !== undefined || ${S}_present`;y.write(`
|
|
18
|
-
const ${S}_present = ${ir};
|
|
19
|
-
if (!${S}.issues.length || ${S}_present) {
|
|
20
|
-
if (${S}.issues.length) {${k(S,q)}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (${ep}) {
|
|
24
|
-
newResult[${q}] = ${S}.value;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
`)}else if(!Vo)y.write(`
|
|
29
|
-
const ${S}_present = ${ir};
|
|
30
|
-
if (${S}.issues.length) {${k(S,q)}
|
|
31
|
-
}
|
|
32
|
-
if (!${S}_present && !${S}.issues.length) {
|
|
33
|
-
payload.issues.push({
|
|
34
|
-
code: "invalid_type",
|
|
35
|
-
expected: "nonoptional",
|
|
36
|
-
input: undefined,
|
|
37
|
-
path: [${q}]
|
|
38
|
-
});
|
|
39
|
-
if (ctx && ctx.abortEarly) {
|
|
40
|
-
payload.value = newResult;
|
|
41
|
-
return payload;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
if (${S}_present) {
|
|
46
|
-
newResult[${q}] = ${S}.value;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
`);else if(y.write(`
|
|
50
|
-
if (${S}.issues.length) {${k(S,q)}
|
|
51
|
-
}
|
|
52
|
-
`),cr==="defaulted")y.write(`newResult[${q}] = ${S}.value;`);else y.write(`
|
|
53
|
-
if (${S}.value !== undefined || ${ir}) {
|
|
54
|
-
newResult[${q}] = ${S}.value;
|
|
55
|
-
}
|
|
56
|
-
`)}return y.write("payload.value = newResult;"),y.write("return payload;"),y.compile()},i,c=Ce,a=!J.jitless,p=a&&en.value,l=t.catchall,f;e._zod.parse=(d,m)=>{f??(f=o.value);let g=d.value;if(!c(g))return d.issues.push({expected:"object",code:"invalid_type",input:g,inst:e}),d;if(a&&p&&m?.async===!1&&m.jitless!==!0){if(!i)i=s(t.shape);if(d=i(d,m),!l)return d;return ii([],g,d,m,f,e,m?.abortEarly===!0)}return r(d,m)}});function gs(e,t,r,o){for(let s of e)if(s.issues.length===0)return t.value=s.value,t;let n=e.filter((s)=>!se(s));if(n.length===1)return t.value=n[0].value,n[0];return t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map((s)=>s.issues.map((i)=>xe(i,o,te())))}),t}var Rr=h("$ZodUnion",(e,t)=>{E.init(e,t),b(e,"optin",(o)=>o.def.options.some((n)=>n._zod.optin==="defaulted")?"defaulted":o.def.options.some((n)=>n._zod.optin!==void 0)?"optional":void 0),b(e,"optout",(o)=>o.def.options.some((n)=>n._zod.optout==="optional")?"optional":void 0),b(e,"values",(o)=>{if(o.def.options.every((n)=>n._zod.values))return new Set(o.def.options.flatMap((n)=>Array.from(n._zod.values)));return}),b(e,"pattern",(o)=>{if(o.def.options.every((n)=>n._zod.pattern)){let n=o.def.options.map((s)=>s._zod.pattern);return new RegExp(`^(${n.map((s)=>vt(s.source)).join("|")})$`)}return});let r=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(o,n)=>{if(r)return r(o,n);let s=!1,i=[];for(let c of t.options){let a=c._zod.run({value:o.value,issues:[]},n);if(a instanceof Promise)i.push(a),s=!0;else{if(a.issues.length===0)return a;i.push(a)}}if(!s)return gs(i,o,e,n);return Promise.all(i).then((c)=>gs(c,o,e,n))}});function Up(e){let t=new Map;for(let r of e.options){let o=r._zod.propValues?.[e.discriminator];if(!o||o.size===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(r)}"`);for(let n of o)if(t.has(n)){if(n!==void 0)throw Error(`Duplicate discriminator value "${String(n)}"`);t.set(n,null)}else t.set(n,r)}return t}var ai=h("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Rr.init(e,t);let r=e._zod.parse;b(e,"propValues",(n)=>{let s={},i=0;for(let c of n.def.options){let a=c._zod.propValues;if(!a||Object.keys(a).length===0)throw Error(`Invalid discriminated union option at index "${n.def.options.indexOf(c)}"`);if(a[n.def.discriminator]?.has(void 0))i++;for(let[u,p]of Object.entries(a)){if(!Object.prototype.hasOwnProperty.call(s,u))Q(s,u,new Set);for(let l of p)s[u].add(l)}}if(!n.def.unionFallback&&i>1)s[n.def.discriminator]?.delete(void 0);return s}),t.options.forEach((n,s)=>{let i=Xe(n._zod.def);if(i&&!Object.prototype.hasOwnProperty.call(i,t.discriminator))throw Error(`Invalid discriminated union option at index "${s}"`)});let o=qe(()=>Up(t));e._zod.parse=(n,s)=>{let i=n.value;if(!Ce(i))return n.issues.push({code:"invalid_type",expected:"object",input:i,inst:e}),n;let c=i?.[t.discriminator],a=o.value.get(c);if(a&&(c!==void 0||s.direction!=="backward"))return a._zod.run(n,s);if(t.unionFallback||s.direction==="backward")return r(n,s);return n.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,options:Array.from(o.value.keys()).filter((u)=>o.value.get(u)!==null),input:i,path:[t.discriminator],inst:e}),n}}),ui=h("$ZodIntersection",(e,t)=>{E.init(e,t),e._zod.parse=(r,o)=>{let n=r.value,s=t.left._zod.run({value:n,issues:[]},o),i=t.right._zod.run({value:n,issues:[]},o);if(s instanceof Promise||i instanceof Promise)return Promise.all([s,i]).then(([a,u])=>ys(r,a,u));return ys(r,s,i)}});function Pr(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(Ie(e)&&Ie(t)){let r=Object.keys(t),o=Object.keys(e).filter((s)=>r.indexOf(s)!==-1),n={...e,...t};if(Object.prototype.hasOwnProperty.call(n,"__proto__"))delete n.__proto__;for(let s of o){if(s==="__proto__")continue;let i=Pr(e[s],t[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};n[s]=i.data}return{valid:!0,data:n}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let o=0;o<e.length;o++){let n=e[o],s=t[o],i=Pr(n,s);if(!i.valid)return{valid:!1,mergeErrorPath:[o,...i.mergeErrorPath]};r.push(i.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function ys(e,t,r){let o=new Map,n,s=new Map,i=(u,p)=>{let l;if(u.code==="unrecognized_keys"&&!u.path?.length)n??(n=u),l=u.keys;else if(u.code==="invalid_key"&&u.origin==="record"&&u.path?.length===1){let f=String(u.path[0]);if(!s.has(f))s.set(f,u);l=[f]}else return!1;for(let f of l){if(!o.has(f))o.set(f,{});o.get(f)[p]=!0}return!0};for(let u of t.issues)if(!i(u,"l"))e.issues.push(u);for(let u of r.issues)if(!i(u,"r"))e.issues.push(u);let c=[...o].filter(([,u])=>u.l&&u.r).map(([u])=>u);if(c.length){let u=n?c.filter((p)=>n.keys.includes(p)):[];if(u.length)e.issues.push({...n,keys:u});for(let p of c)if(!u.includes(p)&&s.has(p))e.issues.push(s.get(p))}let a=Pr(t.value,r.value);if(!a.valid){if(se(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`)}return e.value=a.data,e}var pi=h("$ZodEnum",(e,t)=>{E.init(e,t);let r=Ke(t.entries),o=new Set(r);e._zod.values=o,b(e,"pattern",(n)=>{let s=Ke(n.def.entries).filter((i)=>tn.has(typeof i));return new RegExp(s.length?`^(${s.map((i)=>ye(i.toString())).join("|")})$`:"^[^\\s\\S]$")}),e._zod.parse=(n,s)=>{let i=n.value;if(o.has(i))return n;return n.issues.push({code:"invalid_value",values:r,input:i,inst:e}),n}}),li=h("$ZodLiteral",(e,t)=>{E.init(e,t);let r=new Set(t.values);e._zod.values=r,b(e,"pattern",(o)=>{let n=o.def.values;return new RegExp(n.length?`^(${n.map((s)=>typeof s==="string"?ye(s):s?ye(s.toString()):String(s)).join("|")})$`:"^[^\\s\\S]$")}),e._zod.parse=(o,n)=>{let s=o.value;if(r.has(s))return o;return o.issues.push({code:"invalid_value",values:t.values,input:s,inst:e}),o}});var fi=h("$ZodTransform",(e,t)=>{E.init(e,t),e._zod.optin="optional",J.memoizer?.guard(e),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new Ye(e.constructor.name);let n=t.transform(r.value,r);if(o.async)return(n instanceof Promise?n:Promise.resolve(n)).then((i)=>(r.value=i,r));if(n instanceof Promise)throw new ie;return r.value=n,r}});function xs(e,t){return e.value=t.issues.length?void 0:t.value,e}var Cr=h("$ZodOptional",(e,t)=>{E.init(e,t),b(e,"optin",(r)=>r.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),e._zod.optout="optional",b(e,"values",(r)=>{let o=r.def.innerType._zod.values;return o?new Set([...o,void 0]):void 0}),b(e,"pattern",(r)=>{let o=r.def.innerType._zod.pattern;return o?new RegExp(`^(${vt(o.source)})?$`):void 0}),e._zod.parse=(r,o)=>{if(r.value===void 0){if(t.innerType._zod.optin!=="defaulted")return r;let n=t.innerType._zod.run({value:r.value,issues:[]},o);if(n instanceof Promise)return n.then((s)=>xs(r,s));return xs(r,n)}return t.innerType._zod.run(r,o)}}),di=h("$ZodExactOptional",(e,t)=>{Cr.init(e,t),b(e,"values",(r)=>r.def.innerType._zod.values),b(e,"pattern",(r)=>r.def.innerType._zod.pattern),e._zod.parse=(r,o)=>t.innerType._zod.run(r,o)}),hi=h("$ZodNullable",(e,t)=>{E.init(e,t),b(e,"optin",(r)=>r.def.innerType._zod.optin),b(e,"optout",(r)=>r.def.innerType._zod.optout),b(e,"pattern",(r)=>{let o=r.def.innerType._zod.pattern;return o?new RegExp(`^(${vt(o.source)}|null)$`):void 0}),b(e,"values",(r)=>r.def.innerType._zod.values?new Set([...r.def.innerType._zod.values,null]):void 0),e._zod.parse=(r,o)=>{if(r.value===null)return r;return t.innerType._zod.run(r,o)}}),mi=h("$ZodDefault",(e,t)=>{E.init(e,t),e._zod.optin="defaulted",b(e,"values",(r)=>r.def.innerType._zod.values),e._zod.parse=(r,o)=>{if(o.direction==="backward")return t.innerType._zod.run(r,o);if(r.value===void 0)return r.value=t.defaultValue,r;let n=t.innerType._zod.run(r,o);if(n instanceof Promise)return n.then((s)=>vs(s,t));return vs(n,t)}});function vs(e,t){if(e.value===void 0)e.value=t.defaultValue;return e}var gi=h("$ZodPrefault",(e,t)=>{E.init(e,t),e._zod.optin="defaulted",b(e,"values",(r)=>r.def.innerType._zod.values),e._zod.parse=(r,o)=>{if(o.direction==="backward")return t.innerType._zod.run(r,o);if(r.value===void 0)r.value=t.defaultValue;return t.innerType._zod.run(r,o)}}),yi=h("$ZodNonOptional",(e,t)=>{E.init(e,t),b(e,"values",(r)=>{let o=r.def.innerType._zod.values;return o?new Set([...o].filter((n)=>n!==void 0)):void 0}),e._zod.parse=(r,o)=>{let n=t.innerType._zod.run(r,o);if(n instanceof Promise)return n.then((s)=>ws(s,e));return ws(n,e)}});function ws(e,t){if(!e.issues.length&&e.value===void 0)e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t});return e}function _s(e,t,r,o){if(!t.issues.length){if(e.value=t.value,t.memo)e.memo=!0;return e}return e.value=r.catchValue({...t,value:e.value,error:{issues:t.issues.map((n)=>xe(n,o,te()))},input:e.value}),e}var xi=h("$ZodCatch",(e,t)=>{E.init(e,t),b(e,"optin",(r)=>r.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),b(e,"optout",(r)=>r.def.innerType._zod.optout),b(e,"values",(r)=>r.def.innerType._zod.values),e._zod.parse=(r,o)=>{if(o.direction==="backward")return t.innerType._zod.run(r,o);let n=t.innerType._zod.run({value:r.value,issues:[]},o);if(n instanceof Promise)return n.then((s)=>_s(r,s,t,o));return _s(r,n,t,o)}});var vi=h("$ZodPipe",(e,t)=>{E.init(e,t),b(e,"values",(r)=>r.def.in._zod.values),b(e,"optin",(r)=>r.def.in._zod.optin),b(e,"optout",(r)=>r.def.out._zod.optout),b(e,"propValues",(r)=>r.def.in._zod.propValues),e._zod.parse=(r,o)=>{if(o.direction==="backward"){let s=t.out._zod.run(r,o);if(s instanceof Promise)return s.then((i)=>At(i,t.in,o));return At(s,t.in,o)}let n=t.in._zod.run(r,o);if(n instanceof Promise)return n.then((s)=>At(s,t.out,o));return At(n,t.out,o)}});function At(e,t,r){if(e.issues.some((o)=>o.code!=="unrecognized_keys"))return e.aborted=!0,e;return t._zod.run({value:e.value,issues:e.issues},r)}var wi=h("$ZodReadonly",(e,t)=>{E.init(e,t),b(e,"propValues",(r)=>r.def.innerType._zod.propValues),b(e,"values",(r)=>r.def.innerType._zod.values),b(e,"optin",(r)=>r.def.innerType?._zod?.optin),b(e,"optout",(r)=>r.def.innerType?._zod?.optout),e._zod.parse=(r,o)=>{if(o.direction==="backward")return t.innerType._zod.run(r,o);let n=t.innerType._zod.run(r,o);if(n instanceof Promise)return n.then(bs);return bs(n)}});function bs(e){if(!e.memo)e.value=Object.freeze(e.value);return e}var _i=h("$ZodCustom",(e,t)=>{T.init(e,t),E.init(e,t),e._zod.parse=(r,o)=>r,e._zod.check=(r)=>{let o=r.value,n=t.fn(o);if(n instanceof Promise)return n.then((s)=>ks(s,r,o,e));ks(n,r,o,e);return}});function ks(e,t,r,o){if(!e){let n={code:"custom",input:r,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};if(o._zod.def.params)n.params=o._zod.def.params;t.issues.push($e(n))}}class ki extends Error{constructor(){super("Cannot parse a reference cycle that closes through a transform");this.name="ZodCyclicError"}}var Ar="~memo",bi=[];function $i(e){return e!==null&&typeof e==="object"}function Ir(e){return e.map((t)=>t.path?{...t,path:t.path.slice()}:{...t})}var zi=new WeakMap,tt=0,Mt=1,rt=2;function Wt(e,t,r){let o=zi.get(e);if(o!==void 0)return o?rt:tt;if(t.has(e))return rt;t.add(e);let n=tt,s=(p)=>{if(n!==rt&&p?._zod){let l=Wt(p,t,r);if(l>n)n=l}},i=(p,l)=>{let f=tt;for(let d of Reflect.ownKeys(p)){let m=Object.getOwnPropertyDescriptor(p,d);if(l&&!m.enumerable)continue;let g=m.get?Mt:m.value?._zod?Wt(m.value,t,r):tt;if(g>f)f=g}return f},c=(p)=>{if(p>n)n=p},a=e._zod.def,u=a.type;switch(u){case"object":{let p=Xe(a);c(p?i(p,!0):Mt),s(a.catchall);break}case"array":s(a.element);break;case"tuple":for(let p of a.items)s(p);s(a.rest);break;case"record":case"map":s(a.keyType),s(a.valueType);break;case"set":s(a.valueType);break;case"union":for(let p of a.options)s(p);break;case"intersection":s(a.left),s(a.right);break;case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":s(a.innerType);break;case"pipe":s(a.in),s(a.out);break;case"function":s(a.input),s(a.output);break;case"lazy":{let p=a._cachedInner??(r?e._zod.innerType:void 0);c(p?Wt(p,t,!1):Mt);break}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":break;default:for(let p in a){let l=Object.getOwnPropertyDescriptor(a,p);if(!l||l.get)continue;let f=l.value;if(!f||typeof f!=="object")continue;if(f._zod)s(f);else if(Array.isArray(f))for(let d of f)s(d)}}return t.delete(e),Bp(e,n)}function Bp(e,t){if(t!==Mt)zi.set(e,t===rt);return t}function Jp(e,t){let r=e.buckets.get(t);if(!r)r=new WeakMap,e.buckets.set(t,r);return r}var Ft,Lt=[],Vp={alloc(e,t,r){let o=Ft;if(!o)return r;Ft=void 0;let n={value:r,issues:null};return o.set(t.value,n),Lt.push(n),r},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let r=e._zod.parse,o=(n,s)=>{if(s.direction!=="backward"&&Hp(s,n.value))throw new ki;return r(n,s)};if(e._zod.parse=o,e._zod.run===r)e._zod.run=o})},attach(e){var t;let r,o=!1,n,s;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let i=e._zod.parse,c=(a,u)=>{if(r===void 0){let v=Wt(e,new Set,!1);if(v===tt){if(e._zod.parse=i,e._zod.run===c)e._zod.run=i;return i(a,u)}if(v===rt||o)r=!0;else o=!0}let p=a.value;if(!$i(p))return i(a,u);let l=u[Ar];if(!l)l={buckets:new WeakMap,backEdges:void 0},u[Ar]=l;let f;if(n===u)f=s;else f=Jp(l,e),n=u,s=f;let d=f.get(p);if(d){if(a.value=d.value,d.issues){if(d.issues.length)a.issues.push(...Ir(d.issues))}else a.memo=!0,l.backEdges??(l.backEdges=new WeakSet),l.backEdges.add(d.value);return a}Ft=f;let m=Lt.length,g=i(a,u);Ft=void 0;let y=Lt.length>m?Lt.pop():void 0;if(g instanceof Promise)return g.then((v)=>{if(y)y.issues=v.issues.length?Ir(v.issues):bi;return v});if(y)y.issues=g.issues.length?Ir(g.issues):bi;return g};if(e._zod.parse=c,e._zod.run===i)e._zod.run=c})}};function Si(){return Vp}function Hp(e,t){let r=e[Ar]?.backEdges;return r!==void 0&&$i(t)&&r.has(t)}var Kp=()=>{let e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function t(s){return e[s]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",currency_code:"currency code",credit_card:"credit card number",iban:"IBAN",jwt:"JWT",template_literal:"input"},o={nan:"NaN"};function n(s,i){if(s==="number"&&typeof i==="number"&&!Number.isFinite(i))return String(i);return o[s]??s}return(s)=>{switch(s.code){case"invalid_type":{let i=n(s.expected),c=cn(s.input),a=n(c,s.input);return`Invalid input: expected ${i}, received ${a}`}case"invalid_value":if(s.values.length===1)return`Invalid input: expected ${fr(s.values[0])}`;return`Invalid option: expected one of ${ur(s.values,"|")}`;case"too_big":{let i=s.exact?"exactly ":s.inclusive?"<=":"<",c=t(s.origin);if(c)return`Too big: expected ${s.origin??"value"} to have ${i}${s.maximum.toString()} ${c.unit??"elements"}`;return`Too big: expected ${s.origin??"value"} to be ${i}${s.maximum.toString()}`}case"too_small":{let i=s.exact?"exactly ":s.inclusive?">=":">",c=t(s.origin);if(c)return`Too small: expected ${s.origin} to have ${i}${s.minimum.toString()} ${c.unit}`;return`Too small: expected ${s.origin} to be ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;if(i.format==="starts_with")return`Invalid string: must start with "${i.prefix}"`;if(i.format==="ends_with")return`Invalid string: must end with "${i.suffix}"`;if(i.format==="includes")return`Invalid string: must include "${i.includes}"`;if(i.format==="regex")return`Invalid string: must match pattern ${i.pattern}`;return`Invalid ${r[i.format]??s.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${s.divisor}`;case"unrecognized_keys":return`Unrecognized key${s.keys.length>1?"s":""}: ${ur(s.keys,", ")}`;case"invalid_key":return`Invalid key in ${s.origin}`;case"invalid_union":if(s.options&&Array.isArray(s.options)&&s.options.length>0)return`Invalid discriminator value. Expected ${s.options.map((c)=>`'${c}'`).join(" | ")}`;if(s.inclusive===!1)return"Invalid input: more than one option matched";return"Invalid input";case"invalid_element":return`Invalid value in ${s.origin}`;default:return"Invalid input"}}};function Tr(){return{localeError:Kp()}}var Pi;class Ei{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let r=t[0];if(this._map.set(e,r),r&&typeof r==="object"&&"id"in r)this._idmap.set(r.id,e);return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);if(t&&typeof t==="object"&&"id"in t)this._idmap.delete(t.id);return this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let r={...this.get(t)??{}};delete r.id;let o={...r,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}}function Gp(){return new Ei}(Pi=globalThis).__zod_globalRegistry??(Pi.__zod_globalRegistry=Gp());var ze=globalThis.__zod_globalRegistry;function Ut(e){if(e.checks)e.checks=[...e.checks];return e}function Zi(e,t){return new e(Ut({type:"string",...x(t)}))}function Oi(e,t){return new e(Ut({type:"string",coerce:!0,...x(t)}))}function Ri(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...x(t)})}function Ci(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...x(t)})}function Nr(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...x(t)})}function Ii(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...x(t)})}function Ai(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...x(t)})}function Ti(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...x(t)})}function jr(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...x(t)})}function Ni(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...x(t)})}function ji(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...x(t)})}function Di(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...x(t)})}function Fi(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...x(t)})}function Li(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...x(t)})}function Mi(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...x(t)})}function Wi(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...x(t)})}function Ui(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...x(t)})}function Bi(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...x(t)})}function Ji(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...x(t)})}function Vi(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...x(t)})}function Hi(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...x(t)})}function Ki(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...x(t)})}function Gi(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...x(t)})}function qi(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...x(t)})}function Xi(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...x(t)})}function Yi(e,t){return new e({type:"string",format:"date",check:"string_format",...x(t)})}function Qi(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...x(t)})}function ec(e,t){return new e({type:"string",format:"duration",check:"string_format",...x(t)})}function tc(e,t){return new e(Ut({type:"number",checks:[],...x(t)}))}function rc(e,t){return new e(Ut({type:"number",coerce:!0,checks:[],...x(t)}))}function oc(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...x(t)})}function nc(e,t){return new e({type:"boolean",...x(t)})}function sc(e,t){return new e({type:"boolean",coerce:!0,...x(t)})}function ic(e,t){return new e({type:"bigint",coerce:!0,...x(t)})}function cc(e){return new e({type:"unknown"})}function ac(e,t){return new e({type:"never",...x(t)})}function uc(e,t){return new e({type:"date",coerce:!0,...x(t)})}function Ae(e,t){return new $r({check:"less_than",...x(t),value:e,inclusive:!1})}function le(e,t){return new $r({check:"less_than",...x(t),value:e,inclusive:!0})}function Te(e,t){return new zr({check:"greater_than",...x(t),value:e,inclusive:!1})}function fe(e,t){return new zr({check:"greater_than",...x(t),value:e,inclusive:!0})}function ot(e,t){return new es({check:"multiple_of",...x(t),value:e})}function Bt(e,t){return new rs({check:"max_length",...x(t),maximum:e})}function Ne(e,t){return new os({check:"min_length",...x(t),minimum:e})}function Jt(e,t){return new ns({check:"length_equals",...x(t),length:e})}function Dr(e,t){return new ss({check:"string_format",format:"regex",...x(t),pattern:e})}function Fr(e){return new is({check:"string_format",format:"lowercase",...x(e)})}function Lr(e){return new cs({check:"string_format",format:"uppercase",...x(e)})}function Mr(e,t){return new as({check:"string_format",format:"includes",...x(t),includes:e})}function Wr(e,t){return new us({check:"string_format",format:"starts_with",...x(t),prefix:e})}function Ur(e,t){return new ps({check:"string_format",format:"ends_with",...x(t),suffix:e})}function ve(e){return new ls({check:"overwrite",tx:e})}function Br(e){return ve((t)=>t.normalize(e))}function Jr(){return ve((e)=>e.trim())}function Vr(){return ve((e)=>e.toLowerCase())}function Hr(){return ve((e)=>e.toUpperCase())}function Kr(){return ve((e)=>Qo(e))}function pc(e,t,r){return new e({type:"array",element:t,...x(r)})}function lc(e,t,r){return new e({type:"custom",check:"custom",fn:t,...x(r)})}function fc(e,t){let r=qp((o)=>(o.addIssue=(n)=>{if(typeof n==="string")o.issues.push($e(n,o.value,r._zod.def));else{let s=n;if(s.fatal)s.continue=!1;if(s.code??(s.code="custom"),!("input"in s))s.input=o.value;s.inst??(s.inst=r),s.continue??(s.continue=!r._zod.def.abort),o.issues.push($e(s))}},e(o.value,o)),t);return r}function qp(e,t){let r=new T({check:"custom",...x(t)});return r._zod.check=e,r}function nt(e,...t){for(let r of t)for(let o of Reflect.ownKeys(r))if(Object.prototype.propertyIsEnumerable.call(r,o))Q(e,o,r[o]);return e}function qr(e){let t=e?.target??"draft-2020-12";if(t==="draft-4")t="draft-04";if(t==="draft-7")t="draft-07";return{processors:e.processors??{},metadataRegistry:e?.metadata??ze,target:t,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,t,r,o,n){let s=typeof t.unrepresentable==="function"?t.unrepresentable({zodSchema:e,path:o.path,message:n}):t.unrepresentable;if(s==="any")return!1;if(s===void 0||s==="throw")throw Error(n);return Object.assign(r,s),!0}function A(e,t,r={path:[],schemaPath:[]}){var o;let n=e._zod.def,s=t.seen.get(e);if(s){if(s.count++,r.schemaPath.includes(e))s.cycle=r.path;return s.schema}let i={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,i),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;let c=e._zod.toJSONSchema?.();if(c)i.schema=c;else{let p={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,p);else{let f=i.schema,d=t.processors[n.type];if(!d)throw Error(`[toJSONSchema]: Non-representable type encountered: ${n.type}`);d(e,t,f,p)}let l=e._zod.parent;if(l){if(!i.ref)i.ref=l;A(l,t,p),t.seen.get(l).isParent=!0}}let a=t.metadataRegistry.get(e);if(a)nt(i.schema,a);if(t.io==="input"&&L(e))delete i.schema.examples,delete i.schema.default;if(t.io==="input"&&"_prefault"in i.schema)(o=i.schema).default??(o.default=i.schema._prefault);return delete i.schema._prefault,t.seen.get(e).schema}function dc(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function Xr(e,t){let r=e.seen.get(t);if(!r)throw Error("Unprocessed schema. This is a bug in Zod.");if(e.external&&e.sharedDefsExtractedFor===e.external)return;let o=new Map;for(let i of e.seen.entries()){let c=e.metadataRegistry.get(i[0])?.id;if(c){let a=o.get(c);if(a&&a!==i[0])throw Error(`Duplicate schema id "${c}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);o.set(c,i[0])}}let n=(i)=>{let c=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let l=e.external.registry.get(i[0])?.id,f=e.external.uri??((m)=>m);if(l)return{ref:f(l)};let d=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=d,{defId:d,ref:`${f("__shared")}#/${c}/${dc(d)}`}}let a="#",u=`${a}/${c}/`;if(i[1]===r&&!i[1].schema.id)return{ref:a};let p=i[1].schema.id??`__schema${e.counter++}`;return{defId:p,ref:u+dc(p)}},s=(i)=>{if(i[1].schema.$ref)return;let c=i[1],{ref:a,defId:u}=n(i);if(c.def={...c.schema},u)c.defId=u;let p=c.schema;for(let l in p)delete p[l];p.$ref=a};if(e.cycles==="throw")for(let i of e.seen.entries()){let c=i[1];if(c.cycle)throw Error(`Cycle detected: #/${c.cycle?.join("/")}/<root>
|
|
57
|
-
|
|
58
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let i of e.seen.entries()){let c=i[1];if(t===i[0]){s(i);continue}if(e.external){let u=e.external.registry.get(i[0])?.id;if(t!==i[0]&&u){s(i);continue}}if(e.metadataRegistry.get(i[0])?.id){s(i);continue}if(c.cycle){s(i);continue}if(c.count>1){if(e.reused==="ref")s(i)}}if(e.external)e.sharedDefsExtractedFor=e.external}function gc(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let r=[];for(let o of t){if(!o||typeof o!=="object")return;gc(o);let n=Object.keys(o);if(n.length!==1||n[0]!=="type")return;let s=o.type;for(let i of Array.isArray(s)?s:[s]){if(typeof i!=="string")return;if(!r.includes(i))r.push(i)}}delete e.anyOf,e.type=r.length===1?r[0]:r}var yc=new Set(["type","properties","required","additionalProperties"]),hc=["oneOf","anyOf"];function mc(e){let t=e.additionalProperties;if(t===void 0||t===!1||typeof t!=="object"||t===null)return null;return Object.keys(t).length?t:null}function Gr(e){let t=[];for(let s of e){if(typeof s!=="object"||s.type!=="object")return null;for(let i in s)if(!yc.has(i))return null;t.push(s)}let r={},o=new Set;for(let s of t){for(let i in s.properties){if(Object.prototype.hasOwnProperty.call(r,i))continue;let c=[];for(let u of t){let p=u.properties?.[i]??mc(u);if(p===null||p===void 0)continue;if(!c.some((l)=>JSON.stringify(l)===JSON.stringify(p)))c.push(p)}let a=c.length===1?c[0]:Gr(c)??{allOf:c};Q(r,i,a)}for(let i of s.required??[])o.add(i)}let n={type:"object",properties:r};if(o.size)n.required=[...o];if(t.every((s)=>s.additionalProperties===!1))n.additionalProperties=!1;else{let s=[];for(let i of t){let c=mc(i);if(c&&!s.some((a)=>JSON.stringify(a)===JSON.stringify(c)))s.push(c)}if(s.length===1)n.additionalProperties=s[0];else if(s.length>1)n.additionalProperties={allOf:s}}return n}function Xp(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let n of yc)if(n in e)return;let r=t.filter((n)=>hc.some((s)=>Array.isArray(n[s]))),o=null;if(!r.length)o=Gr(t);else{let n=r[0],s=hc.find((a)=>Array.isArray(n[a]));if(Object.keys(n).length!==1)return;let i=t.filter((a)=>a!==n),c=n[s].map((a)=>Gr([...i,a]));if(c.some((a)=>!a))return;o={[s]:c}}if(!o)return;delete e.allOf,nt(e,o)}function Yr(e,t){let r=e.seen.get(t);if(!r)throw Error("Unprocessed schema. This is a bug in Zod.");let o=(c)=>{let a=e.seen.get(c);if(a.ref===null)return;let u=a.def??a.schema,p={...u},l=a.ref;if(a.ref=null,l){o(l);let d=e.seen.get(l),m=d.schema;if(m.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"))u.allOf=u.allOf??[],u.allOf.push(m);else nt(u,m);if(nt(u,p),c._zod.parent===l)for(let y in u){if(y==="$ref"||y==="allOf")continue;if(!(y in p))delete u[y]}if(m.$ref&&d.def)for(let y in u){if(y==="$ref"||y==="allOf")continue;if(y in d.def&&JSON.stringify(u[y])===JSON.stringify(d.def[y]))delete u[y]}}let f=c._zod.parent;if(f&&f!==l){o(f);let d=e.seen.get(f);if(d?.schema.$ref){if(u.$ref=d.schema.$ref,d.def)for(let m in u){if(m==="$ref"||m==="allOf")continue;if(m in d.def&&JSON.stringify(u[m])===JSON.stringify(d.def[m]))delete u[m]}}}e.override({zodSchema:c,jsonSchema:u,path:a.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let c of[...e.seen.entries()].reverse())o(c[0]);if(e.target!=="openapi-3.0")for(let c of e.seen.entries())gc(c[1].def??c[1].schema);for(let c of e.deferred)c();if(e.intersections.length){let c=new Map;for(let a of e.seen.values())for(let u of[a.schema,a.def]){let p=u?.allOf;if(!Array.isArray(p))continue;let l=c.get(p);if(l)l.push(u);else c.set(p,[u])}for(let a of e.intersections)for(let u of c.get(a)??[])Xp(u)}}let n={};if(e.target==="draft-2020-12")n.$schema="https://json-schema.org/draft/2020-12/schema";else if(e.target==="draft-07")n.$schema="http://json-schema.org/draft-07/schema#";else if(e.target==="draft-04")n.$schema="http://json-schema.org/draft-04/schema#";else if(e.target==="openapi-3.0");if(e.external?.uri){let c=e.external.registry.get(t)?.id;if(!c)throw Error("Schema is missing an `id` property");n.$id=e.external.uri(c)}nt(n,r.defId?r.schema:r.def??r.schema);let s=e.metadataRegistry.get(t)?.id;if(s!==void 0&&n.id===s)delete n.id;let i=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let c of e.seen.entries()){let a=c[1];if(a.def&&a.defId){if(a.def.id===a.defId)delete a.def.id;Q(i,a.defId,a.def)}}if(e.external)e.sharedEmitDoneFor=e.external;if(e.external);else if(Object.keys(i).length>0)if(e.target==="draft-2020-12")n.$defs=i;else n.definitions=i;try{let c=JSON.parse(JSON.stringify(n));return Object.defineProperty(c,"~standard",{value:{...t["~standard"],jsonSchema:{input:st(t,"input",e.processors),output:st(t,"output",e.processors)}},enumerable:!1,writable:!1}),c}catch(c){throw Error("Error converting schema to JSON.")}}function L(e,t){let r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);let o=e._zod.def;if(o.type==="transform")return!0;if(o.type==="array")return L(o.element,r);if(o.type==="set")return L(o.valueType,r);if(o.type==="lazy")return L(o.getter(),r);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 L(o.innerType,r);if(o.type==="intersection")return L(o.left,r)||L(o.right,r);if(o.type==="record"||o.type==="map")return L(o.keyType,r)||L(o.valueType,r);if(o.type==="pipe"){if(e._zod.traits.has("$ZodCodec"))return!0;return L(o.in,r)||L(o.out,r)}if(o.type==="object"){for(let n in o.shape)if(L(o.shape[n],r))return!0;return!1}if(o.type==="union"){for(let n of o.options)if(L(n,r))return!0;return!1}if(o.type==="tuple"){for(let n of o.items)if(L(n,r))return!0;if(o.rest&&L(o.rest,r))return!0;return!1}return!1}var xc=(e,t={})=>(r)=>{let o=qr({...r,processors:t});return A(e,o),Xr(o,e),Yr(o,e)},st=(e,t,r={})=>(o)=>{let{libraryOptions:n,target:s}=o??{},i=qr({...n??{},target:s,io:t,processors:r});return A(e,i),Xr(i,e),Yr(i,e)};var je=(e,t,r)=>{if(e[t]===void 0||r>e[t])e[t]=r},De=(e,t,r)=>{if(e[t]===void 0||r<e[t])e[t]=r},vc=(e,t)=>{je(e,"minimum",t),De(e,"maximum",t)},kc=(e,t)=>{if(e.multipleOf??(e.multipleOf=[]),!e.multipleOf.includes(t))e.multipleOf.push(t)},$c=(e,t)=>{e.patterns??(e.patterns=new Set),e.patterns.add(t)},zc=(e,t)=>{e.mime=e.mime?e.mime.filter((r)=>t.includes(r)):[...t]},Sc=(e,t)=>{if(e.format=t,t.includes("int"))e.isInt=!0},wc=(e,t)=>je(e,"minimum",t.minimum),_c=(e,t)=>De(e,"maximum",t.maximum),bc=(e)=>(t,r)=>{Sc(t,r.format);let[o,n]=e[r.format];je(t,"minimum",o),De(t,"maximum",n)},Yp={greater_than:(e,t)=>je(e,t.inclusive?"minimum":"exclusiveMinimum",t.value),less_than:(e,t)=>De(e,t.inclusive?"maximum":"exclusiveMaximum",t.value),multiple_of:(e,t)=>kc(e,t.value),number_format:bc(wt),bigint_format:bc(dr),min_length:wc,max_length:_c,length_equals:(e,t)=>vc(e,t.length),min_size:wc,max_size:_c,size_equals:(e,t)=>vc(e,t.size),string_format:(e,t)=>{if(Sc(e,t.format),t.pattern)$c(e,t.pattern);if(t.format==="base64"||t.format==="base64url")e.contentEncoding=t.format;if(t.local||t.precision===-1)e.laxFormat=!0},mime_type:(e,t)=>zc(e,t.mime)};function j(e){let t={},r=e._zod.def,o=e._zod.traits.has("$ZodCheck")?[e,...r.checks??[]]:r.checks??[];for(let s of o)Yp[s._zod.def.check]?.(t,s._zod.def);let n=e._zod.bag;if(n.minimum!==void 0)je(t,"minimum",n.minimum);if(n.exclusiveMinimum!==void 0)je(t,"exclusiveMinimum",n.exclusiveMinimum);if(n.maximum!==void 0)De(t,"maximum",n.maximum);if(n.exclusiveMaximum!==void 0)De(t,"exclusiveMaximum",n.exclusiveMaximum);if(n.multipleOf!==void 0)kc(t,n.multipleOf);if(n.format!==void 0){if(t.format??(t.format=n.format),n.format.includes("int"))t.isInt=!0}if(n.mime)zc(t,n.mime);for(let s of n.patterns??[])$c(t,s);return t}var Qp={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},el=new Map([[Zr,Mn],[Dt,Wn]]),tl=(e)=>el.get(e)??e,Pc=(e,t,r,o)=>{let n=r;n.type="string";let{minimum:s,maximum:i,format:c,patterns:a,contentEncoding:u,laxFormat:p}=j(e);if(typeof s==="number")n.minLength=s;if(typeof i==="number")n.maxLength=i;if(c){if(n.format=Qp[c]??c,n.format==="")delete n.format;if(c==="time"||p)delete n.format}if(u)n.contentEncoding=u;if(a&&a.size>0){let l=[...a].map(tl);if(l.length===1)n.pattern=l[0].source;else if(l.length>1)n.allOf=[...l.map((f)=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:f.source}))]}},Ec=(e,t,r,o)=>{let n=r,{minimum:s,maximum:i,multipleOf:c,exclusiveMaximum:a,exclusiveMinimum:u,isInt:p}=j(e);n.type=p?"integer":"number";let l=typeof u==="number"&&u>=(s??Number.NEGATIVE_INFINITY),f=typeof a==="number"&&a<=(i??Number.POSITIVE_INFINITY),d=t.target==="draft-04"||t.target==="openapi-3.0";if(l)if(d)n.minimum=u,n.exclusiveMinimum=!0;else n.exclusiveMinimum=u;else if(typeof s==="number")n.minimum=s;if(f)if(d)n.maximum=a,n.exclusiveMaximum=!0;else n.exclusiveMaximum=a;else if(typeof i==="number")n.maximum=i;if(c){let m=new Set;for(let v of c)if(Number.isFinite(v)&&v!==0)m.add(Math.abs(v));else re(e,t,n,o,`A multipleOf divisor of ${v} cannot be represented in JSON Schema`);let[g,...y]=m;if(g!==void 0)n.multipleOf=g;if(y.length)n.allOf=[...n.allOf??[],...y.map((v)=>({multipleOf:v}))]}},Zc=(e,t,r,o)=>{r.type="boolean"},Oc=(e,t,r,o)=>{re(e,t,r,o,"BigInt cannot be represented in JSON Schema")};var Rc=(e,t,r,o)=>{r.not={}};var Cc=(e,t,r,o)=>{},Ic=(e,t,r,o)=>{re(e,t,r,o,"Date cannot be represented in JSON Schema")},Ac=(e,t,r,o)=>{let n=e._zod.def,s=Ke(n.entries);if(s.length===0){r.not={};return}if(s.every((i)=>typeof i==="number"))r.type="number";if(s.every((i)=>typeof i==="string"))r.type="string";r.enum=s},Tc=(e,t,r,o)=>{let n=e._zod.def;if(n.values.length===0){r.not={};return}let s=[];for(let i of n.values)if(i===void 0){if(re(e,t,r,o,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof i==="bigint"){if(re(e,t,r,o,"BigInt literals cannot be represented in JSON Schema"))return;s.push(Number(i))}else s.push(i);if(s.length===0);else if(s.length===1){let i=s[0];if(r.type=i===null?"null":typeof i,t.target==="draft-04"||t.target==="openapi-3.0")r.enum=[i];else r.const=i}else{if(s.every((i)=>typeof i==="number"))r.type="number";if(s.every((i)=>typeof i==="string"))r.type="string";if(s.every((i)=>typeof i==="boolean"))r.type="boolean";if(s.every((i)=>i===null))r.type="null";r.enum=s}};var Nc=(e,t,r,o)=>{re(e,t,r,o,"Custom types cannot be represented in JSON Schema")};var jc=(e,t,r,o)=>{re(e,t,r,o,"Transforms cannot be represented in JSON Schema")};var Dc=(e,t,r,o)=>{let n=r,s=e._zod.def,{minimum:i,maximum:c}=j(e);if(typeof i==="number")n.minItems=i;if(typeof c==="number")n.maxItems=c;n.type="array",n.items=A(s.element,t,{...o,path:[...o.path,"items"]})};function Qr(e){let t=e._zod.def;if(t.type==="pipe"&&t.in._zod.traits.has("$ZodTransform"))return Qr(t.out);if(t.type==="catch")return Qr(t.innerType);return e._zod.optin}var Fc=(e,t,r,o)=>{let n=r,s=e._zod.def,i=s.shape;if(Object.getOwnPropertySymbols(i).length&&re(e,t,n,o,"Symbol keys cannot be represented in JSON Schema"))return;n.type="object",n.properties={};for(let u in i)Q(n.properties,u,A(i[u],t,{...o,path:[...o.path,"properties",u]}));let a=[];for(let u of Object.keys(i)){let p=s.shape[u];if(t.io==="input"?Qr(p)===void 0:p._zod.optout===void 0)a.push(u)}if(a.length>0)n.required=a;if(s.catchall?._zod.def.type==="never")n.additionalProperties=!1;else if(!s.catchall){if(t.io==="output")n.additionalProperties=!1}else if(s.catchall)n.additionalProperties=A(s.catchall,t,{...o,path:[...o.path,"additionalProperties"]})},Lc=(e,t,r,o)=>{let n=e._zod.def,s=n.inclusive===!1,i=n.options.map((c,a)=>A(c,t,{...o,path:[...o.path,s?"oneOf":"anyOf",a]}));if(s)r.oneOf=i;else r.anyOf=i},Mc=(e,t,r,o)=>{let n=e._zod.def,s=A(n.left,t,{...o,path:[...o.path,"allOf",0]}),i=A(n.right,t,{...o,path:[...o.path,"allOf",1]}),c=(u)=>("allOf"in u)&&Object.keys(u).length===1,a=[...c(s)?s.allOf:[s],...c(i)?i.allOf:[i]];r.allOf=a,t.intersections.push(a)};var Wc=(e,t,r,o)=>{let n=e._zod.def,s=A(n.innerType,t,o),i=t.seen.get(e);if(t.target==="openapi-3.0")i.ref=n.innerType,r.nullable=!0;else r.anyOf=[s,{type:"null"}]},Uc=(e,t,r,o)=>{let n=e._zod.def;A(n.innerType,t,o);let s=t.seen.get(e);s.ref=n.innerType},eo=Symbol();function Bc(e,t,r,o,n){let s=!1,i=JSON.stringify(e,(c,a)=>{if(typeof a!=="bigint")return a;return s=!0,null});if(!s)return JSON.parse(i);return re(t,r,o,n,"BigInt defaults cannot be represented in JSON Schema"),eo}var Jc=(e,t,r,o)=>{let n=e._zod.def;A(n.innerType,t,o);let s=t.seen.get(e);s.ref=n.innerType;let i=Bc(n.defaultValue,e,t,r,o);if(i!==eo)r.default=i},Vc=(e,t,r,o)=>{let n=e._zod.def;A(n.innerType,t,o);let s=t.seen.get(e);if(s.ref=n.innerType,t.io!=="input")return;let i=Bc(n.defaultValue,e,t,r,o);if(i!==eo)r._prefault=i},Hc=(e,t,r,o)=>{let n=e._zod.def;A(n.innerType,t,o);let s=t.seen.get(e);s.ref=n.innerType;let i;try{i=n.catchValue(void 0)}catch{re(e,t,r,o,"Dynamic catch values are not supported in JSON Schema");return}r.default=i},Kc=(e,t,r,o)=>{let n=e._zod.def,s=n.in._zod.traits.has("$ZodTransform"),i=t.io==="input"?s?n.out:n.in:n.out;A(i,t,o);let c=t.seen.get(e);c.ref=i},Gc=(e,t,r,o)=>{let n=e._zod.def;A(n.innerType,t,o);let s=t.seen.get(e);s.ref=n.innerType,r.readOnly=!0};var to=(e,t,r,o)=>{let n=e._zod.def;A(n.innerType,t,o);let s=t.seen.get(e);s.ref=n.innerType};var qc=new WeakSet([Object.prototype,Error.prototype]);function Vt(e,t,r){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let o=r(this);return Object.defineProperty(this,t,{value:o,configurable:!0,writable:!0}),o},set(o){Object.defineProperty(this,t,{value:o,configurable:!0,writable:!0})}})}var pl=(e,t)=>{hn.init(e,t),e.name="ZodError";let r=Object.getPrototypeOf(e);if(qc.has(r))return;qc.add(r),Vt(r,"format",(o)=>(n)=>gn(o,n)),Vt(r,"flatten",(o)=>(n)=>mn(o,n)),Vt(r,"addIssue",(o)=>(n)=>{o.issues.push(n),o.message=JSON.stringify(o.issues,Ge,2)}),Vt(r,"addIssues",(o)=>(n)=>{o.issues.push(...n),o.message=JSON.stringify(o.issues,Ge,2)}),Object.defineProperty(r,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}})};var V=h("ZodError",pl,void 0,{Parent:Error});var Xc=Zt(V),Yc=Ot(V),Qc=Rt(V),ea=Ct(V),ta=xn(V),ra=vn(V),oa=wn(V),na=_n(V),sa=bn(V),ia=kn(V),ca=$n(V),aa=zn(V);function fl(){if(!J.localeError)te(Tr())}function oo(){if(!J.memoizer)te({memoizer:Si()})}var O=h("ZodType",(e,t)=>(fl(),E.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(B(t,{checks:[...t.checks??[],...e.map((r)=>typeof r==="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return ne(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(nf(e,t))},superRefine(e,t){return this.check(sf(e,t))},overwrite(e){return this.check(ve(e))},optional(){return la(this)},exactOptional(){return Jl(this)},nullable(){return fa(this)},nullish(){return la(fa(this))},nonoptional(e){return Xl(this,e)},array(){return _(this)},or(e){return co([this,e])},and(e){return Ml(this,e)},transform(e){return da(this,Bl(e))},default(e){return Kl(this,e)},prefault(e){return ql(this,e)},catch(e){return Ql(this,e)},pipe(e){return da(this,e)},readonly(){return rf(this)},describe(e){let t=this.clone();return ze.add(t,{description:e}),t},meta(...e){if(e.length===0)return ze.get(this);let t=this.clone();return ze.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get "~standard"(){return St(this,"~standard",{...Er(this),jsonSchema:{input:st(this,"input"),output:st(this,"output")}})},set "~standard"(e){pe(this,"~standard",e)},parse:function e(t,r){return Xc(this,t,r,{callee:e})},parseAsync:async function e(t,r){return await Yc(this,t,r,{callee:e})},safeParse(e,t){return Qc(this,e,t)},async safeParseAsync(e,t){return ea(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){pe(this,"spa",e)},validate(e,t){return xr(this,e,t)},validateAsync(e,t){return vr(this,e,t)},encode:function e(t,r){return ta(this,t,r,{callee:e})},decode:function e(t,r){return ra(this,t,r,{callee:e})},encodeAsync:async function e(t,r){return await oa(this,t,r,{callee:e})},decodeAsync:async function e(t,r){return await na(this,t,r,{callee:e})},safeEncode(e,t){return sa(this,e,t)},safeDecode(e,t){return ia(this,e,t)},async safeEncodeAsync(e,t){return ca(this,e,t)},async safeDecodeAsync(e,t){return aa(this,e,t)},toJSONSchema(e){return xc(this,{})(e)},get description(){return ze.get(this)?.description},get _def(){return this._zod.def}}),ha=h("_ZodString",(e,t)=>{jt.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Pc(e,r,o,n)},Pt({format:(e)=>j(e).format??null,minLength:(e)=>j(e).minimum??null,maxLength:(e)=>j(e).maximum??null},{regex(...e){return this.check(Dr(...e))},includes(...e){return this.check(Mr(...e))},startsWith(...e){return this.check(Wr(...e))},endsWith(...e){return this.check(Ur(...e))},min(...e){return this.check(Ne(...e))},max(...e){return this.check(Bt(...e))},length(...e){return this.check(Jt(...e))},nonempty(...e){return this.check(Ne(1,...e))},lowercase(e){return this.check(Fr(e))},uppercase(e){return this.check(Lr(e))},trim(){return this.check(Jr())},normalize(...e){return this.check(Br(...e))},toLowerCase(){return this.check(Vr())},toUpperCase(){return this.check(Hr())},slugify(){return this.check(Kr())}})),no=h("ZodString",(e,t)=>{jt.init(e,t),ha.init(e,t)},{email(e){return this.check(Ri(yl,e))},url(e){return this.check(jr(ma,e))},jwt(e){return this.check(qi(Al,e))},emoji(e){return this.check(Ni(wl,e))},guid(e){return this.check(Ci(xl,e))},uuid(e){return this.check(Nr(ct,e))},uuidv4(e){return this.check(Ii(ct,e))},uuidv6(e){return this.check(Ai(ct,e))},uuidv7(e){return this.check(Ti(ct,e))},nanoid(e){return this.check(ji(_l,e))},cuid(e){return this.check(Di(bl,e))},cuid2(e){return this.check(Fi(kl,e))},ulid(e){return this.check(Li($l,e))},base64(e){return this.check(Hi(Rl,e))},base64url(e){return this.check(Ki(Cl,e))},xid(e){return this.check(Mi(zl,e))},ksuid(e){return this.check(Wi(Sl,e))},ipv4(e){return this.check(Ui(Pl,e))},ipv6(e){return this.check(Bi(El,e))},cidrv4(e){return this.check(Ji(Zl,e))},cidrv6(e){return this.check(Vi(Ol,e))},e164(e){return this.check(Gi(Il,e))},datetime(e){return this.check(Xi(dl,e))},date(e){return this.check(Yi(hl,e))},time(e){return this.check(Qi(ml,e))},duration(e){return this.check(ec(gl,e))}});function w(e){return Zi(no,e)}var R=h("ZodStringFormat",(e,t)=>{Z.init(e,t),ha.init(e,t)}),dl=h("ZodISODateTime",(e,t)=>{Ds.init(e,t),R.init(e,t)}),hl=h("ZodISODate",(e,t)=>{Fs.init(e,t),R.init(e,t)}),ml=h("ZodISOTime",(e,t)=>{Ls.init(e,t),R.init(e,t)}),gl=h("ZodISODuration",(e,t)=>{Ms.init(e,t),R.init(e,t)}),yl=h("ZodEmail",(e,t)=>{Ps.init(e,t),R.init(e,t)});var xl=h("ZodGUID",(e,t)=>{zs.init(e,t),R.init(e,t)});var ct=h("ZodUUID",(e,t)=>{Ss.init(e,t),R.init(e,t)});function so(e){return Nr(ct,e)}var ma=h("ZodURL",(e,t)=>{Os.init(e,t),R.init(e,t)});function vl(e){return jr(ma,e)}var wl=h("ZodEmoji",(e,t)=>{Rs.init(e,t),R.init(e,t)});var _l=h("ZodNanoID",(e,t)=>{Cs.init(e,t),R.init(e,t)});var bl=h("ZodCUID",(e,t)=>{Is.init(e,t),R.init(e,t)});var kl=h("ZodCUID2",(e,t)=>{As.init(e,t),R.init(e,t)});var $l=h("ZodULID",(e,t)=>{Ts.init(e,t),R.init(e,t)});var zl=h("ZodXID",(e,t)=>{Ns.init(e,t),R.init(e,t)});var Sl=h("ZodKSUID",(e,t)=>{js.init(e,t),R.init(e,t)});var Pl=h("ZodIPv4",(e,t)=>{Ws.init(e,t),R.init(e,t)});var El=h("ZodIPv6",(e,t)=>{Bs.init(e,t),R.init(e,t)});var Zl=h("ZodCIDRv4",(e,t)=>{Js.init(e,t),R.init(e,t)});var Ol=h("ZodCIDRv6",(e,t)=>{Vs.init(e,t),R.init(e,t)});var Rl=h("ZodBase64",(e,t)=>{Ks.init(e,t),R.init(e,t)});var Cl=h("ZodBase64URL",(e,t)=>{Gs.init(e,t),R.init(e,t)});var Il=h("ZodE164",(e,t)=>{qs.init(e,t),R.init(e,t)});var Al=h("ZodJWT",(e,t)=>{Xs.init(e,t),R.init(e,t)});var Ht=h("ZodNumber",(e,t)=>{Or.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Ec(e,r,o,n),e.isFinite=!0},Pt({minValue:(e)=>{let{minimum:t,exclusiveMinimum:r}=j(e);return Math.max(t??Number.NEGATIVE_INFINITY,r??Number.NEGATIVE_INFINITY)},maxValue:(e)=>{let{maximum:t,exclusiveMaximum:r}=j(e);return Math.min(t??Number.POSITIVE_INFINITY,r??Number.POSITIVE_INFINITY)},isInt:(e)=>{let{isInt:t,multipleOf:r}=j(e);return!!t||!!r?.some(Number.isSafeInteger)},format:(e)=>j(e).format??null},{gt(e,t){return this.check(Te(e,t))},gte(e,t){return this.check(fe(e,t))},min(e,t){return this.check(fe(e,t))},lt(e,t){return this.check(Ae(e,t))},lte(e,t){return this.check(le(e,t))},max(e,t){return this.check(le(e,t))},int(e){return this.check(ua(e))},safe(e){return this.check(ua(e))},positive(e){return this.check(Te(0,e))},nonnegative(e){return this.check(fe(0,e))},negative(e){return this.check(Ae(0,e))},nonpositive(e){return this.check(le(0,e))},multipleOf(e,t){return this.check(ot(e,t))},step(e,t){return this.check(ot(e,t))},finite(){return this}}));function ga(e){return tc(Ht,e)}var Tl=h("ZodNumberFormat",(e,t)=>{Ys.init(e,t),Ht.init(e,t)});function ua(e){return oc(Tl,e)}var io=h("ZodBoolean",(e,t)=>{Qs.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Zc(e,r,o,n)});function Fe(e){return nc(io,e)}var ya=h("ZodBigInt",(e,t)=>{ei.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Oc(e,r,o,n)},Pt({minValue:(e)=>j(e).minimum??null,maxValue:(e)=>j(e).maximum??null,format:(e)=>j(e).format??null},{gte(e,t){return this.check(fe(e,t))},min(e,t){return this.check(fe(e,t))},gt(e,t){return this.check(Te(e,t))},lt(e,t){return this.check(Ae(e,t))},lte(e,t){return this.check(le(e,t))},max(e,t){return this.check(le(e,t))},positive(e){return this.check(Te(BigInt(0),e))},negative(e){return this.check(Ae(BigInt(0),e))},nonpositive(e){return this.check(le(BigInt(0),e))},nonnegative(e){return this.check(fe(BigInt(0),e))},multipleOf(e,t){return this.check(ot(e,t))}}));var Nl=h("ZodUnknown",(e,t)=>{ti.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Cc(e,r,o,n)});function pa(){return cc(Nl)}var jl=h("ZodNever",(e,t)=>{ri.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Rc(e,r,o,n)});function xa(e){return ac(jl,e)}var va=h("ZodDate",(e,t)=>{oi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Ic(e,r,o,n),e.min=(r,o)=>e.check(fe(r,o)),e.max=(r,o)=>e.check(le(r,o))},Pt({minDate:(e)=>{let{minimum:t}=j(e);return t?new Date(t):null},maxDate:(e)=>{let{maximum:t}=j(e);return t?new Date(t):null}},{}));var Dl=h("ZodArray",(e,t)=>{oo(),ni.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Dc(e,r,o,n),e.element=t.element},{min(e,t){return this.check(Ne(e,t))},nonempty(e){return this.check(Ne(1,e))},max(e,t){return this.check(Bt(e,t))},length(e,t){return this.check(Jt(e,t))},unwrap(){return this.element}});function _(e,t){return pc(Dl,e,t)}var wa=h("ZodObject",(e,t)=>{oo(),ci.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Fc(e,r,o,n),gp(e,"shape",(r)=>r._zod.def.shape,!1)},{keyof(){return X(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(B(this._zod.def,{catchall:e}))},passthrough(){return this.clone(B(this._zod.def,{catchall:pa()}))},loose(){return this.clone(B(this._zod.def,{catchall:pa()}))},strict(){return this.clone(B(this._zod.def,{catchall:xa()}))},strip(){return this.clone(B(this._zod.def,{catchall:void 0}))},extend(e){return ap(this,e)},safeExtend(e){return up(this,e)},merge(e){return pp(this,e)},pick(e){return ip(this,e)},omit(e){return cp(this,e)},partial(...e){return nn(ba,this,e[0])},exactPartial(...e){return nn(ka,this,e[0],"exactPartial")},required(...e){return lp($a,this,e[0])}});function at(e,t){let r={type:"object",shape:e??{},...x(t)};return new wa(r)}function P(e,t){return new wa({type:"object",shape:e,catchall:xa(),...x(t)})}var _a=h("ZodUnion",(e,t)=>{Rr.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Lc(e,r,o,n),e.options=t.options});function co(e,t){return new _a({type:"union",options:e,...x(t)})}var Fl=h("ZodDiscriminatedUnion",(e,t)=>{_a.init(e,t),ai.init(e,t)});function ao(e,t,r){return new Fl({type:"union",options:t,discriminator:e,...x(r)})}var Ll=h("ZodIntersection",(e,t)=>{ui.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Mc(e,r,o,n)});function Ml(e,t){return new Ll({type:"intersection",left:e,right:t})}var ro=h("ZodEnum",(e,t)=>{pi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(o,n,s)=>Ac(e,o,n,s),e.enum=t.entries,e.options=[...e._zod.values];let r=new Set(Object.keys(t.entries));e.extract=(o,n)=>{let s={};for(let i of o)if(r.has(i))s[i]=t.entries[i];else throw Error(`Key ${i} not found in enum`);return new ro({...t,checks:[],...x(n),entries:s})},e.exclude=(o,n)=>{let s={...t.entries};for(let i of o)if(r.has(i))delete s[i];else throw Error(`Key ${i} not found in enum`);return new ro({...t,checks:[],...x(n),entries:s})}});function X(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map((o)=>[o,o])):e;return new ro({type:"enum",entries:r,...x(t)})}var Wl=h("ZodLiteral",(e,t)=>{li.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Tc(e,r,o,n),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function H(e,t){return new Wl({type:"literal",values:Array.isArray(e)?e:[e],...x(t)})}var Ul=h("ZodTransform",(e,t)=>{oo(),fi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>jc(e,r,o,n),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new Ye(e.constructor.name);r.addIssue=(s)=>{if(typeof s==="string")r.issues.push($e(s,r.value,t));else{let i=s;if(i.fatal)i.continue=!1;if(i.code??(i.code="custom"),!("input"in i))i.input=r.value;i.inst??(i.inst=e),r.issues.push($e(i))}};let n=t.transform(r.value,r);if(n instanceof Promise)return n.then((s)=>(r.value=s,r));return r.value=n,r}});function Bl(e){return new Ul({type:"transform",transform:e})}var ba=h("ZodOptional",(e,t)=>{Cr.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>to(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function la(e){return new ba({type:"optional",innerType:e})}var ka=h("ZodExactOptional",(e,t)=>{di.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>to(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function Jl(e){return new ka({type:"optional",innerType:e})}var Vl=h("ZodNullable",(e,t)=>{hi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Wc(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function fa(e){return new Vl({type:"nullable",innerType:e})}var Hl=h("ZodDefault",(e,t)=>{mi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Jc(e,r,o,n),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Kl(e,t){return new Hl({type:"default",innerType:e,get defaultValue(){return typeof t==="function"?t():lr(t)}})}var Gl=h("ZodPrefault",(e,t)=>{gi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Vc(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function ql(e,t){return new Gl({type:"prefault",innerType:e,get defaultValue(){return typeof t==="function"?t():lr(t)}})}var $a=h("ZodNonOptional",(e,t)=>{yi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Uc(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function Xl(e,t){return new $a({type:"nonoptional",innerType:e,...x(t)})}var Yl=h("ZodCatch",(e,t)=>{xi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Hc(e,r,o,n),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Ql(e,t){return new Yl({type:"catch",innerType:e,catchValue:typeof t==="function"?t:un(t)})}var ef=h("ZodPipe",(e,t)=>{vi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Kc(e,r,o,n),e.in=t.in,e.out=t.out});function da(e,t){return new ef({type:"pipe",in:e,out:t})}var tf=h("ZodReadonly",(e,t)=>{wi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Gc(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function rf(e){return new tf({type:"readonly",innerType:e})}var of=h("ZodCustom",(e,t)=>{_i.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Nc(e,r,o,n)});function nf(e,t={}){return lc(of,e,t)}function sf(e,t){return fc(e,t)}var uo={};np(uo,{bigint:()=>lf,boolean:()=>pf,date:()=>ff,number:()=>uf,string:()=>af});function af(e){return Oi(no,e)}function uf(e){return rc(Ht,e)}function pf(e){return sc(io,e)}function lf(e){return ic(ya,e)}function ff(e){return uc(va,e)}var po=X(["codex","claude","opencode"]),df=w().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/),hf="Initialize an AppToolkit workspace, register an existing checkout, or find the approved project workflow.",mf={codex:".agents/skills/apptoolkit/SKILL.md",claude:".claude/skills/apptoolkit/SKILL.md",opencode:".opencode/commands/apptoolkit.md"},za=["For requests involving this workspace, read `llm/HARNESS.md` and use its workflow index to open the relevant procedure. Follow the established rules for the project and target repository.","","For a request like “Dame mi lista de pendientes”, open W01. For a new feature, use W16 to establish requirements before W18 implementation."].join(`
|
|
59
|
-
`);function lo(e){let t=new Set(_(po).parse(e)),r=[];if(t.has("codex")||t.has("opencode"))r.push({path:"AGENTS.md",content:za});if(t.has("claude"))r.push({path:"CLAUDE.md",content:za});return r}function gf(e,t){let r=["---"];if(e!=="opencode")r.push("name: apptoolkit");if(r.push(`description: ${hf}`),e==="claude")r.push('argument-hint: "[init | add repo <path> | workflow <request>]"');if(r.push("---","",`# AppToolkit Harness ${t}`,""),e!=="codex")r.push("Treat the following as user arguments, never as shell source.","","$ARGUMENTS","");return r.push("Find the installed workspace root using `llm/harness/workspace.json`. Open the session from that root when discovery is ambiguous.","Read `llm/HARNESS.md`, the project settings, and relevant repository instructions before choosing a workflow. Read the indexed workflow by ID instead of loading every workflow.","","Use `rtk proxy bun --no-env-file <workspace>/llm/harness/runtime/harness.mjs` for deterministic operations. If only Node.js is available, replace `bun --no-env-file` with `node`. Substitute absolute paths with individually quoted arguments.","","- For `init`, use `init --root <workspace> --json` to load the configuration template. Ask about budgets and discover approved project rules, tool routes, authority, and documentation conventions. Keep service connections and snapshots opt-in. Save the agreed answers as an explicit JSON input with credential references only. Apply it with `init --root <workspace> --config <input>`.","- For `add repo <path>`, identify the existing checkout and ask whether harness files there may be versioned. Preview `add repo <path> --root <workspace>` with the agreed `--repo-versioned` or `--repo-local` choice. Apply with `--yes` only after the user approves that plan. Keep shared knowledge in the workspace and scope repository-specific instructions to the checkout.","- For feature requests, use W16 to settle the definition before W18 implementation. In existing projects, an authoritative ticket or approved specification may satisfy that gate.","- For other requests, resolve the closest workflow from the index. Obtain separate authority for external writes and Git writes. Do not grant tool access or move credentials into the workspace.",""),r.join(`
|
|
60
|
-
`)}function fo(e,t){let r=_(po).parse(e),o=df.parse(t);return[...new Set(r)].map((n)=>({path:mf[n],content:gf(n,o)}))}import{randomUUID as Gf}from"node:crypto";import{lstatSync as qf,readFileSync as Xf,realpathSync as Ga,renameSync as Yf,rmSync as Qf,writeFileSync as ed}from"node:fs";import{dirname as td,join as Je,relative as rd,resolve as qa}from"node:path";import{mkdirSync as Cf,readFileSync as If,rmSync as ja,writeFileSync as Af}from"node:fs";import{tmpdir as Tf}from"node:os";import{resolve as go}from"node:path";import{createHash as yf,randomUUID as xf}from"node:crypto";import{chmodSync as vf,linkSync as wf,lstatSync as Kt,mkdirSync as _f,readFileSync as bf,realpathSync as Ea,renameSync as kf,rmSync as $f,unlinkSync as zf,writeFileSync as Sf}from"node:fs";import{dirname as Sa,isAbsolute as Za,relative as Oa,resolve as pt,sep as Pf}from"node:path";var Pa=16777216;class Gt extends Error{}function Ra(e){return"code"in e&&e.code==="ENOENT"}function de(e){let t=Ea(pt(e));if(!Kt(t).isDirectory())throw Error(`Expected an existing directory at ${t}.`);return t}function ho(e,t){let r=Oa(e,t);return r!==".."&&!r.startsWith(`..${Pf}`)&&!Za(r)}function we(e,t){if(!ho(e,t))throw Error(`Path ${t} is outside ${e}.`);return Oa(e,t)||"."}function oe(e){let t=e.split("/");if(Za(e)||/[\\\u0000-\u001f\u007f]/u.test(e)||t.some((r)=>!r||r==="."||r===".."||r===".git"))throw Error(`Expected a safe relative path. Received ${JSON.stringify(e)}.`)}function qt(e,t){if(oe(t),Ea(e)!==e||!Kt(e).isDirectory())throw Error(`The installation base changed. Inspect ${e} before retrying.`);let r=t.split("/"),o=e;for(let[n,s]of r.entries()){o=pt(o,s);let i=Kt(o,{throwIfNoEntry:!1});if(!i)break;let c=n===r.length-1;if(i.isSymbolicLink()||!c&&!i.isDirectory()||c&&!i.isFile())throw new Gt(`Expected a regular file path. Inspect ${o} before retrying.`)}return pt(e,t)}function W(e){return yf("sha256").update(e).digest("hex")}function U(e,t=420){let r=Buffer.isBuffer(e)?e:Buffer.from(e);return{bytes:r,hash:W(r),mode:t}}function C(e,t){let r=qt(e,t),o=Kt(r,{throwIfNoEntry:!1});if(!o)return null;if(o.size>Pa)throw Error(`The file at ${r} exceeds the ${Pa}-byte installation limit.`);return U(bf(r),o.mode&511)}function ce(e,t){return e?.hash===t?.hash&&e?.mode===t?.mode}function ut(e){if(!ce(C(e.base,e.path),e.before))throw Error(`File changed after planning. Replan before applying ${pt(e.base,e.path)}.`)}function Xt(e){ut(e);let t=qt(e.base,e.path);if(!e.after){zf(t);return}_f(Sa(t),{recursive:!0}),ut(e);let r=pt(Sa(t),`.apptoolkit-${xf()}.tmp`),o=e.after;try{if(Sf(r,o.bytes,{flag:"wx",mode:o.mode}),vf(r,o.mode),e.before)ut(e),kf(r,t);else wf(r,t)}finally{$f(r,{force:!0})}}import{spawnSync as Ef}from"node:child_process";import{lstatSync as Zf,realpathSync as Ca}from"node:fs";import{dirname as Ia,resolve as mo}from"node:path";function Of(){let e={};for(let[t,r]of Object.entries(process.env))if(!t.startsWith("GIT_"))e[t]=r;return{...e,GIT_OPTIONAL_LOCKS:"0",LC_ALL:"C"}}function Le(e,t,r=[0],o=!1){let s=Ef("rtk",["proxy","git",...o?["--literal-pathspecs"]:[],"-C",e,...t],{encoding:"utf8",env:Of(),maxBuffer:1048576,timeout:1e4});if(s.error)throw Error(`Cannot run Git ${t[0]} in ${e}. Verify RTK and Git are installed.`,{cause:s.error});if(s.status===null||!r.includes(s.status))throw Error(`Git ${t[0]} failed in ${e}: ${s.stderr.trim()||`exit ${s.status}`}`);return{output:s.stdout,status:s.status}}function Aa(e){let t=e;while(!0){let r=Zf(mo(t,".git"),{throwIfNoEntry:!1});if(r?.isDirectory()||r?.isFile())return t;if(r)throw Error(`Unsupported Git metadata at ${mo(t,".git")}. Inspect the repository before retrying.`);let o=Ia(t);if(o===t)return;t=o}}function M(e){if(!Aa(e))return;let t=Ca(Le(e,["rev-parse","--show-toplevel"]).output.trimEnd()),r=Ca(Le(e,["rev-parse","--path-format=absolute","--git-common-dir"]).output.trimEnd()),o=Le(e,["rev-parse","--path-format=absolute","--git-path","info/exclude"]).output.trimEnd();if(mo(r,"info/exclude")!==o)throw Error(`Git returned a local exclude path outside the expected metadata directory for ${e}.`);return{root:t,commonDirectory:r,exclude:"info/exclude"}}function Se(e,t){if(Aa(Ia(e))!==t)throw Error(`The path ${e} belongs to a different Git checkout. Select that checkout explicitly before retrying.`)}function Me(e,t){let r=we(e.root,t);return Le(e.root,["ls-files","--cached","-z","--",r],[0],!0).output.split("\x00").includes(r)}function Yt(e,t){let r=Le(e.git.root,["check-ignore","--quiet","--",`./${e.path}`],[0,1]);if(!t&&r.status!==0)throw Error(`Git did not ignore ${e.path} in ${e.git.root}. Check for an existing tracked file or a higher-priority rule before retrying.`);if(t&&r.status===0)throw Error(`Git ignores ${e.path} in ${e.git.root}. Choose local mode or resolve the existing exclusion before retrying.`)}function Rf(e){if(e.includes("://")){try{let n=new URL(e);if(n.hostname&&n.pathname!=="/")return`${n.host.toLowerCase()}${n.pathname.replace(/\.git\/?$/,"").replace(/\/$/,"")}`}catch(n){throw Error("Git returned an invalid origin URL. Correct the local repository configuration before retrying.",{cause:n})}return}let t=/^(?:[^@/:\s]+@)?([^/:\s]+):([^\s]+)$/.exec(e),r=t?.[1],o=t?.[2];if(r&&o)return`${r.toLowerCase()}/${o.replace(/^\//,"").replace(/\.git\/?$/,"").replace(/\/$/,"")}`;return}function Ta(e){let t=Le(e,["config","--local","--get","remote.origin.url"],[0,1]);if(t.status===1)return;let r=Rf(t.output.trimEnd());if(!r)return;return W(r)}function Qt(e){return`/${e.replace(/[\\[\]*? #!]/gu,"\\$&")}`}var Nf=uo.number().int().positive(),Da=new WeakMap;function Fa(e,t){Da.set(e,t)}function jf(e){let t=go(Tf(),`apptoolkit-${W(e).slice(0,24)}.lock`),r=go(t,"owner");try{Cf(t,{mode:448})}catch(o){if(!(o instanceof Error)||!("code"in o)||o.code!=="EEXIST")throw Error(`Cannot acquire the installation lock ${t}.`,{cause:o});let n;try{n=Nf.parse(If(r,"utf8"))}catch(s){throw Error(`An installation lock already exists at ${t}. If no install is running, remove the stale lock directory and retry.`,{cause:s})}try{process.kill(n,0)}catch(s){if(s instanceof Error&&"code"in s&&s.code==="ESRCH")throw Error(`The previous installation stopped. Remove its stale lock at ${t} and rerun the same installation to resume.`,{cause:s});throw Error(`Cannot confirm whether the installation holding ${t} is still running.`,{cause:s})}throw Error(`Another installation is running for ${e} with process ID ${n}. Retry after it finishes.`)}try{Af(r,`${process.pid}
|
|
61
|
-
`,{mode:384,flag:"wx"})}catch(o){try{ja(t,{recursive:!0})}catch(n){throw AggregateError([o,n],`Cannot record or remove the installation lock at ${t}.`)}throw Error(`Cannot record the installation lock owner at ${r}.`,{cause:o})}return t}function Df(e){let t=new Map;for(let r of e){let n=t.get(r.git.root)??M(r.git.root)?.commonDirectory;if(n!==r.git.commonDirectory)throw Error(`Git metadata changed after planning in ${r.git.root}. Replan the installation.`);if(t.set(r.git.root,n),!r.versioned&&Me(r.git,r.absolute))throw Error(`Git started tracking ${r.absolute} after planning. Replan before applying local mode.`)}}function Ff(e,t){let r=[t];for(let o of e.reverse())try{Xt({...o,before:o.after,after:o.before})}catch(n){r.push(Error(`Cannot restore ${go(o.base,o.path)} after the installation failed.`,{cause:n}))}if(r.length>1)throw AggregateError(r,"Installation stopped and some files could not be restored. Inspect the reported paths and replan.");throw t}function Lf(e){let{exclusions:t,files:r,checks:o}=e,n=[];for(let s of[...e.guards??[],...t,...r])ut(s);for(let s of e.boundaries??[])Se(s.absolute,s.gitRoot);Df(o);try{for(let s of t)Xt(s),n.push(s);for(let s of o)Yt(s,s.versioned);for(let s of r)Xt(s),n.push(s)}catch(s){Ff(n,Error("Could not apply the workspace installation. Inspect the cause and replan before retrying.",{cause:s}))}return n.length}function Na(e){let t=[];for(let r of e.reverse())try{ja(r,{recursive:!0})}catch(o){if(!(o instanceof Error)||!Ra(o))t.push(Error(`Cannot remove the installation lock at ${r}. Inspect it before retrying.`,{cause:o}))}return t}function La(e,t){let r=[],o;try{for(let s of[...new Set(e)].sort())r.push(jf(s));o=t()}catch(s){let i=Na(r);if(i.length)throw AggregateError([s,...i],"The installation failed and some locks could not be removed.");throw s}let n=Na(r);if(n.length)throw AggregateError(n,"The installation completed and some locks could not be removed.");return o}function Ma(e,t){return La([e],t)}function yo(e,t){let r=[e,...t.exclusions.map((o)=>o.base),...t.checks.map((o)=>o.git.commonDirectory)];return La(r,()=>Lf(t))}function xo(e){let t=Da.get(e);if(!t)throw Error("Apply requires a plan created by this process. Run the workspace planner again.");if(e.conflicts.length)throw Error(`Resolve the workspace conflicts before applying: ${e.conflicts.map((o)=>o.path).join(", ")}.`);return{changed:yo(e.root,t),receipt:e.receipt}}import{resolve as Mf}from"node:path";var Wa=X(["codex","claude","opencode"]),Ua=X(["plane","penpot"]),vo=w().regex(/^[a-f0-9]{64}$/),Ba=P({path:w().min(1),versioned:Fe(),identity:vo.optional()}),Ja=P({schema:H(1),version:w().min(1),hosts:_(Wa),workspaceVersioned:Fe(),repositories:_(Ba),services:_(Ua),installation:w().regex(/^[a-f0-9]{16}$/).optional(),files:_(P({path:w().min(1),hash:vo,versioned:Fe(),fragment:vo.optional()}))}),Va=P({root:w().min(1),action:X(["install","update","add-repo"]),version:w().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/),contentDirectory:w(),hosts:_(Wa).min(1),workspaceVersioned:Fe(),repositories:_(Ba),services:_(Ua),repository:w().min(1).optional()}),F="llm/harness/workspace.json";var Wf=new Set([".agents/skills/apptoolkit/SKILL.md",".claude/skills/apptoolkit/SKILL.md",".opencode/commands/apptoolkit.md","AGENTS.md","CLAUDE.md",".claude/rules/apptoolkit.md"]);function wo(e,t){if(e.startsWith("llm/harness/")||e.startsWith("llm/author-style/")||Wf.has(e))return e!==F&&e!=="llm/harness/project.json";if(e==="llm/HARNESS.md"||e==="llm/README.md")return!0;return t.some((r)=>e===he(r.path))}function he(e){if(e===".")return"llm/harness-context.llm.md";return`${e}/llm/harness-context.llm.md`}function Y(e){let t=de(e),r=C(t,F);if(!r)return;try{let o=Ja.parse(JSON.parse(r.bytes.toString("utf8"))),n=new Set,s=new Set;for(let i of o.repositories){if(i.path!==".")oe(i.path);if(n.has(i.path))throw Error(`Repeated repository path ${i.path}.`);n.add(i.path)}for(let i of o.files){if(oe(i.path),!wo(i.path,o.repositories)||s.has(i.path))throw Error(`Unexpected managed file ${i.path}.`);s.add(i.path)}return o}catch(o){throw Error(`Cannot read the installation receipt at ${Mf(t,F)}. Restore a valid receipt before retrying.`,{cause:o})}}var ae=w().trim().min(1).max(120).regex(/^[\p{L}\p{N}][\p{L}\p{N} ./_:+-]*$/u),Ka=w().regex(/^[A-Z_][A-Z0-9_]*$/).max(120),We=w().min(1).max(512).refine((e)=>{if(/^[A-Za-z]:|[\\\u0000-\u001f\u007f]/u.test(e))return!1;return e.split("/").every((t)=>t!==""&&t!=="."&&t!==".."&&t!==".git")},"Use a workspace-relative path without traversal."),Ue=co([H("."),We]),Be=X(["plane","penpot"]),Uf=new Set(["localhost","127.0.0.1","[::1]"]),_o=vl().max(512).pipe(w().refine((e)=>{let t=new URL(e);return(t.protocol==="https:"||t.protocol==="http:"&&Uf.has(t.hostname))&&!t.username&&!t.password&&!t.search&&!t.hash},"Use HTTPS or loopback HTTP without credentials, query, or fragment.")),Ha={baseUrl:_o,tokenEnv:Ka,snapshots:X(["off","versioned"])},Bf=ao("provider",[P({...Ha,provider:H("plane"),workspace:w().regex(/^[A-Za-z0-9][A-Za-z0-9_-]{0,119}$/),projectId:so(),auth:X(["api-key","oauth"]).default("api-key")}),P({...Ha,provider:H("penpot"),fileId:so()})]),Jf=ao("mode",[P({mode:H("unlimited")}),P({mode:H("limited"),limits:_(P({category:ae,maximum:ga().positive(),unit:ae})).min(1).max(12)})]),Vf=P({category:ae,scope:ae,authority:ae,provider:ae,access:ao("method",[P({method:H("local"),path:We}),P({method:H("cli"),command:ae}),P({method:H("mcp"),server:ae}),P({method:H("api"),baseUrl:_o,tokenEnv:Ka.optional()}),P({method:H("web"),baseUrl:_o})])}),Hf=P({kind:ae,template:We.optional(),requiredSections:_(ae).max(30),checklist:_(w().trim().min(1).max(200)).max(30),prohibitedText:_(w().trim().min(1).max(120)).max(30)}),Kf=P({path:Ue,budget:Jf,rules:_(We).max(50),routes:_(Vf).max(50),documentation:_(Hf).max(50),services:_(Bf).max(2)}).superRefine((e,t)=>{let r=new Set;for(let[n,s]of e.routes.entries()){let i=`${s.category.toLowerCase()}
|
|
62
|
-
${s.scope.toLowerCase()}`;if(r.has(i))t.addIssue({code:"custom",path:["routes",n],message:"Choose one authority for this category and scope."});r.add(i)}let o=new Set;for(let[n,s]of e.services.entries()){if(o.has(s.provider))t.addIssue({code:"custom",path:["services",n],message:"Configure each built-in service once per project."});o.add(s.provider)}}),Pe=P({schema:H(1),projects:_(Kf).min(1).max(100)}).superRefine((e,t)=>{let r=new Set;for(let[o,n]of e.projects.entries()){if(r.has(n.path))t.addIssue({code:"custom",path:["projects",o,"path"],message:"Each project must appear once."});r.add(n.path)}});var ko="llm/harness/project.json",od=1048576;function me(e){try{return qf(e)}catch(t){if(t instanceof Error&&"code"in t&&t.code==="ENOENT")return;throw Error(`Inspect ${e}.`,{cause:t})}}function $o(e){let t=me(e);if(!t?.isFile()||t.size>od)throw Error(`Expected a regular JSON file of at most 1 MiB at ${e}.`);try{return JSON.parse(Xf(e,"utf8"))}catch(r){throw Error(`Read JSON configuration at ${e}.`,{cause:r})}}function Xa(e){let t=e;for(let r of["llm","harness"])if(t=Je(t,r),!me(t)?.isDirectory())throw Error(`Expected an installed, nonsymlink workspace directory at ${t}.`);return t}function lt(e){let t=Ga(qa(e));Xa(t);let r=Y(t);if(!r)throw Error("Install the harness in the selected workspace before configuring it.");return{root:t,receipt:r}}function Ya(e,t){if(Xa(e),!me(t))return;let r=Pe.safeParse($o(t));if(!r.success){let o=r.error.issues.map((n)=>`${n.path.join(".")||"settings"} ${n.message}`);throw Error(`Invalid project settings in ${t}. ${o.join(" ")}`)}return r.data}function Ee(e){return Ya(e,Je(e,ko))}function nd(e,t,r){if(r)return r;let o=Je(e,t),n=[];if(me(o)?.isDirectory()&&Ga(o)===o){for(let s of["AGENTS.md","CLAUDE.md","CONTRIBUTING.md"])if(me(Je(o,s))?.isFile())n.push(s)}return{path:t,budget:null,rules:n,routes:[],documentation:[],services:[]}}function zo(e){let{root:t,receipt:r}=lt(e),o=Ee(t);return{schema:1,projects:[...new Set([".",...r.repositories.map((s)=>s.path)])].map((s)=>{let i=o?.projects.find((c)=>c.path===s);return nd(t,s,i)})}}function bo(e){return`${JSON.stringify(e,null,2)}
|
|
63
|
-
`}function sd(e,t){let r=td(e),o=Je(r,`.project.${Gf()}.json`);try{ed(o,bo(t),{flag:"wx",mode:384}),Yf(o,e)}catch(n){try{Qf(o,{force:!0})}catch(s){throw AggregateError([n,s],`Write project settings and clean the draft at ${e}.`)}throw Error(`Write project settings at ${e}.`,{cause:n})}}async function So(e){let{root:t}=lt(e.root),r=Ya(t,qa(e.configPath));if(!r)throw Error("Provide the approved project settings JSON file.");return Ma(t,()=>{let{receipt:o}=lt(t),n=new Set([".",...o.repositories.map((u)=>u.path)]);for(let u of r.projects){if(!n.has(u.path))throw Error(`Register ${u.path} before initializing its settings.`);for(let p of u.services){if(!o.services.includes(p.provider))throw Error(`Select ${p.provider} during workspace installation before connecting it.`);if(p.snapshots==="versioned"&&!o.workspaceVersioned)throw Error("Versioned service snapshots require a versioned workspace harness.")}}let s=Je(t,ko);if(!o.workspaceVersioned){let u=M(t);if(u)Yt({git:u,path:rd(u.root,s)},!1)}let i=Ee(t),c=new Map(i?.projects.map((u)=>[u.path,u]));for(let u of r.projects)c.set(u.path,u);let a=Pe.parse({schema:1,projects:[...c.values()]});if(i&&bo(i)===bo(a))return{path:s,changed:!1,projects:a.projects.length};return sd(s,a),{path:s,changed:!0,projects:a.projects.length}})}var id=P({root:w().min(1),project:Ue,service:Be,verifyHealth:Fe().optional(),verifyRead:Fe()}),cd=at({results:_(at({id:so()})).max(1)}),ad=at({name:w().min(1)}),ud=131072;class _e extends Error{}function Eo(e){let{root:t,receipt:r}=lt(e.root);if(!r.services.includes(e.service))throw Error(`${e.service} is not selected in the installed workspace.`);if(e.project!=="."&&!r.repositories.some((s)=>s.path===e.project))throw Error(`Register ${e.project} before using its service connections.`);let n=Ee(t)?.projects.find((s)=>s.path===e.project)?.services.find((s)=>s.provider===e.service);if(!n)throw Error(`Initialize the ${e.service} connection for ${e.project} first.`);return{root:t,receipt:r,connection:n}}function Po(e,t){let r=new URL(e);if(!r.pathname.endsWith("/"))r.pathname+="/";return new URL(t,r)}function pd(e){if(e.provider==="plane"){let r=`api/v1/workspaces/${e.workspace}/projects/${e.projectId}/work-items/`,o=Po(e.baseUrl,r);return o.searchParams.set("per_page","1"),o.searchParams.set("fields","id"),o}let t=Po(e.baseUrl,"api/rpc/command/get-file-summary");return t.searchParams.set("id",e.fileId),t}function ld(e,t){let r=new Headers({Accept:"application/json"});if(e.provider==="penpot")r.set("Authorization",`Token ${t}`);else if(e.auth==="oauth")r.set("Authorization",`Bearer ${t}`);else r.set("X-API-Key",t);return r}async function fd(e){if(!e.headers.get("content-type")?.toLowerCase().startsWith("application/json"))throw await e.body?.cancel(),new _e("Expected an application/json response from the service.");let r=e.body?.getReader();if(!r)throw new _e("The service response has no body.");let o=[],n=0;try{for(;;){let s=await r.read();if(s.done)return Buffer.concat(o,n).toString("utf8");if(n+=s.value.byteLength,n>ud)throw await r.cancel(),new _e("The service response exceeded the 128 KiB verification limit.");o.push(s.value)}}finally{r.releaseLock()}}async function dd(e,t){let r=await t(Po(e.baseUrl,"./"),{method:"HEAD",redirect:"manual",signal:AbortSignal.timeout(1e4)});return await r.body?.cancel(),r.status}async function hd(e,t,r){let o=await r(pd(e),{method:"GET",headers:ld(e,t),redirect:"error",signal:AbortSignal.timeout(1e4)});if(!o.ok)throw await o.body?.cancel(),new _e(`The selected resource returned HTTP ${o.status}. Confirm the target and its read permission.`);let n=await fd(o),s=e.provider==="plane"?cd:ad,i=!1;try{i=s.safeParse(JSON.parse(n)).success}catch(c){throw new _e("The service returned invalid JSON.",{cause:c})}if(!i)throw new _e("The response does not match the expected resource read.");return o.status}async function Zo(e,t={}){let r=id.parse(e),{connection:o}=Eo(r),s=(t.environment??process.env)[o.tokenEnv],i=typeof s==="string"&&/^[\x21-\x7e]+$/.test(s),c={provider:o.provider,project:r.project,baseUrl:o.baseUrl,credentialEnv:o.tokenEnv,credentialAvailable:i,snapshots:o.snapshots,connectivity:"unchecked",read:"unchecked"},a=t.fetch??fetch;if(r.verifyRead){if(!i)throw Error(`Provide ${o.tokenEnv} in the process environment before verifying access.`);try{let u=await hd(o,s,a);return{...c,connectivity:"reachable",read:"verified",httpStatus:u}}catch(u){let p=u instanceof _e?u.message:"Check the configured host and retry.";throw Error(`Verify ${o.provider} read for ${r.project}. ${p}`,{cause:u})}}if(r.verifyHealth)try{let u=await dd(o,a);return{...c,connectivity:u>=500?"service-error":"reachable",httpStatus:u}}catch(u){throw Error(`Check ${o.provider} connectivity for ${r.project}.`,{cause:u})}return c}import{createHash as md}from"node:crypto";import{constants as Qa,createReadStream as gd,openSync as yd}from"node:fs";import{join as xd,relative as eu,resolve as vd}from"node:path";var tu=We.refine((e)=>e.startsWith("harness-snapshots/"),{message:"Keep native service exports in the workspace harness-snapshots directory."}),wd=w().regex(/^[a-f0-9]{64}$/),_d=P({path:tu,bytes:ga().int().positive(),sha256:wd}),bd=P({root:w().min(1),project:Ue,service:Be}),ru=P({schema:H(1),project:Ue,service:Be,files:_(_d).min(1).max(30)}).refine((e)=>new Set(e.files.map((t)=>t.path)).size===e.files.length,"Duplicate snapshot paths.");function ou(e,t){let r=vd(e,t),o=tu.parse(eu(e,r)),n=e,s=o.split("/");for(let[i,c]of s.entries()){n=xd(n,c);let a=me(n);if(!(i===s.length-1?a?.isFile():a?.isDirectory()))throw Error(`Expected a regular nonsymlink snapshot path at ${n}.`)}return r}async function nu(e,t){let r=ou(e,t),o=me(r);if(!o?.isFile()||o.size===0)throw Error(`Expected a nonempty snapshot file at ${r}.`);let n=md("sha256");try{let i=yd(r,Qa.O_RDONLY|Qa.O_NOFOLLOW),c=gd(r,{fd:i});for await(let a of c)n.update(a)}catch(i){throw Error(`Read snapshot bytes at ${r}.`,{cause:i})}let s=me(r);if(!s||o.dev!==s.dev||o.ino!==s.ino||o.mtimeMs!==s.mtimeMs||o.size!==s.size)throw Error(`Snapshot changed while reading ${r}. Retry with a stable export.`);return{path:eu(e,r),bytes:o.size,sha256:n.digest("hex")}}function su(e){let{root:t,receipt:r,connection:o}=Eo(bd.parse(e));if(!r.workspaceVersioned||o.snapshots!=="versioned")throw Error("Enable versioned snapshots for this project and provider before working with a snapshot.");return t}async function Oo(e){let t=su({root:e.root,project:e.project,service:e.service}),r=_(w().min(1)).min(1).max(30).parse(e.paths),o=[];for(let n of r)o.push(await nu(t,n));return ru.parse({schema:1,project:e.project,service:e.service,files:o})}async function Ro(e){let t=su({root:e.root,project:e.project,service:e.service}),r=ou(t,e.manifestPath),o=ru.parse($o(r));if(o.project!==e.project||o.service!==e.service)throw Error("The snapshot manifest belongs to a different project or service.");for(let n of o.files){let s=await nu(t,n.path);if(s.bytes!==n.bytes||s.sha256!==n.sha256)throw Error(`Snapshot integrity check failed for ${n.path}.`)}return{manifestPath:r,project:o.project,service:o.service,files:o.files.length}}import{closeSync as iu,constants as Co,fstatSync as cu,lstatSync as au,openSync as kd,readSync as $d,realpathSync as zd}from"node:fs";import{isAbsolute as pu,join as Sd}from"node:path";var Pd=262144,Ed=new Set([".aws",".git",".gnupg",".npm",".ssh","credentials","node_modules","passwords","private","processing","raw","secret","secrets"]);function lu(e){let t=e.toLowerCase(),r=t.replace(/(?:\.llm)?\.md$/,"");return t.startsWith(".env")||Ed.has(r)}function Zd(e){if(pu(e)||/[\\:\x00-\x1f\x7f]/.test(e))throw Error("Provide a relative path inside the project root.");let t=e.split("/");for(let r of t){if(r===""||r==="."||r==="..")throw Error("Paths must use explicit project-relative segments.");if(lu(r))throw Error(`The path crosses a protected location at "${r}".`)}return t}function uu(e,t){if(!pu(e))throw Error("Provide an absolute project root.");if(!au(e).isDirectory())throw Error("The project root must be a directory.");let r=zd(e);if(r.split("/").filter(Boolean).some((s,i)=>(i!==0||s!=="private")&&lu(s)))throw Error("The project root crosses a protected location.");let n;for(let[s,i]of t.entries()){if(r=Sd(r,i),n=au(r),n.isSymbolicLink())throw Error(`Symbolic links are not allowed in the project path at "${i}".`);if(s<t.length-1&&!n.isDirectory())throw Error(`Expected a directory at "${i}".`)}if(!n?.isFile())throw Error("The project path must resolve to a regular file.");return{path:r,info:n}}function Od(e,t,r,o){let n=cu(e);if(!n.isFile()||n.ino!==t.ino||n.dev!==t.dev)throw Error("The file changed while opening. Retry after checking its path.");if(n.size>r)throw Error(`${o} source exceeds ${r} bytes. Use a narrower input.`);let s=Buffer.alloc(n.size+1),i=0;while(i<s.length){let a=$d(e,s,i,s.length-i,i);if(a===0)break;i+=a}if(i>r)throw Error(`${o} source exceeds ${r} bytes. Use a narrower input.`);let c=cu(e);if(c.size!==i||n.size!==c.size||n.mtimeMs!==c.mtimeMs||n.ctimeMs!==c.ctimeMs)throw Error("The source changed during the read. Retry with a stable file.");return s.subarray(0,i)}function Rd(e,t,r,o){let n;try{n=Od(e,t,r,o)}catch(s){try{iu(e)}catch(i){throw AggregateError([s,i],"Reading and closing the file both failed.")}throw s}return iu(e),n}function er(e,t,r,o){try{let n=Zd(t),{path:s,info:i}=uu(e,n),c=kd(s,Co.O_RDONLY|Co.O_NOFOLLOW|Co.O_NONBLOCK),a=Rd(c,i,r,o),u=uu(e,n);if(u.path!==s||u.info.ino!==i.ino||u.info.dev!==i.dev)throw Error("The file path changed during the read. Retry after verifying the current path.");return new TextDecoder("utf-8",{fatal:!0}).decode(a)}catch(n){let s=n instanceof Error?n.message:String(n);throw Error(`Unable to read ${o} "${t}". ${s}`,{cause:n})}}function ft(e,t){if(!t.toLowerCase().endsWith(".md"))throw Error("Provide a relative Markdown path inside the project root.");return er(e,t,Pd,"Markdown context")}function fu(e){return e.match(/[^\n]*\n|[^\n]+$/g)??[]}function du(e,t,r){let o=e.toLowerCase().replace(/[^\p{L}\p{M}\p{N}_\s-]/gu,"").trim().replace(/\s+/g,"-");return{title:e,level:t,line:r,locator:`line:${r}`,anchor:`#${o}`}}function Cd(e){let t=/^ {0,3}(`{3,}|~{3,})/.exec(e)?.[1];if(t)return{marker:t.charAt(0),length:t.length};return}function Id(e,t){let r=/^ {0,3}(`{3,}|~{3,})[ \t]*$/.exec(e)?.[1];return r!==void 0&&r.startsWith(t.marker)&&r.length>=t.length}function Ad(e,t){let r=/^ {0,3}(#{1,6})[ \t]+(.*)$/.exec(e),o=r?.[1],n=r?.[2];if(o&&n){let s=n.replace(/(?:^|[ \t]+)#+[ \t]*$/,"").trim();if(s)return du(s,o.length,t)}return}function Td(e){if(!e.trim()||/^(?: {4}|\t)/.test(e))return!1;return!/^ {0,3}(?:[>#<]|[-+*][ \t]|\d+[.)][ \t]|\[[^\]]+\]:|(?:[*_-][ \t]*){3,})/.test(e)}function hu(e){let t=[],r,o,n=!1,s=-1;if(e[0]?.trim()==="---")s=e.findIndex((i,c)=>c>0&&/^(---|\.\.\.)$/.test(i.trim()));for(let[i,c]of e.entries()){if(i<=s)continue;let a=c.replace(/\r?\n$/,""),u=i+1;if(r){if(Id(a,r))r=void 0;continue}if(n||a.trimStart().startsWith("<!--")){n=!a.includes("-->"),o=void 0;continue}if(r=Cd(a),r){o=void 0;continue}let p=Ad(a,u);if(p){t.push(p),o=void 0;continue}let l=/^ {0,3}(=+|-+)[ \t]*$/.exec(a)?.[1];if(l&&o){let f=o.lines.join(" "),d=l.startsWith("=")?1:2;t.push(du(f,d,o.line)),o=void 0;continue}if(!Td(a)){o=void 0;continue}if(!o)o={line:u,lines:[]};o.lines.push(a.trim())}return t}var Io=w().min(1).refine((e)=>!/[\x00-\x1f\x7f]/.test(e),"Control characters are not allowed."),Nd=P({root:Io.max(4096),file:Io.max(4096),section:Io.max(512).optional()}),mu=128,gu=16384;function jd(e,t){let r=e.filter((n)=>{if(/^line:[1-9][0-9]*$/.test(t))return n.locator===t;if(t.startsWith("#"))return n.anchor===t;return n.title===t}),[o]=r;if(!o)throw Error(`No heading matches "${t}". List the heading index and use an exact locator.`);if(r.length>1){let n=r.slice(0,8).map((i)=>i.locator),s=r.length>n.length?", or another locator from the index":"";throw Error(`Heading "${t}" is ambiguous. Use one of ${n.join(", ")}${s}.`)}return o}function yu(e,t){if(Buffer.byteLength(e)>gu)throw Error(`Context output exceeds ${gu} bytes. ${t}`)}function xu(e){let t=Nd.parse(e),r=fu(ft(t.root,t.file)),o=hu(r);if(t.section===void 0){if(o.length>mu)throw Error(`Heading index exceeds ${mu} entries. Request a known section or use a narrower map.`);let u={kind:"index",file:t.file,headings:o};return yu(JSON.stringify(u),"Request a known section or use a narrower map."),u}let n=jd(o,t.section),s=o.find((u)=>u.line>n.line&&u.level<=n.level),i=s?s.line-1:r.length,c=r.slice(n.line-1,i).join(""),a={kind:"section",file:t.file,heading:n,startLine:n.line,endLine:i,text:c};return yu(JSON.stringify(a),"Choose a smaller child section or a narrower map."),a}import{realpathSync as Jd}from"node:fs";import{isAbsolute as No,normalize as Vd,relative as Hd,resolve as Kd}from"node:path";var wu=X(["lines","functions","branches"]),Dd=X(["LF","LH","FNF","FNH","BRF","BRH"]),Fd={lines:{found:"LF",hit:"LH"},functions:{found:"FNF",hit:"FNH"},branches:{found:"BRF",hit:"BRH"}};function _u(e){return{source:e,summaries:new Map,lines:new Map,branches:new Map,functionNames:new Set,functionHits:new Map,groupIds:new Set,aliasHits:new Map,versionSeen:!1}}function N(e,t){let r=Number(e);if(!/^\d+$/.test(e)||!Number.isSafeInteger(r)||r<t)throw Error("Expected an integer within the supported range.");return r}function dt(e,t,r){if(e.has(t))throw Error("Duplicate coverage entry.");e.set(t,r)}function vu(e,t){if(e.has(t))throw Error("Duplicate coverage identity.");e.add(t)}function Ld(e,t){let[r,o,,n,s]=t.split(",");if(!r||!o||s!==void 0)throw Error("Expected a line number and execution count.");let i=N(r,1);if(n!==void 0)N(n,i);dt(e.lines,String(i),N(o,0)>0)}function Md(e,t){let r=/^([^,]+),([ef]?u?\d+(?:\^\d+)?),(.+),([^,]+)$/.exec(t),o=r?.[1],n=r?.[2],s=r?.[3],i=r?.[4];if(!o||!n||!s||!i)throw Error("Expected a branch line, block, identity and hit count.");let[,c,a]=/^[ef]?u?(\d+)(?:\^(\d+))?$/.exec(n)??[];if(!c)throw Error("Expected a numeric branch block.");let u=JSON.stringify([N(o,1),N(c,0),a===void 0?null:N(a,0),/^\d+$/.test(s)?N(s,0):s]);dt(e.branches,u,i!=="-"&&N(i,0)>0)}function Wd(e,t,r){let o=t==="FN"?/^(\d+),(?:(\d+),)?(.+)$/:/^(\d+),(\d+)(?:,(\d+))?$/,[,n,s,i]=o.exec(r)??[];if(n===void 0)throw Error("Malformed function definition.");if(t==="FN"&&i){let c=N(n,1);if(s)N(s,c);vu(e.functionNames,i);return}if(t==="FNL"&&s){let c=N(s,1);if(i)N(i,c);vu(e.groupIds,String(N(n,0)));return}throw Error("Malformed function definition.")}function Ud(e,t,r){if(t==="FNDA"){let[,a,u]=/^(\d+),(.+)$/.exec(r)??[];if(!a||!u)throw Error("Expected a function hit count and name.");dt(e.functionHits,u,N(a,0)>0);return}let[,o,n,s]=/^(\d+),(\d+),(.+)$/.exec(r)??[];if(!o||!n||!s)throw Error("Expected an alias group, hit count and name.");let i=String(N(o,0)),c=e.aliasHits.get(i)??new Map;dt(c,s,N(n,0)>0),e.aliasHits.set(i,c)}function bu(e,t,r){let o=Dd.safeParse(t);if(o.success){dt(e.summaries,o.data,N(r,0));return}switch(t){case"VER":if(e.versionSeen||!r)throw Error("Expected one source version per record.");e.versionSeen=!0;return;case"DA":return Ld(e,r);case"BRDA":return Md(e,r);case"FN":case"FNL":return Wd(e,t,r);case"FNDA":case"FNA":return Ud(e,t,r);default:throw Error("Unsupported LCOV field. Export a line, function and branch report.")}}function Ao(e){let t=0;for(let r of e.values())if(r)t+=1;return{found:e.size,hit:t}}function Bd(e){let t=e.functionNames.size>0||e.functionHits.size>0,r=e.groupIds.size>0||e.aliasHits.size>0;if(t&&r)throw Error("Function records mix classic names and alias groups.");if(r){let o=0;if(e.groupIds.size!==e.aliasHits.size)throw Error("Missing function group or alias records.");for(let n of e.groupIds){let s=e.aliasHits.get(n);if(!s?.size)throw Error("Function group is missing execution records.");if(Array.from(s.values()).some(Boolean))o+=1}return{found:e.groupIds.size,hit:o}}if(e.functionNames.size!==e.functionHits.size)throw Error("Missing function names or execution records.");for(let o of e.functionNames)if(!e.functionHits.has(o))throw Error("A function definition has no matching execution record.");return Ao(e.functionHits)}function ku(e,t){let r=Fd[t],o=e.summaries.get(r.found),n=e.summaries.get(r.hit);if(o===void 0||n===void 0)throw Error(`Missing ${r.found} or ${r.hit} summary.`);let s;switch(t){case"lines":s=Ao(e.lines);break;case"functions":s=Bd(e);break;case"branches":s=Ao(e.branches);break}if(s.found!==o||s.hit!==n)throw Error(`Summary ${n}/${o} differs from measured entries ${s.hit}/${s.found}.`);if(n!==o)throw Error(`Only ${n}/${o} were covered. The requirement is 100 percent.`);return s}var tr=w().min(1).max(4096).refine((e)=>!/[\x00-\x1f\x7f]/.test(e)),Gd=P({root:tr,file:tr,config:tr}),qd=P({files:_(tr).min(1).max(1e4),metrics:_(wu).min(1).max(3)});function To(e){if(No(e)||/[\\:\x00-\x1f\x7f]/.test(e)||e.split("/").some((t)=>!t||t==="."||t===".."))throw Error(`Use a project-relative source path in the coverage configuration. Received "${e}".`);return e}function $u(e,t){let r=Hd(e,t);if(!r||r===".."||r.startsWith("../")||No(r))return;return r}function Xd(e,t,r){if(!e||/[\\:\x00-\x1f\x7f]/.test(e))throw Error("Expected a valid source path in the LCOV record.");if(No(e)){let o=$u(t,e)??$u(r,e);if(o)return To(o);throw Error("An LCOV source is outside the project root.")}return To(Vd(e))}function Yd(e,t){for(let[r,o]of t)try{let n=ku(e,r);o.found+=n.found,o.hit+=n.hit}catch(n){let s=n instanceof Error?n.message:String(n);throw Error(`${e.source} ${r}. ${s}`,{cause:n})}}function Qd(e,t,r,o){let n=Jd(t),s=new Set,i=new Set,c,a=!1;for(let[p,l]of e.split(/\r?\n/).entries()){if(!l.trim()||l.startsWith("#"))continue;try{if(/[\x00-\x08\x0b-\x1f\x7f]/.test(l))throw Error("Control characters are not allowed in coverage records.");if(l.startsWith("TN:")&&!c&&!a)a=!0;else if((l.startsWith("SF:")||l.startsWith("KF:"))&&!c){let f=l.slice(3),[,d,m]=/^(\d+),(.*)$/.exec(f)??[],g=Xd(m??f,t,n);if(d!==void 0){let y=Number(d);if(!Number.isSafeInteger(y)||i.has(y))throw Error("Expected a distinct safe integer source index.");i.add(y)}if(s.has(g))throw Error(`Duplicate LCOV source "${g}".`);if(!r.has(g))throw Error(`Unexpected LCOV source "${g}".`);c=_u(g),a=!1}else if(l==="end_of_record"&&c)Yd(c,o),s.add(c.source),c=void 0;else if(c){let f=l.indexOf(":");if(f<1)throw Error("Malformed LCOV field.");bu(c,l.slice(0,f),l.slice(f+1))}else throw Error("Expected an LCOV source record.")}catch(f){let d=f instanceof Error?f.message:String(f);throw Error(`LCOV line ${p+1}. ${d}`,{cause:f})}}if(c||a)throw Error("The final LCOV record is incomplete.");let u=Array.from(r).filter((p)=>!s.has(p));if(u.length)throw Error(`LCOV is missing ${u.length} expected source files. First missing path is "${u[0]}".`)}function zu(e){let t=Gd.parse(e),r=er(t.root,t.config,262144,"coverage configuration"),o;try{o=qd.parse(JSON.parse(r))}catch(a){throw Error(`Invalid coverage configuration "${t.config}". Provide JSON arrays for files and metrics.`,{cause:a})}let n=new Set(o.files.map(To)),s=new Map;for(let a of o.metrics)s.set(a,{found:0,hit:0});if(n.size!==o.files.length||s.size!==o.metrics.length)throw Error("Coverage configuration contains duplicate files or metrics.");let i=er(t.root,t.file,16777216,"LCOV report");Qd(i,Kd(t.root),n,s);let c=Array.from(s,([a,u])=>{if(u.found===0)throw Error(`No measurable ${a} were found for the selected scope.`);return{metric:a,...u,percent:100}});return{file:t.file,config:t.config,sources:n.size,metrics:c}}import{lstatSync as Uu}from"node:fs";import{relative as Wu,resolve as be}from"node:path";import{lstatSync as eh,readdirSync as Pu}from"node:fs";import{basename as Su,resolve as ht}from"node:path";var th=at({name:w().optional(),workspaces:co([_(w()),at({packages:_(w())})]).optional()}),rh=new Set(["package.json","pnpm-workspace.yaml","Cargo.toml","go.mod","pyproject.toml","Gemfile","pom.xml","composer.json"]),Eu=new Set([".git",".DS_Store",".agents",".claude",".opencode","llm","node_modules","dist","vendor"]);function oh(e){let t=C(e,"package.json");if(!t)return;try{return th.parse(JSON.parse(t.bytes.toString("utf8")))}catch(r){throw Error(`Cannot read ${ht(e,"package.json")}. Correct the manifest and retry.`,{cause:r})}}function Ve(e,t){if(t===".")return e;oe(t);let r=de(ht(e,t));if(!ho(e,r)||r!==ht(e,t))throw Error(`Choose a real directory inside ${e}. The repository path resolves through a symbolic link: ${t}.`);if(M(r)?.root!==r)throw Error(`Choose the Git repository root at ${r} before registering it.`);return r}function nh(e){let t=Pu(e,{withFileTypes:!0});if(t.length>2048)throw Error(`Workspace discovery is limited to 2048 entries at ${e}. Choose a narrower directory.`);let r=[];for(let o of t.sort((n,s)=>n.name.localeCompare(s.name,"en"))){if(!o.isDirectory()||o.name.startsWith(".")||Eu.has(o.name))continue;let n=ht(e,o.name);if(!eh(ht(n,".git"),{throwIfNoEntry:!1}))continue;if(M(n)?.root!==n)throw Error(`The Git metadata in ${n} does not identify that checkout as a repository root.`);oe(o.name),r.push({path:o.name,name:o.name,gitRoot:n})}return r}function Ze(e){let t=de(e),r=M(t),o=nh(t),n=new Set(Pu(t)),s=oh(t),i=Boolean(s?.workspaces||n.has("pnpm-workspace.yaml")||n.has("lerna.json")),c=[...rh].some((l)=>n.has(l)),a=r?{gitRoot:r.root}:{};if(o.length&&!i){let l=[...o];if(c)l.unshift({path:".",name:s?.name??Su(t),...a});return{root:t,kind:"workspace",monorepo:i,repositories:l,...a}}let u=[...n].every((l)=>Eu.has(l)),p={path:".",name:s?.name??Su(t),...a};return{root:t,kind:u?"blank":"existing",monorepo:i,repositories:[p],...a}}import{lstatSync as Ru}from"node:fs";import{resolve as mt}from"node:path";function sh(e,t,r,o=!1){let n=`# appToolkit harness ${t} begin`,s=`# appToolkit harness ${t} end`,i=e.includes(`\r
|
|
64
|
-
`)?`\r
|
|
65
|
-
`:`
|
|
66
|
-
`,c=e.split(i),a=c.indexOf(n),u=c.indexOf(s);if(a===-1!==(u===-1)||a!==-1&&u<=a||c.lastIndexOf(n)!==a||c.lastIndexOf(s)!==u)throw Error(`The existing appToolkit local exclusion block ${t} is malformed. Repair it before retrying.`);let p=new Set(r);if(o&&a!==-1)for(let d of c.slice(a+1,u)){if(!d.startsWith("/"))throw Error(`The existing appToolkit local exclusion block ${t} contains an unsupported pattern.`);p.add(d)}let l=p.size?[n,...[...p].sort(),s]:[];if(a!==-1)return c.splice(a,u-a+1,...l),c.join(i);if(!l.length)return e;return`${e&&!e.endsWith(i)?`${e}${i}`:e}${l.join(i)}${i}`}function jo(e,t,r,o=!1){let n=C(e.commonDirectory,e.exclude),s=n?.bytes.toString("utf8")??"";if(n&&!Buffer.from(s).equals(n.bytes))throw Error(`Cannot update the non-UTF-8 local exclusions at ${mt(e.commonDirectory,e.exclude)}.`);let i=sh(s,t,r,o),c=i||n?U(i,n?.mode):null;if(ce(n,c))return;return{base:e.commonDirectory,path:e.exclude,before:n,after:c}}function Zu(e,t){let r=new Map,o=M(e);if(o)r.set(".",o);for(let n of t){if(n.path===".")continue;let s=mt(e,n.path);if(!Ru(s,{throwIfNoEntry:!1})?.isDirectory())continue;let c=M(s);if(c?.root===s)r.set(n.path,c)}return r}function Ou(e,t){let r=[...t.keys()].filter((n)=>n!=="."&&e.startsWith(`${n}/`));r.sort((n,s)=>s.length-n.length);let o=r[0]??".";return t.get(o)}function Cu(e,t,r,o,n){let s=Zu(e,t.repositories),i=new Map,c=[],a=[];if(r){let d=Zu(e,r.repositories);for(let m of d.values())i.set(m.commonDirectory,{scope:m,patterns:new Set});for(let m of n){let g=mt(e,m),y=Ou(m,d);Se(g,y?.root),a.push(y?{absolute:g,gitRoot:y.root}:{absolute:g})}}let u=[...t.files,{path:"llm/harness/workspace.json",versioned:t.workspaceVersioned},{path:"llm/harness/project.json",versioned:t.workspaceVersioned}],p=new Set(t.repositories.filter((d)=>!Ru(mt(e,d.path),{throwIfNoEntry:!1})).map((d)=>he(d.path)));for(let d of u){if(p.has(d.path))continue;let m=Ou(d.path,s),g=mt(e,d.path);if(Se(g,m?.root),a.push(m?{absolute:g,gitRoot:m.root}:{absolute:g}),!m)continue;let y=we(m.root,g);if(c.push({git:m,path:y,absolute:g,versioned:d.versioned}),d.versioned)continue;if(Me(m,g)){o.push({path:d.path,reason:"Git already tracks this file. Choose versioned mode or separately remove it from the index before retrying."});continue}let v=i.get(m.commonDirectory)??{scope:m,patterns:new Set};v.patterns.add(Qt(y)),i.set(m.commonDirectory,v)}let l=[],f=t.installation??W(e).slice(0,16);for(let{scope:d,patterns:m}of i.values()){let g=jo(d,f,m);if(g)l.push(g)}return{operations:l,checks:c,boundaries:a}}import{lstatSync as ih,readdirSync as ch}from"node:fs";import{resolve as Iu}from"node:path";var Au=4096,ah=67108864,uh=new Set([".git","node_modules","raw","processing",".npmrc"]);function Tu(e){if(!e)throw Error("The release content directory is required for install and update.");let t=de(e),r=new Map,o=["."],n=0;while(o.length){let s=o.pop();if(!s)break;let i=ch(Iu(t,s),{withFileTypes:!0});for(let c of i.sort((a,u)=>a.name.localeCompare(u.name,"en"))){let a=s==="."?c.name:`${s}/${c.name}`;if(oe(a),uh.has(c.name)||/^\.env(?:$|\.(?!example$))/u.test(c.name))throw Error(`The release payload includes an unsupported private path: ${a}.`);if(c.isDirectory()&&!ih(Iu(t,a)).isSymbolicLink()){if(o.length+r.size>=Au||a.split("/").length>12)throw Error(`Release content exceeds the directory limits at ${a}.`);o.push(a);continue}let u=`llm/${a}`;if(!c.isFile()||!wo(u,[]))throw Error(`The release payload includes an unsupported file: ${a}.`);let p=C(t,a);if(!p)throw Error(`The release payload changed while reading ${a}.`);if(n+=p.bytes.length,r.size>=Au||n>ah)throw Error(`The release payload exceeds the installation limits at ${a}.`);r.set(u,p)}}if(!r.has("llm/HARNESS.md"))throw Error("The release payload is missing the harness index HARNESS.md.");return r}var rr="llm/harness/project.json";function Nu(e,t,r,o){let n=t.repositories.find((c)=>!r.repositories.some((a)=>a.path===c.path));if(!n)return;let s=r.repositories.find((c)=>c.identity&&c.identity===n.identity);if(!s)return;let i=C(e,rr);if(!i)return;try{let c=Pe.parse(JSON.parse(i.bytes.toString("utf8")));if(!c.projects.some((p)=>p.path===n.path))return;if(c.projects.some((p)=>p.path===s.path)){o.push({path:rr,reason:"Both the old and new checkout paths already have project settings. Reconcile them before registering the move."});return}let a=c.projects.map((p)=>{if(p.path===n.path)return{...p,path:s.path};return p}),u=U(`${JSON.stringify(Pe.parse({...c,projects:a}),null,2)}
|
|
67
|
-
`,i.mode);return{base:e,path:rr,before:i,after:u}}catch(c){throw Error(`Cannot reassign the project settings in ${rr}. Restore a valid settings file before retrying.`,{cause:c})}}import{lstatSync as ph}from"node:fs";import{resolve as lh}from"node:path";var Do="<!-- apptoolkit-harness:begin -->",or="<!-- apptoolkit-harness:end -->";function nr(e){return["AGENTS.md","CLAUDE.md",".claude/rules/apptoolkit.md"].includes(e)}function fh(e,t){let r=e.indexOf(Do),o=e.indexOf(or);if(r===-1&&o===-1)return;if(r<0||o<=r||e.lastIndexOf(Do)!==r||e.lastIndexOf(or)!==o)throw Error(`The AppToolkit router block in ${t} is malformed. Review its markers before retrying.`);let n=o+or.length;return{prefix:e.slice(0,r),old:e.slice(r,n),suffix:e.slice(n)}}function ju(e,t,r,o,n,s,i){let c;try{c=C(e,t)}catch(g){if(!(g instanceof Gt))throw g;i.push(`Preserved the existing native instructions path ${t}. Use the installed apptoolkit command to open the harness explicitly.`);return}let a=c?.bytes.toString("utf8")??"",u=n?.files.find((g)=>g.path===t)?.fragment,p=a.includes(`\r
|
|
68
|
-
`)?`\r
|
|
69
|
-
`:`
|
|
70
|
-
`,l=[Do,r.trimEnd().replaceAll(`
|
|
71
|
-
`,p),or].join(p),f=W(l);if(c&&!Buffer.from(a).equals(c.bytes)){s.push({path:t,reason:"The native project instructions are not UTF-8. Open the harness explicitly from the agent instead."});return}let d=fh(a,t);if(u&&!d){s.push({path:t,reason:"The previously installed router block was removed. Restore or reconcile it before updating."});return}if(d){let g=W(d.old);if(g!==u&&g!==f){s.push({path:t,reason:"The existing router block has local edits. Reconcile it before applying the release."});return}if(!u&&!o&&(d.prefix||d.suffix!==p)){i.push(`Preserved the existing ${t}. Use the installed apptoolkit command to open the harness explicitly.`);return}return{content:U(`${d.prefix}${l}${d.suffix}`,c?.mode),versioned:o,fragment:f,observed:c}}if(c&&!o){i.push(`Preserved the existing ${t} in local mode. Use the installed apptoolkit command to open the harness explicitly.`);return}let m=a;if(a&&!a.endsWith(`${p}${p}`))m=a.endsWith(p)?`${a}${p}`:`${a}${p}${p}`;return{content:U(`${m}${l}${p}`,c?.mode),versioned:o,fragment:f,observed:c}}function Du(e,t,r,o,n){let s=new Map;if(t.hosts.includes("codex")&&ph(lh(e,"AGENTS.override.md"),{throwIfNoEntry:!1}))n.push("Codex may prioritize the existing AGENTS.override.md. Use $apptoolkit explicitly to open the harness.");for(let{path:i,content:c}of lo(t.hosts)){let p=i==="CLAUDE.md"&&r?.files.some((d)=>d.path===".claude/rules/apptoolkit.md")?".claude/rules/apptoolkit.md":i,l=[],f=ju(e,p,c,t.workspaceVersioned,r,o,l);if(f)s.set(p,f);else if(p==="CLAUDE.md"&&!t.workspaceVersioned&&l.length){let d=ju(e,".claude/rules/apptoolkit.md",c,!1,r,o,n);if(d)s.set(".claude/rules/apptoolkit.md",d),n.push("Claude uses .claude/rules/apptoolkit.md alongside the preserved CLAUDE.md.");else n.push(...l)}else n.push(...l)}return s}import{lstatSync as dh}from"node:fs";import{basename as hh,resolve as Fu}from"node:path";function gt(e,t){return!dh(Fu(e,t),{throwIfNoEntry:!1})}function Fo(e,t){let r=we(e,Fu(e,t));if(r!==".")oe(r);return r}function Lu(e,t,r){let o=Ve(e,t),n=M(o);if(r&&!n)throw Error(`Cannot version files in ${o} because Git does not manage this directory.`);let s=n&&Ta(n.root);return s?{path:t,versioned:r,identity:s}:{path:t,versioned:r}}function mh(e,t,r){let o=t.repository;if(!o)throw Error("Specify the directory of the Git repository to register.");let n=Fo(e,o);if(r.repositories.find((p)=>p.path===n)&&!gt(e,n))return Ve(e,n),r.repositories;if(gt(e,n)){let p=r.repositories.filter((f)=>hh(f.path)===o),l=p[0];if(l&&p.length===1&&!gt(e,l.path))return Ve(e,l.path),r.repositories}if(n===".")throw Error("Select the directory of a Git checkout inside the workspace.");let i=t.repositories.find((p)=>Fo(e,p.path)===n)?.versioned;if(i===void 0)throw Error(`Choose whether generated files inside ${n} should be versioned before registering it.`);let c=Lu(e,n,i),a=r.repositories.filter((p)=>c.identity&&p.identity===c.identity&>(e,p.path)),u=a[0];if(a.length>1)throw Error(`More than one missing registration matches ${n}. Resolve the ambiguous repository paths before retrying.`);return[...r.repositories.filter((p)=>p.path!==u?.path),c]}function Mu(e,t,r){let{root:o}=e;if(t.action==="add-repo"){if(!r)throw Error("Install the workspace harness before registering an additional repository.");return mh(o,t,r).sort((c,a)=>c.path.localeCompare(a.path,"en"))}let n=t.workspaceVersioned&&Boolean(e.gitRoot),s=t.repositories;if(!s.length&&r)s=r.repositories;if(!s.length&&e.kind==="workspace")throw Error("Select the repositories to register in this workspace.");if(!s.length)s=[{path:".",versioned:n}];let i=new Map;for(let c of s){let a=Fo(o,c.path);if(i.has(a))throw Error(`Repository ${a} was selected more than once.`);let u=r?.repositories.find((p)=>p.path===a);if(u&>(o,a))i.set(a,{...u,versioned:c.versioned});else i.set(a,Lu(o,a,c.versioned))}if(r?.repositories.some((c)=>!i.has(c.path)))throw Error("The new selection omits a registered repository. Keep the existing selection when reinstalling or updating.");return[...i.values()].sort((c,a)=>c.path.localeCompare(a.path,"en"))}import{resolve as gh}from"node:path";var yh=P({root:w().min(1),repository:w().min(1),file:w().endsWith(".llm.md")}),Lo=new WeakMap;function Mo(e){let t=yh.parse(e),r=de(t.root),o=C(r,F),n=Y(r),s=n?.repositories.find((y)=>y.path===t.repository);if(!n||!s)throw Error(`Register repository ${t.repository} in the workspace before excluding generated files.`);if(s.versioned)throw Error(`Repository ${t.repository} is configured to version its generated files.`);let i=Ve(r,s.path),c=qt(i,t.file),a=M(i);Se(c,a?.root);let u={root:r,writes:[],conflicts:[]},p=[{base:r,path:F,before:o,after:o}],l=[a?{absolute:c,gitRoot:a.root}:{absolute:c}];if(!ce(o,C(r,F)))throw Error("The installation receipt changed while planning. Retry the artifact command.");if(!a)return Lo.set(u,{exclusions:[],files:[],checks:[],guards:p,boundaries:l}),u;if(Me(a,c))u.conflicts.push({path:t.file,reason:"Git already tracks this file. Resolve its index status before choosing local mode."});let f=we(a.root,c),d=n.installation??W(r).slice(0,16),m=jo(a,`${d} artifacts`,new Set([Qt(f)]),!0),g=m?[m]:[];if(m)u.writes.push({path:gh(m.base,m.path),before:m.before?.hash??null,after:m.after?.hash??null});return Lo.set(u,{exclusions:g,files:[],checks:[{git:a,path:f,absolute:c,versioned:!1}],guards:p,boundaries:l}),u}function Wo(e){let t=Lo.get(e);if(!t||e.conflicts.length)throw Error("Resolve the artifact conflicts and create a new plan in this process before applying.");return{changed:yo(e.root,t)}}function xh(e,t){let r=be(e,t,"llm"),o=Wu(r,be(e,"llm/HARNESS.md"));return["# Harness context","",`Start from the workspace folder at \`${Wu(be(e,t),e)||"."}\` and open the [harness index](${encodeURI(o)}).`,"Read the workspace profile and this repository’s own instructions before changing code.","Use the repository-specific settings for services, documentation conventions and validation.",""].join(`
|
|
72
|
-
`)}function vh(e,t,r,o,n,s){let i=new Map;if(t.action!=="add-repo"){for(let[l,f]of Tu(t.contentDirectory))i.set(l,{content:f,versioned:r.workspaceVersioned});for(let l of fo(r.hosts,r.version))i.set(l.path,{content:U(l.content),versioned:r.workspaceVersioned});for(let[l,f]of Du(e,r,o,n,s))i.set(l,f);let c="llm/README.md",a=C(e,c),u=o?.files.some((l)=>l.path===c),p=U(`# LLM workspace
|
|
73
|
-
|
|
74
|
-
Open the [harness index](HARNESS.md) for workspace rules, project routing, workflows and tools.
|
|
75
|
-
`);if(!a||u||a.hash===p.hash)i.set(c,{content:p,versioned:r.workspaceVersioned})}for(let c of r.repositories){if(!Uu(be(e,c.path),{throwIfNoEntry:!1}))continue;let a=he(c.path);i.set(a,{content:U(xh(e,c.path)),versioned:c.versioned})}return i}function wh(e,t,r,o,n,s){let i=[],c=new Map(o?.files.map((p)=>[p.path,p])),a=new Set(o?.repositories.map((p)=>he(p.path))),u=new Set(r.repositories.filter((p)=>!Uu(be(e,p.path),{throwIfNoEntry:!1})).map((p)=>he(p.path)));for(let[p,{content:l,versioned:f,fragment:d,observed:m}]of t){let g=C(e,p),y=c.get(p),v=U(l.bytes,g?.mode??l.mode);if(m!==void 0&&!ce(g,m))throw Error(`The native router ${p} changed while planning. Retry the workspace command.`);if(!d&&g&&g.hash!==v.hash&&g.hash!==y?.hash)s.push({path:p,reason:"A different local file is present. Review or move it before applying this release."});else if(!ce(g,v))i.push({base:e,path:p,before:g,after:v});r.files.push({path:p,hash:v.hash,versioned:f,...d?{fragment:d}:{}})}for(let p of c.values()){if(t.has(p.path))continue;if(nr(p.path)||u.has(p.path)||n==="add-repo"&&!a.has(p.path)){r.files.push(p);continue}let l=C(e,p.path);if(!l)continue;if(l.hash!==p.hash){s.push({path:p.path,reason:"The release retires this file, but it has local edits. Preserve the changes before updating."});continue}i.push({base:e,path:p.path,before:l,after:null})}return r.files.sort((p,l)=>p.path.localeCompare(l.path,"en")),i}function Bu(e){let t=Va.parse(e),r=Ze(t.root),{root:o}=r,n=C(o,F),s=Y(o);if(t.action==="update"&&!s)throw Error("Install the workspace harness before updating it.");if(t.action==="install"&&s&&s.version!==t.version)throw Error(`This workspace already has harness ${s.version}. Use update to select ${t.version}.`);let i=t.action==="add-repo"&&s,c=Mu(r,t,s),a=i?s.workspaceVersioned:t.workspaceVersioned;if(a&&!r.gitRoot)throw Error(`The workspace at ${o} does not have Git. Choose local workspace mode before retrying.`);let u={schema:1,version:i?s.version:t.version,hosts:i?s.hosts:[...new Set(t.hosts)].sort(),workspaceVersioned:a,repositories:c,services:i?s.services:[...new Set(t.services)].sort(),installation:s?.installation??W(o).slice(0,16),files:[]},p=[],l=[],f=vh(o,t,u,s,p,l),d=wh(o,f,u,s,t.action,p);if(i){let z=Nu(o,s,u,p);if(z)d.push(z)}let m=d.filter((z)=>z.after===null).map((z)=>z.path),g=Cu(o,u,s,p,m),y=new Set(g.checks.filter((z)=>!z.versioned&&z.git.commonDirectory!==be(z.git.root,".git")).map((z)=>z.git.commonDirectory));for(let z of y)l.push(`Local Git exclusions use ${be(z,"info/exclude")}. Linked worktrees that share this Git directory use the same exclusions.`);let v=U(`${JSON.stringify(u,null,2)}
|
|
76
|
-
`,n?.mode);if(!ce(n,C(o,F)))throw Error("The installation receipt changed while planning. Retry the workspace command.");if(!ce(n,v))d.push({base:o,path:F,before:n,after:v});let k=[...g.operations,...d].map((z)=>({path:z.base===o?z.path:be(z.base,z.path),before:z.before?.hash??null,after:z.after?.hash??null})),G={root:o,...r.gitRoot?{gitRoot:r.gitRoot}:{},action:t.action,writes:k,conflicts:p,notices:l,receipt:u};return Fa(G,{exclusions:g.operations,files:d,checks:g.checks,guards:[{base:o,path:F,before:n,after:n}],boundaries:g.boundaries}),G}import{parseArgs as _h}from"node:util";var Oe=X(["codex","claude","opencode"]),yt={codex:"Codex",claude:"Claude Code",opencode:"OpenCode"},Re=X(["plane","penpot"]);function Ju(e){let t=_h({args:e,allowPositionals:!0,options:{help:{type:"boolean",short:"h"},version:{type:"boolean",short:"v"},root:{type:"string"},json:{type:"boolean"},yes:{type:"boolean",short:"y"},plan:{type:"boolean"},hosts:{type:"string"},versioned:{type:"boolean"},local:{type:"boolean"},repo:{type:"string",multiple:!0},"repo-mode":{type:"string",multiple:!0},"repo-versioned":{type:"boolean"},"repo-local":{type:"boolean"},"enable-service":{type:"string",multiple:!0},config:{type:"string"},project:{type:"string"},"verify-read":{type:"boolean"},"verify-health":{type:"boolean"},manifest:{type:"string"},file:{type:"string",multiple:!0},section:{type:"string"}}}),{values:r}=t;if(r.versioned&&r.local||r["repo-versioned"]&&r["repo-local"])throw Error("Choose exactly one Git storage mode for each scope.");if(r.plan&&r.yes)throw Error("Choose --plan to preview or --yes to apply.");return t}function K(e,t){return w().min(1,`Supply ${t}.`).parse(e??"")}function Vu(e){let t=new Map;for(let r of e){let o=r.lastIndexOf("="),n=r.slice(0,o),s=r.slice(o+1);if(o<1||s!=="local"&&s!=="versioned"||t.has(n))throw Error(`Invalid or duplicate --repo-mode ${r}. Use <path>=local or <path>=versioned.`);t.set(n,s==="versioned")}return t}import{readFileSync as Hu}from"node:fs";var bh=P({kind:w().min(1),title:w().min(1).optional(),headings:_(w().min(1)).default([]),checkedItems:_(w().min(1)).default([]),requiredText:_(w().min(1)).default([]),forbiddenText:_(w().min(1)).default([])});function kh(e){let t,r=[];for(let o of e.split(/\r?\n/)){let n=/^ {0,3}(`{3,}|~{3,})(.*)$/.exec(o),s=n?.[1];if(t){if(s?.startsWith(t)&&!n?.[2]?.trim())t=void 0}else if(s)t=s;else r.push(o)}return r}function Ku(e,t){let r=bh.parse(JSON.parse(Hu(e,"utf8"))),o=Hu(t,"utf8"),n=kh(o),s=n.join(`
|
|
77
|
-
`),i=o.toLowerCase(),c=n.flatMap((l)=>{let f=/^ {0,3}#{1,6}[ \t]+(.+?)\s*$/.exec(l);return f?.[1]?[f[1].replace(/[ \t]+#+[ \t]*$/,"")]:[]}),a=new Set(n.flatMap((l)=>{let f=/^\s*[-+*]\s+\[[xX]\]\s+(.+?)\s*$/.exec(l);return f?.[1]?[f[1]]:[]})),u=[],p=-1;if(r.title&&c[0]!==r.title)u.push(`Expected the first heading to be ${r.title}.`);for(let l of r.headings){let f=c.indexOf(l,p+1);if(f<0)u.push(`Missing or out-of-order heading: ${l}.`);else p=f}for(let l of r.checkedItems)if(!a.has(l))u.push(`Checklist item must be checked: ${l}.`);for(let l of r.requiredText)if(!s.includes(l))u.push(`Required text is absent: ${l}.`);for(let[l,f]of r.forbiddenText.entries())if(i.includes(f.toLowerCase()))u.push(`Forbidden text rule ${l+1} matched.`);return{kind:r.kind,valid:u.length===0,issues:u}}import{resolve as Uo}from"node:path";import{basename as $h,isAbsolute as zh,relative as Sh,resolve as Ph}from"node:path";var xt=new Intl.ListFormat("en"),Gu={plane:"Plane for work items",penpot:"Penpot for design"};function Eh(e,t,r){let o=e.receipt.version;if(e.action==="add-repo"){if(!e.writes.length&&!e.conflicts.length)return`Review the AppToolkit Harness registration for ${r} in ${e.root}.`;return`Register ${r} with the shared AppToolkit Harness in ${e.root}.`}if(e.action==="update"){if(t&&t.version!==o)return`Update AppToolkit Harness from ${t.version} to ${o} in ${e.root}.`;return`Update the AppToolkit Harness ${o} setup in ${e.root}.`}return`Install AppToolkit Harness ${o} in ${e.root}.`}function Zh(e,t){let{workspaceVersioned:r,repositories:o}=e.receipt,n=Boolean(e.gitRoot),i=(o.length===1&&o[0]?.path==="."?o[0]:void 0)?.versioned===r,c=i?"the harness, its settings and generated project guidance":"the shared harness and its settings",a=e.action==="add-repo"?o.filter(({path:p})=>p===t):o,u=[];if(r)u.push(`Make ${c} available to commit in the workspace Git repository.`);else if(n)u.push(`Keep ${c} on this machine using local Git ignore rules.`);else u.push(`Keep ${c} in this folder outside Git.`);for(let p of a){if(i&&p.path===".")continue;let l=p.path==="."?"this project":p.path;if(p.versioned)u.push(`Make the harness files generated for ${l} available to commit.`);else if(p.path!=="."||n)u.push(`Keep the harness files generated for ${l} local using Git ignore rules.`);else u.push(`Keep the harness files generated for ${l} in the project folder outside Git.`)}if(r||a.some(({versioned:p})=>p))u.push("You decide what to stage and commit in Git.");return u}function Oh(e,t){let{services:r}=e.receipt,o=r.filter((i)=>!t?.services.includes(i)),n=r.filter((i)=>t?.services.includes(i)),s=[];if(o.length){let i=xt.format(o.map((c)=>Gu[c]));s.push(`Offer ${i} during agent setup. Each connection is configured separately.`)}if(n.length){let i=xt.format(n.map((c)=>Gu[c]));s.push(`Optional services selected for this workspace are ${i}.`)}if(!r.length)s.push("Skip the optional Plane and Penpot setup.");return s}function Rh(e){let{writes:t}=e,r=t.filter(({after:f})=>f!==null),o=r.filter(({path:f})=>nr(f)),n=o.filter(({before:f})=>f===null).map(({path:f})=>f),s=o.filter(({before:f})=>f!==null).map(({path:f})=>f),i=new Set(e.receipt.repositories.map(({path:f})=>he(f))),c=new Set(["llm/HARNESS.md","llm/README.md"]),a="llm/harness/project.json",u=[],p=r.filter(({path:f})=>{let d=f.startsWith("llm/harness/")&&f!==F&&f!=="llm/harness/project.json";return c.has(f)||f.startsWith("llm/author-style/")||d});if(p.length){let f=p.every(({before:d})=>d===null)?"Add":"Refresh";u.push(`${f} shared workflows, project guidance, and tools for verification and code style in llm/.`)}if(r.some(({path:f})=>f.startsWith(".agents/")||f.startsWith(".claude/skills/")||f.startsWith(".opencode/commands/")))u.push("Set up the shortcuts your selected agents use to open the harness.");if(n.length)u.push(`Create agent guidance in ${xt.format(n)} so your agents can find the harness.`);if(s.length)u.push(`Update the harness section in ${xt.format(s)} and preserve the project guidance.`);if(r.some(({path:f})=>i.has(f)))u.push("Write project context that points agents to the shared harness and the relevant project rules.");if(r.some(({path:f})=>f==="llm/harness/project.json"))u.push("Update the saved project settings for the checkout path.");if(r.some(({path:f})=>zh(f)))u.push("Update the local Git ignore rules for the generated harness files.");if(r.some(({path:f})=>f===F))u.push("Save the harness version and workspace choices.");if(t.some(({after:f})=>f===null))u.push("Remove harness files retired by this plan.");return u}function Ch(e,t,r){let o=e.receipt.repositories.map(({path:i})=>i),n=o.find((i)=>!t?.repositories.some((c)=>c.path===i));if(n)return n;if(!r)return"the checkout";let s=Sh(e.root,Ph(e.root,r))||".";if(o.includes(s))return s;return o.find((i)=>$h(i)===r)??s}function qu(e,t,r){let o=e.action==="add-repo"?Ch(e,t,r):"",n=Oe.options.filter((a)=>e.receipt.hosts.includes(a)),s=xt.format(n.map((a)=>yt[a])),i=e.action==="add-repo"?[]:Oh(e,t),c=[Eh(e,t,o),`The harness will be available in ${s}.`,...Zh(e,o),...i,...Rh(e)];for(let a of e.notices)c.push(a);if(e.conflicts.length){c.push("Resolve these conflicts before applying the plan.");for(let{path:a,reason:u}of e.conflicts)c.push(` ${a}. ${u}`)}else if(!e.writes.length)c.push("The current setup already matches this plan.");return c}var Ih=[{label:"Keep harness files local",value:"local"},{label:"Make harness files available to commit",value:"versioned"}],Xu=[{label:"No",value:"no"},{label:"Yes",value:"yes"}];async function Bo(e,t,r){if(!e)throw Error(`Supply ${r} for a noninteractive run.`);return await e(t,Ih)==="versioned"}async function Ah(e){let{options:t,selectMany:r}=e;if(t.hosts)return[...new Set(_(Oe).min(1).parse(t.hosts.split(",")))];if(!r)throw Error("Supply --hosts codex,claude,opencode or a subset for a noninteractive install.");let o=Oe.options.map((s)=>({label:yt[s],value:s})),n=await r("Which agent hosts should this workspace support?",o,Oe.options);return _(Oe).min(1).parse(n)}async function Th(e,t){let{options:r,select:o}=e,n=Vu(r["repo-mode"]??[]),s=new Set(t.repositories.map(({path:a})=>a)),i=new Set(r.repo??[]),c=[];for(let a of[...i,...n.keys()])if(!s.has(a))throw Error(`No repository was detected at ${a}. Inspect the workspace for accepted relative paths.`);for(let a of t.repositories){if(i.size&&!i.has(a.path))continue;if(t.kind==="workspace"&&o&&!i.size&&!n.has(a.path)){if(await o(`Register ${a.path}?`,[{label:"Register",value:"yes"},{label:"Skip",value:"no"}])==="no")continue}let u=`--repo-mode ${a.path}=local or ${a.path}=versioned`,p=a.gitRoot?n.get(a.path)??await Bo(o,`Version files generated inside ${a.path}?`,u):!1;c.push({path:a.path,versioned:p})}if(t.kind==="workspace"&&c.length===0)throw Error("Select at least one repository for the shared workspace.");return c}async function Nh(e){let{root:t,options:r,select:o,emit:n}=e,s=Ze(t);if(!r.json){let p={blank:"an empty project",existing:"an existing project",workspace:"a parent workspace"};n(`Detected ${s.monorepo?"a monorepo":p[s.kind]} at ${s.root}.`)}let i=await Ah(e),c=s.gitRoot?r.versioned||!r.local&&await Bo(o,"Version the central harness with this Git repository?","--local or --versioned"):!1;if(r.versioned&&!s.gitRoot)throw Error("The workspace root has no Git repository. Use --local.");let a=await Th(e,s),u=_(Re).parse(r["enable-service"]??[]);if(o&&!r["enable-service"]){for(let p of Re.options)if(await o(`Offer ${p==="plane"?"Plane for agent work items":"Penpot for design"} during setup?`,Xu)==="yes")u.push(p)}return{hosts:i,workspaceVersioned:c,repositories:a,services:[...new Set(u)]}}function jh(e){let t=Y(e);if(!t)throw Error(`No harness is registered at ${e}. Run install first.`);return{hosts:t.hosts,workspaceVersioned:t.workspaceVersioned,repositories:t.repositories,services:t.services}}async function Yu(e,t,r){let{root:o,version:n,options:s,emit:i,select:c,contentDirectory:a}=e;if(!a&&t!=="add-repo")throw Error("Run this command from a release package. Use bunx @apptoolkit/harness@latest update for an installed workspace.");let u=Y(o),p=t==="install"&&!u?await Nh(e):jh(o),l;if(t==="update"&&s["enable-service"]){let g=_(Re).parse(s["enable-service"]);p.services=[...new Set([...p.services,...g])]}if(t==="add-repo"){l=K(r,"the checkout path");let g=Uo(o,l),y=p.repositories.find(({path:k})=>Uo(o,k)===g),v=s["repo-versioned"]||(s["repo-local"]?!1:y?.versioned??await Bo(c,`Version files generated inside ${l}?`,"--repo-local or --repo-versioned"));p.repositories=[...p.repositories.filter(({path:k})=>Uo(o,k)!==g),{path:l,versioned:v}]}let f=Bu({root:o,action:t,version:n,contentDirectory:a??"",...p,...l?{repository:l}:{}}),d={action:t,root:f.root,writes:f.writes.map(({path:g,before:y,after:v})=>({path:g,effect:v===null?"remove":y===null?"create":"update",before:y,after:v})),conflicts:f.conflicts,notices:f.notices};if(!s.json)for(let g of qu(f,u,l))i(g);if(s.plan||!s.yes&&!c){if(s.json)i(d);return f.conflicts.length?1:0}if(f.conflicts.length){if(s.json)i(d);throw Error("Resolve the reported installation conflicts before applying the plan.")}if(!s.yes&&f.writes.length&&c&&await c("Apply this plan?",Xu)!=="yes")return 0;let m=xo(f);if(s.json)i({...d,changed:m.changed,version:m.receipt.version,hosts:m.receipt.hosts});else if(i(`Applied ${m.changed} change(s) for @apptoolkit/harness ${m.receipt.version}.`),t==="install"){i(`Open ${f.root} in your selected agent host.`);for(let g of m.receipt.hosts)i(` ${yt[g]}: ${g==="codex"?"$":"/"}apptoolkit init`)}return 0}var Fh=`@apptoolkit/harness 1.0.2
|
|
78
|
-
|
|
79
|
-
install Inspect and prepare a project or workspace
|
|
80
|
-
inspect Report workspace topology and installation state
|
|
81
|
-
init --json Print the project setup template for the agent
|
|
82
|
-
init --config <file> Apply validated project choices
|
|
83
|
-
add repo <path> Register a related checkout
|
|
84
|
-
protect <file> Preview or apply a local exclusion for a source map
|
|
85
|
-
update Reconcile this package version with the workspace
|
|
86
|
-
workflow <W01-W37|list> Read a single workflow or the index
|
|
87
|
-
context <file> List headings or read an exact --section
|
|
88
|
-
verify document <file> Check a document against a local --config policy
|
|
89
|
-
verify coverage <lcov> Require 100% measured coverage for the configured source scope
|
|
90
|
-
service status <name> Inspect opt-in Plane or Penpot access
|
|
91
|
-
service snapshot <name> Prepare or verify an opt-in snapshot manifest
|
|
92
|
-
|
|
93
|
-
Shared options: --root <path> --json --plan --yes
|
|
94
|
-
Install options: --hosts codex,claude,opencode --local | --versioned
|
|
95
|
-
--repo <path> --repo-mode <path>=local|versioned
|
|
96
|
-
--enable-service plane|penpot
|
|
97
|
-
Add options: --repo-local | --repo-versioned
|
|
98
|
-
Service options: --project <repo> --verify-health --verify-read --manifest <file> | --file <export>
|
|
99
|
-
Use --plan to preview. Noninteractive workspace changes require --yes and explicit choices.
|
|
100
|
-
`;function Lh(e,t){if(t==="list")return ft(e,"llm/harness/WORKFLOWS.md");let r=w().regex(/^W(?:0[1-9]|[12][0-9]|3[0-7])$/,"Choose W01 through W37 or list.").parse(t??""),o=ft(e,`llm/harness/workflows/${r}.md`);if(Buffer.byteLength(o)>32768)throw Error(`Workflow ${r} is larger than 32 KiB. Use context to read a section.`);return o}async function Mh(){let{values:e,positionals:t}=Ju(process.argv.slice(2)),[r,o,n,s]=t;if(e.version)return process.stdout.write(`1.0.2
|
|
101
|
-
`),0;if(e.help||!r)return process.stdout.write(Fh),0;let i=sr(e.root??Dh(new URL("../../../",import.meta.url))),c=(y)=>{if(typeof y==="string")process.stdout.write(`${y.trimEnd()}
|
|
102
|
-
`);else process.stdout.write(`${JSON.stringify(y,null,2)}
|
|
103
|
-
`)};if(r==="inspect"&&!o){let y=Ze(i),v=Y(y.root),G=(v?Ee(y.root):void 0)?.projects.map(({path:z,budget:I,services:S})=>({path:z,budget:I.mode,services:S.map(({provider:q})=>q)}))??[];return c({...y,installation:v??null,configuredProjects:G}),0}if(r==="init"&&!o){if(!e.config)return c(await zo(i)),0;if(e.plan)throw Error("Use init without --config to read the setup template. Applying a configuration requires a separate invocation.");return c(await So({root:i,configPath:sr(e.config)})),0}if(r==="workflow"&&!n){let y=Lh(i,o);return c(e.json?{id:o,document:y}:y),0}if(r==="context"&&!n){let y=K(o,"the workspace-relative Markdown path");return c(xu({root:i,file:y,...e.section?{section:e.section}:{}})),0}if(r==="verify"&&o==="document"&&!s){let y=sr(K(e.config,"--config <policy.json>")),v=sr(K(n,"the document path")),k=Ku(y,v);return c(k),k.valid?0:1}if(r==="verify"&&o==="coverage"&&!s){let y=K(n,"the workspace-relative LCOV report"),v=K(e.config,"--config <coverage-policy.json>");return c(zu({root:i,file:y,config:v})),0}if(r==="protect"&&!n){let y=K(e.project,"--project <repo>"),v=K(o,"the repository-relative source map path"),k=Mo({root:i,repository:y,file:v});if(e.yes&&!k.conflicts.length)c({...k,...Wo(k)});else c(k);return k.conflicts.length?1:0}if(r==="service"&&o==="status"&&!s){let y=Re.parse(n),v=K(e.project,"--project <repo>");return c(await Zo({root:i,service:y,project:v,verifyRead:e["verify-read"]??!1,verifyHealth:e["verify-health"]??!1})),0}if(r==="service"&&o==="snapshot"&&!s){let y=Re.parse(n),v=K(e.project,"--project <repo>"),k=e.file??[];if(k.length&&e.manifest)throw Error("Choose --file to prepare a manifest or --manifest to verify it.");if(k.length)c(await Oo({root:i,service:y,project:v,paths:k}));else{let G=K(e.manifest,"--manifest <snapshot.json>");c(await Ro({root:i,service:y,project:v,manifestPath:G}))}return 0}let a=r==="add"&&o==="repo"&&!s,u=r==="install"&&!o;if(!a&&!u&&!(r==="update"&&!o))throw Error("Unknown command or arguments. Run with --help for usage.");let l=process.stdin.isTTY&&!e.json&&!e.plan&&!e.yes,f=void 0,d={root:i,version:"1.0.2",options:e,emit:c},m={},g=f?{select:f.selectChoice,selectMany:f.selectMany}:{};return Yu({...d,...m,...g},a?"add-repo":u?"install":"update",n)}try{process.exitCode=await Mh()}catch(e){let t=e instanceof Error?e.message:String(e);process.stderr.write(`apptoolkit: ${t}
|
|
104
|
-
`),process.exitCode=1}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Optional Plane and Penpot connections
|
|
2
|
-
|
|
3
|
-
Select either provider when installing. The project profile stores each selected connection separately. A workspace can use both providers or use different services for individual repositories. Use the project service map to resolve which provider owns an operation before contacting it.
|
|
4
|
-
|
|
5
|
-
## Connect an existing instance
|
|
6
|
-
|
|
7
|
-
Use the [Plane configuration example](plane.json) or the [Penpot configuration example](penpot.json) in the selected project's `services` array. Replace the example URL and resource IDs with the approved instance and project or file. The `tokenEnv` field identifies an environment variable. Populate it using the authorized credential store at execution time. Keep tokens and environment files outside `llm/` and outside Git.
|
|
8
|
-
|
|
9
|
-
Use `rtk proxy bun --no-env-file llm/harness/runtime/harness.mjs service status plane --project .` to inspect the selected Plane route without opening a connection. Use `penpot` for the design route or set `--project` to the registered relative repository path. Add `--verify-health` to send an unauthenticated HEAD request or `--verify-read` to check the exact resource with the configured credential. The read checks make one bounded request. The Plane check lists at most one work item ID. The Penpot check reads the selected file summary. The report contains status and credential availability, without credentials or resource data. Successful reads establish only the verified scope.
|
|
10
|
-
|
|
11
|
-
- Plane accepts an API key or OAuth token. Use the appropriate `auth` value and grant read access to the intended workspace and project. [Plane API](https://developers.plane.so/api-reference/issue/list-issues)
|
|
12
|
-
- Penpot accepts a personal access token for its internal API. Select the file ID from the authorized file link. [Penpot access tokens](https://help.penpot.app/technical-guide/integration/) · [File summary endpoint](https://github.com/penpot/penpot/blob/develop/backend/src/app/rpc/commands/files.clj)
|
|
13
|
-
|
|
14
|
-
Use the approved service tools or official MCP integration when the task needs an operation beyond these checks. Resolve the exact target and permissions first. A configuration record is not a publication grant.
|
|
15
|
-
|
|
16
|
-
## Set up a local instance
|
|
17
|
-
|
|
18
|
-
Use the provider's documented self-hosted distribution with a pinned release. Set up and operate it separately from the project application. Keep deployment credentials, databases, attachments, and container volumes in approved private storage. Bind the service to loopback for a local-only workspace. After setup, create the approved access credential and use the same project configuration and verification steps as for an existing instance. [Plane Docker Compose guide](https://developers.plane.so/self-hosting/methods/docker-compose) · [Penpot Docker guide](https://help.penpot.app/technical-guide/getting-started/docker/)
|
|
19
|
-
|
|
20
|
-
## Recover approved snapshots after cloning
|
|
21
|
-
|
|
22
|
-
Versioning the harness preserves connection references. Configure `snapshots` to `versioned` separately for each approved project and provider in a versioned workspace. With `off`, use the provider's separately approved private recovery process. A local or unversioned harness refuses to prepare or verify a versioned snapshot.
|
|
23
|
-
|
|
24
|
-
Create the native export using the authorized service. Keep only explicitly approved export files under `harness-snapshots/` and keep credentials outside the export. For Plane, preserve compatible database and attachment exports together if the approved recovery requires both. For Penpot, use the native file export or the chosen deployment's documented backup procedure. Run `rtk proxy bun --no-env-file llm/harness/runtime/harness.mjs service snapshot penpot --project . --file harness-snapshots/design.penpot` and save the resulting JSON as the manifest. Pass `--file` once for each payload. The manifest records the project, service, file paths, byte lengths, and SHA-256 digests.
|
|
25
|
-
|
|
26
|
-
After cloning the versioned workspace, use `rtk proxy bun --no-env-file llm/harness/runtime/harness.mjs service snapshot penpot --project . --manifest harness-snapshots/design.json`. Use `plane` for the ticket route. The command verifies the selected manifest, scope, byte lengths, and digests. Restore through the provider's documented procedure into an explicitly approved destination. Verify the resulting project or file with `service status --verify-read` using the recovered configuration. Native restoration is a separate write operation.
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# W01 Personal pending list
|
|
2
|
-
|
|
3
|
-
**Trigger**. Give me my pending list, or Dame mi lista de pendientes.
|
|
4
|
-
|
|
5
|
-
**Authority**. Use the selected personal or project scope. Read authorized sources and maintain the permitted local list. External edits, assignments and notices require their own grant.
|
|
6
|
-
|
|
7
|
-
1. Load the current numbered list, watched items, successful collection checkpoints and the authoritative service routes for work and pull requests.
|
|
8
|
-
2. Refresh sources with deterministic collectors where available. Query watched items directly, including items outside the current search window. Preserve source IDs and current states.
|
|
9
|
-
3. Reconcile duplicates and completed items. Rank immediate and quick actions first, then group work waiting on someone else and PRs that need the user's attention. Omit standing offers.
|
|
10
|
-
|
|
11
|
-
**Result and recovery**. Present a concise numbered list with links, source freshness and gaps. Preserve the last successful checkpoint for any failed source.
|
|
12
|
-
|
|
13
|
-
Apply the [operating policy](../POLICY.md) and [project guide](../PROJECT.md). Record reusable decisions and improvements at the appropriate checkpoint.
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# W02 Checkpointed activity sweep
|
|
2
|
-
|
|
3
|
-
**Trigger**. Catch me up since the last sweep.
|
|
4
|
-
|
|
5
|
-
**Authority**. Collect activity only from approved repositories, trackers, chats, documents, mail or calendars. Keep collection and external changes separate.
|
|
6
|
-
|
|
7
|
-
1. Resolve identities, scope, time zone, last successful checkpoint per source and watched resources. Freeze a consistent upper bound for the sweep.
|
|
8
|
-
2. Fetch using paginated collectors. Include older threads with new replies and current state for watched items. Normalize stable IDs, timestamps, source links and duplicate event identities.
|
|
9
|
-
3. Verify page, interval and source completeness. Group meaningful changes and state what could not be covered. Repair and retest gaps before advancing the affected source.
|
|
10
|
-
|
|
11
|
-
**Result and recovery**. Return an activity digest and per-source checkpoint outcome. Keep the previous watermark for failed or partial collection and retain the evidence needed to resume.
|
|
12
|
-
|
|
13
|
-
Apply the [operating policy](../POLICY.md) and [project guide](../PROJECT.md). Record reusable decisions and improvements at the appropriate checkpoint.
|