@objectstack/studio 2.0.5 → 2.0.6
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.
|
@@ -46,7 +46,7 @@ Error generating stack: `+f.message+`
|
|
|
46
46
|
|
|
47
47
|
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const b of e.seen.entries()){const g=b[1];if(t===b[0]){p(b);continue}if(e.external){const v=e.external.registry.get(b[0])?.id;if(t!==b[0]&&v){p(b);continue}}if(e.metadataRegistry.get(b[0])?.id){p(b);continue}if(g.cycle){p(b);continue}if(g.count>1&&e.reused==="ref"){p(b);continue}}}function rA(e,t){const a=e.seen.get(t);if(!a)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=b=>{const g=e.seen.get(b);if(g.ref===null)return;const x=g.def??g.schema,v={...x},k=g.ref;if(g.ref=null,k){r(k);const P=e.seen.get(k),A=P.schema;if(A.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(x.allOf=x.allOf??[],x.allOf.push(A)):Object.assign(x,A),Object.assign(x,v),b._zod.parent===k)for(const I in x)I==="$ref"||I==="allOf"||I in v||delete x[I];if(A.$ref&&P.def)for(const I in x)I==="$ref"||I==="allOf"||I in P.def&&JSON.stringify(x[I])===JSON.stringify(P.def[I])&&delete x[I]}const T=b._zod.parent;if(T&&T!==k){r(T);const P=e.seen.get(T);if(P?.schema.$ref&&(x.$ref=P.schema.$ref,P.def))for(const A in x)A==="$ref"||A==="allOf"||A in P.def&&JSON.stringify(x[A])===JSON.stringify(P.def[A])&&delete x[A]}e.override({zodSchema:b,jsonSchema:x,path:g.path??[]})};for(const b of[...e.seen.entries()].reverse())r(b[0]);const l={};if(e.target==="draft-2020-12"?l.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?l.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?l.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const b=e.external.registry.get(t)?.id;if(!b)throw new Error("Schema is missing an `id` property");l.$id=e.external.uri(b)}Object.assign(l,a.def??a.schema);const p=e.external?.defs??{};for(const b of e.seen.entries()){const g=b[1];g.def&&g.defId&&(p[g.defId]=g.def)}e.external||Object.keys(p).length>0&&(e.target==="draft-2020-12"?l.$defs=p:l.definitions=p);try{const b=JSON.parse(JSON.stringify(l));return Object.defineProperty(b,"~standard",{value:{...t["~standard"],jsonSchema:{input:_p(t,"input",e.processors),output:_p(t,"output",e.processors)}},enumerable:!1,writable:!1}),b}catch{throw new Error("Error converting schema to JSON.")}}function ci(e,t){const a=t??{seen:new Set};if(a.seen.has(e))return!1;a.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return ci(r.element,a);if(r.type==="set")return ci(r.valueType,a);if(r.type==="lazy")return ci(r.getter(),a);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return ci(r.innerType,a);if(r.type==="intersection")return ci(r.left,a)||ci(r.right,a);if(r.type==="record"||r.type==="map")return ci(r.keyType,a)||ci(r.valueType,a);if(r.type==="pipe")return ci(r.in,a)||ci(r.out,a);if(r.type==="object"){for(const l in r.shape)if(ci(r.shape[l],a))return!0;return!1}if(r.type==="union"){for(const l of r.options)if(ci(l,a))return!0;return!1}if(r.type==="tuple"){for(const l of r.items)if(ci(l,a))return!0;return!!(r.rest&&ci(r.rest,a))}return!1}const V9=(e,t={})=>a=>{const r=aA({...a,processors:t});return St(e,r),oA(r,e),rA(r,e)},_p=(e,t,a={})=>r=>{const{libraryOptions:l,target:p}=r??{},b=aA({...l??{},target:p,io:t,processors:a});return St(e,b),oA(b,e),rA(b,e)},G9={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},W9=(e,t,a,r)=>{const l=a;l.type="string";const{minimum:p,maximum:b,format:g,patterns:x,contentEncoding:v}=e._zod.bag;if(typeof p=="number"&&(l.minLength=p),typeof b=="number"&&(l.maxLength=b),g&&(l.format=G9[g]??g,l.format===""&&delete l.format,g==="time"&&delete l.format),v&&(l.contentEncoding=v),x&&x.size>0){const k=[...x];k.length===1?l.pattern=k[0].source:k.length>1&&(l.allOf=[...k.map(T=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:T.source}))])}},Q9=(e,t,a,r)=>{const l=a,{minimum:p,maximum:b,format:g,multipleOf:x,exclusiveMaximum:v,exclusiveMinimum:k}=e._zod.bag;typeof g=="string"&&g.includes("int")?l.type="integer":l.type="number",typeof k=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(l.minimum=k,l.exclusiveMinimum=!0):l.exclusiveMinimum=k),typeof p=="number"&&(l.minimum=p,typeof k=="number"&&t.target!=="draft-04"&&(k>=p?delete l.minimum:delete l.exclusiveMinimum)),typeof v=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(l.maximum=v,l.exclusiveMaximum=!0):l.exclusiveMaximum=v),typeof b=="number"&&(l.maximum=b,typeof v=="number"&&t.target!=="draft-04"&&(v<=b?delete l.maximum:delete l.exclusiveMaximum)),typeof x=="number"&&(l.multipleOf=x)},K9=(e,t,a,r)=>{a.type="boolean"},Z9=(e,t,a,r)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},Y9=(e,t,a,r)=>{a.not={}},J9=(e,t,a,r)=>{},X9=(e,t,a,r)=>{},eW=(e,t,a,r)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},tW=(e,t,a,r)=>{const l=e._zod.def,p=NT(l.entries);p.every(b=>typeof b=="number")&&(a.type="number"),p.every(b=>typeof b=="string")&&(a.type="string"),a.enum=p},iW=(e,t,a,r)=>{const l=e._zod.def,p=[];for(const b of l.values)if(b===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof b=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");p.push(Number(b))}else p.push(b);if(p.length!==0)if(p.length===1){const b=p[0];a.type=b===null?"null":typeof b,t.target==="draft-04"||t.target==="openapi-3.0"?a.enum=[b]:a.const=b}else p.every(b=>typeof b=="number")&&(a.type="number"),p.every(b=>typeof b=="string")&&(a.type="string"),p.every(b=>typeof b=="boolean")&&(a.type="boolean"),p.every(b=>b===null)&&(a.type="null"),a.enum=p},aW=(e,t,a,r)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},oW=(e,t,a,r)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},rW=(e,t,a,r)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},nW=(e,t,a,r)=>{const l=a,p=e._zod.def,{minimum:b,maximum:g}=e._zod.bag;typeof b=="number"&&(l.minItems=b),typeof g=="number"&&(l.maxItems=g),l.type="array",l.items=St(p.element,t,{...r,path:[...r.path,"items"]})},sW=(e,t,a,r)=>{const l=a,p=e._zod.def;l.type="object",l.properties={};const b=p.shape;for(const v in b)l.properties[v]=St(b[v],t,{...r,path:[...r.path,"properties",v]});const g=new Set(Object.keys(b)),x=new Set([...g].filter(v=>{const k=p.shape[v]._zod;return t.io==="input"?k.optin===void 0:k.optout===void 0}));x.size>0&&(l.required=Array.from(x)),p.catchall?._zod.def.type==="never"?l.additionalProperties=!1:p.catchall?p.catchall&&(l.additionalProperties=St(p.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):t.io==="output"&&(l.additionalProperties=!1)},lW=(e,t,a,r)=>{const l=e._zod.def,p=l.inclusive===!1,b=l.options.map((g,x)=>St(g,t,{...r,path:[...r.path,p?"oneOf":"anyOf",x]}));p?a.oneOf=b:a.anyOf=b},cW=(e,t,a,r)=>{const l=e._zod.def,p=St(l.left,t,{...r,path:[...r.path,"allOf",0]}),b=St(l.right,t,{...r,path:[...r.path,"allOf",1]}),g=v=>"allOf"in v&&Object.keys(v).length===1,x=[...g(p)?p.allOf:[p],...g(b)?b.allOf:[b]];a.allOf=x},dW=(e,t,a,r)=>{const l=a,p=e._zod.def;l.type="array";const b=t.target==="draft-2020-12"?"prefixItems":"items",g=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",x=p.items.map((P,A)=>St(P,t,{...r,path:[...r.path,b,A]})),v=p.rest?St(p.rest,t,{...r,path:[...r.path,g,...t.target==="openapi-3.0"?[p.items.length]:[]]}):null;t.target==="draft-2020-12"?(l.prefixItems=x,v&&(l.items=v)):t.target==="openapi-3.0"?(l.items={anyOf:x},v&&l.items.anyOf.push(v),l.minItems=x.length,v||(l.maxItems=x.length)):(l.items=x,v&&(l.additionalItems=v));const{minimum:k,maximum:T}=e._zod.bag;typeof k=="number"&&(l.minItems=k),typeof T=="number"&&(l.maxItems=T)},uW=(e,t,a,r)=>{const l=a,p=e._zod.def;l.type="object";const b=p.keyType,x=b._zod.bag?.patterns;if(p.mode==="loose"&&x&&x.size>0){const k=St(p.valueType,t,{...r,path:[...r.path,"patternProperties","*"]});l.patternProperties={};for(const T of x)l.patternProperties[T.source]=k}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(l.propertyNames=St(p.keyType,t,{...r,path:[...r.path,"propertyNames"]})),l.additionalProperties=St(p.valueType,t,{...r,path:[...r.path,"additionalProperties"]});const v=b._zod.values;if(v){const k=[...v].filter(T=>typeof T=="string"||typeof T=="number");k.length>0&&(l.required=k)}},pW=(e,t,a,r)=>{const l=e._zod.def,p=St(l.innerType,t,r),b=t.seen.get(e);t.target==="openapi-3.0"?(b.ref=l.innerType,a.nullable=!0):a.anyOf=[p,{type:"null"}]},mW=(e,t,a,r)=>{const l=e._zod.def;St(l.innerType,t,r);const p=t.seen.get(e);p.ref=l.innerType},fW=(e,t,a,r)=>{const l=e._zod.def;St(l.innerType,t,r);const p=t.seen.get(e);p.ref=l.innerType,a.default=JSON.parse(JSON.stringify(l.defaultValue))},bW=(e,t,a,r)=>{const l=e._zod.def;St(l.innerType,t,r);const p=t.seen.get(e);p.ref=l.innerType,t.io==="input"&&(a._prefault=JSON.parse(JSON.stringify(l.defaultValue)))},hW=(e,t,a,r)=>{const l=e._zod.def;St(l.innerType,t,r);const p=t.seen.get(e);p.ref=l.innerType;let b;try{b=l.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}a.default=b},gW=(e,t,a,r)=>{const l=e._zod.def,p=t.io==="input"?l.in._zod.def.type==="transform"?l.out:l.in:l.out;St(p,t,r);const b=t.seen.get(e);b.ref=p},yW=(e,t,a,r)=>{const l=e._zod.def;St(l.innerType,t,r);const p=t.seen.get(e);p.ref=l.innerType,a.readOnly=!0},vW=(e,t,a,r)=>{const l=e._zod.def;St(l.innerType,t,r);const p=t.seen.get(e);p.ref=l.innerType},nA=(e,t,a,r)=>{const l=e._zod.def;St(l.innerType,t,r);const p=t.seen.get(e);p.ref=l.innerType},SW=(e,t,a,r)=>{const l=e._zod.innerType;St(l,t,r);const p=t.seen.get(e);p.ref=l},xW=oe("ZodISODateTime",(e,t)=>{n8.init(e,t),Ct.init(e,t)});function wW(e){return y9(xW,e)}const kW=oe("ZodISODate",(e,t)=>{s8.init(e,t),Ct.init(e,t)});function CW(e){return v9(kW,e)}const EW=oe("ZodISOTime",(e,t)=>{l8.init(e,t),Ct.init(e,t)});function RW(e){return S9(EW,e)}const TW=oe("ZodISODuration",(e,t)=>{c8.init(e,t),Ct.init(e,t)});function AW(e){return x9(TW,e)}const sA=(e,t)=>{$T.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:a=>XV(e,a)},flatten:{value:a=>JV(e,a)},addIssue:{value:a=>{e.issues.push(a),e.message=JSON.stringify(e.issues,Fg,2)}},addIssues:{value:a=>{e.issues.push(...a),e.message=JSON.stringify(e.issues,Fg,2)}},isEmpty:{get(){return e.issues.length===0}}})},TE=oe("ZodError",sA),na=oe("ZodError",sA,{Parent:Error}),_W=im(na),PW=am(na),IW=om(na),DW=rm(na),jW=iG(na),MW=aG(na),OW=oG(na),NW=rG(na),LW=nG(na),zW=sG(na),qW=lG(na),$W=cG(na),ct=oe("ZodType",(e,t)=>(lt.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:_p(e,"input"),output:_p(e,"output")}}),e.toJSONSchema=V9(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...a)=>e.clone(hr(t,{checks:[...t.checks??[],...a.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(a,r)=>gr(e,a,r),e.brand=()=>e,e.register=((a,r)=>(a.add(e,r),e)),e.parse=(a,r)=>_W(e,a,r,{callee:e.parse}),e.safeParse=(a,r)=>IW(e,a,r),e.parseAsync=async(a,r)=>PW(e,a,r,{callee:e.parseAsync}),e.safeParseAsync=async(a,r)=>DW(e,a,r),e.spa=e.safeParseAsync,e.encode=(a,r)=>jW(e,a,r),e.decode=(a,r)=>MW(e,a,r),e.encodeAsync=async(a,r)=>OW(e,a,r),e.decodeAsync=async(a,r)=>NW(e,a,r),e.safeEncode=(a,r)=>LW(e,a,r),e.safeDecode=(a,r)=>zW(e,a,r),e.safeEncodeAsync=async(a,r)=>qW(e,a,r),e.safeDecodeAsync=async(a,r)=>$W(e,a,r),e.refine=(a,r)=>e.check(q7(a,r)),e.superRefine=a=>e.check($7(a)),e.overwrite=a=>e.check(Us(a)),e.optional=()=>PE(e),e.exactOptional=()=>k7(e),e.nullable=()=>IE(e),e.nullish=()=>PE(IE(e)),e.nonoptional=a=>_7(e,a),e.array=()=>m(e),e.or=a=>Z([e,a]),e.and=a=>iv(e,a),e.transform=a=>DE(e,x7(a)),e.default=a=>R7(e,a),e.prefault=a=>A7(e,a),e.catch=a=>I7(e,a),e.pipe=a=>DE(e,a),e.readonly=()=>M7(e),e.describe=a=>{const r=e.clone();return dc.add(r,{description:a}),r},Object.defineProperty(e,"description",{get(){return dc.get(e)?.description},configurable:!0}),e.meta=(...a)=>{if(a.length===0)return dc.get(e);const r=e.clone();return dc.add(r,a[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=a=>a(e),e)),lA=oe("_ZodString",(e,t)=>{tv.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(r,l,p)=>W9(e,r,l);const a=e._zod.bag;e.format=a.format??null,e.minLength=a.minimum??null,e.maxLength=a.maximum??null,e.regex=(...r)=>e.check(P9(...r)),e.includes=(...r)=>e.check(j9(...r)),e.startsWith=(...r)=>e.check(M9(...r)),e.endsWith=(...r)=>e.check(O9(...r)),e.min=(...r)=>e.check(Ap(...r)),e.max=(...r)=>e.check(tA(...r)),e.length=(...r)=>e.check(iA(...r)),e.nonempty=(...r)=>e.check(Ap(1,...r)),e.lowercase=r=>e.check(I9(r)),e.uppercase=r=>e.check(D9(r)),e.trim=()=>e.check(L9()),e.normalize=(...r)=>e.check(N9(...r)),e.toLowerCase=()=>e.check(z9()),e.toUpperCase=()=>e.check(q9()),e.slugify=()=>e.check($9())}),UW=oe("ZodString",(e,t)=>{tv.init(e,t),lA.init(e,t),e.email=a=>e.check(Y8(FW,a)),e.url=a=>e.check(i9(BW,a)),e.jwt=a=>e.check(g9(o7,a)),e.emoji=a=>e.check(a9(HW,a)),e.guid=a=>e.check(kE(AE,a)),e.uuid=a=>e.check(J8(Hu,a)),e.uuidv4=a=>e.check(X8(Hu,a)),e.uuidv6=a=>e.check(e9(Hu,a)),e.uuidv7=a=>e.check(t9(Hu,a)),e.nanoid=a=>e.check(o9(VW,a)),e.guid=a=>e.check(kE(AE,a)),e.cuid=a=>e.check(r9(GW,a)),e.cuid2=a=>e.check(n9(WW,a)),e.ulid=a=>e.check(s9(QW,a)),e.base64=a=>e.check(f9(t7,a)),e.base64url=a=>e.check(b9(i7,a)),e.xid=a=>e.check(l9(KW,a)),e.ksuid=a=>e.check(c9(ZW,a)),e.ipv4=a=>e.check(d9(YW,a)),e.ipv6=a=>e.check(u9(JW,a)),e.cidrv4=a=>e.check(p9(XW,a)),e.cidrv6=a=>e.check(m9(e7,a)),e.e164=a=>e.check(h9(a7,a)),e.datetime=a=>e.check(wW(a)),e.date=a=>e.check(CW(a)),e.time=a=>e.check(RW(a)),e.duration=a=>e.check(AW(a))});function i(e){return Z8(UW,e)}const Ct=oe("ZodStringFormat",(e,t)=>{xt.init(e,t),lA.init(e,t)}),FW=oe("ZodEmail",(e,t)=>{YG.init(e,t),Ct.init(e,t)}),AE=oe("ZodGUID",(e,t)=>{KG.init(e,t),Ct.init(e,t)}),Hu=oe("ZodUUID",(e,t)=>{ZG.init(e,t),Ct.init(e,t)}),BW=oe("ZodURL",(e,t)=>{JG.init(e,t),Ct.init(e,t)}),HW=oe("ZodEmoji",(e,t)=>{XG.init(e,t),Ct.init(e,t)}),VW=oe("ZodNanoID",(e,t)=>{e8.init(e,t),Ct.init(e,t)}),GW=oe("ZodCUID",(e,t)=>{t8.init(e,t),Ct.init(e,t)}),WW=oe("ZodCUID2",(e,t)=>{i8.init(e,t),Ct.init(e,t)}),QW=oe("ZodULID",(e,t)=>{a8.init(e,t),Ct.init(e,t)}),KW=oe("ZodXID",(e,t)=>{o8.init(e,t),Ct.init(e,t)}),ZW=oe("ZodKSUID",(e,t)=>{r8.init(e,t),Ct.init(e,t)}),YW=oe("ZodIPv4",(e,t)=>{d8.init(e,t),Ct.init(e,t)}),JW=oe("ZodIPv6",(e,t)=>{u8.init(e,t),Ct.init(e,t)}),XW=oe("ZodCIDRv4",(e,t)=>{p8.init(e,t),Ct.init(e,t)}),e7=oe("ZodCIDRv6",(e,t)=>{m8.init(e,t),Ct.init(e,t)}),t7=oe("ZodBase64",(e,t)=>{f8.init(e,t),Ct.init(e,t)}),i7=oe("ZodBase64URL",(e,t)=>{h8.init(e,t),Ct.init(e,t)}),a7=oe("ZodE164",(e,t)=>{g8.init(e,t),Ct.init(e,t)}),o7=oe("ZodJWT",(e,t)=>{v8.init(e,t),Ct.init(e,t)}),cA=oe("ZodNumber",(e,t)=>{KT.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(r,l,p)=>Q9(e,r,l),e.gt=(r,l)=>e.check(EE(r,l)),e.gte=(r,l)=>e.check(rp(r,l)),e.min=(r,l)=>e.check(rp(r,l)),e.lt=(r,l)=>e.check(CE(r,l)),e.lte=(r,l)=>e.check(op(r,l)),e.max=(r,l)=>e.check(op(r,l)),e.int=r=>e.check(_E(r)),e.safe=r=>e.check(_E(r)),e.positive=r=>e.check(EE(0,r)),e.nonnegative=r=>e.check(rp(0,r)),e.negative=r=>e.check(CE(0,r)),e.nonpositive=r=>e.check(op(0,r)),e.multipleOf=(r,l)=>e.check(RE(r,l)),e.step=(r,l)=>e.check(RE(r,l)),e.finite=()=>e;const a=e._zod.bag;e.minValue=Math.max(a.minimum??Number.NEGATIVE_INFINITY,a.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(a.maximum??Number.POSITIVE_INFINITY,a.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(a.format??"").includes("int")||Number.isSafeInteger(a.multipleOf??.5),e.isFinite=!0,e.format=a.format??null});function u(e){return w9(cA,e)}const r7=oe("ZodNumberFormat",(e,t)=>{S8.init(e,t),cA.init(e,t)});function _E(e){return k9(r7,e)}const n7=oe("ZodBoolean",(e,t)=>{x8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>K9(e,a,r)});function c(e){return C9(n7,e)}const s7=oe("ZodAny",(e,t)=>{w8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>J9()});function rt(){return E9(s7)}const l7=oe("ZodUnknown",(e,t)=>{k8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>X9()});function E(){return R9(l7)}const c7=oe("ZodNever",(e,t)=>{C8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>Y9(e,a,r)});function d7(e){return T9(c7,e)}const u7=oe("ZodVoid",(e,t)=>{E8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>Z9(e,a)});function Kt(e){return A9(u7,e)}const p7=oe("ZodDate",(e,t)=>{R8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(r,l,p)=>eW(e,r),e.min=(r,l)=>e.check(rp(r,l)),e.max=(r,l)=>e.check(op(r,l));const a=e._zod.bag;e.minDate=a.minimum?new Date(a.minimum):null,e.maxDate=a.maximum?new Date(a.maximum):null});function ze(e){return _9(p7,e)}const m7=oe("ZodArray",(e,t)=>{T8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>nW(e,a,r,l),e.element=t.element,e.min=(a,r)=>e.check(Ap(a,r)),e.nonempty=a=>e.check(Ap(1,a)),e.max=(a,r)=>e.check(tA(a,r)),e.length=(a,r)=>e.check(iA(a,r)),e.unwrap=()=>e.element});function m(e,t){return U9(m7,e,t)}const f7=oe("ZodObject",(e,t)=>{_8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>sW(e,a,r,l),et(e,"shape",()=>t.shape),e.keyof=()=>h(Object.keys(e._zod.def.shape)),e.catchall=a=>e.clone({...e._zod.def,catchall:a}),e.passthrough=()=>e.clone({...e._zod.def,catchall:E()}),e.loose=()=>e.clone({...e._zod.def,catchall:E()}),e.strict=()=>e.clone({...e._zod.def,catchall:d7()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=a=>WV(e,a),e.safeExtend=a=>QV(e,a),e.merge=a=>KV(e,a),e.pick=a=>VV(e,a),e.omit=a=>GV(e,a),e.partial=(...a)=>ZV(uA,e,a[0]),e.required=(...a)=>YV(pA,e,a[0])});function n(e,t){const a={type:"object",shape:e??{},...Ae(t)};return new f7(a)}const dA=oe("ZodUnion",(e,t)=>{JT.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>lW(e,a,r,l),e.options=t.options});function Z(e,t){return new dA({type:"union",options:e,...Ae(t)})}const b7=oe("ZodDiscriminatedUnion",(e,t)=>{dA.init(e,t),P8.init(e,t)});function tt(e,t,a){return new b7({type:"union",options:t,discriminator:e,...Ae(a)})}const h7=oe("ZodIntersection",(e,t)=>{I8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>cW(e,a,r,l)});function iv(e,t){return new h7({type:"intersection",left:e,right:t})}const g7=oe("ZodTuple",(e,t)=>{XT.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>dW(e,a,r,l),e.rest=a=>e.clone({...e._zod.def,rest:a})});function Se(e,t,a){const r=t instanceof lt,l=r?a:t,p=r?t:null;return new g7({type:"tuple",items:e,rest:p,...Ae(l)})}const y7=oe("ZodRecord",(e,t)=>{D8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>uW(e,a,r,l),e.keyType=t.keyType,e.valueType=t.valueType});function C(e,t,a){return new y7({type:"record",keyType:e,valueType:t,...Ae(a)})}const Hg=oe("ZodEnum",(e,t)=>{j8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(r,l,p)=>tW(e,r,l),e.enum=t.entries,e.options=Object.values(t.entries);const a=new Set(Object.keys(t.entries));e.extract=(r,l)=>{const p={};for(const b of r)if(a.has(b))p[b]=t.entries[b];else throw new Error(`Key ${b} not found in enum`);return new Hg({...t,checks:[],...Ae(l),entries:p})},e.exclude=(r,l)=>{const p={...t.entries};for(const b of r)if(a.has(b))delete p[b];else throw new Error(`Key ${b} not found in enum`);return new Hg({...t,checks:[],...Ae(l),entries:p})}});function h(e,t){const a=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Hg({type:"enum",entries:a,...Ae(t)})}const v7=oe("ZodLiteral",(e,t)=>{M8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>iW(e,a,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function z(e,t){return new v7({type:"literal",values:Array.isArray(e)?e:[e],...Ae(t)})}const S7=oe("ZodTransform",(e,t)=>{O8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>rW(e,a),e._zod.parse=(a,r)=>{if(r.direction==="backward")throw new MT(e.constructor.name);a.addIssue=p=>{if(typeof p=="string")a.issues.push(Pc(p,a.value,t));else{const b=p;b.fatal&&(b.continue=!1),b.code??(b.code="custom"),b.input??(b.input=a.value),b.inst??(b.inst=e),a.issues.push(Pc(b))}};const l=t.transform(a.value,a);return l instanceof Promise?l.then(p=>(a.value=p,a)):(a.value=l,a)}});function x7(e){return new S7({type:"transform",transform:e})}const uA=oe("ZodOptional",(e,t)=>{eA.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>nA(e,a,r,l),e.unwrap=()=>e._zod.def.innerType});function PE(e){return new uA({type:"optional",innerType:e})}const w7=oe("ZodExactOptional",(e,t)=>{N8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>nA(e,a,r,l),e.unwrap=()=>e._zod.def.innerType});function k7(e){return new w7({type:"optional",innerType:e})}const C7=oe("ZodNullable",(e,t)=>{L8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>pW(e,a,r,l),e.unwrap=()=>e._zod.def.innerType});function IE(e){return new C7({type:"nullable",innerType:e})}const E7=oe("ZodDefault",(e,t)=>{z8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>fW(e,a,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function R7(e,t){return new E7({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():zT(t)}})}const T7=oe("ZodPrefault",(e,t)=>{q8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>bW(e,a,r,l),e.unwrap=()=>e._zod.def.innerType});function A7(e,t){return new T7({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():zT(t)}})}const pA=oe("ZodNonOptional",(e,t)=>{$8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>mW(e,a,r,l),e.unwrap=()=>e._zod.def.innerType});function _7(e,t){return new pA({type:"nonoptional",innerType:e,...Ae(t)})}const P7=oe("ZodCatch",(e,t)=>{U8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>hW(e,a,r,l),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function I7(e,t){return new P7({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const D7=oe("ZodPipe",(e,t)=>{F8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>gW(e,a,r,l),e.in=t.in,e.out=t.out});function DE(e,t){return new D7({type:"pipe",in:e,out:t})}const j7=oe("ZodReadonly",(e,t)=>{B8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>yW(e,a,r,l),e.unwrap=()=>e._zod.def.innerType});function M7(e){return new j7({type:"readonly",innerType:e})}const O7=oe("ZodLazy",(e,t)=>{G8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>SW(e,a,r,l),e.unwrap=()=>e._zod.def.getter()});function Ue(e){return new O7({type:"lazy",getter:e})}const N7=oe("ZodPromise",(e,t)=>{V8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>vW(e,a,r,l),e.unwrap=()=>e._zod.def.innerType});function Pe(e){return new N7({type:"promise",innerType:e})}const L7=oe("ZodFunction",(e,t)=>{H8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>oW(e,a)});function $(e){return new L7({type:"function",input:Array.isArray(e?.input)?Se(e?.input):m(E()),output:E()})}const z7=oe("ZodCustom",(e,t)=>{W8.init(e,t),ct.init(e,t),e._zod.processJSONSchema=(a,r,l)=>aW(e,a)});function q7(e,t={}){return F9(z7,e,t)}function $7(e){return B9(e)}const ra={custom:"custom"};var U7=h(["lru","lfu","fifo","ttl","adaptive"]).describe("Cache eviction strategy"),F7=n({name:i().describe("Unique cache tier name"),type:h(["memory","redis","memcached","cdn"]).describe("Cache backend type"),maxSize:u().optional().describe("Max size in MB"),ttl:u().default(300).describe("Default TTL in seconds"),strategy:U7.default("lru").describe("Eviction strategy"),warmup:c().default(!1).describe("Pre-populate cache on startup")}).describe("Configuration for a single cache tier in the hierarchy"),B7=n({trigger:h(["create","update","delete","manual"]).describe("Event that triggers invalidation"),scope:h(["key","pattern","tag","all"]).describe("Invalidation scope"),pattern:i().optional().describe("Key pattern for pattern-based invalidation"),tags:m(i()).optional().describe("Cache tags to invalidate")}).describe("Rule defining when and how cached entries are invalidated");n({enabled:c().default(!1).describe("Enable application-level caching"),tiers:m(F7).describe("Ordered cache tier hierarchy"),invalidation:m(B7).describe("Cache invalidation rules"),prefetch:c().default(!1).describe("Enable cache prefetching"),compression:c().default(!1).describe("Enable data compression in cache"),encryption:c().default(!1).describe("Enable encryption for cached data")}).describe("Top-level application cache configuration");var H7=h(["kafka","rabbitmq","aws-sqs","redis-pubsub","google-pubsub","azure-service-bus"]).describe("Supported message queue backend provider"),V7=n({name:i().describe("Topic name identifier"),partitions:u().default(1).describe("Number of partitions for parallel consumption"),replicationFactor:u().default(1).describe("Number of replicas for fault tolerance"),retentionMs:u().optional().describe("Message retention period in milliseconds"),compressionType:h(["none","gzip","snappy","lz4"]).default("none").describe("Message compression algorithm")}).describe("Configuration for a message queue topic"),G7=n({groupId:i().describe("Consumer group identifier"),autoOffsetReset:h(["earliest","latest"]).default("latest").describe("Where to start reading when no offset exists"),enableAutoCommit:c().default(!0).describe("Automatically commit consumed offsets"),maxPollRecords:u().default(500).describe("Maximum records returned per poll")}).describe("Consumer group configuration for topic consumption"),W7=n({enabled:c().default(!1).describe("Enable dead letter queue for failed messages"),maxRetries:u().default(3).describe("Maximum delivery attempts before sending to DLQ"),queueName:i().describe("Name of the dead letter queue")}).describe("Dead letter queue configuration for unprocessable messages");n({provider:H7.describe("Message queue backend provider"),topics:m(V7).describe("List of topic configurations"),consumers:m(G7).optional().describe("Consumer group configurations"),deadLetterQueue:W7.optional().describe("Dead letter queue for failed messages"),ssl:c().default(!1).describe("Enable SSL/TLS for broker connections"),sasl:n({mechanism:h(["plain","scram-sha-256","scram-sha-512"]).describe("SASL authentication mechanism"),username:i().describe("SASL username"),password:i().describe("SASL password")}).optional().describe("SASL authentication configuration")}).describe("Top-level message queue configuration");var sm=i().min(2,{message:"System identifier must be at least 2 characters"}).regex(/^[a-z][a-z0-9_.]*$/,{message:'System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., "user_profile" or "order.created")'}).describe("System identifier (lowercase with underscores or dots)"),Q7=i().min(2,{message:"Identifier must be at least 2 characters"}).regex(/^[a-z][a-z0-9_]*$/,{message:'Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., "user_profile")'}).describe("Snake case identifier (lowercase with underscores only)");i().min(3,{message:"Event name must be at least 3 characters"}).regex(/^[a-z][a-z0-9_.]*$/,{message:'Event name must be lowercase with dots for namespacing (e.g., "user.created", "order.paid")'}).describe("Event name (lowercase with dot notation for namespacing)");var K7=h(["global","tenant","user","session","temp","cache","data","logs","config","public"]).describe("Storage scope classification");n({path:i().describe("File path"),name:i().describe("File name"),size:u().int().describe("File size in bytes"),mimeType:i().describe("MIME type"),lastModified:i().datetime().describe("Last modified timestamp"),created:i().datetime().describe("Creation timestamp"),etag:i().optional().describe("Entity tag")});var mA=h(["s3","azure_blob","gcs","minio","r2","spaces","wasabi","backblaze","local"]).describe("Storage provider type"),Z7=h(["private","public_read","public_read_write","authenticated_read","bucket_owner_read","bucket_owner_full_control"]).describe("Storage access control level"),fA=h(["standard","intelligent","infrequent_access","glacier","deep_archive"]).describe("Storage class/tier for cost optimization"),Y7=h(["transition","delete","abort"]).describe("Lifecycle policy action type");n({contentType:i().describe("MIME type (e.g., image/jpeg, application/pdf)"),contentLength:u().min(0).describe("File size in bytes"),contentEncoding:i().optional().describe("Content encoding (e.g., gzip)"),contentDisposition:i().optional().describe("Content disposition header"),contentLanguage:i().optional().describe("Content language"),cacheControl:i().optional().describe("Cache control directives"),etag:i().optional().describe("Entity tag for versioning/caching"),lastModified:i().datetime().optional().describe("Last modification timestamp"),versionId:i().optional().describe("Object version identifier"),storageClass:fA.optional().describe("Storage class/tier"),encryption:n({algorithm:i().describe("Encryption algorithm (e.g., AES256, aws:kms)"),keyId:i().optional().describe("KMS key ID if using managed encryption")}).optional().describe("Server-side encryption configuration"),custom:C(i(),i()).optional().describe("Custom user-defined metadata")});n({operation:h(["get","put","delete","head"]).describe("Allowed operation"),expiresIn:u().min(1).max(604800).describe("Expiration time in seconds (max 7 days)"),contentType:i().optional().describe("Required content type for PUT operations"),maxSize:u().min(0).optional().describe("Maximum file size in bytes for PUT operations"),responseContentType:i().optional().describe("Override content-type for GET operations"),responseContentDisposition:i().optional().describe("Override content-disposition for GET operations")});var J7=n({enabled:c().default(!0).describe("Enable multipart uploads"),partSize:u().min(5*1024*1024).max(5*1024*1024*1024).default(10*1024*1024).describe("Part size in bytes (min 5MB, max 5GB)"),maxParts:u().min(1).max(1e4).default(1e4).describe("Maximum number of parts (max 10,000)"),threshold:u().min(0).default(100*1024*1024).describe("File size threshold to trigger multipart upload (bytes)"),maxConcurrent:u().min(1).max(100).default(4).describe("Maximum concurrent part uploads"),abortIncompleteAfterDays:u().min(1).optional().describe("Auto-abort incomplete uploads after N days")}),X7=n({acl:Z7.default("private").describe("Default access control level"),allowedOrigins:m(i()).optional().describe("CORS allowed origins"),allowedMethods:m(h(["GET","PUT","POST","DELETE","HEAD"])).optional().describe("CORS allowed HTTP methods"),allowedHeaders:m(i()).optional().describe("CORS allowed headers"),exposeHeaders:m(i()).optional().describe("CORS exposed headers"),maxAge:u().min(0).optional().describe("CORS preflight cache duration in seconds"),corsEnabled:c().default(!1).describe("Enable CORS configuration"),publicAccess:n({allowPublicRead:c().default(!1).describe("Allow public read access"),allowPublicWrite:c().default(!1).describe("Allow public write access"),allowPublicList:c().default(!1).describe("Allow public bucket listing")}).optional().describe("Public access control"),allowedIps:m(i()).optional().describe("Allowed IP addresses/CIDR blocks"),blockedIps:m(i()).optional().describe("Blocked IP addresses/CIDR blocks")}),eQ=n({id:sm.describe("Rule identifier"),enabled:c().default(!0).describe("Enable this rule"),action:Y7.describe("Action to perform"),prefix:i().optional().describe('Object key prefix filter (e.g., "uploads/")'),tags:C(i(),i()).optional().describe("Object tag filters"),daysAfterCreation:u().min(0).optional().describe("Days after object creation"),daysAfterModification:u().min(0).optional().describe("Days after last modification"),targetStorageClass:fA.optional().describe("Target storage class for transition action")}).refine(e=>!(e.action==="transition"&&!e.targetStorageClass),{message:'targetStorageClass is required when action is "transition"'}),tQ=n({enabled:c().default(!1).describe("Enable lifecycle policies"),rules:m(eQ).default([]).describe("Lifecycle rules")}),iQ=n({name:sm.describe("Bucket identifier in ObjectStack (snake_case)"),label:i().describe("Display label"),bucketName:i().describe("Actual bucket/container name in storage provider"),region:i().optional().describe("Storage region (e.g., us-east-1, westus)"),provider:mA.describe("Storage provider"),endpoint:i().optional().describe("Custom endpoint URL (for S3-compatible providers)"),pathStyle:c().default(!1).describe("Use path-style URLs (for S3-compatible providers)"),versioning:c().default(!1).describe("Enable object versioning"),encryption:n({enabled:c().default(!1).describe("Enable server-side encryption"),algorithm:h(["AES256","aws:kms","azure:kms","gcp:kms"]).default("AES256").describe("Encryption algorithm"),kmsKeyId:i().optional().describe("KMS key ID for managed encryption")}).optional().describe("Server-side encryption configuration"),accessControl:X7.optional().describe("Access control configuration"),lifecyclePolicy:tQ.optional().describe("Lifecycle policy configuration"),multipartConfig:J7.optional().describe("Multipart upload configuration"),tags:C(i(),i()).optional().describe("Bucket tags for organization"),description:i().optional().describe("Bucket description"),enabled:c().default(!0).describe("Enable this bucket")}),aQ=n({accessKeyId:i().optional().describe("AWS access key ID or MinIO access key"),secretAccessKey:i().optional().describe("AWS secret access key or MinIO secret key"),sessionToken:i().optional().describe("AWS session token for temporary credentials"),accountName:i().optional().describe("Azure storage account name"),accountKey:i().optional().describe("Azure storage account key"),sasToken:i().optional().describe("Azure SAS token"),projectId:i().optional().describe("GCP project ID"),credentials:i().optional().describe("GCP service account credentials JSON"),endpoint:i().optional().describe("Custom endpoint URL"),region:i().optional().describe("Default region"),useSSL:c().default(!0).describe("Use SSL/TLS for connections"),timeout:u().min(0).optional().describe("Connection timeout in milliseconds")}),lm=n({name:sm.describe("Storage configuration identifier"),label:i().describe("Display label"),provider:mA.describe("Primary storage provider"),scope:K7.optional().default("global").describe("Storage scope"),connection:aQ.describe("Connection credentials"),buckets:m(iQ).default([]).describe("Configured buckets"),defaultBucket:i().optional().describe("Default bucket name for operations"),location:i().optional().describe("Root path (local) or base location"),quota:u().int().positive().optional().describe("Max size in bytes"),options:C(i(),E()).optional().describe("Provider-specific configuration options"),enabled:c().default(!0).describe("Enable this storage configuration"),description:i().optional().describe("Configuration description")});lm.parse({name:"aws_s3_storage",label:"AWS S3 Production Storage",provider:"s3",connection:{accessKeyId:"${AWS_ACCESS_KEY_ID}",secretAccessKey:"${AWS_SECRET_ACCESS_KEY}",region:"us-east-1"},buckets:[{name:"user_uploads",label:"User Uploads",bucketName:"my-app-user-uploads",region:"us-east-1",provider:"s3",versioning:!0,encryption:{enabled:!0,algorithm:"aws:kms",kmsKeyId:"${AWS_KMS_KEY_ID}"},accessControl:{acl:"private",corsEnabled:!0,allowedOrigins:["https://app.example.com"],allowedMethods:["GET","PUT","POST"]},lifecyclePolicy:{enabled:!0,rules:[{id:"archive_old_uploads",enabled:!0,action:"transition",daysAfterCreation:90,targetStorageClass:"glacier"}]},multipartConfig:{enabled:!0,partSize:10*1024*1024,threshold:100*1024*1024,maxConcurrent:4}}],defaultBucket:"user_uploads",enabled:!0});lm.parse({name:"minio_local",label:"MinIO Local Storage",provider:"minio",connection:{accessKeyId:"minioadmin",secretAccessKey:"minioadmin",endpoint:"http://localhost:9000",useSSL:!1},buckets:[{name:"development_files",label:"Development Files",bucketName:"dev-files",provider:"minio",endpoint:"http://localhost:9000",pathStyle:!0,accessControl:{acl:"private"}}],defaultBucket:"development_files",enabled:!0});lm.parse({name:"azure_blob_storage",label:"Azure Blob Storage",provider:"azure_blob",connection:{accountName:"mystorageaccount",accountKey:"${AZURE_STORAGE_KEY}",endpoint:"https://mystorageaccount.blob.core.windows.net"},buckets:[{name:"media_files",label:"Media Files",bucketName:"media",provider:"azure_blob",region:"eastus",accessControl:{acl:"public_read",publicAccess:{allowPublicRead:!0,allowPublicWrite:!1,allowPublicList:!1}}}],defaultBucket:"media_files",enabled:!0});lm.parse({name:"gcs_storage",label:"Google Cloud Storage",provider:"gcs",connection:{projectId:"my-gcp-project",credentials:"${GCP_SERVICE_ACCOUNT_JSON}"},buckets:[{name:"backup_storage",label:"Backup Storage",bucketName:"my-app-backups",region:"us-central1",provider:"gcs",lifecyclePolicy:{enabled:!0,rules:[{id:"delete_old_backups",enabled:!0,action:"delete",daysAfterCreation:30}]}}],defaultBucket:"backup_storage",enabled:!0});var oQ=h(["elasticsearch","algolia","meilisearch","typesense","opensearch"]).describe("Supported full-text search engine provider"),rQ=n({type:h(["standard","simple","whitespace","keyword","pattern","language"]).describe("Text analyzer type"),language:i().optional().describe("Language for language-specific analysis"),stopwords:m(i()).optional().describe("Custom stopwords to filter during analysis"),customFilters:m(i()).optional().describe("Additional token filter names to apply")}).describe("Text analyzer configuration for index tokenization and normalization"),nQ=n({indexName:i().describe("Name of the search index"),objectName:i().describe("Source ObjectQL object"),fields:m(n({name:i().describe("Field name to index"),type:h(["text","keyword","number","date","boolean","geo"]).describe("Index field data type"),analyzer:i().optional().describe("Named analyzer to use for this field"),searchable:c().default(!0).describe("Include field in full-text search"),filterable:c().default(!1).describe("Allow filtering on this field"),sortable:c().default(!1).describe("Allow sorting by this field"),boost:u().default(1).describe("Relevance boost factor for this field")})).describe("Fields to include in the search index"),replicas:u().default(1).describe("Number of index replicas for availability"),shards:u().default(1).describe("Number of index shards for distribution")}).describe("Search index definition mapping an ObjectQL object to a search engine index"),sQ=n({field:i().describe("Field name to generate facets from"),maxValues:u().default(10).describe("Maximum number of facet values to return"),sort:h(["count","alpha"]).default("count").describe("Facet value sort order")}).describe("Faceted search configuration for a single field");n({provider:oQ.describe("Search engine backend provider"),indexes:m(nQ).describe("Search index definitions"),analyzers:C(i(),rQ).optional().describe("Named text analyzer configurations"),facets:m(sQ).optional().describe("Faceted search configurations"),typoTolerance:c().default(!0).describe("Enable typo-tolerant search"),synonyms:C(i(),m(i())).optional().describe("Synonym mappings for search expansion"),ranking:m(h(["typo","geo","words","filters","proximity","attribute","exact","custom"])).optional().describe("Custom ranking rule order")}).describe("Top-level full-text search engine configuration");var bA=h(["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS"]),lQ=n({enabled:c().default(!0).describe("Enable CORS"),origins:Z([i(),m(i())]).default("*").describe("Allowed origins (* for all)"),methods:m(bA).optional().describe("Allowed HTTP methods"),credentials:c().default(!1).describe("Allow credentials (cookies, authorization headers)"),maxAge:u().int().optional().describe("Preflight cache duration in seconds")}),cQ=n({enabled:c().default(!1).describe("Enable rate limiting"),windowMs:u().int().default(6e4).describe("Time window in milliseconds"),maxRequests:u().int().default(100).describe("Max requests per window")}),dQ=n({path:i().describe("URL path to serve from"),directory:i().describe("Physical directory to serve"),cacheControl:i().optional().describe("Cache-Control header value")}),uQ=n({port:u().int().min(1).max(65535).default(3e3).describe("Port number to listen on"),host:i().default("0.0.0.0").describe("Host address to bind to"),cors:lQ.optional().describe("CORS configuration"),requestTimeout:u().int().default(3e4).describe("Request timeout in milliseconds"),bodyLimit:i().default("10mb").describe("Maximum request body size"),compression:c().default(!0).describe("Enable response compression"),security:n({helmet:c().default(!0).describe("Enable security headers via helmet"),rateLimit:cQ.optional().describe("Global rate limiting configuration")}).optional().describe("Security configuration"),static:m(dQ).optional().describe("Static file serving configuration"),trustProxy:c().default(!1).describe("Trust X-Forwarded-* headers")});n({method:bA.describe("HTTP method"),path:i().describe("URL path pattern"),handler:i().describe("Handler identifier or name"),metadata:n({summary:i().optional().describe("Route summary for documentation"),description:i().optional().describe("Route description"),tags:m(i()).optional().describe("Tags for grouping"),operationId:i().optional().describe("Unique operation identifier")}).optional(),security:n({authRequired:c().default(!0).describe("Require authentication"),permissions:m(i()).optional().describe("Required permissions"),rateLimit:i().optional().describe("Rate limit policy override")}).optional()});var pQ=h(["authentication","authorization","logging","validation","transformation","error","custom"]),mQ=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Middleware name (snake_case)"),type:pQ.describe("Middleware type"),enabled:c().default(!0).describe("Whether middleware is enabled"),order:u().int().default(100).describe("Execution order priority"),config:C(i(),E()).optional().describe("Middleware configuration object"),paths:n({include:m(i()).optional().describe("Include path patterns (glob)"),exclude:m(i()).optional().describe("Exclude path patterns (glob)")}).optional().describe("Path filtering")}),fQ=h(["starting","started","stopping","stopped","request","response","error"]);n({type:fQ.describe("Event type"),timestamp:i().datetime().describe("Event timestamp (ISO 8601)"),data:C(i(),E()).optional().describe("Event-specific data")});n({httpVersions:m(h(["1.0","1.1","2.0","3.0"])).default(["1.1"]).describe("Supported HTTP versions"),websocket:c().default(!1).describe("WebSocket support"),sse:c().default(!1).describe("Server-Sent Events support"),serverPush:c().default(!1).describe("HTTP/2 Server Push support"),streaming:c().default(!0).describe("Response streaming support"),middleware:c().default(!0).describe("Middleware chain support"),routeParams:c().default(!0).describe("URL parameter support (/users/:id)"),compression:c().default(!0).describe("Built-in compression support")});n({state:h(["stopped","starting","running","stopping","error"]).describe("Current server state"),uptime:u().int().optional().describe("Server uptime in milliseconds"),server:n({port:u().int().describe("Listening port"),host:i().describe("Bound host"),url:i().optional().describe("Full server URL")}).optional(),connections:n({active:u().int().describe("Active connections"),total:u().int().describe("Total connections handled")}).optional(),requests:n({total:u().int().describe("Total requests processed"),success:u().int().describe("Successful requests"),errors:u().int().describe("Failed requests")}).optional()});Object.assign(uQ,{create:e=>e});Object.assign(mQ,{create:e=>e});var ws=h(["data.create","data.read","data.update","data.delete","data.export","data.import","data.bulk_update","data.bulk_delete","auth.login","auth.login_failed","auth.logout","auth.session_created","auth.session_expired","auth.password_reset","auth.password_changed","auth.email_verified","auth.mfa_enabled","auth.mfa_disabled","auth.account_locked","auth.account_unlocked","authz.permission_granted","authz.permission_revoked","authz.role_assigned","authz.role_removed","authz.role_created","authz.role_updated","authz.role_deleted","authz.policy_created","authz.policy_updated","authz.policy_deleted","system.config_changed","system.plugin_installed","system.plugin_uninstalled","system.backup_created","system.backup_restored","system.integration_added","system.integration_removed","security.access_denied","security.suspicious_activity","security.data_breach","security.api_key_created","security.api_key_revoked"]),cm=h(["debug","info","notice","warning","error","critical","alert","emergency"]),bQ=n({type:h(["user","system","service","api_client","integration"]).describe("Actor type"),id:i().describe("Actor identifier"),name:i().optional().describe("Actor display name"),email:i().email().optional().describe("Actor email address"),ipAddress:i().optional().describe("Actor IP address"),userAgent:i().optional().describe("User agent string")}),hQ=n({type:i().describe("Target type"),id:i().describe("Target identifier"),name:i().optional().describe("Target display name"),metadata:C(i(),E()).optional().describe("Target metadata")}),gQ=n({field:i().describe("Changed field name"),oldValue:E().optional().describe("Previous value"),newValue:E().optional().describe("New value")});n({id:i().describe("Audit event ID"),eventType:ws.describe("Event type"),severity:cm.default("info").describe("Event severity"),timestamp:i().datetime().describe("Event timestamp"),actor:bQ.describe("Event actor"),target:hQ.optional().describe("Event target"),description:i().describe("Event description"),changes:m(gQ).optional().describe("List of changes"),result:h(["success","failure","partial"]).default("success").describe("Action result"),errorMessage:i().optional().describe("Error message"),tenantId:i().optional().describe("Tenant identifier"),requestId:i().optional().describe("Request ID for tracing"),metadata:C(i(),E()).optional().describe("Additional metadata"),location:n({country:i().optional(),region:i().optional(),city:i().optional()}).optional().describe("Geographic location")});var yQ=n({retentionDays:u().int().min(1).default(180).describe("Retention period in days"),archiveAfterRetention:c().default(!0).describe("Archive logs after retention period"),archiveStorage:n({type:h(["s3","gcs","azure_blob","filesystem"]).describe("Archive storage type"),endpoint:i().optional().describe("Storage endpoint URL"),bucket:i().optional().describe("Storage bucket/container name"),path:i().optional().describe("Storage path prefix"),credentials:C(i(),E()).optional().describe("Storage credentials")}).optional().describe("Archive storage configuration"),customRetention:C(i(),u().int().positive()).optional().describe("Custom retention by event type"),minimumRetentionDays:u().int().positive().optional().describe("Minimum retention for compliance")}),vQ=n({id:i().describe("Rule identifier"),name:i().describe("Rule name"),description:i().optional().describe("Rule description"),enabled:c().default(!0).describe("Rule enabled status"),eventTypes:m(ws).describe("Event types to monitor"),condition:n({threshold:u().int().positive().describe("Event threshold"),windowSeconds:u().int().positive().describe("Time window in seconds"),groupBy:m(i()).optional().describe("Grouping criteria"),filters:C(i(),E()).optional().describe("Additional filters")}).describe("Detection condition"),actions:m(h(["alert","lock_account","block_ip","require_mfa","log_critical","webhook"])).describe("Actions to take"),alertSeverity:cm.default("warning").describe("Alert severity"),notifications:n({email:m(i().email()).optional().describe("Email recipients"),slack:i().url().optional().describe("Slack webhook URL"),webhook:i().url().optional().describe("Custom webhook URL")}).optional().describe("Notification configuration")}),SQ=n({type:h(["database","elasticsearch","mongodb","clickhouse","s3","gcs","azure_blob","custom"]).describe("Storage backend type"),connectionString:i().optional().describe("Connection string"),config:C(i(),E()).optional().describe("Storage-specific configuration"),bufferEnabled:c().default(!0).describe("Enable buffering"),bufferSize:u().int().positive().default(100).describe("Buffer size"),flushIntervalSeconds:u().int().positive().default(5).describe("Flush interval in seconds"),compression:c().default(!0).describe("Enable compression")});n({eventTypes:m(ws).optional().describe("Event types to include"),severities:m(cm).optional().describe("Severity levels to include"),actorId:i().optional().describe("Actor identifier"),tenantId:i().optional().describe("Tenant identifier"),timeRange:n({from:i().datetime().describe("Start time"),to:i().datetime().describe("End time")}).optional().describe("Time range filter"),result:h(["success","failure","partial"]).optional().describe("Result status"),searchQuery:i().optional().describe("Search query"),customFilters:C(i(),E()).optional().describe("Custom filters")});n({name:i().regex(/^[a-z_][a-z0-9_]*$/).max(64).describe("Configuration name (snake_case, max 64 chars)"),label:i().describe("Display label"),enabled:c().default(!0).describe("Enable audit logging"),eventTypes:m(ws).optional().describe("Event types to audit"),excludeEventTypes:m(ws).optional().describe("Event types to exclude"),minimumSeverity:cm.default("info").describe("Minimum severity level"),storage:SQ.describe("Storage configuration"),retentionPolicy:yQ.optional().describe("Retention policy"),suspiciousActivityRules:m(vQ).default([]).describe("Suspicious activity rules"),includeSensitiveData:c().default(!1).describe("Include sensitive data"),redactFields:m(i()).default(["password","passwordHash","token","apiKey","secret","creditCard","ssn"]).describe("Fields to redact"),logReads:c().default(!1).describe("Log read operations"),readSamplingRate:u().min(0).max(1).default(.1).describe("Read sampling rate"),logSystemEvents:c().default(!0).describe("Log system events"),customHandlers:m(n({eventType:ws.describe("Event type to handle"),handlerId:i().describe("Unique identifier for the handler")})).optional().describe("Custom event handler references"),compliance:n({standards:m(h(["sox","hipaa","gdpr","pci_dss","iso_27001","fedramp"])).optional().describe("Compliance standards"),immutableLogs:c().default(!0).describe("Enforce immutable logs"),requireSigning:c().default(!1).describe("Require log signing"),signingKey:i().optional().describe("Signing key")}).optional().describe("Compliance configuration")});var hA=h(["debug","info","warn","error","fatal","silent"]).describe("Log severity level"),xQ=h(["json","text","pretty"]).describe("Log output format"),jE=n({name:i().optional().describe("Logger name identifier"),level:hA.optional().default("info"),format:xQ.optional().default("json"),redact:m(i()).optional().default(["password","token","secret","key"]).describe("Keys to redact from log context"),sourceLocation:c().optional().default(!1).describe("Include file and line number"),file:i().optional().describe("Path to log file"),rotation:n({maxSize:i().optional().default("10m"),maxFiles:u().optional().default(5)}).optional()});n({timestamp:i().datetime().describe("ISO 8601 timestamp"),level:hA,message:i().describe("Log message"),context:C(i(),E()).optional().describe("Structured context data"),error:C(i(),E()).optional().describe("Error object if present"),traceId:i().optional().describe("Distributed trace ID"),spanId:i().optional().describe("Span ID"),service:i().optional().describe("Service name"),component:i().optional().describe("Component name (e.g. plugin id)")});var av=h(["trace","debug","info","warn","error","fatal"]).describe("Extended log severity level"),wQ=h(["console","file","syslog","elasticsearch","cloudwatch","stackdriver","azure_monitor","datadog","splunk","loki","http","kafka","redis","custom"]).describe("Log destination type"),kQ=n({stream:h(["stdout","stderr"]).optional().default("stdout"),colors:c().optional().default(!0),prettyPrint:c().optional().default(!1)}).describe("Console destination configuration"),CQ=n({path:i().describe("Log file path"),rotation:n({maxSize:i().optional().default("10m"),maxFiles:u().int().positive().optional().default(5),compress:c().optional().default(!0),interval:h(["hourly","daily","weekly","monthly"]).optional()}).optional(),encoding:i().optional().default("utf8"),append:c().optional().default(!0)}).describe("File destination configuration"),EQ=n({url:i().url().describe("HTTP endpoint URL"),method:h(["POST","PUT"]).optional().default("POST"),headers:C(i(),i()).optional(),auth:n({type:h(["basic","bearer","api_key"]).describe("Auth type"),username:i().optional(),password:i().optional(),token:i().optional(),apiKey:i().optional(),apiKeyHeader:i().optional().default("X-API-Key")}).optional(),batch:n({maxSize:u().int().positive().optional().default(100),flushInterval:u().int().positive().optional().default(5e3)}).optional(),retry:n({maxAttempts:u().int().positive().optional().default(3),initialDelay:u().int().positive().optional().default(1e3),backoffMultiplier:u().positive().optional().default(2)}).optional(),timeout:u().int().positive().optional().default(3e4)}).describe("HTTP destination configuration"),RQ=n({endpoint:i().url().optional(),region:i().optional(),credentials:n({accessKeyId:i().optional(),secretAccessKey:i().optional(),apiKey:i().optional(),projectId:i().optional()}).optional(),logGroup:i().optional(),logStream:i().optional(),index:i().optional(),config:C(i(),E()).optional()}).describe("External service destination configuration"),TQ=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Destination name (snake_case)"),type:wQ.describe("Destination type"),level:av.optional().default("info"),enabled:c().optional().default(!0),console:kQ.optional(),file:CQ.optional(),http:EQ.optional(),externalService:RQ.optional(),format:h(["json","text","pretty"]).optional().default("json"),filterId:i().optional().describe("Filter function identifier")}).describe("Log destination configuration"),AQ=n({staticFields:C(i(),E()).optional().describe("Static fields added to every log"),dynamicEnrichers:m(i()).optional().describe("Dynamic enricher function IDs"),addHostname:c().optional().default(!0),addProcessId:c().optional().default(!0),addEnvironment:c().optional().default(!0),addTimestampFormats:n({unix:c().optional().default(!1),iso:c().optional().default(!0)}).optional(),addCaller:c().optional().default(!1),addCorrelationIds:c().optional().default(!0)}).describe("Log enrichment configuration");n({timestamp:i().datetime().describe("ISO 8601 timestamp"),level:av.describe("Log severity level"),message:i().describe("Log message"),context:C(i(),E()).optional().describe("Structured context"),error:n({name:i().optional(),message:i().optional(),stack:i().optional(),code:i().optional(),details:C(i(),E()).optional()}).optional().describe("Error details"),trace:n({traceId:i().describe("Trace ID"),spanId:i().describe("Span ID"),parentSpanId:i().optional().describe("Parent span ID"),traceFlags:u().int().optional().describe("Trace flags")}).optional().describe("Distributed tracing context"),source:n({service:i().optional().describe("Service name"),component:i().optional().describe("Component name"),file:i().optional().describe("Source file"),line:u().int().optional().describe("Line number"),function:i().optional().describe("Function name")}).optional().describe("Source information"),host:n({hostname:i().optional(),pid:u().int().optional(),ip:i().optional()}).optional().describe("Host information"),environment:i().optional().describe("Environment (e.g., production, staging)"),user:n({id:i().optional(),username:i().optional(),email:i().optional()}).optional().describe("User context"),request:n({id:i().optional(),method:i().optional(),path:i().optional(),userAgent:i().optional(),ip:i().optional()}).optional().describe("Request context"),labels:C(i(),i()).optional().describe("Custom labels"),metadata:C(i(),E()).optional().describe("Additional metadata")}).describe("Structured log entry");n({name:i().regex(/^[a-z_][a-z0-9_]*$/).max(64).describe("Configuration name (snake_case, max 64 chars)"),label:i().describe("Display label"),enabled:c().optional().default(!0),level:av.optional().default("info"),default:jE.optional().describe("Default logger configuration"),loggers:C(i(),jE).optional().describe("Named logger configurations"),destinations:m(TQ).describe("Log destinations"),enrichment:AQ.optional(),redact:m(i()).optional().default(["password","passwordHash","token","apiKey","secret","creditCard","ssn","authorization"]).describe("Fields to redact"),sampling:n({enabled:c().optional().default(!1),rate:u().min(0).max(1).optional().default(1),rateByLevel:C(i(),u().min(0).max(1)).optional()}).optional(),buffer:n({enabled:c().optional().default(!0),size:u().int().positive().optional().default(1e3),flushInterval:u().int().positive().optional().default(1e3),flushOnShutdown:c().optional().default(!0)}).optional(),performance:n({async:c().optional().default(!0),workers:u().int().positive().optional().default(1)}).optional()}).describe("Logging configuration");var gA=h(["counter","gauge","histogram","summary"]).describe("Metric type"),_Q=h(["nanoseconds","microseconds","milliseconds","seconds","minutes","hours","days","bytes","kilobytes","megabytes","gigabytes","terabytes","requests_per_second","events_per_second","bytes_per_second","percent","ratio","count","operations","custom"]).describe("Metric unit"),PQ=h(["sum","avg","min","max","count","p50","p75","p90","p95","p99","p999","rate","stddev"]).describe("Metric aggregation type"),IQ=n({type:h(["linear","exponential","explicit"]).describe("Bucket type"),linear:n({start:u().describe("Start value"),width:u().positive().describe("Bucket width"),count:u().int().positive().describe("Number of buckets")}).optional(),exponential:n({start:u().positive().describe("Start value"),factor:u().positive().describe("Growth factor"),count:u().int().positive().describe("Number of buckets")}).optional(),explicit:n({boundaries:m(u()).describe("Bucket boundaries")}).optional()}).describe("Histogram bucket configuration"),yA=C(i(),i()).describe("Metric labels"),DQ=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Metric name (snake_case)"),label:i().optional().describe("Display label"),type:gA.describe("Metric type"),unit:_Q.optional().describe("Metric unit"),description:i().optional().describe("Metric description"),labelNames:m(i()).optional().default([]).describe("Label names"),histogram:IQ.optional(),summary:n({quantiles:m(u().min(0).max(1)).optional().default([.5,.9,.99]),maxAge:u().int().positive().optional().default(600),ageBuckets:u().int().positive().optional().default(5)}).optional(),enabled:c().optional().default(!0)}).describe("Metric definition");n({name:i().describe("Metric name"),type:gA.describe("Metric type"),timestamp:i().datetime().describe("Observation timestamp"),value:u().optional().describe("Metric value"),labels:yA.optional().describe("Metric labels"),histogram:n({count:u().int().nonnegative().describe("Total count"),sum:u().describe("Sum of all values"),buckets:m(n({upperBound:u().describe("Upper bound of bucket"),count:u().int().nonnegative().describe("Count in bucket")})).describe("Histogram buckets")}).optional(),summary:n({count:u().int().nonnegative().describe("Total count"),sum:u().describe("Sum of all values"),quantiles:m(n({quantile:u().min(0).max(1).describe("Quantile (0-1)"),value:u().describe("Quantile value")})).describe("Summary quantiles")}).optional()}).describe("Metric data point");var jQ=n({timestamp:i().datetime().describe("Timestamp"),value:u().describe("Value"),labels:C(i(),i()).optional().describe("Labels")}).describe("Time series data point");n({name:i().describe("Series name"),labels:C(i(),i()).optional().describe("Series labels"),dataPoints:m(jQ).describe("Data points"),startTime:i().datetime().optional().describe("Start time"),endTime:i().datetime().optional().describe("End time")}).describe("Time series");var MQ=n({type:PQ.describe("Aggregation type"),window:n({size:u().int().positive().describe("Window size in seconds"),sliding:c().optional().default(!1),slideInterval:u().int().positive().optional()}).optional(),groupBy:m(i()).optional().describe("Group by label names"),filters:C(i(),E()).optional().describe("Filter criteria")}).describe("Metric aggregation configuration"),OQ=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("SLI name (snake_case)"),label:i().describe("Display label"),description:i().optional().describe("SLI description"),metric:i().describe("Base metric name"),type:h(["availability","latency","throughput","error_rate","saturation","custom"]).describe("SLI type"),successCriteria:n({threshold:u().describe("Threshold value"),operator:h(["lt","lte","gt","gte","eq"]).describe("Comparison operator"),percentile:u().min(0).max(1).optional().describe("Percentile (0-1)")}).describe("Success criteria"),window:n({size:u().int().positive().describe("Window size in seconds"),rolling:c().optional().default(!0)}).describe("Measurement window"),enabled:c().optional().default(!0)}).describe("Service Level Indicator"),NQ=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("SLO name (snake_case)"),label:i().describe("Display label"),description:i().optional().describe("SLO description"),sli:i().describe("SLI name"),target:u().min(0).max(100).describe("Target percentage"),period:n({type:h(["rolling","calendar"]).describe("Period type"),duration:u().int().positive().optional().describe("Duration in seconds"),calendar:h(["daily","weekly","monthly","quarterly","yearly"]).optional()}).describe("Time period"),errorBudget:n({enabled:c().optional().default(!0),alertThreshold:u().min(0).max(100).optional().default(80),burnRateWindows:m(n({window:u().int().positive().describe("Window size"),threshold:u().positive().describe("Burn rate threshold")})).optional()}).optional(),alerts:m(n({name:i().describe("Alert name"),severity:h(["info","warning","critical"]).describe("Alert severity"),condition:n({type:h(["slo_breach","error_budget","burn_rate"]).describe("Condition type"),threshold:u().optional().describe("Threshold value")}).describe("Alert condition")})).optional().default([]),enabled:c().optional().default(!0)}).describe("Service Level Objective"),LQ=n({type:h(["prometheus","openmetrics","graphite","statsd","influxdb","datadog","cloudwatch","stackdriver","azure_monitor","http","custom"]).describe("Export type"),endpoint:i().optional().describe("Export endpoint"),interval:u().int().positive().optional().default(60),batch:n({enabled:c().optional().default(!0),size:u().int().positive().optional().default(1e3)}).optional(),auth:n({type:h(["none","basic","bearer","api_key"]).describe("Auth type"),username:i().optional(),password:i().optional(),token:i().optional(),apiKey:i().optional()}).optional(),config:C(i(),E()).optional().describe("Additional configuration")}).describe("Metric export configuration");n({name:i().regex(/^[a-z_][a-z0-9_]*$/).max(64).describe("Configuration name (snake_case, max 64 chars)"),label:i().describe("Display label"),enabled:c().optional().default(!0),metrics:m(DQ).optional().default([]),defaultLabels:yA.optional().default({}),aggregations:m(MQ).optional().default([]),slis:m(OQ).optional().default([]),slos:m(NQ).optional().default([]),exports:m(LQ).optional().default([]),collectionInterval:u().int().positive().optional().default(15),retention:n({period:u().int().positive().optional().default(604800),downsampling:m(n({afterSeconds:u().int().positive().describe("Downsample after seconds"),resolution:u().int().positive().describe("Downsampled resolution")})).optional()}).optional(),cardinalityLimits:n({maxLabelCombinations:u().int().positive().optional().default(1e4),onLimitExceeded:h(["drop","sample","alert"]).optional().default("alert")}).optional()}).describe("Metrics configuration");var zQ=n({entries:C(i(),i()).describe("Trace state entries")}).describe("Trace state"),qQ=u().int().min(0).max(255).describe("Trace flags bitmap"),vA=n({traceId:i().regex(/^[0-9a-f]{32}$/).describe("Trace ID (32 hex chars)"),spanId:i().regex(/^[0-9a-f]{16}$/).describe("Span ID (16 hex chars)"),traceFlags:qQ.optional().default(1),traceState:zQ.optional(),parentSpanId:i().regex(/^[0-9a-f]{16}$/).optional().describe("Parent span ID (16 hex chars)"),sampled:c().optional().default(!0),remote:c().optional().default(!1)}).describe("Trace context (W3C Trace Context)"),$Q=h(["internal","server","client","producer","consumer"]).describe("Span kind"),UQ=h(["unset","ok","error"]).describe("Span status"),FQ=Z([i(),u(),c(),m(i()),m(u()),m(c())]).describe("Span attribute value"),Ic=C(i(),FQ).describe("Span attributes"),BQ=n({name:i().describe("Event name"),timestamp:i().datetime().describe("Event timestamp"),attributes:Ic.optional().describe("Event attributes")}).describe("Span event"),HQ=n({context:vA.describe("Linked trace context"),attributes:Ic.optional().describe("Link attributes")}).describe("Span link");n({context:vA.describe("Trace context"),name:i().describe("Span name"),kind:$Q.optional().default("internal"),startTime:i().datetime().describe("Span start time"),endTime:i().datetime().optional().describe("Span end time"),duration:u().nonnegative().optional().describe("Duration in milliseconds"),status:n({code:UQ.describe("Status code"),message:i().optional().describe("Status message")}).optional(),attributes:Ic.optional().default({}),events:m(BQ).optional().default([]),links:m(HQ).optional().default([]),resource:Ic.optional().describe("Resource attributes"),instrumentationLibrary:n({name:i().describe("Library name"),version:i().optional().describe("Library version")}).optional()}).describe("OpenTelemetry span");var VQ=h(["drop","record_only","record_and_sample"]).describe("Sampling decision"),tc=h(["always_on","always_off","trace_id_ratio","rate_limiting","parent_based","probability","composite","custom"]).describe("Sampling strategy type"),GQ=n({type:tc.describe("Sampling strategy"),ratio:u().min(0).max(1).optional().describe("Sample ratio (0-1)"),rateLimit:u().positive().optional().describe("Traces per second"),parentBased:n({whenParentSampled:tc.optional().default("always_on"),whenParentNotSampled:tc.optional().default("always_off"),root:tc.optional().default("trace_id_ratio"),rootRatio:u().min(0).max(1).optional().default(.1)}).optional(),composite:m(n({strategy:tc.describe("Strategy type"),ratio:u().min(0).max(1).optional(),condition:C(i(),E()).optional().describe("Condition for this strategy")})).optional(),rules:m(n({name:i().describe("Rule name"),match:n({service:i().optional(),spanName:i().optional(),attributes:C(i(),E()).optional()}).optional(),decision:VQ.describe("Sampling decision"),rate:u().min(0).max(1).optional()})).optional().default([]),customSamplerId:i().optional().describe("Custom sampler identifier")}).describe("Trace sampling configuration"),WQ=h(["w3c","b3","b3_multi","jaeger","xray","ottrace","custom"]).describe("Trace propagation format"),QQ=n({formats:m(WQ).optional().default(["w3c"]),extract:c().optional().default(!0),inject:c().optional().default(!0),headers:n({traceId:i().optional(),spanId:i().optional(),traceFlags:i().optional(),traceState:i().optional()}).optional(),baggage:n({enabled:c().optional().default(!0),maxSize:u().int().positive().optional().default(8192),allowedKeys:m(i()).optional()}).optional()}).describe("Trace context propagation"),KQ=h(["otlp_http","otlp_grpc","jaeger","zipkin","console","datadog","honeycomb","lightstep","newrelic","custom"]).describe("OpenTelemetry exporter type"),ZQ=n({sdkVersion:i().optional().describe("OTel SDK version"),exporter:n({type:KQ.describe("Exporter type"),endpoint:i().url().optional().describe("Exporter endpoint"),protocol:i().optional().describe("Protocol version"),headers:C(i(),i()).optional().describe("HTTP headers"),timeout:u().int().positive().optional().default(1e4),compression:h(["none","gzip"]).optional().default("none"),batch:n({maxBatchSize:u().int().positive().optional().default(512),maxQueueSize:u().int().positive().optional().default(2048),exportTimeout:u().int().positive().optional().default(3e4),scheduledDelay:u().int().positive().optional().default(5e3)}).optional()}).describe("Exporter configuration"),resource:n({serviceName:i().describe("Service name"),serviceVersion:i().optional().describe("Service version"),serviceInstanceId:i().optional().describe("Service instance ID"),serviceNamespace:i().optional().describe("Service namespace"),deploymentEnvironment:i().optional().describe("Deployment environment"),attributes:Ic.optional().describe("Additional resource attributes")}).describe("Resource attributes"),instrumentation:n({autoInstrumentation:c().optional().default(!0),libraries:m(i()).optional().describe("Enabled libraries"),disabledLibraries:m(i()).optional().describe("Disabled libraries")}).optional(),semanticConventionsVersion:i().optional().describe("Semantic conventions version")}).describe("OpenTelemetry compatibility configuration");n({name:i().regex(/^[a-z_][a-z0-9_]*$/).max(64).describe("Configuration name (snake_case, max 64 chars)"),label:i().describe("Display label"),enabled:c().optional().default(!0),sampling:GQ.optional().default({type:"always_on",rules:[]}),propagation:QQ.optional().default({formats:["w3c"],extract:!0,inject:!0}),openTelemetry:ZQ.optional(),spanLimits:n({maxAttributes:u().int().positive().optional().default(128),maxEvents:u().int().positive().optional().default(128),maxLinks:u().int().positive().optional().default(128),maxAttributeValueLength:u().int().positive().optional().default(4096)}).optional(),traceIdGenerator:h(["random","uuid","custom"]).optional().default("random"),customTraceIdGeneratorId:i().optional().describe("Custom generator identifier"),performance:n({asyncExport:c().optional().default(!0),exportInterval:u().int().positive().optional().default(5e3)}).optional()}).describe("Tracing configuration");var YQ=h(["standard","normal","emergency","major"]),JQ=h(["critical","high","medium","low"]),XQ=h(["draft","submitted","in-review","approved","scheduled","in-progress","completed","failed","rolled-back","cancelled"]),eK=n({level:h(["low","medium","high","critical"]).describe("Impact level"),affectedSystems:m(i()).describe("Affected systems"),affectedUsers:u().optional().describe("Affected user count"),downtime:n({required:c().describe("Downtime required"),durationMinutes:u().optional().describe("Downtime duration")}).optional().describe("Downtime information")}),tK=n({description:i().describe("Rollback description"),steps:m(n({order:u().describe("Step order"),description:i().describe("Step description"),estimatedMinutes:u().describe("Estimated duration")})).describe("Rollback steps"),testProcedure:i().optional().describe("Test procedure")});n({id:i().describe("Change request ID"),title:i().describe("Change title"),description:i().describe("Change description"),type:YQ.describe("Change type"),priority:JQ.describe("Change priority"),status:XQ.describe("Change status"),requestedBy:i().describe("Requester user ID"),requestedAt:u().describe("Request timestamp"),impact:eK.describe("Impact assessment"),implementation:n({description:i().describe("Implementation description"),steps:m(n({order:u().describe("Step order"),description:i().describe("Step description"),estimatedMinutes:u().describe("Estimated duration")})).describe("Implementation steps"),testing:i().optional().describe("Testing procedure")}).describe("Implementation plan"),rollbackPlan:tK.describe("Rollback plan"),schedule:n({plannedStart:u().describe("Planned start time"),plannedEnd:u().describe("Planned end time"),actualStart:u().optional().describe("Actual start time"),actualEnd:u().optional().describe("Actual end time")}).optional().describe("Schedule"),approval:n({required:c().describe("Approval required"),approvers:m(n({userId:i().describe("Approver user ID"),approvedAt:u().optional().describe("Approval timestamp"),comments:i().optional().describe("Approver comments")})).describe("Approvers")}).optional().describe("Approval workflow"),attachments:m(n({name:i().describe("Attachment name"),url:i().url().describe("Attachment URL")})).optional().describe("Attachments"),metadata:C(i(),E()).optional().describe("Custom metadata key-value pairs for extensibility")});var iK=h(["aes-256-gcm","aes-256-cbc","chacha20-poly1305"]).describe("Supported encryption algorithm"),aK=h(["local","aws-kms","azure-key-vault","gcp-kms","hashicorp-vault"]).describe("Key management service provider"),oK=n({enabled:c().default(!1).describe("Enable automatic key rotation"),frequencyDays:u().min(1).default(90).describe("Rotation frequency in days"),retainOldVersions:u().default(3).describe("Number of old key versions to retain"),autoRotate:c().default(!0).describe("Automatically rotate without manual approval")}).describe("Policy for automatic encryption key rotation"),SA=n({enabled:c().default(!1).describe("Enable field-level encryption"),algorithm:iK.default("aes-256-gcm").describe("Encryption algorithm"),keyManagement:n({provider:aK.describe("Key management service provider"),keyId:i().optional().describe("Key identifier in the provider"),rotationPolicy:oK.optional().describe("Key rotation policy")}).describe("Key management configuration"),scope:h(["field","record","table","database"]).describe("Encryption scope level"),deterministicEncryption:c().default(!1).describe("Allows equality queries on encrypted data"),searchableEncryption:c().default(!1).describe("Allows search on encrypted data")}).describe("Field-level encryption configuration");n({fieldName:i().describe("Name of the field to encrypt"),encryptionConfig:SA.describe("Encryption settings for this field"),indexable:c().default(!1).describe("Allow indexing on encrypted field")}).describe("Per-field encryption assignment");var rK=h(["redact","partial","hash","tokenize","randomize","nullify","substitute"]).describe("Data masking strategy for PII protection"),xA=n({field:i().describe("Field name to apply masking to"),strategy:rK.describe("Masking strategy to use"),pattern:i().optional().describe("Regex pattern for partial masking"),preserveFormat:c().default(!0).describe("Keep the original data format after masking"),preserveLength:c().default(!0).describe("Keep the original data length after masking"),roles:m(i()).optional().describe("Roles that see masked data"),exemptRoles:m(i()).optional().describe("Roles that see unmasked data")}).describe("Masking rule for a single field");n({enabled:c().default(!1).describe("Enable data masking"),rules:m(xA).describe("List of field-level masking rules"),auditUnmasking:c().default(!0).describe("Log when masked data is accessed unmasked")}).describe("Top-level data masking configuration for PII protection");var nK=h(["text","textarea","email","url","phone","password","markdown","html","richtext","number","currency","percent","date","datetime","time","boolean","toggle","select","multiselect","radio","checkboxes","lookup","master_detail","tree","image","file","avatar","video","audio","formula","summary","autonumber","location","address","code","json","color","rating","slider","signature","qrcode","progress","tags","vector"]),sK=n({label:i().describe("Display label (human-readable, any case allowed)"),value:sm.describe("Stored value (lowercase machine identifier)"),color:i().optional().describe("Color code for badges/charts"),default:c().optional().describe("Is default option")});n({latitude:u().min(-90).max(90).describe("Latitude coordinate"),longitude:u().min(-180).max(180).describe("Longitude coordinate"),altitude:u().optional().describe("Altitude in meters"),accuracy:u().optional().describe("Accuracy in meters")});var lK=n({precision:u().int().min(0).max(10).default(2).describe("Decimal precision (default: 2)"),currencyMode:h(["dynamic","fixed"]).default("dynamic").describe("Currency mode: dynamic (user selectable) or fixed (single currency)"),defaultCurrency:i().length(3).default("CNY").describe("Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)")});n({value:u().describe("Monetary amount"),currency:i().length(3).describe("Currency code (ISO 4217)")});n({street:i().optional().describe("Street address"),city:i().optional().describe("City name"),state:i().optional().describe("State/Province"),postalCode:i().optional().describe("Postal/ZIP code"),country:i().optional().describe("Country name or code"),countryCode:i().optional().describe("ISO country code (e.g., US, GB)"),formatted:i().optional().describe("Formatted address string")});var cK=n({dimensions:u().int().min(1).max(1e4).describe("Vector dimensionality (e.g., 1536 for OpenAI embeddings)"),distanceMetric:h(["cosine","euclidean","dotProduct","manhattan"]).default("cosine").describe("Distance/similarity metric for vector search"),normalized:c().default(!1).describe("Whether vectors are normalized (unit length)"),indexed:c().default(!0).describe("Whether to create a vector index for fast similarity search"),indexType:h(["hnsw","ivfflat","flat"]).optional().describe("Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)")}),dK=n({minSize:u().min(0).optional().describe("Minimum file size in bytes"),maxSize:u().min(1).optional().describe("Maximum file size in bytes (e.g., 10485760 = 10MB)"),allowedTypes:m(i()).optional().describe('Allowed file extensions (e.g., [".pdf", ".docx", ".jpg"])'),blockedTypes:m(i()).optional().describe('Blocked file extensions (e.g., [".exe", ".bat", ".sh"])'),allowedMimeTypes:m(i()).optional().describe('Allowed MIME types (e.g., ["image/jpeg", "application/pdf"])'),blockedMimeTypes:m(i()).optional().describe("Blocked MIME types"),virusScan:c().default(!1).describe("Enable virus scanning for uploaded files"),virusScanProvider:h(["clamav","virustotal","metadefender","custom"]).optional().describe("Virus scanning service provider"),virusScanOnUpload:c().default(!0).describe("Scan files immediately on upload"),quarantineOnThreat:c().default(!0).describe("Quarantine files if threat detected"),storageProvider:i().optional().describe("Object storage provider name (references ObjectStorageConfig)"),storageBucket:i().optional().describe("Target bucket name"),storagePrefix:i().optional().describe('Storage path prefix (e.g., "uploads/documents/")'),imageValidation:n({minWidth:u().min(1).optional().describe("Minimum image width in pixels"),maxWidth:u().min(1).optional().describe("Maximum image width in pixels"),minHeight:u().min(1).optional().describe("Minimum image height in pixels"),maxHeight:u().min(1).optional().describe("Maximum image height in pixels"),aspectRatio:i().optional().describe('Required aspect ratio (e.g., "16:9", "1:1")'),generateThumbnails:c().default(!1).describe("Auto-generate thumbnails"),thumbnailSizes:m(n({name:i().describe('Thumbnail variant name (e.g., "small", "medium", "large")'),width:u().min(1).describe("Thumbnail width in pixels"),height:u().min(1).describe("Thumbnail height in pixels"),crop:c().default(!1).describe("Crop to exact dimensions")})).optional().describe("Thumbnail size configurations"),preserveMetadata:c().default(!1).describe("Preserve EXIF metadata"),autoRotate:c().default(!0).describe("Auto-rotate based on EXIF orientation")}).optional().describe("Image-specific validation rules"),allowMultiple:c().default(!1).describe("Allow multiple file uploads (overrides field.multiple)"),allowReplace:c().default(!0).describe("Allow replacing existing files"),allowDelete:c().default(!0).describe("Allow deleting uploaded files"),requireUpload:c().default(!1).describe("Require at least one file when field is required"),extractMetadata:c().default(!0).describe("Extract file metadata (name, size, type, etc.)"),extractText:c().default(!1).describe("Extract text content from documents (OCR/parsing)"),versioningEnabled:c().default(!1).describe("Keep previous versions of replaced files"),maxVersions:u().min(1).optional().describe("Maximum number of versions to retain"),publicRead:c().default(!1).describe("Allow public read access to uploaded files"),presignedUrlExpiry:u().min(60).max(604800).default(3600).describe("Presigned URL expiration in seconds (default: 1 hour)")}).refine(e=>!(e.minSize!==void 0&&e.maxSize!==void 0&&e.minSize>e.maxSize),{message:"minSize must be less than or equal to maxSize"}).refine(e=>!(e.virusScanProvider!==void 0&&e.virusScan!==!0),{message:"virusScanProvider requires virusScan to be enabled"}),uK=n({uniqueness:c().default(!1).describe("Enforce unique values across all records"),completeness:u().min(0).max(1).default(0).describe("Minimum ratio of non-null values (0-1, default: 0 = no requirement)"),accuracy:n({source:i().describe('Reference data source for validation (e.g., "api.verify.com", "master_data")'),threshold:u().min(0).max(1).describe("Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)")}).optional().describe("Accuracy validation configuration")}),pK=n({enabled:c().describe("Enable caching for computed field results"),ttl:u().min(0).describe("Cache TTL in seconds (0 = no expiration)"),invalidateOn:m(i()).describe('Field paths that invalidate cache (e.g., ["inventory.quantity", "pricing.base_price"])')}),ov=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Machine name (snake_case)").optional(),label:i().optional().describe("Human readable label"),type:nK.describe("Field Data Type"),description:i().optional().describe("Tooltip/Help text"),format:i().optional().describe("Format string (e.g. email, phone)"),required:c().default(!1).describe("Is required"),searchable:c().default(!1).describe("Is searchable"),multiple:c().default(!1).describe("Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image."),unique:c().default(!1).describe("Is unique constraint"),defaultValue:E().optional().describe("Default value"),maxLength:u().optional().describe("Max character length"),minLength:u().optional().describe("Min character length"),precision:u().optional().describe("Total digits"),scale:u().optional().describe("Decimal places"),min:u().optional().describe("Minimum value"),max:u().optional().describe("Maximum value"),options:m(sK).optional().describe("Static options for select/multiselect"),reference:i().optional().describe("Target Object Name"),referenceFilters:m(i()).optional().describe('Filters applied to lookup dialogs (e.g. "active = true")'),writeRequiresMasterRead:c().optional().describe("If true, user needs read access to master record to edit this field"),deleteBehavior:h(["set_null","cascade","restrict"]).optional().default("set_null").describe("What happens if referenced record is deleted"),expression:i().optional().describe("Formula expression"),summaryOperations:n({object:i(),field:i(),function:h(["count","sum","min","max","avg"])}).optional().describe("Roll-up summary definition"),language:i().optional().describe("Programming language for syntax highlighting (e.g., javascript, python, sql)"),theme:i().optional().describe("Code editor theme (e.g., dark, light, monokai)"),lineNumbers:c().optional().describe("Show line numbers in code editor"),maxRating:u().optional().describe("Maximum rating value (default: 5)"),allowHalf:c().optional().describe("Allow half-star ratings"),displayMap:c().optional().describe("Display map widget for location field"),allowGeocoding:c().optional().describe("Allow address-to-coordinate conversion"),addressFormat:h(["us","uk","international"]).optional().describe("Address format template"),colorFormat:h(["hex","rgb","rgba","hsl"]).optional().describe("Color value format"),allowAlpha:c().optional().describe("Allow transparency/alpha channel"),presetColors:m(i()).optional().describe("Preset color options"),step:u().optional().describe("Step increment for slider (default: 1)"),showValue:c().optional().describe("Display current value on slider"),marks:C(i(),i()).optional().describe('Custom marks/labels at specific values (e.g., {0: "Low", 50: "Medium", 100: "High"})'),barcodeFormat:h(["qr","ean13","ean8","code128","code39","upca","upce"]).optional().describe("Barcode format type"),qrErrorCorrection:h(["L","M","Q","H"]).optional().describe('QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is "qr"'),displayValue:c().optional().describe("Display human-readable value below barcode/QR code"),allowScanning:c().optional().describe("Enable camera scanning for barcode/QR code input"),currencyConfig:lK.optional().describe("Configuration for currency field type"),vectorConfig:cK.optional().describe("Configuration for vector field type (AI/ML embeddings)"),fileAttachmentConfig:dK.optional().describe("Configuration for file and attachment field types"),encryptionConfig:SA.optional().describe("Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)"),maskingRule:xA.optional().describe("Data masking rules for PII protection"),auditTrail:c().default(!1).describe("Enable detailed audit trail for this field (tracks all changes with user and timestamp)"),dependencies:m(i()).optional().describe("Array of field names that this field depends on (for formulas, visibility rules, etc.)"),cached:pK.optional().describe("Caching configuration for computed/formula fields"),dataQuality:uK.optional().describe("Data quality validation and monitoring rules"),hidden:c().default(!1).describe("Hidden from default UI"),readonly:c().default(!1).describe("Read-only in UI"),sortable:c().optional().default(!0).describe("Whether field is sortable in list views"),inlineHelpText:i().optional().describe("Help text displayed below the field in forms"),trackFeedHistory:c().optional().describe("Track field changes in Chatter/activity feed (Salesforce pattern)"),caseSensitive:c().optional().describe("Whether text comparisons are case-sensitive"),autonumberFormat:i().optional().describe('Auto-number display format pattern (e.g., "CASE-{0000}")'),index:c().default(!1).describe("Create standard database index"),externalId:c().default(!1).describe("Is external ID for upsert operations")}),So=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Unique rule name (snake_case)"),label:i().optional().describe("Human-readable label for the rule listing"),description:i().optional().describe("Administrative notes explaining the business reason"),active:c().default(!0),events:m(h(["insert","update","delete"])).default(["insert","update"]).describe("Validation contexts"),tags:m(i()).optional().describe('Categorization tags (e.g., "compliance", "billing")'),severity:h(["error","warning","info"]).default("error"),message:i().describe("Error message to display to the user")}),mK=So.extend({type:z("script"),condition:i().describe("Formula expression. If TRUE, validation fails. (e.g. amount < 0)")}),fK=So.extend({type:z("unique"),fields:m(i()).describe("Fields that must be combined unique"),scope:i().optional().describe("Formula condition for scope (e.g. active = true)"),caseSensitive:c().default(!0)}),bK=So.extend({type:z("state_machine"),field:i().describe("State field (e.g. status)"),transitions:C(i(),m(i())).describe("Map of { OldState: [AllowedNewStates] }")}),hK=So.extend({type:z("format"),field:i(),regex:i().optional(),format:h(["email","url","phone","json"]).optional()}),gK=So.extend({type:z("cross_field"),condition:i().describe('Formula expression comparing fields (e.g. "end_date > start_date")'),fields:m(i()).describe("Fields involved in the validation")}),yK=So.extend({type:z("json_schema"),field:i().describe("JSON field to validate"),schema:C(i(),E()).describe("JSON Schema object definition")}),vK=So.extend({type:z("async"),field:i().describe("Field to validate"),validatorUrl:i().optional().describe("External API endpoint for validation"),method:h(["GET","POST"]).default("GET").describe("HTTP method for external call"),headers:C(i(),i()).optional().describe("Custom headers for the request"),validatorFunction:i().optional().describe("Reference to custom validator function"),timeout:u().optional().default(5e3).describe("Timeout in milliseconds"),debounce:u().optional().describe("Debounce delay in milliseconds"),params:C(i(),E()).optional().describe("Additional parameters to pass to validator")}),SK=So.extend({type:z("custom"),handler:i().describe("Name of the custom validation function registered in the system"),params:C(i(),E()).optional().describe("Parameters passed to the custom handler")}),Pp=Ue(()=>tt("type",[mK,fK,bK,hK,gK,yK,vK,SK,xK])),xK=So.extend({type:z("conditional"),when:i().describe(`Condition formula (e.g. "type = 'enterprise'")`),then:Pp.describe("Validation rule to apply when condition is true"),otherwise:Pp.optional().describe("Validation rule to apply when condition is false")}),Vg=Z([i().describe("Action Name"),n({type:i(),params:C(i(),E()).optional()})]),wK=Z([i().describe('Guard Name (e.g., "isManager", "amountGT1000")'),n({type:i(),params:C(i(),E()).optional()})]),Sc=n({target:i().optional().describe("Target State ID"),cond:wK.optional().describe("Condition (Guard) required to take this path"),actions:m(Vg).optional().describe("Actions to execute during transition"),description:i().optional().describe("Human readable description of this rule")});n({type:i().describe('Event Type (e.g. "APPROVE", "REJECT", "Submit")'),schema:C(i(),E()).optional().describe("Expected event payload structure")});var wA=Ue(()=>n({type:h(["atomic","compound","parallel","final","history"]).default("atomic"),entry:m(Vg).optional().describe("Actions to run when entering this state"),exit:m(Vg).optional().describe("Actions to run when leaving this state"),on:C(i(),Z([i(),Sc,m(Sc)])).optional().describe("Map of Event Type -> Transition Definition"),always:m(Sc).optional(),initial:i().optional().describe("Initial child state (if compound)"),states:C(i(),wA).optional(),meta:n({label:i().optional(),description:i().optional(),color:i().optional(),aiInstructions:i().optional().describe("Specific instructions for AI when in this state")}).optional()})),kK=n({id:Q7.describe("Unique Machine ID"),description:i().optional(),contextSchema:C(i(),E()).optional().describe("Zod Schema for the machine context/memory"),initial:i().describe("Initial State ID"),states:C(i(),wA).describe("State Nodes"),on:C(i(),Z([i(),Sc,m(Sc)])).optional()}),CK=h(["get","list","create","update","delete","upsert","bulk","aggregate","history","search","restore","purge","import","export"]),EK=n({trackHistory:c().default(!1).describe("Enable field history tracking for audit compliance"),searchable:c().default(!0).describe("Index records for global search"),apiEnabled:c().default(!0).describe("Expose object via automatic APIs"),apiMethods:m(CK).optional().describe("Whitelist of allowed API operations"),files:c().default(!1).describe("Enable file attachments and document management"),feeds:c().default(!1).describe("Enable social feed, comments, and mentions (Chatter-like)"),activities:c().default(!1).describe("Enable standard tasks and events tracking"),trash:c().default(!0).describe("Enable soft-delete with restore capability"),mru:c().default(!0).describe("Track Most Recently Used (MRU) list for users"),clone:c().default(!0).describe("Allow record deep cloning")}),kA=n({name:i().optional().describe("Index name (auto-generated if not provided)"),fields:m(i()).describe("Fields included in the index"),type:h(["btree","hash","gin","gist","fulltext"]).optional().default("btree").describe("Index algorithm type"),unique:c().optional().default(!1).describe("Whether the index enforces uniqueness"),partial:i().optional().describe("Partial index condition (SQL WHERE clause for conditional indexes)")}),RK=n({fields:m(i()).describe("Fields to index for full-text search weighting"),displayFields:m(i()).optional().describe("Fields to display in search result cards"),filters:m(i()).optional().describe("Default filters for search results")}),TK=n({enabled:c().describe("Enable multi-tenancy for this object"),strategy:h(["shared","isolated","hybrid"]).describe("Tenant isolation strategy: shared (single DB, row-level), isolated (separate DB per tenant), hybrid (mix)"),tenantField:i().default("tenant_id").describe("Field name for tenant identifier"),crossTenantAccess:c().default(!1).describe("Allow cross-tenant data access (with explicit permission)")}),AK=n({enabled:c().describe("Enable soft delete (trash/recycle bin)"),field:i().default("deleted_at").describe("Field name for soft delete timestamp"),cascadeDelete:c().default(!1).describe("Cascade soft delete to related records")}),_K=n({enabled:c().describe("Enable record versioning"),strategy:h(["snapshot","delta","event-sourcing"]).describe("Versioning strategy: snapshot (full copy), delta (changes only), event-sourcing (event log)"),retentionDays:u().min(1).optional().describe("Number of days to retain old versions (undefined = infinite)"),versionField:i().default("version").describe("Field name for version number/timestamp")}),PK=n({enabled:c().describe("Enable table partitioning"),strategy:h(["range","hash","list"]).describe("Partitioning strategy: range (date ranges), hash (consistent hashing), list (predefined values)"),key:i().describe("Field name to partition by"),interval:i().optional().describe('Partition interval for range strategy (e.g., "1 month", "1 year")')}).refine(e=>!(e.strategy==="range"&&!e.interval),{message:'interval is required when strategy is "range"'}),IK=n({enabled:c().describe("Enable Change Data Capture"),events:m(h(["insert","update","delete"])).describe("Event types to capture"),destination:i().describe('Destination endpoint (e.g., "kafka://topic", "webhook://url")')}),DK=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Machine unique key (snake_case). Immutable."),label:i().optional().describe('Human readable singular label (e.g. "Account")'),pluralLabel:i().optional().describe('Human readable plural label (e.g. "Accounts")'),description:i().optional().describe("Developer documentation / description"),icon:i().optional().describe("Icon name (Lucide/Material) for UI representation"),tags:m(i()).optional().describe('Categorization tags (e.g. "sales", "system", "reference")'),active:c().optional().default(!0).describe("Is the object active and usable"),isSystem:c().optional().default(!1).describe("Is system object (protected from deletion)"),abstract:c().optional().default(!1).describe("Is abstract base object (cannot be instantiated)"),datasource:i().optional().default("default").describe('Target Datasource ID. "default" is the primary DB.'),tableName:i().optional().describe("Physical table/collection name in the target datasource"),fields:C(i().regex(/^[a-z_][a-z0-9_]*$/,{message:'Field names must be lowercase snake_case (e.g., "first_name", "company", "annual_revenue")'}),ov).describe("Field definitions map. Keys must be snake_case identifiers."),indexes:m(kA).optional().describe("Database performance indexes"),tenancy:TK.optional().describe("Multi-tenancy configuration for SaaS applications"),softDelete:AK.optional().describe("Soft delete (trash/recycle bin) configuration"),versioning:_K.optional().describe("Record versioning and history tracking configuration"),partitioning:PK.optional().describe("Table partitioning configuration for performance"),cdc:IK.optional().describe("Change Data Capture (CDC) configuration for real-time data streaming"),validations:m(Pp).optional().describe("Object-level validation rules"),stateMachines:C(i(),kK).optional().describe("Named state machines for parallel lifecycles (e.g., status, payment, approval)"),titleFormat:i().optional().describe('Title expression (e.g. "{name} - {code}"). Overrides nameField.'),compactLayout:m(i()).optional().describe("Primary fields for hover/cards/lookups"),search:RK.optional().describe("Search engine configuration"),enable:EK.optional().describe("Enabled system features modules"),recordTypes:m(i()).optional().describe("Record type names for this object"),sharingModel:h(["private","read","read_write","full"]).optional().describe("Default sharing model"),keyPrefix:i().max(5).optional().describe('Short prefix for record IDs (e.g., "001" for Account)')}),jK=Object.assign(DK,{create:e=>e});h(["own","extend"]);n({extend:i().describe("Target object name (FQN) to extend"),fields:C(i(),ov).optional().describe("Fields to add/override"),label:i().optional(),pluralLabel:i().optional(),description:i().optional(),validations:m(Pp).optional(),indexes:m(kA).optional(),priority:u().int().min(0).max(999).default(200).describe("Merge priority (higher = applied later)")});var MK=n({type:z("add_field"),objectName:i().describe("Target object name"),fieldName:i().describe("Name of the field to add"),field:ov.describe("Full field definition to add")}).describe("Add a new field to an existing object"),OK=n({type:z("modify_field"),objectName:i().describe("Target object name"),fieldName:i().describe("Name of the field to modify"),changes:C(i(),E()).describe("Partial field definition updates")}).describe("Modify properties of an existing field"),NK=n({type:z("remove_field"),objectName:i().describe("Target object name"),fieldName:i().describe("Name of the field to remove")}).describe("Remove a field from an existing object"),LK=n({type:z("create_object"),object:jK.describe("Full object definition to create")}).describe("Create a new object"),zK=n({type:z("rename_object"),oldName:i().describe("Current object name"),newName:i().describe("New object name")}).describe("Rename an existing object"),qK=n({type:z("delete_object"),objectName:i().describe("Name of the object to delete")}).describe("Delete an existing object"),$K=n({type:z("execute_sql"),sql:i().describe("Raw SQL statement to execute"),description:i().optional().describe("Human-readable description of the SQL")}).describe("Execute a raw SQL statement"),ME=tt("type",[MK,OK,NK,LK,zK,qK,$K]),UK=n({migrationId:i().describe("ID of the migration this depends on"),package:i().optional().describe("Package that owns the dependency migration")}).describe("Dependency reference to another migration that must run first");n({id:i().uuid().describe("Unique identifier for this change set"),name:i().describe("Human readable name for the migration"),description:i().optional().describe("Detailed description of what this migration does"),author:i().optional().describe("Author who created this migration"),createdAt:i().datetime().optional().describe("ISO 8601 timestamp when the migration was created"),dependencies:m(UK).optional().describe("Migrations that must run before this one"),operations:m(ME).describe("Ordered list of atomic migration operations"),rollback:m(ME).optional().describe("Operations to reverse this migration")}).describe("A versioned set of atomic schema migration operations");var FK=n({id:i().describe("Provider ID (github, google)"),clientId:i().describe("OAuth Client ID"),clientSecret:i().describe("OAuth Client Secret"),scope:m(i()).optional().describe("Requested permissions")}),BK=n({organization:c().default(!1).describe("Enable Organization/Teams support"),twoFactor:c().default(!1).describe("Enable 2FA"),passkeys:c().default(!1).describe("Enable Passkey support"),magicLink:c().default(!1).describe("Enable Magic Link login")});n({secret:i().optional().describe("Encryption secret"),baseUrl:i().optional().describe("Base URL for auth routes"),databaseUrl:i().optional().describe("Database connection string"),providers:m(FK).optional(),plugins:BK.optional(),session:n({expiresIn:u().default(3600*24*7).describe("Session duration in seconds"),updateAge:u().default(3600*24).describe("Session update frequency")}).optional()}).catchall(E());var HK=n({enabled:c().describe("Enable GDPR compliance controls"),dataSubjectRights:n({rightToAccess:c().default(!0).describe("Allow data subjects to access their data"),rightToRectification:c().default(!0).describe("Allow data subjects to correct their data"),rightToErasure:c().default(!0).describe("Allow data subjects to request deletion"),rightToRestriction:c().default(!0).describe("Allow data subjects to restrict processing"),rightToPortability:c().default(!0).describe("Allow data subjects to export their data"),rightToObjection:c().default(!0).describe("Allow data subjects to object to processing")}).describe("Data subject rights configuration per GDPR Articles 15-21"),legalBasis:h(["consent","contract","legal-obligation","vital-interests","public-task","legitimate-interests"]).describe("Legal basis for data processing under GDPR Article 6"),consentTracking:c().default(!0).describe("Track and record user consent"),dataRetentionDays:u().optional().describe("Maximum data retention period in days"),dataProcessingAgreement:i().optional().describe("URL or reference to the data processing agreement")}).describe("GDPR (General Data Protection Regulation) compliance configuration"),VK=n({enabled:c().describe("Enable HIPAA compliance controls"),phi:n({encryption:c().default(!0).describe("Encrypt Protected Health Information at rest"),accessControl:c().default(!0).describe("Enforce role-based access to PHI"),auditTrail:c().default(!0).describe("Log all PHI access events"),backupAndRecovery:c().default(!0).describe("Enable PHI backup and disaster recovery")}).describe("Protected Health Information safeguards"),businessAssociateAgreement:c().default(!1).describe("BAA is in place with third-party processors")}).describe("HIPAA (Health Insurance Portability and Accountability Act) compliance configuration"),GK=n({enabled:c().describe("Enable PCI-DSS compliance controls"),level:h(["1","2","3","4"]).describe("PCI-DSS compliance level (1 = highest)"),cardDataFields:m(i()).describe("Field names containing cardholder data"),tokenization:c().default(!0).describe("Replace card data with secure tokens"),encryptionInTransit:c().default(!0).describe("Encrypt cardholder data during transmission"),encryptionAtRest:c().default(!0).describe("Encrypt stored cardholder data")}).describe("PCI-DSS (Payment Card Industry Data Security Standard) compliance configuration"),WK=n({enabled:c().default(!0).describe("Enable audit logging"),retentionDays:u().default(365).describe("Number of days to retain audit logs"),immutable:c().default(!0).describe("Prevent modification or deletion of audit logs"),signLogs:c().default(!1).describe("Cryptographically sign log entries for tamper detection"),events:m(h(["create","read","update","delete","export","permission-change","login","logout","failed-login"])).describe("Event types to capture in the audit log")}).describe("Audit log configuration for compliance and security monitoring");n({gdpr:HK.optional().describe("GDPR compliance settings"),hipaa:VK.optional().describe("HIPAA compliance settings"),pciDss:GK.optional().describe("PCI-DSS compliance settings"),auditLog:WK.describe("Audit log configuration")}).describe("Unified compliance configuration spanning GDPR, HIPAA, and PCI-DSS");var QK=n({type:z("cron"),expression:i().describe('Cron expression (e.g., "0 0 * * *" for daily at midnight)'),timezone:i().optional().default("UTC").describe('Timezone for cron execution (e.g., "America/New_York")')}),KK=n({type:z("interval"),intervalMs:u().int().positive().describe("Interval in milliseconds")}),ZK=n({type:z("once"),at:i().datetime().describe("ISO 8601 datetime when to execute")}),YK=tt("type",[QK,KK,ZK]),JK=n({maxRetries:u().int().min(0).default(3).describe("Maximum number of retry attempts"),backoffMs:u().int().positive().default(1e3).describe("Initial backoff delay in milliseconds"),backoffMultiplier:u().positive().default(2).describe("Multiplier for exponential backoff")});n({id:i().describe("Unique job identifier"),name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Job name (snake_case)"),schedule:YK.describe("Job schedule configuration"),handler:i().describe('Handler path (e.g. "path/to/file:functionName") or script ID'),retryPolicy:JK.optional().describe("Retry policy configuration"),timeout:u().int().positive().optional().describe("Timeout in milliseconds"),enabled:c().default(!0).describe("Whether the job is enabled")});var XK=h(["running","success","failed","timeout"]);n({jobId:i().describe("Job identifier"),startedAt:i().datetime().describe("ISO 8601 datetime when execution started"),completedAt:i().datetime().optional().describe("ISO 8601 datetime when execution completed"),status:XK.describe("Execution status"),error:i().optional().describe("Error message if failed"),duration:u().int().optional().describe("Execution duration in milliseconds")});var CA=h(["critical","high","normal","low","background"]),EA=h(["pending","queued","processing","completed","failed","cancelled","timeout","dead"]),RA=n({maxRetries:u().int().min(0).default(3).describe("Maximum retry attempts"),backoffStrategy:h(["fixed","linear","exponential"]).default("exponential").describe("Backoff strategy between retries"),initialDelayMs:u().int().positive().default(1e3).describe("Initial retry delay in milliseconds"),maxDelayMs:u().int().positive().default(6e4).describe("Maximum retry delay in milliseconds"),backoffMultiplier:u().positive().default(2).describe("Multiplier for exponential backoff")}),eZ=n({id:i().describe("Unique task identifier"),type:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Task type (snake_case)"),payload:E().describe("Task payload data"),queue:i().default("default").describe("Queue name"),priority:CA.default("normal").describe("Task priority level"),retryPolicy:RA.optional().describe("Retry policy configuration"),timeoutMs:u().int().positive().optional().describe("Task timeout in milliseconds"),scheduledAt:i().datetime().optional().describe("ISO 8601 datetime to execute task"),attempts:u().int().min(0).default(0).describe("Number of execution attempts"),status:EA.default("pending").describe("Current task status"),metadata:n({createdAt:i().datetime().optional().describe("When task was created"),updatedAt:i().datetime().optional().describe("Last update time"),createdBy:i().optional().describe("User who created task"),tags:m(i()).optional().describe("Task tags for filtering")}).optional().describe("Task metadata")});n({taskId:i().describe("Task identifier"),status:EA.describe("Execution status"),result:E().optional().describe("Execution result data"),error:n({message:i().describe("Error message"),stack:i().optional().describe("Error stack trace"),code:i().optional().describe("Error code")}).optional().describe("Error details if failed"),durationMs:u().int().optional().describe("Execution duration in milliseconds"),startedAt:i().datetime().describe("When execution started"),completedAt:i().datetime().optional().describe("When execution completed"),attempt:u().int().min(1).describe("Attempt number (1-indexed)"),willRetry:c().describe("Whether task will be retried")});var TA=n({name:i().describe("Queue name (snake_case)"),concurrency:u().int().min(1).default(5).describe("Max concurrent task executions"),rateLimit:n({max:u().int().positive().describe("Maximum tasks per duration"),duration:u().int().positive().describe("Duration in milliseconds")}).optional().describe("Rate limit configuration"),defaultRetryPolicy:RA.optional().describe("Default retry policy for tasks"),deadLetterQueue:i().optional().describe("Dead letter queue name"),priority:u().int().min(0).default(0).describe("Queue priority (lower = higher priority)"),autoScale:n({enabled:c().default(!1).describe("Enable auto-scaling"),minWorkers:u().int().min(1).default(1).describe("Minimum workers"),maxWorkers:u().int().min(1).default(10).describe("Maximum workers"),scaleUpThreshold:u().int().positive().default(100).describe("Queue size to scale up"),scaleDownThreshold:u().int().min(0).default(10).describe("Queue size to scale down")}).optional().describe("Auto-scaling configuration")}),tZ=n({id:i().describe("Unique batch job identifier"),type:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Task type (snake_case)"),items:m(E()).describe("Array of items to process"),batchSize:u().int().min(1).default(100).describe("Number of items per batch"),queue:i().default("batch").describe("Queue for batch tasks"),priority:CA.default("normal").describe("Batch task priority"),parallel:c().default(!0).describe("Process batches in parallel"),stopOnError:c().default(!1).describe("Stop batch if any item fails"),onProgress:$().input(Se([n({processed:u(),total:u(),failed:u()})])).output(Kt()).optional().describe("Progress callback function (called after each batch)")});n({batchId:i().describe("Batch job identifier"),total:u().int().min(0).describe("Total number of items"),processed:u().int().min(0).default(0).describe("Items processed"),succeeded:u().int().min(0).default(0).describe("Items succeeded"),failed:u().int().min(0).default(0).describe("Items failed"),percentage:u().min(0).max(100).describe("Progress percentage"),status:h(["pending","running","completed","failed","cancelled"]).describe("Batch status"),startedAt:i().datetime().optional().describe("When batch started"),completedAt:i().datetime().optional().describe("When batch completed")});var iZ=n({name:i().describe("Worker name"),queues:m(i()).min(1).describe("Queue names to process"),queueConfigs:m(TA).optional().describe("Queue configurations"),pollIntervalMs:u().int().positive().default(1e3).describe("Queue polling interval in milliseconds"),visibilityTimeoutMs:u().int().positive().default(3e4).describe("How long a task is invisible after being claimed"),defaultTimeoutMs:u().int().positive().default(3e5).describe("Default task timeout in milliseconds"),shutdownTimeoutMs:u().int().positive().default(3e4).describe("Graceful shutdown timeout in milliseconds"),handlers:C(i(),$()).optional().describe("Task type handlers")});n({workerName:i().describe("Worker name"),totalProcessed:u().int().min(0).describe("Total tasks processed"),succeeded:u().int().min(0).describe("Successful tasks"),failed:u().int().min(0).describe("Failed tasks"),active:u().int().min(0).describe("Currently active tasks"),avgExecutionMs:u().min(0).optional().describe("Average execution time in milliseconds"),uptimeMs:u().int().min(0).describe("Worker uptime in milliseconds"),queues:C(i(),n({pending:u().int().min(0).describe("Pending tasks"),active:u().int().min(0).describe("Active tasks"),completed:u().int().min(0).describe("Completed tasks"),failed:u().int().min(0).describe("Failed tasks")})).optional().describe("Per-queue statistics")});Object.assign(eZ,{create:e=>e});Object.assign(TA,{create:e=>e});Object.assign(iZ,{create:e=>e});Object.assign(tZ,{create:e=>e});var aZ=n({id:i().describe("Template identifier"),subject:i().describe("Email subject"),body:i().describe("Email body content"),bodyType:h(["text","html","markdown"]).optional().default("html").describe("Body content type"),variables:m(i()).optional().describe("Template variables"),attachments:m(n({name:i().describe("Attachment filename"),url:i().url().describe("Attachment URL")})).optional().describe("Email attachments")}),oZ=n({id:i().describe("Template identifier"),message:i().describe("SMS message content"),maxLength:u().optional().default(160).describe("Maximum message length"),variables:m(i()).optional().describe("Template variables")}),rZ=n({title:i().describe("Notification title"),body:i().describe("Notification body"),icon:i().url().optional().describe("Notification icon URL"),badge:u().optional().describe("Badge count"),data:C(i(),E()).optional().describe("Custom data"),actions:m(n({action:i().describe("Action identifier"),title:i().describe("Action button title")})).optional().describe("Notification actions")}),nZ=n({title:i().describe("Notification title"),message:i().describe("Notification message"),type:h(["info","success","warning","error"]).describe("Notification type"),actionUrl:i().optional().describe("Action URL"),dismissible:c().optional().default(!0).describe("User dismissible"),expiresAt:u().optional().describe("Expiration timestamp")}),sZ=h(["email","sms","push","in-app","slack","teams","webhook"]);n({id:i().describe("Notification ID"),name:i().describe("Notification name"),channel:sZ.describe("Notification channel"),template:Z([aZ,oZ,rZ,nZ]).describe("Notification template"),recipients:n({to:m(i()).describe("Primary recipients"),cc:m(i()).optional().describe("CC recipients"),bcc:m(i()).optional().describe("BCC recipients")}).describe("Recipients"),schedule:n({type:h(["immediate","delayed","scheduled"]).describe("Schedule type"),delay:u().optional().describe("Delay in milliseconds"),scheduledAt:u().optional().describe("Scheduled timestamp")}).optional().describe("Scheduling"),retryPolicy:n({enabled:c().optional().default(!0).describe("Enable retries"),maxRetries:u().optional().default(3).describe("Max retry attempts"),backoffStrategy:h(["exponential","linear","fixed"]).describe("Backoff strategy")}).optional().describe("Retry policy"),tracking:n({trackOpens:c().optional().default(!1).describe("Track opens"),trackClicks:c().optional().default(!1).describe("Track clicks"),trackDelivery:c().optional().default(!0).describe("Track delivery")}).optional().describe("Tracking configuration")});var lZ=n({objects:C(i(),n({label:i().describe("Translated singular label"),pluralLabel:i().optional().describe("Translated plural label"),fields:C(i(),n({label:i().optional().describe("Translated field label"),help:i().optional().describe("Translated help text"),options:C(i(),i()).optional().describe("Option value to translated label map")})).optional().describe("Field-level translations")})).optional().describe("Object translations keyed by object name"),apps:C(i(),n({label:i().describe("Translated app label"),description:i().optional().describe("Translated app description")})).optional().describe("App translations keyed by app name"),messages:C(i(),i()).optional().describe("UI message translations keyed by message ID")}).describe("Translation data for objects, apps, and UI messages"),cZ=i().describe("BCP-47 Language Tag (e.g. en-US, zh-CN)");C(cZ,lZ).describe("Map of locale codes to translation data");h(["insert","delete","retain"]);var dZ=tt("type",[n({type:z("insert"),text:i().describe("Text to insert"),attributes:C(i(),E()).optional().describe("Text formatting attributes (e.g., bold, italic)")}),n({type:z("delete"),count:u().int().positive().describe("Number of characters to delete")}),n({type:z("retain"),count:u().int().positive().describe("Number of characters to retain"),attributes:C(i(),E()).optional().describe("Attribute changes to apply")})]),AA=n({operationId:i().uuid().describe("Unique operation identifier"),documentId:i().describe("Document identifier"),userId:i().describe("User who created the operation"),sessionId:i().uuid().describe("Session identifier"),components:m(dZ).describe("Operation components"),baseVersion:u().int().nonnegative().describe("Document version this operation is based on"),timestamp:i().datetime().describe("ISO 8601 datetime when operation was created"),metadata:C(i(),E()).optional().describe("Additional operation metadata")});n({operation:AA.describe("Transformed operation"),transformed:c().describe("Whether transformation was applied"),conflicts:m(i()).optional().describe("Conflict descriptions if any")});h(["lww-register","g-counter","pn-counter","g-set","or-set","lww-map","text","tree","json"]);var _A=n({clock:C(i(),u().int().nonnegative()).describe("Map of replica ID to logical timestamp")}),uZ=n({type:z("lww-register"),value:E().describe("Current register value"),timestamp:i().datetime().describe("ISO 8601 datetime of last write"),replicaId:i().describe("ID of replica that performed last write"),vectorClock:_A.optional().describe("Optional vector clock for causality tracking")});n({replicaId:i().describe("Replica identifier"),delta:u().int().describe("Change amount (positive for increment, negative for decrement)"),timestamp:i().datetime().describe("ISO 8601 datetime of operation")});var pZ=n({type:z("g-counter"),counts:C(i(),u().int().nonnegative()).describe("Map of replica ID to count")}),mZ=n({type:z("pn-counter"),positive:C(i(),u().int().nonnegative()).describe("Positive increments per replica"),negative:C(i(),u().int().nonnegative()).describe("Negative increments per replica")}),fZ=n({value:E().describe("Element value"),timestamp:i().datetime().describe("Addition timestamp"),replicaId:i().describe("Replica that added the element"),uid:i().uuid().describe("Unique identifier for this addition"),removed:c().optional().default(!1).describe("Whether element has been removed")}),bZ=n({type:z("or-set"),elements:m(fZ).describe("Set elements with metadata")}),PA=n({operationId:i().uuid().describe("Unique operation identifier"),replicaId:i().describe("Replica identifier"),position:u().int().nonnegative().describe("Position in document"),insert:i().optional().describe("Text to insert"),delete:u().int().positive().optional().describe("Number of characters to delete"),timestamp:i().datetime().describe("ISO 8601 datetime of operation"),lamportTimestamp:u().int().nonnegative().describe("Lamport timestamp for ordering")}),hZ=n({type:z("text"),documentId:i().describe("Document identifier"),content:i().describe("Current text content"),operations:m(PA).describe("History of operations"),lamportClock:u().int().nonnegative().describe("Current Lamport clock value"),vectorClock:_A.describe("Vector clock for causality")}),gZ=tt("type",[uZ,pZ,mZ,bZ,hZ]);n({state:gZ.describe("Merged CRDT state"),conflicts:m(n({type:i().describe("Conflict type"),description:i().describe("Conflict description"),resolved:c().describe("Whether conflict was automatically resolved")})).optional().describe("Conflicts encountered during merge")});var yZ=h(["blue","green","red","yellow","purple","orange","pink","teal","indigo","cyan"]),vZ=n({color:Z([yZ,i()]).describe("Cursor color (preset or custom hex)"),opacity:u().min(0).max(1).optional().default(1).describe("Cursor opacity (0-1)"),label:i().optional().describe("Label to display with cursor (usually username)"),showLabel:c().optional().default(!0).describe("Whether to show label"),pulseOnUpdate:c().optional().default(!0).describe("Whether to pulse when cursor moves")}),IA=n({anchor:n({line:u().int().nonnegative().describe("Anchor line number"),column:u().int().nonnegative().describe("Anchor column number")}).describe("Selection anchor (start point)"),focus:n({line:u().int().nonnegative().describe("Focus line number"),column:u().int().nonnegative().describe("Focus column number")}).describe("Selection focus (end point)"),direction:h(["forward","backward"]).optional().describe("Selection direction")}),SZ=n({userId:i().describe("User identifier"),sessionId:i().uuid().describe("Session identifier"),documentId:i().describe("Document identifier"),userName:i().describe("Display name of user"),position:n({line:u().int().nonnegative().describe("Cursor line number (0-indexed)"),column:u().int().nonnegative().describe("Cursor column number (0-indexed)")}).describe("Current cursor position"),selection:IA.optional().describe("Current text selection"),style:vZ.describe("Visual style for this cursor"),isTyping:c().optional().default(!1).describe("Whether user is currently typing"),lastUpdate:i().datetime().describe("ISO 8601 datetime of last cursor update"),metadata:C(i(),E()).optional().describe("Additional cursor metadata")});n({position:n({line:u().int().nonnegative(),column:u().int().nonnegative()}).optional().describe("Updated cursor position"),selection:IA.optional().describe("Updated selection"),isTyping:c().optional().describe("Updated typing state"),metadata:C(i(),E()).optional().describe("Updated metadata")});var DA=h(["active","idle","viewing","disconnected"]),jA=n({userId:i().describe("User identifier"),sessionId:i().uuid().describe("Session identifier"),userName:i().describe("Display name"),userAvatar:i().optional().describe("User avatar URL"),status:DA.describe("Current activity status"),currentDocument:i().optional().describe("Document ID user is currently editing"),currentView:i().optional().describe("Current view/page user is on"),lastActivity:i().datetime().describe("ISO 8601 datetime of last activity"),joinedAt:i().datetime().describe("ISO 8601 datetime when user joined session"),permissions:m(i()).optional().describe("User permissions in this session"),metadata:C(i(),E()).optional().describe("Additional user state metadata")});n({sessionId:i().uuid().describe("Session identifier"),documentId:i().optional().describe("Document ID this session is for"),users:m(jA).describe("Active users in session"),startedAt:i().datetime().describe("ISO 8601 datetime when session started"),lastUpdate:i().datetime().describe("ISO 8601 datetime of last update"),metadata:C(i(),E()).optional().describe("Session metadata")});n({status:DA.optional().describe("Updated status"),currentDocument:i().optional().describe("Updated current document"),currentView:i().optional().describe("Updated current view"),metadata:C(i(),E()).optional().describe("Updated metadata")});n({eventId:i().uuid().describe("Event identifier"),sessionId:i().uuid().describe("Session identifier"),eventType:h(["user.joined","user.left","user.updated","session.created","session.ended"]).describe("Type of awareness event"),userId:i().optional().describe("User involved in event"),timestamp:i().datetime().describe("ISO 8601 datetime of event"),payload:E().describe("Event payload")});var xZ=h(["ot","crdt","lock","hybrid"]),wZ=n({mode:xZ.describe("Collaboration mode to use"),enableCursorSharing:c().optional().default(!0).describe("Enable cursor sharing"),enablePresence:c().optional().default(!0).describe("Enable presence tracking"),enableAwareness:c().optional().default(!0).describe("Enable awareness state"),maxUsers:u().int().positive().optional().describe("Maximum concurrent users"),idleTimeout:u().int().positive().optional().default(3e5).describe("Idle timeout in milliseconds"),conflictResolution:h(["ot","crdt","manual"]).optional().default("ot").describe("Conflict resolution strategy"),persistence:c().optional().default(!0).describe("Enable operation persistence"),snapshot:n({enabled:c().describe("Enable periodic snapshots"),interval:u().int().positive().describe("Snapshot interval in milliseconds")}).optional().describe("Snapshot configuration")});n({sessionId:i().uuid().describe("Session identifier"),documentId:i().describe("Document identifier"),config:wZ.describe("Session configuration"),users:m(jA).describe("Active users"),cursors:m(SZ).describe("Active cursors"),version:u().int().nonnegative().describe("Current document version"),operations:m(Z([AA,PA])).optional().describe("Recent operations"),createdAt:i().datetime().describe("ISO 8601 datetime when session was created"),lastActivity:i().datetime().describe("ISO 8601 datetime of last activity"),status:h(["active","idle","ended"]).describe("Session status")});var MA=h(["system","platform","user"]),kZ=h(["draft","active","archived","deprecated"]);n({id:i(),name:i(),type:i(),namespace:i().default("default"),scope:MA.default("platform"),metadata:C(i(),E()),extends:i().optional().describe("Name of the parent metadata to extend/override"),strategy:h(["merge","replace"]).default("merge"),owner:i().optional(),state:kZ.default("active"),createdBy:i().optional(),createdAt:i().datetime().optional().describe("Creation timestamp"),updatedBy:i().optional(),updatedAt:i().datetime().optional().describe("Last update timestamp")});var Vc=h(["json","yaml","yml","ts","js","typescript","javascript"]),rv=n({path:i().optional(),size:u().optional(),mtime:i().datetime().optional(),hash:i().optional(),etag:i().optional(),modifiedAt:i().datetime().optional(),format:Vc.optional()});n({name:i(),protocol:i(),description:i().optional(),supportedFormats:m(i()).optional(),supportsWatch:c().optional(),supportsWrite:c().optional(),supportsCache:c().optional(),capabilities:n({read:c().default(!0),write:c().default(!1),watch:c().default(!1),list:c().default(!0)})});n({scope:MA.optional(),namespace:i().optional(),raw:c().optional().describe("Return raw file content instead of parsed JSON"),cache:c().optional(),useCache:c().optional(),validate:c().optional(),ifNoneMatch:i().optional(),recursive:c().optional(),limit:u().optional(),patterns:m(i()).optional(),loader:i().optional().describe("Specific loader to use (e.g. filesystem, database)")});n({data:E(),stats:rv.optional(),format:Vc.optional(),source:i().optional(),fromCache:c().optional(),etag:i().optional(),notModified:c().optional(),loadTime:u().optional()});n({format:Vc.optional(),create:c().default(!0),overwrite:c().default(!0),path:i().optional(),prettify:c().optional(),indent:u().optional(),sortKeys:c().optional(),backup:c().optional(),atomic:c().optional(),loader:i().optional().describe("Specific loader to use (e.g. filesystem, database)")});n({success:c(),path:i().optional(),stats:rv.optional(),etag:i().optional(),size:u().optional(),saveTime:u().optional(),backupPath:i().optional()});n({type:h(["add","change","unlink","added","changed","deleted"]),path:i(),name:i().optional(),stats:rv.optional(),metadataType:i().optional(),data:E().optional(),timestamp:i().datetime().optional()});n({type:i(),count:u(),namespaces:m(i())});n({types:m(i()).optional(),namespaces:m(i()).optional(),output:i().describe("Output directory or file"),format:Vc.default("json")});n({source:i().describe("Input directory or file"),strategy:h(["merge","replace","skip"]).default("merge"),validate:c().default(!0)});n({loaders:m(E()).optional(),watch:c().optional(),cache:c().optional(),basePath:i().optional(),rootDir:i().optional(),formats:m(Vc).optional(),watchOptions:E().optional()});var wt=h(["metadata","data","auth","file-storage","search","cache","queue","automation","graphql","analytics","realtime","job","notification","ai","i18n","ui","workflow"]);h(["required","core","optional"]);var CZ={metadata:"required",data:"required",auth:"core",cache:"core",queue:"core",job:"core","file-storage":"optional",search:"optional",automation:"optional",graphql:"optional",analytics:"optional",realtime:"optional",notification:"optional",ai:"optional",i18n:"optional",ui:"optional",workflow:"optional"};n({name:wt,enabled:c(),status:h(["running","stopped","degraded","initializing"]),version:i().optional(),provider:i().optional().describe('Implementation provider (e.g. "s3" for storage)'),features:m(i()).optional().describe("List of supported sub-features")});C(wt,E().describe("Service Instance implementing the protocol interface"));n({id:i(),name:wt,options:C(i(),E()).optional()});var EZ=h(["shared_schema","isolated_schema","isolated_db"]),RZ=n({maxUsers:u().int().positive().optional().describe("Maximum number of users"),maxStorage:u().int().positive().optional().describe("Maximum storage in bytes"),apiRateLimit:u().int().positive().optional().describe("API requests per minute")});n({id:i().describe("Unique tenant identifier"),name:i().describe("Tenant display name"),isolationLevel:EZ,customizations:C(i(),E()).optional().describe("Custom configuration values"),quotas:RZ.optional()});var TZ=n({strategy:z("shared_schema").describe("Row-level isolation strategy"),database:n({enableRLS:c().default(!0).describe("Enable PostgreSQL Row-Level Security"),contextMethod:h(["session_variable","search_path","application_name"]).default("session_variable").describe("How to set tenant context"),contextVariable:i().default("app.current_tenant").describe("Session variable name"),applicationValidation:c().default(!0).describe("Application-level tenant validation")}).optional().describe("Database configuration"),performance:n({usePartialIndexes:c().default(!0).describe("Use partial indexes per tenant"),usePartitioning:c().default(!1).describe("Use table partitioning by tenant_id"),poolSizePerTenant:u().int().positive().optional().describe("Connection pool size per tenant")}).optional().describe("Performance settings")}),AZ=n({strategy:z("isolated_schema").describe("Schema-level isolation strategy"),schema:n({namingPattern:i().default("tenant_{tenant_id}").describe("Schema naming pattern"),includePublicSchema:c().default(!0).describe("Include public schema"),sharedSchema:i().default("public").describe("Schema for shared resources"),autoCreateSchema:c().default(!0).describe("Auto-create schema")}).optional().describe("Schema configuration"),migrations:n({strategy:h(["parallel","sequential","on_demand"]).default("parallel").describe("Migration strategy"),maxConcurrent:u().int().positive().default(10).describe("Max concurrent migrations"),rollbackOnError:c().default(!0).describe("Rollback on error")}).optional().describe("Migration configuration"),performance:n({poolPerSchema:c().default(!1).describe("Separate pool per schema"),schemaCacheTTL:u().int().positive().default(3600).describe("Schema cache TTL")}).optional().describe("Performance settings")}),_Z=n({strategy:z("isolated_db").describe("Database-level isolation strategy"),database:n({namingPattern:i().default("tenant_{tenant_id}").describe("Database naming pattern"),serverStrategy:h(["shared","sharded","dedicated"]).default("shared").describe("Server assignment strategy"),separateCredentials:c().default(!0).describe("Separate credentials per tenant"),autoCreateDatabase:c().default(!0).describe("Auto-create database")}).optional().describe("Database configuration"),connectionPool:n({poolSize:u().int().positive().default(10).describe("Connection pool size"),maxActivePools:u().int().positive().default(100).describe("Max active pools"),idleTimeout:u().int().positive().default(300).describe("Idle pool timeout"),usePooler:c().default(!0).describe("Use connection pooler")}).optional().describe("Connection pool configuration"),backup:n({strategy:h(["individual","consolidated","on_demand"]).default("individual").describe("Backup strategy"),frequencyHours:u().int().positive().default(24).describe("Backup frequency"),retentionDays:u().int().positive().default(30).describe("Backup retention days")}).optional().describe("Backup configuration"),encryption:n({perTenantKeys:c().default(!1).describe("Per-tenant encryption keys"),algorithm:i().default("AES-256-GCM").describe("Encryption algorithm"),keyManagement:h(["aws_kms","azure_key_vault","gcp_kms","hashicorp_vault","custom"]).optional().describe("Key management service")}).optional().describe("Encryption configuration")});tt("strategy",[TZ,AZ,_Z]);n({encryption:n({atRest:c().default(!0).describe("Require encryption at rest"),inTransit:c().default(!0).describe("Require encryption in transit"),fieldLevel:c().default(!1).describe("Require field-level encryption")}).optional().describe("Encryption requirements"),accessControl:n({requireMFA:c().default(!1).describe("Require MFA"),requireSSO:c().default(!1).describe("Require SSO"),ipWhitelist:m(i()).optional().describe("Allowed IP addresses"),sessionTimeout:u().int().positive().default(3600).describe("Session timeout")}).optional().describe("Access control requirements"),compliance:n({standards:m(h(["sox","hipaa","gdpr","pci_dss","iso_27001","fedramp"])).optional().describe("Compliance standards"),requireAuditLog:c().default(!0).describe("Require audit logging"),auditRetentionDays:u().int().positive().default(365).describe("Audit retention days"),dataResidency:n({region:i().optional().describe("Required region (e.g., US, EU, APAC)"),excludeRegions:m(i()).optional().describe("Prohibited regions")}).optional().describe("Data residency requirements")}).optional().describe("Compliance requirements")});var PZ=h(["boolean","counter","gauge"]).describe("License metric type");n({code:i().regex(/^[a-z_][a-z0-9_.]*$/).describe("Feature code (e.g. core.api_access)"),label:i(),description:i().optional(),type:PZ.default("boolean"),unit:h(["count","bytes","seconds","percent"]).optional(),requires:m(i()).optional()});n({code:i().describe("Plan code (e.g. pro_v1)"),label:i(),active:c().default(!0),features:m(i()).describe("List of enabled boolean features"),limits:C(i(),u()).describe("Map of metric codes to limit values (e.g. { storage_gb: 10 })"),currency:i().default("USD").optional(),priceMonthly:u().optional(),priceYearly:u().optional()});n({spaceId:i().describe("Target Space ID"),planCode:i(),issuedAt:i().datetime(),expiresAt:i().datetime().optional(),status:h(["active","expired","suspended","trial"]),customFeatures:m(i()).optional(),customLimits:C(i(),u()).optional(),plugins:m(i()).optional().describe("List of enabled plugin package IDs"),signature:i().optional().describe("Cryptographic signature of the license")});var IZ=h(["manual","auto","proxy"]).describe("Registry synchronization strategy"),DZ=n({url:i().url().describe("Upstream registry endpoint"),syncPolicy:IZ.default("auto"),syncInterval:u().int().min(60).optional().describe("Auto-sync interval in seconds"),auth:n({type:h(["none","basic","bearer","api-key","oauth2"]).default("none"),username:i().optional(),password:i().optional(),token:i().optional(),apiKey:i().optional()}).optional(),tls:n({enabled:c().default(!0),verifyCertificate:c().default(!0),certificate:i().optional(),privateKey:i().optional()}).optional(),timeout:u().int().min(1e3).default(3e4).describe("Request timeout in milliseconds"),retry:n({maxAttempts:u().int().min(0).default(3),backoff:h(["fixed","linear","exponential"]).default("exponential")}).optional()});n({type:h(["public","private","hybrid"]).describe("Registry deployment type"),upstream:m(DZ).optional().describe("Upstream registries to sync from or proxy to"),scope:m(i()).optional().describe("npm-style scopes managed by this registry (e.g., @my-corp, @enterprise)"),defaultScope:i().optional().describe("Default scope prefix for new plugins"),storage:n({backend:h(["local","s3","gcs","azure-blob","oss"]).default("local"),path:i().optional(),credentials:C(i(),E()).optional()}).optional(),visibility:h(["public","private","internal"]).default("private").describe("Who can access this registry"),accessControl:n({requireAuthForRead:c().default(!1),requireAuthForWrite:c().default(!0),allowedPrincipals:m(i()).optional()}).optional(),cache:n({enabled:c().default(!0),ttl:u().int().min(0).default(3600).describe("Cache TTL in seconds"),maxSize:u().int().optional().describe("Maximum cache size in bytes")}).optional(),mirrors:m(n({url:i().url(),priority:u().int().min(1).default(1)})).optional().describe("Mirror registries for redundancy")});var Xi=n({$field:i().describe("Field Reference/Column Name")});n({$eq:rt().optional(),$ne:rt().optional()});n({$gt:Z([u(),ze(),Xi]).optional(),$gte:Z([u(),ze(),Xi]).optional(),$lt:Z([u(),ze(),Xi]).optional(),$lte:Z([u(),ze(),Xi]).optional()});n({$in:m(rt()).optional(),$nin:m(rt()).optional()});n({$between:Se([Z([u(),ze(),Xi]),Z([u(),ze(),Xi])]).optional()});n({$contains:i().optional(),$startsWith:i().optional(),$endsWith:i().optional()});n({$null:c().optional(),$exists:c().optional()});var rg=n({$eq:rt().optional(),$ne:rt().optional(),$gt:Z([u(),ze(),Xi]).optional(),$gte:Z([u(),ze(),Xi]).optional(),$lt:Z([u(),ze(),Xi]).optional(),$lte:Z([u(),ze(),Xi]).optional(),$in:m(rt()).optional(),$nin:m(rt()).optional(),$between:Se([Z([u(),ze(),Xi]),Z([u(),ze(),Xi])]).optional(),$contains:i().optional(),$startsWith:i().optional(),$endsWith:i().optional(),$null:c().optional(),$exists:c().optional()}),cr=Ue(()=>C(i(),E()).and(n({$and:m(cr).optional(),$or:m(cr).optional(),$not:cr.optional()})));n({where:cr.optional()});var ng=Ue(()=>n({$and:m(Z([C(i(),rg),ng])).optional(),$or:m(Z([C(i(),rg),ng])).optional(),$not:Z([C(i(),rg),ng]).optional()})),OA=n({field:i(),order:h(["asc","desc"]).default("asc")}),jZ=h(["count","sum","avg","min","max","count_distinct","array_agg","string_agg"]),MZ=n({function:jZ.describe("Aggregation function"),field:i().optional().describe("Field to aggregate (optional for COUNT(*))"),alias:i().describe("Result column alias"),distinct:c().optional().describe("Apply DISTINCT before aggregation"),filter:cr.optional().describe("Filter/Condition to apply to the aggregation (FILTER WHERE clause)")}),OZ=h(["inner","left","right","full"]),NZ=h(["auto","database","hash","loop"]),LZ=Ue(()=>n({type:OZ.describe("Join type"),strategy:NZ.optional().describe("Execution strategy hint"),object:i().describe("Object/table to join"),alias:i().optional().describe("Table alias"),on:cr.describe("Join condition"),subquery:Ue(()=>dm).optional().describe("Subquery instead of object")})),zZ=h(["row_number","rank","dense_rank","percent_rank","lag","lead","first_value","last_value","sum","avg","count","min","max"]),qZ=n({partitionBy:m(i()).optional().describe("PARTITION BY fields"),orderBy:m(OA).optional().describe("ORDER BY specification"),frame:n({type:h(["rows","range"]).optional(),start:i().optional().describe('Frame start (e.g., "UNBOUNDED PRECEDING", "1 PRECEDING")'),end:i().optional().describe('Frame end (e.g., "CURRENT ROW", "1 FOLLOWING")')}).optional().describe("Window frame specification")}),$Z=n({function:zZ.describe("Window function name"),field:i().optional().describe("Field to operate on (for aggregate window functions)"),alias:i().describe("Result column alias"),over:qZ.describe("Window specification (OVER clause)")}),NA=Ue(()=>Z([i(),n({field:i(),fields:m(NA).optional(),alias:i().optional()})])),UZ=n({query:i().describe("Search query text"),fields:m(i()).optional().describe("Fields to search in (if not specified, searches all text fields)"),fuzzy:c().optional().default(!1).describe("Enable fuzzy matching (tolerates typos)"),operator:h(["and","or"]).optional().default("or").describe("Logical operator between terms"),boost:C(i(),u()).optional().describe("Field-specific relevance boosting (field name -> boost factor)"),minScore:u().optional().describe("Minimum relevance score threshold"),language:i().optional().describe('Language for text analysis (e.g., "en", "zh", "es")'),highlight:c().optional().default(!1).describe("Enable search result highlighting")}),FZ=n({object:i().describe("Object name (e.g. account)"),fields:m(NA).optional().describe("Fields to retrieve"),where:cr.optional().describe("Filtering criteria (WHERE)"),search:UZ.optional().describe("Full-text search configuration ($search parameter)"),orderBy:m(OA).optional().describe("Sorting instructions (ORDER BY)"),limit:u().optional().describe("Max records to return (LIMIT)"),offset:u().optional().describe("Records to skip (OFFSET)"),top:u().optional().describe("Alias for limit (OData compatibility)"),cursor:C(i(),E()).optional().describe("Cursor for keyset pagination"),joins:m(LZ).optional().describe("Explicit Table Joins"),aggregations:m(MZ).optional().describe("Aggregation functions"),groupBy:m(i()).optional().describe("GROUP BY fields"),having:cr.optional().describe("HAVING clause for aggregation filtering"),windowFunctions:m($Z).optional().describe("Window functions with OVER clause"),distinct:c().optional().describe("SELECT DISTINCT flag")}),dm=FZ.extend({expand:Ue(()=>C(i(),dm)).optional().describe("Recursive relation loading (nested queries)")}),nv=n({code:i().describe("Error code (e.g. validation_error)"),message:i().describe("Readable error message"),category:i().optional().describe("Error category (e.g. validation, authorization)"),details:E().optional().describe("Additional error context (e.g. field validation errors)"),requestId:i().optional().describe("Request ID for tracking")}),pi=n({success:c().describe("Operation success status"),error:nv.optional().describe("Error details if success is false"),meta:n({timestamp:i(),duration:u().optional(),requestId:i().optional(),traceId:i().optional()}).optional().describe("Response metadata")}),dn=C(i(),E()).describe("Key-value map of record data");n({data:dn.describe("Record data to insert")});n({data:dn.describe("Partial record data to update")});n({records:m(dn).describe("Array of records to process"),allOrNone:c().default(!0).describe("If true, rollback entire transaction on any failure")});iv(dm,n({format:h(["csv","json","xlsx"]).default("csv")}));pi.extend({data:dn.describe("The requested or modified record")});pi.extend({data:m(dn).describe("Array of matching records"),pagination:n({total:u().optional().describe("Total matching records count"),limit:u().optional().describe("Page size"),offset:u().optional().describe("Page offset"),cursor:i().optional().describe("Cursor for next page"),nextCursor:i().optional().describe("Next cursor for pagination"),hasMore:c().describe("Are there more pages?")}).describe("Pagination info")});n({id:i().describe("Record ID")});var BZ=n({id:i().optional().describe("Record ID if processed"),success:c(),errors:m(nv).optional(),index:u().optional().describe("Index in original request"),data:E().optional().describe("Result data (e.g. created record)")});pi.extend({data:m(BZ).describe("Results for each item in the batch")});pi.extend({id:i().describe("ID of the deleted record")});n({ids:m(i())});var xo=h(["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS"]),LA=n({enabled:c().default(!0).describe("Enable CORS"),origins:Z([i(),m(i())]).default("*").describe("Allowed origins (* for all)"),methods:m(xo).optional().describe("Allowed HTTP methods"),credentials:c().default(!1).describe("Allow credentials (cookies, authorization headers)"),maxAge:u().int().optional().describe("Preflight cache duration in seconds")}),sv=n({enabled:c().default(!1).describe("Enable rate limiting"),windowMs:u().int().default(6e4).describe("Time window in milliseconds"),maxRequests:u().int().default(100).describe("Max requests per window")}),zA=n({path:i().describe("URL path to serve from"),directory:i().describe("Physical directory to serve"),cacheControl:i().optional().describe("Cache-Control header value")}),HZ=sv,OE=n({source:i().describe("Source field/path"),target:i().describe("Target field/path"),transform:i().optional().describe("Transformation function name")}),VZ=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Unique endpoint ID"),path:i().regex(/^\//).describe("URL Path (e.g. /api/v1/customers)"),method:xo.describe("HTTP Method"),summary:i().optional(),description:i().optional(),type:h(["flow","script","object_operation","proxy"]).describe("Implementation type"),target:i().describe("Target Flow ID, Script Name, or Proxy URL"),objectParams:n({object:i().optional(),operation:h(["find","get","create","update","delete"]).optional()}).optional().describe("For object_operation type"),inputMapping:m(OE).optional().describe("Map Request Body to Internal Params"),outputMapping:m(OE).optional().describe("Map Internal Result to Response Body"),authRequired:c().default(!0).describe("Require authentication"),rateLimit:HZ.optional().describe("Rate limiting policy"),cacheTtl:u().optional().describe("Response cache TTL in seconds")});Object.assign(VZ,{create:e=>e});var qA=n({graphql:c().default(!1),search:c().default(!1),websockets:c().default(!1),files:c().default(!0),analytics:c().default(!1).describe("Is the Analytics/BI engine enabled?"),ai:c().default(!1).describe("Is the AI engine enabled?"),workflow:c().default(!1).describe("Is the Workflow engine enabled?"),notifications:c().default(!1).describe("Is the Notification service enabled?"),i18n:c().default(!1).describe("Is the i18n service enabled?")}),$A=n({enabled:c(),status:h(["available","unavailable","degraded","stub"]).describe("available = fully operational, unavailable = not installed, degraded = partial, stub = placeholder that throws"),route:i().optional().describe("e.g. /api/v1/analytics"),provider:i().optional().describe('e.g. "objectql", "plugin-redis", "driver-memory"'),message:i().optional().describe('e.g. "Install plugin-workflow to enable"')}),UA=n({data:i().describe("e.g. /api/v1/data"),metadata:i().describe("e.g. /api/v1/meta"),ui:i().optional().describe("e.g. /api/v1/ui"),auth:i().optional().describe("e.g. /api/v1/auth"),automation:i().optional().describe("e.g. /api/v1/automation"),storage:i().optional().describe("e.g. /api/v1/storage"),analytics:i().optional().describe("e.g. /api/v1/analytics"),graphql:i().optional().describe("e.g. /graphql"),packages:i().optional().describe("e.g. /api/v1/packages"),workflow:i().optional().describe("e.g. /api/v1/workflow"),realtime:i().optional().describe("e.g. /api/v1/realtime"),notifications:i().optional().describe("e.g. /api/v1/notifications"),ai:i().optional().describe("e.g. /api/v1/ai"),i18n:i().optional().describe("e.g. /api/v1/i18n")});n({name:i(),version:i(),environment:h(["production","sandbox","development"]),routes:UA,features:qA,locale:n({default:i(),supported:m(i()),timezone:i()}),services:C(i(),$A).optional().describe("Per-service availability map keyed by CoreServiceName"),metadata:C(i(),E()).optional().describe("Custom metadata key-value pairs for extensibility")});var um=h(["websocket","sse","polling"]),GZ=h(["record.created","record.updated","record.deleted","field.changed"]),WZ=n({type:GZ.describe("Type of event to subscribe to"),object:i().optional().describe("Object name to subscribe to"),filters:E().optional().describe("Filter conditions")}),QZ=n({id:i().uuid().describe("Unique subscription identifier"),events:m(WZ).describe("Array of events to subscribe to"),transport:um.describe("Transport protocol to use"),channel:i().optional().describe("Optional channel name for grouping subscriptions")}),FA=h(["online","away","busy","offline"]),BA=n({userId:i().describe("User identifier"),status:FA.describe("Current presence status"),lastSeen:i().datetime().describe("ISO 8601 datetime of last activity"),metadata:C(i(),E()).optional().describe("Custom presence data (e.g., current page, custom status)")}),KZ=h(["created","updated","deleted"]);n({id:i().uuid().describe("Unique event identifier"),type:i().describe("Event type (e.g., record.created, record.updated)"),object:i().optional().describe("Object name the event relates to"),action:KZ.optional().describe("Action performed"),payload:C(i(),E()).describe("Event payload data"),timestamp:i().datetime().describe("ISO 8601 datetime when event occurred"),userId:i().optional().describe("User who triggered the event"),sessionId:i().optional().describe("Session identifier")});n({enabled:c().default(!0).describe("Enable realtime synchronization"),transport:um.default("websocket").describe("Transport protocol"),subscriptions:m(QZ).optional().describe("Default subscriptions")}).passthrough();var pm=i().min(2,{message:"System identifier must be at least 2 characters"}).regex(/^[a-z][a-z0-9_.]*$/,{message:'System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., "user_profile" or "order.created")'}).describe("System identifier (lowercase with underscores or dots)"),un=i().min(2,{message:"Identifier must be at least 2 characters"}).regex(/^[a-z][a-z0-9_]*$/,{message:'Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., "user_profile")'}).describe("Snake case identifier (lowercase with underscores only)"),ZZ=i().min(3,{message:"Event name must be at least 3 characters"}).regex(/^[a-z][a-z0-9_.]*$/,{message:'Event name must be lowercase with dots for namespacing (e.g., "user.created", "order.paid")'}).describe("Event name (lowercase with dot notation for namespacing)"),YZ=h(["subscribe","unsubscribe","event","ping","pong","ack","error","presence","cursor","edit"]),JZ=h(["eq","ne","gt","gte","lt","lte","in","nin","contains","startsWith","endsWith","exists","regex"]),XZ=n({field:i().describe('Field path to filter on (supports dot notation, e.g., "user.email")'),operator:JZ.describe("Comparison operator"),value:E().optional().describe('Value to compare against (not needed for "exists" operator)')}),np=n({conditions:m(XZ).optional().describe("Array of filter conditions"),and:Ue(()=>m(np)).optional().describe("AND logical combination of filters"),or:Ue(()=>m(np)).optional().describe("OR logical combination of filters"),not:Ue(()=>np).optional().describe("NOT logical negation of filter")}),eY=i().min(1).regex(/^[a-z*][a-z0-9_.*]*$/,{message:'Event pattern must be lowercase and may contain letters, numbers, underscores, dots, or wildcards (e.g., "record.*", "*.created", "user.login")'}).describe('Event pattern (supports wildcards like "record.*" or "*.created")'),tY=n({subscriptionId:i().uuid().describe("Unique subscription identifier"),events:m(eY).describe('Event patterns to subscribe to (supports wildcards, e.g., "record.*", "user.created")'),objects:m(i()).optional().describe('Object names to filter events by (e.g., ["account", "contact"])'),filters:np.optional().describe("Advanced filter conditions for event payloads"),channels:m(i()).optional().describe("Channel names for scoped subscriptions")}),iY=n({subscriptionId:i().uuid().describe("Subscription ID to unsubscribe from")}),HA=FA,aY=n({userId:i().describe("User identifier"),sessionId:i().uuid().describe("Unique session identifier"),status:HA.describe("Current presence status"),lastSeen:i().datetime().describe("ISO 8601 datetime of last activity"),currentLocation:i().optional().describe("Current page/route user is viewing"),device:h(["desktop","mobile","tablet","other"]).optional().describe("Device type"),customStatus:i().optional().describe("Custom user status message"),metadata:C(i(),E()).optional().describe("Additional custom presence data")});n({status:HA.optional().describe("Updated presence status"),currentLocation:i().optional().describe("Updated current location"),customStatus:i().optional().describe("Updated custom status message"),metadata:C(i(),E()).optional().describe("Updated metadata")});var oY=n({userId:i().describe("User identifier"),sessionId:i().uuid().describe("Session identifier"),documentId:i().describe("Document identifier being edited"),position:n({line:u().int().nonnegative().describe("Line number (0-indexed)"),column:u().int().nonnegative().describe("Column number (0-indexed)")}).optional().describe("Cursor position in document"),selection:n({start:n({line:u().int().nonnegative(),column:u().int().nonnegative()}),end:n({line:u().int().nonnegative(),column:u().int().nonnegative()})}).optional().describe("Selection range (if text is selected)"),color:i().optional().describe("Cursor color for visual representation"),userName:i().optional().describe("Display name of user"),lastUpdate:i().datetime().describe("ISO 8601 datetime of last cursor update")}),rY=h(["insert","delete","replace"]),nY=n({operationId:i().uuid().describe("Unique operation identifier"),documentId:i().describe("Document identifier"),userId:i().describe("User who performed the edit"),sessionId:i().uuid().describe("Session identifier"),type:rY.describe("Type of edit operation"),position:n({line:u().int().nonnegative().describe("Line number (0-indexed)"),column:u().int().nonnegative().describe("Column number (0-indexed)")}).describe("Starting position of the operation"),endPosition:n({line:u().int().nonnegative(),column:u().int().nonnegative()}).optional().describe("Ending position (for delete/replace operations)"),content:i().optional().describe("Content to insert/replace"),version:u().int().nonnegative().describe("Document version before this operation"),timestamp:i().datetime().describe("ISO 8601 datetime when operation was created"),baseOperationId:i().uuid().optional().describe("Previous operation ID this builds upon (for OT)")});n({documentId:i().describe("Document identifier"),version:u().int().nonnegative().describe("Current document version"),content:i().describe("Current document content"),lastModified:i().datetime().describe("ISO 8601 datetime of last modification"),activeSessions:m(i().uuid()).describe("Active editing session IDs"),checksum:i().optional().describe("Content checksum for integrity verification")});var $a=n({messageId:i().uuid().describe("Unique message identifier"),type:YZ.describe("Message type"),timestamp:i().datetime().describe("ISO 8601 datetime when message was sent")}),sY=$a.extend({type:z("subscribe"),subscription:tY.describe("Subscription configuration")}),lY=$a.extend({type:z("unsubscribe"),request:iY.describe("Unsubscribe request")}),cY=$a.extend({type:z("event"),subscriptionId:i().uuid().describe("Subscription ID this event belongs to"),eventName:ZZ.describe("Event name"),object:i().optional().describe("Object name the event relates to"),payload:E().describe("Event payload data"),userId:i().optional().describe("User who triggered the event")}),dY=$a.extend({type:z("presence"),presence:aY.describe("Presence state")}),uY=$a.extend({type:z("cursor"),cursor:oY.describe("Cursor position")}),pY=$a.extend({type:z("edit"),operation:nY.describe("Edit operation")}),mY=$a.extend({type:z("ack"),ackMessageId:i().uuid().describe("ID of the message being acknowledged"),success:c().describe("Whether the operation was successful"),error:i().optional().describe("Error message if operation failed")}),fY=$a.extend({type:z("error"),code:i().describe("Error code"),message:i().describe("Error message"),details:E().optional().describe("Additional error details")}),bY=$a.extend({type:z("ping")}),hY=$a.extend({type:z("pong"),pingMessageId:i().uuid().optional().describe("ID of ping message being responded to")});tt("type",[sY,lY,cY,dY,uY,pY,mY,fY,bY,hY]);n({url:i().url().describe("WebSocket server URL"),protocols:m(i()).optional().describe("WebSocket sub-protocols"),reconnect:c().optional().default(!0).describe("Enable automatic reconnection"),reconnectInterval:u().int().positive().optional().default(1e3).describe("Reconnection interval in milliseconds"),maxReconnectAttempts:u().int().positive().optional().default(5).describe("Maximum reconnection attempts"),pingInterval:u().int().positive().optional().default(3e4).describe("Ping interval in milliseconds"),timeout:u().int().positive().optional().default(5e3).describe("Message timeout in milliseconds"),headers:C(i(),i()).optional().describe("Custom headers for WebSocket handshake")});n({type:h(["subscribe","unsubscribe","data-change","presence-update","cursor-update","error"]).describe("Event type"),channel:i().describe('Channel identifier (e.g., "record.account.123", "user.456")'),payload:E().describe("Event payload data"),timestamp:u().describe("Unix timestamp in milliseconds")});n({userId:i().describe("User identifier"),userName:i().describe("User display name"),status:h(["online","away","offline"]).describe("User presence status"),lastSeen:u().describe("Unix timestamp of last activity in milliseconds"),metadata:C(i(),E()).optional().describe("Additional presence metadata (e.g., current page, custom status)")});n({userId:i().describe("User identifier"),recordId:i().describe("Record identifier being edited"),fieldName:i().describe("Field name being edited"),position:u().describe("Cursor position (character offset from start)"),selection:n({start:u().describe("Selection start position"),end:u().describe("Selection end position")}).optional().describe("Text selection range (if text is selected)")});n({enabled:c().default(!1).describe("Enable WebSocket server"),path:i().default("/ws").describe("WebSocket endpoint path"),heartbeatInterval:u().default(3e4).describe("Heartbeat interval in milliseconds"),reconnectAttempts:u().default(5).describe("Maximum reconnection attempts for clients"),presence:c().default(!1).describe("Enable presence tracking"),cursorSharing:c().default(!1).describe("Enable collaborative cursor sharing")});var gY=h(["system","api","auth","static","webhook","plugin"]);n({method:xo,path:i().describe("URL Path pattern"),category:gY.default("api"),handler:i().describe("Unique handler identifier"),summary:i().optional().describe("OpenAPI summary"),description:i().optional().describe("OpenAPI description"),public:c().default(!1).describe("Is publicly accessible"),permissions:m(i()).optional().describe("Required permissions"),timeout:u().int().optional().describe("Execution timeout in ms"),rateLimit:i().optional().describe("Rate limit policy name")});n({basePath:i().default("/api").describe("Global API prefix"),mounts:n({data:i().default("/data").describe("Data Protocol (CRUD)"),metadata:i().default("/meta").describe("Metadata Protocol (Schemas)"),auth:i().default("/auth").describe("Auth Protocol"),automation:i().default("/automation").describe("Automation Protocol"),storage:i().default("/storage").describe("Storage Protocol"),analytics:i().default("/analytics").describe("Analytics Protocol"),graphql:i().default("/graphql").describe("GraphQL Endpoint"),ui:i().default("/ui").describe("UI Metadata Protocol (Views, Layouts)"),workflow:i().default("/workflow").describe("Workflow Engine Protocol"),realtime:i().default("/realtime").describe("Realtime/WebSocket Protocol"),notifications:i().default("/notifications").describe("Notification Protocol"),ai:i().default("/ai").describe("AI Engine Protocol (NLQ, Chat, Suggest)"),i18n:i().default("/i18n").describe("Internationalization Protocol"),packages:i().default("/packages").describe("Package Management Protocol")}).default({data:"/data",metadata:"/meta",auth:"/auth",automation:"/automation",storage:"/storage",analytics:"/analytics",graphql:"/graphql",ui:"/ui",workflow:"/workflow",realtime:"/realtime",notifications:"/notifications",ai:"/ai",i18n:"/i18n",packages:"/packages"}),cors:LA.optional(),staticMounts:m(zA).optional()});n({$select:Z([i(),m(i())]).optional().describe("Fields to select"),$filter:i().optional().describe("Filter expression (OData filter syntax)"),$orderby:Z([i(),m(i())]).optional().describe("Sort order"),$top:u().int().min(0).optional().describe("Max results to return"),$skip:u().int().min(0).optional().describe("Results to skip"),$expand:Z([i(),m(i())]).optional().describe("Navigation properties to expand"),$count:c().optional().describe("Include total count"),$search:i().optional().describe("Search expression"),$format:h(["json","xml","atom"]).optional().describe("Response format"),$apply:i().optional().describe("Aggregation expression")});h(["eq","ne","lt","le","gt","ge","and","or","not","(",")","in","has"]);h(["contains","startswith","endswith","length","indexof","substring","tolower","toupper","trim","concat","year","month","day","hour","minute","second","date","time","now","maxdatetime","mindatetime","round","floor","ceiling","cast","isof","any","all"]);n({"@odata.context":i().url().optional().describe("Metadata context URL"),"@odata.count":u().int().optional().describe("Total results count"),"@odata.nextLink":i().url().optional().describe("Next page URL"),value:m(C(i(),E())).describe("Results array")});n({error:n({code:i().describe("Error code"),message:i().describe("Error message"),target:i().optional().describe("Error target"),details:m(n({code:i(),message:i(),target:i().optional()})).optional().describe("Error details"),innererror:C(i(),E()).optional().describe("Inner error details")})});var yY=n({namespace:i().describe("Service namespace"),entityTypes:m(n({name:i().describe("Entity type name"),key:m(i()).describe("Key fields"),properties:m(n({name:i(),type:i().describe("OData type (Edm.String, Edm.Int32, etc.)"),nullable:c().default(!0)})),navigationProperties:m(n({name:i(),type:i(),partner:i().optional()})).optional()})).describe("Entity types"),entitySets:m(n({name:i().describe("Entity set name"),entityType:i().describe("Entity type")})).describe("Entity sets")});n({enabled:c().default(!0).describe("Enable OData API"),path:i().default("/odata").describe("OData endpoint path"),metadata:yY.optional().describe("OData metadata configuration")}).passthrough();h(["ID","String","Int","Float","Boolean","DateTime","Date","Time","JSON","JSONObject","Upload","URL","Email","PhoneNumber","Currency","Decimal","BigInt","Long","UUID","Base64","Void"]);var vY=n({name:i().describe("GraphQL type name (PascalCase recommended)"),object:i().describe("Source ObjectQL object name"),description:i().optional().describe("Type description"),fields:n({include:m(i()).optional().describe("Fields to include"),exclude:m(i()).optional().describe("Fields to exclude (e.g., sensitive fields)"),mappings:C(i(),n({graphqlName:i().optional().describe("Custom GraphQL field name"),graphqlType:i().optional().describe("Override GraphQL type"),description:i().optional().describe("Field description"),deprecationReason:i().optional().describe("Why field is deprecated"),nullable:c().optional().describe("Override nullable")})).optional().describe("Field-level customizations")}).optional().describe("Field configuration"),interfaces:m(i()).optional().describe("GraphQL interface names"),isInterface:c().optional().default(!1).describe("Define as GraphQL interface"),directives:m(n({name:i().describe("Directive name"),args:C(i(),E()).optional().describe("Directive arguments")})).optional().describe("GraphQL directives")}),SY=n({name:i().describe("Query field name (camelCase recommended)"),object:i().describe("Source ObjectQL object name"),type:h(["get","list","search"]).describe("Query type"),description:i().optional().describe("Query description"),args:C(i(),n({type:i().describe('GraphQL type (e.g., "ID!", "String", "Int")'),description:i().optional().describe("Argument description"),defaultValue:E().optional().describe("Default value")})).optional().describe("Query arguments"),filtering:n({enabled:c().default(!0).describe("Allow filtering"),fields:m(i()).optional().describe("Filterable fields"),operators:m(h(["eq","ne","gt","gte","lt","lte","in","notIn","contains","startsWith","endsWith","isNull","isNotNull"])).optional().describe("Allowed filter operators")}).optional().describe("Filtering capabilities"),sorting:n({enabled:c().default(!0).describe("Allow sorting"),fields:m(i()).optional().describe("Sortable fields"),defaultSort:n({field:i(),direction:h(["ASC","DESC"])}).optional().describe("Default sort order")}).optional().describe("Sorting capabilities"),pagination:n({enabled:c().default(!0).describe("Enable pagination"),type:h(["offset","cursor","relay"]).default("offset").describe("Pagination style"),defaultLimit:u().int().min(1).default(20).describe("Default page size"),maxLimit:u().int().min(1).default(100).describe("Maximum page size"),cursors:n({field:i().default("id").describe("Field to use for cursor pagination")}).optional()}).optional().describe("Pagination configuration"),fields:n({required:m(i()).optional().describe("Required fields (always returned)"),selectable:m(i()).optional().describe("Selectable fields")}).optional().describe("Field selection configuration"),authRequired:c().default(!0).describe("Require authentication"),permissions:m(i()).optional().describe("Required permissions"),cache:n({enabled:c().default(!1).describe("Enable caching"),ttl:u().int().min(0).optional().describe("Cache TTL in seconds"),key:i().optional().describe("Cache key template")}).optional().describe("Query caching")}),xY=n({name:i().describe("Mutation field name (camelCase recommended)"),object:i().describe("Source ObjectQL object name"),type:h(["create","update","delete","upsert","custom"]).describe("Mutation type"),description:i().optional().describe("Mutation description"),input:n({typeName:i().optional().describe("Custom input type name"),fields:n({include:m(i()).optional().describe("Fields to include"),exclude:m(i()).optional().describe("Fields to exclude"),required:m(i()).optional().describe("Required input fields")}).optional().describe("Input field configuration"),validation:n({enabled:c().default(!0).describe("Enable input validation"),rules:m(i()).optional().describe("Custom validation rules")}).optional().describe("Input validation")}).optional().describe("Input configuration"),output:n({type:h(["object","payload","boolean","custom"]).default("object").describe("Output type"),includeEnvelope:c().optional().default(!1).describe("Wrap in success/error payload"),customType:i().optional().describe("Custom output type name")}).optional().describe("Output configuration"),transaction:n({enabled:c().default(!0).describe("Use database transaction"),isolationLevel:h(["read_uncommitted","read_committed","repeatable_read","serializable"]).optional().describe("Transaction isolation level")}).optional().describe("Transaction configuration"),authRequired:c().default(!0).describe("Require authentication"),permissions:m(i()).optional().describe("Required permissions"),hooks:n({before:m(i()).optional().describe("Pre-mutation hooks"),after:m(i()).optional().describe("Post-mutation hooks")}).optional().describe("Lifecycle hooks")}),wY=n({name:i().describe("Subscription field name (camelCase recommended)"),object:i().describe("Source ObjectQL object name"),events:m(h(["created","updated","deleted","custom"])).describe("Events to subscribe to"),description:i().optional().describe("Subscription description"),filter:n({enabled:c().default(!0).describe("Allow filtering subscriptions"),fields:m(i()).optional().describe("Filterable fields")}).optional().describe("Subscription filtering"),payload:n({includeEntity:c().default(!0).describe("Include entity in payload"),includePreviousValues:c().optional().default(!1).describe("Include previous field values"),includeMeta:c().optional().default(!0).describe("Include metadata (timestamp, user, etc.)")}).optional().describe("Payload configuration"),authRequired:c().default(!0).describe("Require authentication"),permissions:m(i()).optional().describe("Required permissions"),rateLimit:n({enabled:c().default(!0).describe("Enable rate limiting"),maxSubscriptionsPerUser:u().int().min(1).default(10).describe("Max concurrent subscriptions per user"),throttleMs:u().int().min(0).optional().describe("Throttle interval in milliseconds")}).optional().describe("Subscription rate limiting")}),kY=n({path:i().describe("Resolver path (Type.field)"),type:h(["datasource","computed","script","proxy"]).describe("Resolver implementation type"),implementation:n({datasource:i().optional().describe("Datasource ID"),query:i().optional().describe("Query/SQL to execute"),expression:i().optional().describe("Computation expression"),dependencies:m(i()).optional().describe("Dependent fields"),script:i().optional().describe("Script ID or inline code"),url:i().optional().describe("Proxy URL"),method:h(["GET","POST","PUT","DELETE"]).optional().describe("HTTP method")}).optional().describe("Implementation configuration"),cache:n({enabled:c().default(!1).describe("Enable resolver caching"),ttl:u().int().min(0).optional().describe("Cache TTL in seconds"),keyArgs:m(i()).optional().describe("Arguments to include in cache key")}).optional().describe("Resolver caching")}),CY=n({name:i().describe("DataLoader name"),source:i().describe("Source object or datasource"),batchFunction:n({type:h(["findByIds","query","script","custom"]).describe("Batch function type"),keyField:i().optional().describe('Field to batch on (e.g., "id")'),query:i().optional().describe("Query template"),script:i().optional().describe("Script ID"),maxBatchSize:u().int().min(1).optional().default(100).describe("Maximum batch size")}).describe("Batch function configuration"),cache:n({enabled:c().default(!0).describe("Enable per-request caching"),keyFn:i().optional().describe("Custom cache key function")}).optional().describe("DataLoader caching"),options:n({batch:c().default(!0).describe("Enable batching"),cache:c().default(!0).describe("Enable caching"),maxCacheSize:u().int().min(0).optional().describe("Max cache entries")}).optional().describe("DataLoader options")}),EY=h(["QUERY","MUTATION","SUBSCRIPTION","FIELD","FRAGMENT_DEFINITION","FRAGMENT_SPREAD","INLINE_FRAGMENT","VARIABLE_DEFINITION","SCHEMA","SCALAR","OBJECT","FIELD_DEFINITION","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION"]),RY=n({name:i().regex(/^[a-z][a-zA-Z0-9]*$/).describe("Directive name (camelCase)"),description:i().optional().describe("Directive description"),locations:m(EY).describe("Directive locations"),args:C(i(),n({type:i().describe("Argument type"),description:i().optional().describe("Argument description"),defaultValue:E().optional().describe("Default value")})).optional().describe("Directive arguments"),repeatable:c().optional().default(!1).describe("Can be applied multiple times"),implementation:n({type:h(["auth","validation","transform","cache","deprecation","custom"]).describe("Directive type"),handler:i().optional().describe("Handler function name or script")}).optional().describe("Directive implementation")}),TY=n({enabled:c().default(!0).describe("Enable query depth limiting"),maxDepth:u().int().min(1).default(10).describe("Maximum query depth"),ignoreFields:m(i()).optional().describe("Fields excluded from depth calculation"),onDepthExceeded:h(["reject","log","warn"]).default("reject").describe("Action when depth exceeded"),errorMessage:i().optional().describe("Custom error message for depth violations")}),AY=n({enabled:c().default(!0).describe("Enable query complexity limiting"),maxComplexity:u().int().min(1).default(1e3).describe("Maximum query complexity"),defaultFieldComplexity:u().int().min(0).default(1).describe("Default complexity per field"),fieldComplexity:C(i(),Z([u().int().min(0),n({base:u().int().min(0).describe("Base complexity"),multiplier:i().optional().describe('Argument multiplier (e.g., "limit")'),calculator:i().optional().describe("Custom calculator function")})])).optional().describe("Per-field complexity configuration"),listMultiplier:u().min(0).default(10).describe("Multiplier for list fields"),onComplexityExceeded:h(["reject","log","warn"]).default("reject").describe("Action when complexity exceeded"),errorMessage:i().optional().describe("Custom error message for complexity violations")}),_Y=n({enabled:c().default(!0).describe("Enable rate limiting"),strategy:h(["token_bucket","fixed_window","sliding_window","cost_based"]).default("token_bucket").describe("Rate limiting strategy"),global:n({maxRequests:u().int().min(1).default(1e3).describe("Maximum requests per window"),windowMs:u().int().min(1e3).default(6e4).describe("Time window in milliseconds")}).optional().describe("Global rate limits"),perUser:n({maxRequests:u().int().min(1).default(100).describe("Maximum requests per user per window"),windowMs:u().int().min(1e3).default(6e4).describe("Time window in milliseconds")}).optional().describe("Per-user rate limits"),costBased:n({enabled:c().default(!1).describe("Enable cost-based rate limiting"),maxCost:u().int().min(1).default(1e4).describe("Maximum cost per window"),windowMs:u().int().min(1e3).default(6e4).describe("Time window in milliseconds"),useComplexityAsCost:c().default(!0).describe("Use query complexity as cost")}).optional().describe("Cost-based rate limiting"),operations:C(i(),n({maxRequests:u().int().min(1).describe("Max requests for this operation"),windowMs:u().int().min(1e3).describe("Time window")})).optional().describe("Per-operation rate limits"),onLimitExceeded:h(["reject","queue","log"]).default("reject").describe("Action when rate limit exceeded"),errorMessage:i().optional().describe("Custom error message for rate limit violations"),includeHeaders:c().default(!0).describe("Include rate limit headers in response")}),PY=n({enabled:c().default(!1).describe("Enable persisted queries"),mode:h(["optional","required"]).default("optional").describe("Persisted query mode (optional: allow both, required: only persisted)"),store:n({type:h(["memory","redis","database","file"]).default("memory").describe("Query store type"),connection:i().optional().describe("Store connection string or path"),ttl:u().int().min(0).optional().describe("TTL in seconds for stored queries")}).optional().describe("Query store configuration"),apq:n({enabled:c().default(!0).describe("Enable Automatic Persisted Queries"),hashAlgorithm:h(["sha256","sha1","md5"]).default("sha256").describe("Hash algorithm for query IDs"),cache:n({ttl:u().int().min(0).default(3600).describe("Cache TTL in seconds"),maxSize:u().int().min(1).optional().describe("Maximum number of cached queries")}).optional().describe("APQ cache configuration")}).optional().describe("Automatic Persisted Queries configuration"),allowlist:n({enabled:c().default(!1).describe("Enable query allow list (reject queries not in list)"),queries:m(n({id:i().describe("Query ID or hash"),operation:i().optional().describe("Operation name"),query:i().optional().describe("Query string")})).optional().describe("Allowed queries"),source:i().optional().describe("External allow list source (file path or URL)")}).optional().describe("Query allow list configuration"),security:n({maxQuerySize:u().int().min(1).optional().describe("Maximum query string size in bytes"),rejectIntrospection:c().default(!1).describe("Reject introspection queries")}).optional().describe("Security configuration")}),IY=n({enabled:c().default(!0).describe("Enable GraphQL API"),path:i().default("/graphql").describe("GraphQL endpoint path"),playground:n({enabled:c().default(!0).describe("Enable GraphQL Playground"),path:i().default("/playground").describe("Playground path")}).optional().describe("GraphQL Playground configuration"),schema:n({autoGenerateTypes:c().default(!0).describe("Auto-generate types from Objects"),types:m(vY).optional().describe("Type configurations"),queries:m(SY).optional().describe("Query configurations"),mutations:m(xY).optional().describe("Mutation configurations"),subscriptions:m(wY).optional().describe("Subscription configurations"),resolvers:m(kY).optional().describe("Custom resolver configurations"),directives:m(RY).optional().describe("Custom directive configurations")}).optional().describe("Schema generation configuration"),dataLoaders:m(CY).optional().describe("DataLoader configurations"),security:n({depthLimit:TY.optional().describe("Query depth limiting"),complexity:AY.optional().describe("Query complexity calculation"),rateLimit:_Y.optional().describe("Rate limiting"),persistedQueries:PY.optional().describe("Persisted queries")}).optional().describe("Security configuration")});Object.assign(IY,{create:e=>e});var VA=h(["create","update","upsert","delete"]),GA=n({id:i().optional().describe("Record ID (required for update/delete)"),data:dn.optional().describe("Record data (required for create/update/upsert)"),externalId:i().optional().describe("External ID for upsert matching")}),Fs=n({atomic:c().optional().default(!0).describe("If true, rollback entire batch on any failure (transaction mode)"),returnRecords:c().optional().default(!1).describe("If true, return full record data in response"),continueOnError:c().optional().default(!1).describe("If true (and atomic=false), continue processing remaining records after errors"),validateOnly:c().optional().default(!1).describe("If true, validate records without persisting changes (dry-run mode)")}),DY=n({operation:VA.describe("Type of batch operation"),records:m(GA).min(1).max(200).describe("Array of records to process (max 200 per batch)"),options:Fs.optional().describe("Batch operation options")});n({records:m(GA).min(1).max(200).describe("Array of records to update (max 200 per batch)"),options:Fs.optional().describe("Update options")});var jY=n({id:i().optional().describe("Record ID if operation succeeded"),success:c().describe("Whether this record was processed successfully"),errors:m(nv).optional().describe("Array of errors if operation failed"),data:dn.optional().describe("Full record data (if returnRecords=true)"),index:u().optional().describe("Index of the record in the request array")});pi.extend({operation:VA.optional().describe("Operation type that was performed"),total:u().describe("Total number of records in the batch"),succeeded:u().describe("Number of records that succeeded"),failed:u().describe("Number of records that failed"),results:m(jY).describe("Detailed results for each record")});n({ids:m(i()).min(1).max(200).describe("Array of record IDs to delete (max 200)"),options:Fs.optional().describe("Delete options")});n({enabled:c().default(!0).describe("Enable batch operations"),maxRecordsPerBatch:u().int().min(1).max(1e3).default(200).describe("Maximum records per batch"),defaultOptions:Fs.optional().describe("Default batch options")}).passthrough();var MY=h(["public","private","no-cache","no-store","must-revalidate","max-age"]),WA=n({directives:m(MY).describe("Cache control directives"),maxAge:u().optional().describe("Maximum cache age in seconds"),staleWhileRevalidate:u().optional().describe("Allow serving stale content while revalidating (seconds)"),staleIfError:u().optional().describe("Allow serving stale content on error (seconds)")}),OY=n({value:i().describe("ETag value (hash or version identifier)"),weak:c().optional().default(!1).describe("Whether this is a weak ETag")}),NY=n({ifNoneMatch:i().optional().describe("ETag value for conditional request (If-None-Match header)"),ifModifiedSince:i().datetime().optional().describe("Timestamp for conditional request (If-Modified-Since header)"),cacheControl:WA.optional().describe("Client cache control preferences")});n({data:E().optional().describe("Metadata payload (omitted for 304 Not Modified)"),etag:OY.optional().describe("ETag for this resource version"),lastModified:i().datetime().optional().describe("Last modification timestamp"),cacheControl:WA.optional().describe("Cache control directives"),notModified:c().optional().default(!1).describe("True if resource has not been modified (304 response)"),version:i().optional().describe("Metadata version identifier")});var LY=h(["all","object","field","permission","layout","custom"]);n({target:LY.describe("What to invalidate"),identifiers:m(i()).optional().describe("Specific resources to invalidate (e.g., object names)"),cascade:c().optional().default(!1).describe("If true, invalidate dependent resources"),pattern:i().optional().describe("Pattern for custom invalidation (supports wildcards)")});n({success:c().describe("Whether invalidation succeeded"),invalidated:u().describe("Number of cache entries invalidated"),targets:m(i()).optional().describe("List of invalidated resources")});var zY=h(["validation","authentication","authorization","not_found","conflict","rate_limit","server","external","maintenance"]),QA=h(["validation_error","invalid_field","missing_required_field","invalid_format","value_too_long","value_too_short","value_out_of_range","invalid_reference","duplicate_value","invalid_query","invalid_filter","invalid_sort","max_records_exceeded","unauthenticated","invalid_credentials","expired_token","invalid_token","session_expired","mfa_required","email_not_verified","permission_denied","insufficient_privileges","field_not_accessible","record_not_accessible","license_required","ip_restricted","time_restricted","resource_not_found","object_not_found","record_not_found","field_not_found","endpoint_not_found","resource_conflict","concurrent_modification","delete_restricted","duplicate_record","lock_conflict","rate_limit_exceeded","quota_exceeded","concurrent_limit_exceeded","internal_error","database_error","timeout","service_unavailable","not_implemented","external_service_error","integration_error","webhook_delivery_failed","batch_partial_failure","batch_complete_failure","transaction_failed"]),qY=h(["no_retry","retry_immediate","retry_backoff","retry_after"]),$Y=n({field:i().describe("Field path (supports dot notation)"),code:QA.describe("Error code for this field"),message:i().describe("Human-readable error message"),value:E().optional().describe("The invalid value that was provided"),constraint:E().optional().describe("The constraint that was violated (e.g., max length)")}),UY=n({code:QA.describe("Machine-readable error code"),message:i().describe("Human-readable error message"),category:zY.optional().describe("Error category"),httpStatus:u().optional().describe("HTTP status code"),retryable:c().default(!1).describe("Whether the request can be retried"),retryStrategy:qY.optional().describe("Recommended retry strategy"),retryAfter:u().optional().describe("Seconds to wait before retrying"),details:E().optional().describe("Additional error context"),fieldErrors:m($Y).optional().describe("Field-specific validation errors"),timestamp:i().datetime().optional().describe("When the error occurred"),requestId:i().optional().describe("Request ID for tracking"),traceId:i().optional().describe("Distributed trace ID"),documentation:i().url().optional().describe("URL to error documentation"),helpText:i().optional().describe("Suggested actions to resolve the error")});n({success:z(!1).describe("Always false for error responses"),error:UY.describe("Error details"),meta:n({timestamp:i().datetime().optional(),requestId:i().optional(),traceId:i().optional()}).optional().describe("Response metadata")});var FY=h(["GET","POST","PUT","PATCH","DELETE"]),NE=n({url:i().describe("API endpoint URL"),method:FY.optional().default("GET").describe("HTTP method"),headers:C(i(),i()).optional().describe("Custom HTTP headers"),params:C(i(),E()).optional().describe("Query parameters"),body:E().optional().describe("Request body for POST/PUT/PATCH")}),KA=tt("provider",[n({provider:z("object"),object:i().describe("Target object name")}),n({provider:z("api"),read:NE.optional().describe("Configuration for fetching data"),write:NE.optional().describe("Configuration for submitting data (for forms/editable tables)")}),n({provider:z("value"),items:m(E()).describe("Static data array")})]),BY=n({field:i().describe("Field name (snake_case)"),label:i().optional().describe("Display label override"),width:u().positive().optional().describe("Column width in pixels"),align:h(["left","center","right"]).optional().describe("Text alignment"),hidden:c().optional().describe("Hide column by default"),sortable:c().optional().describe("Allow sorting by this column"),resizable:c().optional().describe("Allow resizing this column"),wrap:c().optional().describe("Allow text wrapping"),type:i().optional().describe('Renderer type override (e.g., "currency", "date")'),link:c().optional().describe("Functions as the primary navigation link (triggers View navigation)"),action:i().optional().describe("Registered Action ID to execute when clicked")}),HY=n({type:h(["none","single","multiple"]).default("none").describe("Selection mode")}),VY=n({pageSize:u().int().positive().default(25).describe("Number of records per page"),pageSizeOptions:m(u().int().positive()).optional().describe("Available page size options")}),GY=n({groupByField:i().describe("Field to group columns by (usually status/select)"),summarizeField:i().optional().describe("Field to sum at top of column (e.g. amount)"),columns:m(i()).describe("Fields to show on cards")}),WY=n({startDateField:i(),endDateField:i().optional(),titleField:i(),colorField:i().optional()}),QY=n({startDateField:i(),endDateField:i(),titleField:i(),progressField:i().optional(),dependenciesField:i().optional()}),KY=h(["page","drawer","modal","split","popover","new_window","none"]),ZY=n({mode:KY.default("page"),view:i().optional().describe('Name of the form view to use for details (e.g. "summary_view", "edit_form")'),preventNavigation:c().default(!1).describe("Disable standard navigation entirely"),openNewTab:c().default(!1).describe("Force open in new tab (applies to page mode)"),width:Z([i(),u()]).optional().describe('Width of the drawer/modal (e.g. "600px", "50%")')}),LE=n({name:un.optional().describe("Internal view name (lowercase snake_case)"),label:i().optional(),type:h(["grid","kanban","gallery","calendar","timeline","gantt","map"]).default("grid"),data:KA.optional().describe('Data source configuration (defaults to "object" provider)'),columns:Z([m(i()),m(BY)]).describe("Fields to display as columns"),filter:m(E()).optional().describe("Filter criteria (JSON Rules)"),sort:Z([i(),m(n({field:i(),order:h(["asc","desc"])}))]).optional(),searchableFields:m(i()).optional().describe("Fields enabled for search"),filterableFields:m(i()).optional().describe("Fields enabled for end-user filtering in the top bar"),resizable:c().optional().describe("Enable column resizing"),striped:c().optional().describe("Striped row styling"),bordered:c().optional().describe("Show borders"),selection:HY.optional().describe("Row selection configuration"),navigation:ZY.optional().describe("Configuration for item click navigation (page, drawer, modal, etc.)"),pagination:VY.optional().describe("Pagination configuration"),kanban:GY.optional(),calendar:WY.optional(),gantt:QY.optional(),rowActions:m(i()).optional().describe("Actions available for individual row items"),bulkActions:m(i()).optional().describe("Actions available when multiple rows are selected"),virtualScroll:c().optional().describe("Enable virtual scrolling for large datasets"),conditionalFormatting:m(n({condition:i().describe("Condition expression to evaluate"),style:C(i(),i()).describe("CSS styles to apply when condition is true")})).optional().describe("Conditional formatting rules for list rows"),inlineEdit:c().optional().describe("Allow inline editing of records directly in the list view"),exportOptions:m(h(["csv","xlsx","pdf","json"])).optional().describe("Available export format options"),emptyState:n({title:i().optional(),message:i().optional(),icon:i().optional()}).optional().describe("Empty state configuration when no records found")}),YY=n({field:i().describe("Field name (snake_case)"),label:i().optional().describe("Display label override"),placeholder:i().optional().describe("Placeholder text"),helpText:i().optional().describe("Help/hint text"),readonly:c().optional().describe("Read-only override"),required:c().optional().describe("Required override"),hidden:c().optional().describe("Hidden override"),colSpan:u().int().min(1).max(4).optional().describe("Column span in grid layout (1-4)"),widget:i().optional().describe("Custom widget/component name"),dependsOn:i().optional().describe("Parent field name for cascading"),visibleOn:i().optional().describe("Visibility condition expression")}),zE=n({label:i().optional(),collapsible:c().default(!1),collapsed:c().default(!1),columns:h(["1","2","3","4"]).default("2").transform(e=>parseInt(e)),fields:m(Z([i(),YY]))}),qE=n({type:h(["simple","tabbed","wizard","split","drawer","modal"]).default("simple"),data:KA.optional().describe('Data source configuration (defaults to "object" provider)'),sections:m(zE).optional(),groups:m(zE).optional()}),Bs=n({list:LE.optional(),form:qE.optional(),listViews:C(i(),LE).optional().describe("Additional named list views"),formViews:C(i(),qE).optional().describe("Additional named form views")}),JY=h(["select","insert","update","delete","all"]),XY=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Policy unique identifier (snake_case)"),label:i().optional().describe("Human-readable policy label"),description:i().optional().describe("Policy description and business justification"),object:i().describe("Target object name"),operation:JY.describe("Database operation this policy applies to"),using:i().optional().describe("Filter condition for SELECT/UPDATE/DELETE (PostgreSQL SQL WHERE clause syntax with parameterized context variables). Optional for INSERT-only policies."),check:i().optional().describe("Validation condition for INSERT/UPDATE (defaults to USING clause if not specified - enforced at application level)"),roles:m(i()).optional().describe("Roles this policy applies to (omit for all roles)"),enabled:c().default(!0).describe("Whether this policy is active"),priority:u().int().default(0).describe("Policy evaluation priority (higher = evaluated first)"),tags:m(i()).optional().describe("Policy categorization tags")}).superRefine((e,t)=>{!e.using&&!e.check&&t.addIssue({code:ra.custom,message:'At least one of "using" or "check" must be specified. For SELECT/UPDATE/DELETE operations, provide "using". For INSERT operations, provide "check".'})});n({enabled:c().default(!0).describe("Enable RLS enforcement globally"),defaultPolicy:h(["deny","allow"]).default("deny").describe("Default action when no policies match"),allowSuperuserBypass:c().default(!0).describe("Allow superusers to bypass RLS"),bypassRoles:m(i()).optional().describe("Roles that bypass RLS (see all data)"),logEvaluations:c().default(!1).describe("Log RLS policy evaluations for debugging"),cacheResults:c().default(!0).describe("Cache RLS evaluation results"),cacheTtlSeconds:u().int().positive().default(300).describe("Cache TTL in seconds"),prefetchUserContext:c().default(!0).describe("Pre-fetch user context for performance")});n({id:i().describe("User ID"),email:i().email().optional().describe("User email"),tenantId:i().optional().describe("Tenant/Organization ID"),role:Z([i(),m(i())]).optional().describe("User role(s)"),department:i().optional().describe("User department"),attributes:C(i(),E()).optional().describe("Additional custom user attributes")});n({policyName:i().describe("Policy name"),granted:c().describe("Whether access was granted"),durationMs:u().optional().describe("Evaluation duration in milliseconds"),error:i().optional().describe("Error message if evaluation failed"),usingResult:c().optional().describe("USING clause evaluation result"),checkResult:c().optional().describe("CHECK clause evaluation result")});var lv=n({allowCreate:c().default(!1).describe("Create permission"),allowRead:c().default(!1).describe("Read permission"),allowEdit:c().default(!1).describe("Edit permission"),allowDelete:c().default(!1).describe("Delete permission"),allowTransfer:c().default(!1).describe("Change record ownership"),allowRestore:c().default(!1).describe("Restore from trash (Undelete)"),allowPurge:c().default(!1).describe("Permanently delete (Hard Delete/GDPR)"),viewAllRecords:c().default(!1).describe("View All Data (Bypass Sharing)"),modifyAllRecords:c().default(!1).describe("Modify All Data (Bypass Sharing)")}),ZA=n({readable:c().default(!0).describe("Field read access"),editable:c().default(!1).describe("Field edit access")});n({name:un.describe("Permission set unique name (lowercase snake_case)"),label:i().optional().describe("Display label"),isProfile:c().default(!1).describe("Whether this is a user profile"),objects:C(i(),lv).describe("Entity permissions"),fields:C(i(),ZA).optional().describe("Field level security"),systemPermissions:m(i()).optional().describe("System level capabilities"),rowLevelSecurity:m(XY).optional().describe("Row-level security policies (see rls.zod.ts for full spec)"),contextVariables:C(i(),E()).optional().describe("Context variables for RLS evaluation")});var eJ=h(["on_create","on_update","on_create_or_update","on_delete","schedule"]),tJ=n({name:i().describe("Action name"),type:z("field_update"),field:i().describe("Field to update"),value:E().describe("Value or Formula to set")}),iJ=n({name:i().describe("Action name"),type:z("email_alert"),template:i().describe("Email template ID/DevName"),recipients:m(i()).describe("List of recipient emails or user IDs")}),aJ=n({name:i().describe("Action name"),type:z("connector_action"),connectorId:i().describe("Target Connector ID (e.g. slack, twilio)"),actionId:i().describe("Target Action ID (e.g. send_message)"),input:C(i(),E()).describe("Input parameters matching the action schema")}),oJ=n({name:i().describe("Action name"),type:z("http_call"),url:i().describe("Target URL"),method:h(["GET","POST","PUT","DELETE","PATCH"]).default("POST").describe("HTTP Method"),headers:C(i(),i()).optional().describe("HTTP Headers"),body:i().optional().describe("Request body (JSON or text)")}),rJ=n({name:i().describe("Action name"),type:z("task_creation"),taskObject:i().describe('Task object name (e.g., "task", "project_task")'),subject:i().describe("Task subject/title"),description:i().optional().describe("Task description"),assignedTo:i().optional().describe("User ID or field reference for assignee"),dueDate:i().optional().describe("Due date (ISO string or formula)"),priority:i().optional().describe("Task priority"),relatedTo:i().optional().describe("Related record ID or field reference"),additionalFields:C(i(),E()).optional().describe("Additional custom fields")}),nJ=n({name:i().describe("Action name"),type:z("push_notification"),title:i().describe("Notification title"),body:i().describe("Notification body text"),recipients:m(i()).describe("User IDs or device tokens"),data:C(i(),E()).optional().describe("Additional data payload"),badge:u().optional().describe("Badge count (iOS)"),sound:i().optional().describe("Notification sound"),clickAction:i().optional().describe("Action/URL when notification is clicked")}),sJ=n({name:i().describe("Action name"),type:z("custom_script"),language:h(["javascript","typescript","python"]).default("javascript").describe("Script language"),code:i().describe("Script code to execute"),timeout:u().default(3e4).describe("Execution timeout in milliseconds"),context:C(i(),E()).optional().describe("Additional context variables")}),YA=tt("type",[tJ,iJ,oJ,aJ,rJ,nJ,sJ]),lJ=n({id:i().optional().describe("Unique identifier"),timeLength:u().int().describe("Duration amount (e.g. 1, 30)"),timeUnit:h(["minutes","hours","days"]).describe("Unit of time"),offsetDirection:h(["before","after"]).describe("Before or After the reference date"),offsetFrom:h(["trigger_date","date_field"]).describe("Basis for calculation"),dateField:i().optional().describe("Date field to calculate from (required if offsetFrom is date_field)"),actions:m(YA).describe("Actions to execute at the scheduled time")}),cJ=n({name:un.describe("Unique workflow name (lowercase snake_case)"),objectName:i().describe("Target Object"),triggerType:eJ.describe("When to evaluate"),criteria:i().optional().describe("Formula condition. If TRUE, actions execute."),actions:m(YA).optional().describe("Immediate actions"),timeTriggers:m(lJ).optional().describe("Scheduled actions relative to trigger or date field"),active:c().default(!0).describe("Whether this workflow is active"),reevaluateOnChange:c().default(!1).describe("Re-evaluate rule if field updates change the record validity")}),JA=n({objects:C(i(),n({label:i().describe("Translated singular label"),pluralLabel:i().optional().describe("Translated plural label"),fields:C(i(),n({label:i().optional().describe("Translated field label"),help:i().optional().describe("Translated help text"),options:C(i(),i()).optional().describe("Option value to translated label map")})).optional().describe("Field-level translations")})).optional().describe("Object translations keyed by object name"),apps:C(i(),n({label:i().describe("Translated app label"),description:i().optional().describe("Translated app description")})).optional().describe("App translations keyed by app name"),messages:C(i(),i()).optional().describe("UI message translations keyed by message ID")}).describe("Translation data for objects, apps, and UI messages"),dJ=i().describe("BCP-47 Language Tag (e.g. en-US, zh-CN)");C(dJ,JA).describe("Map of locale codes to translation data");var uJ=h(["full","partial","experimental","deprecated"]).describe("Level of protocol conformance"),XA=n({major:u().int().min(0),minor:u().int().min(0),patch:u().int().min(0)}).describe("Semantic version of the protocol"),pJ=n({id:i().regex(/^([a-z][a-z0-9]*\.)+protocol\.[a-z][a-z0-9._]*\.v\d+$/).describe("Unique protocol identifier (e.g., com.objectstack.protocol.storage.v1)"),label:i(),version:XA,specification:i().optional().describe("URL or path to protocol specification"),description:i().optional()}),mJ=n({name:i().describe("Feature identifier within the protocol"),enabled:c().default(!0),description:i().optional(),sinceVersion:i().optional().describe("Version when this feature was added"),deprecatedSince:i().optional().describe("Version when deprecated")}),fJ=n({protocol:pJ,conformance:uJ.default("full"),implementedFeatures:m(i()).optional().describe("List of implemented feature names"),features:m(mJ).optional(),metadata:C(i(),E()).optional(),certified:c().default(!1).describe("Has passed official conformance tests"),certificationDate:i().datetime().optional()}),bJ=n({id:i().regex(/^([a-z][a-z0-9]*\.)+interface\.[a-z][a-z0-9._]+$/).describe("Unique interface identifier"),name:i(),description:i().optional(),version:XA,methods:m(n({name:i().describe("Method name"),description:i().optional(),parameters:m(n({name:i(),type:i().describe("Type notation (e.g., string, number, User)"),required:c().default(!0),description:i().optional()})).optional(),returnType:i().optional().describe("Return value type"),async:c().default(!1).describe("Whether method returns a Promise")})),events:m(n({name:i().describe("Event name"),description:i().optional(),payload:i().optional().describe("Event payload type")})).optional(),stability:h(["stable","beta","alpha","experimental"]).default("stable")}),hJ=n({pluginId:i().regex(/^([a-z][a-z0-9]*\.)+[a-z][a-z0-9-]+$/).describe("Required plugin identifier"),version:i().describe("Semantic version constraint"),optional:c().default(!1),reason:i().optional(),requiredCapabilities:m(i()).optional().describe("Protocol IDs the dependency must support")}),gJ=n({id:i().regex(/^([a-z][a-z0-9]*\.)+extension\.[a-z][a-z0-9._]+$/).describe("Unique extension point identifier"),name:i(),description:i().optional(),type:h(["action","hook","widget","provider","transformer","validator","decorator"]),contract:n({input:i().optional().describe("Input type/schema"),output:i().optional().describe("Output type/schema"),signature:i().optional().describe("Function signature if applicable")}).optional(),cardinality:h(["single","multiple"]).default("multiple").describe("Whether multiple extensions can register to this point")}),yJ=n({implements:m(fJ).optional().describe("List of protocols this plugin conforms to"),provides:m(bJ).optional().describe("Services/APIs this plugin offers to others"),requires:m(hJ).optional().describe("Required plugins and their capabilities"),extensionPoints:m(gJ).optional().describe("Points where other plugins can extend this plugin"),extensions:m(n({targetPluginId:i().describe("Plugin ID being extended"),extensionPointId:i().describe("Extension point identifier"),implementation:i().describe("Path to implementation module"),priority:u().int().default(100).describe("Registration priority (lower = higher priority)")})).optional().describe("Extensions contributed to other plugins")}),vJ=h(["eager","lazy","parallel","deferred","on-demand"]).describe("Plugin loading strategy"),SJ=n({enabled:c().default(!1),priority:u().int().min(0).default(100),resources:m(h(["metadata","dependencies","assets","code","services"])).optional(),conditions:n({routes:m(i()).optional(),roles:m(i()).optional(),deviceType:m(h(["desktop","mobile","tablet"])).optional(),minNetworkSpeed:h(["slow-2g","2g","3g","4g"]).optional()}).optional()}).describe("Plugin preloading configuration"),xJ=n({enabled:c().default(!0),strategy:h(["route","feature","size","custom"]).default("feature"),chunkNaming:h(["hashed","named","sequential"]).default("hashed"),maxChunkSize:u().int().min(10).optional().describe("Max chunk size in KB"),sharedDependencies:n({enabled:c().default(!0),minChunks:u().int().min(1).default(2)}).optional()}).describe("Plugin code splitting configuration"),wJ=n({enabled:c().default(!0),mode:h(["async","sync","eager","lazy"]).default("async"),prefetch:c().default(!1).describe("Prefetch module in idle time"),preload:c().default(!1).describe("Preload module in parallel with parent"),webpackChunkName:i().optional().describe("Custom chunk name for webpack"),timeout:u().int().min(100).default(3e4).describe("Dynamic import timeout (ms)"),retry:n({enabled:c().default(!0),maxAttempts:u().int().min(1).max(10).default(3),backoffMs:u().int().min(0).default(1e3).describe("Exponential backoff base delay")}).optional()}).describe("Plugin dynamic import configuration"),kJ=n({mode:h(["sync","async","parallel","sequential"]).default("async"),timeout:u().int().min(100).default(3e4),priority:u().int().min(0).default(100),critical:c().default(!1).describe("If true, kernel bootstrap fails if plugin fails"),retry:n({enabled:c().default(!1),maxAttempts:u().int().min(1).max(5).default(3),backoffMs:u().int().min(0).default(1e3)}).optional(),healthCheckInterval:u().int().min(0).optional().describe("Health check interval in ms (0 = disabled)")}).describe("Plugin initialization configuration"),CJ=n({strategy:h(["strict","compatible","latest","pinned"]).default("compatible"),peerDependencies:n({resolve:c().default(!0),onMissing:h(["error","warn","ignore"]).default("warn"),onMismatch:h(["error","warn","ignore"]).default("warn")}).optional(),optionalDependencies:n({load:c().default(!0),onFailure:h(["warn","ignore"]).default("warn")}).optional(),conflictResolution:h(["fail","latest","oldest","manual"]).default("latest"),circularDependencies:h(["error","warn","allow"]).default("warn")}).describe("Plugin dependency resolution configuration"),EJ=n({enabled:c().default(!1),environment:h(["development","staging","production"]).default("development").describe("Target environment controlling safety level"),strategy:h(["full","partial","state-preserve"]).default("full"),watchPatterns:m(i()).optional().describe("Glob patterns for files to watch"),ignorePatterns:m(i()).optional().describe("Glob patterns for files to ignore"),debounceMs:u().int().min(0).default(300),preserveState:c().default(!1),stateSerialization:n({enabled:c().default(!1),handler:i().optional()}).optional(),hooks:n({beforeReload:i().optional().describe("Function to call before reload"),afterReload:i().optional().describe("Function to call after reload"),onError:i().optional().describe("Function to call on reload error")}).optional(),productionSafety:n({healthValidation:c().default(!0).describe("Run health checks after reload before accepting traffic"),rollbackOnFailure:c().default(!0).describe("Auto-rollback if reloaded plugin fails health check"),healthTimeout:u().int().min(1e3).default(3e4).describe("Health check timeout after reload in ms"),drainConnections:c().default(!0).describe("Gracefully drain active requests before reloading"),drainTimeout:u().int().min(0).default(15e3).describe("Max wait time for connection draining in ms"),maxConcurrentReloads:u().int().min(1).default(1).describe("Limit concurrent reloads to prevent system instability"),minReloadInterval:u().int().min(1e3).default(5e3).describe("Cooldown period between reloads of the same plugin")}).optional()}).describe("Plugin hot reload configuration"),RJ=n({enabled:c().default(!0),storage:h(["memory","disk","indexeddb","hybrid"]).default("memory"),keyStrategy:h(["version","hash","timestamp"]).default("version"),ttl:u().int().min(0).optional().describe("Time to live in seconds (0 = infinite)"),maxSize:u().int().min(1).optional().describe("Max cache size in MB"),invalidateOn:m(h(["version-change","dependency-change","manual","error"])).optional(),compression:n({enabled:c().default(!1),algorithm:h(["gzip","brotli","deflate"]).default("gzip")}).optional()}).describe("Plugin caching configuration"),TJ=n({enabled:c().default(!1),scope:h(["automation-only","untrusted-only","all-plugins"]).default("automation-only").describe("Which plugins are subject to isolation"),isolationLevel:h(["none","process","vm","iframe","web-worker"]).default("none"),allowedCapabilities:m(i()).optional().describe("List of allowed capability IDs"),resourceQuotas:n({maxMemoryMB:u().int().min(1).optional(),maxCpuTimeMs:u().int().min(100).optional(),maxFileDescriptors:u().int().min(1).optional(),maxNetworkKBps:u().int().min(1).optional()}).optional(),permissions:n({allowedAPIs:m(i()).optional(),allowedPaths:m(i()).optional(),allowedEndpoints:m(i()).optional(),allowedEnvVars:m(i()).optional()}).optional(),ipc:n({enabled:c().default(!0).describe("Allow sandboxed plugins to communicate via IPC"),transport:h(["message-port","unix-socket","tcp","memory"]).default("message-port").describe("IPC transport for cross-boundary communication"),maxMessageSize:u().int().min(1024).default(1048576).describe("Maximum IPC message size in bytes (default 1MB)"),timeout:u().int().min(100).default(3e4).describe("IPC message response timeout in ms"),allowedServices:m(i()).optional().describe("Service names the sandboxed plugin may invoke via IPC")}).optional()}).describe("Plugin sandboxing configuration"),AJ=n({enabled:c().default(!1),metrics:m(h(["load-time","init-time","memory-usage","cpu-usage","api-calls","error-rate","cache-hit-rate"])).optional(),samplingRate:u().min(0).max(1).default(1),reportingInterval:u().int().min(1).default(60),budgets:n({maxLoadTimeMs:u().int().min(0).optional(),maxInitTimeMs:u().int().min(0).optional(),maxMemoryMB:u().int().min(0).optional()}).optional(),onBudgetViolation:h(["warn","error","ignore"]).default("warn")}).describe("Plugin performance monitoring configuration"),_J=n({strategy:vJ.default("lazy"),preload:SJ.optional(),codeSplitting:xJ.optional(),dynamicImport:wJ.optional(),initialization:kJ.optional(),dependencyResolution:CJ.optional(),hotReload:EJ.optional(),caching:RJ.optional(),sandboxing:TJ.optional(),monitoring:AJ.optional()}).describe("Complete plugin loading configuration");n({type:h(["load-started","load-completed","load-failed","init-started","init-completed","init-failed","preload-started","preload-completed","cache-hit","cache-miss","hot-reload","dynamic-load","dynamic-unload","dynamic-discover"]),pluginId:i(),timestamp:u().int().min(0),durationMs:u().int().min(0).optional(),metadata:C(i(),E()).optional(),error:n({message:i(),code:i().optional(),stack:i().optional()}).optional()}).describe("Plugin loading lifecycle event");n({pluginId:i(),state:h(["pending","loading","loaded","initializing","ready","failed","reloading","unloading","unloaded"]),progress:u().min(0).max(100).default(0),startedAt:u().int().min(0).optional(),completedAt:u().int().min(0).optional(),lastError:i().optional(),retryCount:u().int().min(0).default(0)}).describe("Plugin loading state");n({ql:n({object:$().describe("Get object handle for method chaining"),query:$().describe("Execute a query")}).passthrough().describe("ObjectQL Engine Interface"),os:n({getCurrentUser:$().describe("Get the current authenticated user"),getConfig:$().describe("Get platform configuration")}).passthrough().describe("ObjectStack Kernel Interface"),logger:n({debug:$().describe("Log debug message"),info:$().describe("Log info message"),warn:$().describe("Log warning message"),error:$().describe("Log error message")}).passthrough().describe("Logger Interface"),storage:n({get:$().describe("Get a value from storage"),set:$().describe("Set a value in storage"),delete:$().describe("Delete a value from storage")}).passthrough().describe("Storage Interface"),i18n:n({t:$().describe("Translate a key"),getLocale:$().describe("Get current locale")}).passthrough().describe("Internationalization Interface"),metadata:C(i(),E()),events:C(i(),E()),app:n({router:n({get:$().describe("Register GET route handler"),post:$().describe("Register POST route handler"),use:$().describe("Register middleware")}).passthrough()}).passthrough().describe("App Framework Interface"),drivers:n({register:$().describe("Register a driver")}).passthrough().describe("Driver Registry")});var PJ=n({onInstall:$().optional().describe("Called when plugin is installed"),onEnable:$().optional().describe("Called when plugin is enabled"),onDisable:$().optional().describe("Called when plugin is disabled"),onUninstall:$().optional().describe("Called when plugin is uninstalled"),onUpgrade:$().optional().describe("Called when plugin is upgraded")}),e_=["ui","driver","server","app","theme","agent","objectql"];PJ.extend({id:i().min(1).optional().describe("Unique Plugin ID (e.g. com.example.crm)"),type:h(["standard",...e_]).default("standard").optional().describe("Plugin Type categorization for runtime behavior"),staticPath:i().optional().describe('Absolute path to static assets (Required for type="ui-plugin")'),slug:i().regex(/^[a-z0-9-_]+$/).optional().describe('URL path segment (Required for type="ui-plugin")'),default:c().optional().describe('Serve at root path (Only one "ui-plugin" can be default)'),version:i().regex(/^\d+\.\d+\.\d+$/).optional().describe("Semantic Version"),description:i().optional(),author:i().optional(),homepage:i().url().optional()});var IJ=h(["insert","update","upsert","replace","ignore"]),DJ=n({object:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Target Object Name"),externalId:i().default("name").describe("Field match for uniqueness check"),mode:IJ.default("upsert").describe("Conflict resolution strategy"),env:m(h(["prod","dev","test"])).default(["prod","dev","test"]).describe("Applicable environments"),records:m(C(i(),E())).describe("Data records")}),cv=n({id:i().describe("Unique package identifier (reverse domain style)"),namespace:i().regex(/^[a-z][a-z0-9_]{1,19}$/,"Namespace must be 2-20 chars, lowercase alphanumeric + underscore").optional().describe('Short namespace identifier for metadata scoping (e.g. "crm", "todo")'),version:i().regex(/^\d+\.\d+\.\d+$/).describe("Package version (semantic versioning)"),type:h(["plugin",...e_,"module","gateway","adapter"]).describe("Type of package"),name:i().describe("Human-readable package name"),description:i().optional().describe("Package description"),permissions:m(i()).optional().describe("Array of required permission strings"),objects:m(i()).optional().describe("Glob patterns for ObjectQL schemas files"),datasources:m(i()).optional().describe("Glob patterns for Datasource definitions"),dependencies:C(i(),i()).optional().describe("Package dependencies"),configuration:n({title:i().optional(),properties:C(i(),n({type:h(["string","number","boolean","array","object"]).describe("Data type of the setting"),default:E().optional().describe("Default value"),description:i().optional().describe("Tooltip description"),required:c().optional().describe("Is this setting required?"),secret:c().optional().describe("If true, value is encrypted/masked (e.g. API Keys)"),enum:m(i()).optional().describe("Allowed values for select inputs")})).describe("Map of configuration keys to their definitions")}).optional().describe("Plugin configuration settings"),contributes:n({kinds:m(n({id:i().describe('The generic identifier of the kind (e.g., "sys.bi.report")'),globs:m(i()).describe('File patterns to watch (e.g., ["**/*.report.ts"])'),description:i().optional().describe("Description of what this kind represents")})).optional().describe("New Metadata Types to recognize"),events:m(i()).optional().describe("Events this plugin listens to"),menus:C(i(),m(n({id:i(),label:i(),command:i().optional()}))).optional().describe("UI Menu contributions"),themes:m(n({id:i(),label:i(),path:i()})).optional().describe("Theme contributions"),translations:m(n({locale:i(),path:i()})).optional().describe("Translation resources"),actions:m(n({name:i().describe("Unique action name"),label:i().optional(),description:i().optional(),input:E().optional().describe("Input validation schema"),output:E().optional().describe("Output schema")})).optional().describe("Exposed server actions"),drivers:m(n({id:i().describe('Driver unique identifier (e.g. "postgres", "mongo")'),label:i().describe("Human readable name"),description:i().optional()})).optional().describe("Driver contributions"),fieldTypes:m(n({name:i().describe('Unique field type name (e.g. "vector")'),label:i().describe("Display label"),description:i().optional()})).optional().describe("Field Type contributions"),functions:m(n({name:i().describe('Function name (e.g. "distance")'),description:i().optional(),args:m(i()).optional().describe("Argument types"),returnType:i().optional()})).optional().describe("Query Function contributions"),routes:m(n({prefix:i().regex(/^\//).describe("API path prefix"),service:i().describe("Service name this plugin provides"),methods:m(i()).optional().describe('Protocol method names implemented (e.g. ["aiNlq", "aiChat"])')})).optional().describe("API route contributions to HttpDispatcher")}).optional().describe("Platform contributions"),data:m(DJ).optional().describe("Initial seed data (prefer top-level data field)"),capabilities:yJ.optional().describe("Plugin capability declarations for interoperability"),extensions:C(i(),E()).optional().describe("Extension points and contributions"),loading:_J.optional().describe("Plugin loading and runtime behavior configuration")}),t_=h(["installed","disabled","installing","uninstalling","error"]),Gc=n({manifest:cv,status:t_.default("installed"),enabled:c().default(!0),installedAt:i().datetime().optional(),updatedAt:i().datetime().optional(),statusChangedAt:i().datetime().optional(),errorMessage:i().optional(),settings:C(i(),E()).optional()});n({status:t_.optional(),type:cv.shape.type.optional(),enabled:c().optional()});n({packages:m(Gc),total:u()});n({id:i()});n({package:Gc});n({manifest:cv,settings:C(i(),E()).optional(),enableOnInstall:c().default(!0)});n({package:Gc,message:i().optional()});n({id:i()});n({id:i(),success:c(),message:i().optional()});n({id:i()});n({package:Gc,message:i().optional()});n({id:i()});n({package:Gc,message:i().optional()});n({trigger:i(),payload:C(i(),E())});n({success:c(),jobId:i().optional(),result:E().optional()});n({});n({version:i().describe('API version (e.g., "v1", "2024-01")'),apiName:i().describe("API name"),capabilities:qA.optional().describe("Supported features/capabilities"),endpoints:UA.optional().describe("Available endpoint paths"),services:C(i(),$A).optional().describe("Per-service availability map")});n({});n({types:m(i()).describe('Available metadata type names (e.g., "object", "plugin", "view")')});n({type:i().describe('Metadata type name (e.g., "object", "plugin")')});n({type:i().describe("Metadata type name"),items:m(E()).describe("Array of metadata items")});n({type:i().describe("Metadata type name"),name:i().describe("Item name (snake_case identifier)")});n({type:i().describe("Metadata type name"),name:i().describe("Item name"),item:E().describe("Metadata item definition")});n({type:i().describe("Metadata type name"),name:i().describe("Item name"),item:E().describe("Metadata item definition")});n({success:c(),message:i().optional()});n({type:i().describe("Metadata type name"),name:i().describe("Item name"),cacheRequest:NY.optional().describe("Cache validation parameters")});n({object:i().describe("Object name (snake_case)"),type:h(["list","form"]).describe("View type")});n({object:i().describe('The unique machine name of the object to query (e.g. "account").'),query:dm.optional().describe("Structured query definition (filter, sort, select, pagination).")});n({object:i().describe("The object name for the returned records."),records:m(C(i(),E())).describe("The list of matching records."),total:u().optional().describe("Total number of records matching the filter (if requested)."),hasMore:c().optional().describe("True if there are more records available (pagination).")});n({object:i().describe("The object name."),id:i().describe("The unique record identifier (primary key).")});n({object:i().describe("The object name."),id:i().describe("The record ID."),record:C(i(),E()).describe("The complete record data.")});n({object:i().describe("The object name."),data:C(i(),E()).describe("The dictionary of field values to insert.")});n({object:i().describe("The object name."),id:i().describe("The ID of the newly created record."),record:C(i(),E()).describe("The created record, including server-generated fields (created_at, owner).")});n({object:i().describe("The object name."),id:i().describe("The ID of the record to update."),data:C(i(),E()).describe("The fields to update (partial update).")});n({object:i().describe("Object name"),id:i().describe("Updated record ID"),record:C(i(),E()).describe("Updated record")});n({object:i().describe("Object name"),id:i().describe("Record ID to delete")});n({object:i().describe("Object name"),id:i().describe("Deleted record ID"),success:c().describe("Whether deletion succeeded")});n({object:i().describe("Object name"),request:DY.describe("Batch operation request")});n({object:i().describe("Object name"),records:m(C(i(),E())).describe("Array of records to create")});n({object:i().describe("Object name"),records:m(C(i(),E())).describe("Created records"),count:u().describe("Number of records created")});n({object:i().describe("Object name"),records:m(n({id:i().describe("Record ID"),data:C(i(),E()).describe("Fields to update")})).describe("Array of updates"),options:Fs.optional().describe("Update options")});n({object:i().describe("Object name"),ids:m(i()).describe("Array of record IDs to delete"),options:Fs.optional().describe("Delete options")});n({object:i().describe("Object name (snake_case)"),type:h(["list","form"]).optional().describe("Filter by view type")});n({object:i().describe("Object name"),views:m(Bs).describe("Array of view definitions")});n({object:i().describe("Object name (snake_case)"),viewId:i().describe("View identifier")});n({object:i().describe("Object name"),view:Bs.describe("View definition")});n({object:i().describe("Object name (snake_case)"),data:Bs.describe("View definition to create")});n({object:i().describe("Object name"),viewId:i().describe("Created view identifier"),view:Bs.describe("Created view definition")});n({object:i().describe("Object name (snake_case)"),viewId:i().describe("View identifier"),data:Bs.partial().describe("Partial view data to update")});n({object:i().describe("Object name"),viewId:i().describe("Updated view identifier"),view:Bs.describe("Updated view definition")});n({object:i().describe("Object name (snake_case)"),viewId:i().describe("View identifier to delete")});n({object:i().describe("Object name"),viewId:i().describe("Deleted view identifier"),success:c().describe("Whether deletion succeeded")});n({object:i().describe("Object name to check permissions for"),action:h(["create","read","edit","delete","transfer","restore","purge"]).describe("Action to check"),recordId:i().optional().describe("Specific record ID (for record-level checks)"),field:i().optional().describe("Specific field name (for field-level checks)")});n({allowed:c().describe("Whether the action is permitted"),reason:i().optional().describe("Reason if denied")});n({object:i().describe("Object name to get permissions for")});n({object:i().describe("Object name"),permissions:lv.describe("Object-level permissions"),fieldPermissions:C(i(),ZA).optional().describe("Field-level permissions keyed by field name")});n({});n({objects:C(i(),lv).describe("Effective object permissions keyed by object name"),systemPermissions:m(i()).describe("Effective system-level permissions")});n({object:i().describe("Object name to get workflow config for")});n({object:i().describe("Object name"),workflows:m(cJ).describe("Active workflow rules for this object")});var mm=n({currentState:i().describe("Current workflow state name"),availableTransitions:m(n({name:i().describe("Transition name"),targetState:i().describe("Target state after transition"),label:i().optional().describe("Display label"),requiresApproval:c().default(!1).describe("Whether transition requires approval")})).describe("Available transitions from current state"),history:m(n({fromState:i().describe("Previous state"),toState:i().describe("New state"),action:i().describe("Action that triggered the transition"),userId:i().describe("User who performed the action"),timestamp:i().datetime().describe("When the transition occurred"),comment:i().optional().describe("Optional comment")})).optional().describe("State transition history")});n({object:i().describe("Object name"),recordId:i().describe("Record ID to get workflow state for")});n({object:i().describe("Object name"),recordId:i().describe("Record ID"),state:mm.describe("Current workflow state and available transitions")});n({object:i().describe("Object name"),recordId:i().describe("Record ID"),transition:i().describe("Transition name to execute"),comment:i().optional().describe("Optional comment for the transition"),data:C(i(),E()).optional().describe("Additional data for the transition")});n({object:i().describe("Object name"),recordId:i().describe("Record ID"),success:c().describe("Whether the transition succeeded"),state:mm.describe("New workflow state after transition")});n({object:i().describe("Object name"),recordId:i().describe("Record ID"),comment:i().optional().describe("Approval comment"),data:C(i(),E()).optional().describe("Additional data")});n({object:i().describe("Object name"),recordId:i().describe("Record ID"),success:c().describe("Whether the approval succeeded"),state:mm.describe("New workflow state after approval")});n({object:i().describe("Object name"),recordId:i().describe("Record ID"),reason:i().describe("Rejection reason"),comment:i().optional().describe("Additional comment")});n({object:i().describe("Object name"),recordId:i().describe("Record ID"),success:c().describe("Whether the rejection succeeded"),state:mm.describe("New workflow state after rejection")});n({transport:um.optional().describe("Preferred transport protocol"),channels:m(i()).optional().describe("Channels to subscribe to on connect"),token:i().optional().describe("Authentication token")});n({connectionId:i().describe("Unique connection identifier"),transport:um.describe("Negotiated transport protocol"),url:i().optional().describe("WebSocket/SSE endpoint URL")});n({connectionId:i().optional().describe("Connection ID to disconnect")});n({success:c().describe("Whether disconnection succeeded")});n({channel:i().describe("Channel name to subscribe to"),events:m(i()).optional().describe("Specific event types to listen for"),filter:C(i(),E()).optional().describe("Event filter criteria")});n({subscriptionId:i().describe("Unique subscription identifier"),channel:i().describe("Subscribed channel name")});n({subscriptionId:i().describe("Subscription ID to cancel")});n({success:c().describe("Whether unsubscription succeeded")});n({channel:i().describe("Channel to set presence in"),state:BA.describe("Presence state to set")});n({success:c().describe("Whether presence was set")});n({channel:i().describe("Channel to get presence for")});n({channel:i().describe("Channel name"),members:m(BA).describe("Active members and their presence state")});n({token:i().describe("Device push notification token"),platform:h(["ios","android","web"]).describe("Device platform"),deviceId:i().optional().describe("Unique device identifier"),name:i().optional().describe("Device friendly name")});n({deviceId:i().describe("Registered device ID"),success:c().describe("Whether registration succeeded")});n({deviceId:i().describe("Device ID to unregister")});n({success:c().describe("Whether unregistration succeeded")});var dv=n({email:c().default(!0).describe("Receive email notifications"),push:c().default(!0).describe("Receive push notifications"),inApp:c().default(!0).describe("Receive in-app notifications"),digest:h(["none","daily","weekly"]).default("none").describe("Email digest frequency"),channels:C(i(),n({enabled:c().default(!0).describe("Whether this channel is enabled"),email:c().optional().describe("Override email setting"),push:c().optional().describe("Override push setting")})).optional().describe("Per-channel notification preferences")});n({});n({preferences:dv.describe("Current notification preferences")});n({preferences:dv.partial().describe("Preferences to update")});n({preferences:dv.describe("Updated notification preferences")});var jJ=n({id:i().describe("Notification ID"),type:i().describe("Notification type"),title:i().describe("Notification title"),body:i().describe("Notification body text"),read:c().default(!1).describe("Whether notification has been read"),data:C(i(),E()).optional().describe("Additional notification data"),actionUrl:i().optional().describe("URL to navigate to when clicked"),createdAt:i().datetime().describe("When notification was created")});n({read:c().optional().describe("Filter by read status"),type:i().optional().describe("Filter by notification type"),limit:u().default(20).describe("Maximum number of notifications to return"),cursor:i().optional().describe("Pagination cursor")});n({notifications:m(jJ).describe("List of notifications"),unreadCount:u().describe("Total number of unread notifications"),cursor:i().optional().describe("Next page cursor")});n({ids:m(i()).describe("Notification IDs to mark as read")});n({success:c().describe("Whether the operation succeeded"),readCount:u().describe("Number of notifications marked as read")});n({});n({success:c().describe("Whether the operation succeeded"),readCount:u().describe("Number of notifications marked as read")});n({query:i().describe("Natural language query string"),object:i().optional().describe("Target object context"),conversationId:i().optional().describe("Conversation ID for multi-turn queries")});n({query:E().describe("Generated structured query (AST)"),explanation:i().optional().describe("Human-readable explanation of the query"),confidence:u().min(0).max(1).optional().describe("Confidence score (0-1)"),suggestions:m(i()).optional().describe("Suggested follow-up queries")});n({message:i().describe("User message"),conversationId:i().optional().describe("Conversation ID for context"),context:C(i(),E()).optional().describe("Additional context data")});n({message:i().describe("Assistant response message"),conversationId:i().describe("Conversation ID"),actions:m(n({type:i().describe("Action type"),label:i().describe("Action display label"),data:C(i(),E()).optional().describe("Action data")})).optional().describe("Suggested actions")});n({object:i().describe("Object name for context"),field:i().optional().describe("Field to suggest values for"),recordId:i().optional().describe("Record ID for context"),partial:i().optional().describe("Partial input for completion")});n({suggestions:m(n({value:E().describe("Suggested value"),label:i().describe("Display label"),confidence:u().min(0).max(1).optional().describe("Confidence score (0-1)"),reason:i().optional().describe("Reason for this suggestion")})).describe("Suggested values")});n({object:i().describe("Object name to analyze"),recordId:i().optional().describe("Specific record to analyze"),type:h(["summary","trends","anomalies","recommendations"]).optional().describe("Type of insight")});n({insights:m(n({type:i().describe("Insight type"),title:i().describe("Insight title"),description:i().describe("Detailed description"),confidence:u().min(0).max(1).optional().describe("Confidence score (0-1)"),data:C(i(),E()).optional().describe("Supporting data")})).describe("Generated insights")});n({});n({locales:m(n({code:i().describe("BCP-47 locale code (e.g., en-US, zh-CN)"),label:i().describe("Display name of the locale"),isDefault:c().default(!1).describe("Whether this is the default locale")})).describe("Available locales")});n({locale:i().describe("BCP-47 locale code"),namespace:i().optional().describe("Translation namespace (e.g., objects, apps, messages)"),keys:m(i()).optional().describe("Specific translation keys to fetch")});n({locale:i().describe("Locale code"),translations:JA.describe("Translation data")});n({object:i().describe("Object name"),locale:i().describe("BCP-47 locale code")});n({object:i().describe("Object name"),locale:i().describe("Locale code"),labels:C(i(),n({label:i().describe("Translated field label"),help:i().optional().describe("Translated help text"),options:C(i(),i()).optional().describe("Translated option labels")})).describe("Field labels keyed by field name")});n({getDiscovery:$().describe("Get API discovery information"),getMetaTypes:$().describe("Get available metadata types"),getMetaItems:$().describe("Get all items of a metadata type"),getMetaItem:$().describe("Get a specific metadata item"),saveMetaItem:$().describe("Save metadata item"),getMetaItemCached:$().describe("Get a metadata item with cache validation"),getUiView:$().describe("Get UI view definition"),analyticsQuery:$().describe("Execute analytics query"),getAnalyticsMeta:$().describe("Get analytics metadata (cubes)"),triggerAutomation:$().describe("Trigger an automation flow or script"),listPackages:$().describe("List installed packages with optional filters"),getPackage:$().describe("Get a specific installed package by ID"),installPackage:$().describe("Install a new package from manifest"),uninstallPackage:$().describe("Uninstall a package by ID"),enablePackage:$().describe("Enable a disabled package"),disablePackage:$().describe("Disable an installed package"),findData:$().describe("Find data records"),getData:$().describe("Get single data record"),createData:$().describe("Create a data record"),updateData:$().describe("Update a data record"),deleteData:$().describe("Delete a data record"),batchData:$().describe("Perform batch operations"),createManyData:$().describe("Create multiple records"),updateManyData:$().describe("Update multiple records"),deleteManyData:$().describe("Delete multiple records"),listViews:$().describe("List views for an object"),getView:$().describe("Get a specific view"),createView:$().describe("Create a new view"),updateView:$().describe("Update an existing view"),deleteView:$().describe("Delete a view"),checkPermission:$().describe("Check if an action is permitted"),getObjectPermissions:$().describe("Get permissions for an object"),getEffectivePermissions:$().describe("Get effective permissions for current user"),getWorkflowConfig:$().describe("Get workflow configuration for an object"),getWorkflowState:$().describe("Get workflow state for a record"),workflowTransition:$().describe("Execute a workflow state transition"),workflowApprove:$().describe("Approve a workflow step"),workflowReject:$().describe("Reject a workflow step"),realtimeConnect:$().describe("Establish realtime connection"),realtimeDisconnect:$().describe("Close realtime connection"),realtimeSubscribe:$().describe("Subscribe to a realtime channel"),realtimeUnsubscribe:$().describe("Unsubscribe from a realtime channel"),setPresence:$().describe("Set user presence state"),getPresence:$().describe("Get channel presence information"),registerDevice:$().describe("Register a device for push notifications"),unregisterDevice:$().describe("Unregister a device"),getNotificationPreferences:$().describe("Get notification preferences"),updateNotificationPreferences:$().describe("Update notification preferences"),listNotifications:$().describe("List notifications"),markNotificationsRead:$().describe("Mark specific notifications as read"),markAllNotificationsRead:$().describe("Mark all notifications as read"),aiNlq:$().describe("Natural language query"),aiChat:$().describe("AI chat interaction"),aiSuggest:$().describe("Get AI-powered suggestions"),aiInsights:$().describe("Get AI-generated insights"),getLocales:$().describe("Get available locales"),getTranslations:$().describe("Get translations for a locale"),getFieldLabels:$().describe("Get translated field labels for an object")});var i_=n({version:i().regex(/^[a-zA-Z0-9_\-\.]+$/).default("v1").describe("API version (e.g., v1, v2, 2024-01)"),basePath:i().default("/api").describe("Base URL path for API"),apiPath:i().optional().describe("Full API path (defaults to {basePath}/{version})"),enableCrud:c().default(!0).describe("Enable automatic CRUD endpoint generation"),enableMetadata:c().default(!0).describe("Enable metadata API endpoints"),enableUi:c().default(!0).describe("Enable UI API endpoints (Views, Menus, Layouts)"),enableBatch:c().default(!0).describe("Enable batch operation endpoints"),enableDiscovery:c().default(!0).describe("Enable API discovery endpoint"),documentation:n({enabled:c().default(!0).describe("Enable API documentation"),title:i().default("ObjectStack API").describe("API documentation title"),description:i().optional().describe("API description"),version:i().optional().describe("Documentation version"),termsOfService:i().optional().describe("Terms of service URL"),contact:n({name:i().optional(),url:i().optional(),email:i().optional()}).optional(),license:n({name:i(),url:i().optional()}).optional()}).optional().describe("OpenAPI/Swagger documentation config"),responseFormat:n({envelope:c().default(!0).describe("Wrap responses in standard envelope"),includeMetadata:c().default(!0).describe("Include response metadata (timestamp, requestId)"),includePagination:c().default(!0).describe("Include pagination info in list responses")}).optional().describe("Response format options")}),uv=h(["create","read","update","delete","list"]),MJ=n({method:xo.describe("HTTP method"),path:i().describe("URL path pattern"),summary:i().optional().describe("Operation summary"),description:i().optional().describe("Operation description")}),OJ=n({operations:n({create:c().default(!0).describe("Enable create operation"),read:c().default(!0).describe("Enable read operation"),update:c().default(!0).describe("Enable update operation"),delete:c().default(!0).describe("Enable delete operation"),list:c().default(!0).describe("Enable list operation")}).optional().describe("Enable/disable operations"),patterns:C(uv,MJ.optional()).optional().describe("Custom URL patterns for operations"),dataPrefix:i().default("/data").describe("URL prefix for data endpoints"),objectParamStyle:h(["path","query"]).default("path").describe("How object name is passed (path param or query param)")}),NJ=n({prefix:i().default("/meta").describe("URL prefix for metadata endpoints"),enableCache:c().default(!0).describe("Enable HTTP cache headers (ETag, Last-Modified)"),cacheTtl:u().int().default(3600).describe("Cache TTL in seconds"),endpoints:n({types:c().default(!0).describe("GET /meta - List all metadata types"),items:c().default(!0).describe("GET /meta/:type - List items of type"),item:c().default(!0).describe("GET /meta/:type/:name - Get specific item"),schema:c().default(!0).describe("GET /meta/:type/:name/schema - Get JSON schema")}).optional().describe("Enable/disable specific endpoints")}),LJ=n({maxBatchSize:u().int().min(1).max(1e3).default(200).describe("Maximum records per batch operation"),enableBatchEndpoint:c().default(!0).describe("Enable POST /data/:object/batch endpoint"),operations:n({createMany:c().default(!0).describe("Enable POST /data/:object/createMany"),updateMany:c().default(!0).describe("Enable POST /data/:object/updateMany"),deleteMany:c().default(!0).describe("Enable POST /data/:object/deleteMany"),upsertMany:c().default(!0).describe("Enable POST /data/:object/upsertMany")}).optional().describe("Enable/disable specific batch operations"),defaultAtomic:c().default(!0).describe("Default atomic/transaction mode for batch operations")}),zJ=n({includeObjects:m(i()).optional().describe("Specific objects to generate routes for (empty = all)"),excludeObjects:m(i()).optional().describe("Objects to exclude from route generation"),nameTransform:h(["none","plural","kebab-case","camelCase"]).default("none").describe("Transform object names in URLs"),overrides:C(i(),n({enabled:c().optional().describe("Enable/disable routes for this object"),basePath:i().optional().describe("Custom base path"),operations:C(uv,c()).optional().describe("Enable/disable specific operations")})).optional().describe("Per-object route customization")}),qJ=n({api:i_.optional().describe("REST API configuration"),crud:OJ.optional().describe("CRUD endpoints configuration"),metadata:NJ.optional().describe("Metadata endpoints configuration"),batch:LJ.optional().describe("Batch endpoints configuration"),routes:zJ.optional().describe("Route generation configuration")}),sg=n({id:i().describe("Unique endpoint identifier"),method:xo.describe("HTTP method"),path:i().describe("Full URL path"),object:i().describe("Object name (snake_case)"),operation:Z([uv,i()]).describe("Operation type"),handler:i().describe("Handler function identifier"),metadata:n({summary:i().optional(),description:i().optional(),tags:m(i()).optional(),deprecated:c().optional()}).optional()});n({endpoints:m(sg).describe("All generated endpoints"),total:u().int().describe("Total number of endpoints"),byObject:C(i(),m(sg)).optional().describe("Endpoints grouped by object"),byOperation:C(i(),m(sg)).optional().describe("Endpoints grouped by operation")});Object.assign(i_,{create:e=>e});Object.assign(qJ,{create:e=>e});var pv=h(["rest","graphql","odata","websocket","file","auth","metadata","plugin","webhook","rpc"]),$J=Z([u().int().min(100).max(599),h(["2xx","3xx","4xx","5xx"])]),mv=n({objectId:un.describe("Object name to reference"),includeFields:m(i()).optional().describe("Include only these fields in the schema"),excludeFields:m(i()).optional().describe("Exclude these fields from the schema"),includeRelated:m(i()).optional().describe("Include related objects via lookup fields")});Z([E().describe("Static JSON Schema definition"),n({$ref:mv.describe("Dynamic reference to ObjectQL object")}).describe("Dynamic ObjectQL reference")]);var UJ=n({name:i().describe("Parameter name"),in:h(["path","query","header","body","cookie"]).describe("Parameter location"),description:i().optional().describe("Parameter description"),required:c().default(!1).describe("Whether parameter is required"),schema:Z([n({type:h(["string","number","integer","boolean","array","object"]).describe("Parameter type"),format:i().optional().describe("Format (e.g., date-time, email, uuid)"),enum:m(E()).optional().describe("Allowed values"),default:E().optional().describe("Default value"),items:E().optional().describe("Array item schema"),properties:C(i(),E()).optional().describe("Object properties")}).describe("Static JSON Schema"),n({$ref:mv}).describe("Dynamic ObjectQL reference")]).describe("Parameter schema definition"),example:E().optional().describe("Example value")}),FJ=n({statusCode:$J.describe("HTTP status code"),description:i().describe("Response description"),contentType:i().default("application/json").describe("Response content type"),schema:Z([E().describe("Static JSON Schema"),n({$ref:mv}).describe("Dynamic ObjectQL reference")]).optional().describe("Response body schema"),headers:C(i(),n({description:i().optional(),schema:E()})).optional().describe("Response headers"),example:E().optional().describe("Example response")}),a_=n({id:i().describe("Unique endpoint identifier"),method:xo.optional().describe("HTTP method"),path:i().describe("URL path pattern"),summary:i().optional().describe("Short endpoint summary"),description:i().optional().describe("Detailed endpoint description"),operationId:i().optional().describe("Unique operation identifier"),tags:m(i()).optional().default([]).describe("Tags for categorization"),parameters:m(UJ).optional().default([]).describe("Endpoint parameters"),requestBody:n({description:i().optional(),required:c().default(!1),contentType:i().default("application/json"),schema:E().optional(),example:E().optional()}).optional().describe("Request body specification"),responses:m(FJ).optional().default([]).describe("Possible responses"),rateLimit:sv.optional().describe("Endpoint specific rate limiting"),security:m(C(i(),m(i()))).optional().describe('Security requirements (e.g. [{"bearerAuth": []}])'),requiredPermissions:m(i()).optional().default([]).describe('Required RBAC permissions (e.g., "customer.read", "manage_users")'),priority:u().int().min(0).max(1e3).optional().default(100).describe("Route priority for conflict resolution (0-1000, higher = more important)"),protocolConfig:C(i(),E()).optional().describe("Protocol-specific configuration for custom protocols (gRPC, tRPC, etc.)"),deprecated:c().default(!1).describe("Whether endpoint is deprecated"),externalDocs:n({description:i().optional(),url:i().url()}).optional().describe("External documentation link")}),BJ=n({owner:i().optional().describe("Owner team or person"),status:h(["active","deprecated","experimental","beta"]).default("active").describe("API lifecycle status"),tags:m(i()).optional().default([]).describe("Classification tags"),pluginSource:i().optional().describe("Source plugin name"),custom:C(i(),E()).optional().describe("Custom metadata fields")}),xc=n({id:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Unique API identifier (snake_case)"),name:i().describe("API display name"),type:pv.describe("API protocol type"),version:i().describe("API version (e.g., v1, 2024-01)"),basePath:i().describe("Base URL path for this API"),description:i().optional().describe("API description"),endpoints:m(a_).describe("Registered endpoints"),config:C(i(),E()).optional().describe("Protocol-specific configuration"),metadata:BJ.optional().describe("Additional metadata"),termsOfService:i().url().optional().describe("Terms of service URL"),contact:n({name:i().optional(),url:i().url().optional(),email:i().email().optional()}).optional().describe("Contact information"),license:n({name:i(),url:i().url().optional()}).optional().describe("License information")}),HJ=h(["error","priority","first-wins","last-wins"]),VJ=n({version:i().describe("Registry version"),conflictResolution:HJ.optional().default("error").describe("Strategy for handling route conflicts"),apis:m(xc).describe("All registered APIs"),totalApis:u().int().describe("Total number of registered APIs"),totalEndpoints:u().int().describe("Total number of endpoints"),byType:C(pv,m(xc)).optional().describe("APIs grouped by protocol type"),byStatus:C(i(),m(xc)).optional().describe("APIs grouped by status"),updatedAt:i().datetime().optional().describe("Last registry update time")}),GJ=n({type:pv.optional().describe("Filter by API protocol type"),tags:m(i()).optional().describe("Filter by tags (ANY match)"),status:h(["active","deprecated","experimental","beta"]).optional().describe("Filter by lifecycle status"),pluginSource:i().optional().describe("Filter by plugin name"),search:i().optional().describe("Full-text search in name/description"),version:i().optional().describe("Filter by specific version")});n({apis:m(xc).describe("Matching API entries"),total:u().int().describe("Total matching APIs"),filters:GJ.optional().describe("Applied query filters")});Object.assign(a_,{create:e=>e});Object.assign(xc,{create:e=>e});Object.assign(VJ,{create:e=>e});var o_=n({url:i().url().describe("Server base URL"),description:i().optional().describe("Server description"),variables:C(i(),n({default:i(),description:i().optional(),enum:m(i()).optional()})).optional().describe("URL template variables")}),r_=n({type:h(["apiKey","http","oauth2","openIdConnect"]).describe("Security type"),scheme:i().optional().describe("HTTP auth scheme (bearer, basic, etc.)"),bearerFormat:i().optional().describe("Bearer token format (e.g., JWT)"),name:i().optional().describe("API key parameter name"),in:h(["header","query","cookie"]).optional().describe("API key location"),flows:n({implicit:E().optional(),password:E().optional(),clientCredentials:E().optional(),authorizationCode:E().optional()}).optional().describe("OAuth2 flows"),openIdConnectUrl:i().url().optional().describe("OpenID Connect discovery URL"),description:i().optional().describe("Security scheme description")}),n_=n({openapi:i().default("3.0.0").describe("OpenAPI specification version"),info:n({title:i().describe("API title"),version:i().describe("API version"),description:i().optional().describe("API description"),termsOfService:i().url().optional().describe("Terms of service URL"),contact:n({name:i().optional(),url:i().url().optional(),email:i().email().optional()}).optional(),license:n({name:i(),url:i().url().optional()}).optional()}).describe("API metadata"),servers:m(o_).optional().default([]).describe("API servers"),paths:C(i(),E()).describe("API paths and operations"),components:n({schemas:C(i(),E()).optional(),responses:C(i(),E()).optional(),parameters:C(i(),E()).optional(),examples:C(i(),E()).optional(),requestBodies:C(i(),E()).optional(),headers:C(i(),E()).optional(),securitySchemes:C(i(),r_).optional(),links:C(i(),E()).optional(),callbacks:C(i(),E()).optional()}).optional().describe("Reusable components"),security:m(C(i(),m(i()))).optional().describe("Global security requirements"),tags:m(n({name:i(),description:i().optional(),externalDocs:n({description:i().optional(),url:i().url()}).optional()})).optional().describe("Tag definitions"),externalDocs:n({description:i().optional(),url:i().url()}).optional().describe("External documentation")}),WJ=h(["swagger-ui","redoc","rapidoc","stoplight","scalar","graphql-playground","graphiql","postman","custom"]),QJ=n({type:WJ.describe("Testing UI implementation"),path:i().default("/api-docs").describe("URL path for documentation UI"),theme:h(["light","dark","auto"]).default("light").describe("UI color theme"),enableTryItOut:c().default(!0).describe("Enable interactive API testing"),enableFilter:c().default(!0).describe("Enable endpoint filtering"),enableCors:c().default(!0).describe("Enable CORS for browser testing"),defaultModelsExpandDepth:u().int().min(-1).default(1).describe("Default expand depth for schemas (-1 = fully expand)"),displayRequestDuration:c().default(!0).describe("Show request duration"),syntaxHighlighting:c().default(!0).describe("Enable syntax highlighting"),customCssUrl:i().url().optional().describe("Custom CSS stylesheet URL"),customJsUrl:i().url().optional().describe("Custom JavaScript URL"),layout:n({showExtensions:c().default(!1).describe("Show vendor extensions"),showCommonExtensions:c().default(!1).describe("Show common extensions"),deepLinking:c().default(!0).describe("Enable deep linking"),displayOperationId:c().default(!1).describe("Display operation IDs"),defaultModelRendering:h(["example","model"]).default("example").describe("Default model rendering mode"),defaultModelsExpandDepth:u().int().default(1).describe("Models expand depth"),defaultModelExpandDepth:u().int().default(1).describe("Single model expand depth"),docExpansion:h(["list","full","none"]).default("list").describe("Documentation expansion mode")}).optional().describe("Layout configuration")}),$E=n({name:i().describe("Test request name"),description:i().optional().describe("Request description"),method:h(["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"]).describe("HTTP method"),url:i().describe("Request URL (can include variables)"),headers:C(i(),i()).optional().default({}).describe("Request headers"),queryParams:C(i(),Z([i(),u(),c()])).optional().default({}).describe("Query parameters"),body:E().optional().describe("Request body"),variables:C(i(),E()).optional().default({}).describe("Template variables"),expectedResponse:n({statusCode:u().int(),body:E().optional()}).optional().describe("Expected response for validation")}),fv=n({name:i().describe("Collection name"),description:i().optional().describe("Collection description"),variables:C(i(),E()).optional().default({}).describe("Shared variables"),requests:m($E).describe("Test requests in this collection"),folders:m(n({name:i(),description:i().optional(),requests:m($E)})).optional().describe("Request folders for organization")}),KJ=n({version:i().describe("API version"),date:i().date().describe("Release date"),changes:n({added:m(i()).optional().default([]).describe("New features"),changed:m(i()).optional().default([]).describe("Changes"),deprecated:m(i()).optional().default([]).describe("Deprecations"),removed:m(i()).optional().default([]).describe("Removed features"),fixed:m(i()).optional().default([]).describe("Bug fixes"),security:m(i()).optional().default([]).describe("Security fixes")}).describe("Version changes"),migrationGuide:i().optional().describe("Migration guide URL or text")}),ZJ=n({language:i().describe("Target language/framework (e.g., typescript, python, curl)"),name:i().describe("Template name"),template:i().describe("Code template with placeholders"),variables:m(i()).optional().describe("Required template variables")}),YJ=n({enabled:c().default(!0).describe("Enable API documentation"),title:i().default("API Documentation").describe("Documentation title"),version:i().describe("API version"),description:i().optional().describe("API description"),servers:m(o_).optional().default([]).describe("API server URLs"),ui:QJ.optional().describe("Testing UI configuration"),generateOpenApi:c().default(!0).describe("Generate OpenAPI 3.0 specification"),generateTestCollections:c().default(!0).describe("Generate API test collections"),testCollections:m(fv).optional().default([]).describe("Predefined test collections"),changelog:m(KJ).optional().default([]).describe("API version changelog"),codeTemplates:m(ZJ).optional().default([]).describe("Code generation templates"),termsOfService:i().url().optional().describe("Terms of service URL"),contact:n({name:i().optional(),url:i().url().optional(),email:i().email().optional()}).optional().describe("Contact information"),license:n({name:i(),url:i().url().optional()}).optional().describe("API license"),externalDocs:n({description:i().optional(),url:i().url()}).optional().describe("External documentation link"),securitySchemes:C(i(),r_).optional().describe("Security scheme definitions"),tags:m(n({name:i(),description:i().optional(),externalDocs:n({description:i().optional(),url:i().url()}).optional()})).optional().describe("Global tag definitions")});n({openApiSpec:n_.optional().describe("Generated OpenAPI specification"),testCollections:m(fv).optional().describe("Generated test collections"),markdown:i().optional().describe("Generated markdown documentation"),html:i().optional().describe("Generated HTML documentation"),generatedAt:i().datetime().describe("Generation timestamp"),sourceApis:m(i()).describe("Source API IDs used for generation")});Object.assign(YJ,{create:e=>e});Object.assign(fv,{create:e=>e});Object.assign(n_,{create:e=>e});var JJ=h(["count","sum","avg","min","max","count_distinct","number","string","boolean"]),XJ=h(["string","number","boolean","time","geo"]),s_=h(["second","minute","hour","day","week","month","quarter","year"]),eX=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Unique metric ID"),label:i().describe("Human readable label"),description:i().optional(),type:JJ,sql:i().describe("SQL expression or field reference"),filters:m(n({sql:i()})).optional(),format:i().optional()}),tX=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Unique dimension ID"),label:i().describe("Human readable label"),description:i().optional(),type:XJ,sql:i().describe("SQL expression or column reference"),granularities:m(s_).optional()}),iX=n({name:i().describe("Target cube name"),relationship:h(["one_to_one","one_to_many","many_to_one"]).default("many_to_one"),sql:i().describe("Join condition (ON clause)")}),aX=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Cube name (snake_case)"),title:i().optional(),description:i().optional(),sql:i().describe("Base SQL statement or Table Name"),measures:C(i(),eX).describe("Quantitative metrics"),dimensions:C(i(),tX).describe("Qualitative attributes"),joins:C(i(),iX).optional(),refreshKey:n({every:i().optional(),sql:i().optional()}).optional(),public:c().default(!1)}),oX=n({measures:m(i()).describe("List of metrics to calculate"),dimensions:m(i()).optional().describe("List of dimensions to group by"),filters:m(n({member:i().describe("Dimension or Measure"),operator:h(["equals","notEquals","contains","notContains","gt","gte","lt","lte","set","notSet","inDateRange"]),values:m(i()).optional()})).optional(),timeDimensions:m(n({dimension:i(),granularity:s_.optional(),dateRange:Z([i(),m(i())]).optional()})).optional(),order:C(i(),h(["asc","desc"])).optional(),limit:u().optional(),offset:u().optional(),timezone:i().default("UTC")});h(["/api/v1/analytics/query","/api/v1/analytics/meta","/api/v1/analytics/sql"]);n({query:oX.describe(" The analytic query definition"),cube:i().describe("Target cube name"),format:h(["json","csv","xlsx"]).default("json").describe("Response format")});pi.extend({data:n({rows:m(C(i(),E())).describe("Result rows"),fields:m(n({name:i(),type:i()})).describe("Column metadata"),sql:i().optional().describe("Executed SQL (if debug enabled)")})});n({cube:i().optional().describe("Optional cube name to filter")});pi.extend({data:n({cubes:m(aX).describe("Available cubes")})});pi.extend({data:n({sql:i(),params:m(E())})});var rX=h(["urlPath","header","queryParam","dateBased"]),nX=h(["preview","current","supported","deprecated","retired"]),l_=n({version:i().describe('Version identifier (e.g., "v1", "v2beta1", "2025-01-01")'),status:nX.describe("Lifecycle status of this version"),releasedAt:i().describe('Release date (ISO 8601, e.g., "2025-01-15")'),deprecatedAt:i().optional().describe("Deprecation date (ISO 8601). Only set for deprecated/retired versions"),sunsetAt:i().optional().describe("Sunset date (ISO 8601). After this date, the version returns 410 Gone"),migrationGuide:i().url().optional().describe("URL to migration guide for upgrading from this version"),description:i().optional().describe("Human-readable description or release notes summary"),breakingChanges:m(i()).optional().describe("List of breaking changes (for preview/new versions)")});n({strategy:rX.default("urlPath").describe("How the API version is specified by clients"),current:i().describe("The current/recommended API version identifier"),default:i().describe("Fallback version when client does not specify one"),versions:m(l_).min(1).describe("All available API versions with lifecycle metadata"),headerName:i().default("ObjectStack-Version").describe("HTTP header name for version negotiation (header/dateBased strategies)"),queryParamName:i().default("version").describe("Query parameter name for version specification (queryParam strategy)"),urlPrefix:i().default("/api").describe("URL prefix before version segment (urlPath strategy)"),deprecation:n({warnHeader:c().default(!0).describe("Include Deprecation header (RFC 8594) in responses"),sunsetHeader:c().default(!0).describe("Include Sunset header (RFC 8594) with retirement date"),linkHeader:c().default(!0).describe("Include Link header pointing to migration guide URL"),rejectRetired:c().default(!0).describe("Return 410 Gone for retired API versions"),warningMessage:i().optional().describe("Custom warning message for deprecated version responses")}).optional().describe("Deprecation lifecycle behavior"),includeInDiscovery:c().default(!0).describe("Include version information in the API discovery endpoint")});n({current:i().describe("Current recommended API version"),requested:i().optional().describe("Version requested by the client"),resolved:i().describe("Resolved API version for this request"),supported:m(i()).describe("All supported version identifiers"),deprecated:m(i()).optional().describe("Deprecated version identifiers"),versions:m(l_).optional().describe("Full version definitions with lifecycle metadata")});h(["local","google","github","microsoft","ldap","saml"]);var c_=n({id:i().describe("User ID"),email:i().email().describe("Email address"),emailVerified:c().default(!1).describe("Is email verified?"),name:i().describe("Display name"),image:i().optional().describe("Avatar URL"),username:i().optional().describe("Username (optional)"),roles:m(i()).optional().default([]).describe("Assigned role IDs"),tenantId:i().optional().describe("Current tenant ID"),language:i().default("en").describe("Preferred language"),timezone:i().optional().describe("Preferred timezone"),createdAt:i().datetime().optional(),updatedAt:i().datetime().optional()}),sX=n({id:i(),expiresAt:i().datetime(),token:i().optional(),ipAddress:i().optional(),userAgent:i().optional(),userId:i()}),lX=h(["email","username","phone","magic-link","social"]);n({type:lX.default("email").describe("Login method"),email:i().email().optional().describe("Required for email/magic-link"),username:i().optional().describe("Required for username login"),password:i().optional().describe("Required for password login"),provider:i().optional().describe("Required for social (google, github)"),redirectTo:i().optional().describe("Redirect URL after successful login")});n({email:i().email(),password:i(),name:i(),image:i().optional()});n({refreshToken:i().describe("Refresh token")});pi.extend({data:n({session:sX.describe("Active Session Info"),user:c_.describe("Current User Details"),token:i().optional().describe("Bearer token if not using cookies")})});pi.extend({data:c_});var er={signInEmail:"/sign-in/email",signUpEmail:"/sign-up/email",signOut:"/sign-out",getSession:"/get-session",forgetPassword:"/forget-password",resetPassword:"/reset-password",sendVerificationEmail:"/send-verification-email",verifyEmail:"/verify-email"};n({signInEmail:n({method:z("POST"),path:z(er.signInEmail),description:z("Sign in with email and password")}),signUpEmail:n({method:z("POST"),path:z(er.signUpEmail),description:z("Register new user with email and password")}),signOut:n({method:z("POST"),path:z(er.signOut),description:z("Sign out current user")}),getSession:n({method:z("GET"),path:z(er.getSession),description:z("Get current user session")}),forgetPassword:n({method:z("POST"),path:z(er.forgetPassword),description:z("Request password reset email")}),resetPassword:n({method:z("POST"),path:z(er.resetPassword),description:z("Reset password with token")}),sendVerificationEmail:n({method:z("POST"),path:z(er.sendVerificationEmail),description:z("Send email verification link")}),verifyEmail:n({method:z("GET"),path:z(er.verifyEmail),description:z("Verify email with token")})});var cX=h(["global","tenant","user","session","temp","cache","data","logs","config","public"]).describe("Storage scope classification"),dX=n({path:i().describe("File path"),name:i().describe("File name"),size:u().int().describe("File size in bytes"),mimeType:i().describe("MIME type"),lastModified:i().datetime().describe("Last modified timestamp"),created:i().datetime().describe("Creation timestamp"),etag:i().optional().describe("Entity tag")}),d_=h(["s3","azure_blob","gcs","minio","r2","spaces","wasabi","backblaze","local"]).describe("Storage provider type"),uX=h(["private","public_read","public_read_write","authenticated_read","bucket_owner_read","bucket_owner_full_control"]).describe("Storage access control level"),u_=h(["standard","intelligent","infrequent_access","glacier","deep_archive"]).describe("Storage class/tier for cost optimization"),pX=h(["transition","delete","abort"]).describe("Lifecycle policy action type");n({contentType:i().describe("MIME type (e.g., image/jpeg, application/pdf)"),contentLength:u().min(0).describe("File size in bytes"),contentEncoding:i().optional().describe("Content encoding (e.g., gzip)"),contentDisposition:i().optional().describe("Content disposition header"),contentLanguage:i().optional().describe("Content language"),cacheControl:i().optional().describe("Cache control directives"),etag:i().optional().describe("Entity tag for versioning/caching"),lastModified:i().datetime().optional().describe("Last modification timestamp"),versionId:i().optional().describe("Object version identifier"),storageClass:u_.optional().describe("Storage class/tier"),encryption:n({algorithm:i().describe("Encryption algorithm (e.g., AES256, aws:kms)"),keyId:i().optional().describe("KMS key ID if using managed encryption")}).optional().describe("Server-side encryption configuration"),custom:C(i(),i()).optional().describe("Custom user-defined metadata")});n({operation:h(["get","put","delete","head"]).describe("Allowed operation"),expiresIn:u().min(1).max(604800).describe("Expiration time in seconds (max 7 days)"),contentType:i().optional().describe("Required content type for PUT operations"),maxSize:u().min(0).optional().describe("Maximum file size in bytes for PUT operations"),responseContentType:i().optional().describe("Override content-type for GET operations"),responseContentDisposition:i().optional().describe("Override content-disposition for GET operations")});var mX=n({enabled:c().default(!0).describe("Enable multipart uploads"),partSize:u().min(5*1024*1024).max(5*1024*1024*1024).default(10*1024*1024).describe("Part size in bytes (min 5MB, max 5GB)"),maxParts:u().min(1).max(1e4).default(1e4).describe("Maximum number of parts (max 10,000)"),threshold:u().min(0).default(100*1024*1024).describe("File size threshold to trigger multipart upload (bytes)"),maxConcurrent:u().min(1).max(100).default(4).describe("Maximum concurrent part uploads"),abortIncompleteAfterDays:u().min(1).optional().describe("Auto-abort incomplete uploads after N days")}),fX=n({acl:uX.default("private").describe("Default access control level"),allowedOrigins:m(i()).optional().describe("CORS allowed origins"),allowedMethods:m(h(["GET","PUT","POST","DELETE","HEAD"])).optional().describe("CORS allowed HTTP methods"),allowedHeaders:m(i()).optional().describe("CORS allowed headers"),exposeHeaders:m(i()).optional().describe("CORS exposed headers"),maxAge:u().min(0).optional().describe("CORS preflight cache duration in seconds"),corsEnabled:c().default(!1).describe("Enable CORS configuration"),publicAccess:n({allowPublicRead:c().default(!1).describe("Allow public read access"),allowPublicWrite:c().default(!1).describe("Allow public write access"),allowPublicList:c().default(!1).describe("Allow public bucket listing")}).optional().describe("Public access control"),allowedIps:m(i()).optional().describe("Allowed IP addresses/CIDR blocks"),blockedIps:m(i()).optional().describe("Blocked IP addresses/CIDR blocks")}),bX=n({id:pm.describe("Rule identifier"),enabled:c().default(!0).describe("Enable this rule"),action:pX.describe("Action to perform"),prefix:i().optional().describe('Object key prefix filter (e.g., "uploads/")'),tags:C(i(),i()).optional().describe("Object tag filters"),daysAfterCreation:u().min(0).optional().describe("Days after object creation"),daysAfterModification:u().min(0).optional().describe("Days after last modification"),targetStorageClass:u_.optional().describe("Target storage class for transition action")}).refine(e=>!(e.action==="transition"&&!e.targetStorageClass),{message:'targetStorageClass is required when action is "transition"'}),hX=n({enabled:c().default(!1).describe("Enable lifecycle policies"),rules:m(bX).default([]).describe("Lifecycle rules")}),gX=n({name:pm.describe("Bucket identifier in ObjectStack (snake_case)"),label:i().describe("Display label"),bucketName:i().describe("Actual bucket/container name in storage provider"),region:i().optional().describe("Storage region (e.g., us-east-1, westus)"),provider:d_.describe("Storage provider"),endpoint:i().optional().describe("Custom endpoint URL (for S3-compatible providers)"),pathStyle:c().default(!1).describe("Use path-style URLs (for S3-compatible providers)"),versioning:c().default(!1).describe("Enable object versioning"),encryption:n({enabled:c().default(!1).describe("Enable server-side encryption"),algorithm:h(["AES256","aws:kms","azure:kms","gcp:kms"]).default("AES256").describe("Encryption algorithm"),kmsKeyId:i().optional().describe("KMS key ID for managed encryption")}).optional().describe("Server-side encryption configuration"),accessControl:fX.optional().describe("Access control configuration"),lifecyclePolicy:hX.optional().describe("Lifecycle policy configuration"),multipartConfig:mX.optional().describe("Multipart upload configuration"),tags:C(i(),i()).optional().describe("Bucket tags for organization"),description:i().optional().describe("Bucket description"),enabled:c().default(!0).describe("Enable this bucket")}),yX=n({accessKeyId:i().optional().describe("AWS access key ID or MinIO access key"),secretAccessKey:i().optional().describe("AWS secret access key or MinIO secret key"),sessionToken:i().optional().describe("AWS session token for temporary credentials"),accountName:i().optional().describe("Azure storage account name"),accountKey:i().optional().describe("Azure storage account key"),sasToken:i().optional().describe("Azure SAS token"),projectId:i().optional().describe("GCP project ID"),credentials:i().optional().describe("GCP service account credentials JSON"),endpoint:i().optional().describe("Custom endpoint URL"),region:i().optional().describe("Default region"),useSSL:c().default(!0).describe("Use SSL/TLS for connections"),timeout:u().min(0).optional().describe("Connection timeout in milliseconds")}),fm=n({name:pm.describe("Storage configuration identifier"),label:i().describe("Display label"),provider:d_.describe("Primary storage provider"),scope:cX.optional().default("global").describe("Storage scope"),connection:yX.describe("Connection credentials"),buckets:m(gX).default([]).describe("Configured buckets"),defaultBucket:i().optional().describe("Default bucket name for operations"),location:i().optional().describe("Root path (local) or base location"),quota:u().int().positive().optional().describe("Max size in bytes"),options:C(i(),E()).optional().describe("Provider-specific configuration options"),enabled:c().default(!0).describe("Enable this storage configuration"),description:i().optional().describe("Configuration description")});fm.parse({name:"aws_s3_storage",label:"AWS S3 Production Storage",provider:"s3",connection:{accessKeyId:"${AWS_ACCESS_KEY_ID}",secretAccessKey:"${AWS_SECRET_ACCESS_KEY}",region:"us-east-1"},buckets:[{name:"user_uploads",label:"User Uploads",bucketName:"my-app-user-uploads",region:"us-east-1",provider:"s3",versioning:!0,encryption:{enabled:!0,algorithm:"aws:kms",kmsKeyId:"${AWS_KMS_KEY_ID}"},accessControl:{acl:"private",corsEnabled:!0,allowedOrigins:["https://app.example.com"],allowedMethods:["GET","PUT","POST"]},lifecyclePolicy:{enabled:!0,rules:[{id:"archive_old_uploads",enabled:!0,action:"transition",daysAfterCreation:90,targetStorageClass:"glacier"}]},multipartConfig:{enabled:!0,partSize:10*1024*1024,threshold:100*1024*1024,maxConcurrent:4}}],defaultBucket:"user_uploads",enabled:!0});fm.parse({name:"minio_local",label:"MinIO Local Storage",provider:"minio",connection:{accessKeyId:"minioadmin",secretAccessKey:"minioadmin",endpoint:"http://localhost:9000",useSSL:!1},buckets:[{name:"development_files",label:"Development Files",bucketName:"dev-files",provider:"minio",endpoint:"http://localhost:9000",pathStyle:!0,accessControl:{acl:"private"}}],defaultBucket:"development_files",enabled:!0});fm.parse({name:"azure_blob_storage",label:"Azure Blob Storage",provider:"azure_blob",connection:{accountName:"mystorageaccount",accountKey:"${AZURE_STORAGE_KEY}",endpoint:"https://mystorageaccount.blob.core.windows.net"},buckets:[{name:"media_files",label:"Media Files",bucketName:"media",provider:"azure_blob",region:"eastus",accessControl:{acl:"public_read",publicAccess:{allowPublicRead:!0,allowPublicWrite:!1,allowPublicList:!1}}}],defaultBucket:"media_files",enabled:!0});fm.parse({name:"gcs_storage",label:"Google Cloud Storage",provider:"gcs",connection:{projectId:"my-gcp-project",credentials:"${GCP_SERVICE_ACCOUNT_JSON}"},buckets:[{name:"backup_storage",label:"Backup Storage",bucketName:"my-app-backups",region:"us-central1",provider:"gcs",lifecyclePolicy:{enabled:!0,rules:[{id:"delete_old_backups",enabled:!0,action:"delete",daysAfterCreation:30}]}}],defaultBucket:"backup_storage",enabled:!0});n({filename:i().describe("Original filename"),mimeType:i().describe("File MIME type"),size:u().describe("File size in bytes"),scope:i().default("user").describe("Target storage scope (e.g. user, private, public)"),bucket:i().optional().describe("Specific bucket override (admin only)")});n({fileId:i().describe("File ID returned from presigned request"),eTag:i().optional().describe("S3 ETag verification")});pi.extend({data:n({uploadUrl:i().describe("PUT/POST URL for direct upload"),downloadUrl:i().optional().describe("Public/Private preview URL"),fileId:i().describe("Temporary File ID"),method:h(["PUT","POST"]).describe("HTTP Method to use"),headers:C(i(),i()).optional().describe("Required headers for upload"),expiresIn:u().describe("URL expiry in seconds")})});pi.extend({data:dX.describe("Uploaded file metadata")});var vX=h(["aes-256-gcm","aes-256-cbc","chacha20-poly1305"]).describe("Supported encryption algorithm"),SX=h(["local","aws-kms","azure-key-vault","gcp-kms","hashicorp-vault"]).describe("Key management service provider"),xX=n({enabled:c().default(!1).describe("Enable automatic key rotation"),frequencyDays:u().min(1).default(90).describe("Rotation frequency in days"),retainOldVersions:u().default(3).describe("Number of old key versions to retain"),autoRotate:c().default(!0).describe("Automatically rotate without manual approval")}).describe("Policy for automatic encryption key rotation"),p_=n({enabled:c().default(!1).describe("Enable field-level encryption"),algorithm:vX.default("aes-256-gcm").describe("Encryption algorithm"),keyManagement:n({provider:SX.describe("Key management service provider"),keyId:i().optional().describe("Key identifier in the provider"),rotationPolicy:xX.optional().describe("Key rotation policy")}).describe("Key management configuration"),scope:h(["field","record","table","database"]).describe("Encryption scope level"),deterministicEncryption:c().default(!1).describe("Allows equality queries on encrypted data"),searchableEncryption:c().default(!1).describe("Allows search on encrypted data")}).describe("Field-level encryption configuration");n({fieldName:i().describe("Name of the field to encrypt"),encryptionConfig:p_.describe("Encryption settings for this field"),indexable:c().default(!1).describe("Allow indexing on encrypted field")}).describe("Per-field encryption assignment");var wX=h(["redact","partial","hash","tokenize","randomize","nullify","substitute"]).describe("Data masking strategy for PII protection"),m_=n({field:i().describe("Field name to apply masking to"),strategy:wX.describe("Masking strategy to use"),pattern:i().optional().describe("Regex pattern for partial masking"),preserveFormat:c().default(!0).describe("Keep the original data format after masking"),preserveLength:c().default(!0).describe("Keep the original data length after masking"),roles:m(i()).optional().describe("Roles that see masked data"),exemptRoles:m(i()).optional().describe("Roles that see unmasked data")}).describe("Masking rule for a single field");n({enabled:c().default(!1).describe("Enable data masking"),rules:m(m_).describe("List of field-level masking rules"),auditUnmasking:c().default(!0).describe("Log when masked data is accessed unmasked")}).describe("Top-level data masking configuration for PII protection");var kX=h(["text","textarea","email","url","phone","password","markdown","html","richtext","number","currency","percent","date","datetime","time","boolean","toggle","select","multiselect","radio","checkboxes","lookup","master_detail","tree","image","file","avatar","video","audio","formula","summary","autonumber","location","address","code","json","color","rating","slider","signature","qrcode","progress","tags","vector"]),CX=n({label:i().describe("Display label (human-readable, any case allowed)"),value:pm.describe("Stored value (lowercase machine identifier)"),color:i().optional().describe("Color code for badges/charts"),default:c().optional().describe("Is default option")});n({latitude:u().min(-90).max(90).describe("Latitude coordinate"),longitude:u().min(-180).max(180).describe("Longitude coordinate"),altitude:u().optional().describe("Altitude in meters"),accuracy:u().optional().describe("Accuracy in meters")});var EX=n({precision:u().int().min(0).max(10).default(2).describe("Decimal precision (default: 2)"),currencyMode:h(["dynamic","fixed"]).default("dynamic").describe("Currency mode: dynamic (user selectable) or fixed (single currency)"),defaultCurrency:i().length(3).default("CNY").describe("Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)")});n({value:u().describe("Monetary amount"),currency:i().length(3).describe("Currency code (ISO 4217)")});n({street:i().optional().describe("Street address"),city:i().optional().describe("City name"),state:i().optional().describe("State/Province"),postalCode:i().optional().describe("Postal/ZIP code"),country:i().optional().describe("Country name or code"),countryCode:i().optional().describe("ISO country code (e.g., US, GB)"),formatted:i().optional().describe("Formatted address string")});var RX=n({dimensions:u().int().min(1).max(1e4).describe("Vector dimensionality (e.g., 1536 for OpenAI embeddings)"),distanceMetric:h(["cosine","euclidean","dotProduct","manhattan"]).default("cosine").describe("Distance/similarity metric for vector search"),normalized:c().default(!1).describe("Whether vectors are normalized (unit length)"),indexed:c().default(!0).describe("Whether to create a vector index for fast similarity search"),indexType:h(["hnsw","ivfflat","flat"]).optional().describe("Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)")}),TX=n({minSize:u().min(0).optional().describe("Minimum file size in bytes"),maxSize:u().min(1).optional().describe("Maximum file size in bytes (e.g., 10485760 = 10MB)"),allowedTypes:m(i()).optional().describe('Allowed file extensions (e.g., [".pdf", ".docx", ".jpg"])'),blockedTypes:m(i()).optional().describe('Blocked file extensions (e.g., [".exe", ".bat", ".sh"])'),allowedMimeTypes:m(i()).optional().describe('Allowed MIME types (e.g., ["image/jpeg", "application/pdf"])'),blockedMimeTypes:m(i()).optional().describe("Blocked MIME types"),virusScan:c().default(!1).describe("Enable virus scanning for uploaded files"),virusScanProvider:h(["clamav","virustotal","metadefender","custom"]).optional().describe("Virus scanning service provider"),virusScanOnUpload:c().default(!0).describe("Scan files immediately on upload"),quarantineOnThreat:c().default(!0).describe("Quarantine files if threat detected"),storageProvider:i().optional().describe("Object storage provider name (references ObjectStorageConfig)"),storageBucket:i().optional().describe("Target bucket name"),storagePrefix:i().optional().describe('Storage path prefix (e.g., "uploads/documents/")'),imageValidation:n({minWidth:u().min(1).optional().describe("Minimum image width in pixels"),maxWidth:u().min(1).optional().describe("Maximum image width in pixels"),minHeight:u().min(1).optional().describe("Minimum image height in pixels"),maxHeight:u().min(1).optional().describe("Maximum image height in pixels"),aspectRatio:i().optional().describe('Required aspect ratio (e.g., "16:9", "1:1")'),generateThumbnails:c().default(!1).describe("Auto-generate thumbnails"),thumbnailSizes:m(n({name:i().describe('Thumbnail variant name (e.g., "small", "medium", "large")'),width:u().min(1).describe("Thumbnail width in pixels"),height:u().min(1).describe("Thumbnail height in pixels"),crop:c().default(!1).describe("Crop to exact dimensions")})).optional().describe("Thumbnail size configurations"),preserveMetadata:c().default(!1).describe("Preserve EXIF metadata"),autoRotate:c().default(!0).describe("Auto-rotate based on EXIF orientation")}).optional().describe("Image-specific validation rules"),allowMultiple:c().default(!1).describe("Allow multiple file uploads (overrides field.multiple)"),allowReplace:c().default(!0).describe("Allow replacing existing files"),allowDelete:c().default(!0).describe("Allow deleting uploaded files"),requireUpload:c().default(!1).describe("Require at least one file when field is required"),extractMetadata:c().default(!0).describe("Extract file metadata (name, size, type, etc.)"),extractText:c().default(!1).describe("Extract text content from documents (OCR/parsing)"),versioningEnabled:c().default(!1).describe("Keep previous versions of replaced files"),maxVersions:u().min(1).optional().describe("Maximum number of versions to retain"),publicRead:c().default(!1).describe("Allow public read access to uploaded files"),presignedUrlExpiry:u().min(60).max(604800).default(3600).describe("Presigned URL expiration in seconds (default: 1 hour)")}).refine(e=>!(e.minSize!==void 0&&e.maxSize!==void 0&&e.minSize>e.maxSize),{message:"minSize must be less than or equal to maxSize"}).refine(e=>!(e.virusScanProvider!==void 0&&e.virusScan!==!0),{message:"virusScanProvider requires virusScan to be enabled"}),AX=n({uniqueness:c().default(!1).describe("Enforce unique values across all records"),completeness:u().min(0).max(1).default(0).describe("Minimum ratio of non-null values (0-1, default: 0 = no requirement)"),accuracy:n({source:i().describe('Reference data source for validation (e.g., "api.verify.com", "master_data")'),threshold:u().min(0).max(1).describe("Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)")}).optional().describe("Accuracy validation configuration")}),_X=n({enabled:c().describe("Enable caching for computed field results"),ttl:u().min(0).describe("Cache TTL in seconds (0 = no expiration)"),invalidateOn:m(i()).describe('Field paths that invalidate cache (e.g., ["inventory.quantity", "pricing.base_price"])')}),f_=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Machine name (snake_case)").optional(),label:i().optional().describe("Human readable label"),type:kX.describe("Field Data Type"),description:i().optional().describe("Tooltip/Help text"),format:i().optional().describe("Format string (e.g. email, phone)"),required:c().default(!1).describe("Is required"),searchable:c().default(!1).describe("Is searchable"),multiple:c().default(!1).describe("Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image."),unique:c().default(!1).describe("Is unique constraint"),defaultValue:E().optional().describe("Default value"),maxLength:u().optional().describe("Max character length"),minLength:u().optional().describe("Min character length"),precision:u().optional().describe("Total digits"),scale:u().optional().describe("Decimal places"),min:u().optional().describe("Minimum value"),max:u().optional().describe("Maximum value"),options:m(CX).optional().describe("Static options for select/multiselect"),reference:i().optional().describe("Target Object Name"),referenceFilters:m(i()).optional().describe('Filters applied to lookup dialogs (e.g. "active = true")'),writeRequiresMasterRead:c().optional().describe("If true, user needs read access to master record to edit this field"),deleteBehavior:h(["set_null","cascade","restrict"]).optional().default("set_null").describe("What happens if referenced record is deleted"),expression:i().optional().describe("Formula expression"),summaryOperations:n({object:i(),field:i(),function:h(["count","sum","min","max","avg"])}).optional().describe("Roll-up summary definition"),language:i().optional().describe("Programming language for syntax highlighting (e.g., javascript, python, sql)"),theme:i().optional().describe("Code editor theme (e.g., dark, light, monokai)"),lineNumbers:c().optional().describe("Show line numbers in code editor"),maxRating:u().optional().describe("Maximum rating value (default: 5)"),allowHalf:c().optional().describe("Allow half-star ratings"),displayMap:c().optional().describe("Display map widget for location field"),allowGeocoding:c().optional().describe("Allow address-to-coordinate conversion"),addressFormat:h(["us","uk","international"]).optional().describe("Address format template"),colorFormat:h(["hex","rgb","rgba","hsl"]).optional().describe("Color value format"),allowAlpha:c().optional().describe("Allow transparency/alpha channel"),presetColors:m(i()).optional().describe("Preset color options"),step:u().optional().describe("Step increment for slider (default: 1)"),showValue:c().optional().describe("Display current value on slider"),marks:C(i(),i()).optional().describe('Custom marks/labels at specific values (e.g., {0: "Low", 50: "Medium", 100: "High"})'),barcodeFormat:h(["qr","ean13","ean8","code128","code39","upca","upce"]).optional().describe("Barcode format type"),qrErrorCorrection:h(["L","M","Q","H"]).optional().describe('QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is "qr"'),displayValue:c().optional().describe("Display human-readable value below barcode/QR code"),allowScanning:c().optional().describe("Enable camera scanning for barcode/QR code input"),currencyConfig:EX.optional().describe("Configuration for currency field type"),vectorConfig:RX.optional().describe("Configuration for vector field type (AI/ML embeddings)"),fileAttachmentConfig:TX.optional().describe("Configuration for file and attachment field types"),encryptionConfig:p_.optional().describe("Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)"),maskingRule:m_.optional().describe("Data masking rules for PII protection"),auditTrail:c().default(!1).describe("Enable detailed audit trail for this field (tracks all changes with user and timestamp)"),dependencies:m(i()).optional().describe("Array of field names that this field depends on (for formulas, visibility rules, etc.)"),cached:_X.optional().describe("Caching configuration for computed/formula fields"),dataQuality:AX.optional().describe("Data quality validation and monitoring rules"),hidden:c().default(!1).describe("Hidden from default UI"),readonly:c().default(!1).describe("Read-only in UI"),sortable:c().optional().default(!0).describe("Whether field is sortable in list views"),inlineHelpText:i().optional().describe("Help text displayed below the field in forms"),trackFeedHistory:c().optional().describe("Track field changes in Chatter/activity feed (Salesforce pattern)"),caseSensitive:c().optional().describe("Whether text comparisons are case-sensitive"),autonumberFormat:i().optional().describe('Auto-number display format pattern (e.g., "CASE-{0000}")'),index:c().default(!1).describe("Create standard database index"),externalId:c().default(!1).describe("Is external ID for upsert operations")}),wo=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Unique rule name (snake_case)"),label:i().optional().describe("Human-readable label for the rule listing"),description:i().optional().describe("Administrative notes explaining the business reason"),active:c().default(!0),events:m(h(["insert","update","delete"])).default(["insert","update"]).describe("Validation contexts"),tags:m(i()).optional().describe('Categorization tags (e.g., "compliance", "billing")'),severity:h(["error","warning","info"]).default("error"),message:i().describe("Error message to display to the user")}),PX=wo.extend({type:z("script"),condition:i().describe("Formula expression. If TRUE, validation fails. (e.g. amount < 0)")}),IX=wo.extend({type:z("unique"),fields:m(i()).describe("Fields that must be combined unique"),scope:i().optional().describe("Formula condition for scope (e.g. active = true)"),caseSensitive:c().default(!0)}),DX=wo.extend({type:z("state_machine"),field:i().describe("State field (e.g. status)"),transitions:C(i(),m(i())).describe("Map of { OldState: [AllowedNewStates] }")}),jX=wo.extend({type:z("format"),field:i(),regex:i().optional(),format:h(["email","url","phone","json"]).optional()}),MX=wo.extend({type:z("cross_field"),condition:i().describe('Formula expression comparing fields (e.g. "end_date > start_date")'),fields:m(i()).describe("Fields involved in the validation")}),OX=wo.extend({type:z("json_schema"),field:i().describe("JSON field to validate"),schema:C(i(),E()).describe("JSON Schema object definition")}),NX=wo.extend({type:z("async"),field:i().describe("Field to validate"),validatorUrl:i().optional().describe("External API endpoint for validation"),method:h(["GET","POST"]).default("GET").describe("HTTP method for external call"),headers:C(i(),i()).optional().describe("Custom headers for the request"),validatorFunction:i().optional().describe("Reference to custom validator function"),timeout:u().optional().default(5e3).describe("Timeout in milliseconds"),debounce:u().optional().describe("Debounce delay in milliseconds"),params:C(i(),E()).optional().describe("Additional parameters to pass to validator")}),LX=wo.extend({type:z("custom"),handler:i().describe("Name of the custom validation function registered in the system"),params:C(i(),E()).optional().describe("Parameters passed to the custom handler")}),Ip=Ue(()=>tt("type",[PX,IX,DX,jX,MX,OX,NX,LX,zX])),zX=wo.extend({type:z("conditional"),when:i().describe(`Condition formula (e.g. "type = 'enterprise'")`),then:Ip.describe("Validation rule to apply when condition is true"),otherwise:Ip.optional().describe("Validation rule to apply when condition is false")}),Gg=Z([i().describe("Action Name"),n({type:i(),params:C(i(),E()).optional()})]),qX=Z([i().describe('Guard Name (e.g., "isManager", "amountGT1000")'),n({type:i(),params:C(i(),E()).optional()})]),wc=n({target:i().optional().describe("Target State ID"),cond:qX.optional().describe("Condition (Guard) required to take this path"),actions:m(Gg).optional().describe("Actions to execute during transition"),description:i().optional().describe("Human readable description of this rule")});n({type:i().describe('Event Type (e.g. "APPROVE", "REJECT", "Submit")'),schema:C(i(),E()).optional().describe("Expected event payload structure")});var b_=Ue(()=>n({type:h(["atomic","compound","parallel","final","history"]).default("atomic"),entry:m(Gg).optional().describe("Actions to run when entering this state"),exit:m(Gg).optional().describe("Actions to run when leaving this state"),on:C(i(),Z([i(),wc,m(wc)])).optional().describe("Map of Event Type -> Transition Definition"),always:m(wc).optional(),initial:i().optional().describe("Initial child state (if compound)"),states:C(i(),b_).optional(),meta:n({label:i().optional(),description:i().optional(),color:i().optional(),aiInstructions:i().optional().describe("Specific instructions for AI when in this state")}).optional()})),$X=n({id:un.describe("Unique Machine ID"),description:i().optional(),contextSchema:C(i(),E()).optional().describe("Zod Schema for the machine context/memory"),initial:i().describe("Initial State ID"),states:C(i(),b_).describe("State Nodes"),on:C(i(),Z([i(),wc,m(wc)])).optional()}),UX=h(["get","list","create","update","delete","upsert","bulk","aggregate","history","search","restore","purge","import","export"]),FX=n({trackHistory:c().default(!1).describe("Enable field history tracking for audit compliance"),searchable:c().default(!0).describe("Index records for global search"),apiEnabled:c().default(!0).describe("Expose object via automatic APIs"),apiMethods:m(UX).optional().describe("Whitelist of allowed API operations"),files:c().default(!1).describe("Enable file attachments and document management"),feeds:c().default(!1).describe("Enable social feed, comments, and mentions (Chatter-like)"),activities:c().default(!1).describe("Enable standard tasks and events tracking"),trash:c().default(!0).describe("Enable soft-delete with restore capability"),mru:c().default(!0).describe("Track Most Recently Used (MRU) list for users"),clone:c().default(!0).describe("Allow record deep cloning")}),h_=n({name:i().optional().describe("Index name (auto-generated if not provided)"),fields:m(i()).describe("Fields included in the index"),type:h(["btree","hash","gin","gist","fulltext"]).optional().default("btree").describe("Index algorithm type"),unique:c().optional().default(!1).describe("Whether the index enforces uniqueness"),partial:i().optional().describe("Partial index condition (SQL WHERE clause for conditional indexes)")}),BX=n({fields:m(i()).describe("Fields to index for full-text search weighting"),displayFields:m(i()).optional().describe("Fields to display in search result cards"),filters:m(i()).optional().describe("Default filters for search results")}),HX=n({enabled:c().describe("Enable multi-tenancy for this object"),strategy:h(["shared","isolated","hybrid"]).describe("Tenant isolation strategy: shared (single DB, row-level), isolated (separate DB per tenant), hybrid (mix)"),tenantField:i().default("tenant_id").describe("Field name for tenant identifier"),crossTenantAccess:c().default(!1).describe("Allow cross-tenant data access (with explicit permission)")}),VX=n({enabled:c().describe("Enable soft delete (trash/recycle bin)"),field:i().default("deleted_at").describe("Field name for soft delete timestamp"),cascadeDelete:c().default(!1).describe("Cascade soft delete to related records")}),GX=n({enabled:c().describe("Enable record versioning"),strategy:h(["snapshot","delta","event-sourcing"]).describe("Versioning strategy: snapshot (full copy), delta (changes only), event-sourcing (event log)"),retentionDays:u().min(1).optional().describe("Number of days to retain old versions (undefined = infinite)"),versionField:i().default("version").describe("Field name for version number/timestamp")}),WX=n({enabled:c().describe("Enable table partitioning"),strategy:h(["range","hash","list"]).describe("Partitioning strategy: range (date ranges), hash (consistent hashing), list (predefined values)"),key:i().describe("Field name to partition by"),interval:i().optional().describe('Partition interval for range strategy (e.g., "1 month", "1 year")')}).refine(e=>!(e.strategy==="range"&&!e.interval),{message:'interval is required when strategy is "range"'}),QX=n({enabled:c().describe("Enable Change Data Capture"),events:m(h(["insert","update","delete"])).describe("Event types to capture"),destination:i().describe('Destination endpoint (e.g., "kafka://topic", "webhook://url")')}),KX=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Machine unique key (snake_case). Immutable."),label:i().optional().describe('Human readable singular label (e.g. "Account")'),pluralLabel:i().optional().describe('Human readable plural label (e.g. "Accounts")'),description:i().optional().describe("Developer documentation / description"),icon:i().optional().describe("Icon name (Lucide/Material) for UI representation"),tags:m(i()).optional().describe('Categorization tags (e.g. "sales", "system", "reference")'),active:c().optional().default(!0).describe("Is the object active and usable"),isSystem:c().optional().default(!1).describe("Is system object (protected from deletion)"),abstract:c().optional().default(!1).describe("Is abstract base object (cannot be instantiated)"),datasource:i().optional().default("default").describe('Target Datasource ID. "default" is the primary DB.'),tableName:i().optional().describe("Physical table/collection name in the target datasource"),fields:C(i().regex(/^[a-z_][a-z0-9_]*$/,{message:'Field names must be lowercase snake_case (e.g., "first_name", "company", "annual_revenue")'}),f_).describe("Field definitions map. Keys must be snake_case identifiers."),indexes:m(h_).optional().describe("Database performance indexes"),tenancy:HX.optional().describe("Multi-tenancy configuration for SaaS applications"),softDelete:VX.optional().describe("Soft delete (trash/recycle bin) configuration"),versioning:GX.optional().describe("Record versioning and history tracking configuration"),partitioning:WX.optional().describe("Table partitioning configuration for performance"),cdc:QX.optional().describe("Change Data Capture (CDC) configuration for real-time data streaming"),validations:m(Ip).optional().describe("Object-level validation rules"),stateMachines:C(i(),$X).optional().describe("Named state machines for parallel lifecycles (e.g., status, payment, approval)"),titleFormat:i().optional().describe('Title expression (e.g. "{name} - {code}"). Overrides nameField.'),compactLayout:m(i()).optional().describe("Primary fields for hover/cards/lookups"),search:BX.optional().describe("Search engine configuration"),enable:FX.optional().describe("Enabled system features modules"),recordTypes:m(i()).optional().describe("Record type names for this object"),sharingModel:h(["private","read","read_write","full"]).optional().describe("Default sharing model"),keyPrefix:i().max(5).optional().describe('Short prefix for record IDs (e.g., "001" for Account)')}),ZX=Object.assign(KX,{create:e=>e});h(["own","extend"]);n({extend:i().describe("Target object name (FQN) to extend"),fields:C(i(),f_).optional().describe("Fields to add/override"),label:i().optional(),pluralLabel:i().optional(),description:i().optional(),validations:m(Ip).optional(),indexes:m(h_).optional(),priority:u().int().min(0).max(999).default(200).describe("Merge priority (higher = applied later)")});var Wc=n({id:un.describe("Unique identifier for this navigation item (lowercase snake_case)"),label:i().describe("Display proper label"),icon:i().optional().describe("Icon name"),visible:i().optional().describe("Visibility formula condition")}),YX=Wc.extend({type:z("object"),objectName:i().describe("Target object name"),viewName:i().optional().describe('Default list view to open. Defaults to "all"')}),JX=Wc.extend({type:z("dashboard"),dashboardName:i().describe("Target dashboard name")}),XX=Wc.extend({type:z("page"),pageName:i().describe("Target custom page component name"),params:C(i(),E()).optional().describe("Parameters passed to the page context")}),eee=Wc.extend({type:z("url"),url:i().describe("Target external URL"),target:h(["_self","_blank"]).default("_self").describe("Link target window")}),tee=Wc.extend({type:z("group"),expanded:c().default(!1).describe("Default expansion state in sidebar")}),Wg=Ue(()=>Z([YX.extend({children:m(Wg).optional().describe("Child navigation items (e.g. specific views)")}),JX,XX,eee,tee.extend({children:m(Wg).describe("Child navigation items")})])),iee=n({primaryColor:i().optional().describe("Primary theme color hex code"),logo:i().optional().describe("Custom logo URL for this app"),favicon:i().optional().describe("Custom favicon URL for this app")}),aee=n({name:un.describe("App unique machine name (lowercase snake_case)"),label:i().describe("App display label"),version:i().optional().describe("App version"),description:i().optional().describe("App description"),icon:i().optional().describe("App icon used in the App Launcher"),branding:iee.optional().describe("App-specific branding"),active:c().optional().default(!0).describe("Whether the app is enabled"),isDefault:c().optional().default(!1).describe("Is default app"),navigation:m(Wg).optional().describe("Structured navigation menu tree"),homePageId:i().optional().describe("ID of the navigation item to serve as landing page"),requiredPermissions:m(i()).optional().describe("Permissions required to access this app"),objects:m(E()).optional().describe("Objects belonging to this app"),apis:m(E()).optional().describe("Custom APIs belonging to this app")});pi.extend({data:ZX.describe("Full Object Schema")});pi.extend({data:aee.describe("Full App Configuration")});pi.extend({data:m(n({name:i(),label:i(),icon:i().optional(),description:i().optional()})).describe("List of available concepts (Objects, Apps, Flows)")});var bm=h(["metadata","data","auth","file-storage","search","cache","queue","automation","graphql","analytics","realtime","job","notification","ai","i18n","ui","workflow"]),oee=h(["required","core","optional"]);n({name:bm,enabled:c(),status:h(["running","stopped","degraded","initializing"]),version:i().optional(),provider:i().optional().describe('Implementation provider (e.g. "s3" for storage)'),features:m(i()).optional().describe("List of supported sub-features")});C(bm,E().describe("Service Instance implementing the protocol interface"));n({id:i(),name:bm,options:C(i(),E()).optional()});var ree=n({prefix:i().regex(/^\//).describe("URL path prefix for routing (e.g. /api/v1/data)"),service:bm.describe("Target core service name"),authRequired:c().default(!0).describe("Whether authentication is required"),criticality:oee.default("optional").describe("Service criticality level for unavailability handling"),permissions:m(i()).optional().describe("Required permissions for this route namespace")});n({routes:m(ree).describe("Route-to-service mappings"),fallback:h(["404","proxy","custom"]).default("404").describe("Behavior when no route matches"),proxyTarget:i().url().optional().describe('Proxy target URL when fallback is "proxy"')});var nee=n({port:u().int().min(1).max(65535).default(3e3).describe("Port number to listen on"),host:i().default("0.0.0.0").describe("Host address to bind to"),cors:LA.optional().describe("CORS configuration"),requestTimeout:u().int().default(3e4).describe("Request timeout in milliseconds"),bodyLimit:i().default("10mb").describe("Maximum request body size"),compression:c().default(!0).describe("Enable response compression"),security:n({helmet:c().default(!0).describe("Enable security headers via helmet"),rateLimit:sv.optional().describe("Global rate limiting configuration")}).optional().describe("Security configuration"),static:m(zA).optional().describe("Static file serving configuration"),trustProxy:c().default(!1).describe("Trust X-Forwarded-* headers")});n({method:xo.describe("HTTP method"),path:i().describe("URL path pattern"),handler:i().describe("Handler identifier or name"),metadata:n({summary:i().optional().describe("Route summary for documentation"),description:i().optional().describe("Route description"),tags:m(i()).optional().describe("Tags for grouping"),operationId:i().optional().describe("Unique operation identifier")}).optional(),security:n({authRequired:c().default(!0).describe("Require authentication"),permissions:m(i()).optional().describe("Required permissions"),rateLimit:i().optional().describe("Rate limit policy override")}).optional()});var see=h(["authentication","authorization","logging","validation","transformation","error","custom"]),bv=n({name:i().regex(/^[a-z_][a-z0-9_]*$/).describe("Middleware name (snake_case)"),type:see.describe("Middleware type"),enabled:c().default(!0).describe("Whether middleware is enabled"),order:u().int().default(100).describe("Execution order priority"),config:C(i(),E()).optional().describe("Middleware configuration object"),paths:n({include:m(i()).optional().describe("Include path patterns (glob)"),exclude:m(i()).optional().describe("Exclude path patterns (glob)")}).optional().describe("Path filtering")}),lee=h(["starting","started","stopping","stopped","request","response","error"]);n({type:lee.describe("Event type"),timestamp:i().datetime().describe("Event timestamp (ISO 8601)"),data:C(i(),E()).optional().describe("Event-specific data")});n({httpVersions:m(h(["1.0","1.1","2.0","3.0"])).default(["1.1"]).describe("Supported HTTP versions"),websocket:c().default(!1).describe("WebSocket support"),sse:c().default(!1).describe("Server-Sent Events support"),serverPush:c().default(!1).describe("HTTP/2 Server Push support"),streaming:c().default(!0).describe("Response streaming support"),middleware:c().default(!0).describe("Middleware chain support"),routeParams:c().default(!0).describe("URL parameter support (/users/:id)"),compression:c().default(!0).describe("Built-in compression support")});n({state:h(["stopped","starting","running","stopping","error"]).describe("Current server state"),uptime:u().int().optional().describe("Server uptime in milliseconds"),server:n({port:u().int().describe("Listening port"),host:i().describe("Bound host"),url:i().optional().describe("Full server URL")}).optional(),connections:n({active:u().int().describe("Active connections"),total:u().int().describe("Total connections handled")}).optional(),requests:n({total:u().int().describe("Total requests processed"),success:u().int().describe("Successful requests"),errors:u().int().describe("Failed requests")}).optional()});Object.assign(nee,{create:e=>e});Object.assign(bv,{create:e=>e});var g_=h(["discovery","metadata","data","batch","permission","analytics","automation","workflow","ui","realtime","notification","ai","i18n"]),cee=n({method:xo.describe("HTTP method for this endpoint"),path:i().describe("URL path pattern (e.g., /api/v1/data/:object/:id)"),handler:i().describe("Protocol method name or handler identifier"),category:g_.describe("Route category"),public:c().default(!1).describe("Is publicly accessible without authentication"),permissions:m(i()).optional().describe('Required permissions (e.g., ["data.read", "object.account.read"])'),summary:i().optional().describe("Short description for OpenAPI"),description:i().optional().describe("Detailed description for OpenAPI"),tags:m(i()).optional().describe("OpenAPI tags for grouping"),requestSchema:i().optional().describe("Request schema name (for validation)"),responseSchema:i().optional().describe("Response schema name (for documentation)"),timeout:u().int().optional().describe("Request timeout in milliseconds"),rateLimit:i().optional().describe("Rate limit policy name"),cacheable:c().default(!1).describe("Whether response can be cached"),cacheTtl:u().int().optional().describe("Cache TTL in seconds")}),y_=n({prefix:i().regex(/^\//).describe("URL path prefix for this route group"),service:i().describe("Core service name (metadata, data, auth, etc.)"),category:g_.describe("Primary category for this route group"),methods:m(i()).optional().describe("Protocol method names implemented"),endpoints:m(cee).optional().describe("Endpoint definitions"),middleware:m(bv).optional().describe("Middleware stack for this route group"),authRequired:c().default(!0).describe("Whether authentication is required by default"),documentation:n({title:i().optional().describe("Route group title"),description:i().optional().describe("Route group description"),tags:m(i()).optional().describe("OpenAPI tags")}).optional().describe("Documentation metadata for this route group")}),dee=h(["strict","permissive","strip"]),uee=n({enabled:c().default(!0).describe("Enable automatic request validation"),mode:dee.default("strict").describe("How to handle validation errors"),validateBody:c().default(!0).describe("Validate request body against schema"),validateQuery:c().default(!0).describe("Validate query string parameters"),validateParams:c().default(!0).describe("Validate URL path parameters"),validateHeaders:c().default(!1).describe("Validate request headers"),includeFieldErrors:c().default(!0).describe("Include field-level error details in response"),errorPrefix:i().optional().describe("Custom prefix for validation error messages"),schemaRegistry:i().optional().describe("Schema registry name to use for validation")}),pee=n({enabled:c().default(!0).describe("Enable automatic response envelope wrapping"),includeMetadata:c().default(!0).describe("Include meta object in responses"),includeTimestamp:c().default(!0).describe("Include timestamp in response metadata"),includeRequestId:c().default(!0).describe("Include requestId in response metadata"),includeDuration:c().default(!1).describe("Include request duration in ms"),includeTraceId:c().default(!1).describe("Include distributed traceId"),customMetadata:C(i(),E()).optional().describe("Additional metadata fields to include"),skipIfWrapped:c().default(!0).describe("Skip wrapping if response already has success field")}),mee=n({enabled:c().default(!0).describe("Enable standardized error handling"),includeStackTrace:c().default(!1).describe("Include stack traces in error responses"),logErrors:c().default(!0).describe("Log errors to system logger"),exposeInternalErrors:c().default(!1).describe("Expose internal error details in responses"),includeRequestId:c().default(!0).describe("Include requestId in error responses"),includeTimestamp:c().default(!0).describe("Include timestamp in error responses"),includeDocumentation:c().default(!0).describe("Include documentation URLs for errors"),documentationBaseUrl:i().url().optional().describe("Base URL for error documentation"),customErrorMessages:C(i(),i()).optional().describe("Custom error messages by error code"),redactFields:m(i()).optional().describe("Field names to redact from error details")}),fee=n({enabled:c().default(!0).describe("Enable automatic OpenAPI documentation generation"),version:h(["3.0.0","3.0.1","3.0.2","3.0.3","3.1.0"]).default("3.0.3").describe("OpenAPI specification version"),title:i().default("ObjectStack API").describe("API title"),description:i().optional().describe("API description"),apiVersion:i().default("1.0.0").describe("API version"),outputPath:i().default("/api/docs/openapi.json").describe("URL path to serve OpenAPI JSON"),uiPath:i().default("/api/docs").describe("URL path to serve documentation UI"),uiFramework:h(["swagger-ui","redoc","rapidoc","elements"]).default("swagger-ui").describe("Documentation UI framework"),includeInternal:c().default(!1).describe("Include internal endpoints in documentation"),generateSchemas:c().default(!0).describe("Auto-generate schemas from Zod definitions"),includeExamples:c().default(!0).describe("Include request/response examples"),servers:m(n({url:i().describe("Server URL"),description:i().optional().describe("Server description")})).optional().describe("Server URLs for API"),contact:n({name:i().optional(),url:i().url().optional(),email:i().email().optional()}).optional().describe("API contact information"),license:n({name:i().describe("License name"),url:i().url().optional().describe("License URL")}).optional().describe("API license information"),securitySchemes:C(i(),n({type:h(["apiKey","http","oauth2","openIdConnect"]),scheme:i().optional(),bearerFormat:i().optional()})).optional().describe("Security scheme definitions")}),bee=n({enabled:c().default(!0).describe("Enable REST API plugin"),basePath:i().default("/api").describe("Base path for all API routes"),version:i().default("v1").describe("API version identifier"),routes:m(y_).describe("Route registrations"),validation:uee.optional().describe("Request validation configuration"),responseEnvelope:pee.optional().describe("Response envelope configuration"),errorHandling:mee.optional().describe("Error handling configuration"),openApi:fee.optional().describe("OpenAPI documentation configuration"),globalMiddleware:m(bv).optional().describe("Global middleware stack"),cors:n({enabled:c().default(!0),origins:m(i()).optional(),methods:m(xo).optional(),credentials:c().default(!0)}).optional().describe("CORS configuration"),performance:n({enableCompression:c().default(!0).describe("Enable response compression"),enableETag:c().default(!0).describe("Enable ETag generation"),enableCaching:c().default(!0).describe("Enable HTTP caching"),defaultCacheTtl:u().int().default(300).describe("Default cache TTL in seconds")}).optional().describe("Performance optimization settings")});Object.assign(bee,{create:e=>e});Object.assign(y_,{create:e=>e});var UE={},FE={},hee=Object.defineProperty,gee=(e,t)=>{for(var a in t)hee(e,a,{get:t[a],enumerable:!0})},hv=typeof process<"u"&&process.versions!=null&&process.versions.node!=null;function yee(e,t){if(typeof process<"u"&&FE)return FE[e]||t;try{if(typeof globalThis<"u"&&UE)return UE[e]||t}catch{}return t}function BE(e=0){hv&&process.exit(e)}var vee=class v_{constructor(t={}){this.isNode=hv,this.config={name:t.name,level:t.level??"info",format:t.format??(this.isNode?"json":"pretty"),redact:t.redact??["password","token","secret","key"],sourceLocation:t.sourceLocation??!1,file:t.file,rotation:t.rotation??{maxSize:"10m",maxFiles:5}},this.isNode&&this.initPinoLogger()}async initPinoLogger(){if(this.isNode)try{const{createRequire:t}=await jT(async()=>{const{createRequire:p}=await import("./__vite-browser-external-BIHI7g3E.js");return{createRequire:p}},[],import.meta.url);this.require=t(import.meta.url);const a=this.require("pino"),r={level:this.config.level,redact:{paths:this.config.redact,censor:"***REDACTED***"}};this.config.name&&(r.name=this.config.name);const l=[];if(this.config.format==="pretty"){let p=!1;try{this.require.resolve("pino-pretty"),p=!0}catch{}p?l.push({target:"pino-pretty",options:{colorize:!0,translateTime:"SYS:standard",ignore:"pid,hostname"},level:this.config.level}):(console.warn("[Logger] pino-pretty not found. Install it for pretty logging: pnpm add -D pino-pretty"),l.push({target:"pino/file",options:{destination:1},level:this.config.level}))}else this.config.format==="json"?l.push({target:"pino/file",options:{destination:1},level:this.config.level}):l.push({target:"pino/file",options:{destination:1},level:this.config.level});this.config.file&&l.push({target:"pino/file",options:{destination:this.config.file,mkdir:!0},level:this.config.level}),l.length>0&&(r.transport=l.length===1?l[0]:{targets:l}),this.pinoInstance=a(r),this.pinoLogger=this.pinoInstance}catch(t){console.warn("[Logger] Pino not available, falling back to console:",t),this.pinoLogger=null}}redactSensitive(t){if(!t||typeof t!="object")return t;const a=Array.isArray(t)?[...t]:{...t};for(const r in a){const l=r.toLowerCase();this.config.redact.some(b=>l.includes(b.toLowerCase()))?a[r]="***REDACTED***":typeof a[r]=="object"&&a[r]!==null&&(a[r]=this.redactSensitive(a[r]))}return a}formatBrowserLog(t,a,r){if(this.config.format==="json")return JSON.stringify({timestamp:new Date().toISOString(),level:t,message:a,...r});if(this.config.format==="text"){const x=[new Date().toISOString(),t.toUpperCase(),a];return r&&Object.keys(r).length>0&&x.push(JSON.stringify(r)),x.join(" | ")}let g=`${{debug:"\x1B[36m",info:"\x1B[32m",warn:"\x1B[33m",error:"\x1B[31m",fatal:"\x1B[35m",silent:""}[t]||""}[${t.toUpperCase()}]\x1B[0m ${a}`;return r&&Object.keys(r).length>0&&(g+=` ${JSON.stringify(r,null,2)}`),g}logBrowser(t,a,r,l){const p=r?this.redactSensitive(r):void 0,b=l?{...p,error:{message:l.message,stack:l.stack}}:p,g=this.formatBrowserLog(t,a,b);console[t==="debug"?"debug":t==="info"?"log":t==="warn"?"warn":t==="error"||t==="fatal"?"error":"log"](g)}debug(t,a){this.isNode&&this.pinoLogger?this.pinoLogger.debug(a||{},t):this.logBrowser("debug",t,a)}info(t,a){this.isNode&&this.pinoLogger?this.pinoLogger.info(a||{},t):this.logBrowser("info",t,a)}warn(t,a){this.isNode&&this.pinoLogger?this.pinoLogger.warn(a||{},t):this.logBrowser("warn",t,a)}error(t,a,r){let l,p={};if(a instanceof Error?(l=a,p=r||{}):p=a||{},this.isNode&&this.pinoLogger){const b=l?{err:l,...p}:p;this.pinoLogger.error(b,t)}else this.logBrowser("error",t,p,l)}fatal(t,a,r){let l,p={};if(a instanceof Error?(l=a,p=r||{}):p=a||{},this.isNode&&this.pinoLogger){const b=l?{err:l,...p}:p;this.pinoLogger.fatal(b,t)}else this.logBrowser("fatal",t,p,l)}child(t){const a=new v_(this.config);return this.isNode&&this.pinoInstance&&(a.pinoLogger=this.pinoInstance.child(t),a.pinoInstance=this.pinoInstance),a}withTrace(t,a){return this.child({traceId:t,spanId:a})}async destroy(){this.pinoLogger&&this.pinoLogger.flush&&await new Promise(t=>{this.pinoLogger.flush(()=>t())})}log(t,...a){this.info(t,a.length>0?{args:a}:void 0)}};function hm(e){return new vee(e)}var See=class{constructor(e){this.logger=e}validatePluginConfig(e,t){if(!e.configSchema)return this.logger.debug(`Plugin ${e.name} has no config schema - skipping validation`),t;try{const a=e.configSchema.parse(t);return this.logger.debug(`✅ Plugin config validated: ${e.name}`,{plugin:e.name,configKeys:Object.keys(t||{}).length}),a}catch(a){if(a instanceof TE){const r=this.formatZodErrors(a),l=[`Plugin ${e.name} configuration validation failed:`,...r.map(p=>` - ${p.path}: ${p.message}`)].join(`
|
|
48
48
|
`);throw this.logger.error(l,void 0,{plugin:e.name,errors:r}),new Error(l)}throw a}}validatePartialConfig(e,t){if(!e.configSchema)return t;try{const r=e.configSchema.partial().parse(t);return this.logger.debug(`✅ Partial config validated: ${e.name}`),r}catch(a){if(a instanceof TE){const r=this.formatZodErrors(a),l=[`Plugin ${e.name} partial configuration validation failed:`,...r.map(p=>` - ${p.path}: ${p.message}`)].join(`
|
|
49
|
-
`);throw new Error(l)}throw a}}getDefaultConfig(e){if(e.configSchema)try{const t=e.configSchema.parse({});return this.logger.debug(`Default config extracted: ${e.name}`),t}catch{this.logger.debug(`No default config available: ${e.name}`);return}}isConfigValid(e,t){return e.configSchema?e.configSchema.safeParse(t).success:!0}getConfigErrors(e,t){if(!e.configSchema)return[];const a=e.configSchema.safeParse(t);return a.success?[]:this.formatZodErrors(a.error)}formatZodErrors(e){return e.issues.map(t=>({path:t.path.join(".")||"root",message:t.message}))}},xee=class{constructor(e){this.loadedPlugins=new Map,this.serviceFactories=new Map,this.serviceInstances=new Map,this.scopedServices=new Map,this.creating=new Set,this.logger=e,this.configValidator=new See(e)}setContext(e){this.context=e}getServiceInstance(e){return this.serviceInstances.get(e)}async loadPlugin(e){const t=Date.now();try{this.logger.info(`Loading plugin: ${e.name}`);const a=this.toPluginMetadata(e);this.validatePluginStructure(a);const r=this.checkVersionCompatibility(a);if(!r.compatible)throw new Error(`Version incompatible: ${r.message}`);a.configSchema&&this.validatePluginConfig(a),a.signature&&await this.verifyPluginSignature(a),this.loadedPlugins.set(a.name,a);const l=Date.now()-t;return this.logger.info(`Plugin loaded: ${e.name} (${l}ms)`),{success:!0,plugin:a,loadTime:l}}catch(a){return this.logger.error(`Failed to load plugin: ${e.name}`,a),{success:!1,error:a,loadTime:Date.now()-t}}}registerServiceFactory(e){if(this.serviceFactories.has(e.name))throw new Error(`Service factory '${e.name}' already registered`);this.serviceFactories.set(e.name,e),this.logger.debug(`Service factory registered: ${e.name} (${e.lifecycle})`)}async getService(e,t){const a=this.serviceFactories.get(e);if(!a){const r=this.serviceInstances.get(e);if(!r)throw new Error(`Service '${e}' not found`);return r}switch(a.lifecycle){case"singleton":return await this.getSingletonService(a);case"transient":return await this.createTransientService(a);case"scoped":if(!t)throw new Error(`Scope ID required for scoped service '${e}'`);return await this.getScopedService(a,t);default:throw new Error(`Unknown service lifecycle: ${a.lifecycle}`)}}registerService(e,t){if(this.serviceInstances.has(e))throw new Error(`Service '${e}' already registered`);this.serviceInstances.set(e,t)}hasService(e){return this.serviceInstances.has(e)||this.serviceFactories.has(e)}detectCircularDependencies(){const e=[],t=new Set,a=new Set,r=(l,p=[])=>{if(a.has(l)){const g=[...p,l].join(" -> ");e.push(g);return}if(t.has(l))return;a.add(l);const b=this.serviceFactories.get(l);if(b?.dependencies)for(const g of b.dependencies)r(g,[...p,l]);a.delete(l),t.add(l)};for(const l of this.serviceFactories.keys())r(l);return e}async checkPluginHealth(e){const t=this.loadedPlugins.get(e);if(!t)return{healthy:!1,message:"Plugin not found",lastCheck:new Date};if(!t.healthCheck)return{healthy:!0,message:"No health check defined",lastCheck:new Date};try{return{...await t.healthCheck(),lastCheck:new Date}}catch(a){return{healthy:!1,message:`Health check failed: ${a.message}`,lastCheck:new Date}}}clearScope(e){this.scopedServices.delete(e),this.logger.debug(`Cleared scope: ${e}`)}getLoadedPlugins(){return new Map(this.loadedPlugins)}toPluginMetadata(e){const t=e;return t.version||(t.version="0.0.0"),t}validatePluginStructure(e){if(!e.name)throw new Error("Plugin name is required");if(!e.init)throw new Error("Plugin init function is required");if(!this.isValidSemanticVersion(e.version))throw new Error(`Invalid semantic version: ${e.version}`)}checkVersionCompatibility(e){const t=e.version;return this.isValidSemanticVersion(t)?{compatible:!0,pluginVersion:t}:{compatible:!1,pluginVersion:t,message:"Invalid semantic version format"}}isValidSemanticVersion(e){return/^\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$/.test(e)}validatePluginConfig(e,t){if(e.configSchema){if(t===void 0){this.logger.debug(`Plugin ${e.name} has configuration schema (config validation postponed)`);return}this.configValidator.validatePluginConfig(e,t)}}async verifyPluginSignature(e){e.signature&&this.logger.debug(`Plugin ${e.name} has signature (use PluginSignatureVerifier for verification)`)}async getSingletonService(e){let t=this.serviceInstances.get(e.name);return t||(t=await this.createServiceInstance(e),this.serviceInstances.set(e.name,t),this.logger.debug(`Singleton service created: ${e.name}`)),t}async createTransientService(e){const t=await this.createServiceInstance(e);return this.logger.debug(`Transient service created: ${e.name}`),t}async getScopedService(e,t){this.scopedServices.has(t)||this.scopedServices.set(t,new Map);const a=this.scopedServices.get(t);let r=a.get(e.name);return r||(r=await this.createServiceInstance(e),a.set(e.name,r),this.logger.debug(`Scoped service created: ${e.name} (scope: ${t})`)),r}async createServiceInstance(e){if(!this.context)throw new Error(`[PluginLoader] Context not set - cannot create service '${e.name}'`);if(this.creating.has(e.name))throw new Error(`Circular dependency detected: ${Array.from(this.creating).join(" -> ")} -> ${e.name}`);this.creating.add(e.name);try{return await e.factory(this.context)}finally{this.creating.delete(e.name)}}},wee=class{constructor(e={}){this.plugins=new Map,this.services=new Map,this.hooks=new Map,this.state="idle",this.startedPlugins=new Set,this.pluginStartTimes=new Map,this.shutdownHandlers=[],this.config={defaultStartupTimeout:3e4,gracefulShutdown:!0,shutdownTimeout:6e4,rollbackOnFailure:!0,...e},this.logger=hm(e.logger),this.pluginLoader=new xee(this.logger),this.context={registerService:(t,a)=>{this.registerService(t,a)},getService:t=>{const a=this.services.get(t);if(a)return a;const r=this.pluginLoader.getServiceInstance(t);if(r)return this.services.set(t,r),r;try{const l=this.pluginLoader.getService(t);if(l instanceof Promise)throw l.catch(()=>{}),new Error(`Service '${t}' is async - use await`);return l}catch(l){throw l.message?.includes("is async")||!(l.message===`Service '${t}' not found`)?l:new Error(`[Kernel] Service '${t}' not found`)}},hook:(t,a)=>{this.hooks.has(t)||this.hooks.set(t,[]),this.hooks.get(t).push(a)},trigger:async(t,...a)=>{const r=this.hooks.get(t)||[];for(const l of r)await l(...a)},getServices:()=>new Map(this.services),logger:this.logger,getKernel:()=>this},this.pluginLoader.setContext(this.context),this.config.gracefulShutdown&&this.registerShutdownSignals()}async use(e){if(this.state!=="idle")throw new Error("[Kernel] Cannot register plugins after bootstrap has started");const t=await this.pluginLoader.loadPlugin(e);if(!t.success||!t.plugin)throw new Error(`Failed to load plugin: ${e.name} - ${t.error?.message}`);const a=t.plugin;return this.plugins.set(a.name,a),this.logger.info(`Plugin registered: ${a.name}@${a.version}`,{plugin:a.name,version:a.version}),this}registerService(e,t){if(this.services.has(e))throw new Error(`[Kernel] Service '${e}' already registered`);return this.services.set(e,t),this.pluginLoader.registerService(e,t),this.logger.info(`Service '${e}' registered`,{service:e}),this}registerServiceFactory(e,t,a="singleton",r){return this.pluginLoader.registerServiceFactory({name:e,factory:t,lifecycle:a,dependencies:r}),this}validateSystemRequirements(){if(this.config.skipSystemValidation){this.logger.debug("System requirement validation skipped");return}this.logger.debug("Validating system service requirements...");const e=[],t=[];for(const[a,r]of Object.entries(CZ))this.services.has(a)||this.pluginLoader.hasService(a)||(r==="required"?(this.logger.error(`CRITICAL: Required service missing: ${a}`),e.push(a)):r==="core"?(this.logger.warn(`CORE: Core service missing, functionality may be degraded: ${a}`),t.push(a)):this.logger.info(`Info: Optional service not present: ${a}`));if(e.length>0){const a=`System failed to start. Missing critical services: ${e.join(", ")}`;throw this.logger.error(a),new Error(a)}t.length>0&&this.logger.warn(`System started with degraded capabilities. Missing core services: ${t.join(", ")}`),this.logger.info("System requirement check passed")}async bootstrap(){if(this.state!=="idle")throw new Error("[Kernel] Kernel already bootstrapped");this.state="initializing",this.logger.info("Bootstrap started");try{const e=this.pluginLoader.detectCircularDependencies();e.length>0&&this.logger.warn("Circular service dependencies detected:",{cycles:e});const t=this.resolveDependencies();this.logger.info("Phase 1: Init plugins");for(const a of t)await this.initPluginWithTimeout(a);this.logger.info("Phase 2: Start plugins"),this.state="running";for(const a of t){const r=await this.startPluginWithTimeout(a);if(!r.success&&(this.logger.error(`Plugin startup failed: ${a.name}`,r.error),this.config.rollbackOnFailure))throw this.logger.warn("Rolling back started plugins..."),await this.rollbackStartedPlugins(),new Error(`Plugin ${a.name} failed to start - rollback complete`)}this.validateSystemRequirements(),this.logger.debug("Triggering kernel:ready hook"),await this.context.trigger("kernel:ready"),this.logger.info("✅ Bootstrap complete")}catch(e){throw this.state="stopped",e}}async shutdown(){if(this.state==="stopped"||this.state==="stopping"){this.logger.warn("Kernel already stopped or stopping");return}if(this.state!=="running")throw new Error("[Kernel] Kernel not running");this.state="stopping",this.logger.info("Graceful shutdown started");try{const e=this.performShutdown(),t=new Promise((a,r)=>{setTimeout(()=>{r(new Error("Shutdown timeout exceeded"))},this.config.shutdownTimeout)});await Promise.race([e,t]),this.state="stopped",this.logger.info("✅ Graceful shutdown complete")}catch(e){throw this.logger.error("Shutdown error - forcing stop",e),this.state="stopped",e}finally{await this.logger.destroy()}}async checkPluginHealth(e){return await this.pluginLoader.checkPluginHealth(e)}async checkAllPluginsHealth(){const e=new Map;for(const t of this.plugins.keys()){const a=await this.checkPluginHealth(t);e.set(t,a)}return e}getPluginMetrics(){return new Map(this.pluginStartTimes)}getService(e){return this.context.getService(e)}async getServiceAsync(e,t){return await this.pluginLoader.getService(e,t)}isRunning(){return this.state==="running"}getState(){return this.state}async initPluginWithTimeout(e){const t=e.startupTimeout||this.config.defaultStartupTimeout;this.logger.debug(`Init: ${e.name}`,{plugin:e.name});const a=e.init(this.context),r=new Promise((l,p)=>{setTimeout(()=>{p(new Error(`Plugin ${e.name} init timeout after ${t}ms`))},t)});await Promise.race([a,r])}async startPluginWithTimeout(e){if(!e.start)return{success:!0,pluginName:e.name};const t=e.startupTimeout||this.config.defaultStartupTimeout,a=Date.now();this.logger.debug(`Start: ${e.name}`,{plugin:e.name});try{const r=e.start(this.context),l=new Promise((b,g)=>{setTimeout(()=>{g(new Error(`Plugin ${e.name} start timeout after ${t}ms`))},t)});await Promise.race([r,l]);const p=Date.now()-a;return this.startedPlugins.add(e.name),this.pluginStartTimes.set(e.name,p),this.logger.debug(`Plugin started: ${e.name} (${p}ms)`),{success:!0,pluginName:e.name,startTime:p}}catch(r){const l=Date.now()-a,p=r.message.includes("timeout");return{success:!1,pluginName:e.name,error:r,startTime:l,timedOut:p}}}async rollbackStartedPlugins(){const e=Array.from(this.startedPlugins).reverse();for(const t of e){const a=this.plugins.get(t);if(a?.destroy)try{this.logger.debug(`Rollback: ${t}`),await a.destroy()}catch(r){this.logger.error(`Rollback failed for ${t}`,r)}}this.startedPlugins.clear()}async performShutdown(){await this.context.trigger("kernel:shutdown");const e=Array.from(this.plugins.values()).reverse();for(const t of e)if(t.destroy){this.logger.debug(`Destroy: ${t.name}`,{plugin:t.name});try{await t.destroy()}catch(a){this.logger.error(`Error destroying plugin ${t.name}`,a)}}for(const t of this.shutdownHandlers)try{await t()}catch(a){this.logger.error("Shutdown handler error",a)}}resolveDependencies(){const e=[],t=new Set,a=new Set,r=l=>{if(t.has(l))return;if(a.has(l))throw new Error(`[Kernel] Circular dependency detected: ${l}`);const p=this.plugins.get(l);if(!p)throw new Error(`[Kernel] Plugin '${l}' not found`);a.add(l);const b=p.dependencies||[];for(const g of b){if(!this.plugins.has(g))throw new Error(`[Kernel] Dependency '${g}' not found for plugin '${l}'`);r(g)}a.delete(l),t.add(l),e.push(p)};for(const l of this.plugins.keys())r(l);return e}registerShutdownSignals(){const e=["SIGINT","SIGTERM","SIGQUIT"];let t=!1;const a=async r=>{if(t){this.logger.warn(`Shutdown already in progress, ignoring ${r}`);return}t=!0,this.logger.info(`Received ${r} - initiating graceful shutdown`);try{await this.shutdown(),BE(0)}catch(l){this.logger.error("Shutdown failed",l),BE(1)}};if(hv)for(const r of e)process.on(r,()=>a(r))}onShutdown(e){this.shutdownHandlers.push(e)}},kee={};gee(kee,{HttpTestAdapter:()=>Eee,TestRunner:()=>Cee});var Cee=class{constructor(e){this.adapter=e}async runSuite(e){const t=[];for(const a of e.scenarios)t.push(await this.runScenario(a));return t}async runScenario(e){const t=Date.now(),a={};if(e.setup)for(const b of e.setup)try{await this.runStep(b,a)}catch(g){return{scenarioId:e.id,passed:!1,steps:[],error:`Setup failed: ${g instanceof Error?g.message:String(g)}`,duration:Date.now()-t}}const r=[];let l=!0,p;for(const b of e.steps){const g=Date.now();try{const x=await this.runStep(b,a);r.push({stepName:b.name,passed:!0,output:x,duration:Date.now()-g})}catch(x){l=!1,p=x,r.push({stepName:b.name,passed:!1,error:x,duration:Date.now()-g});break}}if(e.teardown)for(const b of e.teardown)try{await this.runStep(b,a)}catch(g){l&&(l=!1,p=`Teardown failed: ${g instanceof Error?g.message:String(g)}`)}return{scenarioId:e.id,passed:l,steps:r,error:p,duration:Date.now()-t}}async runStep(e,t){const a=this.resolveVariables(e.action,t),r=await this.adapter.execute(a,t);if(e.capture)for(const[l,p]of Object.entries(e.capture))t[l]=this.getValueByPath(r,p);if(e.assertions)for(const l of e.assertions)this.assert(r,l,t);return r}resolveVariables(e,t){const r=JSON.stringify(e).replace(/\{\{([^}]+)\}\}/g,(l,p)=>{const b=this.getValueByPath(t,p.trim());return b===void 0?l:typeof b=="string"?b:JSON.stringify(b)});try{return JSON.parse(r)}catch{return e}}getValueByPath(e,t){if(!t)return e;const a=t.split(".");let r=e;for(const l of a){if(r==null)return;r=r[l]}return r}assert(e,t,a){const r=this.getValueByPath(e,t.field),l=t.expectedValue;switch(t.operator){case"equals":if(r!==l)throw new Error(`Assertion failed: ${t.field} expected ${l}, got ${r}`);break;case"not_equals":if(r===l)throw new Error(`Assertion failed: ${t.field} expected not ${l}, got ${r}`);break;case"contains":if(Array.isArray(r)){if(!r.includes(l))throw new Error(`Assertion failed: ${t.field} array does not contain ${l}`)}else if(typeof r=="string"&&!r.includes(String(l)))throw new Error(`Assertion failed: ${t.field} string does not contain ${l}`);break;case"not_null":if(r==null)throw new Error(`Assertion failed: ${t.field} is null`);break;case"is_null":if(r!=null)throw new Error(`Assertion failed: ${t.field} is not null`);break;default:throw new Error(`Unknown assertion operator: ${t.operator}`)}}},Eee=class{constructor(e,t){this.baseUrl=e,this.authToken=t}async execute(e,t){const a={"Content-Type":"application/json"};switch(this.authToken&&(a.Authorization=`Bearer ${this.authToken}`),e.user&&(a["X-Run-As"]=e.user),e.type){case"create_record":return this.createRecord(e.target,e.payload||{},a);case"update_record":return this.updateRecord(e.target,e.payload||{},a);case"delete_record":return this.deleteRecord(e.target,e.payload||{},a);case"read_record":return this.readRecord(e.target,e.payload||{},a);case"query_records":return this.queryRecords(e.target,e.payload||{},a);case"api_call":return this.rawApiCall(e.target,e.payload||{},a);case"wait":const r=Number(e.payload?.duration||1e3);return new Promise(l=>setTimeout(()=>l({waited:r}),r));default:throw new Error(`Unsupported action type in HttpAdapter: ${e.type}`)}}async createRecord(e,t,a){const r=await fetch(`${this.baseUrl}/api/data/${e}`,{method:"POST",headers:a,body:JSON.stringify(t)});return this.handleResponse(r)}async updateRecord(e,t,a){const r=t._id||t.id;if(!r)throw new Error("Update record requires _id or id in payload");const l=await fetch(`${this.baseUrl}/api/data/${e}/${r}`,{method:"PUT",headers:a,body:JSON.stringify(t)});return this.handleResponse(l)}async deleteRecord(e,t,a){const r=t._id||t.id;if(!r)throw new Error("Delete record requires _id or id in payload");const l=await fetch(`${this.baseUrl}/api/data/${e}/${r}`,{method:"DELETE",headers:a});return this.handleResponse(l)}async readRecord(e,t,a){const r=t._id||t.id;if(!r)throw new Error("Read record requires _id or id in payload");const l=await fetch(`${this.baseUrl}/api/data/${e}/${r}`,{method:"GET",headers:a});return this.handleResponse(l)}async queryRecords(e,t,a){const r=await fetch(`${this.baseUrl}/api/data/${e}/query`,{method:"POST",headers:a,body:JSON.stringify(t)});return this.handleResponse(r)}async rawApiCall(e,t,a){const r=t.method||"GET",l=t.body?JSON.stringify(t.body):void 0,p=e.startsWith("http")?e:`${this.baseUrl}${e}`,b=await fetch(p,{method:r,headers:a,body:l});return this.handleResponse(b)}async handleResponse(e){if(!e.ok){const a=await e.text();throw new Error(`HTTP Error ${e.status}: ${a}`)}const t=e.headers.get("content-type");return t&&t.includes("application/json")?e.json():e.text()}},Ree=class{constructor(e){this.meta={getTypes:async()=>{const t=this.getRoute("metadata"),a=await this.fetch(`${this.baseUrl}${t}`);return this.unwrapResponse(a)},getItems:async(t,a)=>{const r=this.getRoute("metadata"),l=new URLSearchParams;a?.packageId&&l.set("package",a.packageId);const p=l.toString(),b=`${this.baseUrl}${r}/${t}${p?`?${p}`:""}`,g=await this.fetch(b);return this.unwrapResponse(g)},getObject:async t=>{const a=this.getRoute("metadata"),r=await this.fetch(`${this.baseUrl}${a}/object/${t}`);return this.unwrapResponse(r)},getItem:async(t,a)=>{const r=this.getRoute("metadata"),l=await this.fetch(`${this.baseUrl}${r}/${t}/${a}`);return this.unwrapResponse(l)},saveItem:async(t,a,r)=>{const l=this.getRoute("metadata"),p=await this.fetch(`${this.baseUrl}${l}/${t}/${a}`,{method:"PUT",body:JSON.stringify(r)});return this.unwrapResponse(p)},getCached:async(t,a)=>{const r=this.getRoute("metadata"),l={};a?.ifNoneMatch&&(l["If-None-Match"]=a.ifNoneMatch),a?.ifModifiedSince&&(l["If-Modified-Since"]=a.ifModifiedSince);const p=await this.fetch(`${this.baseUrl}${r}/object/${t}`,{headers:l});if(p.status===304)return{notModified:!0,etag:a?.ifNoneMatch?{value:a.ifNoneMatch.replace(/^W\/|"/g,""),weak:a.ifNoneMatch.startsWith("W/")}:void 0};const b=await p.json(),g=p.headers.get("ETag"),x=p.headers.get("Last-Modified");return{data:b,etag:g?{value:g.replace(/^W\/|"/g,""),weak:g.startsWith("W/")}:void 0,lastModified:x||void 0,notModified:!1}},getView:async(t,a="list")=>{const r=this.getRoute("ui"),l=await this.fetch(`${this.baseUrl}${r}/view/${t}?type=${a}`);return this.unwrapResponse(l)}},this.analytics={query:async t=>{const a=this.getRoute("analytics");return(await this.fetch(`${this.baseUrl}${a}/query`,{method:"POST",body:JSON.stringify(t)})).json()},meta:async t=>{const a=this.getRoute("analytics");return(await this.fetch(`${this.baseUrl}${a}/meta/${t}`)).json()},explain:async t=>{const a=this.getRoute("analytics");return(await this.fetch(`${this.baseUrl}${a}/explain`,{method:"POST",body:JSON.stringify(t)})).json()}},this.packages={list:async t=>{const a=this.getRoute("packages"),r=new URLSearchParams;t?.status&&r.set("status",t.status),t?.type&&r.set("type",t.type),t?.enabled!==void 0&&r.set("enabled",String(t.enabled));const l=r.toString(),p=`${this.baseUrl}${a}${l?"?"+l:""}`,b=await this.fetch(p);return this.unwrapResponse(b)},get:async t=>{const a=this.getRoute("packages"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t)}`);return this.unwrapResponse(r)},install:async(t,a)=>{const r=this.getRoute("packages"),l=await this.fetch(`${this.baseUrl}${r}`,{method:"POST",body:JSON.stringify({manifest:t,settings:a?.settings,enableOnInstall:a?.enableOnInstall})});return this.unwrapResponse(l)},uninstall:async t=>{const a=this.getRoute("packages"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t)}`,{method:"DELETE"});return this.unwrapResponse(r)},enable:async t=>{const a=this.getRoute("packages"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t)}/enable`,{method:"PATCH"});return this.unwrapResponse(r)},disable:async t=>{const a=this.getRoute("packages"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t)}/disable`,{method:"PATCH"});return this.unwrapResponse(r)}},this.auth={login:async t=>{const a=this.getRoute("auth"),l=await(await this.fetch(`${this.baseUrl}${a}/sign-in/email`,{method:"POST",body:JSON.stringify(t)})).json();return l.data?.token&&(this.token=l.data.token),l},logout:async()=>{const t=this.getRoute("auth");await this.fetch(`${this.baseUrl}${t}/sign-out`,{method:"POST"}),this.token=void 0},me:async()=>{const t=this.getRoute("auth");return(await this.fetch(`${this.baseUrl}${t}/get-session`)).json()},register:async t=>{const a=this.getRoute("auth"),l=await(await this.fetch(`${this.baseUrl}${a}/sign-up/email`,{method:"POST",body:JSON.stringify(t)})).json();return l.data?.token&&(this.token=l.data.token),l},refreshToken:async t=>{const a=this.getRoute("auth"),l=await(await this.fetch(`${this.baseUrl}${a}/get-session`,{method:"GET"})).json();return l.data?.token&&(this.token=l.data.token),l}},this.storage={upload:async(t,a="user")=>{const r={filename:t.name,mimeType:t.type,size:t.size,scope:a},l=this.getRoute("storage"),p=await this.fetch(`${this.baseUrl}${l}/upload/presigned`,{method:"POST",body:JSON.stringify(r)}),{data:b}=await p.json(),g=await this.fetchImpl(b.uploadUrl,{method:b.method,headers:b.headers,body:t});if(!g.ok)throw new Error(`Storage Upload Failed: ${g.statusText}`);const x={fileId:b.fileId};return(await this.fetch(`${this.baseUrl}${l}/upload/complete`,{method:"POST",body:JSON.stringify(x)})).json()},getDownloadUrl:async t=>{const a=this.getRoute("storage");return(await(await this.fetch(`${this.baseUrl}${a}/files/${t}/url`)).json()).url}},this.automation={trigger:async(t,a)=>{const r=this.getRoute("automation");return(await this.fetch(`${this.baseUrl}${r}/trigger/${t}`,{method:"POST",body:JSON.stringify(a)})).json()}},this.permissions={check:async t=>{const a=this.getRoute("permissions"),r=await this.fetch(`${this.baseUrl}${a}/check`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)},getObjectPermissions:async t=>{const a=this.getRoute("permissions"),r=await this.fetch(`${this.baseUrl}${a}/permissions/${encodeURIComponent(t)}`);return this.unwrapResponse(r)},getEffectivePermissions:async()=>{const t=this.getRoute("permissions"),a=await this.fetch(`${this.baseUrl}${t}/permissions/effective`);return this.unwrapResponse(a)}},this.realtime={connect:async t=>{const a=this.getRoute("realtime"),r=await this.fetch(`${this.baseUrl}${a}/connect`,{method:"POST",body:JSON.stringify(t||{})});return this.unwrapResponse(r)},disconnect:async()=>{const t=this.getRoute("realtime");await this.fetch(`${this.baseUrl}${t}/disconnect`,{method:"POST"})},subscribe:async t=>{const a=this.getRoute("realtime"),r=await this.fetch(`${this.baseUrl}${a}/subscribe`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)},unsubscribe:async t=>{const a=this.getRoute("realtime");await this.fetch(`${this.baseUrl}${a}/unsubscribe`,{method:"POST",body:JSON.stringify({subscriptionId:t})})},setPresence:async(t,a)=>{const r=this.getRoute("realtime");await this.fetch(`${this.baseUrl}${r}/presence`,{method:"PUT",body:JSON.stringify({channel:t,state:a})})},getPresence:async t=>{const a=this.getRoute("realtime"),r=await this.fetch(`${this.baseUrl}${a}/presence/${encodeURIComponent(t)}`);return this.unwrapResponse(r)}},this.workflow={getConfig:async t=>{const a=this.getRoute("workflow"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t)}/config`);return this.unwrapResponse(r)},getState:async(t,a)=>{const r=this.getRoute("workflow"),l=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(t)}/${encodeURIComponent(a)}/state`);return this.unwrapResponse(l)},transition:async t=>{const a=this.getRoute("workflow"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t.object)}/${encodeURIComponent(t.recordId)}/transition`,{method:"POST",body:JSON.stringify({transition:t.transition,comment:t.comment,data:t.data})});return this.unwrapResponse(r)},approve:async t=>{const a=this.getRoute("workflow"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t.object)}/${encodeURIComponent(t.recordId)}/approve`,{method:"POST",body:JSON.stringify({comment:t.comment,data:t.data})});return this.unwrapResponse(r)},reject:async t=>{const a=this.getRoute("workflow"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t.object)}/${encodeURIComponent(t.recordId)}/reject`,{method:"POST",body:JSON.stringify({reason:t.reason,comment:t.comment})});return this.unwrapResponse(r)}},this.views={list:async(t,a)=>{const r=this.getRoute("views"),l=new URLSearchParams;a&&l.set("type",a);const p=l.toString(),b=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(t)}${p?`?${p}`:""}`);return this.unwrapResponse(b)},get:async(t,a)=>{const r=this.getRoute("views"),l=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(t)}/${encodeURIComponent(a)}`);return this.unwrapResponse(l)},create:async(t,a)=>{const r=this.getRoute("views"),l=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({object:t,data:a})});return this.unwrapResponse(l)},update:async(t,a,r)=>{const l=this.getRoute("views"),p=await this.fetch(`${this.baseUrl}${l}/${encodeURIComponent(t)}/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({object:t,viewId:a,data:r})});return this.unwrapResponse(p)},delete:async(t,a)=>{const r=this.getRoute("views"),l=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(t)}/${encodeURIComponent(a)}`,{method:"DELETE"});return this.unwrapResponse(l)}},this.notifications={registerDevice:async t=>{const a=this.getRoute("notifications"),r=await this.fetch(`${this.baseUrl}${a}/devices`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)},unregisterDevice:async t=>{const a=this.getRoute("notifications"),r=await this.fetch(`${this.baseUrl}${a}/devices/${encodeURIComponent(t)}`,{method:"DELETE"});return this.unwrapResponse(r)},getPreferences:async()=>{const t=this.getRoute("notifications"),a=await this.fetch(`${this.baseUrl}${t}/preferences`);return this.unwrapResponse(a)},updatePreferences:async t=>{const a=this.getRoute("notifications"),r=await this.fetch(`${this.baseUrl}${a}/preferences`,{method:"PUT",body:JSON.stringify({preferences:t})});return this.unwrapResponse(r)},list:async t=>{const a=this.getRoute("notifications"),r=new URLSearchParams;t?.read!==void 0&&r.set("read",String(t.read)),t?.type&&r.set("type",t.type),t?.limit&&r.set("limit",String(t.limit)),t?.cursor&&r.set("cursor",t.cursor);const l=r.toString(),p=await this.fetch(`${this.baseUrl}${a}${l?`?${l}`:""}`);return this.unwrapResponse(p)},markRead:async t=>{const a=this.getRoute("notifications"),r=await this.fetch(`${this.baseUrl}${a}/read`,{method:"POST",body:JSON.stringify({ids:t})});return this.unwrapResponse(r)},markAllRead:async()=>{const t=this.getRoute("notifications"),a=await this.fetch(`${this.baseUrl}${t}/read/all`,{method:"POST"});return this.unwrapResponse(a)}},this.ai={nlq:async t=>{const a=this.getRoute("ai"),r=await this.fetch(`${this.baseUrl}${a}/nlq`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)},chat:async t=>{const a=this.getRoute("ai"),r=await this.fetch(`${this.baseUrl}${a}/chat`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)},suggest:async t=>{const a=this.getRoute("ai"),r=await this.fetch(`${this.baseUrl}${a}/suggest`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)},insights:async t=>{const a=this.getRoute("ai"),r=await this.fetch(`${this.baseUrl}${a}/insights`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)}},this.i18n={getLocales:async()=>{const t=this.getRoute("i18n"),a=await this.fetch(`${this.baseUrl}${t}/locales`);return this.unwrapResponse(a)},getTranslations:async(t,a)=>{const r=this.getRoute("i18n"),l=new URLSearchParams;l.set("locale",t),a?.namespace&&l.set("namespace",a.namespace),a?.keys&&l.set("keys",a.keys.join(","));const p=await this.fetch(`${this.baseUrl}${r}/translations?${l.toString()}`);return this.unwrapResponse(p)},getFieldLabels:async(t,a)=>{const r=this.getRoute("i18n"),l=await this.fetch(`${this.baseUrl}${r}/labels/${encodeURIComponent(t)}?locale=${encodeURIComponent(a)}`);return this.unwrapResponse(l)}},this.data={query:async(t,a)=>{const r=this.getRoute("data"),l=await this.fetch(`${this.baseUrl}${r}/${t}/query`,{method:"POST",body:JSON.stringify(a)});return this.unwrapResponse(l)},find:async(t,a={})=>{const r=this.getRoute("data"),l=new URLSearchParams;if(a.top&&l.set("top",a.top.toString()),a.skip&&l.set("skip",a.skip.toString()),a.sort)if(Array.isArray(a.sort)&&typeof a.sort[0]=="object")l.set("sort",JSON.stringify(a.sort));else{const b=Array.isArray(a.sort)?a.sort.join(","):a.sort;l.set("sort",b)}a.select&&l.set("select",a.select.join(",")),a.filters&&(this.isFilterAST(a.filters)?l.set("filters",JSON.stringify(a.filters)):Object.entries(a.filters).forEach(([b,g])=>{g!=null&&l.append(b,String(g))})),a.aggregations&&l.set("aggregations",JSON.stringify(a.aggregations)),a.groupBy&&l.set("groupBy",a.groupBy.join(","));const p=await this.fetch(`${this.baseUrl}${r}/${t}?${l.toString()}`);return this.unwrapResponse(p)},get:async(t,a)=>{const r=this.getRoute("data"),l=await this.fetch(`${this.baseUrl}${r}/${t}/${a}`);return this.unwrapResponse(l)},create:async(t,a)=>{const r=this.getRoute("data"),l=await this.fetch(`${this.baseUrl}${r}/${t}`,{method:"POST",body:JSON.stringify(a)});return this.unwrapResponse(l)},createMany:async(t,a)=>{const r=this.getRoute("data"),l=await this.fetch(`${this.baseUrl}${r}/${t}/createMany`,{method:"POST",body:JSON.stringify(a)});return this.unwrapResponse(l)},update:async(t,a,r)=>{const l=this.getRoute("data"),p=await this.fetch(`${this.baseUrl}${l}/${t}/${a}`,{method:"PATCH",body:JSON.stringify(r)});return this.unwrapResponse(p)},batch:async(t,a)=>{const r=this.getRoute("data"),l=await this.fetch(`${this.baseUrl}${r}/${t}/batch`,{method:"POST",body:JSON.stringify(a)});return this.unwrapResponse(l)},updateMany:async(t,a,r)=>{const l=this.getRoute("data"),p={records:a,options:r},b=await this.fetch(`${this.baseUrl}${l}/${t}/updateMany`,{method:"POST",body:JSON.stringify(p)});return this.unwrapResponse(b)},delete:async(t,a)=>{const r=this.getRoute("data"),l=await this.fetch(`${this.baseUrl}${r}/${t}/${a}`,{method:"DELETE"});return this.unwrapResponse(l)},deleteMany:async(t,a,r)=>{const l=this.getRoute("data"),p={ids:a,options:r},b=await this.fetch(`${this.baseUrl}${l}/${t}/deleteMany`,{method:"POST",body:JSON.stringify(p)});return this.unwrapResponse(b)}},this.baseUrl=e.baseUrl.replace(/\/$/,""),this.token=e.token,this.fetchImpl=e.fetch||globalThis.fetch.bind(globalThis),this.logger=e.logger||hm({level:e.debug?"debug":"info",format:"pretty"}),this.logger.debug("ObjectStack client created",{baseUrl:this.baseUrl})}async connect(){this.logger.debug("Connecting to ObjectStack server",{baseUrl:this.baseUrl});try{let e;try{let t;try{t=`${new URL(this.baseUrl).origin}/.well-known/objectstack`}catch{t="/.well-known/objectstack"}this.logger.debug("Probing .well-known discovery",{url:t});const a=await this.fetchImpl(t);if(a.ok){const r=await a.json();e=r.data||r,this.logger.debug("Discovered via .well-known")}}catch(t){this.logger.debug("Standard discovery probe failed",{error:t.message})}if(!e){const t=`${this.baseUrl}/api/v1`;this.logger.debug("Falling back to legacy discovery",{url:t});const a=await this.fetchImpl(t);if(!a.ok)throw new Error(`Failed to connect to ${t}: ${a.statusText}`);const r=await a.json();e=r.data||r}if(!e)throw new Error("Connection failed: No discovery data returned");return this.discoveryInfo=e,this.logger.info("Connected to ObjectStack server",{version:e.version,apiName:e.apiName,capabilities:e.capabilities}),e}catch(e){throw this.logger.error("Failed to connect to ObjectStack server",e,{baseUrl:this.baseUrl}),e}}isFilterAST(e){return Array.isArray(e)}async unwrapResponse(e){const t=await e.json();return t&&typeof t.success=="boolean"&&"data"in t?t.data:t}async fetch(e,t={}){this.logger.debug("HTTP request",{method:t.method||"GET",url:e,hasBody:!!t.body});const a={"Content-Type":"application/json",...t.headers||{}};this.token&&(a.Authorization=`Bearer ${this.token}`);const r=await this.fetchImpl(e,{...t,headers:a});if(this.logger.debug("HTTP response",{method:t.method||"GET",url:e,status:r.status,ok:r.ok}),!r.ok){let l;try{l=await r.json()}catch{l={message:r.statusText}}this.logger.error("HTTP request failed",void 0,{method:t.method||"GET",url:e,status:r.status,error:l});const p=l?.message||l?.error?.message||r.statusText,b=l?.code||l?.error?.code,g=new Error(`[ObjectStack] ${b?`${b}: `:""}${p}`);throw g.code=b,g.category=l?.category,g.httpStatus=r.status,g.retryable=l?.retryable,g.details=l?.details||l,g}return r}getRoute(e){return this.discoveryInfo?.endpoints&&this.discoveryInfo.endpoints[e]?this.discoveryInfo.endpoints[e]:{data:"/api/v1/data",metadata:"/api/v1/meta",ui:"/api/v1/ui",auth:"/api/v1/auth",analytics:"/api/v1/analytics",storage:"/api/v1/storage",automation:"/api/v1/automation",packages:"/api/v1/packages",permissions:"/api/v1/auth",realtime:"/api/v1/realtime",workflow:"/api/v1/workflow",views:"/api/v1/ui/views",notifications:"/api/v1/notifications",ai:"/api/v1/ai",i18n:"/api/v1/i18n"}[e]||`/api/v1/${e}`}},S_=R.createContext(null);function Tee({client:e,children:t}){return R.createElement(S_.Provider,{value:e},t)}function yr(){const e=R.useContext(S_);if(!e)throw new Error("useClient must be used within an ObjectStackProvider. Make sure your component is wrapped with <ObjectStackProvider client={...}>.");return e}const x_=(...e)=>e.filter((t,a,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===a).join(" ").trim();const Aee=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const _ee=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,a,r)=>r?r.toUpperCase():a.toLowerCase());const HE=e=>{const t=_ee(e);return t.charAt(0).toUpperCase()+t.slice(1)};var Pee={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const Iee=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};const Dee=R.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:r,className:l="",children:p,iconNode:b,...g},x)=>R.createElement("svg",{ref:x,...Pee,width:t,height:t,stroke:e,strokeWidth:r?Number(a)*24/Number(t):a,className:x_("lucide",l),...!p&&!Iee(g)&&{"aria-hidden":"true"},...g},[...b.map(([v,k])=>R.createElement(v,k)),...Array.isArray(p)?p:[p]]));const we=(e,t)=>{const a=R.forwardRef(({className:r,...l},p)=>R.createElement(Dee,{ref:p,iconNode:t,className:x_(`lucide-${Aee(HE(e))}`,`lucide-${e}`,r),...l}));return a.displayName=HE(e),a};const jee=[["path",{d:"M12 6v16",key:"nqf5sj"}],["path",{d:"m19 13 2-1a9 9 0 0 1-18 0l2 1",key:"y7qv08"}],["path",{d:"M9 11h6",key:"1fldmi"}],["circle",{cx:"12",cy:"4",r:"2",key:"muu5ef"}]],w_=we("anchor",jee);const Mee=[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]],Dc=we("app-window",Mee);const Oee=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],Nee=we("arrow-left",Oee);const Lee=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],zee=we("arrow-right",Lee);const qee=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],gv=we("book-open",qee);const $ee=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],Qc=we("bot",$ee);const Uee=[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]],Fee=we("box",Uee);const Bee=[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["line",{x1:"8",x2:"16",y1:"6",y2:"6",key:"x4nwl0"}],["line",{x1:"16",x2:"16",y1:"14",y2:"18",key:"wjye3r"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M8 18h.01",key:"lrp35t"}]],Hee=we("calculator",Bee);const Vee=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],VE=we("calendar",Vee);const Gee=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],yv=we("chart-column",Gee);const Wee=[["path",{d:"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",key:"pzmjnu"}],["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}]],k_=we("chart-pie",Wee);const Qee=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],pn=we("check",Qee);const Kee=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Kc=we("chevron-down",Kee);const Zee=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],gm=we("chevron-right",Zee);const Yee=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],Jee=we("chevron-up",Yee);const Xee=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],ete=we("chevrons-up-down",Xee);const tte=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],C_=we("circle-alert",tte);const ite=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]],ate=we("circle-dot",ite);const ote=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],rte=we("circle",ote);const nte=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ste=we("clock",nte);const lte=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],ym=we("code-xml",lte);const cte=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],vv=we("copy",cte);const dte=[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]],E_=we("cpu",dte);const ute=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],za=we("database",ute);const pte=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],mte=we("ellipsis",pte);const fte=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],bte=we("external-link",fte);const hte=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Sv=we("eye",hte);const gte=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]],R_=we("file-code",gte);const yte=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],Zc=we("file-text",yte);const vte=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],vr=we("globe",vte);const Ste=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],GE=we("hash",Ste);const xte=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],wte=we("key",xte);const kte=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],js=we("layers",kte);const Cte=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],Ete=we("layout-dashboard",Cte);const Rte=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],T_=we("link-2",Rte);const Tte=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]],A_=we("link",Tte);const Ate=[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]],_te=we("list",Ate);const Pte=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],Qg=we("loader-circle",Pte);const Ite=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],__=we("lock",Ite);const Dte=[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]],P_=we("map",Dte);const jte=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],WE=we("moon",jte);const Mte=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],ba=we("package",Mte);const Ote=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],I_=we("palette",Ote);const Nte=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]],Lte=we("panel-left",Nte);const zte=[["path",{d:"M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z",key:"nt11vn"}],["path",{d:"m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18",key:"15qc1e"}],["path",{d:"m2.3 2.3 7.286 7.286",key:"1wuzzi"}],["circle",{cx:"11",cy:"11",r:"2",key:"xmgehs"}]],qte=we("pen-tool",zte);const $te=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],Ute=we("play",$te);const Fte=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Bte=we("plus",Fte);const Hte=[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],Vte=we("power-off",Hte);const Gte=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],Wte=we("power",Gte);const Qte=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],vm=we("refresh-cw",Qte);const Kte=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],Zte=we("save",Kte);const Yte=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],jc=we("search",Yte);const Jte=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],mo=we("shield",Jte);const Xte=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Kg=we("sparkles",Xte);const eie=[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],D_=we("square-check-big",eie);const tie=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],iie=we("square-pen",tie);const aie=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],QE=we("sun",aie);const oie=[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]],j_=we("table-2",oie);const rie=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],M_=we("terminal",rie);const nie=[["circle",{cx:"9",cy:"12",r:"3",key:"u3jwor"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]],sie=we("toggle-left",nie);const lie=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],O_=we("trash-2",lie);const cie=[["path",{d:"M12 4v16",key:"1654pz"}],["path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",key:"e0r10z"}],["path",{d:"M9 20h6",key:"s66wpe"}]],die=we("type",cie);const uie=[["path",{d:"M10 15H6a4 4 0 0 0-4 4v2",key:"1nfge6"}],["path",{d:"m14.305 16.53.923-.382",key:"1itpsq"}],["path",{d:"m15.228 13.852-.923-.383",key:"eplpkm"}],["path",{d:"m16.852 12.228-.383-.923",key:"13v3q0"}],["path",{d:"m16.852 17.772-.383.924",key:"1i8mnm"}],["path",{d:"m19.148 12.228.383-.923",key:"1q8j1v"}],["path",{d:"m19.53 18.696-.382-.924",key:"vk1qj3"}],["path",{d:"m20.772 13.852.924-.383",key:"n880s0"}],["path",{d:"m20.772 16.148.924.383",key:"1g6xey"}],["circle",{cx:"18",cy:"15",r:"3",key:"gjjjvw"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],N_=we("user-cog",uie);const pie=[["path",{d:"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2",key:"q3hayz"}],["path",{d:"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06",key:"1go1hn"}],["path",{d:"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8",key:"qlwsc0"}]],L_=we("webhook",pie);const mie=[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]],Ms=we("workflow",mie);const fie=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Sm=we("x",fie);const bie=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],xm=we("zap",bie);class hie extends R.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,a){console.error("[ErrorBoundary] Uncaught error:",t,a.componentStack)}handleReset=()=>{this.setState({hasError:!1,error:null})};render(){return this.state.hasError?this.props.fallback?this.props.fallback:y.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background p-6",children:y.jsxs("div",{className:"max-w-md w-full space-y-4 text-center",children:[y.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-destructive/10",children:y.jsx(C_,{className:"h-6 w-6 text-destructive"})}),y.jsx("h2",{className:"text-lg font-semibold",children:"Something went wrong"}),y.jsx("p",{className:"text-sm text-muted-foreground",children:this.state.error?.message||"An unexpected error occurred."}),y.jsx("pre",{className:"mt-2 max-h-40 overflow-auto rounded-lg bg-muted p-3 text-left text-xs font-mono text-muted-foreground",children:this.state.error?.stack?.split(`
|
|
49
|
+
`);throw new Error(l)}throw a}}getDefaultConfig(e){if(e.configSchema)try{const t=e.configSchema.parse({});return this.logger.debug(`Default config extracted: ${e.name}`),t}catch{this.logger.debug(`No default config available: ${e.name}`);return}}isConfigValid(e,t){return e.configSchema?e.configSchema.safeParse(t).success:!0}getConfigErrors(e,t){if(!e.configSchema)return[];const a=e.configSchema.safeParse(t);return a.success?[]:this.formatZodErrors(a.error)}formatZodErrors(e){return e.issues.map(t=>({path:t.path.join(".")||"root",message:t.message}))}},xee=class{constructor(e){this.loadedPlugins=new Map,this.serviceFactories=new Map,this.serviceInstances=new Map,this.scopedServices=new Map,this.creating=new Set,this.logger=e,this.configValidator=new See(e)}setContext(e){this.context=e}getServiceInstance(e){return this.serviceInstances.get(e)}async loadPlugin(e){const t=Date.now();try{this.logger.info(`Loading plugin: ${e.name}`);const a=this.toPluginMetadata(e);this.validatePluginStructure(a);const r=this.checkVersionCompatibility(a);if(!r.compatible)throw new Error(`Version incompatible: ${r.message}`);a.configSchema&&this.validatePluginConfig(a),a.signature&&await this.verifyPluginSignature(a),this.loadedPlugins.set(a.name,a);const l=Date.now()-t;return this.logger.info(`Plugin loaded: ${e.name} (${l}ms)`),{success:!0,plugin:a,loadTime:l}}catch(a){return this.logger.error(`Failed to load plugin: ${e.name}`,a),{success:!1,error:a,loadTime:Date.now()-t}}}registerServiceFactory(e){if(this.serviceFactories.has(e.name))throw new Error(`Service factory '${e.name}' already registered`);this.serviceFactories.set(e.name,e),this.logger.debug(`Service factory registered: ${e.name} (${e.lifecycle})`)}async getService(e,t){const a=this.serviceFactories.get(e);if(!a){const r=this.serviceInstances.get(e);if(!r)throw new Error(`Service '${e}' not found`);return r}switch(a.lifecycle){case"singleton":return await this.getSingletonService(a);case"transient":return await this.createTransientService(a);case"scoped":if(!t)throw new Error(`Scope ID required for scoped service '${e}'`);return await this.getScopedService(a,t);default:throw new Error(`Unknown service lifecycle: ${a.lifecycle}`)}}registerService(e,t){if(this.serviceInstances.has(e))throw new Error(`Service '${e}' already registered`);this.serviceInstances.set(e,t)}replaceService(e,t){if(!this.hasService(e))throw new Error(`Service '${e}' not found`);this.serviceInstances.set(e,t)}hasService(e){return this.serviceInstances.has(e)||this.serviceFactories.has(e)}detectCircularDependencies(){const e=[],t=new Set,a=new Set,r=(l,p=[])=>{if(a.has(l)){const g=[...p,l].join(" -> ");e.push(g);return}if(t.has(l))return;a.add(l);const b=this.serviceFactories.get(l);if(b?.dependencies)for(const g of b.dependencies)r(g,[...p,l]);a.delete(l),t.add(l)};for(const l of this.serviceFactories.keys())r(l);return e}async checkPluginHealth(e){const t=this.loadedPlugins.get(e);if(!t)return{healthy:!1,message:"Plugin not found",lastCheck:new Date};if(!t.healthCheck)return{healthy:!0,message:"No health check defined",lastCheck:new Date};try{return{...await t.healthCheck(),lastCheck:new Date}}catch(a){return{healthy:!1,message:`Health check failed: ${a.message}`,lastCheck:new Date}}}clearScope(e){this.scopedServices.delete(e),this.logger.debug(`Cleared scope: ${e}`)}getLoadedPlugins(){return new Map(this.loadedPlugins)}toPluginMetadata(e){const t=e;return t.version||(t.version="0.0.0"),t}validatePluginStructure(e){if(!e.name)throw new Error("Plugin name is required");if(!e.init)throw new Error("Plugin init function is required");if(!this.isValidSemanticVersion(e.version))throw new Error(`Invalid semantic version: ${e.version}`)}checkVersionCompatibility(e){const t=e.version;return this.isValidSemanticVersion(t)?{compatible:!0,pluginVersion:t}:{compatible:!1,pluginVersion:t,message:"Invalid semantic version format"}}isValidSemanticVersion(e){return/^\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$/.test(e)}validatePluginConfig(e,t){if(e.configSchema){if(t===void 0){this.logger.debug(`Plugin ${e.name} has configuration schema (config validation postponed)`);return}this.configValidator.validatePluginConfig(e,t)}}async verifyPluginSignature(e){e.signature&&this.logger.debug(`Plugin ${e.name} has signature (use PluginSignatureVerifier for verification)`)}async getSingletonService(e){let t=this.serviceInstances.get(e.name);return t||(t=await this.createServiceInstance(e),this.serviceInstances.set(e.name,t),this.logger.debug(`Singleton service created: ${e.name}`)),t}async createTransientService(e){const t=await this.createServiceInstance(e);return this.logger.debug(`Transient service created: ${e.name}`),t}async getScopedService(e,t){this.scopedServices.has(t)||this.scopedServices.set(t,new Map);const a=this.scopedServices.get(t);let r=a.get(e.name);return r||(r=await this.createServiceInstance(e),a.set(e.name,r),this.logger.debug(`Scoped service created: ${e.name} (scope: ${t})`)),r}async createServiceInstance(e){if(!this.context)throw new Error(`[PluginLoader] Context not set - cannot create service '${e.name}'`);if(this.creating.has(e.name))throw new Error(`Circular dependency detected: ${Array.from(this.creating).join(" -> ")} -> ${e.name}`);this.creating.add(e.name);try{return await e.factory(this.context)}finally{this.creating.delete(e.name)}}},wee=class{constructor(e={}){this.plugins=new Map,this.services=new Map,this.hooks=new Map,this.state="idle",this.startedPlugins=new Set,this.pluginStartTimes=new Map,this.shutdownHandlers=[],this.config={defaultStartupTimeout:3e4,gracefulShutdown:!0,shutdownTimeout:6e4,rollbackOnFailure:!0,...e},this.logger=hm(e.logger),this.pluginLoader=new xee(this.logger),this.context={registerService:(t,a)=>{this.registerService(t,a)},getService:t=>{const a=this.services.get(t);if(a)return a;const r=this.pluginLoader.getServiceInstance(t);if(r)return this.services.set(t,r),r;try{const l=this.pluginLoader.getService(t);if(l instanceof Promise)throw l.catch(()=>{}),new Error(`Service '${t}' is async - use await`);return l}catch(l){throw l.message?.includes("is async")||!(l.message===`Service '${t}' not found`)?l:new Error(`[Kernel] Service '${t}' not found`)}},replaceService:(t,a)=>{if(!(this.services.has(t)||this.pluginLoader.hasService(t)))throw new Error(`[Kernel] Service '${t}' not found. Use registerService() to add new services.`);this.services.set(t,a),this.pluginLoader.replaceService(t,a),this.logger.info(`Service '${t}' replaced`,{service:t})},hook:(t,a)=>{this.hooks.has(t)||this.hooks.set(t,[]),this.hooks.get(t).push(a)},trigger:async(t,...a)=>{const r=this.hooks.get(t)||[];for(const l of r)await l(...a)},getServices:()=>new Map(this.services),logger:this.logger,getKernel:()=>this},this.pluginLoader.setContext(this.context),this.config.gracefulShutdown&&this.registerShutdownSignals()}async use(e){if(this.state!=="idle")throw new Error("[Kernel] Cannot register plugins after bootstrap has started");const t=await this.pluginLoader.loadPlugin(e);if(!t.success||!t.plugin)throw new Error(`Failed to load plugin: ${e.name} - ${t.error?.message}`);const a=t.plugin;return this.plugins.set(a.name,a),this.logger.info(`Plugin registered: ${a.name}@${a.version}`,{plugin:a.name,version:a.version}),this}registerService(e,t){if(this.services.has(e))throw new Error(`[Kernel] Service '${e}' already registered`);return this.services.set(e,t),this.pluginLoader.registerService(e,t),this.logger.info(`Service '${e}' registered`,{service:e}),this}registerServiceFactory(e,t,a="singleton",r){return this.pluginLoader.registerServiceFactory({name:e,factory:t,lifecycle:a,dependencies:r}),this}validateSystemRequirements(){if(this.config.skipSystemValidation){this.logger.debug("System requirement validation skipped");return}this.logger.debug("Validating system service requirements...");const e=[],t=[];for(const[a,r]of Object.entries(CZ))this.services.has(a)||this.pluginLoader.hasService(a)||(r==="required"?(this.logger.error(`CRITICAL: Required service missing: ${a}`),e.push(a)):r==="core"?(this.logger.warn(`CORE: Core service missing, functionality may be degraded: ${a}`),t.push(a)):this.logger.info(`Info: Optional service not present: ${a}`));if(e.length>0){const a=`System failed to start. Missing critical services: ${e.join(", ")}`;throw this.logger.error(a),new Error(a)}t.length>0&&this.logger.warn(`System started with degraded capabilities. Missing core services: ${t.join(", ")}`),this.logger.info("System requirement check passed")}async bootstrap(){if(this.state!=="idle")throw new Error("[Kernel] Kernel already bootstrapped");this.state="initializing",this.logger.info("Bootstrap started");try{const e=this.pluginLoader.detectCircularDependencies();e.length>0&&this.logger.warn("Circular service dependencies detected:",{cycles:e});const t=this.resolveDependencies();this.logger.info("Phase 1: Init plugins");for(const a of t)await this.initPluginWithTimeout(a);this.logger.info("Phase 2: Start plugins"),this.state="running";for(const a of t){const r=await this.startPluginWithTimeout(a);if(!r.success&&(this.logger.error(`Plugin startup failed: ${a.name}`,r.error),this.config.rollbackOnFailure))throw this.logger.warn("Rolling back started plugins..."),await this.rollbackStartedPlugins(),new Error(`Plugin ${a.name} failed to start - rollback complete`)}this.validateSystemRequirements(),this.logger.debug("Triggering kernel:ready hook"),await this.context.trigger("kernel:ready"),this.logger.info("✅ Bootstrap complete")}catch(e){throw this.state="stopped",e}}async shutdown(){if(this.state==="stopped"||this.state==="stopping"){this.logger.warn("Kernel already stopped or stopping");return}if(this.state!=="running")throw new Error("[Kernel] Kernel not running");this.state="stopping",this.logger.info("Graceful shutdown started");try{const e=this.performShutdown(),t=new Promise((a,r)=>{setTimeout(()=>{r(new Error("Shutdown timeout exceeded"))},this.config.shutdownTimeout)});await Promise.race([e,t]),this.state="stopped",this.logger.info("✅ Graceful shutdown complete")}catch(e){throw this.logger.error("Shutdown error - forcing stop",e),this.state="stopped",e}finally{await this.logger.destroy()}}async checkPluginHealth(e){return await this.pluginLoader.checkPluginHealth(e)}async checkAllPluginsHealth(){const e=new Map;for(const t of this.plugins.keys()){const a=await this.checkPluginHealth(t);e.set(t,a)}return e}getPluginMetrics(){return new Map(this.pluginStartTimes)}getService(e){return this.context.getService(e)}async getServiceAsync(e,t){return await this.pluginLoader.getService(e,t)}isRunning(){return this.state==="running"}getState(){return this.state}async initPluginWithTimeout(e){const t=e.startupTimeout||this.config.defaultStartupTimeout;this.logger.debug(`Init: ${e.name}`,{plugin:e.name});const a=e.init(this.context),r=new Promise((l,p)=>{setTimeout(()=>{p(new Error(`Plugin ${e.name} init timeout after ${t}ms`))},t)});await Promise.race([a,r])}async startPluginWithTimeout(e){if(!e.start)return{success:!0,pluginName:e.name};const t=e.startupTimeout||this.config.defaultStartupTimeout,a=Date.now();this.logger.debug(`Start: ${e.name}`,{plugin:e.name});try{const r=e.start(this.context),l=new Promise((b,g)=>{setTimeout(()=>{g(new Error(`Plugin ${e.name} start timeout after ${t}ms`))},t)});await Promise.race([r,l]);const p=Date.now()-a;return this.startedPlugins.add(e.name),this.pluginStartTimes.set(e.name,p),this.logger.debug(`Plugin started: ${e.name} (${p}ms)`),{success:!0,pluginName:e.name,startTime:p}}catch(r){const l=Date.now()-a,p=r.message.includes("timeout");return{success:!1,pluginName:e.name,error:r,startTime:l,timedOut:p}}}async rollbackStartedPlugins(){const e=Array.from(this.startedPlugins).reverse();for(const t of e){const a=this.plugins.get(t);if(a?.destroy)try{this.logger.debug(`Rollback: ${t}`),await a.destroy()}catch(r){this.logger.error(`Rollback failed for ${t}`,r)}}this.startedPlugins.clear()}async performShutdown(){await this.context.trigger("kernel:shutdown");const e=Array.from(this.plugins.values()).reverse();for(const t of e)if(t.destroy){this.logger.debug(`Destroy: ${t.name}`,{plugin:t.name});try{await t.destroy()}catch(a){this.logger.error(`Error destroying plugin ${t.name}`,a)}}for(const t of this.shutdownHandlers)try{await t()}catch(a){this.logger.error("Shutdown handler error",a)}}resolveDependencies(){const e=[],t=new Set,a=new Set,r=l=>{if(t.has(l))return;if(a.has(l))throw new Error(`[Kernel] Circular dependency detected: ${l}`);const p=this.plugins.get(l);if(!p)throw new Error(`[Kernel] Plugin '${l}' not found`);a.add(l);const b=p.dependencies||[];for(const g of b){if(!this.plugins.has(g))throw new Error(`[Kernel] Dependency '${g}' not found for plugin '${l}'`);r(g)}a.delete(l),t.add(l),e.push(p)};for(const l of this.plugins.keys())r(l);return e}registerShutdownSignals(){const e=["SIGINT","SIGTERM","SIGQUIT"];let t=!1;const a=async r=>{if(t){this.logger.warn(`Shutdown already in progress, ignoring ${r}`);return}t=!0,this.logger.info(`Received ${r} - initiating graceful shutdown`);try{await this.shutdown(),BE(0)}catch(l){this.logger.error("Shutdown failed",l),BE(1)}};if(hv)for(const r of e)process.on(r,()=>a(r))}onShutdown(e){this.shutdownHandlers.push(e)}},kee={};gee(kee,{HttpTestAdapter:()=>Eee,TestRunner:()=>Cee});var Cee=class{constructor(e){this.adapter=e}async runSuite(e){const t=[];for(const a of e.scenarios)t.push(await this.runScenario(a));return t}async runScenario(e){const t=Date.now(),a={};if(e.setup)for(const b of e.setup)try{await this.runStep(b,a)}catch(g){return{scenarioId:e.id,passed:!1,steps:[],error:`Setup failed: ${g instanceof Error?g.message:String(g)}`,duration:Date.now()-t}}const r=[];let l=!0,p;for(const b of e.steps){const g=Date.now();try{const x=await this.runStep(b,a);r.push({stepName:b.name,passed:!0,output:x,duration:Date.now()-g})}catch(x){l=!1,p=x,r.push({stepName:b.name,passed:!1,error:x,duration:Date.now()-g});break}}if(e.teardown)for(const b of e.teardown)try{await this.runStep(b,a)}catch(g){l&&(l=!1,p=`Teardown failed: ${g instanceof Error?g.message:String(g)}`)}return{scenarioId:e.id,passed:l,steps:r,error:p,duration:Date.now()-t}}async runStep(e,t){const a=this.resolveVariables(e.action,t),r=await this.adapter.execute(a,t);if(e.capture)for(const[l,p]of Object.entries(e.capture))t[l]=this.getValueByPath(r,p);if(e.assertions)for(const l of e.assertions)this.assert(r,l,t);return r}resolveVariables(e,t){const r=JSON.stringify(e).replace(/\{\{([^}]+)\}\}/g,(l,p)=>{const b=this.getValueByPath(t,p.trim());return b===void 0?l:typeof b=="string"?b:JSON.stringify(b)});try{return JSON.parse(r)}catch{return e}}getValueByPath(e,t){if(!t)return e;const a=t.split(".");let r=e;for(const l of a){if(r==null)return;r=r[l]}return r}assert(e,t,a){const r=this.getValueByPath(e,t.field),l=t.expectedValue;switch(t.operator){case"equals":if(r!==l)throw new Error(`Assertion failed: ${t.field} expected ${l}, got ${r}`);break;case"not_equals":if(r===l)throw new Error(`Assertion failed: ${t.field} expected not ${l}, got ${r}`);break;case"contains":if(Array.isArray(r)){if(!r.includes(l))throw new Error(`Assertion failed: ${t.field} array does not contain ${l}`)}else if(typeof r=="string"&&!r.includes(String(l)))throw new Error(`Assertion failed: ${t.field} string does not contain ${l}`);break;case"not_null":if(r==null)throw new Error(`Assertion failed: ${t.field} is null`);break;case"is_null":if(r!=null)throw new Error(`Assertion failed: ${t.field} is not null`);break;default:throw new Error(`Unknown assertion operator: ${t.operator}`)}}},Eee=class{constructor(e,t){this.baseUrl=e,this.authToken=t}async execute(e,t){const a={"Content-Type":"application/json"};switch(this.authToken&&(a.Authorization=`Bearer ${this.authToken}`),e.user&&(a["X-Run-As"]=e.user),e.type){case"create_record":return this.createRecord(e.target,e.payload||{},a);case"update_record":return this.updateRecord(e.target,e.payload||{},a);case"delete_record":return this.deleteRecord(e.target,e.payload||{},a);case"read_record":return this.readRecord(e.target,e.payload||{},a);case"query_records":return this.queryRecords(e.target,e.payload||{},a);case"api_call":return this.rawApiCall(e.target,e.payload||{},a);case"wait":const r=Number(e.payload?.duration||1e3);return new Promise(l=>setTimeout(()=>l({waited:r}),r));default:throw new Error(`Unsupported action type in HttpAdapter: ${e.type}`)}}async createRecord(e,t,a){const r=await fetch(`${this.baseUrl}/api/data/${e}`,{method:"POST",headers:a,body:JSON.stringify(t)});return this.handleResponse(r)}async updateRecord(e,t,a){const r=t._id||t.id;if(!r)throw new Error("Update record requires _id or id in payload");const l=await fetch(`${this.baseUrl}/api/data/${e}/${r}`,{method:"PUT",headers:a,body:JSON.stringify(t)});return this.handleResponse(l)}async deleteRecord(e,t,a){const r=t._id||t.id;if(!r)throw new Error("Delete record requires _id or id in payload");const l=await fetch(`${this.baseUrl}/api/data/${e}/${r}`,{method:"DELETE",headers:a});return this.handleResponse(l)}async readRecord(e,t,a){const r=t._id||t.id;if(!r)throw new Error("Read record requires _id or id in payload");const l=await fetch(`${this.baseUrl}/api/data/${e}/${r}`,{method:"GET",headers:a});return this.handleResponse(l)}async queryRecords(e,t,a){const r=await fetch(`${this.baseUrl}/api/data/${e}/query`,{method:"POST",headers:a,body:JSON.stringify(t)});return this.handleResponse(r)}async rawApiCall(e,t,a){const r=t.method||"GET",l=t.body?JSON.stringify(t.body):void 0,p=e.startsWith("http")?e:`${this.baseUrl}${e}`,b=await fetch(p,{method:r,headers:a,body:l});return this.handleResponse(b)}async handleResponse(e){if(!e.ok){const a=await e.text();throw new Error(`HTTP Error ${e.status}: ${a}`)}const t=e.headers.get("content-type");return t&&t.includes("application/json")?e.json():e.text()}},Ree=class{constructor(e){this.meta={getTypes:async()=>{const t=this.getRoute("metadata"),a=await this.fetch(`${this.baseUrl}${t}`);return this.unwrapResponse(a)},getItems:async(t,a)=>{const r=this.getRoute("metadata"),l=new URLSearchParams;a?.packageId&&l.set("package",a.packageId);const p=l.toString(),b=`${this.baseUrl}${r}/${t}${p?`?${p}`:""}`,g=await this.fetch(b);return this.unwrapResponse(g)},getObject:async t=>{const a=this.getRoute("metadata"),r=await this.fetch(`${this.baseUrl}${a}/object/${t}`);return this.unwrapResponse(r)},getItem:async(t,a)=>{const r=this.getRoute("metadata"),l=await this.fetch(`${this.baseUrl}${r}/${t}/${a}`);return this.unwrapResponse(l)},saveItem:async(t,a,r)=>{const l=this.getRoute("metadata"),p=await this.fetch(`${this.baseUrl}${l}/${t}/${a}`,{method:"PUT",body:JSON.stringify(r)});return this.unwrapResponse(p)},getCached:async(t,a)=>{const r=this.getRoute("metadata"),l={};a?.ifNoneMatch&&(l["If-None-Match"]=a.ifNoneMatch),a?.ifModifiedSince&&(l["If-Modified-Since"]=a.ifModifiedSince);const p=await this.fetch(`${this.baseUrl}${r}/object/${t}`,{headers:l});if(p.status===304)return{notModified:!0,etag:a?.ifNoneMatch?{value:a.ifNoneMatch.replace(/^W\/|"/g,""),weak:a.ifNoneMatch.startsWith("W/")}:void 0};const b=await p.json(),g=p.headers.get("ETag"),x=p.headers.get("Last-Modified");return{data:b,etag:g?{value:g.replace(/^W\/|"/g,""),weak:g.startsWith("W/")}:void 0,lastModified:x||void 0,notModified:!1}},getView:async(t,a="list")=>{const r=this.getRoute("ui"),l=await this.fetch(`${this.baseUrl}${r}/view/${t}?type=${a}`);return this.unwrapResponse(l)}},this.analytics={query:async t=>{const a=this.getRoute("analytics");return(await this.fetch(`${this.baseUrl}${a}/query`,{method:"POST",body:JSON.stringify(t)})).json()},meta:async t=>{const a=this.getRoute("analytics");return(await this.fetch(`${this.baseUrl}${a}/meta/${t}`)).json()},explain:async t=>{const a=this.getRoute("analytics");return(await this.fetch(`${this.baseUrl}${a}/explain`,{method:"POST",body:JSON.stringify(t)})).json()}},this.packages={list:async t=>{const a=this.getRoute("packages"),r=new URLSearchParams;t?.status&&r.set("status",t.status),t?.type&&r.set("type",t.type),t?.enabled!==void 0&&r.set("enabled",String(t.enabled));const l=r.toString(),p=`${this.baseUrl}${a}${l?"?"+l:""}`,b=await this.fetch(p);return this.unwrapResponse(b)},get:async t=>{const a=this.getRoute("packages"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t)}`);return this.unwrapResponse(r)},install:async(t,a)=>{const r=this.getRoute("packages"),l=await this.fetch(`${this.baseUrl}${r}`,{method:"POST",body:JSON.stringify({manifest:t,settings:a?.settings,enableOnInstall:a?.enableOnInstall})});return this.unwrapResponse(l)},uninstall:async t=>{const a=this.getRoute("packages"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t)}`,{method:"DELETE"});return this.unwrapResponse(r)},enable:async t=>{const a=this.getRoute("packages"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t)}/enable`,{method:"PATCH"});return this.unwrapResponse(r)},disable:async t=>{const a=this.getRoute("packages"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t)}/disable`,{method:"PATCH"});return this.unwrapResponse(r)}},this.auth={login:async t=>{const a=this.getRoute("auth"),l=await(await this.fetch(`${this.baseUrl}${a}/sign-in/email`,{method:"POST",body:JSON.stringify(t)})).json();return l.data?.token&&(this.token=l.data.token),l},logout:async()=>{const t=this.getRoute("auth");await this.fetch(`${this.baseUrl}${t}/sign-out`,{method:"POST"}),this.token=void 0},me:async()=>{const t=this.getRoute("auth");return(await this.fetch(`${this.baseUrl}${t}/get-session`)).json()},register:async t=>{const a=this.getRoute("auth"),l=await(await this.fetch(`${this.baseUrl}${a}/sign-up/email`,{method:"POST",body:JSON.stringify(t)})).json();return l.data?.token&&(this.token=l.data.token),l},refreshToken:async t=>{const a=this.getRoute("auth"),l=await(await this.fetch(`${this.baseUrl}${a}/get-session`,{method:"GET"})).json();return l.data?.token&&(this.token=l.data.token),l}},this.storage={upload:async(t,a="user")=>{const r={filename:t.name,mimeType:t.type,size:t.size,scope:a},l=this.getRoute("storage"),p=await this.fetch(`${this.baseUrl}${l}/upload/presigned`,{method:"POST",body:JSON.stringify(r)}),{data:b}=await p.json(),g=await this.fetchImpl(b.uploadUrl,{method:b.method,headers:b.headers,body:t});if(!g.ok)throw new Error(`Storage Upload Failed: ${g.statusText}`);const x={fileId:b.fileId};return(await this.fetch(`${this.baseUrl}${l}/upload/complete`,{method:"POST",body:JSON.stringify(x)})).json()},getDownloadUrl:async t=>{const a=this.getRoute("storage");return(await(await this.fetch(`${this.baseUrl}${a}/files/${t}/url`)).json()).url}},this.automation={trigger:async(t,a)=>{const r=this.getRoute("automation");return(await this.fetch(`${this.baseUrl}${r}/trigger/${t}`,{method:"POST",body:JSON.stringify(a)})).json()}},this.permissions={check:async t=>{const a=this.getRoute("permissions"),r=await this.fetch(`${this.baseUrl}${a}/check`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)},getObjectPermissions:async t=>{const a=this.getRoute("permissions"),r=await this.fetch(`${this.baseUrl}${a}/permissions/${encodeURIComponent(t)}`);return this.unwrapResponse(r)},getEffectivePermissions:async()=>{const t=this.getRoute("permissions"),a=await this.fetch(`${this.baseUrl}${t}/permissions/effective`);return this.unwrapResponse(a)}},this.realtime={connect:async t=>{const a=this.getRoute("realtime"),r=await this.fetch(`${this.baseUrl}${a}/connect`,{method:"POST",body:JSON.stringify(t||{})});return this.unwrapResponse(r)},disconnect:async()=>{const t=this.getRoute("realtime");await this.fetch(`${this.baseUrl}${t}/disconnect`,{method:"POST"})},subscribe:async t=>{const a=this.getRoute("realtime"),r=await this.fetch(`${this.baseUrl}${a}/subscribe`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)},unsubscribe:async t=>{const a=this.getRoute("realtime");await this.fetch(`${this.baseUrl}${a}/unsubscribe`,{method:"POST",body:JSON.stringify({subscriptionId:t})})},setPresence:async(t,a)=>{const r=this.getRoute("realtime");await this.fetch(`${this.baseUrl}${r}/presence`,{method:"PUT",body:JSON.stringify({channel:t,state:a})})},getPresence:async t=>{const a=this.getRoute("realtime"),r=await this.fetch(`${this.baseUrl}${a}/presence/${encodeURIComponent(t)}`);return this.unwrapResponse(r)}},this.workflow={getConfig:async t=>{const a=this.getRoute("workflow"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t)}/config`);return this.unwrapResponse(r)},getState:async(t,a)=>{const r=this.getRoute("workflow"),l=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(t)}/${encodeURIComponent(a)}/state`);return this.unwrapResponse(l)},transition:async t=>{const a=this.getRoute("workflow"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t.object)}/${encodeURIComponent(t.recordId)}/transition`,{method:"POST",body:JSON.stringify({transition:t.transition,comment:t.comment,data:t.data})});return this.unwrapResponse(r)},approve:async t=>{const a=this.getRoute("workflow"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t.object)}/${encodeURIComponent(t.recordId)}/approve`,{method:"POST",body:JSON.stringify({comment:t.comment,data:t.data})});return this.unwrapResponse(r)},reject:async t=>{const a=this.getRoute("workflow"),r=await this.fetch(`${this.baseUrl}${a}/${encodeURIComponent(t.object)}/${encodeURIComponent(t.recordId)}/reject`,{method:"POST",body:JSON.stringify({reason:t.reason,comment:t.comment})});return this.unwrapResponse(r)}},this.views={list:async(t,a)=>{const r=this.getRoute("views"),l=new URLSearchParams;a&&l.set("type",a);const p=l.toString(),b=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(t)}${p?`?${p}`:""}`);return this.unwrapResponse(b)},get:async(t,a)=>{const r=this.getRoute("views"),l=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(t)}/${encodeURIComponent(a)}`);return this.unwrapResponse(l)},create:async(t,a)=>{const r=this.getRoute("views"),l=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({object:t,data:a})});return this.unwrapResponse(l)},update:async(t,a,r)=>{const l=this.getRoute("views"),p=await this.fetch(`${this.baseUrl}${l}/${encodeURIComponent(t)}/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({object:t,viewId:a,data:r})});return this.unwrapResponse(p)},delete:async(t,a)=>{const r=this.getRoute("views"),l=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(t)}/${encodeURIComponent(a)}`,{method:"DELETE"});return this.unwrapResponse(l)}},this.notifications={registerDevice:async t=>{const a=this.getRoute("notifications"),r=await this.fetch(`${this.baseUrl}${a}/devices`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)},unregisterDevice:async t=>{const a=this.getRoute("notifications"),r=await this.fetch(`${this.baseUrl}${a}/devices/${encodeURIComponent(t)}`,{method:"DELETE"});return this.unwrapResponse(r)},getPreferences:async()=>{const t=this.getRoute("notifications"),a=await this.fetch(`${this.baseUrl}${t}/preferences`);return this.unwrapResponse(a)},updatePreferences:async t=>{const a=this.getRoute("notifications"),r=await this.fetch(`${this.baseUrl}${a}/preferences`,{method:"PUT",body:JSON.stringify({preferences:t})});return this.unwrapResponse(r)},list:async t=>{const a=this.getRoute("notifications"),r=new URLSearchParams;t?.read!==void 0&&r.set("read",String(t.read)),t?.type&&r.set("type",t.type),t?.limit&&r.set("limit",String(t.limit)),t?.cursor&&r.set("cursor",t.cursor);const l=r.toString(),p=await this.fetch(`${this.baseUrl}${a}${l?`?${l}`:""}`);return this.unwrapResponse(p)},markRead:async t=>{const a=this.getRoute("notifications"),r=await this.fetch(`${this.baseUrl}${a}/read`,{method:"POST",body:JSON.stringify({ids:t})});return this.unwrapResponse(r)},markAllRead:async()=>{const t=this.getRoute("notifications"),a=await this.fetch(`${this.baseUrl}${t}/read/all`,{method:"POST"});return this.unwrapResponse(a)}},this.ai={nlq:async t=>{const a=this.getRoute("ai"),r=await this.fetch(`${this.baseUrl}${a}/nlq`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)},chat:async t=>{const a=this.getRoute("ai"),r=await this.fetch(`${this.baseUrl}${a}/chat`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)},suggest:async t=>{const a=this.getRoute("ai"),r=await this.fetch(`${this.baseUrl}${a}/suggest`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)},insights:async t=>{const a=this.getRoute("ai"),r=await this.fetch(`${this.baseUrl}${a}/insights`,{method:"POST",body:JSON.stringify(t)});return this.unwrapResponse(r)}},this.i18n={getLocales:async()=>{const t=this.getRoute("i18n"),a=await this.fetch(`${this.baseUrl}${t}/locales`);return this.unwrapResponse(a)},getTranslations:async(t,a)=>{const r=this.getRoute("i18n"),l=new URLSearchParams;l.set("locale",t),a?.namespace&&l.set("namespace",a.namespace),a?.keys&&l.set("keys",a.keys.join(","));const p=await this.fetch(`${this.baseUrl}${r}/translations?${l.toString()}`);return this.unwrapResponse(p)},getFieldLabels:async(t,a)=>{const r=this.getRoute("i18n"),l=await this.fetch(`${this.baseUrl}${r}/labels/${encodeURIComponent(t)}?locale=${encodeURIComponent(a)}`);return this.unwrapResponse(l)}},this.data={query:async(t,a)=>{const r=this.getRoute("data"),l=await this.fetch(`${this.baseUrl}${r}/${t}/query`,{method:"POST",body:JSON.stringify(a)});return this.unwrapResponse(l)},find:async(t,a={})=>{const r=this.getRoute("data"),l=new URLSearchParams;if(a.top&&l.set("top",a.top.toString()),a.skip&&l.set("skip",a.skip.toString()),a.sort)if(Array.isArray(a.sort)&&typeof a.sort[0]=="object")l.set("sort",JSON.stringify(a.sort));else{const b=Array.isArray(a.sort)?a.sort.join(","):a.sort;l.set("sort",b)}a.select&&l.set("select",a.select.join(",")),a.filters&&(this.isFilterAST(a.filters)?l.set("filters",JSON.stringify(a.filters)):Object.entries(a.filters).forEach(([b,g])=>{g!=null&&l.append(b,String(g))})),a.aggregations&&l.set("aggregations",JSON.stringify(a.aggregations)),a.groupBy&&l.set("groupBy",a.groupBy.join(","));const p=await this.fetch(`${this.baseUrl}${r}/${t}?${l.toString()}`);return this.unwrapResponse(p)},get:async(t,a)=>{const r=this.getRoute("data"),l=await this.fetch(`${this.baseUrl}${r}/${t}/${a}`);return this.unwrapResponse(l)},create:async(t,a)=>{const r=this.getRoute("data"),l=await this.fetch(`${this.baseUrl}${r}/${t}`,{method:"POST",body:JSON.stringify(a)});return this.unwrapResponse(l)},createMany:async(t,a)=>{const r=this.getRoute("data"),l=await this.fetch(`${this.baseUrl}${r}/${t}/createMany`,{method:"POST",body:JSON.stringify(a)});return this.unwrapResponse(l)},update:async(t,a,r)=>{const l=this.getRoute("data"),p=await this.fetch(`${this.baseUrl}${l}/${t}/${a}`,{method:"PATCH",body:JSON.stringify(r)});return this.unwrapResponse(p)},batch:async(t,a)=>{const r=this.getRoute("data"),l=await this.fetch(`${this.baseUrl}${r}/${t}/batch`,{method:"POST",body:JSON.stringify(a)});return this.unwrapResponse(l)},updateMany:async(t,a,r)=>{const l=this.getRoute("data"),p={records:a,options:r},b=await this.fetch(`${this.baseUrl}${l}/${t}/updateMany`,{method:"POST",body:JSON.stringify(p)});return this.unwrapResponse(b)},delete:async(t,a)=>{const r=this.getRoute("data"),l=await this.fetch(`${this.baseUrl}${r}/${t}/${a}`,{method:"DELETE"});return this.unwrapResponse(l)},deleteMany:async(t,a,r)=>{const l=this.getRoute("data"),p={ids:a,options:r},b=await this.fetch(`${this.baseUrl}${l}/${t}/deleteMany`,{method:"POST",body:JSON.stringify(p)});return this.unwrapResponse(b)}},this.baseUrl=e.baseUrl.replace(/\/$/,""),this.token=e.token,this.fetchImpl=e.fetch||globalThis.fetch.bind(globalThis),this.logger=e.logger||hm({level:e.debug?"debug":"info",format:"pretty"}),this.logger.debug("ObjectStack client created",{baseUrl:this.baseUrl})}async connect(){this.logger.debug("Connecting to ObjectStack server",{baseUrl:this.baseUrl});try{let e;try{let t;try{t=`${new URL(this.baseUrl).origin}/.well-known/objectstack`}catch{t="/.well-known/objectstack"}this.logger.debug("Probing .well-known discovery",{url:t});const a=await this.fetchImpl(t);if(a.ok){const r=await a.json();e=r.data||r,this.logger.debug("Discovered via .well-known")}}catch(t){this.logger.debug("Standard discovery probe failed",{error:t.message})}if(!e){const t=`${this.baseUrl}/api/v1`;this.logger.debug("Falling back to legacy discovery",{url:t});const a=await this.fetchImpl(t);if(!a.ok)throw new Error(`Failed to connect to ${t}: ${a.statusText}`);const r=await a.json();e=r.data||r}if(!e)throw new Error("Connection failed: No discovery data returned");return this.discoveryInfo=e,this.logger.info("Connected to ObjectStack server",{version:e.version,apiName:e.apiName,capabilities:e.capabilities}),e}catch(e){throw this.logger.error("Failed to connect to ObjectStack server",e,{baseUrl:this.baseUrl}),e}}isFilterAST(e){return Array.isArray(e)}async unwrapResponse(e){const t=await e.json();return t&&typeof t.success=="boolean"&&"data"in t?t.data:t}async fetch(e,t={}){this.logger.debug("HTTP request",{method:t.method||"GET",url:e,hasBody:!!t.body});const a={"Content-Type":"application/json",...t.headers||{}};this.token&&(a.Authorization=`Bearer ${this.token}`);const r=await this.fetchImpl(e,{...t,headers:a});if(this.logger.debug("HTTP response",{method:t.method||"GET",url:e,status:r.status,ok:r.ok}),!r.ok){let l;try{l=await r.json()}catch{l={message:r.statusText}}this.logger.error("HTTP request failed",void 0,{method:t.method||"GET",url:e,status:r.status,error:l});const p=l?.message||l?.error?.message||r.statusText,b=l?.code||l?.error?.code,g=new Error(`[ObjectStack] ${b?`${b}: `:""}${p}`);throw g.code=b,g.category=l?.category,g.httpStatus=r.status,g.retryable=l?.retryable,g.details=l?.details||l,g}return r}getRoute(e){return this.discoveryInfo?.endpoints&&this.discoveryInfo.endpoints[e]?this.discoveryInfo.endpoints[e]:{data:"/api/v1/data",metadata:"/api/v1/meta",ui:"/api/v1/ui",auth:"/api/v1/auth",analytics:"/api/v1/analytics",storage:"/api/v1/storage",automation:"/api/v1/automation",packages:"/api/v1/packages",permissions:"/api/v1/auth",realtime:"/api/v1/realtime",workflow:"/api/v1/workflow",views:"/api/v1/ui/views",notifications:"/api/v1/notifications",ai:"/api/v1/ai",i18n:"/api/v1/i18n"}[e]||`/api/v1/${e}`}},S_=R.createContext(null);function Tee({client:e,children:t}){return R.createElement(S_.Provider,{value:e},t)}function yr(){const e=R.useContext(S_);if(!e)throw new Error("useClient must be used within an ObjectStackProvider. Make sure your component is wrapped with <ObjectStackProvider client={...}>.");return e}const x_=(...e)=>e.filter((t,a,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===a).join(" ").trim();const Aee=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const _ee=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,a,r)=>r?r.toUpperCase():a.toLowerCase());const HE=e=>{const t=_ee(e);return t.charAt(0).toUpperCase()+t.slice(1)};var Pee={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const Iee=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};const Dee=R.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:r,className:l="",children:p,iconNode:b,...g},x)=>R.createElement("svg",{ref:x,...Pee,width:t,height:t,stroke:e,strokeWidth:r?Number(a)*24/Number(t):a,className:x_("lucide",l),...!p&&!Iee(g)&&{"aria-hidden":"true"},...g},[...b.map(([v,k])=>R.createElement(v,k)),...Array.isArray(p)?p:[p]]));const we=(e,t)=>{const a=R.forwardRef(({className:r,...l},p)=>R.createElement(Dee,{ref:p,iconNode:t,className:x_(`lucide-${Aee(HE(e))}`,`lucide-${e}`,r),...l}));return a.displayName=HE(e),a};const jee=[["path",{d:"M12 6v16",key:"nqf5sj"}],["path",{d:"m19 13 2-1a9 9 0 0 1-18 0l2 1",key:"y7qv08"}],["path",{d:"M9 11h6",key:"1fldmi"}],["circle",{cx:"12",cy:"4",r:"2",key:"muu5ef"}]],w_=we("anchor",jee);const Mee=[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]],Dc=we("app-window",Mee);const Oee=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],Nee=we("arrow-left",Oee);const Lee=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],zee=we("arrow-right",Lee);const qee=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],gv=we("book-open",qee);const $ee=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],Qc=we("bot",$ee);const Uee=[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]],Fee=we("box",Uee);const Bee=[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["line",{x1:"8",x2:"16",y1:"6",y2:"6",key:"x4nwl0"}],["line",{x1:"16",x2:"16",y1:"14",y2:"18",key:"wjye3r"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M8 18h.01",key:"lrp35t"}]],Hee=we("calculator",Bee);const Vee=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],VE=we("calendar",Vee);const Gee=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],yv=we("chart-column",Gee);const Wee=[["path",{d:"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",key:"pzmjnu"}],["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}]],k_=we("chart-pie",Wee);const Qee=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],pn=we("check",Qee);const Kee=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Kc=we("chevron-down",Kee);const Zee=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],gm=we("chevron-right",Zee);const Yee=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],Jee=we("chevron-up",Yee);const Xee=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],ete=we("chevrons-up-down",Xee);const tte=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],C_=we("circle-alert",tte);const ite=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]],ate=we("circle-dot",ite);const ote=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],rte=we("circle",ote);const nte=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ste=we("clock",nte);const lte=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],ym=we("code-xml",lte);const cte=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],vv=we("copy",cte);const dte=[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]],E_=we("cpu",dte);const ute=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],za=we("database",ute);const pte=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],mte=we("ellipsis",pte);const fte=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],bte=we("external-link",fte);const hte=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Sv=we("eye",hte);const gte=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]],R_=we("file-code",gte);const yte=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],Zc=we("file-text",yte);const vte=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],vr=we("globe",vte);const Ste=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],GE=we("hash",Ste);const xte=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],wte=we("key",xte);const kte=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],js=we("layers",kte);const Cte=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],Ete=we("layout-dashboard",Cte);const Rte=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],T_=we("link-2",Rte);const Tte=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]],A_=we("link",Tte);const Ate=[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]],_te=we("list",Ate);const Pte=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],Qg=we("loader-circle",Pte);const Ite=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],__=we("lock",Ite);const Dte=[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]],P_=we("map",Dte);const jte=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],WE=we("moon",jte);const Mte=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],ba=we("package",Mte);const Ote=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],I_=we("palette",Ote);const Nte=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]],Lte=we("panel-left",Nte);const zte=[["path",{d:"M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z",key:"nt11vn"}],["path",{d:"m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18",key:"15qc1e"}],["path",{d:"m2.3 2.3 7.286 7.286",key:"1wuzzi"}],["circle",{cx:"11",cy:"11",r:"2",key:"xmgehs"}]],qte=we("pen-tool",zte);const $te=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],Ute=we("play",$te);const Fte=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Bte=we("plus",Fte);const Hte=[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],Vte=we("power-off",Hte);const Gte=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],Wte=we("power",Gte);const Qte=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],vm=we("refresh-cw",Qte);const Kte=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],Zte=we("save",Kte);const Yte=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],jc=we("search",Yte);const Jte=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],mo=we("shield",Jte);const Xte=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Kg=we("sparkles",Xte);const eie=[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],D_=we("square-check-big",eie);const tie=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],iie=we("square-pen",tie);const aie=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],QE=we("sun",aie);const oie=[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]],j_=we("table-2",oie);const rie=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],M_=we("terminal",rie);const nie=[["circle",{cx:"9",cy:"12",r:"3",key:"u3jwor"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]],sie=we("toggle-left",nie);const lie=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],O_=we("trash-2",lie);const cie=[["path",{d:"M12 4v16",key:"1654pz"}],["path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",key:"e0r10z"}],["path",{d:"M9 20h6",key:"s66wpe"}]],die=we("type",cie);const uie=[["path",{d:"M10 15H6a4 4 0 0 0-4 4v2",key:"1nfge6"}],["path",{d:"m14.305 16.53.923-.382",key:"1itpsq"}],["path",{d:"m15.228 13.852-.923-.383",key:"eplpkm"}],["path",{d:"m16.852 12.228-.383-.923",key:"13v3q0"}],["path",{d:"m16.852 17.772-.383.924",key:"1i8mnm"}],["path",{d:"m19.148 12.228.383-.923",key:"1q8j1v"}],["path",{d:"m19.53 18.696-.382-.924",key:"vk1qj3"}],["path",{d:"m20.772 13.852.924-.383",key:"n880s0"}],["path",{d:"m20.772 16.148.924.383",key:"1g6xey"}],["circle",{cx:"18",cy:"15",r:"3",key:"gjjjvw"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],N_=we("user-cog",uie);const pie=[["path",{d:"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2",key:"q3hayz"}],["path",{d:"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06",key:"1go1hn"}],["path",{d:"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8",key:"qlwsc0"}]],L_=we("webhook",pie);const mie=[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]],Ms=we("workflow",mie);const fie=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Sm=we("x",fie);const bie=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],xm=we("zap",bie);class hie extends R.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,a){console.error("[ErrorBoundary] Uncaught error:",t,a.componentStack)}handleReset=()=>{this.setState({hasError:!1,error:null})};render(){return this.state.hasError?this.props.fallback?this.props.fallback:y.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background p-6",children:y.jsxs("div",{className:"max-w-md w-full space-y-4 text-center",children:[y.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-destructive/10",children:y.jsx(C_,{className:"h-6 w-6 text-destructive"})}),y.jsx("h2",{className:"text-lg font-semibold",children:"Something went wrong"}),y.jsx("p",{className:"text-sm text-muted-foreground",children:this.state.error?.message||"An unexpected error occurred."}),y.jsx("pre",{className:"mt-2 max-h-40 overflow-auto rounded-lg bg-muted p-3 text-left text-xs font-mono text-muted-foreground",children:this.state.error?.stack?.split(`
|
|
50
50
|
`).slice(0,6).join(`
|
|
51
51
|
`)}),y.jsxs("button",{onClick:this.handleReset,className:"inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors",children:[y.jsx(vm,{className:"h-4 w-4"}),"Try Again"]})]})}):this.props.children}}function KE(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Yc(...e){return t=>{let a=!1;const r=e.map(l=>{const p=KE(l,t);return!a&&typeof p=="function"&&(a=!0),p});if(a)return()=>{for(let l=0;l<r.length;l++){const p=r[l];typeof p=="function"?p():KE(e[l],null)}}}}function Ve(...e){return R.useCallback(Yc(...e),e)}var gie=Symbol.for("react.lazy"),Dp=Yy[" use ".trim().toString()];function yie(e){return typeof e=="object"&&e!==null&&"then"in e}function z_(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===gie&&"_payload"in e&&yie(e._payload)}function q_(e){const t=vie(e),a=R.forwardRef((r,l)=>{let{children:p,...b}=r;z_(p)&&typeof Dp=="function"&&(p=Dp(p._payload));const g=R.Children.toArray(p),x=g.find(xie);if(x){const v=x.props.children,k=g.map(T=>T===x?R.Children.count(v)>1?R.Children.only(null):R.isValidElement(v)?v.props.children:null:T);return y.jsx(t,{...b,ref:l,children:R.isValidElement(v)?R.cloneElement(v,void 0,k):null})}return y.jsx(t,{...b,ref:l,children:p})});return a.displayName=`${e}.Slot`,a}var mn=q_("Slot");function vie(e){const t=R.forwardRef((a,r)=>{let{children:l,...p}=a;if(z_(l)&&typeof Dp=="function"&&(l=Dp(l._payload)),R.isValidElement(l)){const b=kie(l),g=wie(p,l.props);return l.type!==R.Fragment&&(g.ref=r?Yc(r,b):b),R.cloneElement(l,g)}return R.Children.count(l)>1?R.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Sie=Symbol("radix.slottable");function xie(e){return R.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Sie}function wie(e,t){const a={...t};for(const r in t){const l=e[r],p=t[r];/^on[A-Z]/.test(r)?l&&p?a[r]=(...g)=>{const x=p(...g);return l(...g),x}:l&&(a[r]=l):r==="style"?a[r]={...l,...p}:r==="className"&&(a[r]=[l,p].filter(Boolean).join(" "))}return{...e,...a}}function kie(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning;return a?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}function $_(e){var t,a,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var l=e.length;for(t=0;t<l;t++)e[t]&&(a=$_(e[t]))&&(r&&(r+=" "),r+=a)}else for(a in e)e[a]&&(r&&(r+=" "),r+=a);return r}function U_(){for(var e,t,a=0,r="",l=arguments.length;a<l;a++)(e=arguments[a])&&(t=$_(e))&&(r&&(r+=" "),r+=t);return r}const ZE=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,YE=U_,fn=(e,t)=>a=>{var r;if(t?.variants==null)return YE(e,a?.class,a?.className);const{variants:l,defaultVariants:p}=t,b=Object.keys(l).map(v=>{const k=a?.[v],T=p?.[v];if(k===null)return null;const P=ZE(k)||ZE(T);return l[v][P]}),g=a&&Object.entries(a).reduce((v,k)=>{let[T,P]=k;return P===void 0||(v[T]=P),v},{}),x=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((v,k)=>{let{class:T,className:P,...A}=k;return Object.entries(A).every(j=>{let[I,D]=j;return Array.isArray(D)?D.includes({...p,...g}[I]):{...p,...g}[I]===D})?[...v,T,P]:v},[]);return YE(e,b,x,a?.class,a?.className)},lg=768;function Cie(){const[e,t]=R.useState(void 0);return R.useEffect(()=>{const a=window.matchMedia(`(max-width: ${lg-1}px)`),r=()=>{t(window.innerWidth<lg)};return a.addEventListener("change",r),t(window.innerWidth<lg),()=>a.removeEventListener("change",r)},[]),!!e}const Eie=(e,t)=>{const a=new Array(e.length+t.length);for(let r=0;r<e.length;r++)a[r]=e[r];for(let r=0;r<t.length;r++)a[e.length+r]=t[r];return a},Rie=(e,t)=>({classGroupId:e,validator:t}),F_=(e=new Map,t=null,a)=>({nextPart:e,validators:t,classGroupId:a}),jp="-",JE=[],Tie="arbitrary..",Aie=e=>{const t=Pie(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:b=>{if(b.startsWith("[")&&b.endsWith("]"))return _ie(b);const g=b.split(jp),x=g[0]===""&&g.length>1?1:0;return B_(g,x,t)},getConflictingClassGroupIds:(b,g)=>{if(g){const x=r[b],v=a[b];return x?v?Eie(v,x):x:v||JE}return a[b]||JE}}},B_=(e,t,a)=>{if(e.length-t===0)return a.classGroupId;const l=e[t],p=a.nextPart.get(l);if(p){const v=B_(e,t+1,p);if(v)return v}const b=a.validators;if(b===null)return;const g=t===0?e.join(jp):e.slice(t).join(jp),x=b.length;for(let v=0;v<x;v++){const k=b[v];if(k.validator(g))return k.classGroupId}},_ie=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),a=t.indexOf(":"),r=t.slice(0,a);return r?Tie+r:void 0})(),Pie=e=>{const{theme:t,classGroups:a}=e;return Iie(a,t)},Iie=(e,t)=>{const a=F_();for(const r in e){const l=e[r];xv(l,a,r,t)}return a},xv=(e,t,a,r)=>{const l=e.length;for(let p=0;p<l;p++){const b=e[p];Die(b,t,a,r)}},Die=(e,t,a,r)=>{if(typeof e=="string"){jie(e,t,a);return}if(typeof e=="function"){Mie(e,t,a,r);return}Oie(e,t,a,r)},jie=(e,t,a)=>{const r=e===""?t:H_(t,e);r.classGroupId=a},Mie=(e,t,a,r)=>{if(Nie(e)){xv(e(r),t,a,r);return}t.validators===null&&(t.validators=[]),t.validators.push(Rie(a,e))},Oie=(e,t,a,r)=>{const l=Object.entries(e),p=l.length;for(let b=0;b<p;b++){const[g,x]=l[b];xv(x,H_(t,g),a,r)}},H_=(e,t)=>{let a=e;const r=t.split(jp),l=r.length;for(let p=0;p<l;p++){const b=r[p];let g=a.nextPart.get(b);g||(g=F_(),a.nextPart.set(b,g)),a=g}return a},Nie=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,Lie=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,a=Object.create(null),r=Object.create(null);const l=(p,b)=>{a[p]=b,t++,t>e&&(t=0,r=a,a=Object.create(null))};return{get(p){let b=a[p];if(b!==void 0)return b;if((b=r[p])!==void 0)return l(p,b),b},set(p,b){p in a?a[p]=b:l(p,b)}}},Zg="!",XE=":",zie=[],eR=(e,t,a,r,l)=>({modifiers:e,hasImportantModifier:t,baseClassName:a,maybePostfixModifierPosition:r,isExternal:l}),qie=e=>{const{prefix:t,experimentalParseClassName:a}=e;let r=l=>{const p=[];let b=0,g=0,x=0,v;const k=l.length;for(let I=0;I<k;I++){const D=l[I];if(b===0&&g===0){if(D===XE){p.push(l.slice(x,I)),x=I+1;continue}if(D==="/"){v=I;continue}}D==="["?b++:D==="]"?b--:D==="("?g++:D===")"&&g--}const T=p.length===0?l:l.slice(x);let P=T,A=!1;T.endsWith(Zg)?(P=T.slice(0,-1),A=!0):T.startsWith(Zg)&&(P=T.slice(1),A=!0);const j=v&&v>x?v-x:void 0;return eR(p,A,P,j)};if(t){const l=t+XE,p=r;r=b=>b.startsWith(l)?p(b.slice(l.length)):eR(zie,!1,b,void 0,!0)}if(a){const l=r;r=p=>a({className:p,parseClassName:l})}return r},$ie=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((a,r)=>{t.set(a,1e6+r)}),a=>{const r=[];let l=[];for(let p=0;p<a.length;p++){const b=a[p],g=b[0]==="[",x=t.has(b);g||x?(l.length>0&&(l.sort(),r.push(...l),l=[]),r.push(b)):l.push(b)}return l.length>0&&(l.sort(),r.push(...l)),r}},Uie=e=>({cache:Lie(e.cacheSize),parseClassName:qie(e),sortModifiers:$ie(e),...Aie(e)}),Fie=/\s+/,Bie=(e,t)=>{const{parseClassName:a,getClassGroupId:r,getConflictingClassGroupIds:l,sortModifiers:p}=t,b=[],g=e.trim().split(Fie);let x="";for(let v=g.length-1;v>=0;v-=1){const k=g[v],{isExternal:T,modifiers:P,hasImportantModifier:A,baseClassName:j,maybePostfixModifierPosition:I}=a(k);if(T){x=k+(x.length>0?" "+x:x);continue}let D=!!I,N=r(D?j.substring(0,I):j);if(!N){if(!D){x=k+(x.length>0?" "+x:x);continue}if(N=r(j),!N){x=k+(x.length>0?" "+x:x);continue}D=!1}const M=P.length===0?"":P.length===1?P[0]:p(P).join(":"),L=A?M+Zg:M,F=L+N;if(b.indexOf(F)>-1)continue;b.push(F);const Q=l(N,D);for(let q=0;q<Q.length;++q){const G=Q[q];b.push(L+G)}x=k+(x.length>0?" "+x:x)}return x},Hie=(...e)=>{let t=0,a,r,l="";for(;t<e.length;)(a=e[t++])&&(r=V_(a))&&(l&&(l+=" "),l+=r);return l},V_=e=>{if(typeof e=="string")return e;let t,a="";for(let r=0;r<e.length;r++)e[r]&&(t=V_(e[r]))&&(a&&(a+=" "),a+=t);return a},Vie=(e,...t)=>{let a,r,l,p;const b=x=>{const v=t.reduce((k,T)=>T(k),e());return a=Uie(v),r=a.cache.get,l=a.cache.set,p=g,g(x)},g=x=>{const v=r(x);if(v)return v;const k=Bie(x,a);return l(x,k),k};return p=b,(...x)=>p(Hie(...x))},Gie=[],qt=e=>{const t=a=>a[e]||Gie;return t.isThemeGetter=!0,t},G_=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,W_=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Wie=/^\d+\/\d+$/,Qie=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Kie=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Zie=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Yie=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Jie=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ps=e=>Wie.test(e),Ge=e=>!!e&&!Number.isNaN(Number(e)),tr=e=>!!e&&Number.isInteger(Number(e)),cg=e=>e.endsWith("%")&&Ge(e.slice(0,-1)),lo=e=>Qie.test(e),Xie=()=>!0,eae=e=>Kie.test(e)&&!Zie.test(e),Q_=()=>!1,tae=e=>Yie.test(e),iae=e=>Jie.test(e),aae=e=>!Ce(e)&&!Ee(e),oae=e=>Hs(e,Y_,Q_),Ce=e=>G_.test(e),Vr=e=>Hs(e,J_,eae),dg=e=>Hs(e,cae,Ge),tR=e=>Hs(e,K_,Q_),rae=e=>Hs(e,Z_,iae),Vu=e=>Hs(e,X_,tae),Ee=e=>W_.test(e),ic=e=>Vs(e,J_),nae=e=>Vs(e,dae),iR=e=>Vs(e,K_),sae=e=>Vs(e,Y_),lae=e=>Vs(e,Z_),Gu=e=>Vs(e,X_,!0),Hs=(e,t,a)=>{const r=G_.exec(e);return r?r[1]?t(r[1]):a(r[2]):!1},Vs=(e,t,a=!1)=>{const r=W_.exec(e);return r?r[1]?t(r[1]):a:!1},K_=e=>e==="position"||e==="percentage",Z_=e=>e==="image"||e==="url",Y_=e=>e==="length"||e==="size"||e==="bg-size",J_=e=>e==="length",cae=e=>e==="number",dae=e=>e==="family-name",X_=e=>e==="shadow",uae=()=>{const e=qt("color"),t=qt("font"),a=qt("text"),r=qt("font-weight"),l=qt("tracking"),p=qt("leading"),b=qt("breakpoint"),g=qt("container"),x=qt("spacing"),v=qt("radius"),k=qt("shadow"),T=qt("inset-shadow"),P=qt("text-shadow"),A=qt("drop-shadow"),j=qt("blur"),I=qt("perspective"),D=qt("aspect"),N=qt("ease"),M=qt("animate"),L=()=>["auto","avoid","all","avoid-page","page","left","right","column"],F=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Q=()=>[...F(),Ee,Ce],q=()=>["auto","hidden","clip","visible","scroll"],G=()=>["auto","contain","none"],H=()=>[Ee,Ce,x],ce=()=>[ps,"full","auto",...H()],ae=()=>[tr,"none","subgrid",Ee,Ce],se=()=>["auto",{span:["full",tr,Ee,Ce]},tr,Ee,Ce],he=()=>[tr,"auto",Ee,Ce],xe=()=>["auto","min","max","fr",Ee,Ce],fe=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ve=()=>["start","end","center","stretch","center-safe","end-safe"],V=()=>["auto",...H()],re=()=>[ps,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...H()],Y=()=>[e,Ee,Ce],de=()=>[...F(),iR,tR,{position:[Ee,Ce]}],_e=()=>["no-repeat",{repeat:["","x","y","space","round"]}],U=()=>["auto","cover","contain",sae,oae,{size:[Ee,Ce]}],ie=()=>[cg,ic,Vr],me=()=>["","none","full",v,Ee,Ce],be=()=>["",Ge,ic,Vr],Re=()=>["solid","dashed","dotted","double"],Ie=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ue=()=>[Ge,cg,iR,tR],Le=()=>["","none",j,Ee,Ce],qe=()=>["none",Ge,Ee,Ce],He=()=>["none",Ge,Ee,Ce],Ze=()=>[Ge,Ee,Ce],it=()=>[ps,"full",...H()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[lo],breakpoint:[lo],color:[Xie],container:[lo],"drop-shadow":[lo],ease:["in","out","in-out"],font:[aae],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[lo],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[lo],shadow:[lo],spacing:["px",Ge],text:[lo],"text-shadow":[lo],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ps,Ce,Ee,D]}],container:["container"],columns:[{columns:[Ge,Ce,Ee,g]}],"break-after":[{"break-after":L()}],"break-before":[{"break-before":L()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:Q()}],overflow:[{overflow:q()}],"overflow-x":[{"overflow-x":q()}],"overflow-y":[{"overflow-y":q()}],overscroll:[{overscroll:G()}],"overscroll-x":[{"overscroll-x":G()}],"overscroll-y":[{"overscroll-y":G()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:ce()}],"inset-x":[{"inset-x":ce()}],"inset-y":[{"inset-y":ce()}],start:[{start:ce()}],end:[{end:ce()}],top:[{top:ce()}],right:[{right:ce()}],bottom:[{bottom:ce()}],left:[{left:ce()}],visibility:["visible","invisible","collapse"],z:[{z:[tr,"auto",Ee,Ce]}],basis:[{basis:[ps,"full","auto",g,...H()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ge,ps,"auto","initial","none",Ce]}],grow:[{grow:["",Ge,Ee,Ce]}],shrink:[{shrink:["",Ge,Ee,Ce]}],order:[{order:[tr,"first","last","none",Ee,Ce]}],"grid-cols":[{"grid-cols":ae()}],"col-start-end":[{col:se()}],"col-start":[{"col-start":he()}],"col-end":[{"col-end":he()}],"grid-rows":[{"grid-rows":ae()}],"row-start-end":[{row:se()}],"row-start":[{"row-start":he()}],"row-end":[{"row-end":he()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":xe()}],"auto-rows":[{"auto-rows":xe()}],gap:[{gap:H()}],"gap-x":[{"gap-x":H()}],"gap-y":[{"gap-y":H()}],"justify-content":[{justify:[...fe(),"normal"]}],"justify-items":[{"justify-items":[...ve(),"normal"]}],"justify-self":[{"justify-self":["auto",...ve()]}],"align-content":[{content:["normal",...fe()]}],"align-items":[{items:[...ve(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ve(),{baseline:["","last"]}]}],"place-content":[{"place-content":fe()}],"place-items":[{"place-items":[...ve(),"baseline"]}],"place-self":[{"place-self":["auto",...ve()]}],p:[{p:H()}],px:[{px:H()}],py:[{py:H()}],ps:[{ps:H()}],pe:[{pe:H()}],pt:[{pt:H()}],pr:[{pr:H()}],pb:[{pb:H()}],pl:[{pl:H()}],m:[{m:V()}],mx:[{mx:V()}],my:[{my:V()}],ms:[{ms:V()}],me:[{me:V()}],mt:[{mt:V()}],mr:[{mr:V()}],mb:[{mb:V()}],ml:[{ml:V()}],"space-x":[{"space-x":H()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":H()}],"space-y-reverse":["space-y-reverse"],size:[{size:re()}],w:[{w:[g,"screen",...re()]}],"min-w":[{"min-w":[g,"screen","none",...re()]}],"max-w":[{"max-w":[g,"screen","none","prose",{screen:[b]},...re()]}],h:[{h:["screen","lh",...re()]}],"min-h":[{"min-h":["screen","lh","none",...re()]}],"max-h":[{"max-h":["screen","lh",...re()]}],"font-size":[{text:["base",a,ic,Vr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,Ee,dg]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",cg,Ce]}],"font-family":[{font:[nae,Ce,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,Ee,Ce]}],"line-clamp":[{"line-clamp":[Ge,"none",Ee,dg]}],leading:[{leading:[p,...H()]}],"list-image":[{"list-image":["none",Ee,Ce]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Ee,Ce]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:Y()}],"text-color":[{text:Y()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Re(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ge,"from-font","auto",Ee,Vr]}],"text-decoration-color":[{decoration:Y()}],"underline-offset":[{"underline-offset":[Ge,"auto",Ee,Ce]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:H()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Ee,Ce]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Ee,Ce]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:de()}],"bg-repeat":[{bg:_e()}],"bg-size":[{bg:U()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},tr,Ee,Ce],radial:["",Ee,Ce],conic:[tr,Ee,Ce]},lae,rae]}],"bg-color":[{bg:Y()}],"gradient-from-pos":[{from:ie()}],"gradient-via-pos":[{via:ie()}],"gradient-to-pos":[{to:ie()}],"gradient-from":[{from:Y()}],"gradient-via":[{via:Y()}],"gradient-to":[{to:Y()}],rounded:[{rounded:me()}],"rounded-s":[{"rounded-s":me()}],"rounded-e":[{"rounded-e":me()}],"rounded-t":[{"rounded-t":me()}],"rounded-r":[{"rounded-r":me()}],"rounded-b":[{"rounded-b":me()}],"rounded-l":[{"rounded-l":me()}],"rounded-ss":[{"rounded-ss":me()}],"rounded-se":[{"rounded-se":me()}],"rounded-ee":[{"rounded-ee":me()}],"rounded-es":[{"rounded-es":me()}],"rounded-tl":[{"rounded-tl":me()}],"rounded-tr":[{"rounded-tr":me()}],"rounded-br":[{"rounded-br":me()}],"rounded-bl":[{"rounded-bl":me()}],"border-w":[{border:be()}],"border-w-x":[{"border-x":be()}],"border-w-y":[{"border-y":be()}],"border-w-s":[{"border-s":be()}],"border-w-e":[{"border-e":be()}],"border-w-t":[{"border-t":be()}],"border-w-r":[{"border-r":be()}],"border-w-b":[{"border-b":be()}],"border-w-l":[{"border-l":be()}],"divide-x":[{"divide-x":be()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":be()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Re(),"hidden","none"]}],"divide-style":[{divide:[...Re(),"hidden","none"]}],"border-color":[{border:Y()}],"border-color-x":[{"border-x":Y()}],"border-color-y":[{"border-y":Y()}],"border-color-s":[{"border-s":Y()}],"border-color-e":[{"border-e":Y()}],"border-color-t":[{"border-t":Y()}],"border-color-r":[{"border-r":Y()}],"border-color-b":[{"border-b":Y()}],"border-color-l":[{"border-l":Y()}],"divide-color":[{divide:Y()}],"outline-style":[{outline:[...Re(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ge,Ee,Ce]}],"outline-w":[{outline:["",Ge,ic,Vr]}],"outline-color":[{outline:Y()}],shadow:[{shadow:["","none",k,Gu,Vu]}],"shadow-color":[{shadow:Y()}],"inset-shadow":[{"inset-shadow":["none",T,Gu,Vu]}],"inset-shadow-color":[{"inset-shadow":Y()}],"ring-w":[{ring:be()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:Y()}],"ring-offset-w":[{"ring-offset":[Ge,Vr]}],"ring-offset-color":[{"ring-offset":Y()}],"inset-ring-w":[{"inset-ring":be()}],"inset-ring-color":[{"inset-ring":Y()}],"text-shadow":[{"text-shadow":["none",P,Gu,Vu]}],"text-shadow-color":[{"text-shadow":Y()}],opacity:[{opacity:[Ge,Ee,Ce]}],"mix-blend":[{"mix-blend":[...Ie(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ie()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Ge]}],"mask-image-linear-from-pos":[{"mask-linear-from":ue()}],"mask-image-linear-to-pos":[{"mask-linear-to":ue()}],"mask-image-linear-from-color":[{"mask-linear-from":Y()}],"mask-image-linear-to-color":[{"mask-linear-to":Y()}],"mask-image-t-from-pos":[{"mask-t-from":ue()}],"mask-image-t-to-pos":[{"mask-t-to":ue()}],"mask-image-t-from-color":[{"mask-t-from":Y()}],"mask-image-t-to-color":[{"mask-t-to":Y()}],"mask-image-r-from-pos":[{"mask-r-from":ue()}],"mask-image-r-to-pos":[{"mask-r-to":ue()}],"mask-image-r-from-color":[{"mask-r-from":Y()}],"mask-image-r-to-color":[{"mask-r-to":Y()}],"mask-image-b-from-pos":[{"mask-b-from":ue()}],"mask-image-b-to-pos":[{"mask-b-to":ue()}],"mask-image-b-from-color":[{"mask-b-from":Y()}],"mask-image-b-to-color":[{"mask-b-to":Y()}],"mask-image-l-from-pos":[{"mask-l-from":ue()}],"mask-image-l-to-pos":[{"mask-l-to":ue()}],"mask-image-l-from-color":[{"mask-l-from":Y()}],"mask-image-l-to-color":[{"mask-l-to":Y()}],"mask-image-x-from-pos":[{"mask-x-from":ue()}],"mask-image-x-to-pos":[{"mask-x-to":ue()}],"mask-image-x-from-color":[{"mask-x-from":Y()}],"mask-image-x-to-color":[{"mask-x-to":Y()}],"mask-image-y-from-pos":[{"mask-y-from":ue()}],"mask-image-y-to-pos":[{"mask-y-to":ue()}],"mask-image-y-from-color":[{"mask-y-from":Y()}],"mask-image-y-to-color":[{"mask-y-to":Y()}],"mask-image-radial":[{"mask-radial":[Ee,Ce]}],"mask-image-radial-from-pos":[{"mask-radial-from":ue()}],"mask-image-radial-to-pos":[{"mask-radial-to":ue()}],"mask-image-radial-from-color":[{"mask-radial-from":Y()}],"mask-image-radial-to-color":[{"mask-radial-to":Y()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":F()}],"mask-image-conic-pos":[{"mask-conic":[Ge]}],"mask-image-conic-from-pos":[{"mask-conic-from":ue()}],"mask-image-conic-to-pos":[{"mask-conic-to":ue()}],"mask-image-conic-from-color":[{"mask-conic-from":Y()}],"mask-image-conic-to-color":[{"mask-conic-to":Y()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:de()}],"mask-repeat":[{mask:_e()}],"mask-size":[{mask:U()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Ee,Ce]}],filter:[{filter:["","none",Ee,Ce]}],blur:[{blur:Le()}],brightness:[{brightness:[Ge,Ee,Ce]}],contrast:[{contrast:[Ge,Ee,Ce]}],"drop-shadow":[{"drop-shadow":["","none",A,Gu,Vu]}],"drop-shadow-color":[{"drop-shadow":Y()}],grayscale:[{grayscale:["",Ge,Ee,Ce]}],"hue-rotate":[{"hue-rotate":[Ge,Ee,Ce]}],invert:[{invert:["",Ge,Ee,Ce]}],saturate:[{saturate:[Ge,Ee,Ce]}],sepia:[{sepia:["",Ge,Ee,Ce]}],"backdrop-filter":[{"backdrop-filter":["","none",Ee,Ce]}],"backdrop-blur":[{"backdrop-blur":Le()}],"backdrop-brightness":[{"backdrop-brightness":[Ge,Ee,Ce]}],"backdrop-contrast":[{"backdrop-contrast":[Ge,Ee,Ce]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ge,Ee,Ce]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ge,Ee,Ce]}],"backdrop-invert":[{"backdrop-invert":["",Ge,Ee,Ce]}],"backdrop-opacity":[{"backdrop-opacity":[Ge,Ee,Ce]}],"backdrop-saturate":[{"backdrop-saturate":[Ge,Ee,Ce]}],"backdrop-sepia":[{"backdrop-sepia":["",Ge,Ee,Ce]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":H()}],"border-spacing-x":[{"border-spacing-x":H()}],"border-spacing-y":[{"border-spacing-y":H()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Ee,Ce]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Ge,"initial",Ee,Ce]}],ease:[{ease:["linear","initial",N,Ee,Ce]}],delay:[{delay:[Ge,Ee,Ce]}],animate:[{animate:["none",M,Ee,Ce]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[I,Ee,Ce]}],"perspective-origin":[{"perspective-origin":Q()}],rotate:[{rotate:qe()}],"rotate-x":[{"rotate-x":qe()}],"rotate-y":[{"rotate-y":qe()}],"rotate-z":[{"rotate-z":qe()}],scale:[{scale:He()}],"scale-x":[{"scale-x":He()}],"scale-y":[{"scale-y":He()}],"scale-z":[{"scale-z":He()}],"scale-3d":["scale-3d"],skew:[{skew:Ze()}],"skew-x":[{"skew-x":Ze()}],"skew-y":[{"skew-y":Ze()}],transform:[{transform:[Ee,Ce,"","none","gpu","cpu"]}],"transform-origin":[{origin:Q()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:it()}],"translate-x":[{"translate-x":it()}],"translate-y":[{"translate-y":it()}],"translate-z":[{"translate-z":it()}],"translate-none":["translate-none"],accent:[{accent:Y()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:Y()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Ee,Ce]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":H()}],"scroll-mx":[{"scroll-mx":H()}],"scroll-my":[{"scroll-my":H()}],"scroll-ms":[{"scroll-ms":H()}],"scroll-me":[{"scroll-me":H()}],"scroll-mt":[{"scroll-mt":H()}],"scroll-mr":[{"scroll-mr":H()}],"scroll-mb":[{"scroll-mb":H()}],"scroll-ml":[{"scroll-ml":H()}],"scroll-p":[{"scroll-p":H()}],"scroll-px":[{"scroll-px":H()}],"scroll-py":[{"scroll-py":H()}],"scroll-ps":[{"scroll-ps":H()}],"scroll-pe":[{"scroll-pe":H()}],"scroll-pt":[{"scroll-pt":H()}],"scroll-pr":[{"scroll-pr":H()}],"scroll-pb":[{"scroll-pb":H()}],"scroll-pl":[{"scroll-pl":H()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Ee,Ce]}],fill:[{fill:["none",...Y()]}],"stroke-w":[{stroke:[Ge,ic,Vr,dg]}],stroke:[{stroke:["none",...Y()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},pae=Vie(uae);function ge(...e){return pae(U_(e))}const mae=fn("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),Lt=R.forwardRef(({className:e,variant:t,size:a,asChild:r=!1,...l},p)=>{const b=r?mn:"button";return y.jsx(b,{className:ge(mae({variant:t,size:a,className:e})),ref:p,...l})});Lt.displayName="Button";const bn=R.forwardRef(({className:e,type:t,...a},r)=>y.jsx("input",{type:t,className:ge("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",e),ref:r,...a}));bn.displayName="Input";var Gs=DT();const fae=Ky(Gs);var bae=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],eP=bae.reduce((e,t)=>{const a=q_(`Primitive.${t}`),r=R.forwardRef((l,p)=>{const{asChild:b,...g}=l,x=b?a:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),y.jsx(x,{...g,ref:p})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),hae="Separator",aR="horizontal",gae=["horizontal","vertical"],tP=R.forwardRef((e,t)=>{const{decorative:a,orientation:r=aR,...l}=e,p=yae(r)?r:aR,g=a?{role:"none"}:{"aria-orientation":p==="vertical"?p:void 0,role:"separator"};return y.jsx(eP.div,{"data-orientation":p,...g,...l,ref:t})});tP.displayName=hae;function yae(e){return gae.includes(e)}var iP=tP;const wv=R.forwardRef(({className:e,orientation:t="horizontal",decorative:a=!0,...r},l)=>y.jsx(iP,{ref:l,decorative:a,orientation:t,className:ge("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));wv.displayName=iP.displayName;function ye(e,t,{checkForDefaultPrevented:a=!0}={}){return function(l){if(e?.(l),a===!1||!l.defaultPrevented)return t?.(l)}}function vae(e,t){const a=R.createContext(t),r=p=>{const{children:b,...g}=p,x=R.useMemo(()=>g,Object.values(g));return y.jsx(a.Provider,{value:x,children:b})};r.displayName=e+"Provider";function l(p){const b=R.useContext(a);if(b)return b;if(t!==void 0)return t;throw new Error(`\`${p}\` must be used within \`${e}\``)}return[r,l]}function sa(e,t=[]){let a=[];function r(p,b){const g=R.createContext(b),x=a.length;a=[...a,b];const v=T=>{const{scope:P,children:A,...j}=T,I=P?.[e]?.[x]||g,D=R.useMemo(()=>j,Object.values(j));return y.jsx(I.Provider,{value:D,children:A})};v.displayName=p+"Provider";function k(T,P){const A=P?.[e]?.[x]||g,j=R.useContext(A);if(j)return j;if(b!==void 0)return b;throw new Error(`\`${T}\` must be used within \`${p}\``)}return[v,k]}const l=()=>{const p=a.map(b=>R.createContext(b));return function(g){const x=g?.[e]||p;return R.useMemo(()=>({[`__scope${e}`]:{...g,[e]:x}}),[g,x])}};return l.scopeName=e,[r,Sae(l,...t)]}function Sae(...e){const t=e[0];if(e.length===1)return t;const a=()=>{const r=e.map(l=>({useScope:l(),scopeName:l.scopeName}));return function(p){const b=r.reduce((g,{useScope:x,scopeName:v})=>{const T=x(p)[`__scope${v}`];return{...g,...T}},{});return R.useMemo(()=>({[`__scope${t.scopeName}`]:b}),[b])}};return a.scopeName=t.scopeName,a}var Ft=globalThis?.document?R.useLayoutEffect:()=>{},xae=Yy[" useId ".trim().toString()]||(()=>{}),wae=0;function ha(e){const[t,a]=R.useState(xae());return Ft(()=>{a(r=>r??String(wae++))},[e]),e||(t?`radix-${t}`:"")}var kae=Yy[" useInsertionEffect ".trim().toString()]||Ft;function ho({prop:e,defaultProp:t,onChange:a=()=>{},caller:r}){const[l,p,b]=Cae({defaultProp:t,onChange:a}),g=e!==void 0,x=g?e:l;{const k=R.useRef(e!==void 0);R.useEffect(()=>{const T=k.current;T!==g&&console.warn(`${r} is changing from ${T?"controlled":"uncontrolled"} to ${g?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),k.current=g},[g,r])}const v=R.useCallback(k=>{if(g){const T=Eae(k)?k(e):k;T!==e&&b.current?.(T)}else p(k)},[g,e,p,b]);return[x,v]}function Cae({defaultProp:e,onChange:t}){const[a,r]=R.useState(e),l=R.useRef(a),p=R.useRef(t);return kae(()=>{p.current=t},[t]),R.useEffect(()=>{l.current!==a&&(p.current?.(a),l.current=a)},[a,l]),[a,r,p]}function Eae(e){return typeof e=="function"}function Os(e){const t=Rae(e),a=R.forwardRef((r,l)=>{const{children:p,...b}=r,g=R.Children.toArray(p),x=g.find(Aae);if(x){const v=x.props.children,k=g.map(T=>T===x?R.Children.count(v)>1?R.Children.only(null):R.isValidElement(v)?v.props.children:null:T);return y.jsx(t,{...b,ref:l,children:R.isValidElement(v)?R.cloneElement(v,void 0,k):null})}return y.jsx(t,{...b,ref:l,children:p})});return a.displayName=`${e}.Slot`,a}function Rae(e){const t=R.forwardRef((a,r)=>{const{children:l,...p}=a;if(R.isValidElement(l)){const b=Pae(l),g=_ae(p,l.props);return l.type!==R.Fragment&&(g.ref=r?Yc(r,b):b),R.cloneElement(l,g)}return R.Children.count(l)>1?R.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var aP=Symbol("radix.slottable");function Tae(e){const t=({children:a})=>y.jsx(y.Fragment,{children:a});return t.displayName=`${e}.Slottable`,t.__radixId=aP,t}function Aae(e){return R.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===aP}function _ae(e,t){const a={...t};for(const r in t){const l=e[r],p=t[r];/^on[A-Z]/.test(r)?l&&p?a[r]=(...g)=>{const x=p(...g);return l(...g),x}:l&&(a[r]=l):r==="style"?a[r]={...l,...p}:r==="className"&&(a[r]=[l,p].filter(Boolean).join(" "))}return{...e,...a}}function Pae(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning;return a?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}var Iae=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Oe=Iae.reduce((e,t)=>{const a=Os(`Primitive.${t}`),r=R.forwardRef((l,p)=>{const{asChild:b,...g}=l,x=b?a:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),y.jsx(x,{...g,ref:p})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function kv(e,t){e&&Gs.flushSync(()=>e.dispatchEvent(t))}function Dt(e){const t=R.useRef(e);return R.useEffect(()=>{t.current=e}),R.useMemo(()=>(...a)=>t.current?.(...a),[])}function Dae(e,t=globalThis?.document){const a=Dt(e);R.useEffect(()=>{const r=l=>{l.key==="Escape"&&a(l)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[a,t])}var jae="DismissableLayer",Yg="dismissableLayer.update",Mae="dismissableLayer.pointerDownOutside",Oae="dismissableLayer.focusOutside",oR,oP=R.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Ws=R.forwardRef((e,t)=>{const{disableOutsidePointerEvents:a=!1,onEscapeKeyDown:r,onPointerDownOutside:l,onFocusOutside:p,onInteractOutside:b,onDismiss:g,...x}=e,v=R.useContext(oP),[k,T]=R.useState(null),P=k?.ownerDocument??globalThis?.document,[,A]=R.useState({}),j=Ve(t,G=>T(G)),I=Array.from(v.layers),[D]=[...v.layersWithOutsidePointerEventsDisabled].slice(-1),N=I.indexOf(D),M=k?I.indexOf(k):-1,L=v.layersWithOutsidePointerEventsDisabled.size>0,F=M>=N,Q=Lae(G=>{const H=G.target,ce=[...v.branches].some(ae=>ae.contains(H));!F||ce||(l?.(G),b?.(G),G.defaultPrevented||g?.())},P),q=zae(G=>{const H=G.target;[...v.branches].some(ae=>ae.contains(H))||(p?.(G),b?.(G),G.defaultPrevented||g?.())},P);return Dae(G=>{M===v.layers.size-1&&(r?.(G),!G.defaultPrevented&&g&&(G.preventDefault(),g()))},P),R.useEffect(()=>{if(k)return a&&(v.layersWithOutsidePointerEventsDisabled.size===0&&(oR=P.body.style.pointerEvents,P.body.style.pointerEvents="none"),v.layersWithOutsidePointerEventsDisabled.add(k)),v.layers.add(k),rR(),()=>{a&&v.layersWithOutsidePointerEventsDisabled.size===1&&(P.body.style.pointerEvents=oR)}},[k,P,a,v]),R.useEffect(()=>()=>{k&&(v.layers.delete(k),v.layersWithOutsidePointerEventsDisabled.delete(k),rR())},[k,v]),R.useEffect(()=>{const G=()=>A({});return document.addEventListener(Yg,G),()=>document.removeEventListener(Yg,G)},[]),y.jsx(Oe.div,{...x,ref:j,style:{pointerEvents:L?F?"auto":"none":void 0,...e.style},onFocusCapture:ye(e.onFocusCapture,q.onFocusCapture),onBlurCapture:ye(e.onBlurCapture,q.onBlurCapture),onPointerDownCapture:ye(e.onPointerDownCapture,Q.onPointerDownCapture)})});Ws.displayName=jae;var Nae="DismissableLayerBranch",rP=R.forwardRef((e,t)=>{const a=R.useContext(oP),r=R.useRef(null),l=Ve(t,r);return R.useEffect(()=>{const p=r.current;if(p)return a.branches.add(p),()=>{a.branches.delete(p)}},[a.branches]),y.jsx(Oe.div,{...e,ref:l})});rP.displayName=Nae;function Lae(e,t=globalThis?.document){const a=Dt(e),r=R.useRef(!1),l=R.useRef(()=>{});return R.useEffect(()=>{const p=g=>{if(g.target&&!r.current){let x=function(){nP(Mae,a,v,{discrete:!0})};const v={originalEvent:g};g.pointerType==="touch"?(t.removeEventListener("click",l.current),l.current=x,t.addEventListener("click",l.current,{once:!0})):x()}else t.removeEventListener("click",l.current);r.current=!1},b=window.setTimeout(()=>{t.addEventListener("pointerdown",p)},0);return()=>{window.clearTimeout(b),t.removeEventListener("pointerdown",p),t.removeEventListener("click",l.current)}},[t,a]),{onPointerDownCapture:()=>r.current=!0}}function zae(e,t=globalThis?.document){const a=Dt(e),r=R.useRef(!1);return R.useEffect(()=>{const l=p=>{p.target&&!r.current&&nP(Oae,a,{originalEvent:p},{discrete:!1})};return t.addEventListener("focusin",l),()=>t.removeEventListener("focusin",l)},[t,a]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function rR(){const e=new CustomEvent(Yg);document.dispatchEvent(e)}function nP(e,t,a,{discrete:r}){const l=a.originalEvent.target,p=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:a});t&&l.addEventListener(e,t,{once:!0}),r?kv(l,p):l.dispatchEvent(p)}var qae=Ws,$ae=rP,ug="focusScope.autoFocusOnMount",pg="focusScope.autoFocusOnUnmount",nR={bubbles:!1,cancelable:!0},Uae="FocusScope",wm=R.forwardRef((e,t)=>{const{loop:a=!1,trapped:r=!1,onMountAutoFocus:l,onUnmountAutoFocus:p,...b}=e,[g,x]=R.useState(null),v=Dt(l),k=Dt(p),T=R.useRef(null),P=Ve(t,I=>x(I)),A=R.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;R.useEffect(()=>{if(r){let I=function(L){if(A.paused||!g)return;const F=L.target;g.contains(F)?T.current=F:or(T.current,{select:!0})},D=function(L){if(A.paused||!g)return;const F=L.relatedTarget;F!==null&&(g.contains(F)||or(T.current,{select:!0}))},N=function(L){if(document.activeElement===document.body)for(const Q of L)Q.removedNodes.length>0&&or(g)};document.addEventListener("focusin",I),document.addEventListener("focusout",D);const M=new MutationObserver(N);return g&&M.observe(g,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",I),document.removeEventListener("focusout",D),M.disconnect()}}},[r,g,A.paused]),R.useEffect(()=>{if(g){lR.add(A);const I=document.activeElement;if(!g.contains(I)){const N=new CustomEvent(ug,nR);g.addEventListener(ug,v),g.dispatchEvent(N),N.defaultPrevented||(Fae(Wae(sP(g)),{select:!0}),document.activeElement===I&&or(g))}return()=>{g.removeEventListener(ug,v),setTimeout(()=>{const N=new CustomEvent(pg,nR);g.addEventListener(pg,k),g.dispatchEvent(N),N.defaultPrevented||or(I??document.body,{select:!0}),g.removeEventListener(pg,k),lR.remove(A)},0)}}},[g,v,k,A]);const j=R.useCallback(I=>{if(!a&&!r||A.paused)return;const D=I.key==="Tab"&&!I.altKey&&!I.ctrlKey&&!I.metaKey,N=document.activeElement;if(D&&N){const M=I.currentTarget,[L,F]=Bae(M);L&&F?!I.shiftKey&&N===F?(I.preventDefault(),a&&or(L,{select:!0})):I.shiftKey&&N===L&&(I.preventDefault(),a&&or(F,{select:!0})):N===M&&I.preventDefault()}},[a,r,A.paused]);return y.jsx(Oe.div,{tabIndex:-1,...b,ref:P,onKeyDown:j})});wm.displayName=Uae;function Fae(e,{select:t=!1}={}){const a=document.activeElement;for(const r of e)if(or(r,{select:t}),document.activeElement!==a)return}function Bae(e){const t=sP(e),a=sR(t,e),r=sR(t.reverse(),e);return[a,r]}function sP(e){const t=[],a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const l=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||l?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;a.nextNode();)t.push(a.currentNode);return t}function sR(e,t){for(const a of e)if(!Hae(a,{upTo:t}))return a}function Hae(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Vae(e){return e instanceof HTMLInputElement&&"select"in e}function or(e,{select:t=!1}={}){if(e&&e.focus){const a=document.activeElement;e.focus({preventScroll:!0}),e!==a&&Vae(e)&&t&&e.select()}}var lR=Gae();function Gae(){let e=[];return{add(t){const a=e[0];t!==a&&a?.pause(),e=cR(e,t),e.unshift(t)},remove(t){e=cR(e,t),e[0]?.resume()}}}function cR(e,t){const a=[...e],r=a.indexOf(t);return r!==-1&&a.splice(r,1),a}function Wae(e){return e.filter(t=>t.tagName!=="A")}var Qae="Portal",Jc=R.forwardRef((e,t)=>{const{container:a,...r}=e,[l,p]=R.useState(!1);Ft(()=>p(!0),[]);const b=a||l&&globalThis?.document?.body;return b?fae.createPortal(y.jsx(Oe.div,{...r,ref:t}),b):null});Jc.displayName=Qae;function Kae(e,t){return R.useReducer((a,r)=>t[a][r]??a,e)}var mi=e=>{const{present:t,children:a}=e,r=Zae(t),l=typeof a=="function"?a({present:r.isPresent}):R.Children.only(a),p=Ve(r.ref,Yae(l));return typeof a=="function"||r.isPresent?R.cloneElement(l,{ref:p}):null};mi.displayName="Presence";function Zae(e){const[t,a]=R.useState(),r=R.useRef(null),l=R.useRef(e),p=R.useRef("none"),b=e?"mounted":"unmounted",[g,x]=Kae(b,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return R.useEffect(()=>{const v=Wu(r.current);p.current=g==="mounted"?v:"none"},[g]),Ft(()=>{const v=r.current,k=l.current;if(k!==e){const P=p.current,A=Wu(v);e?x("MOUNT"):A==="none"||v?.display==="none"?x("UNMOUNT"):x(k&&P!==A?"ANIMATION_OUT":"UNMOUNT"),l.current=e}},[e,x]),Ft(()=>{if(t){let v;const k=t.ownerDocument.defaultView??window,T=A=>{const I=Wu(r.current).includes(CSS.escape(A.animationName));if(A.target===t&&I&&(x("ANIMATION_END"),!l.current)){const D=t.style.animationFillMode;t.style.animationFillMode="forwards",v=k.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=D)})}},P=A=>{A.target===t&&(p.current=Wu(r.current))};return t.addEventListener("animationstart",P),t.addEventListener("animationcancel",T),t.addEventListener("animationend",T),()=>{k.clearTimeout(v),t.removeEventListener("animationstart",P),t.removeEventListener("animationcancel",T),t.removeEventListener("animationend",T)}}else x("ANIMATION_END")},[t,x]),{isPresent:["mounted","unmountSuspended"].includes(g),ref:R.useCallback(v=>{r.current=v?getComputedStyle(v):null,a(v)},[])}}function Wu(e){return e?.animationName||"none"}function Yae(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning;return a?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}var mg=0;function Cv(){R.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??dR()),document.body.insertAdjacentElement("beforeend",e[1]??dR()),mg++,()=>{mg===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),mg--}},[])}function dR(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ja=function(){return ja=Object.assign||function(t){for(var a,r=1,l=arguments.length;r<l;r++){a=arguments[r];for(var p in a)Object.prototype.hasOwnProperty.call(a,p)&&(t[p]=a[p])}return t},ja.apply(this,arguments)};function lP(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var l=0,r=Object.getOwnPropertySymbols(e);l<r.length;l++)t.indexOf(r[l])<0&&Object.prototype.propertyIsEnumerable.call(e,r[l])&&(a[r[l]]=e[r[l]]);return a}function Jae(e,t,a){if(a||arguments.length===2)for(var r=0,l=t.length,p;r<l;r++)(p||!(r in t))&&(p||(p=Array.prototype.slice.call(t,0,r)),p[r]=t[r]);return e.concat(p||Array.prototype.slice.call(t))}var sp="right-scroll-bar-position",lp="width-before-scroll-bar",Xae="with-scroll-bars-hidden",eoe="--removed-body-scroll-bar-size";function fg(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function toe(e,t){var a=R.useState(function(){return{value:e,callback:t,facade:{get current(){return a.value},set current(r){var l=a.value;l!==r&&(a.value=r,a.callback(r,l))}}}})[0];return a.callback=t,a.facade}var ioe=typeof window<"u"?R.useLayoutEffect:R.useEffect,uR=new WeakMap;function aoe(e,t){var a=toe(null,function(r){return e.forEach(function(l){return fg(l,r)})});return ioe(function(){var r=uR.get(a);if(r){var l=new Set(r),p=new Set(e),b=a.current;l.forEach(function(g){p.has(g)||fg(g,null)}),p.forEach(function(g){l.has(g)||fg(g,b)})}uR.set(a,e)},[e]),a}function ooe(e){return e}function roe(e,t){t===void 0&&(t=ooe);var a=[],r=!1,l={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return a.length?a[a.length-1]:e},useMedium:function(p){var b=t(p,r);return a.push(b),function(){a=a.filter(function(g){return g!==b})}},assignSyncMedium:function(p){for(r=!0;a.length;){var b=a;a=[],b.forEach(p)}a={push:function(g){return p(g)},filter:function(){return a}}},assignMedium:function(p){r=!0;var b=[];if(a.length){var g=a;a=[],g.forEach(p),b=a}var x=function(){var k=b;b=[],k.forEach(p)},v=function(){return Promise.resolve().then(x)};v(),a={push:function(k){b.push(k),v()},filter:function(k){return b=b.filter(k),a}}}};return l}function noe(e){e===void 0&&(e={});var t=roe(null);return t.options=ja({async:!0,ssr:!1},e),t}var cP=function(e){var t=e.sideCar,a=lP(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return R.createElement(r,ja({},a))};cP.isSideCarExport=!0;function soe(e,t){return e.useMedium(t),cP}var dP=noe(),bg=function(){},km=R.forwardRef(function(e,t){var a=R.useRef(null),r=R.useState({onScrollCapture:bg,onWheelCapture:bg,onTouchMoveCapture:bg}),l=r[0],p=r[1],b=e.forwardProps,g=e.children,x=e.className,v=e.removeScrollBar,k=e.enabled,T=e.shards,P=e.sideCar,A=e.noRelative,j=e.noIsolation,I=e.inert,D=e.allowPinchZoom,N=e.as,M=N===void 0?"div":N,L=e.gapMode,F=lP(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),Q=P,q=aoe([a,t]),G=ja(ja({},F),l);return R.createElement(R.Fragment,null,k&&R.createElement(Q,{sideCar:dP,removeScrollBar:v,shards:T,noRelative:A,noIsolation:j,inert:I,setCallbacks:p,allowPinchZoom:!!D,lockRef:a,gapMode:L}),b?R.cloneElement(R.Children.only(g),ja(ja({},G),{ref:q})):R.createElement(M,ja({},G,{className:x,ref:q}),g))});km.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};km.classNames={fullWidth:lp,zeroRight:sp};var loe=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function coe(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=loe();return t&&e.setAttribute("nonce",t),e}function doe(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function uoe(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var poe=function(){var e=0,t=null;return{add:function(a){e==0&&(t=coe())&&(doe(t,a),uoe(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},moe=function(){var e=poe();return function(t,a){R.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&a])}},uP=function(){var e=moe(),t=function(a){var r=a.styles,l=a.dynamic;return e(r,l),null};return t},foe={left:0,top:0,right:0,gap:0},hg=function(e){return parseInt(e||"",10)||0},boe=function(e){var t=window.getComputedStyle(document.body),a=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],l=t[e==="padding"?"paddingRight":"marginRight"];return[hg(a),hg(r),hg(l)]},hoe=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return foe;var t=boe(e),a=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-a+t[2]-t[0])}},goe=uP(),ks="data-scroll-locked",yoe=function(e,t,a,r){var l=e.left,p=e.top,b=e.right,g=e.gap;return a===void 0&&(a="margin"),`
|
|
52
52
|
.`.concat(Xae,` {
|