@apptoolkit/harness 0.0.0-stage → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -2
- package/dist/apptoolkit-harness-1.0.0.tgz +0 -0
- package/dist/bun/apptoolkit-harness-1.0.0.tgz +0 -0
- package/dist/bun/native/LICENSE +21 -0
- package/dist/bun/native/README.md +33 -0
- package/dist/bun/native/harness +4 -0
- package/dist/bun/native/payload/HARNESS.md +21 -0
- package/dist/bun/native/payload/author-style/README.md +56 -0
- package/dist/bun/native/payload/author-style/biome-core.json +57 -0
- package/dist/bun/native/payload/author-style/biome-react.json +9 -0
- package/dist/bun/native/payload/author-style/biome-sql.json +9 -0
- package/dist/bun/native/payload/author-style/bun.lock +37 -0
- package/dist/bun/native/payload/author-style/check.llm.md +17 -0
- package/dist/bun/native/payload/author-style/check.test.llm.md +17 -0
- package/dist/bun/native/payload/author-style/check.test.ts +238 -0
- package/dist/bun/native/payload/author-style/check.ts +181 -0
- package/dist/bun/native/payload/author-style/member-spacing.test.ts +172 -0
- package/dist/bun/native/payload/author-style/member-spacing.ts +106 -0
- package/dist/bun/native/payload/author-style/package.json +18 -0
- package/dist/bun/native/payload/author-style/plugins/class-member-order.grit +133 -0
- package/dist/bun/native/payload/author-style/plugins/event-handler-names.grit +110 -0
- package/dist/bun/native/payload/author-style/plugins/explicit-arrow-body.grit +15 -0
- package/dist/bun/native/payload/author-style/plugins/explicit-source-constructs.grit +10 -0
- package/dist/bun/native/payload/author-style/plugins/react-arrow-body.grit +85 -0
- package/dist/bun/native/payload/author-style/plugins/sql-style.grit +125 -0
- package/dist/bun/native/payload/author-style/react-module.llm.md +17 -0
- package/dist/bun/native/payload/author-style/react-module.test.ts +150 -0
- package/dist/bun/native/payload/author-style/react-module.ts +255 -0
- package/dist/bun/native/payload/author-style/source-policy.llm.md +17 -0
- package/dist/bun/native/payload/author-style/source-policy.test.ts +70 -0
- package/dist/bun/native/payload/author-style/source-policy.ts +215 -0
- package/dist/bun/native/payload/author-style/spacing.llm.md +17 -0
- package/dist/bun/native/payload/author-style/spacing.test.ts +174 -0
- package/dist/bun/native/payload/author-style/spacing.ts +211 -0
- package/dist/bun/native/payload/harness/POLICY.md +33 -0
- package/dist/bun/native/payload/harness/PROJECT.md +26 -0
- package/dist/bun/native/payload/harness/REVIEW.md +17 -0
- package/dist/bun/native/payload/harness/TEMPLATES.md +20 -0
- package/dist/bun/native/payload/harness/WORKFLOWS.md +65 -0
- package/dist/bun/native/payload/harness/runtime/ZOD-LICENSE +21 -0
- package/dist/bun/native/payload/harness/runtime/harness.mjs +104 -0
- package/dist/bun/native/payload/harness/services/README.md +26 -0
- package/dist/bun/native/payload/harness/services/penpot.json +7 -0
- package/dist/bun/native/payload/harness/services/plane.json +9 -0
- package/dist/bun/native/payload/harness/workflows/W01.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W02.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W03.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W04.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W05.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W06.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W07.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W08.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W09.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W10.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W11.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W12.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W13.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W14.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W15.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W16.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W17.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W18.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W19.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W20.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W21.md +15 -0
- package/dist/bun/native/payload/harness/workflows/W22.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W23.md +21 -0
- package/dist/bun/native/payload/harness/workflows/W24.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W25.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W26.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W27.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W28.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W29.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W30.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W31.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W32.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W33.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W34.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W35.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W36.md +13 -0
- package/dist/bun/native/payload/harness/workflows/W37.md +13 -0
- package/dist/bun/npm/LICENSE +21 -0
- package/dist/bun/npm/README.md +33 -0
- package/dist/bun/npm/harness.js +104 -0
- package/dist/bun/npm/package.json +23 -0
- package/dist/bun/npm/payload/HARNESS.md +21 -0
- package/dist/bun/npm/payload/author-style/README.md +56 -0
- package/dist/bun/npm/payload/author-style/biome-core.json +57 -0
- package/dist/bun/npm/payload/author-style/biome-react.json +9 -0
- package/dist/bun/npm/payload/author-style/biome-sql.json +9 -0
- package/dist/bun/npm/payload/author-style/bun.lock +37 -0
- package/dist/bun/npm/payload/author-style/check.llm.md +17 -0
- package/dist/bun/npm/payload/author-style/check.test.llm.md +17 -0
- package/dist/bun/npm/payload/author-style/check.test.ts +238 -0
- package/dist/bun/npm/payload/author-style/check.ts +181 -0
- package/dist/bun/npm/payload/author-style/member-spacing.test.ts +172 -0
- package/dist/bun/npm/payload/author-style/member-spacing.ts +106 -0
- package/dist/bun/npm/payload/author-style/package.json +18 -0
- package/dist/bun/npm/payload/author-style/plugins/class-member-order.grit +133 -0
- package/dist/bun/npm/payload/author-style/plugins/event-handler-names.grit +110 -0
- package/dist/bun/npm/payload/author-style/plugins/explicit-arrow-body.grit +15 -0
- package/dist/bun/npm/payload/author-style/plugins/explicit-source-constructs.grit +10 -0
- package/dist/bun/npm/payload/author-style/plugins/react-arrow-body.grit +85 -0
- package/dist/bun/npm/payload/author-style/plugins/sql-style.grit +125 -0
- package/dist/bun/npm/payload/author-style/react-module.llm.md +17 -0
- package/dist/bun/npm/payload/author-style/react-module.test.ts +150 -0
- package/dist/bun/npm/payload/author-style/react-module.ts +255 -0
- package/dist/bun/npm/payload/author-style/source-policy.llm.md +17 -0
- package/dist/bun/npm/payload/author-style/source-policy.test.ts +70 -0
- package/dist/bun/npm/payload/author-style/source-policy.ts +215 -0
- package/dist/bun/npm/payload/author-style/spacing.llm.md +17 -0
- package/dist/bun/npm/payload/author-style/spacing.test.ts +174 -0
- package/dist/bun/npm/payload/author-style/spacing.ts +211 -0
- package/dist/bun/npm/payload/harness/POLICY.md +33 -0
- package/dist/bun/npm/payload/harness/PROJECT.md +26 -0
- package/dist/bun/npm/payload/harness/REVIEW.md +17 -0
- package/dist/bun/npm/payload/harness/TEMPLATES.md +20 -0
- package/dist/bun/npm/payload/harness/WORKFLOWS.md +65 -0
- package/dist/bun/npm/payload/harness/runtime/ZOD-LICENSE +21 -0
- package/dist/bun/npm/payload/harness/runtime/harness.mjs +104 -0
- package/dist/bun/npm/payload/harness/services/README.md +26 -0
- package/dist/bun/npm/payload/harness/services/penpot.json +7 -0
- package/dist/bun/npm/payload/harness/services/plane.json +9 -0
- package/dist/bun/npm/payload/harness/workflows/W01.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W02.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W03.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W04.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W05.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W06.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W07.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W08.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W09.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W10.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W11.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W12.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W13.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W14.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W15.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W16.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W17.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W18.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W19.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W20.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W21.md +15 -0
- package/dist/bun/npm/payload/harness/workflows/W22.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W23.md +21 -0
- package/dist/bun/npm/payload/harness/workflows/W24.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W25.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W26.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W27.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W28.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W29.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W30.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W31.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W32.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W33.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W34.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W35.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W36.md +13 -0
- package/dist/bun/npm/payload/harness/workflows/W37.md +13 -0
- package/dist/npm/LICENSE +21 -0
- package/dist/npm/README.md +30 -0
- package/dist/npm/harness.js +104 -0
- package/dist/npm/package.json +25 -0
- package/dist/npm/payload/HARNESS.md +21 -0
- package/dist/npm/payload/author-style/README.md +56 -0
- package/dist/npm/payload/author-style/biome-core.json +57 -0
- package/dist/npm/payload/author-style/biome-react.json +9 -0
- package/dist/npm/payload/author-style/biome-sql.json +9 -0
- package/dist/npm/payload/author-style/check.llm.md +17 -0
- package/dist/npm/payload/author-style/check.test.llm.md +17 -0
- package/dist/npm/payload/author-style/check.test.ts +224 -0
- package/dist/npm/payload/author-style/check.ts +179 -0
- package/dist/npm/payload/author-style/member-spacing.test.ts +172 -0
- package/dist/npm/payload/author-style/member-spacing.ts +106 -0
- package/dist/npm/payload/author-style/package-lock.json +180 -0
- package/dist/npm/payload/author-style/package.json +17 -0
- package/dist/npm/payload/author-style/plugins/class-member-order.grit +133 -0
- package/dist/npm/payload/author-style/plugins/event-handler-names.grit +110 -0
- package/dist/npm/payload/author-style/plugins/explicit-arrow-body.grit +15 -0
- package/dist/npm/payload/author-style/plugins/explicit-source-constructs.grit +10 -0
- package/dist/npm/payload/author-style/plugins/react-arrow-body.grit +85 -0
- package/dist/npm/payload/author-style/plugins/sql-style.grit +125 -0
- package/dist/npm/payload/author-style/react-module.llm.md +17 -0
- package/dist/npm/payload/author-style/react-module.test.ts +150 -0
- package/dist/npm/payload/author-style/react-module.ts +255 -0
- package/dist/npm/payload/author-style/source-policy.llm.md +17 -0
- package/dist/npm/payload/author-style/source-policy.test.ts +70 -0
- package/dist/npm/payload/author-style/source-policy.ts +215 -0
- package/dist/npm/payload/author-style/spacing.llm.md +17 -0
- package/dist/npm/payload/author-style/spacing.test.ts +174 -0
- package/dist/npm/payload/author-style/spacing.ts +211 -0
- package/dist/npm/payload/harness/POLICY.md +33 -0
- package/dist/npm/payload/harness/PROJECT.md +26 -0
- package/dist/npm/payload/harness/REVIEW.md +17 -0
- package/dist/npm/payload/harness/TEMPLATES.md +20 -0
- package/dist/npm/payload/harness/WORKFLOWS.md +65 -0
- package/dist/npm/payload/harness/runtime/ZOD-LICENSE +21 -0
- package/dist/npm/payload/harness/runtime/harness.mjs +104 -0
- package/dist/npm/payload/harness/services/README.md +26 -0
- package/dist/npm/payload/harness/services/penpot.json +7 -0
- package/dist/npm/payload/harness/services/plane.json +9 -0
- package/dist/npm/payload/harness/workflows/W01.md +13 -0
- package/dist/npm/payload/harness/workflows/W02.md +13 -0
- package/dist/npm/payload/harness/workflows/W03.md +13 -0
- package/dist/npm/payload/harness/workflows/W04.md +13 -0
- package/dist/npm/payload/harness/workflows/W05.md +13 -0
- package/dist/npm/payload/harness/workflows/W06.md +13 -0
- package/dist/npm/payload/harness/workflows/W07.md +13 -0
- package/dist/npm/payload/harness/workflows/W08.md +13 -0
- package/dist/npm/payload/harness/workflows/W09.md +13 -0
- package/dist/npm/payload/harness/workflows/W10.md +13 -0
- package/dist/npm/payload/harness/workflows/W11.md +13 -0
- package/dist/npm/payload/harness/workflows/W12.md +13 -0
- package/dist/npm/payload/harness/workflows/W13.md +13 -0
- package/dist/npm/payload/harness/workflows/W14.md +13 -0
- package/dist/npm/payload/harness/workflows/W15.md +13 -0
- package/dist/npm/payload/harness/workflows/W16.md +13 -0
- package/dist/npm/payload/harness/workflows/W17.md +13 -0
- package/dist/npm/payload/harness/workflows/W18.md +13 -0
- package/dist/npm/payload/harness/workflows/W19.md +13 -0
- package/dist/npm/payload/harness/workflows/W20.md +13 -0
- package/dist/npm/payload/harness/workflows/W21.md +15 -0
- package/dist/npm/payload/harness/workflows/W22.md +13 -0
- package/dist/npm/payload/harness/workflows/W23.md +21 -0
- package/dist/npm/payload/harness/workflows/W24.md +13 -0
- package/dist/npm/payload/harness/workflows/W25.md +13 -0
- package/dist/npm/payload/harness/workflows/W26.md +13 -0
- package/dist/npm/payload/harness/workflows/W27.md +13 -0
- package/dist/npm/payload/harness/workflows/W28.md +13 -0
- package/dist/npm/payload/harness/workflows/W29.md +13 -0
- package/dist/npm/payload/harness/workflows/W30.md +13 -0
- package/dist/npm/payload/harness/workflows/W31.md +13 -0
- package/dist/npm/payload/harness/workflows/W32.md +13 -0
- package/dist/npm/payload/harness/workflows/W33.md +13 -0
- package/dist/npm/payload/harness/workflows/W34.md +13 -0
- package/dist/npm/payload/harness/workflows/W35.md +13 -0
- package/dist/npm/payload/harness/workflows/W36.md +13 -0
- package/dist/npm/payload/harness/workflows/W37.md +13 -0
- package/package.json +35 -4
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
var Xu=Object.defineProperty;var Yu=(e)=>e;function Qu(e,t){this[e]=Yu.bind(null,t)}var ep=(e,t)=>{for(var r in t)Xu(e,r,{get:t[r],enumerable:!0,configurable:!0,set:Qu.bind(t,r)})};import{resolve as tr}from"node:path";import{fileURLToPath as zh}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 ir(e,t="|"){return e.map((r)=>ar(r)).join(t)}function He(e,t){if(typeof t==="bigint")return t.toString();return t}class Bo{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 Ge(e){return new Bo(e)}function Jo(e){return e===null||e===void 0}function gt(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function Vo(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 qe(e){let t=Object.getOwnPropertyDescriptor(e,"shape");return t?.get?t.get.raw:t?.value}function ue(e){return qe(e._zod.def)??e._zod.def.shape}function Ko(e,t,r){Object.defineProperty(e,t,{get(){let o=r();return Q(this,t,o),o},enumerable:!0,configurable:!0})}function Ho(e,t,r){if(t in e)Q(e,t,r);else e[t]=r}function be(e,t,r,o){let n=ue(t);for(let i of r){let s=Object.getOwnPropertyDescriptor(n,i);if(!s.enumerable)continue;if(s.get)Ko(e,i,()=>{let c=t._zod.def.shape[i];return o?o(c,i):c});else Ho(e,i,o?o(s.value,i):s.value)}}function tp(e,t){for(let r of Reflect.ownKeys(t)){let o=Object.getOwnPropertyDescriptor(t,r);if(!o.enumerable)continue;if(o.get)Ko(e,r,()=>t[r]);else Ho(e,r,o.value)}}function W(...e){let t={};for(let r of e){let o=Object.getOwnPropertyDescriptors(r);Object.assign(t,o)}return Object.defineProperties({},t)}function Go(e){return JSON.stringify(e)}function qo(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var sr="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Ce(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}var Xo=Ge(()=>{if(B.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function Re(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 cr(e){if(Re(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 Yo=new Set(["string","number","symbol"]);function ge(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 ar(e){if(typeof e==="bigint")return e.toString()+"n";if(typeof e==="string")return`"${e}"`;return`${e}`}function Qo(e){return Object.keys(e).filter((t)=>e[t]._zod.optin!==void 0&&e[t]._zod.optout==="optional")}var yt=(()=>({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]}))(),ur={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function rp(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 i={};return be(i,e,xt(e,t)),ne(e,W(r,{shape:i,checks:[]}))}function xt(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 op(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 i=new Set(xt(e,t)),s={};return be(s,e,Reflect.ownKeys(ue(e)).filter((c)=>!i.has(c))),ne(e,W(r,{shape:s,checks:[]}))}function np(e,t){if(!Re(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 i of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,i)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return ne(e,W(e._zod.def,{shape:en(e,t)}))}function en(e,t){let r={};return be(r,e,Reflect.ownKeys(ue(e))),tp(r,t),r}function ip(e,t){if(!Re(t))throw Error("Invalid input to safeExtend: expected a plain object");return ne(e,W(e._zod.def,{shape:en(e,t)}))}function sp(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={};be(r,e,Reflect.ownKeys(ue(e))),be(r,t,Reflect.ownKeys(ue(t)));let o=W(e._zod.def,{shape:r,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return ne(e,o)}function tn(e,t,r,o="partial"){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${o}() cannot be used on object schemas containing refinements`);let c=r?new Set(xt(t,r)):void 0,a={};return be(a,t,Reflect.ownKeys(ue(t)),e&&((u,p)=>c&&!c.has(p)?u:new e({type:"optional",innerType:u}))),ne(t,W(t._zod.def,{shape:a,checks:[]}))}function cp(e,t,r){let o=r?new Set(xt(t,r)):void 0,n={};return be(n,t,Reflect.ownKeys(ue(t)),(i,s)=>o&&!o.has(s)?i:new e({type:"nonoptional",innerType:i})),ne(t,W(t._zod.def,{shape:n}))}function ie(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 rn(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 vt(e,t){return t.map((r)=>{var o;return(o=r).path??(o.path=[]),r.path.unshift(e),r})}function Ve(e){return typeof e==="string"?e:e?.message}function pr(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 wt(e,t,r){var o;for(let n=t;n<e.length;n++)(o=e[n]).schema??(o.schema=r)}function ye(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 i=e.schema!==e.inst?e.schema?._zod.def?.error:void 0,s=e.message?e.message:Ve(e.inst?._zod.def?.error?.(e))??Ve(i?.(e))??Ve(t?.error?.(e))??Ve(r.customError?.(e))??Ve(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=s,t?.reportInput)c.input=e.input;return c}var ap=/[\uD800-\uDBFF]/;function _t(e){let t=e.length;if(!ap.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 bt(e){if(Array.isArray(e))return"array";if(typeof e==="string")return"string";return"unknown"}function on(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 ke(...e){let[t,r,o]=e;if(typeof t==="string")return{message:t,code:"custom",input:r,inst:o};return{...t}}function nn(e,t){for(let r in t){let o=Object.getOwnPropertyDescriptor(t,r);if(o.get)Object.defineProperty(e,r,{...o,enumerable:!1});else up(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 kt(e,t,r){return pe(e,t,r,!1)}function $t(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 up(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 pp(e,t){let r=Object.getPrototypeOf(e);return t in r?void 0:r}var nr,me=!1,lp={configurable:!0,get(){me=!0;return}};function b(e,t,r){let o=Object.getPrototypeOf(e._zod);if(t in o&&nr!==e._zod){nr=void 0;return}nr=e._zod,Object.defineProperty(o,t,{configurable:!0,get(){Object.defineProperty(this,t,lp);let n=me;me=!1;try{let i=r(this);if(me)delete this[t];else Object.defineProperty(this,t,{configurable:!0,writable:!0,value:i});return me=me||n,i}catch(i){throw delete this[t],me=me||n,i}},set(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})}function fp(e,t,r,o){let n=pp(e,t);if(!n)return;Object.defineProperty(n,t,{configurable:!0,get(){let i={configurable:!0,writable:!0,enumerable:o,value:void 0};return Object.defineProperty(this,t,i),i.value=r(this),Object.defineProperty(this,t,i),i.value},set(i){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:o,value:i})}})}var dp="~constantCatch";function sn(e){let t=()=>e;return t[dp]=!0,t}var cn;var lr={value:void 0,enumerable:!1},an="captureStackTrace"in Error?Error:null;function hp(e){let t=an;if(t){let r=t.stackTraceLimit;if(typeof r==="number"){try{t.stackTraceLimit=0}catch{return an=null,new e}try{return new e}finally{t.stackTraceLimit=r}}}return new e}function h(e,t,r,o){let n={};function i(f){this.def=f,this.constr=l,this.traits=new Set}i.prototype=n;let s=r,c=s&&new WeakSet;function a(f,d){if(!f._zod){lr.value=new i(d);try{Object.defineProperty(f,"_zod",lr)}finally{lr.value=void 0}}else if(f._zod.traits.has(e))return;if(f._zod.traits.add(e),t(f,d),c){let m=Object.getPrototypeOf(f),y=f._zod.constr.prototype,v=m;while(v&&v!==y)v=Object.getPrototypeOf(v);let k=v??m;if(!c.has(k))c.add(k),nn(k,s)}let g=l.prototype;for(let m in g){if(!Object.prototype.hasOwnProperty.call(g,m))continue;if(!(m in f))f[m]=g[m].bind(f)}}let u=o?.Parent??Object;class p extends u{}Object.defineProperty(p,"name",{value:e});function l(f){let d=o?.Parent?hp(p):this;a(d,f);let g=d._zod.deferred;if(g){for(let y of g)y();d._zod.deferred=void 0}let m=globalThis.__zod_globalConfig?.postProcessor;if(m)m(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 se extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Xe extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`);this.name="ZodEncodeError"}}(cn=globalThis).__zod_globalConfig??(cn.__zod_globalConfig={});var B=globalThis.__zod_globalConfig;function te(e){if(e)Object.assign(B,e);return B}function mp(){let e=this._zod;return e.message??(e.message=JSON.stringify(e.def,He,2)),e.message}function gp(e){this._zod.message=e}var yp={get:mp,set:gp,enumerable:!0,configurable:!0},dr={value:void 0,enumerable:!1},un=new WeakSet([Object.prototype,Error.prototype]),pn=(e,t)=>{e.name="$ZodError",dr.value=t,Object.defineProperty(e,"issues",dr),dr.value=void 0,Object.defineProperty(e,"message",yp);let r=Object.getPrototypeOf(e);if(!un.has(r))un.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})}})},ln=h("$ZodError",pn),Ih=h("$ZodError",pn,void 0,{Parent:Error});function xp(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 fn(e,t=(r)=>r.message){let r={},o=[];for(let n of e.issues)if(n.path.length>0)xp(r,n.path[0],()=>[]).push(t(n));else o.push(t(n));return{formErrors:o,fieldErrors:r}}function dn(e,t=(r)=>r.message){let r={_errors:[]},o=(n,i=[])=>{for(let s of n.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map((c)=>o({issues:c},[...i,...s.path]));else if(s.code==="invalid_key")o({issues:s.issues},[...i,...s.path]);else if(s.code==="invalid_element")o({issues:s.issues},[...i,...s.path]);else{let c=[...i,...s.path];if(c.length===0)r._errors.push(t(s));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(s));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(s));a=f,u++}}}};return o(e),r}function zt(e,t){return{callee:t?.callee??e,Err:t?.Err}}var St=(e)=>{let t=(r,o,n,i)=>{let s=n?{...n,async:!1}:{async:!1},c=r._zod.run({value:o,issues:[]},s);if(c instanceof Promise)throw new se;if(c.issues.length){let a=new(i?.Err??e)(c.issues.map((u)=>ye(u,s,te())));throw sr(a,i?.callee??t),a}return c.value};return t};var Pt=(e)=>{let t=async(r,o,n,i)=>{let s=n?{...n,async:!0}:{async:!0},c=r._zod.run({value:o,issues:[]},s);if(c instanceof Promise)c=await c;if(c.issues.length){let a=new(i?.Err??e)(c.issues.map((u)=>ye(u,s,te())));throw sr(a,i?.callee??t),a}return c.value};return t};var Et=(e)=>(t,r,o)=>{let n=o?{...o,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},n);if(i instanceof Promise)throw new se;return i.issues.length?hn(e,i.issues,n):{success:!0,data:i.value}};function hn(e,t,r){let o;return{success:!1,get error(){if(!o)o=new e(t.map((n)=>ye(n,r,te()))),t=void 0,r=void 0;return o},set error(n){o=n,t=void 0,r=void 0}}}var Zt=(e)=>async(t,r,o)=>{let n=o?{...o,async:!0}:{async:!0},i=t._zod.run({value:r,issues:[]},n);if(i instanceof Promise)i=await i;return i.issues.length?hn(e,i.issues,n):{success:!0,data:i.value}};var vp=Symbol.for("zod.compile.invalid"),wp=Symbol.for("zod.compile.fallback"),hr=(e,t,r)=>{let o=e._zod.bag.validator;if(o!==void 0){if(o(t)!==vp)return!0;if(o.definite===!0&&r===void 0)return!1}return _p(e,t,r)};function _p(e,t,r){let o=r?{...r,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},n=e._zod.bag.fallbackRun,i;if(n)o[wp]=!0,i=n({value:t,issues:[]},o);else i=e._zod.run({value:t,issues:[]},o);if(i instanceof Promise)throw new se;return i.issues.length===0}var mr=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},mn=(e)=>{let t=St(e),r=(o,n,i,s)=>{let c=i?{...i,direction:"backward"}:{direction:"backward"};return t(o,n,c,zt(r,s))};return r};var gn=(e)=>{let t=St(e),r=(o,n,i,s)=>t(o,n,i,zt(r,s));return r};var yn=(e)=>{let t=Pt(e),r=async(o,n,i,s)=>{let c=i?{...i,direction:"backward"}:{direction:"backward"};return await t(o,n,c,zt(r,s))};return r};var xn=(e)=>{let t=Pt(e),r=async(o,n,i,s)=>await t(o,n,i,zt(r,s));return r};var vn=(e)=>(t,r,o)=>{let n=o?{...o,direction:"backward"}:{direction:"backward"};return Et(e)(t,r,n)};var wn=(e)=>(t,r,o)=>Et(e)(t,r,o);var _n=(e)=>async(t,r,o)=>{let n=o?{...o,direction:"backward"}:{direction:"backward"};return Zt(e)(t,r,n)};var bn=(e)=>async(t,r,o)=>Zt(e)(t,r,o);var kn=/^[cC][0-9a-z]{6,}$/,$n=/^[0-9a-z]+$/,zn=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,Sn=/^[0-9a-vA-V]{20}$/,Pn=/^[A-Za-z0-9]{27}$/,En=/^[a-zA-Z0-9_-]{21}$/;function Zn(e){return new RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}var On=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var Cn=/^([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})$/,yr=(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 Rn=/^(?:[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 bp="^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$";function In(){return new RegExp(bp,"u")}var An=/^(?:(?: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])$/,Tn=/^(([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 Nn=/^((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])$/,jn=/^(([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])$/,Dn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Fn=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/;var Ln=/^https?$/,Mn=/^\+[1-9]\d{6,14}$/;var Un="(?:(?:\\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 kp(e){return new RegExp(`^${e}$`)}var Wn=kp(Un);function gr(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 Bn(e){return new RegExp(`^${gr(e)}$`)}function Jn(e){let t=["Z"];if(e.offset)t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let r=`${gr({precision:e.precision,seconds:!0})}(?:${t.join("|")})`,o=e.local?`${r}|${gr({precision:e.precision})}`:r;return new RegExp(`^${Un}T(?:${o})$`)}var Vn=/^[\s\S]{0,}$/;var Kn=/^-?\d+n?$/;var xr=/^-?\d+(?:\.\d+)?$/,Hn=/^(?:true|false)$/i;var Gn=/^[^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 vr=(e)=>{let t=e.value;return!Jo(t)&&t.length!==void 0},Ot={number:"number",bigint:"bigint",object:"date"},wr=h("$ZodCheckLessThan",(e,t)=>{T.init(e,t);let r=Ot[typeof t.value];e._zod.check=(o)=>{if(t.inclusive?o.value<=t.value:o.value<t.value)return;o.issues.push({origin:Ot[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})}}),_r=h("$ZodCheckGreaterThan",(e,t)=>{T.init(e,t);let r=Ot[typeof t.value];e._zod.check=(o)=>{if(t.inclusive?o.value>=t.value:o.value>t.value)return;o.issues.push({origin:Ot[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})}}),Xn=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):Vo(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})}}),Yn=h("$ZodCheckNumberFormat",(e,t)=>{T.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),o=r?"int":"number",[n,i]=yt[t.format];e._zod.check=(s)=>{let c=s.value;if(r){if(!Number.isInteger(c)){s.issues.push({expected:o,format:t.format,code:"invalid_type",continue:!1,input:c,inst:e});return}if(!Number.isSafeInteger(c)){if(c>0)s.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 s.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)s.issues.push({origin:"number",input:c,code:"too_small",minimum:n,inclusive:!0,inst:e,continue:!t.abort});if(c>i)s.issues.push({origin:"number",input:c,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}});var Qn=h("$ZodCheckMaxLength",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=vr),e._zod.check=(o)=>{let n=o.value,i=n.length;if((typeof n==="string"&&i>t.maximum?_t(n):i)<=t.maximum)return;let c=bt(n);o.issues.push({origin:c,code:"too_big",maximum:t.maximum,inclusive:!0,input:n,inst:e,continue:!t.abort})}}),ei=h("$ZodCheckMinLength",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=vr),e._zod.check=(o)=>{let n=o.value,i=n.length;if((typeof n==="string"&&i>=t.minimum&&i<t.minimum*2?_t(n):i)>=t.minimum)return;let c=bt(n);o.issues.push({origin:c,code:"too_small",minimum:t.minimum,inclusive:!0,input:n,inst:e,continue:!t.abort})}}),ti=h("$ZodCheckLengthEquals",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=vr),e._zod.check=(o)=>{let n=o.value,i=n.length,s=typeof n==="string"&&i>=t.length&&i<=t.length*2?_t(n):i;if(s===t.length)return;let c=bt(n),a=s>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})}}),Qe=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=()=>{})}),ri=h("$ZodCheckRegex",(e,t)=>{Qe.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})}}),oi=h("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Gn),Qe.init(e,t)}),ni=h("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=qn),Qe.init(e,t)}),ii=h("$ZodCheckIncludes",(e,t)=>{T.init(e,t);let r=ge(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})}}),si=h("$ZodCheckStartsWith",(e,t)=>{T.init(e,t);let r=new RegExp(`^${ge(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})}}),ci=h("$ZodCheckEndsWith",(e,t)=>{T.init(e,t);let r=new RegExp(`.*${ge(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 ai=h("$ZodCheckOverwrite",(e,t)=>{T.init(e,t),e._zod.check=(r)=>{r.value=t.tx(r.value)}});class br{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((i)=>i),o=Math.min(...r.map((i)=>i.length-i.trimStart().length)),n=r.map((i)=>i.slice(o)).map((i)=>" ".repeat(this.indent*2)+i);for(let i of n)this.content.push(i)}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 pi={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=pi;let o=e._zod.def.checks,n=e._zod.traits.has("$ZodCheck")?[e,...o??[]]:o?.length?[...o]:[];for(let i of n)for(let s of i._zod.onattach)s(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(c,a,u)=>{if(c.memo)return c;let p=ie(c),l;for(let f of a){if(f._zod.def.when){if(rn(c))continue;if(!f._zod.def.when(c))continue}else if(p)continue;let d=c.issues.length,g=f._zod.check(c);if(g instanceof Promise&&u?.async===!1)throw new se;if(l||g instanceof Promise)l=(l??Promise.resolve()).then(async()=>{if(await g,c.issues.length===d)return;if(wt(c.issues,d,e),!p)p=ie(c,d)});else{if(c.issues.length===d)continue;if(wt(c.issues,d,e),!p)p=ie(c,d)}}if(l)return l.then(()=>c);return c},s=(c,a,u)=>{if(ie(c))return c.aborted=!0,c;let p=i(a,n,u);if(p instanceof Promise){if(u.async===!1)throw new se;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)=>s(l,c,a));return s(p,c,a)}let u=e._zod.parse(c,a);if(u instanceof Promise){if(a.async===!1)throw new se;return u.then((p)=>i(p,n,a))}return i(u,n,a)}}},{get "~standard"(){return kt(this,"~standard",$r(this))},set "~standard"(e){pe(this,"~standard",e)}}),_i=(e,t)=>e.issues.length?{issues:e.issues.map((r)=>ye(r,t,te()))}:{value:e.value};async function zp(e,t){let r={async:!0};return _i(await e._zod.run({value:t,issues:[]},r),r)}function $r(e){return{validate:(t)=>{let r={async:!1};try{let o=e._zod.run({value:t,issues:[]},r);if(!(o instanceof Promise))return _i(o,r)}catch(o){}return zp(e,t)},vendor:"zod",version:1}}var At=h("$ZodString",(e,t)=>{E.init(e,t),e._zod.pattern=t.pattern??Vn,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)=>{Qe.init(e,t),At.init(e,t)}),bi=h("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Cn),Z.init(e,t)}),ki=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=yr(o))}else t.pattern??(t.pattern=yr());Z.init(e,t)}),$i=h("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Rn),Z.init(e,t)}),zi=1,Rt=2;function Si(e){try{if(typeof URL<"u"&&typeof URL.canParse==="function")return URL.canParse(e);return new URL(e),!0}catch{return!1}}function Sp(e,t){if(!("normalize"in t)&&!("hostname"in t)&&!("protocol"in t))return Si(e)||Rt;return Pp(e,t)}function Pp(e,t){if(!t.normalize&&t.protocol?.source===Ln.source&&!/^https?:\/\//i.test(e))return zi;try{if(typeof URL<"u"){let r=URL;if(typeof r.parse==="function")return r.parse(e)??Rt}return new URL(e)}catch{return Rt}}var Ep=/[\t\n\r]/g;function li(e){return e.replace(Ep,"")}function Zp(e,t){return t.lastIndex=0,t.test(e.hostname)}function Op(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(":")?e.protocol.slice(0,-1):e.protocol)}var Pi=h("$ZodURL",(e,t)=>{Z.init(e,t),e._zod.check=(r)=>{try{let o=r.value.trim(),n=Sp(o,t);if(n===zi){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!t.abort});return}if(n===Rt){r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort});return}if(n===!0){r.value=li(o);return}if(t.hostname&&!Zp(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&&!Op(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:li(o);return}catch(o){r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),Ei=h("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=In()),Z.init(e,t)}),Zi=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?En:Zn(t.length)),Z.init(e,t)}),Oi=h("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=kn),Z.init(e,t)}),Ci=h("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=$n),Z.init(e,t)}),Ri=h("$ZodULID",(e,t)=>{t.pattern??(t.pattern=zn),Z.init(e,t)}),Ii=h("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Sn),Z.init(e,t)}),Ai=h("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Pn),Z.init(e,t)}),Ti=h("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Jn(t)),Z.init(e,t)}),Ni=h("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Wn),Z.init(e,t)}),ji=h("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Bn(t)),Z.init(e,t)}),Di=h("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=On),Z.init(e,t)}),Fi=h("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=An),Z.init(e,t)}),Cp=/^[0-9a-fA-F:.]+$/;function Li(e){if(!Cp.test(e))return!1;return Si(`http://[${e}]`)}var Mi=h("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Tn),Z.init(e,t),e._zod.check=(r)=>{if(!Li(r.value))r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}});var Ui=h("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Nn),Z.init(e,t)});function Rp(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 Li(r)}var Wi=h("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=jn),Z.init(e,t),e._zod.check=(r)=>{if(!Rp(r.value))r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}});function Bi(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}$/,Ji=h("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=zr),Z.init(e,t),e._zod.check=(r)=>{if(Bi(r.value))return;r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}}),Tt=/^[A-Za-z0-9_-]*$/;function Ip(e){if(!Tt.test(e))return!1;let t=e.replace(/[-_]/g,(o)=>o==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return Bi(r)}var Vi=h("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Tt),Z.init(e,t),e._zod.check=(r)=>{if(Ip(r.value))return;r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Ki=h("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Mn),Z.init(e,t)});function Ap(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 Hi=h("$ZodJWT",(e,t)=>{Z.init(e,t),e._zod.check=(r)=>{if(Ap(r.value,t.alg))return;r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}});var Sr=h("$ZodNumber",(e,t)=>{E.init(e,t),e._zod.pattern=xr,e._zod.parse=(r,o)=>{if(t.coerce)try{r.value=Number(r.value)}catch(s){}let n=r.value;if(typeof n==="number"&&!Number.isNaN(n)&&Number.isFinite(n))return r;let i=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,...i?{received:i}:{}}),r}}),Gi=h("$ZodNumberFormat",(e,t)=>{Yn.init(e,t),Sr.init(e,t)}),qi=h("$ZodBoolean",(e,t)=>{E.init(e,t),e._zod.pattern=Hn,e._zod.parse=(r,o)=>{if(t.coerce)try{r.value=Boolean(r.value)}catch(i){}let n=r.value;if(typeof n==="boolean")return r;return r.issues.push({expected:"boolean",code:"invalid_type",input:n,inst:e}),r}}),Xi=h("$ZodBigInt",(e,t)=>{E.init(e,t),e._zod.pattern=Kn,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 Yi=h("$ZodUnknown",(e,t)=>{E.init(e,t),e._zod.parse=(r)=>r}),Qi=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 es=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,i=n instanceof Date;if(i&&!Number.isNaN(n.getTime()))return r;return r.issues.push({expected:"date",code:"invalid_type",input:n,...i?{received:"Invalid Date"}:{},inst:e}),r}});function Tp(e,t){let r=pr(e._zod.def.checks);if(!r.length)return;let o=Math.min(...r.map((i)=>i[0])),n=e._zod.parse;e._zod.parse=(i,s)=>{let c=t(i.value);if(c>o&&!s?.skipChecks&&s?.direction!=="backward"){for(let[a,u]of pr(e._zod.def.checks))if(c>a&&u._zod.def.when(i)){let p=i.issues.length;return u._zod.check(i),i.issues[p].continue=!1,wt(i.issues,p,e),i}}return n(i,s)}}var Np=(e)=>Array.isArray(e)?e.length:-1;function fi(e,t,r){if(e.issues.length)t.issues.push(...vt(r,e.issues));t.value[r]=e.value}var ts=h("$ZodArray",(e,t)=>{E.init(e,t);let r=B.memoizer;r?.attach(e),e._zod.parse=(o,n)=>{let i=o.value;if(!Array.isArray(i))return o.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),o;o.value=r?r.alloc(e,o,Array(i.length),n):Array(i.length);let s=[],c=n?.abortEarly;for(let a=0;a<i.length;a++){let u=i[a],p=t.element._zod.run({value:u,issues:[]},n);if(p instanceof Promise)s.push(p.then((l)=>fi(l,o,a)));else if(fi(p,o,a),c&&p.issues.length!==0&&ie(p))break}if(s.length)return Promise.all(s).then(()=>o);return o},Tp(e,Np)});function It(e,t,r,o,n,i){let s=r in o,c=i==="optional";if(!s&&c&&n==="optional")return;if(e.issues.length){if(n!==void 0&&c&&!s)return;t.issues.push(...vt(r,e.issues))}if(!s&&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(s||n==="defaulted"&&!c)t.value[r]=void 0}else t.value[r]=e.value}var jp=[];function rs(e){let t=Object.keys(e.shape),r=Object.getOwnPropertySymbols(e.shape),o=r.length?r:jp,n=o.length?[...t,...o]:t;for(let s of n)if(!e.shape?.[s]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${String(s)}": expected a Zod schema`);let i=Qo(e.shape);return{...e,allKeys:n,symbolKeys:o,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(i)}}function os(e,t,r,o,n,i,s){let c=[],a=n.keySet,u=n.catchall._zod,p=u.def.type,{optin:l,optout:f}=u,d=0;for(let g in t){if(s&&r.issues.length!==d){if(ie(r,d))break;d=r.issues.length}if(a.has(g))continue;if(g==="__proto__"){if(p==="never")c.push(g);continue}if(p==="never"){c.push(g);continue}let m=u.run({value:t[g],issues:[]},o);if(m instanceof Promise)e.push(m.then((y)=>It(y,r,g,t,l,f)));else It(m,r,g,t,l,f)}if(c.length)r.issues.push({code:"unrecognized_keys",keys:c,input:t,inst:i,continue:!0});if(!e.length)return r;return Promise.all(e).then(()=>r)}var Dp=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=Ge(()=>rs(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 g of d.values)l[f].add(g);if(d.optin!==void 0)l[f].add(void 0)}}return l});let i=Ce,s=t.catchall,c,a=B.memoizer;a?.attach(e),e._zod.parse=(u,p)=>{c??(c=n.value);let l=u.value;if(!i(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,g=p?.abortEarly,m=u.issues.length;for(let y of c.allKeys){if(g&&u.issues.length!==m){if(ie(u,m))break;m=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)=>It(I,u,y,l,k,G)));else It(z,u,y,l,k,G)}if(!s)return f.length?Promise.all(f).then(()=>u):u;return os(f,l,u,p,n.value,e,g===!0)}}),ns=h("$ZodObjectJIT",(e,t)=>{Dp.init(e,t);let r=e._zod.parse,o=Ge(()=>rs(t)),n=B.memoizer,i=(d)=>{let g=o.value,m=g.symbolKeys,y=new br(["payload","ctx"],{shape:d,inst:e,memo:n,syms:m}),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 g.allKeys)G[I]=`key_${z++}`;y.write(n?"const newResult = memo.alloc(inst, payload, {}, ctx);":"const newResult = {};");for(let I of g.allKeys){if(I==="__proto__")continue;let S=G[I],q=typeof I==="symbol"?`syms[${m.indexOf(I)}]`:Go(I),rr=`${q} in input`,Uo=d[I],or=Uo?._zod?.optin,Wo=or!==void 0,Gu=Uo?._zod?.optout==="optional";if(y.write(`const ${S} = ${v(q)};`),Wo&&Gu){let qu=or==="optional"?`${S}_present`:`${S}.value !== undefined || ${S}_present`;y.write(`
|
|
18
|
+
const ${S}_present = ${rr};
|
|
19
|
+
if (!${S}.issues.length || ${S}_present) {
|
|
20
|
+
if (${S}.issues.length) {${k(S,q)}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (${qu}) {
|
|
24
|
+
newResult[${q}] = ${S}.value;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
`)}else if(!Wo)y.write(`
|
|
29
|
+
const ${S}_present = ${rr};
|
|
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
|
+
`),or==="defaulted")y.write(`newResult[${q}] = ${S}.value;`);else y.write(`
|
|
53
|
+
if (${S}.value !== undefined || ${rr}) {
|
|
54
|
+
newResult[${q}] = ${S}.value;
|
|
55
|
+
}
|
|
56
|
+
`)}return y.write("payload.value = newResult;"),y.write("return payload;"),y.compile()},s,c=Ce,a=!B.jitless,p=a&&Xo.value,l=t.catchall,f;e._zod.parse=(d,g)=>{f??(f=o.value);let m=d.value;if(!c(m))return d.issues.push({expected:"object",code:"invalid_type",input:m,inst:e}),d;if(a&&p&&g?.async===!1&&g.jitless!==!0){if(!s)s=i(t.shape);if(d=s(d,g),!l)return d;return os([],m,d,g,f,e,g?.abortEarly===!0)}return r(d,g)}});function di(e,t,r,o){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;let n=e.filter((i)=>!ie(i));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((i)=>i.issues.map((s)=>ye(s,o,te())))}),t}var Pr=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((i)=>i._zod.pattern);return new RegExp(`^(${n.map((i)=>gt(i.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 i=!1,s=[];for(let c of t.options){let a=c._zod.run({value:o.value,issues:[]},n);if(a instanceof Promise)s.push(a),i=!0;else{if(a.issues.length===0)return a;s.push(a)}}if(!i)return di(s,o,e,n);return Promise.all(s).then((c)=>di(c,o,e,n))}});function Fp(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 is=h("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Pr.init(e,t);let r=e._zod.parse;b(e,"propValues",(n)=>{let i={},s=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))s++;for(let[u,p]of Object.entries(a)){if(!Object.prototype.hasOwnProperty.call(i,u))Q(i,u,new Set);for(let l of p)i[u].add(l)}}if(!n.def.unionFallback&&s>1)i[n.def.discriminator]?.delete(void 0);return i}),t.options.forEach((n,i)=>{let s=qe(n._zod.def);if(s&&!Object.prototype.hasOwnProperty.call(s,t.discriminator))throw Error(`Invalid discriminated union option at index "${i}"`)});let o=Ge(()=>Fp(t));e._zod.parse=(n,i)=>{let s=n.value;if(!Ce(s))return n.issues.push({code:"invalid_type",expected:"object",input:s,inst:e}),n;let c=s?.[t.discriminator],a=o.value.get(c);if(a&&(c!==void 0||i.direction!=="backward"))return a._zod.run(n,i);if(t.unionFallback||i.direction==="backward")return r(n,i);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:s,path:[t.discriminator],inst:e}),n}}),ss=h("$ZodIntersection",(e,t)=>{E.init(e,t),e._zod.parse=(r,o)=>{let n=r.value,i=t.left._zod.run({value:n,issues:[]},o),s=t.right._zod.run({value:n,issues:[]},o);if(i instanceof Promise||s instanceof Promise)return Promise.all([i,s]).then(([a,u])=>hi(r,a,u));return hi(r,i,s)}});function kr(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(Re(e)&&Re(t)){let r=Object.keys(t),o=Object.keys(e).filter((i)=>r.indexOf(i)!==-1),n={...e,...t};if(Object.prototype.hasOwnProperty.call(n,"__proto__"))delete n.__proto__;for(let i of o){if(i==="__proto__")continue;let s=kr(e[i],t[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};n[i]=s.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],i=t[o],s=kr(n,i);if(!s.valid)return{valid:!1,mergeErrorPath:[o,...s.mergeErrorPath]};r.push(s.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function hi(e,t,r){let o=new Map,n,i=new Map,s=(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(!i.has(f))i.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(!s(u,"l"))e.issues.push(u);for(let u of r.issues)if(!s(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)&&i.has(p))e.issues.push(i.get(p))}let a=kr(t.value,r.value);if(!a.valid){if(ie(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`)}return e.value=a.data,e}var cs=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 i=Ke(n.def.entries).filter((s)=>Yo.has(typeof s));return new RegExp(i.length?`^(${i.map((s)=>ge(s.toString())).join("|")})$`:"^[^\\s\\S]$")}),e._zod.parse=(n,i)=>{let s=n.value;if(o.has(s))return n;return n.issues.push({code:"invalid_value",values:r,input:s,inst:e}),n}}),as=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((i)=>typeof i==="string"?ge(i):i?ge(i.toString()):String(i)).join("|")})$`:"^[^\\s\\S]$")}),e._zod.parse=(o,n)=>{let i=o.value;if(r.has(i))return o;return o.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),o}});var us=h("$ZodTransform",(e,t)=>{E.init(e,t),e._zod.optin="optional",B.memoizer?.guard(e),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new Xe(e.constructor.name);let n=t.transform(r.value,r);if(o.async)return(n instanceof Promise?n:Promise.resolve(n)).then((s)=>(r.value=s,r));if(n instanceof Promise)throw new se;return r.value=n,r}});function mi(e,t){return e.value=t.issues.length?void 0:t.value,e}var Er=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(`^(${gt(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((i)=>mi(r,i));return mi(r,n)}return t.innerType._zod.run(r,o)}}),ps=h("$ZodExactOptional",(e,t)=>{Er.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)}),ls=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(`^(${gt(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)}}),fs=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((i)=>gi(i,t));return gi(n,t)}});function gi(e,t){if(e.value===void 0)e.value=t.defaultValue;return e}var ds=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)}}),hs=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((i)=>yi(i,e));return yi(n,e)}});function yi(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 xi(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)=>ye(n,o,te()))},input:e.value}),e}var ms=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((i)=>xi(r,i,t,o));return xi(r,n,t,o)}});var gs=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 i=t.out._zod.run(r,o);if(i instanceof Promise)return i.then((s)=>Ct(s,t.in,o));return Ct(i,t.in,o)}let n=t.in._zod.run(r,o);if(n instanceof Promise)return n.then((i)=>Ct(i,t.out,o));return Ct(n,t.out,o)}});function Ct(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 ys=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(vi);return vi(n)}});function vi(e){if(!e.memo)e.value=Object.freeze(e.value);return e}var xs=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((i)=>wi(i,r,o,e));wi(n,r,o,e);return}});function wi(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(ke(n))}}class ws extends Error{constructor(){super("Cannot parse a reference cycle that closes through a transform");this.name="ZodCyclicError"}}var Or="~memo",vs=[];function _s(e){return e!==null&&typeof e==="object"}function Zr(e){return e.map((t)=>t.path?{...t,path:t.path.slice()}:{...t})}var bs=new WeakMap,et=0,Dt=1,tt=2;function Ft(e,t,r){let o=bs.get(e);if(o!==void 0)return o?tt:et;if(t.has(e))return tt;t.add(e);let n=et,i=(p)=>{if(n!==tt&&p?._zod){let l=Ft(p,t,r);if(l>n)n=l}},s=(p,l)=>{let f=et;for(let d of Reflect.ownKeys(p)){let g=Object.getOwnPropertyDescriptor(p,d);if(l&&!g.enumerable)continue;let m=g.get?Dt:g.value?._zod?Ft(g.value,t,r):et;if(m>f)f=m}return f},c=(p)=>{if(p>n)n=p},a=e._zod.def,u=a.type;switch(u){case"object":{let p=qe(a);c(p?s(p,!0):Dt),i(a.catchall);break}case"array":i(a.element);break;case"tuple":for(let p of a.items)i(p);i(a.rest);break;case"record":case"map":i(a.keyType),i(a.valueType);break;case"set":i(a.valueType);break;case"union":for(let p of a.options)i(p);break;case"intersection":i(a.left),i(a.right);break;case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":i(a.innerType);break;case"pipe":i(a.in),i(a.out);break;case"function":i(a.input),i(a.output);break;case"lazy":{let p=a._cachedInner??(r?e._zod.innerType:void 0);c(p?Ft(p,t,!1):Dt);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)i(f);else if(Array.isArray(f))for(let d of f)i(d)}}return t.delete(e),Lp(e,n)}function Lp(e,t){if(t!==Dt)bs.set(e,t===tt);return t}function Mp(e,t){let r=e.buckets.get(t);if(!r)r=new WeakMap,e.buckets.set(t,r);return r}var Nt,jt=[],Up={alloc(e,t,r){let o=Nt;if(!o)return r;Nt=void 0;let n={value:r,issues:null};return o.set(t.value,n),jt.push(n),r},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let r=e._zod.parse,o=(n,i)=>{if(i.direction!=="backward"&&Wp(i,n.value))throw new ws;return r(n,i)};if(e._zod.parse=o,e._zod.run===r)e._zod.run=o})},attach(e){var t;let r,o=!1,n,i;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let s=e._zod.parse,c=(a,u)=>{if(r===void 0){let v=Ft(e,new Set,!1);if(v===et){if(e._zod.parse=s,e._zod.run===c)e._zod.run=s;return s(a,u)}if(v===tt||o)r=!0;else o=!0}let p=a.value;if(!_s(p))return s(a,u);let l=u[Or];if(!l)l={buckets:new WeakMap,backEdges:void 0},u[Or]=l;let f;if(n===u)f=i;else f=Mp(l,e),n=u,i=f;let d=f.get(p);if(d){if(a.value=d.value,d.issues){if(d.issues.length)a.issues.push(...Zr(d.issues))}else a.memo=!0,l.backEdges??(l.backEdges=new WeakSet),l.backEdges.add(d.value);return a}Nt=f;let g=jt.length,m=s(a,u);Nt=void 0;let y=jt.length>g?jt.pop():void 0;if(m instanceof Promise)return m.then((v)=>{if(y)y.issues=v.issues.length?Zr(v.issues):vs;return v});if(y)y.issues=m.issues.length?Zr(m.issues):vs;return m};if(e._zod.parse=c,e._zod.run===s)e._zod.run=c})}};function ks(){return Up}function Wp(e,t){let r=e[Or]?.backEdges;return r!==void 0&&_s(t)&&r.has(t)}var Bp=()=>{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(i){return e[i]??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(i,s){if(i==="number"&&typeof s==="number"&&!Number.isFinite(s))return String(s);return o[i]??i}return(i)=>{switch(i.code){case"invalid_type":{let s=n(i.expected),c=on(i.input),a=n(c,i.input);return`Invalid input: expected ${s}, received ${a}`}case"invalid_value":if(i.values.length===1)return`Invalid input: expected ${ar(i.values[0])}`;return`Invalid option: expected one of ${ir(i.values,"|")}`;case"too_big":{let s=i.exact?"exactly ":i.inclusive?"<=":"<",c=t(i.origin);if(c)return`Too big: expected ${i.origin??"value"} to have ${s}${i.maximum.toString()} ${c.unit??"elements"}`;return`Too big: expected ${i.origin??"value"} to be ${s}${i.maximum.toString()}`}case"too_small":{let s=i.exact?"exactly ":i.inclusive?">=":">",c=t(i.origin);if(c)return`Too small: expected ${i.origin} to have ${s}${i.minimum.toString()} ${c.unit}`;return`Too small: expected ${i.origin} to be ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;if(s.format==="starts_with")return`Invalid string: must start with "${s.prefix}"`;if(s.format==="ends_with")return`Invalid string: must end with "${s.suffix}"`;if(s.format==="includes")return`Invalid string: must include "${s.includes}"`;if(s.format==="regex")return`Invalid string: must match pattern ${s.pattern}`;return`Invalid ${r[s.format]??i.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${i.divisor}`;case"unrecognized_keys":return`Unrecognized key${i.keys.length>1?"s":""}: ${ir(i.keys,", ")}`;case"invalid_key":return`Invalid key in ${i.origin}`;case"invalid_union":if(i.options&&Array.isArray(i.options)&&i.options.length>0)return`Invalid discriminator value. Expected ${i.options.map((c)=>`'${c}'`).join(" | ")}`;if(i.inclusive===!1)return"Invalid input: more than one option matched";return"Invalid input";case"invalid_element":return`Invalid value in ${i.origin}`;default:return"Invalid input"}}};function Cr(){return{localeError:Bp()}}var $s;class zs{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 Jp(){return new zs}($s=globalThis).__zod_globalRegistry??($s.__zod_globalRegistry=Jp());var $e=globalThis.__zod_globalRegistry;function Lt(e){if(e.checks)e.checks=[...e.checks];return e}function Ss(e,t){return new e(Lt({type:"string",...x(t)}))}function Ps(e,t){return new e(Lt({type:"string",coerce:!0,...x(t)}))}function Es(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...x(t)})}function Zs(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...x(t)})}function Rr(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...x(t)})}function Os(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...x(t)})}function Cs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...x(t)})}function Rs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...x(t)})}function Ir(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...x(t)})}function Is(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...x(t)})}function As(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...x(t)})}function Ts(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...x(t)})}function Ns(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...x(t)})}function js(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...x(t)})}function Ds(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...x(t)})}function Fs(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...x(t)})}function Ls(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...x(t)})}function Ms(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...x(t)})}function Us(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...x(t)})}function Ws(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...x(t)})}function Bs(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...x(t)})}function Js(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...x(t)})}function Vs(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...x(t)})}function Ks(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...x(t)})}function Hs(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...x(t)})}function Gs(e,t){return new e({type:"string",format:"date",check:"string_format",...x(t)})}function qs(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...x(t)})}function Xs(e,t){return new e({type:"string",format:"duration",check:"string_format",...x(t)})}function Ys(e,t){return new e(Lt({type:"number",checks:[],...x(t)}))}function Qs(e,t){return new e(Lt({type:"number",coerce:!0,checks:[],...x(t)}))}function ec(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...x(t)})}function tc(e,t){return new e({type:"boolean",...x(t)})}function rc(e,t){return new e({type:"boolean",coerce:!0,...x(t)})}function oc(e,t){return new e({type:"bigint",coerce:!0,...x(t)})}function nc(e){return new e({type:"unknown"})}function ic(e,t){return new e({type:"never",...x(t)})}function sc(e,t){return new e({type:"date",coerce:!0,...x(t)})}function Ie(e,t){return new wr({check:"less_than",...x(t),value:e,inclusive:!1})}function le(e,t){return new wr({check:"less_than",...x(t),value:e,inclusive:!0})}function Ae(e,t){return new _r({check:"greater_than",...x(t),value:e,inclusive:!1})}function fe(e,t){return new _r({check:"greater_than",...x(t),value:e,inclusive:!0})}function rt(e,t){return new Xn({check:"multiple_of",...x(t),value:e})}function Mt(e,t){return new Qn({check:"max_length",...x(t),maximum:e})}function Te(e,t){return new ei({check:"min_length",...x(t),minimum:e})}function Ut(e,t){return new ti({check:"length_equals",...x(t),length:e})}function Ar(e,t){return new ri({check:"string_format",format:"regex",...x(t),pattern:e})}function Tr(e){return new oi({check:"string_format",format:"lowercase",...x(e)})}function Nr(e){return new ni({check:"string_format",format:"uppercase",...x(e)})}function jr(e,t){return new ii({check:"string_format",format:"includes",...x(t),includes:e})}function Dr(e,t){return new si({check:"string_format",format:"starts_with",...x(t),prefix:e})}function Fr(e,t){return new ci({check:"string_format",format:"ends_with",...x(t),suffix:e})}function xe(e){return new ai({check:"overwrite",tx:e})}function Lr(e){return xe((t)=>t.normalize(e))}function Mr(){return xe((e)=>e.trim())}function Ur(){return xe((e)=>e.toLowerCase())}function Wr(){return xe((e)=>e.toUpperCase())}function Br(){return xe((e)=>qo(e))}function cc(e,t,r){return new e({type:"array",element:t,...x(r)})}function ac(e,t,r){return new e({type:"custom",check:"custom",fn:t,...x(r)})}function uc(e,t){let r=Vp((o)=>(o.addIssue=(n)=>{if(typeof n==="string")o.issues.push(ke(n,o.value,r._zod.def));else{let i=n;if(i.fatal)i.continue=!1;if(i.code??(i.code="custom"),!("input"in i))i.input=o.value;i.inst??(i.inst=r),i.continue??(i.continue=!r._zod.def.abort),o.issues.push(ke(i))}},e(o.value,o)),t);return r}function Vp(e,t){let r=new T({check:"custom",...x(t)});return r._zod.check=e,r}function ot(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 Vr(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??$e,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 i=typeof t.unrepresentable==="function"?t.unrepresentable({zodSchema:e,path:o.path,message:n}):t.unrepresentable;if(i==="any")return!1;if(i===void 0||i==="throw")throw Error(n);return Object.assign(r,i),!0}function A(e,t,r={path:[],schemaPath:[]}){var o;let n=e._zod.def,i=t.seen.get(e);if(i){if(i.count++,r.schemaPath.includes(e))i.cycle=r.path;return i.schema}let s={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,s),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;let c=e._zod.toJSONSchema?.();if(c)s.schema=c;else{let p={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,s.schema,p);else{let f=s.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(!s.ref)s.ref=l;A(l,t,p),t.seen.get(l).isParent=!0}}let a=t.metadataRegistry.get(e);if(a)ot(s.schema,a);if(t.io==="input"&&F(e))delete s.schema.examples,delete s.schema.default;if(t.io==="input"&&"_prefault"in s.schema)(o=s.schema).default??(o.default=s.schema._prefault);return delete s.schema._prefault,t.seen.get(e).schema}function pc(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function Kr(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 s of e.seen.entries()){let c=e.metadataRegistry.get(s[0])?.id;if(c){let a=o.get(c);if(a&&a!==s[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,s[0])}}let n=(s)=>{let c=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let l=e.external.registry.get(s[0])?.id,f=e.external.uri??((g)=>g);if(l)return{ref:f(l)};let d=s[1].defId??s[1].schema.id??`schema${e.counter++}`;return s[1].defId=d,{defId:d,ref:`${f("__shared")}#/${c}/${pc(d)}`}}let a="#",u=`${a}/${c}/`;if(s[1]===r&&!s[1].schema.id)return{ref:a};let p=s[1].schema.id??`__schema${e.counter++}`;return{defId:p,ref:u+pc(p)}},i=(s)=>{if(s[1].schema.$ref)return;let c=s[1],{ref:a,defId:u}=n(s);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 s of e.seen.entries()){let c=s[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 s of e.seen.entries()){let c=s[1];if(t===s[0]){i(s);continue}if(e.external){let u=e.external.registry.get(s[0])?.id;if(t!==s[0]&&u){i(s);continue}}if(e.metadataRegistry.get(s[0])?.id){i(s);continue}if(c.cycle){i(s);continue}if(c.count>1){if(e.reused==="ref")i(s)}}if(e.external)e.sharedDefsExtractedFor=e.external}function dc(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;dc(o);let n=Object.keys(o);if(n.length!==1||n[0]!=="type")return;let i=o.type;for(let s of Array.isArray(i)?i:[i]){if(typeof s!=="string")return;if(!r.includes(s))r.push(s)}}delete e.anyOf,e.type=r.length===1?r[0]:r}var hc=new Set(["type","properties","required","additionalProperties"]),lc=["oneOf","anyOf"];function fc(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 Jr(e){let t=[];for(let i of e){if(typeof i!=="object"||i.type!=="object")return null;for(let s in i)if(!hc.has(s))return null;t.push(i)}let r={},o=new Set;for(let i of t){for(let s in i.properties){if(Object.prototype.hasOwnProperty.call(r,s))continue;let c=[];for(let u of t){let p=u.properties?.[s]??fc(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]:Jr(c)??{allOf:c};Q(r,s,a)}for(let s of i.required??[])o.add(s)}let n={type:"object",properties:r};if(o.size)n.required=[...o];if(t.every((i)=>i.additionalProperties===!1))n.additionalProperties=!1;else{let i=[];for(let s of t){let c=fc(s);if(c&&!i.some((a)=>JSON.stringify(a)===JSON.stringify(c)))i.push(c)}if(i.length===1)n.additionalProperties=i[0];else if(i.length>1)n.additionalProperties={allOf:i}}return n}function Kp(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let n of hc)if(n in e)return;let r=t.filter((n)=>lc.some((i)=>Array.isArray(n[i]))),o=null;if(!r.length)o=Jr(t);else{let n=r[0],i=lc.find((a)=>Array.isArray(n[a]));if(Object.keys(n).length!==1)return;let s=t.filter((a)=>a!==n),c=n[i].map((a)=>Jr([...s,a]));if(c.some((a)=>!a))return;o={[i]:c}}if(!o)return;delete e.allOf,ot(e,o)}function Hr(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),g=d.schema;if(g.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"))u.allOf=u.allOf??[],u.allOf.push(g);else ot(u,g);if(ot(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(g.$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 g in u){if(g==="$ref"||g==="allOf")continue;if(g in d.def&&JSON.stringify(u[g])===JSON.stringify(d.def[g]))delete u[g]}}}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())dc(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)??[])Kp(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)}ot(n,r.defId?r.schema:r.def??r.schema);let i=e.metadataRegistry.get(t)?.id;if(i!==void 0&&n.id===i)delete n.id;let s=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(s,a.defId,a.def)}}if(e.external)e.sharedEmitDoneFor=e.external;if(e.external);else if(Object.keys(s).length>0)if(e.target==="draft-2020-12")n.$defs=s;else n.definitions=s;try{let c=JSON.parse(JSON.stringify(n));return Object.defineProperty(c,"~standard",{value:{...t["~standard"],jsonSchema:{input:nt(t,"input",e.processors),output:nt(t,"output",e.processors)}},enumerable:!1,writable:!1}),c}catch(c){throw Error("Error converting schema to JSON.")}}function F(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 F(o.element,r);if(o.type==="set")return F(o.valueType,r);if(o.type==="lazy")return F(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 F(o.innerType,r);if(o.type==="intersection")return F(o.left,r)||F(o.right,r);if(o.type==="record"||o.type==="map")return F(o.keyType,r)||F(o.valueType,r);if(o.type==="pipe"){if(e._zod.traits.has("$ZodCodec"))return!0;return F(o.in,r)||F(o.out,r)}if(o.type==="object"){for(let n in o.shape)if(F(o.shape[n],r))return!0;return!1}if(o.type==="union"){for(let n of o.options)if(F(n,r))return!0;return!1}if(o.type==="tuple"){for(let n of o.items)if(F(n,r))return!0;if(o.rest&&F(o.rest,r))return!0;return!1}return!1}var mc=(e,t={})=>(r)=>{let o=Vr({...r,processors:t});return A(e,o),Kr(o,e),Hr(o,e)},nt=(e,t,r={})=>(o)=>{let{libraryOptions:n,target:i}=o??{},s=Vr({...n??{},target:i,io:t,processors:r});return A(e,s),Kr(s,e),Hr(s,e)};var Ne=(e,t,r)=>{if(e[t]===void 0||r>e[t])e[t]=r},je=(e,t,r)=>{if(e[t]===void 0||r<e[t])e[t]=r},gc=(e,t)=>{Ne(e,"minimum",t),je(e,"maximum",t)},wc=(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)},bc=(e,t)=>{e.mime=e.mime?e.mime.filter((r)=>t.includes(r)):[...t]},kc=(e,t)=>{if(e.format=t,t.includes("int"))e.isInt=!0},yc=(e,t)=>Ne(e,"minimum",t.minimum),xc=(e,t)=>je(e,"maximum",t.maximum),vc=(e)=>(t,r)=>{kc(t,r.format);let[o,n]=e[r.format];Ne(t,"minimum",o),je(t,"maximum",n)},Hp={greater_than:(e,t)=>Ne(e,t.inclusive?"minimum":"exclusiveMinimum",t.value),less_than:(e,t)=>je(e,t.inclusive?"maximum":"exclusiveMaximum",t.value),multiple_of:(e,t)=>wc(e,t.value),number_format:vc(yt),bigint_format:vc(ur),min_length:yc,max_length:xc,length_equals:(e,t)=>gc(e,t.length),min_size:yc,max_size:xc,size_equals:(e,t)=>gc(e,t.size),string_format:(e,t)=>{if(kc(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)=>bc(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 i of o)Hp[i._zod.def.check]?.(t,i._zod.def);let n=e._zod.bag;if(n.minimum!==void 0)Ne(t,"minimum",n.minimum);if(n.exclusiveMinimum!==void 0)Ne(t,"exclusiveMinimum",n.exclusiveMinimum);if(n.maximum!==void 0)je(t,"maximum",n.maximum);if(n.exclusiveMaximum!==void 0)je(t,"exclusiveMaximum",n.exclusiveMaximum);if(n.multipleOf!==void 0)wc(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)bc(t,n.mime);for(let i of n.patterns??[])_c(t,i);return t}var Gp={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},qp=new Map([[zr,Dn],[Tt,Fn]]),Xp=(e)=>qp.get(e)??e,$c=(e,t,r,o)=>{let n=r;n.type="string";let{minimum:i,maximum:s,format:c,patterns:a,contentEncoding:u,laxFormat:p}=j(e);if(typeof i==="number")n.minLength=i;if(typeof s==="number")n.maxLength=s;if(c){if(n.format=Gp[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(Xp);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}))]}},zc=(e,t,r,o)=>{let n=r,{minimum:i,maximum:s,multipleOf:c,exclusiveMaximum:a,exclusiveMinimum:u,isInt:p}=j(e);n.type=p?"integer":"number";let l=typeof u==="number"&&u>=(i??Number.NEGATIVE_INFINITY),f=typeof a==="number"&&a<=(s??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 i==="number")n.minimum=i;if(f)if(d)n.maximum=a,n.exclusiveMaximum=!0;else n.exclusiveMaximum=a;else if(typeof s==="number")n.maximum=s;if(c){let g=new Set;for(let v of c)if(Number.isFinite(v)&&v!==0)g.add(Math.abs(v));else re(e,t,n,o,`A multipleOf divisor of ${v} cannot be represented in JSON Schema`);let[m,...y]=g;if(m!==void 0)n.multipleOf=m;if(y.length)n.allOf=[...n.allOf??[],...y.map((v)=>({multipleOf:v}))]}},Sc=(e,t,r,o)=>{r.type="boolean"},Pc=(e,t,r,o)=>{re(e,t,r,o,"BigInt cannot be represented in JSON Schema")};var Ec=(e,t,r,o)=>{r.not={}};var Zc=(e,t,r,o)=>{},Oc=(e,t,r,o)=>{re(e,t,r,o,"Date cannot be represented in JSON Schema")},Cc=(e,t,r,o)=>{let n=e._zod.def,i=Ke(n.entries);if(i.length===0){r.not={};return}if(i.every((s)=>typeof s==="number"))r.type="number";if(i.every((s)=>typeof s==="string"))r.type="string";r.enum=i},Rc=(e,t,r,o)=>{let n=e._zod.def;if(n.values.length===0){r.not={};return}let i=[];for(let s of n.values)if(s===void 0){if(re(e,t,r,o,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof s==="bigint"){if(re(e,t,r,o,"BigInt literals cannot be represented in JSON Schema"))return;i.push(Number(s))}else i.push(s);if(i.length===0);else if(i.length===1){let s=i[0];if(r.type=s===null?"null":typeof s,t.target==="draft-04"||t.target==="openapi-3.0")r.enum=[s];else r.const=s}else{if(i.every((s)=>typeof s==="number"))r.type="number";if(i.every((s)=>typeof s==="string"))r.type="string";if(i.every((s)=>typeof s==="boolean"))r.type="boolean";if(i.every((s)=>s===null))r.type="null";r.enum=i}};var Ic=(e,t,r,o)=>{re(e,t,r,o,"Custom types cannot be represented in JSON Schema")};var Ac=(e,t,r,o)=>{re(e,t,r,o,"Transforms cannot be represented in JSON Schema")};var Tc=(e,t,r,o)=>{let n=r,i=e._zod.def,{minimum:s,maximum:c}=j(e);if(typeof s==="number")n.minItems=s;if(typeof c==="number")n.maxItems=c;n.type="array",n.items=A(i.element,t,{...o,path:[...o.path,"items"]})};function Gr(e){let t=e._zod.def;if(t.type==="pipe"&&t.in._zod.traits.has("$ZodTransform"))return Gr(t.out);if(t.type==="catch")return Gr(t.innerType);return e._zod.optin}var Nc=(e,t,r,o)=>{let n=r,i=e._zod.def,s=i.shape;if(Object.getOwnPropertySymbols(s).length&&re(e,t,n,o,"Symbol keys cannot be represented in JSON Schema"))return;n.type="object",n.properties={};for(let u in s)Q(n.properties,u,A(s[u],t,{...o,path:[...o.path,"properties",u]}));let a=[];for(let u of Object.keys(s)){let p=i.shape[u];if(t.io==="input"?Gr(p)===void 0:p._zod.optout===void 0)a.push(u)}if(a.length>0)n.required=a;if(i.catchall?._zod.def.type==="never")n.additionalProperties=!1;else if(!i.catchall){if(t.io==="output")n.additionalProperties=!1}else if(i.catchall)n.additionalProperties=A(i.catchall,t,{...o,path:[...o.path,"additionalProperties"]})},jc=(e,t,r,o)=>{let n=e._zod.def,i=n.inclusive===!1,s=n.options.map((c,a)=>A(c,t,{...o,path:[...o.path,i?"oneOf":"anyOf",a]}));if(i)r.oneOf=s;else r.anyOf=s},Dc=(e,t,r,o)=>{let n=e._zod.def,i=A(n.left,t,{...o,path:[...o.path,"allOf",0]}),s=A(n.right,t,{...o,path:[...o.path,"allOf",1]}),c=(u)=>("allOf"in u)&&Object.keys(u).length===1,a=[...c(i)?i.allOf:[i],...c(s)?s.allOf:[s]];r.allOf=a,t.intersections.push(a)};var Fc=(e,t,r,o)=>{let n=e._zod.def,i=A(n.innerType,t,o),s=t.seen.get(e);if(t.target==="openapi-3.0")s.ref=n.innerType,r.nullable=!0;else r.anyOf=[i,{type:"null"}]},Lc=(e,t,r,o)=>{let n=e._zod.def;A(n.innerType,t,o);let i=t.seen.get(e);i.ref=n.innerType},qr=Symbol();function Mc(e,t,r,o,n){let i=!1,s=JSON.stringify(e,(c,a)=>{if(typeof a!=="bigint")return a;return i=!0,null});if(!i)return JSON.parse(s);return re(t,r,o,n,"BigInt defaults cannot be represented in JSON Schema"),qr}var Uc=(e,t,r,o)=>{let n=e._zod.def;A(n.innerType,t,o);let i=t.seen.get(e);i.ref=n.innerType;let s=Mc(n.defaultValue,e,t,r,o);if(s!==qr)r.default=s},Wc=(e,t,r,o)=>{let n=e._zod.def;A(n.innerType,t,o);let i=t.seen.get(e);if(i.ref=n.innerType,t.io!=="input")return;let s=Mc(n.defaultValue,e,t,r,o);if(s!==qr)r._prefault=s},Bc=(e,t,r,o)=>{let n=e._zod.def;A(n.innerType,t,o);let i=t.seen.get(e);i.ref=n.innerType;let s;try{s=n.catchValue(void 0)}catch{re(e,t,r,o,"Dynamic catch values are not supported in JSON Schema");return}r.default=s},Jc=(e,t,r,o)=>{let n=e._zod.def,i=n.in._zod.traits.has("$ZodTransform"),s=t.io==="input"?i?n.out:n.in:n.out;A(s,t,o);let c=t.seen.get(e);c.ref=s},Vc=(e,t,r,o)=>{let n=e._zod.def;A(n.innerType,t,o);let i=t.seen.get(e);i.ref=n.innerType,r.readOnly=!0};var Xr=(e,t,r,o)=>{let n=e._zod.def;A(n.innerType,t,o);let i=t.seen.get(e);i.ref=n.innerType};var Kc=new WeakSet([Object.prototype,Error.prototype]);function Wt(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 sl=(e,t)=>{ln.init(e,t),e.name="ZodError";let r=Object.getPrototypeOf(e);if(Kc.has(r))return;Kc.add(r),Wt(r,"format",(o)=>(n)=>dn(o,n)),Wt(r,"flatten",(o)=>(n)=>fn(o,n)),Wt(r,"addIssue",(o)=>(n)=>{o.issues.push(n),o.message=JSON.stringify(o.issues,He,2)}),Wt(r,"addIssues",(o)=>(n)=>{o.issues.push(...n),o.message=JSON.stringify(o.issues,He,2)}),Object.defineProperty(r,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}})};var J=h("ZodError",sl,void 0,{Parent:Error});var Hc=St(J),Gc=Pt(J),qc=Et(J),Xc=Zt(J),Yc=mn(J),Qc=gn(J),ea=yn(J),ta=xn(J),ra=vn(J),oa=wn(J),na=_n(J),ia=bn(J);function al(){if(!B.localeError)te(Cr())}function Qr(){if(!B.memoizer)te({memoizer:ks()})}var O=h("ZodType",(e,t)=>(al(),E.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(W(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(ef(e,t))},superRefine(e,t){return this.check(tf(e,t))},overwrite(e){return this.check(xe(e))},optional(){return aa(this)},exactOptional(){return Ml(this)},nullable(){return ua(this)},nullish(){return aa(ua(this))},nonoptional(e){return Kl(this,e)},array(){return _(this)},or(e){return oo([this,e])},and(e){return jl(this,e)},transform(e){return pa(this,Ll(e))},default(e){return Bl(this,e)},prefault(e){return Vl(this,e)},catch(e){return Gl(this,e)},pipe(e){return pa(this,e)},readonly(){return Yl(this)},describe(e){let t=this.clone();return $e.add(t,{description:e}),t},meta(...e){if(e.length===0)return $e.get(this);let t=this.clone();return $e.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 kt(this,"~standard",{...$r(this),jsonSchema:{input:nt(this,"input"),output:nt(this,"output")}})},set "~standard"(e){pe(this,"~standard",e)},parse:function e(t,r){return Hc(this,t,r,{callee:e})},parseAsync:async function e(t,r){return await Gc(this,t,r,{callee:e})},safeParse(e,t){return qc(this,e,t)},async safeParseAsync(e,t){return Xc(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){pe(this,"spa",e)},validate(e,t){return hr(this,e,t)},validateAsync(e,t){return mr(this,e,t)},encode:function e(t,r){return Yc(this,t,r,{callee:e})},decode:function e(t,r){return Qc(this,t,r,{callee:e})},encodeAsync:async function e(t,r){return await ea(this,t,r,{callee:e})},decodeAsync:async function e(t,r){return await ta(this,t,r,{callee:e})},safeEncode(e,t){return ra(this,e,t)},safeDecode(e,t){return oa(this,e,t)},async safeEncodeAsync(e,t){return na(this,e,t)},async safeDecodeAsync(e,t){return ia(this,e,t)},toJSONSchema(e){return mc(this,{})(e)},get description(){return $e.get(this)?.description},get _def(){return this._zod.def}}),la=h("_ZodString",(e,t)=>{At.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>$c(e,r,o,n)},$t({format:(e)=>j(e).format??null,minLength:(e)=>j(e).minimum??null,maxLength:(e)=>j(e).maximum??null},{regex(...e){return this.check(Ar(...e))},includes(...e){return this.check(jr(...e))},startsWith(...e){return this.check(Dr(...e))},endsWith(...e){return this.check(Fr(...e))},min(...e){return this.check(Te(...e))},max(...e){return this.check(Mt(...e))},length(...e){return this.check(Ut(...e))},nonempty(...e){return this.check(Te(1,...e))},lowercase(e){return this.check(Tr(e))},uppercase(e){return this.check(Nr(e))},trim(){return this.check(Mr())},normalize(...e){return this.check(Lr(...e))},toLowerCase(){return this.check(Ur())},toUpperCase(){return this.check(Wr())},slugify(){return this.check(Br())}})),eo=h("ZodString",(e,t)=>{At.init(e,t),la.init(e,t)},{email(e){return this.check(Es(dl,e))},url(e){return this.check(Ir(fa,e))},jwt(e){return this.check(Ks(Ol,e))},emoji(e){return this.check(Is(gl,e))},guid(e){return this.check(Zs(hl,e))},uuid(e){return this.check(Rr(st,e))},uuidv4(e){return this.check(Os(st,e))},uuidv6(e){return this.check(Cs(st,e))},uuidv7(e){return this.check(Rs(st,e))},nanoid(e){return this.check(As(yl,e))},cuid(e){return this.check(Ts(xl,e))},cuid2(e){return this.check(Ns(vl,e))},ulid(e){return this.check(js(wl,e))},base64(e){return this.check(Bs(Pl,e))},base64url(e){return this.check(Js(El,e))},xid(e){return this.check(Ds(_l,e))},ksuid(e){return this.check(Fs(bl,e))},ipv4(e){return this.check(Ls(kl,e))},ipv6(e){return this.check(Ms($l,e))},cidrv4(e){return this.check(Us(zl,e))},cidrv6(e){return this.check(Ws(Sl,e))},e164(e){return this.check(Vs(Zl,e))},datetime(e){return this.check(Hs(ul,e))},date(e){return this.check(Gs(pl,e))},time(e){return this.check(qs(ll,e))},duration(e){return this.check(Xs(fl,e))}});function w(e){return Ss(eo,e)}var C=h("ZodStringFormat",(e,t)=>{Z.init(e,t),la.init(e,t)}),ul=h("ZodISODateTime",(e,t)=>{Ti.init(e,t),C.init(e,t)}),pl=h("ZodISODate",(e,t)=>{Ni.init(e,t),C.init(e,t)}),ll=h("ZodISOTime",(e,t)=>{ji.init(e,t),C.init(e,t)}),fl=h("ZodISODuration",(e,t)=>{Di.init(e,t),C.init(e,t)}),dl=h("ZodEmail",(e,t)=>{$i.init(e,t),C.init(e,t)});var hl=h("ZodGUID",(e,t)=>{bi.init(e,t),C.init(e,t)});var st=h("ZodUUID",(e,t)=>{ki.init(e,t),C.init(e,t)});function to(e){return Rr(st,e)}var fa=h("ZodURL",(e,t)=>{Pi.init(e,t),C.init(e,t)});function ml(e){return Ir(fa,e)}var gl=h("ZodEmoji",(e,t)=>{Ei.init(e,t),C.init(e,t)});var yl=h("ZodNanoID",(e,t)=>{Zi.init(e,t),C.init(e,t)});var xl=h("ZodCUID",(e,t)=>{Oi.init(e,t),C.init(e,t)});var vl=h("ZodCUID2",(e,t)=>{Ci.init(e,t),C.init(e,t)});var wl=h("ZodULID",(e,t)=>{Ri.init(e,t),C.init(e,t)});var _l=h("ZodXID",(e,t)=>{Ii.init(e,t),C.init(e,t)});var bl=h("ZodKSUID",(e,t)=>{Ai.init(e,t),C.init(e,t)});var kl=h("ZodIPv4",(e,t)=>{Fi.init(e,t),C.init(e,t)});var $l=h("ZodIPv6",(e,t)=>{Mi.init(e,t),C.init(e,t)});var zl=h("ZodCIDRv4",(e,t)=>{Ui.init(e,t),C.init(e,t)});var Sl=h("ZodCIDRv6",(e,t)=>{Wi.init(e,t),C.init(e,t)});var Pl=h("ZodBase64",(e,t)=>{Ji.init(e,t),C.init(e,t)});var El=h("ZodBase64URL",(e,t)=>{Vi.init(e,t),C.init(e,t)});var Zl=h("ZodE164",(e,t)=>{Ki.init(e,t),C.init(e,t)});var Ol=h("ZodJWT",(e,t)=>{Hi.init(e,t),C.init(e,t)});var Bt=h("ZodNumber",(e,t)=>{Sr.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>zc(e,r,o,n),e.isFinite=!0},$t({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(Ae(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(Ie(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(sa(e))},safe(e){return this.check(sa(e))},positive(e){return this.check(Ae(0,e))},nonnegative(e){return this.check(fe(0,e))},negative(e){return this.check(Ie(0,e))},nonpositive(e){return this.check(le(0,e))},multipleOf(e,t){return this.check(rt(e,t))},step(e,t){return this.check(rt(e,t))},finite(){return this}}));function da(e){return Ys(Bt,e)}var Cl=h("ZodNumberFormat",(e,t)=>{Gi.init(e,t),Bt.init(e,t)});function sa(e){return ec(Cl,e)}var ro=h("ZodBoolean",(e,t)=>{qi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Sc(e,r,o,n)});function De(e){return tc(ro,e)}var ha=h("ZodBigInt",(e,t)=>{Xi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Pc(e,r,o,n)},$t({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(Ae(e,t))},lt(e,t){return this.check(Ie(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(Ae(BigInt(0),e))},negative(e){return this.check(Ie(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(rt(e,t))}}));var Rl=h("ZodUnknown",(e,t)=>{Yi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Zc(e,r,o,n)});function ca(){return nc(Rl)}var Il=h("ZodNever",(e,t)=>{Qi.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Ec(e,r,o,n)});function ma(e){return ic(Il,e)}var ga=h("ZodDate",(e,t)=>{es.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Oc(e,r,o,n),e.min=(r,o)=>e.check(fe(r,o)),e.max=(r,o)=>e.check(le(r,o))},$t({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 Al=h("ZodArray",(e,t)=>{Qr(),ts.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Tc(e,r,o,n),e.element=t.element},{min(e,t){return this.check(Te(e,t))},nonempty(e){return this.check(Te(1,e))},max(e,t){return this.check(Mt(e,t))},length(e,t){return this.check(Ut(e,t))},unwrap(){return this.element}});function _(e,t){return cc(Al,e,t)}var ya=h("ZodObject",(e,t)=>{Qr(),ns.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Nc(e,r,o,n),fp(e,"shape",(r)=>r._zod.def.shape,!1)},{keyof(){return X(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(W(this._zod.def,{catchall:e}))},passthrough(){return this.clone(W(this._zod.def,{catchall:ca()}))},loose(){return this.clone(W(this._zod.def,{catchall:ca()}))},strict(){return this.clone(W(this._zod.def,{catchall:ma()}))},strip(){return this.clone(W(this._zod.def,{catchall:void 0}))},extend(e){return np(this,e)},safeExtend(e){return ip(this,e)},merge(e){return sp(this,e)},pick(e){return rp(this,e)},omit(e){return op(this,e)},partial(...e){return tn(va,this,e[0])},exactPartial(...e){return tn(wa,this,e[0],"exactPartial")},required(...e){return cp(_a,this,e[0])}});function ct(e,t){let r={type:"object",shape:e??{},...x(t)};return new ya(r)}function P(e,t){return new ya({type:"object",shape:e,catchall:ma(),...x(t)})}var xa=h("ZodUnion",(e,t)=>{Pr.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>jc(e,r,o,n),e.options=t.options});function oo(e,t){return new xa({type:"union",options:e,...x(t)})}var Tl=h("ZodDiscriminatedUnion",(e,t)=>{xa.init(e,t),is.init(e,t)});function no(e,t,r){return new Tl({type:"union",options:t,discriminator:e,...x(r)})}var Nl=h("ZodIntersection",(e,t)=>{ss.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Dc(e,r,o,n)});function jl(e,t){return new Nl({type:"intersection",left:e,right:t})}var Yr=h("ZodEnum",(e,t)=>{cs.init(e,t),O.init(e,t),e._zod.processJSONSchema=(o,n,i)=>Cc(e,o,n,i),e.enum=t.entries,e.options=[...e._zod.values];let r=new Set(Object.keys(t.entries));e.extract=(o,n)=>{let i={};for(let s of o)if(r.has(s))i[s]=t.entries[s];else throw Error(`Key ${s} not found in enum`);return new Yr({...t,checks:[],...x(n),entries:i})},e.exclude=(o,n)=>{let i={...t.entries};for(let s of o)if(r.has(s))delete i[s];else throw Error(`Key ${s} not found in enum`);return new Yr({...t,checks:[],...x(n),entries:i})}});function X(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map((o)=>[o,o])):e;return new Yr({type:"enum",entries:r,...x(t)})}var Dl=h("ZodLiteral",(e,t)=>{as.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Rc(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 V(e,t){return new Dl({type:"literal",values:Array.isArray(e)?e:[e],...x(t)})}var Fl=h("ZodTransform",(e,t)=>{Qr(),us.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Ac(e,r,o,n),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new Xe(e.constructor.name);r.addIssue=(i)=>{if(typeof i==="string")r.issues.push(ke(i,r.value,t));else{let s=i;if(s.fatal)s.continue=!1;if(s.code??(s.code="custom"),!("input"in s))s.input=r.value;s.inst??(s.inst=e),r.issues.push(ke(s))}};let n=t.transform(r.value,r);if(n instanceof Promise)return n.then((i)=>(r.value=i,r));return r.value=n,r}});function Ll(e){return new Fl({type:"transform",transform:e})}var va=h("ZodOptional",(e,t)=>{Er.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Xr(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function aa(e){return new va({type:"optional",innerType:e})}var wa=h("ZodExactOptional",(e,t)=>{ps.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Xr(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function Ml(e){return new wa({type:"optional",innerType:e})}var Ul=h("ZodNullable",(e,t)=>{ls.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Fc(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function ua(e){return new Ul({type:"nullable",innerType:e})}var Wl=h("ZodDefault",(e,t)=>{fs.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Uc(e,r,o,n),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Bl(e,t){return new Wl({type:"default",innerType:e,get defaultValue(){return typeof t==="function"?t():cr(t)}})}var Jl=h("ZodPrefault",(e,t)=>{ds.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 Vl(e,t){return new Jl({type:"prefault",innerType:e,get defaultValue(){return typeof t==="function"?t():cr(t)}})}var _a=h("ZodNonOptional",(e,t)=>{hs.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Lc(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function Kl(e,t){return new _a({type:"nonoptional",innerType:e,...x(t)})}var Hl=h("ZodCatch",(e,t)=>{ms.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Bc(e,r,o,n),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Gl(e,t){return new Hl({type:"catch",innerType:e,catchValue:typeof t==="function"?t:sn(t)})}var ql=h("ZodPipe",(e,t)=>{gs.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Jc(e,r,o,n),e.in=t.in,e.out=t.out});function pa(e,t){return new ql({type:"pipe",in:e,out:t})}var Xl=h("ZodReadonly",(e,t)=>{ys.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 Yl(e){return new Xl({type:"readonly",innerType:e})}var Ql=h("ZodCustom",(e,t)=>{xs.init(e,t),O.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Ic(e,r,o,n)});function ef(e,t={}){return ac(Ql,e,t)}function tf(e,t){return uc(e,t)}var io={};ep(io,{bigint:()=>cf,boolean:()=>sf,date:()=>af,number:()=>nf,string:()=>of});function of(e){return Ps(eo,e)}function nf(e){return Qs(Bt,e)}function sf(e){return rc(ro,e)}function cf(e){return oc(ha,e)}function af(e){return sc(ga,e)}var so=X(["codex","claude","opencode"]),uf=w().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/),pf="Initialize an AppToolkit workspace, register an existing checkout, or find the approved project workflow.",lf={codex:".agents/skills/apptoolkit/SKILL.md",claude:".claude/skills/apptoolkit/SKILL.md",opencode:".opencode/commands/apptoolkit.md"},ba=["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 co(e){let t=new Set(_(so).parse(e)),r=[];if(t.has("codex")||t.has("opencode"))r.push({path:"AGENTS.md",content:ba});if(t.has("claude"))r.push({path:"CLAUDE.md",content:ba});return r}function ff(e,t){let r=["---"];if(e!=="opencode")r.push("name: apptoolkit");if(r.push(`description: ${pf}`),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 node <workspace>/llm/harness/runtime/harness.mjs` from the installed workspace for deterministic operations. 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 ao(e,t){let r=_(so).parse(e),o=uf.parse(t);return[...new Set(r)].map((n)=>({path:lf[n],content:ff(n,o)}))}import{randomUUID as Jf}from"node:crypto";import{lstatSync as Vf,readFileSync as Kf,realpathSync as Va,renameSync as Hf,rmSync as Gf,writeFileSync as qf}from"node:fs";import{dirname as Xf,join as Be,relative as Yf,resolve as Ka}from"node:path";import{mkdirSync as Ef,readFileSync as Zf,rmSync as Aa,writeFileSync as Of}from"node:fs";import{tmpdir as Cf}from"node:os";import{resolve as lo}from"node:path";import{createHash as df,randomUUID as hf}from"node:crypto";import{chmodSync as mf,linkSync as gf,lstatSync as Jt,mkdirSync as yf,readFileSync as xf,realpathSync as za,renameSync as vf,rmSync as wf,unlinkSync as _f,writeFileSync as bf}from"node:fs";import{dirname as ka,isAbsolute as Sa,relative as Pa,resolve as ut,sep as kf}from"node:path";var $a=16777216;class Vt extends Error{}function Ea(e){return"code"in e&&e.code==="ENOENT"}function de(e){let t=za(ut(e));if(!Jt(t).isDirectory())throw Error(`Expected an existing directory at ${t}.`);return t}function uo(e,t){let r=Pa(e,t);return r!==".."&&!r.startsWith(`..${kf}`)&&!Sa(r)}function ve(e,t){if(!uo(e,t))throw Error(`Path ${t} is outside ${e}.`);return Pa(e,t)||"."}function oe(e){let t=e.split("/");if(Sa(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 Kt(e,t){if(oe(t),za(e)!==e||!Jt(e).isDirectory())throw Error(`The installation base changed. Inspect ${e} before retrying.`);let r=t.split("/"),o=e;for(let[n,i]of r.entries()){o=ut(o,i);let s=Jt(o,{throwIfNoEntry:!1});if(!s)break;let c=n===r.length-1;if(s.isSymbolicLink()||!c&&!s.isDirectory()||c&&!s.isFile())throw new Vt(`Expected a regular file path. Inspect ${o} before retrying.`)}return ut(e,t)}function M(e){return df("sha256").update(e).digest("hex")}function U(e,t=420){let r=Buffer.isBuffer(e)?e:Buffer.from(e);return{bytes:r,hash:M(r),mode:t}}function R(e,t){let r=Kt(e,t),o=Jt(r,{throwIfNoEntry:!1});if(!o)return null;if(o.size>$a)throw Error(`The file at ${r} exceeds the ${$a}-byte installation limit.`);return U(xf(r),o.mode&511)}function ce(e,t){return e?.hash===t?.hash&&e?.mode===t?.mode}function at(e){if(!ce(R(e.base,e.path),e.before))throw Error(`File changed after planning. Replan before applying ${ut(e.base,e.path)}.`)}function Ht(e){at(e);let t=Kt(e.base,e.path);if(!e.after){_f(t);return}yf(ka(t),{recursive:!0}),at(e);let r=ut(ka(t),`.apptoolkit-${hf()}.tmp`),o=e.after;try{if(bf(r,o.bytes,{flag:"wx",mode:o.mode}),mf(r,o.mode),e.before)at(e),vf(r,t);else gf(r,t)}finally{wf(r,{force:!0})}}import{spawnSync as $f}from"node:child_process";import{lstatSync as zf,realpathSync as Za}from"node:fs";import{dirname as Oa,resolve as po}from"node:path";function Sf(){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 Fe(e,t,r=[0],o=!1){let i=$f("rtk",["proxy","git",...o?["--literal-pathspecs"]:[],"-C",e,...t],{encoding:"utf8",env:Sf(),maxBuffer:1048576,timeout:1e4});if(i.error)throw Error(`Cannot run Git ${t[0]} in ${e}. Verify RTK and Git are installed.`,{cause:i.error});if(i.status===null||!r.includes(i.status))throw Error(`Git ${t[0]} failed in ${e}: ${i.stderr.trim()||`exit ${i.status}`}`);return{output:i.stdout,status:i.status}}function Ca(e){let t=e;while(!0){let r=zf(po(t,".git"),{throwIfNoEntry:!1});if(r?.isDirectory()||r?.isFile())return t;if(r)throw Error(`Unsupported Git metadata at ${po(t,".git")}. Inspect the repository before retrying.`);let o=Oa(t);if(o===t)return;t=o}}function L(e){if(!Ca(e))return;let t=Za(Fe(e,["rev-parse","--show-toplevel"]).output.trimEnd()),r=Za(Fe(e,["rev-parse","--path-format=absolute","--git-common-dir"]).output.trimEnd()),o=Fe(e,["rev-parse","--path-format=absolute","--git-path","info/exclude"]).output.trimEnd();if(po(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 ze(e,t){if(Ca(Oa(e))!==t)throw Error(`The path ${e} belongs to a different Git checkout. Select that checkout explicitly before retrying.`)}function Le(e,t){let r=ve(e.root,t);return Fe(e.root,["ls-files","--cached","-z","--",r],[0],!0).output.split("\x00").includes(r)}function Gt(e,t){let r=Fe(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 Pf(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 Ra(e){let t=Fe(e,["config","--local","--get","remote.origin.url"],[0,1]);if(t.status===1)return;let r=Pf(t.output.trimEnd());if(!r)return;return M(r)}function qt(e){return`/${e.replace(/[\\[\]*? #!]/gu,"\\$&")}`}var Rf=io.number().int().positive(),Ta=new WeakMap;function Na(e,t){Ta.set(e,t)}function If(e){let t=lo(Cf(),`apptoolkit-${M(e).slice(0,24)}.lock`),r=lo(t,"owner");try{Ef(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=Rf.parse(Zf(r,"utf8"))}catch(i){throw Error(`An installation lock already exists at ${t}. If no install is running, remove the stale lock directory and retry.`,{cause:i})}try{process.kill(n,0)}catch(i){if(i instanceof Error&&"code"in i&&i.code==="ESRCH")throw Error(`The previous installation stopped. Remove its stale lock at ${t} and rerun the same installation to resume.`,{cause:i});throw Error(`Cannot confirm whether the installation holding ${t} is still running.`,{cause:i})}throw Error(`Another installation is running for ${e} with process ID ${n}. Retry after it finishes.`)}try{Of(r,`${process.pid}
|
|
61
|
+
`,{mode:384,flag:"wx"})}catch(o){try{Aa(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 Af(e){let t=new Map;for(let r of e){let n=t.get(r.git.root)??L(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&&Le(r.git,r.absolute))throw Error(`Git started tracking ${r.absolute} after planning. Replan before applying local mode.`)}}function Tf(e,t){let r=[t];for(let o of e.reverse())try{Ht({...o,before:o.after,after:o.before})}catch(n){r.push(Error(`Cannot restore ${lo(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 Nf(e){let{exclusions:t,files:r,checks:o}=e,n=[];for(let i of[...e.guards??[],...t,...r])at(i);for(let i of e.boundaries??[])ze(i.absolute,i.gitRoot);Af(o);try{for(let i of t)Ht(i),n.push(i);for(let i of o)Gt(i,i.versioned);for(let i of r)Ht(i),n.push(i)}catch(i){Tf(n,Error("Could not apply the workspace installation. Inspect the cause and replan before retrying.",{cause:i}))}return n.length}function Ia(e){let t=[];for(let r of e.reverse())try{Aa(r,{recursive:!0})}catch(o){if(!(o instanceof Error)||!Ea(o))t.push(Error(`Cannot remove the installation lock at ${r}. Inspect it before retrying.`,{cause:o}))}return t}function ja(e,t){let r=[],o;try{for(let i of[...new Set(e)].sort())r.push(If(i));o=t()}catch(i){let s=Ia(r);if(s.length)throw AggregateError([i,...s],"The installation failed and some locks could not be removed.");throw i}let n=Ia(r);if(n.length)throw AggregateError(n,"The installation completed and some locks could not be removed.");return o}function Da(e,t){return ja([e],t)}function fo(e,t){let r=[e,...t.exclusions.map((o)=>o.base),...t.checks.map((o)=>o.git.commonDirectory)];return ja(r,()=>Nf(t))}function ho(e){let t=Ta.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:fo(e.root,t),receipt:e.receipt}}import{resolve as jf}from"node:path";var Fa=X(["codex","claude","opencode"]),La=X(["plane","penpot"]),mo=w().regex(/^[a-f0-9]{64}$/),Ma=P({path:w().min(1),versioned:De(),identity:mo.optional()}),Ua=P({schema:V(1),version:w().min(1),hosts:_(Fa),workspaceVersioned:De(),repositories:_(Ma),services:_(La),installation:w().regex(/^[a-f0-9]{16}$/).optional(),files:_(P({path:w().min(1),hash:mo,versioned:De(),fragment:mo.optional()}))}),Wa=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:_(Fa).min(1),workspaceVersioned:De(),repositories:_(Ma),services:_(La),repository:w().min(1).optional()}),K="llm/harness/workspace.json";var Df=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 go(e,t){if(e.startsWith("llm/harness/")||e.startsWith("llm/author-style/")||Df.has(e))return e!==K&&e!=="llm/harness/project.json";if(e==="llm/HARNESS.md"||e==="llm/README.md")return!0;return t.some((r)=>e===Se(r.path))}function Se(e){if(e===".")return"llm/harness-context.llm.md";return`${e}/llm/harness-context.llm.md`}function Y(e){let t=de(e),r=R(t,K);if(!r)return;try{let o=Ua.parse(JSON.parse(r.bytes.toString("utf8"))),n=new Set,i=new Set;for(let s of o.repositories){if(s.path!==".")oe(s.path);if(n.has(s.path))throw Error(`Repeated repository path ${s.path}.`);n.add(s.path)}for(let s of o.files){if(oe(s.path),!go(s.path,o.repositories)||i.has(s.path))throw Error(`Unexpected managed file ${s.path}.`);i.add(s.path)}return o}catch(o){throw Error(`Cannot read the installation receipt at ${jf(t,K)}. 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),Ja=w().regex(/^[A-Z_][A-Z0-9_]*$/).max(120),Me=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=oo([V("."),Me]),We=X(["plane","penpot"]),Ff=new Set(["localhost","127.0.0.1","[::1]"]),yo=ml().max(512).pipe(w().refine((e)=>{let t=new URL(e);return(t.protocol==="https:"||t.protocol==="http:"&&Ff.has(t.hostname))&&!t.username&&!t.password&&!t.search&&!t.hash},"Use HTTPS or loopback HTTP without credentials, query, or fragment.")),Ba={baseUrl:yo,tokenEnv:Ja,snapshots:X(["off","versioned"])},Lf=no("provider",[P({...Ba,provider:V("plane"),workspace:w().regex(/^[A-Za-z0-9][A-Za-z0-9_-]{0,119}$/),projectId:to(),auth:X(["api-key","oauth"]).default("api-key")}),P({...Ba,provider:V("penpot"),fileId:to()})]),Mf=no("mode",[P({mode:V("unlimited")}),P({mode:V("limited"),limits:_(P({category:ae,maximum:da().positive(),unit:ae})).min(1).max(12)})]),Uf=P({category:ae,scope:ae,authority:ae,provider:ae,access:no("method",[P({method:V("local"),path:Me}),P({method:V("cli"),command:ae}),P({method:V("mcp"),server:ae}),P({method:V("api"),baseUrl:yo,tokenEnv:Ja.optional()}),P({method:V("web"),baseUrl:yo})])}),Wf=P({kind:ae,template:Me.optional(),requiredSections:_(ae).max(30),checklist:_(w().trim().min(1).max(200)).max(30),prohibitedText:_(w().trim().min(1).max(120)).max(30)}),Bf=P({path:Ue,budget:Mf,rules:_(Me).max(50),routes:_(Uf).max(50),documentation:_(Wf).max(50),services:_(Lf).max(2)}).superRefine((e,t)=>{let r=new Set;for(let[n,i]of e.routes.entries()){let s=`${i.category.toLowerCase()}
|
|
62
|
+
${i.scope.toLowerCase()}`;if(r.has(s))t.addIssue({code:"custom",path:["routes",n],message:"Choose one authority for this category and scope."});r.add(s)}let o=new Set;for(let[n,i]of e.services.entries()){if(o.has(i.provider))t.addIssue({code:"custom",path:["services",n],message:"Configure each built-in service once per project."});o.add(i.provider)}}),Pe=P({schema:V(1),projects:_(Bf).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 vo="llm/harness/project.json",Qf=1048576;function he(e){try{return Vf(e)}catch(t){if(t instanceof Error&&"code"in t&&t.code==="ENOENT")return;throw Error(`Inspect ${e}.`,{cause:t})}}function wo(e){let t=he(e);if(!t?.isFile()||t.size>Qf)throw Error(`Expected a regular JSON file of at most 1 MiB at ${e}.`);try{return JSON.parse(Kf(e,"utf8"))}catch(r){throw Error(`Read JSON configuration at ${e}.`,{cause:r})}}function Ha(e){let t=e;for(let r of["llm","harness"])if(t=Be(t,r),!he(t)?.isDirectory())throw Error(`Expected an installed, nonsymlink workspace directory at ${t}.`);return t}function pt(e){let t=Va(Ka(e));Ha(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 Ga(e,t){if(Ha(e),!he(t))return;let r=Pe.safeParse(wo(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 Ga(e,Be(e,vo))}function ed(e,t,r){if(r)return r;let o=Be(e,t),n=[];if(he(o)?.isDirectory()&&Va(o)===o){for(let i of["AGENTS.md","CLAUDE.md","CONTRIBUTING.md"])if(he(Be(o,i))?.isFile())n.push(i)}return{path:t,budget:null,rules:n,routes:[],documentation:[],services:[]}}function _o(e){let{root:t,receipt:r}=pt(e),o=Ee(t);return{schema:1,projects:[...new Set([".",...r.repositories.map((i)=>i.path)])].map((i)=>{let s=o?.projects.find((c)=>c.path===i);return ed(t,i,s)})}}function xo(e){return`${JSON.stringify(e,null,2)}
|
|
63
|
+
`}function td(e,t){let r=Xf(e),o=Be(r,`.project.${Jf()}.json`);try{qf(o,xo(t),{flag:"wx",mode:384}),Hf(o,e)}catch(n){try{Gf(o,{force:!0})}catch(i){throw AggregateError([n,i],`Write project settings and clean the draft at ${e}.`)}throw Error(`Write project settings at ${e}.`,{cause:n})}}async function bo(e){let{root:t}=pt(e.root),r=Ga(t,Ka(e.configPath));if(!r)throw Error("Provide the approved project settings JSON file.");return Da(t,()=>{let{receipt:o}=pt(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 i=Be(t,vo);if(!o.workspaceVersioned){let u=L(t);if(u)Gt({git:u,path:Yf(u.root,i)},!1)}let s=Ee(t),c=new Map(s?.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(s&&xo(s)===xo(a))return{path:i,changed:!1,projects:a.projects.length};return td(i,a),{path:i,changed:!0,projects:a.projects.length}})}var rd=P({root:w().min(1),project:Ue,service:We,verifyHealth:De().optional(),verifyRead:De()}),od=ct({results:_(ct({id:to()})).max(1)}),nd=ct({name:w().min(1)}),id=131072;class we extends Error{}function $o(e){let{root:t,receipt:r}=pt(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((i)=>i.path===e.project))throw Error(`Register ${e.project} before using its service connections.`);let n=Ee(t)?.projects.find((i)=>i.path===e.project)?.services.find((i)=>i.provider===e.service);if(!n)throw Error(`Initialize the ${e.service} connection for ${e.project} first.`);return{root:t,receipt:r,connection:n}}function ko(e,t){let r=new URL(e);if(!r.pathname.endsWith("/"))r.pathname+="/";return new URL(t,r)}function sd(e){if(e.provider==="plane"){let r=`api/v1/workspaces/${e.workspace}/projects/${e.projectId}/work-items/`,o=ko(e.baseUrl,r);return o.searchParams.set("per_page","1"),o.searchParams.set("fields","id"),o}let t=ko(e.baseUrl,"api/rpc/command/get-file-summary");return t.searchParams.set("id",e.fileId),t}function cd(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 ad(e){if(!e.headers.get("content-type")?.toLowerCase().startsWith("application/json"))throw await e.body?.cancel(),new we("Expected an application/json response from the service.");let r=e.body?.getReader();if(!r)throw new we("The service response has no body.");let o=[],n=0;try{for(;;){let i=await r.read();if(i.done)return Buffer.concat(o,n).toString("utf8");if(n+=i.value.byteLength,n>id)throw await r.cancel(),new we("The service response exceeded the 128 KiB verification limit.");o.push(i.value)}}finally{r.releaseLock()}}async function ud(e,t){let r=await t(ko(e.baseUrl,"./"),{method:"HEAD",redirect:"manual",signal:AbortSignal.timeout(1e4)});return await r.body?.cancel(),r.status}async function pd(e,t,r){let o=await r(sd(e),{method:"GET",headers:cd(e,t),redirect:"error",signal:AbortSignal.timeout(1e4)});if(!o.ok)throw await o.body?.cancel(),new we(`The selected resource returned HTTP ${o.status}. Confirm the target and its read permission.`);let n=await ad(o),i=e.provider==="plane"?od:nd,s=!1;try{s=i.safeParse(JSON.parse(n)).success}catch(c){throw new we("The service returned invalid JSON.",{cause:c})}if(!s)throw new we("The response does not match the expected resource read.");return o.status}async function zo(e,t={}){let r=rd.parse(e),{connection:o}=$o(r),i=(t.environment??process.env)[o.tokenEnv],s=typeof i==="string"&&/^[\x21-\x7e]+$/.test(i),c={provider:o.provider,project:r.project,baseUrl:o.baseUrl,credentialEnv:o.tokenEnv,credentialAvailable:s,snapshots:o.snapshots,connectivity:"unchecked",read:"unchecked"},a=t.fetch??fetch;if(r.verifyRead){if(!s)throw Error(`Provide ${o.tokenEnv} in the process environment before verifying access.`);try{let u=await pd(o,i,a);return{...c,connectivity:"reachable",read:"verified",httpStatus:u}}catch(u){let p=u instanceof we?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 ud(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 ld}from"node:crypto";import{constants as qa,createReadStream as fd,openSync as dd}from"node:fs";import{join as hd,relative as Xa,resolve as md}from"node:path";var Ya=Me.refine((e)=>e.startsWith("harness-snapshots/"),{message:"Keep native service exports in the workspace harness-snapshots directory."}),gd=w().regex(/^[a-f0-9]{64}$/),yd=P({path:Ya,bytes:da().int().positive(),sha256:gd}),xd=P({root:w().min(1),project:Ue,service:We}),Qa=P({schema:V(1),project:Ue,service:We,files:_(yd).min(1).max(30)}).refine((e)=>new Set(e.files.map((t)=>t.path)).size===e.files.length,"Duplicate snapshot paths.");function eu(e,t){let r=md(e,t),o=Ya.parse(Xa(e,r)),n=e,i=o.split("/");for(let[s,c]of i.entries()){n=hd(n,c);let a=he(n);if(!(s===i.length-1?a?.isFile():a?.isDirectory()))throw Error(`Expected a regular nonsymlink snapshot path at ${n}.`)}return r}async function tu(e,t){let r=eu(e,t),o=he(r);if(!o?.isFile()||o.size===0)throw Error(`Expected a nonempty snapshot file at ${r}.`);let n=ld("sha256");try{let s=dd(r,qa.O_RDONLY|qa.O_NOFOLLOW),c=fd(r,{fd:s});for await(let a of c)n.update(a)}catch(s){throw Error(`Read snapshot bytes at ${r}.`,{cause:s})}let i=he(r);if(!i||o.dev!==i.dev||o.ino!==i.ino||o.mtimeMs!==i.mtimeMs||o.size!==i.size)throw Error(`Snapshot changed while reading ${r}. Retry with a stable export.`);return{path:Xa(e,r),bytes:o.size,sha256:n.digest("hex")}}function ru(e){let{root:t,receipt:r,connection:o}=$o(xd.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 So(e){let t=ru({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 tu(t,n));return Qa.parse({schema:1,project:e.project,service:e.service,files:o})}async function Po(e){let t=ru({root:e.root,project:e.project,service:e.service}),r=eu(t,e.manifestPath),o=Qa.parse(wo(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 i=await tu(t,n.path);if(i.bytes!==n.bytes||i.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 ou,constants as Eo,fstatSync as nu,lstatSync as iu,openSync as vd,readSync as wd,realpathSync as _d}from"node:fs";import{isAbsolute as cu,join as bd}from"node:path";var kd=262144,$d=new Set([".aws",".git",".gnupg",".npm",".ssh","credentials","node_modules","passwords","private","processing","raw","secret","secrets"]);function au(e){let t=e.toLowerCase(),r=t.replace(/(?:\.llm)?\.md$/,"");return t.startsWith(".env")||$d.has(r)}function zd(e){if(cu(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(au(r))throw Error(`The path crosses a protected location at "${r}".`)}return t}function su(e,t){if(!cu(e))throw Error("Provide an absolute project root.");if(!iu(e).isDirectory())throw Error("The project root must be a directory.");let r=_d(e);if(r.split("/").filter(Boolean).some((i,s)=>(s!==0||i!=="private")&&au(i)))throw Error("The project root crosses a protected location.");let n;for(let[i,s]of t.entries()){if(r=bd(r,s),n=iu(r),n.isSymbolicLink())throw Error(`Symbolic links are not allowed in the project path at "${s}".`);if(i<t.length-1&&!n.isDirectory())throw Error(`Expected a directory at "${s}".`)}if(!n?.isFile())throw Error("The project path must resolve to a regular file.");return{path:r,info:n}}function Sd(e,t,r,o){let n=nu(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 i=Buffer.alloc(n.size+1),s=0;while(s<i.length){let a=wd(e,i,s,i.length-s,s);if(a===0)break;s+=a}if(s>r)throw Error(`${o} source exceeds ${r} bytes. Use a narrower input.`);let c=nu(e);if(c.size!==s||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 i.subarray(0,s)}function Pd(e,t,r,o){let n;try{n=Sd(e,t,r,o)}catch(i){try{ou(e)}catch(s){throw AggregateError([i,s],"Reading and closing the file both failed.")}throw i}return ou(e),n}function Xt(e,t,r,o){try{let n=zd(t),{path:i,info:s}=su(e,n),c=vd(i,Eo.O_RDONLY|Eo.O_NOFOLLOW|Eo.O_NONBLOCK),a=Pd(c,s,r,o),u=su(e,n);if(u.path!==i||u.info.ino!==s.ino||u.info.dev!==s.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 i=n instanceof Error?n.message:String(n);throw Error(`Unable to read ${o} "${t}". ${i}`,{cause:n})}}function lt(e,t){if(!t.toLowerCase().endsWith(".md"))throw Error("Provide a relative Markdown path inside the project root.");return Xt(e,t,kd,"Markdown context")}function uu(e){return e.match(/[^\n]*\n|[^\n]+$/g)??[]}function pu(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 Ed(e){let t=/^ {0,3}(`{3,}|~{3,})/.exec(e)?.[1];if(t)return{marker:t.charAt(0),length:t.length};return}function Zd(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 Od(e,t){let r=/^ {0,3}(#{1,6})[ \t]+(.*)$/.exec(e),o=r?.[1],n=r?.[2];if(o&&n){let i=n.replace(/(?:^|[ \t]+)#+[ \t]*$/,"").trim();if(i)return pu(i,o.length,t)}return}function Cd(e){if(!e.trim()||/^(?: {4}|\t)/.test(e))return!1;return!/^ {0,3}(?:[>#<]|[-+*][ \t]|\d+[.)][ \t]|\[[^\]]+\]:|(?:[*_-][ \t]*){3,})/.test(e)}function lu(e){let t=[],r,o,n=!1,i=-1;if(e[0]?.trim()==="---")i=e.findIndex((s,c)=>c>0&&/^(---|\.\.\.)$/.test(s.trim()));for(let[s,c]of e.entries()){if(s<=i)continue;let a=c.replace(/\r?\n$/,""),u=s+1;if(r){if(Zd(a,r))r=void 0;continue}if(n||a.trimStart().startsWith("<!--")){n=!a.includes("-->"),o=void 0;continue}if(r=Ed(a),r){o=void 0;continue}let p=Od(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(pu(f,d,o.line)),o=void 0;continue}if(!Cd(a)){o=void 0;continue}if(!o)o={line:u,lines:[]};o.lines.push(a.trim())}return t}var Zo=w().min(1).refine((e)=>!/[\x00-\x1f\x7f]/.test(e),"Control characters are not allowed."),Rd=P({root:Zo.max(4096),file:Zo.max(4096),section:Zo.max(512).optional()}),fu=128,du=16384;function Id(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((s)=>s.locator),i=r.length>n.length?", or another locator from the index":"";throw Error(`Heading "${t}" is ambiguous. Use one of ${n.join(", ")}${i}.`)}return o}function hu(e,t){if(Buffer.byteLength(e)>du)throw Error(`Context output exceeds ${du} bytes. ${t}`)}function mu(e){let t=Rd.parse(e),r=uu(lt(t.root,t.file)),o=lu(r);if(t.section===void 0){if(o.length>fu)throw Error(`Heading index exceeds ${fu} entries. Request a known section or use a narrower map.`);let u={kind:"index",file:t.file,headings:o};return hu(JSON.stringify(u),"Request a known section or use a narrower map."),u}let n=Id(o,t.section),i=o.find((u)=>u.line>n.line&&u.level<=n.level),s=i?i.line-1:r.length,c=r.slice(n.line-1,s).join(""),a={kind:"section",file:t.file,heading:n,startLine:n.line,endLine:s,text:c};return hu(JSON.stringify(a),"Choose a smaller child section or a narrower map."),a}import{realpathSync as Md}from"node:fs";import{isAbsolute as Ro,normalize as Ud,relative as Wd,resolve as Bd}from"node:path";var yu=X(["lines","functions","branches"]),Ad=X(["LF","LH","FNF","FNH","BRF","BRH"]),Td={lines:{found:"LF",hit:"LH"},functions:{found:"FNF",hit:"FNH"},branches:{found:"BRF",hit:"BRH"}};function xu(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 ft(e,t,r){if(e.has(t))throw Error("Duplicate coverage entry.");e.set(t,r)}function gu(e,t){if(e.has(t))throw Error("Duplicate coverage identity.");e.add(t)}function Nd(e,t){let[r,o,,n,i]=t.split(",");if(!r||!o||i!==void 0)throw Error("Expected a line number and execution count.");let s=N(r,1);if(n!==void 0)N(n,s);ft(e.lines,String(s),N(o,0)>0)}function jd(e,t){let r=/^([^,]+),([ef]?u?\d+(?:\^\d+)?),(.+),([^,]+)$/.exec(t),o=r?.[1],n=r?.[2],i=r?.[3],s=r?.[4];if(!o||!n||!i||!s)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(i)?N(i,0):i]);ft(e.branches,u,s!=="-"&&N(s,0)>0)}function Dd(e,t,r){let o=t==="FN"?/^(\d+),(?:(\d+),)?(.+)$/:/^(\d+),(\d+)(?:,(\d+))?$/,[,n,i,s]=o.exec(r)??[];if(n===void 0)throw Error("Malformed function definition.");if(t==="FN"&&s){let c=N(n,1);if(i)N(i,c);gu(e.functionNames,s);return}if(t==="FNL"&&i){let c=N(i,1);if(s)N(s,c);gu(e.groupIds,String(N(n,0)));return}throw Error("Malformed function definition.")}function Fd(e,t,r){if(t==="FNDA"){let[,a,u]=/^(\d+),(.+)$/.exec(r)??[];if(!a||!u)throw Error("Expected a function hit count and name.");ft(e.functionHits,u,N(a,0)>0);return}let[,o,n,i]=/^(\d+),(\d+),(.+)$/.exec(r)??[];if(!o||!n||!i)throw Error("Expected an alias group, hit count and name.");let s=String(N(o,0)),c=e.aliasHits.get(s)??new Map;ft(c,i,N(n,0)>0),e.aliasHits.set(s,c)}function vu(e,t,r){let o=Ad.safeParse(t);if(o.success){ft(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 Nd(e,r);case"BRDA":return jd(e,r);case"FN":case"FNL":return Dd(e,t,r);case"FNDA":case"FNA":return Fd(e,t,r);default:throw Error("Unsupported LCOV field. Export a line, function and branch report.")}}function Oo(e){let t=0;for(let r of e.values())if(r)t+=1;return{found:e.size,hit:t}}function Ld(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 i=e.aliasHits.get(n);if(!i?.size)throw Error("Function group is missing execution records.");if(Array.from(i.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 Oo(e.functionHits)}function wu(e,t){let r=Td[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 i;switch(t){case"lines":i=Oo(e.lines);break;case"functions":i=Ld(e);break;case"branches":i=Oo(e.branches);break}if(i.found!==o||i.hit!==n)throw Error(`Summary ${n}/${o} differs from measured entries ${i.hit}/${i.found}.`);if(n!==o)throw Error(`Only ${n}/${o} were covered. The requirement is 100 percent.`);return i}var Yt=w().min(1).max(4096).refine((e)=>!/[\x00-\x1f\x7f]/.test(e)),Jd=P({root:Yt,file:Yt,config:Yt}),Vd=P({files:_(Yt).min(1).max(1e4),metrics:_(yu).min(1).max(3)});function Co(e){if(Ro(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=Wd(e,t);if(!r||r===".."||r.startsWith("../")||Ro(r))return;return r}function Kd(e,t,r){if(!e||/[\\:\x00-\x1f\x7f]/.test(e))throw Error("Expected a valid source path in the LCOV record.");if(Ro(e)){let o=_u(t,e)??_u(r,e);if(o)return Co(o);throw Error("An LCOV source is outside the project root.")}return Co(Ud(e))}function Hd(e,t){for(let[r,o]of t)try{let n=wu(e,r);o.found+=n.found,o.hit+=n.hit}catch(n){let i=n instanceof Error?n.message:String(n);throw Error(`${e.source} ${r}. ${i}`,{cause:n})}}function Gd(e,t,r,o){let n=Md(t),i=new Set,s=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,g]=/^(\d+),(.*)$/.exec(f)??[],m=Kd(g??f,t,n);if(d!==void 0){let y=Number(d);if(!Number.isSafeInteger(y)||s.has(y))throw Error("Expected a distinct safe integer source index.");s.add(y)}if(i.has(m))throw Error(`Duplicate LCOV source "${m}".`);if(!r.has(m))throw Error(`Unexpected LCOV source "${m}".`);c=xu(m),a=!1}else if(l==="end_of_record"&&c)Hd(c,o),i.add(c.source),c=void 0;else if(c){let f=l.indexOf(":");if(f<1)throw Error("Malformed LCOV field.");vu(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)=>!i.has(p));if(u.length)throw Error(`LCOV is missing ${u.length} expected source files. First missing path is "${u[0]}".`)}function bu(e){let t=Jd.parse(e),r=Xt(t.root,t.config,262144,"coverage configuration"),o;try{o=Vd.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(Co)),i=new Map;for(let a of o.metrics)i.set(a,{found:0,hit:0});if(n.size!==o.files.length||i.size!==o.metrics.length)throw Error("Coverage configuration contains duplicate files or metrics.");let s=Xt(t.root,t.file,16777216,"LCOV report");Gd(s,Bd(t.root),n,i);let c=Array.from(i,([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 Mu}from"node:fs";import{relative as Lu,resolve as _e}from"node:path";import{lstatSync as qd,readdirSync as $u}from"node:fs";import{basename as ku,resolve as dt}from"node:path";var Xd=ct({name:w().optional(),workspaces:oo([_(w()),ct({packages:_(w())})]).optional()}),Yd=new Set(["package.json","pnpm-workspace.yaml","Cargo.toml","go.mod","pyproject.toml","Gemfile","pom.xml","composer.json"]),zu=new Set([".git",".DS_Store",".agents",".claude",".opencode","llm","node_modules","dist","vendor"]);function Qd(e){let t=R(e,"package.json");if(!t)return;try{return Xd.parse(JSON.parse(t.bytes.toString("utf8")))}catch(r){throw Error(`Cannot read ${dt(e,"package.json")}. Correct the manifest and retry.`,{cause:r})}}function Je(e,t){if(t===".")return e;oe(t);let r=de(dt(e,t));if(!uo(e,r)||r!==dt(e,t))throw Error(`Choose a real directory inside ${e}. The repository path resolves through a symbolic link: ${t}.`);if(L(r)?.root!==r)throw Error(`Choose the Git repository root at ${r} before registering it.`);return r}function eh(e){let t=$u(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,i)=>n.name.localeCompare(i.name,"en"))){if(!o.isDirectory()||o.name.startsWith(".")||zu.has(o.name))continue;let n=dt(e,o.name);if(!qd(dt(n,".git"),{throwIfNoEntry:!1}))continue;if(L(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=L(t),o=eh(t),n=new Set($u(t)),i=Qd(t),s=Boolean(i?.workspaces||n.has("pnpm-workspace.yaml")||n.has("lerna.json")),c=[...Yd].some((l)=>n.has(l)),a=r?{gitRoot:r.root}:{};if(o.length&&!s){let l=[...o];if(c)l.unshift({path:".",name:i?.name??ku(t),...a});return{root:t,kind:"workspace",monorepo:s,repositories:l,...a}}let u=[...n].every((l)=>zu.has(l)),p={path:".",name:i?.name??ku(t),...a};return{root:t,kind:u?"blank":"existing",monorepo:s,repositories:[p],...a}}import{lstatSync as Eu}from"node:fs";import{resolve as ht}from"node:path";function th(e,t,r,o=!1){let n=`# appToolkit harness ${t} begin`,i=`# appToolkit harness ${t} end`,s=e.includes(`\r
|
|
64
|
+
`)?`\r
|
|
65
|
+
`:`
|
|
66
|
+
`,c=e.split(s),a=c.indexOf(n),u=c.indexOf(i);if(a===-1!==(u===-1)||a!==-1&&u<=a||c.lastIndexOf(n)!==a||c.lastIndexOf(i)!==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(),i]:[];if(a!==-1)return c.splice(a,u-a+1,...l),c.join(s);if(!l.length)return e;return`${e&&!e.endsWith(s)?`${e}${s}`:e}${l.join(s)}${s}`}function Io(e,t,r,o=!1){let n=R(e.commonDirectory,e.exclude),i=n?.bytes.toString("utf8")??"";if(n&&!Buffer.from(i).equals(n.bytes))throw Error(`Cannot update the non-UTF-8 local exclusions at ${ht(e.commonDirectory,e.exclude)}.`);let s=th(i,t,r,o),c=s||n?U(s,n?.mode):null;if(ce(n,c))return;return{base:e.commonDirectory,path:e.exclude,before:n,after:c}}function Su(e,t){let r=new Map,o=L(e);if(o)r.set(".",o);for(let n of t){if(n.path===".")continue;let i=ht(e,n.path);if(!Eu(i,{throwIfNoEntry:!1})?.isDirectory())continue;let c=L(i);if(c?.root===i)r.set(n.path,c)}return r}function Pu(e,t){let r=[...t.keys()].filter((n)=>n!=="."&&e.startsWith(`${n}/`));r.sort((n,i)=>i.length-n.length);let o=r[0]??".";return t.get(o)}function Zu(e,t,r,o,n){let i=Su(e,t.repositories),s=new Map,c=[],a=[];if(r){let d=Su(e,r.repositories);for(let g of d.values())s.set(g.commonDirectory,{scope:g,patterns:new Set});for(let g of n){let m=ht(e,g),y=Pu(g,d);ze(m,y?.root),a.push(y?{absolute:m,gitRoot:y.root}:{absolute:m})}}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)=>!Eu(ht(e,d.path),{throwIfNoEntry:!1})).map((d)=>Se(d.path)));for(let d of u){if(p.has(d.path))continue;let g=Pu(d.path,i),m=ht(e,d.path);if(ze(m,g?.root),a.push(g?{absolute:m,gitRoot:g.root}:{absolute:m}),!g)continue;let y=ve(g.root,m);if(c.push({git:g,path:y,absolute:m,versioned:d.versioned}),d.versioned)continue;if(Le(g,m)){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=s.get(g.commonDirectory)??{scope:g,patterns:new Set};v.patterns.add(qt(y)),s.set(g.commonDirectory,v)}let l=[],f=t.installation??M(e).slice(0,16);for(let{scope:d,patterns:g}of s.values()){let m=Io(d,f,g);if(m)l.push(m)}return{operations:l,checks:c,boundaries:a}}import{lstatSync as rh,readdirSync as oh}from"node:fs";import{resolve as Ou}from"node:path";var Cu=4096,nh=67108864,ih=new Set([".git","node_modules","raw","processing",".npmrc"]);function Ru(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 i=o.pop();if(!i)break;let s=oh(Ou(t,i),{withFileTypes:!0});for(let c of s.sort((a,u)=>a.name.localeCompare(u.name,"en"))){let a=i==="."?c.name:`${i}/${c.name}`;if(oe(a),ih.has(c.name)||/^\.env(?:$|\.(?!example$))/u.test(c.name))throw Error(`The release payload includes an unsupported private path: ${a}.`);if(c.isDirectory()&&!rh(Ou(t,a)).isSymbolicLink()){if(o.length+r.size>=Cu||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()||!go(u,[]))throw Error(`The release payload includes an unsupported file: ${a}.`);let p=R(t,a);if(!p)throw Error(`The release payload changed while reading ${a}.`);if(n+=p.bytes.length,r.size>=Cu||n>nh)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 Qt="llm/harness/project.json";function Iu(e,t,r,o){let n=t.repositories.find((c)=>!r.repositories.some((a)=>a.path===c.path));if(!n)return;let i=r.repositories.find((c)=>c.identity&&c.identity===n.identity);if(!i)return;let s=R(e,Qt);if(!s)return;try{let c=Pe.parse(JSON.parse(s.bytes.toString("utf8")));if(!c.projects.some((p)=>p.path===n.path))return;if(c.projects.some((p)=>p.path===i.path)){o.push({path:Qt,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:i.path};return p}),u=U(`${JSON.stringify(Pe.parse({...c,projects:a}),null,2)}
|
|
67
|
+
`,s.mode);return{base:e,path:Qt,before:s,after:u}}catch(c){throw Error(`Cannot reassign the project settings in ${Qt}. Restore a valid settings file before retrying.`,{cause:c})}}import{lstatSync as sh}from"node:fs";import{resolve as ch}from"node:path";var Ao="<!-- apptoolkit-harness:begin -->",er="<!-- apptoolkit-harness:end -->";function Tu(e){return["AGENTS.md","CLAUDE.md",".claude/rules/apptoolkit.md"].includes(e)}function ah(e,t){let r=e.indexOf(Ao),o=e.indexOf(er);if(r===-1&&o===-1)return;if(r<0||o<=r||e.lastIndexOf(Ao)!==r||e.lastIndexOf(er)!==o)throw Error(`The AppToolkit router block in ${t} is malformed. Review its markers before retrying.`);let n=o+er.length;return{prefix:e.slice(0,r),old:e.slice(r,n),suffix:e.slice(n)}}function Au(e,t,r,o,n,i,s){let c;try{c=R(e,t)}catch(m){if(!(m instanceof Vt))throw m;s.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((m)=>m.path===t)?.fragment,p=a.includes(`\r
|
|
68
|
+
`)?`\r
|
|
69
|
+
`:`
|
|
70
|
+
`,l=[Ao,r.trimEnd().replaceAll(`
|
|
71
|
+
`,p),er].join(p),f=M(l);if(c&&!Buffer.from(a).equals(c.bytes)){i.push({path:t,reason:"The native project instructions are not UTF-8. Open the harness explicitly from the agent instead."});return}let d=ah(a,t);if(u&&!d){i.push({path:t,reason:"The previously installed router block was removed. Restore or reconcile it before updating."});return}if(d){let m=M(d.old);if(m!==u&&m!==f){i.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)){s.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){s.push(`Preserved the existing ${t} in local mode. Use the installed apptoolkit command to open the harness explicitly.`);return}let g=a;if(a&&!a.endsWith(`${p}${p}`))g=a.endsWith(p)?`${a}${p}`:`${a}${p}${p}`;return{content:U(`${g}${l}${p}`,c?.mode),versioned:o,fragment:f,observed:c}}function Nu(e,t,r,o,n){let i=new Map;if(t.hosts.includes("codex")&&sh(ch(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:s,content:c}of co(t.hosts)){let p=s==="CLAUDE.md"&&r?.files.some((d)=>d.path===".claude/rules/apptoolkit.md")?".claude/rules/apptoolkit.md":s,l=[],f=Au(e,p,c,t.workspaceVersioned,r,o,l);if(f)i.set(p,f);else if(p==="CLAUDE.md"&&!t.workspaceVersioned&&l.length){let d=Au(e,".claude/rules/apptoolkit.md",c,!1,r,o,n);if(d)i.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 i}import{lstatSync as uh}from"node:fs";import{basename as ph,resolve as ju}from"node:path";function mt(e,t){return!uh(ju(e,t),{throwIfNoEntry:!1})}function To(e,t){let r=ve(e,ju(e,t));if(r!==".")oe(r);return r}function Du(e,t,r){let o=Je(e,t),n=L(o);if(r&&!n)throw Error(`Cannot version files in ${o} because Git does not manage this directory.`);let i=n&&Ra(n.root);return i?{path:t,versioned:r,identity:i}:{path:t,versioned:r}}function lh(e,t,r){let o=t.repository;if(!o)throw Error("Specify the directory of the Git repository to register.");let n=To(e,o);if(r.repositories.find((p)=>p.path===n)&&!mt(e,n))return Je(e,n),r.repositories;if(mt(e,n)){let p=r.repositories.filter((f)=>ph(f.path)===o),l=p[0];if(l&&p.length===1&&!mt(e,l.path))return Je(e,l.path),r.repositories}if(n===".")throw Error("Select the directory of a Git checkout inside the workspace.");let s=t.repositories.find((p)=>To(e,p.path)===n)?.versioned;if(s===void 0)throw Error(`Choose whether generated files inside ${n} should be versioned before registering it.`);let c=Du(e,n,s),a=r.repositories.filter((p)=>c.identity&&p.identity===c.identity&&mt(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 Fu(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 lh(o,t,r).sort((c,a)=>c.path.localeCompare(a.path,"en"))}let n=t.workspaceVersioned&&Boolean(e.gitRoot),i=t.repositories;if(!i.length&&r)i=r.repositories;if(!i.length&&e.kind==="workspace")throw Error("Select the repositories to register in this workspace.");if(!i.length)i=[{path:".",versioned:n}];let s=new Map;for(let c of i){let a=To(o,c.path);if(s.has(a))throw Error(`Repository ${a} was selected more than once.`);let u=r?.repositories.find((p)=>p.path===a);if(u&&mt(o,a))s.set(a,{...u,versioned:c.versioned});else s.set(a,Du(o,a,c.versioned))}if(r?.repositories.some((c)=>!s.has(c.path)))throw Error("The new selection omits a registered repository. Keep the existing selection when reinstalling or updating.");return[...s.values()].sort((c,a)=>c.path.localeCompare(a.path,"en"))}import{resolve as fh}from"node:path";var dh=P({root:w().min(1),repository:w().min(1),file:w().endsWith(".llm.md")}),No=new WeakMap;function jo(e){let t=dh.parse(e),r=de(t.root),o=R(r,K),n=Y(r),i=n?.repositories.find((y)=>y.path===t.repository);if(!n||!i)throw Error(`Register repository ${t.repository} in the workspace before excluding generated files.`);if(i.versioned)throw Error(`Repository ${t.repository} is configured to version its generated files.`);let s=Je(r,i.path),c=Kt(s,t.file),a=L(s);ze(c,a?.root);let u={root:r,writes:[],conflicts:[]},p=[{base:r,path:K,before:o,after:o}],l=[a?{absolute:c,gitRoot:a.root}:{absolute:c}];if(!ce(o,R(r,K)))throw Error("The installation receipt changed while planning. Retry the artifact command.");if(!a)return No.set(u,{exclusions:[],files:[],checks:[],guards:p,boundaries:l}),u;if(Le(a,c))u.conflicts.push({path:t.file,reason:"Git already tracks this file. Resolve its index status before choosing local mode."});let f=ve(a.root,c),d=n.installation??M(r).slice(0,16),g=Io(a,`${d} artifacts`,new Set([qt(f)]),!0),m=g?[g]:[];if(g)u.writes.push({path:fh(g.base,g.path),before:g.before?.hash??null,after:g.after?.hash??null});return No.set(u,{exclusions:m,files:[],checks:[{git:a,path:f,absolute:c,versioned:!1}],guards:p,boundaries:l}),u}function Do(e){let t=No.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:fo(e.root,t)}}function hh(e,t){let r=_e(e,t,"llm"),o=Lu(r,_e(e,"llm/HARNESS.md"));return["# Harness context","",`Start from the workspace folder at \`${Lu(_e(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 mh(e,t,r,o,n,i){let s=new Map;if(t.action!=="add-repo"){for(let[l,f]of Ru(t.contentDirectory))s.set(l,{content:f,versioned:r.workspaceVersioned});for(let l of ao(r.hosts,r.version))s.set(l.path,{content:U(l.content),versioned:r.workspaceVersioned});for(let[l,f]of Nu(e,r,o,n,i))s.set(l,f);let c="llm/README.md",a=R(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)s.set(c,{content:p,versioned:r.workspaceVersioned})}for(let c of r.repositories){if(!Mu(_e(e,c.path),{throwIfNoEntry:!1}))continue;let a=Se(c.path);s.set(a,{content:U(hh(e,c.path)),versioned:c.versioned})}return s}function gh(e,t,r,o,n,i){let s=[],c=new Map(o?.files.map((p)=>[p.path,p])),a=new Set(o?.repositories.map((p)=>Se(p.path))),u=new Set(r.repositories.filter((p)=>!Mu(_e(e,p.path),{throwIfNoEntry:!1})).map((p)=>Se(p.path)));for(let[p,{content:l,versioned:f,fragment:d,observed:g}]of t){let m=R(e,p),y=c.get(p),v=U(l.bytes,m?.mode??l.mode);if(g!==void 0&&!ce(m,g))throw Error(`The native router ${p} changed while planning. Retry the workspace command.`);if(!d&&m&&m.hash!==v.hash&&m.hash!==y?.hash)i.push({path:p,reason:"A different local file is present. Review or move it before applying this release."});else if(!ce(m,v))s.push({base:e,path:p,before:m,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(Tu(p.path)||u.has(p.path)||n==="add-repo"&&!a.has(p.path)){r.files.push(p);continue}let l=R(e,p.path);if(!l)continue;if(l.hash!==p.hash){i.push({path:p.path,reason:"The release retires this file, but it has local edits. Preserve the changes before updating."});continue}s.push({base:e,path:p.path,before:l,after:null})}return r.files.sort((p,l)=>p.path.localeCompare(l.path,"en")),s}function Uu(e){let t=Wa.parse(e),r=Ze(t.root),{root:o}=r,n=R(o,K),i=Y(o);if(t.action==="update"&&!i)throw Error("Install the workspace harness before updating it.");if(t.action==="install"&&i&&i.version!==t.version)throw Error(`This workspace already has harness ${i.version}. Use update to select ${t.version}.`);let s=t.action==="add-repo"&&i,c=Fu(r,t,i),a=s?i.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:s?i.version:t.version,hosts:s?i.hosts:[...new Set(t.hosts)].sort(),workspaceVersioned:a,repositories:c,services:s?i.services:[...new Set(t.services)].sort(),installation:i?.installation??M(o).slice(0,16),files:[]},p=[],l=[],f=mh(o,t,u,i,p,l),d=gh(o,f,u,i,t.action,p);if(s){let z=Iu(o,i,u,p);if(z)d.push(z)}let g=d.filter((z)=>z.after===null).map((z)=>z.path),m=Zu(o,u,i,p,g),y=new Set(m.checks.filter((z)=>!z.versioned&&z.git.commonDirectory!==_e(z.git.root,".git")).map((z)=>z.git.commonDirectory));for(let z of y)l.push(`Local Git exclusions use ${_e(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,R(o,K)))throw Error("The installation receipt changed while planning. Retry the workspace command.");if(!ce(n,v))d.push({base:o,path:K,before:n,after:v});let k=[...m.operations,...d].map((z)=>({path:z.base===o?z.path:_e(z.base,z.path),before:z.before?.hash??null,after:z.after?.hash??null})),G={root:o,action:t.action,writes:k,conflicts:p,notices:l,receipt:u};return Na(G,{exclusions:m.operations,files:d,checks:m.checks,guards:[{base:o,path:K,before:n,after:n}],boundaries:m.boundaries}),G}import{parseArgs as yh}from"node:util";var Fo=X(["codex","claude","opencode"]),Oe=X(["plane","penpot"]);function Wu(e){let t=yh({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 H(e,t){return w().min(1,`Supply ${t}.`).parse(e??"")}function Bu(e){let t=new Map;for(let r of e){let o=r.lastIndexOf("="),n=r.slice(0,o),i=r.slice(o+1);if(o<1||i!=="local"&&i!=="versioned"||t.has(n))throw Error(`Invalid or duplicate --repo-mode ${r}. Use <path>=local or <path>=versioned.`);t.set(n,i==="versioned")}return t}import{readFileSync as Ju}from"node:fs";var xh=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 vh(e){let t,r=[];for(let o of e.split(/\r?\n/)){let n=/^ {0,3}(`{3,}|~{3,})(.*)$/.exec(o),i=n?.[1];if(t){if(i?.startsWith(t)&&!n?.[2]?.trim())t=void 0}else if(i)t=i;else r.push(o)}return r}function Vu(e,t){let r=xh.parse(JSON.parse(Ju(e,"utf8"))),o=Ju(t,"utf8"),n=vh(o),i=n.join(`
|
|
77
|
+
`),s=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(!i.includes(l))u.push(`Required text is absent: ${l}.`);for(let[l,f]of r.forbiddenText.entries())if(s.includes(f.toLowerCase()))u.push(`Forbidden text rule ${l+1} matched.`);return{kind:r.kind,valid:u.length===0,issues:u}}import{resolve as Lo}from"node:path";var wh=[{label:"Keep harness files local",value:"local"},{label:"Make harness files available to commit",value:"versioned"}],Ku=[{label:"No",value:"no"},{label:"Yes",value:"yes"}];async function Mo(e,t,r){if(!e)throw Error(`Supply ${r} for a noninteractive run.`);return await e(t,wh)==="versioned"}async function _h(e){let{options:t,select:r}=e;if(t.hosts)return[...new Set(_(Fo).min(1).parse(t.hosts.split(",")))];if(!r)throw Error("Supply --hosts codex,claude,opencode or a subset for a noninteractive install.");let n=await r("Which agent hosts should this workspace support?",[{label:"Codex, Claude Code and OpenCode",value:"codex,claude,opencode"},{label:"Codex",value:"codex"},{label:"Claude Code",value:"claude"},{label:"OpenCode",value:"opencode"},{label:"Codex and Claude Code",value:"codex,claude"},{label:"Codex and OpenCode",value:"codex,opencode"},{label:"Claude Code and OpenCode",value:"claude,opencode"}]);return _(Fo).parse(n.split(","))}async function bh(e,t){let{options:r,select:o}=e,n=Bu(r["repo-mode"]??[]),i=new Set(t.repositories.map(({path:a})=>a)),s=new Set(r.repo??[]),c=[];for(let a of[...s,...n.keys()])if(!i.has(a))throw Error(`No repository was detected at ${a}. Inspect the workspace for accepted relative paths.`);for(let a of t.repositories){if(s.size&&!s.has(a.path))continue;if(t.kind==="workspace"&&o&&!s.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 Mo(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 kh(e){let{root:t,options:r,select:o,emit:n}=e,i=Ze(t);if(!r.json){let p={blank:"an empty project",existing:"an existing project",workspace:"a parent workspace"};n(`Detected ${i.monorepo?"a monorepo":p[i.kind]} at ${i.root}.`)}let s=await _h(e),c=i.gitRoot?r.versioned||!r.local&&await Mo(o,"Version the central harness with this Git repository?","--local or --versioned"):!1;if(r.versioned&&!i.gitRoot)throw Error("The workspace root has no Git repository. Use --local.");let a=await bh(e,i),u=_(Oe).parse(r["enable-service"]??[]);if(o&&!r["enable-service"]){for(let p of Oe.options)if(await o(`Offer ${p==="plane"?"Plane for agent work items":"Penpot for design"} during setup?`,Ku)==="yes")u.push(p)}return{hosts:s,workspaceVersioned:c,repositories:a,services:[...new Set(u)]}}function $h(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 Hu(e,t,r){let{root:o,version:n,options:i,emit:s,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 kh(e):$h(o),l;if(t==="update"&&i["enable-service"]){let m=_(Oe).parse(i["enable-service"]);p.services=[...new Set([...p.services,...m])]}if(t==="add-repo"){l=H(r,"the checkout path");let m=Lo(o,l),y=p.repositories.find(({path:k})=>Lo(o,k)===m),v=i["repo-versioned"]||(i["repo-local"]?!1:y?.versioned??await Mo(c,`Version files generated inside ${l}?`,"--repo-local or --repo-versioned"));p.repositories=[...p.repositories.filter(({path:k})=>Lo(o,k)!==m),{path:l,versioned:v}]}let f=Uu({root:o,action:t,version:n,contentDirectory:a??"",...p,...l?{repository:l}:{}}),d={action:t,root:f.root,writes:f.writes.map(({path:m,before:y,after:v})=>({path:m,effect:v===null?"remove":y===null?"create":"update",before:y,after:v})),conflicts:f.conflicts,notices:f.notices};if(!i.json){s(`Plan for ${f.root} contains ${d.writes.length} change(s).`);for(let m of d.writes)s(` ${m.effect} ${m.path}`);for(let m of d.conflicts)s(` conflict ${m.path}: ${m.reason}`);for(let m of d.notices)s(` note ${m}`)}if(i.plan||!i.yes&&!c){if(i.json)s(d);return f.conflicts.length?1:0}if(f.conflicts.length){if(i.json)s(d);throw Error("Resolve the reported installation conflicts before applying the plan.")}if(!i.yes&&f.writes.length&&c&&await c("Apply this plan?",Ku)!=="yes")return 0;let g=ho(f);if(i.json)s({...d,changed:g.changed,version:g.receipt.version,hosts:g.receipt.hosts});else if(s(`Applied ${g.changed} change(s) for @apptoolkit/harness ${g.receipt.version}.`),t==="install"){s(`Open ${f.root} in your selected agent host.`);for(let m of g.receipt.hosts)s(` ${m}: ${m==="codex"?"$":"/"}apptoolkit init`)}return 0}var Sh=`@apptoolkit/harness 1.0.0
|
|
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 Ph(e,t){if(t==="list")return lt(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=lt(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 Eh(){let{values:e,positionals:t}=Wu(process.argv.slice(2)),[r,o,n,i]=t;if(e.version)return process.stdout.write(`1.0.0
|
|
101
|
+
`),0;if(e.help||!r)return process.stdout.write(Sh),0;let s=tr(e.root??zh(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(s),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 _o(s)),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 bo({root:s,configPath:tr(e.config)})),0}if(r==="workflow"&&!n){let y=Ph(s,o);return c(e.json?{id:o,document:y}:y),0}if(r==="context"&&!n){let y=H(o,"the workspace-relative Markdown path");return c(mu({root:s,file:y,...e.section?{section:e.section}:{}})),0}if(r==="verify"&&o==="document"&&!i){let y=tr(H(e.config,"--config <policy.json>")),v=tr(H(n,"the document path")),k=Vu(y,v);return c(k),k.valid?0:1}if(r==="verify"&&o==="coverage"&&!i){let y=H(n,"the workspace-relative LCOV report"),v=H(e.config,"--config <coverage-policy.json>");return c(bu({root:s,file:y,config:v})),0}if(r==="protect"&&!n){let y=H(e.project,"--project <repo>"),v=H(o,"the repository-relative source map path"),k=jo({root:s,repository:y,file:v});if(e.yes&&!k.conflicts.length)c({...k,...Do(k)});else c(k);return k.conflicts.length?1:0}if(r==="service"&&o==="status"&&!i){let y=Oe.parse(n),v=H(e.project,"--project <repo>");return c(await zo({root:s,service:y,project:v,verifyRead:e["verify-read"]??!1,verifyHealth:e["verify-health"]??!1})),0}if(r==="service"&&o==="snapshot"&&!i){let y=Oe.parse(n),v=H(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 So({root:s,service:y,project:v,paths:k}));else{let G=H(e.manifest,"--manifest <snapshot.json>");c(await Po({root:s,service:y,project:v,manifestPath:G}))}return 0}let a=r==="add"&&o==="repo"&&!i,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:s,version:"1.0.0",options:e,emit:c},g={},m=f?{select:f.selectChoice}:{};return Hu({...d,...g,...m},a?"add-repo":u?"install":"update",n)}try{process.exitCode=await Eh()}catch(e){let t=e instanceof Error?e.message:String(e);process.stderr.write(`apptoolkit: ${t}
|
|
104
|
+
`),process.exitCode=1}
|
|
@@ -0,0 +1,26 @@
|
|
|
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 node 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 node 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 node 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.
|
|
@@ -0,0 +1,13 @@
|
|
|
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.
|
|
@@ -0,0 +1,13 @@
|
|
|
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.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# W03 Blockers by owner
|
|
2
|
+
|
|
3
|
+
**Trigger**. What is blocking the team or this person?.
|
|
4
|
+
|
|
5
|
+
**Authority**. Read the requested team or person's work using approved routes. Treat ownership and availability as facts to verify. Assignment and notification are separate actions.
|
|
6
|
+
|
|
7
|
+
1. Resolve the person, team, reporting scope and current status meanings. Retrieve the authoritative work items, links and dependencies through bounded collectors.
|
|
8
|
+
2. Group active blockers by verified owner or mark the owner unknown. Distinguish the person who can unblock work from the person currently assigned.
|
|
9
|
+
3. Derive the team table or recipient-specific view from the same evidence. Confirm state, owner and next action when recency affects the result.
|
|
10
|
+
|
|
11
|
+
**Result and recovery**. Return each blocker, its impact, owner, next action and evidence, with unknowns visible. Use the outward drafting workflow if a message is requested.
|
|
12
|
+
|
|
13
|
+
Apply the [operating policy](../POLICY.md) and [project guide](../PROJECT.md). Record reusable decisions and improvements at the appropriate checkpoint.
|