oh-my-agent 4.17.0 → 4.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +5 -5
- package/package.json +1 -1
package/bin/cli.js
CHANGED
|
@@ -335,7 +335,7 @@ Co-Authored-By: First Fluke <our.first.fluke@gmail.com>`,pr:"Generated with [oh-
|
|
|
335
335
|
|
|
336
336
|
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let z of $.seen.entries()){let v=z[1];if(I===z[0]){g(z);continue}if($.external){let N=$.external.registry.get(z[0])?.id;if(I!==z[0]&&N){g(z);continue}}if($.metadataRegistry.get(z[0])?.id){g(z);continue}if(v.cycle){g(z);continue}if(v.count>1){if($.reused==="ref"){g(z);continue}}}}function L6($,I){let U=$.seen.get(I);if(!U)throw Error("Unprocessed schema. This is a bug in Zod.");let _=(z)=>{let v=$.seen.get(z);if(v.ref===null)return;let J=v.def??v.schema,N={...J},X=v.ref;if(v.ref=null,X){_(X);let q=$.seen.get(X),T=q.schema;if(T.$ref&&($.target==="draft-07"||$.target==="draft-04"||$.target==="openapi-3.0"))J.allOf=J.allOf??[],J.allOf.push(T);else Object.assign(J,T);if(Object.assign(J,N),z._zod.parent===X)for(let Q in J){if(Q==="$ref"||Q==="allOf")continue;if(!(Q in N))delete J[Q]}if(T.$ref&&q.def)for(let Q in J){if(Q==="$ref"||Q==="allOf")continue;if(Q in q.def&&JSON.stringify(J[Q])===JSON.stringify(q.def[Q]))delete J[Q]}}let G=z._zod.parent;if(G&&G!==X){_(G);let q=$.seen.get(G);if(q?.schema.$ref){if(J.$ref=q.schema.$ref,q.def)for(let T in J){if(T==="$ref"||T==="allOf")continue;if(T in q.def&&JSON.stringify(J[T])===JSON.stringify(q.def[T]))delete J[T]}}}$.override({zodSchema:z,jsonSchema:J,path:v.path??[]})};for(let z of[...$.seen.entries()].reverse())_(z[0]);let u={};if($.target==="draft-2020-12")u.$schema="https://json-schema.org/draft/2020-12/schema";else if($.target==="draft-07")u.$schema="http://json-schema.org/draft-07/schema#";else if($.target==="draft-04")u.$schema="http://json-schema.org/draft-04/schema#";else if($.target==="openapi-3.0");if($.external?.uri){let z=$.external.registry.get(I)?.id;if(!z)throw Error("Schema is missing an `id` property");u.$id=$.external.uri(z)}Object.assign(u,U.def??U.schema);let g=$.external?.defs??{};for(let z of $.seen.entries()){let v=z[1];if(v.def&&v.defId)g[v.defId]=v.def}if($.external);else if(Object.keys(g).length>0)if($.target==="draft-2020-12")u.$defs=g;else u.definitions=g;try{let z=JSON.parse(JSON.stringify(u));return Object.defineProperty(z,"~standard",{value:{...I["~standard"],jsonSchema:{input:a1(I,"input",$.processors),output:a1(I,"output",$.processors)}},enumerable:!1,writable:!1}),z}catch(z){throw Error("Error converting schema to JSON.")}}function l$($,I){let U=I??{seen:new Set};if(U.seen.has($))return!1;U.seen.add($);let _=$._zod.def;if(_.type==="transform")return!0;if(_.type==="array")return l$(_.element,U);if(_.type==="set")return l$(_.valueType,U);if(_.type==="lazy")return l$(_.getter(),U);if(_.type==="promise"||_.type==="optional"||_.type==="nonoptional"||_.type==="nullable"||_.type==="readonly"||_.type==="default"||_.type==="prefault")return l$(_.innerType,U);if(_.type==="intersection")return l$(_.left,U)||l$(_.right,U);if(_.type==="record"||_.type==="map")return l$(_.keyType,U)||l$(_.valueType,U);if(_.type==="pipe")return l$(_.in,U)||l$(_.out,U);if(_.type==="object"){for(let u in _.shape)if(l$(_.shape[u],U))return!0;return!1}if(_.type==="union"){for(let u of _.options)if(l$(u,U))return!0;return!1}if(_.type==="tuple"){for(let u of _.items)if(l$(u,U))return!0;if(_.rest&&l$(_.rest,U))return!0;return!1}return!1}var $8=($,I={})=>(U)=>{let _=R6({...U,processors:I});return _$($,_),K6(_,$),L6(_,$)},a1=($,I,U={})=>(_)=>{let{libraryOptions:u,target:g}=_??{},z=R6({...u??{},target:g,io:I,processors:U});return _$($,z),K6(z,$),L6(z,$)};var _j={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},I8=($,I,U,_)=>{let u=U;u.type="string";let{minimum:g,maximum:z,format:v,patterns:J,contentEncoding:N}=$._zod.bag;if(typeof g==="number")u.minLength=g;if(typeof z==="number")u.maxLength=z;if(v){if(u.format=_j[v]??v,u.format==="")delete u.format;if(v==="time")delete u.format}if(N)u.contentEncoding=N;if(J&&J.size>0){let X=[...J];if(X.length===1)u.pattern=X[0].source;else if(X.length>1)u.allOf=[...X.map((G)=>({...I.target==="draft-07"||I.target==="draft-04"||I.target==="openapi-3.0"?{type:"string"}:{},pattern:G.source}))]}},u8=($,I,U,_)=>{let u=U,{minimum:g,maximum:z,format:v,multipleOf:J,exclusiveMaximum:N,exclusiveMinimum:X}=$._zod.bag;if(typeof v==="string"&&v.includes("int"))u.type="integer";else u.type="number";if(typeof X==="number")if(I.target==="draft-04"||I.target==="openapi-3.0")u.minimum=X,u.exclusiveMinimum=!0;else u.exclusiveMinimum=X;if(typeof g==="number"){if(u.minimum=g,typeof X==="number"&&I.target!=="draft-04")if(X>=g)delete u.minimum;else delete u.exclusiveMinimum}if(typeof N==="number")if(I.target==="draft-04"||I.target==="openapi-3.0")u.maximum=N,u.exclusiveMaximum=!0;else u.exclusiveMaximum=N;if(typeof z==="number"){if(u.maximum=z,typeof N==="number"&&I.target!=="draft-04")if(N<=z)delete u.maximum;else delete u.exclusiveMaximum}if(typeof J==="number")u.multipleOf=J},U8=($,I,U,_)=>{U.type="boolean"},_8=($,I,U,_)=>{if(I.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema")},g8=($,I,U,_)=>{if(I.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema")},z8=($,I,U,_)=>{if(I.target==="openapi-3.0")U.type="string",U.nullable=!0,U.enum=[null];else U.type="null"},v8=($,I,U,_)=>{if(I.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema")},J8=($,I,U,_)=>{if(I.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema")},N8=($,I,U,_)=>{U.not={}},G8=($,I,U,_)=>{},X8=($,I,U,_)=>{},q8=($,I,U,_)=>{if(I.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema")},Q8=($,I,U,_)=>{let u=$._zod.def,g=pI(u.entries);if(g.every((z)=>typeof z==="number"))U.type="number";if(g.every((z)=>typeof z==="string"))U.type="string";U.enum=g},T8=($,I,U,_)=>{let u=$._zod.def,g=[];for(let z of u.values)if(z===void 0){if(I.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof z==="bigint")if(I.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else g.push(Number(z));else g.push(z);if(g.length===0);else if(g.length===1){let z=g[0];if(U.type=z===null?"null":typeof z,I.target==="draft-04"||I.target==="openapi-3.0")U.enum=[z];else U.const=z}else{if(g.every((z)=>typeof z==="number"))U.type="number";if(g.every((z)=>typeof z==="string"))U.type="string";if(g.every((z)=>typeof z==="boolean"))U.type="boolean";if(g.every((z)=>z===null))U.type="null";U.enum=g}},H8=($,I,U,_)=>{if(I.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema")},Y8=($,I,U,_)=>{let u=U,g=$._zod.pattern;if(!g)throw Error("Pattern not found in template literal");u.type="string",u.pattern=g.source},O8=($,I,U,_)=>{let u=U,g={type:"string",format:"binary",contentEncoding:"binary"},{minimum:z,maximum:v,mime:J}=$._zod.bag;if(z!==void 0)g.minLength=z;if(v!==void 0)g.maxLength=v;if(J)if(J.length===1)g.contentMediaType=J[0],Object.assign(u,g);else Object.assign(u,g),u.anyOf=J.map((N)=>({contentMediaType:N}));else Object.assign(u,g)},D8=($,I,U,_)=>{U.type="boolean"},V8=($,I,U,_)=>{if(I.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema")},B8=($,I,U,_)=>{if(I.unrepresentable==="throw")throw Error("Function types cannot be represented in JSON Schema")},M8=($,I,U,_)=>{if(I.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema")},R8=($,I,U,_)=>{if(I.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema")},K8=($,I,U,_)=>{if(I.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema")},L8=($,I,U,_)=>{let u=U,g=$._zod.def,{minimum:z,maximum:v}=$._zod.bag;if(typeof z==="number")u.minItems=z;if(typeof v==="number")u.maxItems=v;u.type="array",u.items=_$(g.element,I,{..._,path:[..._.path,"items"]})},P8=($,I,U,_)=>{let u=U,g=$._zod.def;u.type="object",u.properties={};let z=g.shape;for(let N in z)u.properties[N]=_$(z[N],I,{..._,path:[..._.path,"properties",N]});let v=new Set(Object.keys(z)),J=new Set([...v].filter((N)=>{let X=g.shape[N]._zod;if(I.io==="input")return X.optin===void 0;else return X.optout===void 0}));if(J.size>0)u.required=Array.from(J);if(g.catchall?._zod.def.type==="never")u.additionalProperties=!1;else if(!g.catchall){if(I.io==="output")u.additionalProperties=!1}else if(g.catchall)u.additionalProperties=_$(g.catchall,I,{..._,path:[..._.path,"additionalProperties"]})},rU=($,I,U,_)=>{let u=$._zod.def,g=u.inclusive===!1,z=u.options.map((v,J)=>_$(v,I,{..._,path:[..._.path,g?"oneOf":"anyOf",J]}));if(g)U.oneOf=z;else U.anyOf=z},W8=($,I,U,_)=>{let u=$._zod.def,g=_$(u.left,I,{..._,path:[..._.path,"allOf",0]}),z=_$(u.right,I,{..._,path:[..._.path,"allOf",1]}),v=(N)=>("allOf"in N)&&Object.keys(N).length===1,J=[...v(g)?g.allOf:[g],...v(z)?z.allOf:[z]];U.allOf=J},Z8=($,I,U,_)=>{let u=U,g=$._zod.def;u.type="array";let z=I.target==="draft-2020-12"?"prefixItems":"items",v=I.target==="draft-2020-12"?"items":I.target==="openapi-3.0"?"items":"additionalItems",J=g.items.map((q,T)=>_$(q,I,{..._,path:[..._.path,z,T]})),N=g.rest?_$(g.rest,I,{..._,path:[..._.path,v,...I.target==="openapi-3.0"?[g.items.length]:[]]}):null;if(I.target==="draft-2020-12"){if(u.prefixItems=J,N)u.items=N}else if(I.target==="openapi-3.0"){if(u.items={anyOf:J},N)u.items.anyOf.push(N);if(u.minItems=J.length,!N)u.maxItems=J.length}else if(u.items=J,N)u.additionalItems=N;let{minimum:X,maximum:G}=$._zod.bag;if(typeof X==="number")u.minItems=X;if(typeof G==="number")u.maxItems=G},A8=($,I,U,_)=>{let u=U,g=$._zod.def;u.type="object";let z=g.keyType,J=z._zod.bag?.patterns;if(g.mode==="loose"&&J&&J.size>0){let X=_$(g.valueType,I,{..._,path:[..._.path,"patternProperties","*"]});u.patternProperties={};for(let G of J)u.patternProperties[G.source]=X}else{if(I.target==="draft-07"||I.target==="draft-2020-12")u.propertyNames=_$(g.keyType,I,{..._,path:[..._.path,"propertyNames"]});u.additionalProperties=_$(g.valueType,I,{..._,path:[..._.path,"additionalProperties"]})}let N=z._zod.values;if(N){let X=[...N].filter((G)=>typeof G==="string"||typeof G==="number");if(X.length>0)u.required=X}},b8=($,I,U,_)=>{let u=$._zod.def,g=_$(u.innerType,I,_),z=I.seen.get($);if(I.target==="openapi-3.0")z.ref=u.innerType,U.nullable=!0;else U.anyOf=[g,{type:"null"}]},j8=($,I,U,_)=>{let u=$._zod.def;_$(u.innerType,I,_);let g=I.seen.get($);g.ref=u.innerType},F8=($,I,U,_)=>{let u=$._zod.def;_$(u.innerType,I,_);let g=I.seen.get($);g.ref=u.innerType,U.default=JSON.parse(JSON.stringify(u.defaultValue))},S8=($,I,U,_)=>{let u=$._zod.def;_$(u.innerType,I,_);let g=I.seen.get($);if(g.ref=u.innerType,I.io==="input")U._prefault=JSON.parse(JSON.stringify(u.defaultValue))},w8=($,I,U,_)=>{let u=$._zod.def;_$(u.innerType,I,_);let g=I.seen.get($);g.ref=u.innerType;let z;try{z=u.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}U.default=z},E8=($,I,U,_)=>{let u=$._zod.def,g=I.io==="input"?u.in._zod.def.type==="transform"?u.out:u.in:u.out;_$(g,I,_);let z=I.seen.get($);z.ref=g},C8=($,I,U,_)=>{let u=$._zod.def;_$(u.innerType,I,_);let g=I.seen.get($);g.ref=u.innerType,U.readOnly=!0},f8=($,I,U,_)=>{let u=$._zod.def;_$(u.innerType,I,_);let g=I.seen.get($);g.ref=u.innerType},lU=($,I,U,_)=>{let u=$._zod.def;_$(u.innerType,I,_);let g=I.seen.get($);g.ref=u.innerType},x8=($,I,U,_)=>{let u=$._zod.innerType;_$(u,I,_);let g=I.seen.get($);g.ref=u},nU={string:I8,number:u8,boolean:U8,bigint:_8,symbol:g8,null:z8,undefined:v8,void:J8,never:N8,any:G8,unknown:X8,date:q8,enum:Q8,literal:T8,nan:H8,template_literal:Y8,file:O8,success:D8,custom:V8,function:B8,transform:M8,map:R8,set:K8,array:L8,object:P8,union:rU,intersection:W8,tuple:Z8,record:A8,nullable:b8,nonoptional:j8,default:F8,prefault:S8,catch:w8,pipe:E8,readonly:C8,promise:f8,optional:lU,lazy:x8};function mU($,I){if("_idmap"in $){let _=$,u=R6({...I,processors:nU}),g={};for(let J of _._idmap.entries()){let[N,X]=J;_$(X,u)}let z={},v={registry:_,uri:I?.uri,defs:g};u.external=v;for(let J of _._idmap.entries()){let[N,X]=J;K6(u,X),z[N]=L6(u,X)}if(Object.keys(g).length>0){let J=u.target==="draft-2020-12"?"$defs":"definitions";z.__shared={[J]:g}}return{schemas:z}}let U=R6({...I,processors:nU});return _$($,U),K6(U,$),L6(U,$)}class k8{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter($){this.ctx.counter=$}get seen(){return this.ctx.seen}constructor($){let I=$?.target??"draft-2020-12";if(I==="draft-4")I="draft-04";if(I==="draft-7")I="draft-07";this.ctx=R6({processors:nU,target:I,...$?.metadata&&{metadata:$.metadata},...$?.unrepresentable&&{unrepresentable:$.unrepresentable},...$?.override&&{override:$.override},...$?.io&&{io:$.io}})}process($,I={path:[],schemaPath:[]}){return _$($,this.ctx,I)}emit($,I){if(I){if(I.cycles)this.ctx.cycles=I.cycles;if(I.reused)this.ctx.reused=I.reused;if(I.external)this.ctx.external=I.external}K6(this.ctx,$);let U=L6(this.ctx,$),{"~standard":_,...u}=U;return u}}var e5={};var H0={};O4(H0,{xor:()=>mQ,xid:()=>QQ,void:()=>kQ,uuidv7:()=>gQ,uuidv6:()=>_Q,uuidv4:()=>UQ,uuid:()=>uQ,url:()=>zQ,unknown:()=>a6,union:()=>O_,undefined:()=>fQ,ulid:()=>qQ,uint64:()=>EQ,uint32:()=>FQ,tuple:()=>D3,transform:()=>V_,templateLiteral:()=>U7,symbol:()=>CQ,superRefine:()=>h3,success:()=>$7,stringbool:()=>X7,stringFormat:()=>LQ,string:()=>tU,strictObject:()=>rQ,set:()=>oQ,refine:()=>m3,record:()=>V3,readonly:()=>k3,promise:()=>_7,preprocess:()=>Q7,prefault:()=>F3,pipe:()=>V0,partialRecord:()=>cQ,optional:()=>O0,object:()=>nQ,number:()=>u3,nullish:()=>sQ,nullable:()=>D0,null:()=>v3,nonoptional:()=>S3,never:()=>Y_,nativeEnum:()=>tQ,nanoid:()=>NQ,nan:()=>I7,meta:()=>N7,map:()=>pQ,mac:()=>YQ,looseRecord:()=>dQ,looseObject:()=>lQ,literal:()=>aQ,lazy:()=>n3,ksuid:()=>TQ,keyof:()=>iQ,jwt:()=>KQ,json:()=>q7,ipv6:()=>OQ,ipv4:()=>HQ,intersection:()=>Y3,int64:()=>wQ,int32:()=>jQ,int:()=>aU,instanceof:()=>G7,httpUrl:()=>vQ,hostname:()=>PQ,hex:()=>WQ,hash:()=>ZQ,guid:()=>IQ,function:()=>g7,float64:()=>bQ,float32:()=>AQ,file:()=>eQ,exactOptional:()=>W3,enum:()=>D_,emoji:()=>JQ,email:()=>$Q,e164:()=>RQ,discriminatedUnion:()=>hQ,describe:()=>J7,date:()=>yQ,custom:()=>v7,cuid2:()=>XQ,cuid:()=>GQ,codec:()=>u7,cidrv6:()=>VQ,cidrv4:()=>DQ,check:()=>z7,catch:()=>C3,boolean:()=>U3,bigint:()=>SQ,base64url:()=>MQ,base64:()=>BQ,array:()=>R0,any:()=>xQ,_function:()=>g7,_default:()=>b3,_ZodString:()=>eU,ZodXor:()=>Q3,ZodXID:()=>g_,ZodVoid:()=>X3,ZodUnknown:()=>N3,ZodUnion:()=>L0,ZodUndefined:()=>g3,ZodUUID:()=>f4,ZodURL:()=>B0,ZodULID:()=>__,ZodType:()=>c,ZodTuple:()=>O3,ZodTransform:()=>L3,ZodTemplateLiteral:()=>y3,ZodSymbol:()=>_3,ZodSuccess:()=>w3,ZodStringFormat:()=>J$,ZodString:()=>$I,ZodSet:()=>M3,ZodRecord:()=>P0,ZodReadonly:()=>x3,ZodPromise:()=>r3,ZodPrefault:()=>j3,ZodPipe:()=>R_,ZodOptional:()=>B_,ZodObject:()=>K0,ZodNumberFormat:()=>e6,ZodNumber:()=>uI,ZodNullable:()=>Z3,ZodNull:()=>z3,ZodNonOptional:()=>M_,ZodNever:()=>G3,ZodNanoID:()=>I_,ZodNaN:()=>f3,ZodMap:()=>B3,ZodMAC:()=>I3,ZodLiteral:()=>R3,ZodLazy:()=>i3,ZodKSUID:()=>z_,ZodJWT:()=>T_,ZodIntersection:()=>H3,ZodIPv6:()=>J_,ZodIPv4:()=>v_,ZodGUID:()=>Y0,ZodFunction:()=>l3,ZodFile:()=>K3,ZodExactOptional:()=>P3,ZodEnum:()=>s1,ZodEmoji:()=>$_,ZodEmail:()=>sU,ZodE164:()=>Q_,ZodDiscriminatedUnion:()=>T3,ZodDefault:()=>A3,ZodDate:()=>M0,ZodCustomStringFormat:()=>II,ZodCustom:()=>W0,ZodCodec:()=>K_,ZodCatch:()=>E3,ZodCUID2:()=>U_,ZodCUID:()=>u_,ZodCIDRv6:()=>G_,ZodCIDRv4:()=>N_,ZodBoolean:()=>UI,ZodBigIntFormat:()=>H_,ZodBigInt:()=>_I,ZodBase64URL:()=>q_,ZodBase64:()=>X_,ZodArray:()=>q3,ZodAny:()=>J3});var hU={};O4(hU,{uppercase:()=>i1,trim:()=>c1,toUpperCase:()=>p1,toLowerCase:()=>d1,startsWith:()=>r1,slugify:()=>o1,size:()=>p6,regex:()=>k1,property:()=>iU,positive:()=>fU,overwrite:()=>B4,normalize:()=>h1,nonpositive:()=>kU,nonnegative:()=>yU,negative:()=>xU,multipleOf:()=>B6,minSize:()=>C4,minLength:()=>d4,mime:()=>m1,maxSize:()=>M6,maxLength:()=>o6,lte:()=>u4,lt:()=>w4,lowercase:()=>y1,length:()=>t6,includes:()=>n1,gte:()=>r$,gt:()=>E4,endsWith:()=>l1});var e1={};O4(e1,{time:()=>n8,duration:()=>r8,datetime:()=>y8,date:()=>i8,ZodISOTime:()=>pU,ZodISODuration:()=>oU,ZodISODateTime:()=>cU,ZodISODate:()=>dU});var cU=D("ZodISODateTime",($,I)=>{Rv.init($,I),J$.init($,I)});function y8($){return VN(cU,$)}var dU=D("ZodISODate",($,I)=>{Kv.init($,I),J$.init($,I)});function i8($){return BN(dU,$)}var pU=D("ZodISOTime",($,I)=>{Lv.init($,I),J$.init($,I)});function n8($){return MN(pU,$)}var oU=D("ZodISODuration",($,I)=>{Pv.init($,I),J$.init($,I)});function r8($){return RN(oU,$)}var s5=($,I)=>{sI.init($,I),$.name="ZodError",Object.defineProperties($,{format:{value:(U)=>I0($,U)},flatten:{value:(U)=>$0($,U)},addIssue:{value:(U)=>{$.issues.push(U),$.message=JSON.stringify($.issues,b1,2)}},addIssues:{value:(U)=>{$.issues.push(...U),$.message=JSON.stringify($.issues,b1,2)}},isEmpty:{get(){return $.issues.length===0}}})},zj=D("ZodError",s5),t$=D("ZodError",s5,{Parent:Error});var l8=S1(t$),m8=w1(t$),h8=E1(t$),c8=C1(t$),d8=pu(t$),p8=ou(t$),o8=tu(t$),t8=au(t$),a8=eu(t$),e8=su(t$),s8=$U(t$),$3=IU(t$);var c=D("ZodType",($,I)=>{return l.init($,I),Object.assign($["~standard"],{jsonSchema:{input:a1($,"input"),output:a1($,"output")}}),$.toJSONSchema=$8($,{}),$.def=I,$.type=I.type,Object.defineProperty($,"_def",{value:I}),$.check=(...U)=>{return $.clone(w.mergeDefs(I,{checks:[...I.checks??[],...U.map((_)=>typeof _==="function"?{_zod:{check:_,def:{check:"custom"},onattach:[]}}:_)]}),{parent:!0})},$.with=$.check,$.clone=(U,_)=>n$($,U,_),$.brand=()=>$,$.register=(U,_)=>{return U.add($,_),$},$.parse=(U,_)=>l8($,U,_,{callee:$.parse}),$.safeParse=(U,_)=>h8($,U,_),$.parseAsync=async(U,_)=>m8($,U,_,{callee:$.parseAsync}),$.safeParseAsync=async(U,_)=>c8($,U,_),$.spa=$.safeParseAsync,$.encode=(U,_)=>d8($,U,_),$.decode=(U,_)=>p8($,U,_),$.encodeAsync=async(U,_)=>o8($,U,_),$.decodeAsync=async(U,_)=>t8($,U,_),$.safeEncode=(U,_)=>a8($,U,_),$.safeDecode=(U,_)=>e8($,U,_),$.safeEncodeAsync=async(U,_)=>s8($,U,_),$.safeDecodeAsync=async(U,_)=>$3($,U,_),$.refine=(U,_)=>$.check(m3(U,_)),$.superRefine=(U)=>$.check(h3(U)),$.overwrite=(U)=>$.check(B4(U)),$.optional=()=>O0($),$.exactOptional=()=>W3($),$.nullable=()=>D0($),$.nullish=()=>O0(D0($)),$.nonoptional=(U)=>S3($,U),$.array=()=>R0($),$.or=(U)=>O_([$,U]),$.and=(U)=>Y3($,U),$.transform=(U)=>V0($,V_(U)),$.default=(U)=>b3($,U),$.prefault=(U)=>F3($,U),$.catch=(U)=>C3($,U),$.pipe=(U)=>V0($,U),$.readonly=()=>k3($),$.describe=(U)=>{let _=$.clone();return w$.add(_,{description:U}),_},Object.defineProperty($,"description",{get(){return w$.get($)?.description},configurable:!0}),$.meta=(...U)=>{if(U.length===0)return w$.get($);let _=$.clone();return w$.add(_,U[0]),_},$.isOptional=()=>$.safeParse(void 0).success,$.isNullable=()=>$.safeParse(null).success,$.apply=(U)=>U($),$}),eU=D("_ZodString",($,I)=>{d6.init($,I),c.init($,I),$._zod.processJSONSchema=(_,u,g)=>I8($,_,u,g);let U=$._zod.bag;$.format=U.format??null,$.minLength=U.minimum??null,$.maxLength=U.maximum??null,$.regex=(..._)=>$.check(k1(..._)),$.includes=(..._)=>$.check(n1(..._)),$.startsWith=(..._)=>$.check(r1(..._)),$.endsWith=(..._)=>$.check(l1(..._)),$.min=(..._)=>$.check(d4(..._)),$.max=(..._)=>$.check(o6(..._)),$.length=(..._)=>$.check(t6(..._)),$.nonempty=(..._)=>$.check(d4(1,..._)),$.lowercase=(_)=>$.check(y1(_)),$.uppercase=(_)=>$.check(i1(_)),$.trim=()=>$.check(c1()),$.normalize=(..._)=>$.check(h1(..._)),$.toLowerCase=()=>$.check(d1()),$.toUpperCase=()=>$.check(p1()),$.slugify=()=>$.check(o1())}),$I=D("ZodString",($,I)=>{d6.init($,I),eU.init($,I),$.email=(U)=>$.check(YU(sU,U)),$.url=(U)=>$.check(T0(B0,U)),$.jwt=(U)=>$.check(CU(T_,U)),$.emoji=(U)=>$.check(MU($_,U)),$.guid=(U)=>$.check(Q0(Y0,U)),$.uuid=(U)=>$.check(OU(f4,U)),$.uuidv4=(U)=>$.check(DU(f4,U)),$.uuidv6=(U)=>$.check(VU(f4,U)),$.uuidv7=(U)=>$.check(BU(f4,U)),$.nanoid=(U)=>$.check(RU(I_,U)),$.guid=(U)=>$.check(Q0(Y0,U)),$.cuid=(U)=>$.check(KU(u_,U)),$.cuid2=(U)=>$.check(LU(U_,U)),$.ulid=(U)=>$.check(PU(__,U)),$.base64=(U)=>$.check(SU(X_,U)),$.base64url=(U)=>$.check(wU(q_,U)),$.xid=(U)=>$.check(WU(g_,U)),$.ksuid=(U)=>$.check(ZU(z_,U)),$.ipv4=(U)=>$.check(AU(v_,U)),$.ipv6=(U)=>$.check(bU(J_,U)),$.cidrv4=(U)=>$.check(jU(N_,U)),$.cidrv6=(U)=>$.check(FU(G_,U)),$.e164=(U)=>$.check(EU(Q_,U)),$.datetime=(U)=>$.check(y8(U)),$.date=(U)=>$.check(i8(U)),$.time=(U)=>$.check(n8(U)),$.duration=(U)=>$.check(r8(U))});function tU($){return HN($I,$)}var J$=D("ZodStringFormat",($,I)=>{v$.init($,I),eU.init($,I)}),sU=D("ZodEmail",($,I)=>{Qv.init($,I),J$.init($,I)});function $Q($){return YU(sU,$)}var Y0=D("ZodGUID",($,I)=>{Xv.init($,I),J$.init($,I)});function IQ($){return Q0(Y0,$)}var f4=D("ZodUUID",($,I)=>{qv.init($,I),J$.init($,I)});function uQ($){return OU(f4,$)}function UQ($){return DU(f4,$)}function _Q($){return VU(f4,$)}function gQ($){return BU(f4,$)}var B0=D("ZodURL",($,I)=>{Tv.init($,I),J$.init($,I)});function zQ($){return T0(B0,$)}function vQ($){return T0(B0,{protocol:/^https?$/,hostname:q4.domain,...w.normalizeParams($)})}var $_=D("ZodEmoji",($,I)=>{Hv.init($,I),J$.init($,I)});function JQ($){return MU($_,$)}var I_=D("ZodNanoID",($,I)=>{Yv.init($,I),J$.init($,I)});function NQ($){return RU(I_,$)}var u_=D("ZodCUID",($,I)=>{Ov.init($,I),J$.init($,I)});function GQ($){return KU(u_,$)}var U_=D("ZodCUID2",($,I)=>{Dv.init($,I),J$.init($,I)});function XQ($){return LU(U_,$)}var __=D("ZodULID",($,I)=>{Vv.init($,I),J$.init($,I)});function qQ($){return PU(__,$)}var g_=D("ZodXID",($,I)=>{Bv.init($,I),J$.init($,I)});function QQ($){return WU(g_,$)}var z_=D("ZodKSUID",($,I)=>{Mv.init($,I),J$.init($,I)});function TQ($){return ZU(z_,$)}var v_=D("ZodIPv4",($,I)=>{Wv.init($,I),J$.init($,I)});function HQ($){return AU(v_,$)}var I3=D("ZodMAC",($,I)=>{Av.init($,I),J$.init($,I)});function YQ($){return ON(I3,$)}var J_=D("ZodIPv6",($,I)=>{Zv.init($,I),J$.init($,I)});function OQ($){return bU(J_,$)}var N_=D("ZodCIDRv4",($,I)=>{bv.init($,I),J$.init($,I)});function DQ($){return jU(N_,$)}var G_=D("ZodCIDRv6",($,I)=>{jv.init($,I),J$.init($,I)});function VQ($){return FU(G_,$)}var X_=D("ZodBase64",($,I)=>{Sv.init($,I),J$.init($,I)});function BQ($){return SU(X_,$)}var q_=D("ZodBase64URL",($,I)=>{wv.init($,I),J$.init($,I)});function MQ($){return wU(q_,$)}var Q_=D("ZodE164",($,I)=>{Ev.init($,I),J$.init($,I)});function RQ($){return EU(Q_,$)}var T_=D("ZodJWT",($,I)=>{Cv.init($,I),J$.init($,I)});function KQ($){return CU(T_,$)}var II=D("ZodCustomStringFormat",($,I)=>{fv.init($,I),J$.init($,I)});function LQ($,I,U={}){return t1(II,$,I,U)}function PQ($){return t1(II,"hostname",q4.hostname,$)}function WQ($){return t1(II,"hex",q4.hex,$)}function ZQ($,I){let U=I?.enc??"hex",_=`${$}_${U}`,u=q4[_];if(!u)throw Error(`Unrecognized hash format: ${_}`);return t1(II,_,u,I)}var uI=D("ZodNumber",($,I)=>{XU.init($,I),c.init($,I),$._zod.processJSONSchema=(_,u,g)=>u8($,_,u,g),$.gt=(_,u)=>$.check(E4(_,u)),$.gte=(_,u)=>$.check(r$(_,u)),$.min=(_,u)=>$.check(r$(_,u)),$.lt=(_,u)=>$.check(w4(_,u)),$.lte=(_,u)=>$.check(u4(_,u)),$.max=(_,u)=>$.check(u4(_,u)),$.int=(_)=>$.check(aU(_)),$.safe=(_)=>$.check(aU(_)),$.positive=(_)=>$.check(E4(0,_)),$.nonnegative=(_)=>$.check(r$(0,_)),$.negative=(_)=>$.check(w4(0,_)),$.nonpositive=(_)=>$.check(u4(0,_)),$.multipleOf=(_,u)=>$.check(B6(_,u)),$.step=(_,u)=>$.check(B6(_,u)),$.finite=()=>$;let U=$._zod.bag;$.minValue=Math.max(U.minimum??Number.NEGATIVE_INFINITY,U.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,$.maxValue=Math.min(U.maximum??Number.POSITIVE_INFINITY,U.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,$.isInt=(U.format??"").includes("int")||Number.isSafeInteger(U.multipleOf??0.5),$.isFinite=!0,$.format=U.format??null});function u3($){return KN(uI,$)}var e6=D("ZodNumberFormat",($,I)=>{xv.init($,I),uI.init($,I)});function aU($){return PN(e6,$)}function AQ($){return WN(e6,$)}function bQ($){return ZN(e6,$)}function jQ($){return AN(e6,$)}function FQ($){return bN(e6,$)}var UI=D("ZodBoolean",($,I)=>{g0.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>U8($,U,_,u)});function U3($){return jN(UI,$)}var _I=D("ZodBigInt",($,I)=>{qU.init($,I),c.init($,I),$._zod.processJSONSchema=(_,u,g)=>_8($,_,u,g),$.gte=(_,u)=>$.check(r$(_,u)),$.min=(_,u)=>$.check(r$(_,u)),$.gt=(_,u)=>$.check(E4(_,u)),$.gte=(_,u)=>$.check(r$(_,u)),$.min=(_,u)=>$.check(r$(_,u)),$.lt=(_,u)=>$.check(w4(_,u)),$.lte=(_,u)=>$.check(u4(_,u)),$.max=(_,u)=>$.check(u4(_,u)),$.positive=(_)=>$.check(E4(BigInt(0),_)),$.negative=(_)=>$.check(w4(BigInt(0),_)),$.nonpositive=(_)=>$.check(u4(BigInt(0),_)),$.nonnegative=(_)=>$.check(r$(BigInt(0),_)),$.multipleOf=(_,u)=>$.check(B6(_,u));let U=$._zod.bag;$.minValue=U.minimum??null,$.maxValue=U.maximum??null,$.format=U.format??null});function SQ($){return SN(_I,$)}var H_=D("ZodBigIntFormat",($,I)=>{kv.init($,I),_I.init($,I)});function wQ($){return EN(H_,$)}function EQ($){return CN(H_,$)}var _3=D("ZodSymbol",($,I)=>{yv.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>g8($,U,_,u)});function CQ($){return fN(_3,$)}var g3=D("ZodUndefined",($,I)=>{iv.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>v8($,U,_,u)});function fQ($){return xN(g3,$)}var z3=D("ZodNull",($,I)=>{nv.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>z8($,U,_,u)});function v3($){return kN(z3,$)}var J3=D("ZodAny",($,I)=>{rv.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>G8($,U,_,u)});function xQ(){return yN(J3)}var N3=D("ZodUnknown",($,I)=>{lv.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>X8($,U,_,u)});function a6(){return iN(N3)}var G3=D("ZodNever",($,I)=>{mv.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>N8($,U,_,u)});function Y_($){return nN(G3,$)}var X3=D("ZodVoid",($,I)=>{hv.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>J8($,U,_,u)});function kQ($){return rN(X3,$)}var M0=D("ZodDate",($,I)=>{cv.init($,I),c.init($,I),$._zod.processJSONSchema=(_,u,g)=>q8($,_,u,g),$.min=(_,u)=>$.check(r$(_,u)),$.max=(_,u)=>$.check(u4(_,u));let U=$._zod.bag;$.minDate=U.minimum?new Date(U.minimum):null,$.maxDate=U.maximum?new Date(U.maximum):null});function yQ($){return lN(M0,$)}var q3=D("ZodArray",($,I)=>{dv.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>L8($,U,_,u),$.element=I.element,$.min=(U,_)=>$.check(d4(U,_)),$.nonempty=(U)=>$.check(d4(1,U)),$.max=(U,_)=>$.check(o6(U,_)),$.length=(U,_)=>$.check(t6(U,_)),$.unwrap=()=>$.element});function R0($,I){return cN(q3,$,I)}function iQ($){let I=$._zod.def.shape;return D_(Object.keys(I))}var K0=D("ZodObject",($,I)=>{pv.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>P8($,U,_,u),w.defineLazy($,"shape",()=>{return I.shape}),$.keyof=()=>D_(Object.keys($._zod.def.shape)),$.catchall=(U)=>$.clone({...$._zod.def,catchall:U}),$.passthrough=()=>$.clone({...$._zod.def,catchall:a6()}),$.loose=()=>$.clone({...$._zod.def,catchall:a6()}),$.strict=()=>$.clone({...$._zod.def,catchall:Y_()}),$.strip=()=>$.clone({...$._zod.def,catchall:void 0}),$.extend=(U)=>{return w.extend($,U)},$.safeExtend=(U)=>{return w.safeExtend($,U)},$.merge=(U)=>w.merge($,U),$.pick=(U)=>w.pick($,U),$.omit=(U)=>w.omit($,U),$.partial=(...U)=>w.partial(B_,$,U[0]),$.required=(...U)=>w.required(M_,$,U[0])});function nQ($,I){let U={type:"object",shape:$??{},...w.normalizeParams(I)};return new K0(U)}function rQ($,I){return new K0({type:"object",shape:$,catchall:Y_(),...w.normalizeParams(I)})}function lQ($,I){return new K0({type:"object",shape:$,catchall:a6(),...w.normalizeParams(I)})}var L0=D("ZodUnion",($,I)=>{z0.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>rU($,U,_,u),$.options=I.options});function O_($,I){return new L0({type:"union",options:$,...w.normalizeParams(I)})}var Q3=D("ZodXor",($,I)=>{L0.init($,I),ov.init($,I),$._zod.processJSONSchema=(U,_,u)=>rU($,U,_,u),$.options=I.options});function mQ($,I){return new Q3({type:"union",options:$,inclusive:!1,...w.normalizeParams(I)})}var T3=D("ZodDiscriminatedUnion",($,I)=>{L0.init($,I),tv.init($,I)});function hQ($,I,U){return new T3({type:"union",options:I,discriminator:$,...w.normalizeParams(U)})}var H3=D("ZodIntersection",($,I)=>{av.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>W8($,U,_,u)});function Y3($,I){return new H3({type:"intersection",left:$,right:I})}var O3=D("ZodTuple",($,I)=>{QU.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>Z8($,U,_,u),$.rest=(U)=>$.clone({...$._zod.def,rest:U})});function D3($,I,U){let _=I instanceof l,u=_?U:I;return new O3({type:"tuple",items:$,rest:_?I:null,...w.normalizeParams(u)})}var P0=D("ZodRecord",($,I)=>{ev.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>A8($,U,_,u),$.keyType=I.keyType,$.valueType=I.valueType});function V3($,I,U){return new P0({type:"record",keyType:$,valueType:I,...w.normalizeParams(U)})}function cQ($,I,U){let _=n$($);return _._zod.values=void 0,new P0({type:"record",keyType:_,valueType:I,...w.normalizeParams(U)})}function dQ($,I,U){return new P0({type:"record",keyType:$,valueType:I,mode:"loose",...w.normalizeParams(U)})}var B3=D("ZodMap",($,I)=>{sv.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>R8($,U,_,u),$.keyType=I.keyType,$.valueType=I.valueType,$.min=(...U)=>$.check(C4(...U)),$.nonempty=(U)=>$.check(C4(1,U)),$.max=(...U)=>$.check(M6(...U)),$.size=(...U)=>$.check(p6(...U))});function pQ($,I,U){return new B3({type:"map",keyType:$,valueType:I,...w.normalizeParams(U)})}var M3=D("ZodSet",($,I)=>{$J.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>K8($,U,_,u),$.min=(...U)=>$.check(C4(...U)),$.nonempty=(U)=>$.check(C4(1,U)),$.max=(...U)=>$.check(M6(...U)),$.size=(...U)=>$.check(p6(...U))});function oQ($,I){return new M3({type:"set",valueType:$,...w.normalizeParams(I)})}var s1=D("ZodEnum",($,I)=>{IJ.init($,I),c.init($,I),$._zod.processJSONSchema=(_,u,g)=>Q8($,_,u,g),$.enum=I.entries,$.options=Object.values(I.entries);let U=new Set(Object.keys(I.entries));$.extract=(_,u)=>{let g={};for(let z of _)if(U.has(z))g[z]=I.entries[z];else throw Error(`Key ${z} not found in enum`);return new s1({...I,checks:[],...w.normalizeParams(u),entries:g})},$.exclude=(_,u)=>{let g={...I.entries};for(let z of _)if(U.has(z))delete g[z];else throw Error(`Key ${z} not found in enum`);return new s1({...I,checks:[],...w.normalizeParams(u),entries:g})}});function D_($,I){let U=Array.isArray($)?Object.fromEntries($.map((_)=>[_,_])):$;return new s1({type:"enum",entries:U,...w.normalizeParams(I)})}function tQ($,I){return new s1({type:"enum",entries:$,...w.normalizeParams(I)})}var R3=D("ZodLiteral",($,I)=>{uJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>T8($,U,_,u),$.values=new Set(I.values),Object.defineProperty($,"value",{get(){if(I.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return I.values[0]}})});function aQ($,I){return new R3({type:"literal",values:Array.isArray($)?$:[$],...w.normalizeParams(I)})}var K3=D("ZodFile",($,I)=>{UJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>O8($,U,_,u),$.min=(U,_)=>$.check(C4(U,_)),$.max=(U,_)=>$.check(M6(U,_)),$.mime=(U,_)=>$.check(m1(Array.isArray(U)?U:[U],_))});function eQ($){return dN(K3,$)}var L3=D("ZodTransform",($,I)=>{_J.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>M8($,U,_,u),$._zod.parse=(U,_)=>{if(_.direction==="backward")throw new m6($.constructor.name);U.addIssue=(g)=>{if(typeof g==="string")U.issues.push(w.issue(g,U.value,I));else{let z=g;if(z.fatal)z.continue=!1;z.code??(z.code="custom"),z.input??(z.input=U.value),z.inst??(z.inst=$),U.issues.push(w.issue(z))}};let u=I.transform(U.value,U);if(u instanceof Promise)return u.then((g)=>{return U.value=g,U});return U.value=u,U}});function V_($){return new L3({type:"transform",transform:$})}var B_=D("ZodOptional",($,I)=>{TU.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>lU($,U,_,u),$.unwrap=()=>$._zod.def.innerType});function O0($){return new B_({type:"optional",innerType:$})}var P3=D("ZodExactOptional",($,I)=>{gJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>lU($,U,_,u),$.unwrap=()=>$._zod.def.innerType});function W3($){return new P3({type:"optional",innerType:$})}var Z3=D("ZodNullable",($,I)=>{zJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>b8($,U,_,u),$.unwrap=()=>$._zod.def.innerType});function D0($){return new Z3({type:"nullable",innerType:$})}function sQ($){return O0(D0($))}var A3=D("ZodDefault",($,I)=>{vJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>F8($,U,_,u),$.unwrap=()=>$._zod.def.innerType,$.removeDefault=$.unwrap});function b3($,I){return new A3({type:"default",innerType:$,get defaultValue(){return typeof I==="function"?I():w.shallowClone(I)}})}var j3=D("ZodPrefault",($,I)=>{JJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>S8($,U,_,u),$.unwrap=()=>$._zod.def.innerType});function F3($,I){return new j3({type:"prefault",innerType:$,get defaultValue(){return typeof I==="function"?I():w.shallowClone(I)}})}var M_=D("ZodNonOptional",($,I)=>{NJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>j8($,U,_,u),$.unwrap=()=>$._zod.def.innerType});function S3($,I){return new M_({type:"nonoptional",innerType:$,...w.normalizeParams(I)})}var w3=D("ZodSuccess",($,I)=>{GJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>D8($,U,_,u),$.unwrap=()=>$._zod.def.innerType});function $7($){return new w3({type:"success",innerType:$})}var E3=D("ZodCatch",($,I)=>{XJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>w8($,U,_,u),$.unwrap=()=>$._zod.def.innerType,$.removeCatch=$.unwrap});function C3($,I){return new E3({type:"catch",innerType:$,catchValue:typeof I==="function"?I:()=>I})}var f3=D("ZodNaN",($,I)=>{qJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>H8($,U,_,u)});function I7($){return hN(f3,$)}var R_=D("ZodPipe",($,I)=>{QJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>E8($,U,_,u),$.in=I.in,$.out=I.out});function V0($,I){return new R_({type:"pipe",in:$,out:I})}var K_=D("ZodCodec",($,I)=>{R_.init($,I),v0.init($,I)});function u7($,I,U){return new K_({type:"pipe",in:$,out:I,transform:U.decode,reverseTransform:U.encode})}var x3=D("ZodReadonly",($,I)=>{TJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>C8($,U,_,u),$.unwrap=()=>$._zod.def.innerType});function k3($){return new x3({type:"readonly",innerType:$})}var y3=D("ZodTemplateLiteral",($,I)=>{HJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>Y8($,U,_,u)});function U7($,I){return new y3({type:"template_literal",parts:$,...w.normalizeParams(I)})}var i3=D("ZodLazy",($,I)=>{DJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>x8($,U,_,u),$.unwrap=()=>$._zod.def.getter()});function n3($){return new i3({type:"lazy",getter:$})}var r3=D("ZodPromise",($,I)=>{OJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>f8($,U,_,u),$.unwrap=()=>$._zod.def.innerType});function _7($){return new r3({type:"promise",innerType:$})}var l3=D("ZodFunction",($,I)=>{YJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>B8($,U,_,u)});function g7($){return new l3({type:"function",input:Array.isArray($?.input)?D3($?.input):$?.input??R0(a6()),output:$?.output??a6()})}var W0=D("ZodCustom",($,I)=>{VJ.init($,I),c.init($,I),$._zod.processJSONSchema=(U,_,u)=>V8($,U,_,u)});function z7($){let I=new G$({check:"custom"});return I._zod.check=$,I}function v7($,I){return pN(W0,$??(()=>!0),I)}function m3($,I={}){return oN(W0,$,I)}function h3($){return tN($)}var J7=aN,N7=eN;function G7($,I={}){let U=new W0({type:"custom",check:"custom",fn:(_)=>_ instanceof $,abort:!0,...w.normalizeParams(I)});return U._zod.bag.Class=$,U._zod.check=(_)=>{if(!(_.value instanceof $))_.issues.push({code:"invalid_type",expected:$.name,input:_.value,inst:U,path:[...U._zod.def.path??[]]})},U}var X7=(...$)=>sN({Codec:K_,Boolean:UI,String:$I},...$);function q7($){let I=n3(()=>{return O_([tU($),u3(),U3(),v3(),R0(I),V3(tU(),I)])});return I}function Q7($,I){return V0(V_($),I)}var Jj={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function Nj($){R$({customError:$})}function Gj(){return R$().customError}var c3;(function($){})(c3||(c3={}));var f={...H0,...hU,iso:e1},Xj=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function qj($,I){let U=$.$schema;if(U==="https://json-schema.org/draft/2020-12/schema")return"draft-2020-12";if(U==="http://json-schema.org/draft-07/schema#")return"draft-7";if(U==="http://json-schema.org/draft-04/schema#")return"draft-4";return I??"draft-2020-12"}function Qj($,I){if(!$.startsWith("#"))throw Error("External $ref is not supported, only local refs (#/...) are allowed");let U=$.slice(1).split("/").filter(Boolean);if(U.length===0)return I.rootSchema;let _=I.version==="draft-2020-12"?"$defs":"definitions";if(U[0]===_){let u=U[1];if(!u||!I.defs[u])throw Error(`Reference not found: ${$}`);return I.defs[u]}throw Error(`Reference not found: ${$}`)}function T7($,I){if($.not!==void 0){if(typeof $.not==="object"&&Object.keys($.not).length===0)return f.never();throw Error("not is not supported in Zod (except { not: {} } for never)")}if($.unevaluatedItems!==void 0)throw Error("unevaluatedItems is not supported");if($.unevaluatedProperties!==void 0)throw Error("unevaluatedProperties is not supported");if($.if!==void 0||$.then!==void 0||$.else!==void 0)throw Error("Conditional schemas (if/then/else) are not supported");if($.dependentSchemas!==void 0||$.dependentRequired!==void 0)throw Error("dependentSchemas and dependentRequired are not supported");if($.$ref){let u=$.$ref;if(I.refs.has(u))return I.refs.get(u);if(I.processing.has(u))return f.lazy(()=>{if(!I.refs.has(u))throw Error(`Circular reference not resolved: ${u}`);return I.refs.get(u)});I.processing.add(u);let g=Qj(u,I),z=f$(g,I);return I.refs.set(u,z),I.processing.delete(u),z}if($.enum!==void 0){let u=$.enum;if(I.version==="openapi-3.0"&&$.nullable===!0&&u.length===1&&u[0]===null)return f.null();if(u.length===0)return f.never();if(u.length===1)return f.literal(u[0]);if(u.every((z)=>typeof z==="string"))return f.enum(u);let g=u.map((z)=>f.literal(z));if(g.length<2)return g[0];return f.union([g[0],g[1],...g.slice(2)])}if($.const!==void 0)return f.literal($.const);let U=$.type;if(Array.isArray(U)){let u=U.map((g)=>{let z={...$,type:g};return T7(z,I)});if(u.length===0)return f.never();if(u.length===1)return u[0];return f.union(u)}if(!U)return f.any();let _;switch(U){case"string":{let u=f.string();if($.format){let g=$.format;if(g==="email")u=u.check(f.email());else if(g==="uri"||g==="uri-reference")u=u.check(f.url());else if(g==="uuid"||g==="guid")u=u.check(f.uuid());else if(g==="date-time")u=u.check(f.iso.datetime());else if(g==="date")u=u.check(f.iso.date());else if(g==="time")u=u.check(f.iso.time());else if(g==="duration")u=u.check(f.iso.duration());else if(g==="ipv4")u=u.check(f.ipv4());else if(g==="ipv6")u=u.check(f.ipv6());else if(g==="mac")u=u.check(f.mac());else if(g==="cidr")u=u.check(f.cidrv4());else if(g==="cidr-v6")u=u.check(f.cidrv6());else if(g==="base64")u=u.check(f.base64());else if(g==="base64url")u=u.check(f.base64url());else if(g==="e164")u=u.check(f.e164());else if(g==="jwt")u=u.check(f.jwt());else if(g==="emoji")u=u.check(f.emoji());else if(g==="nanoid")u=u.check(f.nanoid());else if(g==="cuid")u=u.check(f.cuid());else if(g==="cuid2")u=u.check(f.cuid2());else if(g==="ulid")u=u.check(f.ulid());else if(g==="xid")u=u.check(f.xid());else if(g==="ksuid")u=u.check(f.ksuid())}if(typeof $.minLength==="number")u=u.min($.minLength);if(typeof $.maxLength==="number")u=u.max($.maxLength);if($.pattern)u=u.regex(new RegExp($.pattern));_=u;break}case"number":case"integer":{let u=U==="integer"?f.number().int():f.number();if(typeof $.minimum==="number")u=u.min($.minimum);if(typeof $.maximum==="number")u=u.max($.maximum);if(typeof $.exclusiveMinimum==="number")u=u.gt($.exclusiveMinimum);else if($.exclusiveMinimum===!0&&typeof $.minimum==="number")u=u.gt($.minimum);if(typeof $.exclusiveMaximum==="number")u=u.lt($.exclusiveMaximum);else if($.exclusiveMaximum===!0&&typeof $.maximum==="number")u=u.lt($.maximum);if(typeof $.multipleOf==="number")u=u.multipleOf($.multipleOf);_=u;break}case"boolean":{_=f.boolean();break}case"null":{_=f.null();break}case"object":{let u={},g=$.properties||{},z=new Set($.required||[]);for(let[J,N]of Object.entries(g)){let X=f$(N,I);u[J]=z.has(J)?X:X.optional()}if($.propertyNames){let J=f$($.propertyNames,I),N=$.additionalProperties&&typeof $.additionalProperties==="object"?f$($.additionalProperties,I):f.any();if(Object.keys(u).length===0){_=f.record(J,N);break}let X=f.object(u).passthrough(),G=f.looseRecord(J,N);_=f.intersection(X,G);break}if($.patternProperties){let J=$.patternProperties,N=Object.keys(J),X=[];for(let q of N){let T=f$(J[q],I),H=f.string().regex(new RegExp(q));X.push(f.looseRecord(H,T))}let G=[];if(Object.keys(u).length>0)G.push(f.object(u).passthrough());if(G.push(...X),G.length===0)_=f.object({}).passthrough();else if(G.length===1)_=G[0];else{let q=f.intersection(G[0],G[1]);for(let T=2;T<G.length;T++)q=f.intersection(q,G[T]);_=q}break}let v=f.object(u);if($.additionalProperties===!1)_=v.strict();else if(typeof $.additionalProperties==="object")_=v.catchall(f$($.additionalProperties,I));else _=v.passthrough();break}case"array":{let{prefixItems:u,items:g}=$;if(u&&Array.isArray(u)){let z=u.map((J)=>f$(J,I)),v=g&&typeof g==="object"&&!Array.isArray(g)?f$(g,I):void 0;if(v)_=f.tuple(z).rest(v);else _=f.tuple(z);if(typeof $.minItems==="number")_=_.check(f.minLength($.minItems));if(typeof $.maxItems==="number")_=_.check(f.maxLength($.maxItems))}else if(Array.isArray(g)){let z=g.map((J)=>f$(J,I)),v=$.additionalItems&&typeof $.additionalItems==="object"?f$($.additionalItems,I):void 0;if(v)_=f.tuple(z).rest(v);else _=f.tuple(z);if(typeof $.minItems==="number")_=_.check(f.minLength($.minItems));if(typeof $.maxItems==="number")_=_.check(f.maxLength($.maxItems))}else if(g!==void 0){let z=f$(g,I),v=f.array(z);if(typeof $.minItems==="number")v=v.min($.minItems);if(typeof $.maxItems==="number")v=v.max($.maxItems);_=v}else _=f.array(f.any());break}default:throw Error(`Unsupported type: ${U}`)}if($.description)_=_.describe($.description);if($.default!==void 0)_=_.default($.default);return _}function f$($,I){if(typeof $==="boolean")return $?f.any():f.never();let U=T7($,I),_=$.type||$.enum!==void 0||$.const!==void 0;if($.anyOf&&Array.isArray($.anyOf)){let v=$.anyOf.map((N)=>f$(N,I)),J=f.union(v);U=_?f.intersection(U,J):J}if($.oneOf&&Array.isArray($.oneOf)){let v=$.oneOf.map((N)=>f$(N,I)),J=f.xor(v);U=_?f.intersection(U,J):J}if($.allOf&&Array.isArray($.allOf))if($.allOf.length===0)U=_?U:f.any();else{let v=_?U:f$($.allOf[0],I),J=_?0:1;for(let N=J;N<$.allOf.length;N++)v=f.intersection(v,f$($.allOf[N],I));U=v}if($.nullable===!0&&I.version==="openapi-3.0")U=f.nullable(U);if($.readOnly===!0)U=f.readonly(U);let u={},g=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(let v of g)if(v in $)u[v]=$[v];let z=["contentEncoding","contentMediaType","contentSchema"];for(let v of z)if(v in $)u[v]=$[v];for(let v of Object.keys($))if(!Xj.has(v))u[v]=$[v];if(Object.keys(u).length>0)I.registry.add(U,u);return U}function H7($,I){if(typeof $==="boolean")return $?f.any():f.never();let U=qj($,I?.defaultTarget),_=$.$defs||$.definitions||{},u={version:U,defs:_,refs:new Map,processing:new Set,rootSchema:$,registry:I?.registry??w$};return f$($,u)}var d3={};O4(d3,{string:()=>Tj,number:()=>Hj,date:()=>Dj,boolean:()=>Yj,bigint:()=>Oj});function Tj($){return YN($I,$)}function Hj($){return LN(uI,$)}function Yj($){return FN(UI,$)}function Oj($){return wN(_I,$)}function Dj($){return mN(M0,$)}R$(J0());Z0();function Z_($){try{return process.kill($,0),!0}catch(I){return!1}}function K7($){let I=[],U=/[^\s"']+|"([^"]*)"|'([^']*)'/g,_=U.exec($);while(_!==null){if(_[1]!==void 0)I.push(_[1]);else if(_[2]!==void 0)I.push(_[2]);else if(_[0])I.push(_[0]);_=U.exec($)}return I}var Pj=z$.object({default_cli:z$.string().optional(),agent_cli_mapping:z$.record(z$.string(),z$.string()).optional()}).passthrough().transform(($)=>({default_cli:$.default_cli,agent_cli_mapping:$.agent_cli_mapping??{}})),Wj=z$.object({command:z$.string().optional(),subcommand:z$.string().optional(),prompt_flag:z$.string().optional().transform(($)=>{if($===void 0)return;let I=$.trim().toLowerCase();if(I===""||I==="none"||I==="null")return null;return $}),auto_approve_flag:z$.string().optional(),output_format_flag:z$.string().optional(),output_format:z$.string().optional(),model_flag:z$.string().optional(),default_model:z$.string().optional(),isolation_env:z$.string().optional(),isolation_flags:z$.string().optional()}).passthrough().transform(($)=>({...$,prompt_flag:$.prompt_flag??void 0})),Zj=z$.object({active_vendor:z$.string().optional(),vendors:z$.record(z$.string(),Wj).optional()}).passthrough().transform(($)=>({active_vendor:$.active_vendor,vendors:$.vendors??{}}));function L7($){try{return l6($)}catch{return null}}function Aj($){let I=L7($),U=Pj.safeParse(I);if(!U.success)return{};return U.data}function bj($){let I=L7($),U=Zj.safeParse(I);if(!U.success)return{vendors:{}};return{active_vendor:U.data.active_vendor,vendors:U.data.vendors}}function e3($,I){let U=I$.resolve($),_=I$.parse(U).root;while(U!==_){let u=I$.join(U,I);if(y.existsSync(u))return u;U=I$.dirname(U)}return null}function jj($){let I=e3($,I$.join(".agents","config","user-preferences.yaml"));if(!I)return null;try{let U=y.readFileSync(I,"utf-8");return Aj(U)}catch{return null}}function Fj($){let I=e3($,I$.join(".agents","skills","oma-orchestrator","config","cli-config.yaml"));if(!I)return null;try{let U=y.readFileSync(I,"utf-8");return bj(U)}catch{return null}}function s3($,I){let U=process.cwd(),_=jj(U),u=Fj(U),g=$.replace(/-agent$/i,""),z=_?.agent_cli_mapping?.[$]||_?.agent_cli_mapping?.[g];return{vendor:(I||z||_?.default_cli||u?.active_vendor||"gemini").toLowerCase(),config:u}}function P7($,I){if(I!==void 0)return I;return{gemini:"-p",claude:"-p",qwen:"-p",codex:null}[$]??"-p"}var Sj={frontend:["web","frontend","client","ui","app","dashboard","admin","portal"],backend:["api","backend","server","service","gateway","core"],mobile:["mobile","ios","android","native","rn","expo"]},wj={frontend:["apps/web","apps/frontend","apps/client","packages/web","packages/frontend","frontend","web","client"],backend:["apps/api","apps/backend","apps/server","packages/api","packages/backend","backend","api","server"],mobile:["apps/mobile","apps/app","packages/mobile","mobile","app"]};function W7($,I){if($.startsWith("!"))return[];let U=$.replace(/\/\*\*?$/,"").replace(/\/$/,"");if(!$.includes("*")){let u=I$.join(I,U);if(y.existsSync(u)&&y.statSync(u).isDirectory())return[U];return[]}let _=I$.join(I,U);if(!y.existsSync(_)||!y.statSync(_).isDirectory())return[];try{return y.readdirSync(_,{withFileTypes:!0}).filter((g)=>g.isDirectory()&&!g.name.startsWith(".")).map((g)=>I$.join(U,g.name))}catch{return[]}}function Ej($){let I=I$.join($,"pnpm-workspace.yaml");if(!y.existsSync(I))return[];try{let U=y.readFileSync(I,"utf-8");return l6(U)?.packages??[]}catch{return[]}}function Z7($){let I=I$.join($,"package.json");if(!y.existsSync(I))return[];try{let U=y.readFileSync(I,"utf-8"),_=JSON.parse(U);if(Array.isArray(_?.workspaces))return _.workspaces;if(_?.workspaces&&typeof _.workspaces==="object")return _.workspaces.packages??[];return[]}catch{return[]}}function Cj($){let I=I$.join($,"lerna.json");if(!y.existsSync(I))return[];try{let U=y.readFileSync(I,"utf-8");return JSON.parse(U)?.packages??[]}catch{return[]}}function fj($){let I=I$.join($,"nx.json");if(!y.existsSync(I))return[];return["apps/*","libs/*","packages/*"].flatMap((_)=>W7(_,$))}function xj($){let I=I$.join($,"turbo.json");if(!y.existsSync(I))return[];return Z7($)}function kj($){let I=I$.join($,"mise.toml");if(!y.existsSync(I))return[];try{let U=y.readFileSync(I,"utf-8"),_=[],u=U.match(/workspaces\s*=\s*\[([^\]]+)\]/);if(u?.[1]){let g=u[1].match(/"([^"]+)"|'([^']+)'/g);if(g)_.push(...g.map((z)=>z.replace(/["']/g,"")))}return _}catch{return[]}}function yj($){let I=new Set,U=[Ej($),Z7($),Cj($),fj($),xj($),kj($)];for(let u of U)for(let g of u)I.add(g);let _=new Set;for(let u of I)for(let g of W7(u,$))_.add(g);return[..._]}function ij($,I){let U=Sj[I];if(!U)return 0;let _=I$.basename($).toLowerCase(),u=$.toLowerCase();for(let g=0;g<U.length;g++){let z=U[g];if(!z)continue;if(_===z)return 100-g;if(_.includes(z))return 50-g;if(u.includes(z))return 25-g}return 0}function A7($){let I=process.cwd(),U=yj(I);if(U.length>0){let u=U.map((g)=>({workspace:g,score:ij(g,$)})).filter((g)=>g.score>0).sort((g,z)=>z.score-g.score);if(u.length>0&&u[0])return u[0].workspace}let _=wj[$];if(_)for(let u of _){let g=I$.resolve(u);if(y.existsSync(g)&&y.statSync(g).isDirectory())return u}return"."}function b7($){let I=I$.resolve($);if(y.existsSync(I)&&y.statSync(I).isFile())return y.readFileSync(I,"utf-8");return $}function j7($,I){let U=e3(I,I$.join(".agents","skills","_shared","runtime","execution-protocols",`${$}.md`));if(!U)return"";try{return y.readFileSync(U,"utf-8")}catch{return""}}async function F7($,I,U,_,u){let g=_==="."?A7($):_,z=I$.resolve(g);if(!y.existsSync(z))y.mkdirSync(z,{recursive:!0}),console.log(n.default.dim(`[${$}] Created workspace: ${z}`));else if(g!==_)console.log(n.default.blue(`[${$}] Auto-detected workspace: ${g}`));let v=W_(),J=I$.join(v,`subagent-${U}-${$}.log`),N=I$.join(v,`subagent-${U}-${$}.pid`),X=b7(I),{vendor:G,config:q}=s3($,u),T=j7(G,process.cwd()),H=T?`${X}
|
|
337
337
|
|
|
338
|
-
${T}`:X,Q=q?.vendors?.[G]||{},Y=Q.command||G,R=Q.subcommand,K=y.openSync(J,"w");console.log(n.default.blue(`[${$}] Spawning subagent...`)),console.log(n.default.dim(` Vendor: ${G}`)),console.log(n.default.dim(` Workspace: ${z}`)),console.log(n.default.dim(` Log: ${J}`));let W=[],O=P7(G,Q.prompt_flag);if(Q.output_format_flag&&Q.output_format)W.push(Q.output_format_flag,Q.output_format);else if(Q.output_format_flag)W.push(Q.output_format_flag);if(Q.model_flag&&Q.default_model)W.push(Q.model_flag,Q.default_model);if(Q.isolation_flags)W.push(...K7(Q.isolation_flags));if(Q.auto_approve_flag)W.push(Q.auto_approve_flag);else{let x={gemini:"--approval-mode=yolo",codex:"--full-auto",qwen:"--yolo"}[G];if(x)W.push(x)}if(O)W.push(O,H);let V=[];if(R)V.push(R);if(V.push(...W),!O)V.push(H);let P={...process.env};if(Q.isolation_env){let[A,...x]=Q.isolation_env.split("="),b=x.join("=");if(A&&b){let u$=b.replace("$$",String(process.pid));if(P[A]=u$,u$.startsWith("/")&&!y.existsSync(u$))y.mkdirSync(u$,{recursive:!0})}}let B=a3(Y,V,{cwd:z,stdio:["ignore",K,K],detached:!1,env:P});if(!B.pid)console.error(n.default.red(`[${$}] Failed to spawn process`)),process.exit(1);y.writeFileSync(N,B.pid.toString()),console.log(n.default.green(`[${$}] Started with PID ${B.pid}`));let M=()=>{try{if(y.existsSync(N))y.unlinkSync(N);if(y.existsSync(J))y.unlinkSync(J)}catch(A){}},F=()=>{if(B.pid&&Z_(B.pid))process.kill(B.pid);M(),process.exit()};process.on("SIGINT",F),process.on("SIGTERM",F),B.on("exit",(A)=>{if(console.log(n.default.blue(`[${$}] Exited with code ${A}`)),A!==0&&y.existsSync(J)){let x=y.readFileSync(J,"utf-8").trim();if(x)console.log(n.default.red(`[${$}] Log output:`)),console.log(x)}M(),process.exit(A??0)})}async function S7($,I,U=process.cwd()){let _={};for(let u of I){let g=I$.join(U,".serena","memories",`result-${u}.md`),z=I$.join(W_(),`subagent-${$}-${u}.pid`);if(y.existsSync(g)){let J=y.readFileSync(g,"utf-8").match(/^## Status:\s*(\S+)/m);if(J?.[1])_[u]=J[1];else _[u]="completed"}else if(y.existsSync(z)){let v=y.readFileSync(z,"utf-8").trim(),J=parseInt(v,10);if(!Number.isNaN(J)&&Z_(J))_[u]="running";else _[u]="crashed"}else _[u]="crashed"}for(let[u,g]of Object.entries(_))console.log(`${u}:${g}`)}var nj=z$.object({agent:z$.string(),task:z$.string(),workspace:z$.string().optional()}),rj=z$.object({tasks:z$.array(nj)});function lj($){if(!y.existsSync($))throw Error(`Tasks file not found: ${$}`);let I=y.readFileSync($,"utf-8"),U=l6(I),_=rj.safeParse(U);if(!_.success)throw Error(`Invalid tasks file format: ${_.error.message}`);return _.data.tasks}function mj($){return $.map((I)=>{let U=I.split(":");if(U.length<2||!U[0])throw Error(`Invalid task format: "${I}". Expected "agent:task" or "agent:task:workspace"`);let _=U[0],u=U.slice(1),g,z;if(u.length>=2){let v=u[u.length-1]??"";if(v.startsWith("./")||v.startsWith("/")||v===".")z=v,g=u.slice(0,-1).join(":");else g=u.join(":")}else g=u.join(":");return{agent:_,task:g,workspace:z}})}async function w7($,I={}){let U=process.cwd(),_=I$.join(U,".agents","results"),u=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),g=I$.join(_,`parallel-${u}`);y.mkdirSync(g,{recursive:!0});let z=I$.join(g,"pids.txt"),v;try{if(I.inline){if($.length===0)console.error(n.default.red("Error: No tasks specified")),console.log('Usage: oh-my-
|
|
338
|
+
${T}`:X,Q=q?.vendors?.[G]||{},Y=Q.command||G,R=Q.subcommand,K=y.openSync(J,"w");console.log(n.default.blue(`[${$}] Spawning subagent...`)),console.log(n.default.dim(` Vendor: ${G}`)),console.log(n.default.dim(` Workspace: ${z}`)),console.log(n.default.dim(` Log: ${J}`));let W=[],O=P7(G,Q.prompt_flag);if(Q.output_format_flag&&Q.output_format)W.push(Q.output_format_flag,Q.output_format);else if(Q.output_format_flag)W.push(Q.output_format_flag);if(Q.model_flag&&Q.default_model)W.push(Q.model_flag,Q.default_model);if(Q.isolation_flags)W.push(...K7(Q.isolation_flags));if(Q.auto_approve_flag)W.push(Q.auto_approve_flag);else{let x={gemini:"--approval-mode=yolo",codex:"--full-auto",qwen:"--yolo"}[G];if(x)W.push(x)}if(O)W.push(O,H);let V=[];if(R)V.push(R);if(V.push(...W),!O)V.push(H);let P={...process.env};if(Q.isolation_env){let[A,...x]=Q.isolation_env.split("="),b=x.join("=");if(A&&b){let u$=b.replace("$$",String(process.pid));if(P[A]=u$,u$.startsWith("/")&&!y.existsSync(u$))y.mkdirSync(u$,{recursive:!0})}}let B=a3(Y,V,{cwd:z,stdio:["ignore",K,K],detached:!1,env:P});if(!B.pid)console.error(n.default.red(`[${$}] Failed to spawn process`)),process.exit(1);y.writeFileSync(N,B.pid.toString()),console.log(n.default.green(`[${$}] Started with PID ${B.pid}`));let M=()=>{try{if(y.existsSync(N))y.unlinkSync(N);if(y.existsSync(J))y.unlinkSync(J)}catch(A){}},F=()=>{if(B.pid&&Z_(B.pid))process.kill(B.pid);M(),process.exit()};process.on("SIGINT",F),process.on("SIGTERM",F),B.on("exit",(A)=>{if(console.log(n.default.blue(`[${$}] Exited with code ${A}`)),A!==0&&y.existsSync(J)){let x=y.readFileSync(J,"utf-8").trim();if(x)console.log(n.default.red(`[${$}] Log output:`)),console.log(x)}M(),process.exit(A??0)})}async function S7($,I,U=process.cwd()){let _={};for(let u of I){let g=I$.join(U,".serena","memories",`result-${u}.md`),z=I$.join(W_(),`subagent-${$}-${u}.pid`);if(y.existsSync(g)){let J=y.readFileSync(g,"utf-8").match(/^## Status:\s*(\S+)/m);if(J?.[1])_[u]=J[1];else _[u]="completed"}else if(y.existsSync(z)){let v=y.readFileSync(z,"utf-8").trim(),J=parseInt(v,10);if(!Number.isNaN(J)&&Z_(J))_[u]="running";else _[u]="crashed"}else _[u]="crashed"}for(let[u,g]of Object.entries(_))console.log(`${u}:${g}`)}var nj=z$.object({agent:z$.string(),task:z$.string(),workspace:z$.string().optional()}),rj=z$.object({tasks:z$.array(nj)});function lj($){if(!y.existsSync($))throw Error(`Tasks file not found: ${$}`);let I=y.readFileSync($,"utf-8"),U=l6(I),_=rj.safeParse(U);if(!_.success)throw Error(`Invalid tasks file format: ${_.error.message}`);return _.data.tasks}function mj($){return $.map((I)=>{let U=I.split(":");if(U.length<2||!U[0])throw Error(`Invalid task format: "${I}". Expected "agent:task" or "agent:task:workspace"`);let _=U[0],u=U.slice(1),g,z;if(u.length>=2){let v=u[u.length-1]??"";if(v.startsWith("./")||v.startsWith("/")||v===".")z=v,g=u.slice(0,-1).join(":");else g=u.join(":")}else g=u.join(":");return{agent:_,task:g,workspace:z}})}async function w7($,I={}){let U=process.cwd(),_=I$.join(U,".agents","results"),u=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),g=I$.join(_,`parallel-${u}`);y.mkdirSync(g,{recursive:!0});let z=I$.join(g,"pids.txt"),v;try{if(I.inline){if($.length===0)console.error(n.default.red("Error: No tasks specified")),console.log('Usage: oh-my-agent agent:parallel --inline "agent:task" "agent:task" ...'),process.exit(1);v=mj($)}else{if($.length===0)console.error(n.default.red("Error: No tasks file specified")),console.log("Usage: oh-my-agent agent:parallel <tasks-file.yaml>"),process.exit(1);let T=$[0];if(!T)console.error(n.default.red("Error: No tasks file specified")),process.exit(1);v=lj(T)}}catch(T){console.error(n.default.red(`Error: ${T.message}`)),process.exit(1)}console.log(n.default.cyan("======================================")),console.log(n.default.cyan(" Parallel SubAgent Execution")),console.log(n.default.cyan("======================================")),console.log(""),console.log(n.default.blue("Starting parallel execution...")),console.log("");let J=[];for(let T=0;T<v.length;T++){let H=v[T];if(!H)continue;let{agent:Q,task:Y,workspace:R="."}=H,K=R==="."?A7(Q):R,W=I$.resolve(K),O=I$.join(g,`${Q}-${T}.log`);if(console.log(`${n.default.blue(`[${T}]`)} Spawning ${n.default.yellow(Q)} agent...`),console.log(` Task: ${Y.slice(0,60)}${Y.length>60?"...":""}`),console.log(` Workspace: ${K}`),!y.existsSync(W))y.mkdirSync(W,{recursive:!0});let{vendor:V,config:P}=s3(Q,I.vendor),B=P?.vendors?.[V]||{},M=B.command||V,F=B.subcommand,A=[],x=P7(V,B.prompt_flag),b=b7(Y),u$=j7(V,U),o=u$?`${b}
|
|
339
339
|
|
|
340
340
|
${u$}`:b;if(B.output_format_flag&&B.output_format)A.push(B.output_format_flag,B.output_format);else if(B.output_format_flag)A.push(B.output_format_flag);if(B.model_flag&&B.default_model)A.push(B.model_flag,B.default_model);if(B.isolation_flags)A.push(...K7(B.isolation_flags));if(B.auto_approve_flag)A.push(B.auto_approve_flag);else{let O1={gemini:"--approval-mode=yolo",codex:"--full-auto",qwen:"--yolo"}[V];if(O1)A.push(O1)}if(x)A.push(x,o);let Y$=[];if(F)Y$.push(F);if(Y$.push(...A),!x)Y$.push(o);let h$={...process.env};if(B.isolation_env){let[z6,...O1]=B.isolation_env.split("="),m9=O1.join("=");if(z6&&m9){let e0=m9.replace("$$",String(process.pid));if(h$[z6]=e0,e0.startsWith("/")&&!y.existsSync(e0))y.mkdirSync(e0,{recursive:!0})}}let c$=y.openSync(O,"w"),b4=a3(M,Y$,{cwd:W,stdio:["ignore",c$,c$],detached:!1,env:h$});if(!b4.pid){console.error(n.default.red(`[${T}] Failed to spawn ${Q} process`));continue}y.appendFileSync(z,`${b4.pid}:${Q}
|
|
341
341
|
`);let S2=new Promise((z6)=>{b4.on("exit",(O1)=>{y.closeSync(c$),z6(O1)}),b4.on("error",()=>{y.closeSync(c$),z6(null)})});J.push({pid:b4.pid,agent:Q,idx:T,promise:S2})}if(console.log(""),console.log(n.default.blue("[Parallel]")+` Started ${n.default.yellow(String(J.length))} agents`),I.noWait){console.log(`${n.default.blue("[Parallel]")} Running in background mode`),console.log(`${n.default.blue("[Parallel]")} Results will be in: ${g}`),console.log(`${n.default.blue("[Parallel]")} PID list: ${z}`);return}console.log(`${n.default.blue("[Parallel]")} Waiting for completion...`),console.log("");let N=()=>{console.log(""),console.log(`${n.default.yellow("[Parallel]")} Cleaning up child processes...`);for(let{pid:T,agent:H}of J)if(Z_(T))try{process.kill(T),console.log(`${n.default.yellow("[Parallel]")} Killed PID ${T} (${H})`)}catch{}try{if(y.existsSync(z))y.unlinkSync(z)}catch{}};process.on("SIGINT",()=>{N(),process.exit(130)}),process.on("SIGTERM",()=>{N(),process.exit(143)});let X=0,G=0;for(let{agent:T,idx:H,promise:Q}of J){let Y=await Q;if(Y===0)console.log(`${n.default.green("[DONE]")} ${T} agent (${H}) completed`),X++;else console.log(n.default.red("[FAIL]")+` ${T} agent (${H}) failed (exit code: ${Y})`),G++}try{if(y.existsSync(z))y.unlinkSync(z)}catch{}console.log(""),console.log(n.default.cyan("======================================")),console.log(n.default.cyan(" Execution Summary")),console.log(n.default.cyan("======================================")),console.log(`Total: ${J.length}`),console.log(`Completed: ${n.default.green(String(X))}`),console.log(`Failed: ${n.default.red(String(G))}`),console.log(`Results: ${g}`),console.log(n.default.cyan("======================================")),console.log(""),console.log(n.default.blue("Result files:"));let q=y.readdirSync(g).filter((T)=>T.endsWith(".log"));for(let T of q)console.log(` - ${I$.join(g,T)}`);if(G>0)process.exit(1)}function hj(){let $=P_(process.cwd());if($.id&&$.status!=="completed"&&$.status!=="failed")return $.id;return o3(new Date)}var cj="codex",dj=["codex","claude","gemini","qwen"];function pj($,I,U){if(I)return`Review the uncommitted changes (git diff) in this repository. ${$}`;try{let _=Lj("git diff HEAD~1",{cwd:U,encoding:"utf-8"}).trim();if(!_)return`No committed changes found. ${$}`;return`Review the following committed diff:
|
|
@@ -344,7 +344,7 @@ ${u$}`:b;if(B.output_format_flag&&B.output_format)A.push(B.output_format_flag,B.
|
|
|
344
344
|
${_}
|
|
345
345
|
\`\`\`
|
|
346
346
|
|
|
347
|
-
${$}`}catch{return`Review the latest committed changes. ${$}`}}function oj($,I,U,_,u){let g=I.command||$;if($==="codex")return _?[g,"review","--uncommitted"]:[g,"review"];let z=pj(U,_,u),v=I.prompt_flag||"-p",J=[g,v,z];if(I.model_flag&&I.default_model)J.push(I.model_flag,I.default_model);if(I.auto_approve_flag)J.push(I.auto_approve_flag);else{let X={gemini:"--approval-mode=yolo",qwen:"--yolo"}[$];if(X)J.push(X)}if($==="claude")J.push("--output-format","text");return J}async function E7($){let I=hj(),U=$.prompt||"Review for bugs, security vulnerabilities, performance issues, and code quality. Report findings with severity levels.",_="review",u=$.workspace||".",g=I$.resolve(u),{vendor:z,config:v}=s3("review",$.model),J=dj.includes(z)?z:cj;if(J!==z)console.log(n.default.yellow(`[review] "${z}" has no review mode, falling back to ${J}`));let N=v?.vendors?.[J]||{},X=$.uncommitted??!0,G=oj(J,N,U,X,g),q
|
|
347
|
+
${$}`}catch{return`Review the latest committed changes. ${$}`}}function oj($,I,U,_,u){let g=I.command||$;if($==="codex")return _?[g,"review","--uncommitted"]:[g,"review"];let z=pj(U,_,u),v=I.prompt_flag||"-p",J=[g,v,z];if(I.model_flag&&I.default_model)J.push(I.model_flag,I.default_model);if(I.auto_approve_flag)J.push(I.auto_approve_flag);else{let X={gemini:"--approval-mode=yolo",qwen:"--yolo"}[$];if(X)J.push(X)}if($==="claude")J.push("--output-format","text");return J}async function E7($){let I=hj(),U=$.prompt||"Review for bugs, security vulnerabilities, performance issues, and code quality. Report findings with severity levels.",_="review",u=$.workspace||".",g=I$.resolve(u),{vendor:z,config:v}=s3("review",$.model),J=dj.includes(z)?z:cj;if(J!==z)console.log(n.default.yellow(`[review] "${z}" has no review mode, falling back to ${J}`));let N=v?.vendors?.[J]||{},X=$.uncommitted??!0,G=oj(J,N,U,X,g),[q,...T]=G,H=I$.join(W_(),`review-${I}.log`),Q=I$.join(W_(),`review-${I}.pid`);console.log(n.default.dim(` Session: ${I}`)),console.log(n.default.blue("[review] Starting review...")),console.log(n.default.dim(` Vendor: ${J}`)),console.log(n.default.dim(` Command: ${q} ${T.slice(0,2).join(" ")}...`));let Y=y.openSync(H,"w"),R=a3(q,T,{cwd:g,stdio:["ignore",Y,Y],detached:!1});if(!R.pid)console.error(n.default.red("[review] Failed to spawn process")),process.exit(1);y.writeFileSync(Q,R.pid.toString()),console.log(n.default.green(`[review] Started with PID ${R.pid}`));let K=()=>{try{if(y.existsSync(Q))y.unlinkSync(Q);if(y.existsSync(H))y.unlinkSync(H)}catch(O){}},W=()=>{if(R.pid&&Z_(R.pid))process.kill(R.pid);K(),process.exit()};process.on("SIGINT",W),process.on("SIGTERM",W),R.on("exit",(O)=>{if(y.existsSync(H)){let V=y.readFileSync(H,"utf-8").trim();if(V)console.log(""),console.log(V)}console.log(O===0?n.default.green("[review] Done"):n.default.red(`[review] Exited with code ${O}`)),K(),process.exit(O??0)})}e$();var v1=q$(b$(),1);import{execSync as QS}from"node:child_process";import{existsSync as jG,readFileSync as FG}from"node:fs";import{homedir as SG}from"node:os";import{join as wG}from"node:path";import{execSync as PG}from"node:child_process";import NT from"node:https";function cF(){try{let $=PG("pgrep -fl language_server",{encoding:"utf-8",stdio:["pipe","pipe","ignore"]});for(let I of $.split(`
|
|
348
348
|
`))if(I.includes("antigravity")||I.includes("language_server")){let U=I.trim().split(" ")[0];if(!U)continue;let _=Number.parseInt(U,10);if(!Number.isNaN(_))return _}}catch{}return null}function dF($){try{return PG(`ps -p ${$} -ww -o args`,{encoding:"utf-8",stdio:["pipe","pipe","ignore"]}).match(/--csrf_token\s+([a-zA-Z0-9-]+)/)?.[1]??null}catch{}return null}function pF($){try{let I=PG(`lsof -nP -a -iTCP -sTCP:LISTEN -p ${$}`,{encoding:"utf-8",stdio:["pipe","pipe","ignore"]}),U=[];for(let _ of I.split(`
|
|
349
349
|
`).slice(1)){let u=_.match(/:(\d+)\s+\(LISTEN\)/);if(u?.[1])U.push(Number.parseInt(u[1],10))}return U}catch{}return[]}function GT($,I,U,_){return new Promise((u,g)=>{let z=JSON.stringify(_),v=NT.request({hostname:"127.0.0.1",port:$,path:I,method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.byteLength(z),"Connect-Protocol-Version":"1","X-Codeium-Csrf-Token":U},rejectUnauthorized:!1,timeout:5000},(J)=>{let N="";J.on("data",(X)=>{N+=X}),J.on("end",()=>{if(J.statusCode&&J.statusCode>=200&&J.statusCode<300)try{u(JSON.parse(N))}catch{g(Error("Invalid JSON response"))}else g(Error(`Request failed: ${J.statusCode}`))})});v.on("error",g),v.on("timeout",()=>{v.destroy(),g(Error("Request timeout"))}),v.write(z),v.end()})}function oF($,I){return new Promise((U)=>{let _=NT.request({hostname:"127.0.0.1",port:$,path:"/exa.language_server_pb.LanguageServerService/GetUnleashData",method:"POST",headers:{"Content-Type":"application/json","X-Codeium-Csrf-Token":I,"Connect-Protocol-Version":"1"},rejectUnauthorized:!1,timeout:5000},(u)=>{let g="";u.on("data",(z)=>{g+=z}),u.on("end",()=>{if(u.statusCode===200)try{JSON.parse(g),U(!0)}catch{U(!1)}else U(!1)})});_.on("error",()=>U(!1)),_.on("timeout",()=>{_.destroy(),U(!1)}),_.write(JSON.stringify({wrapper_data:{}})),_.end()})}function tF($){if($<=0)return"Ready";let I=Math.ceil($/60000);if(I<60)return`${I}m`;return`${Math.floor(I/60)}h ${I%60}m`}function JT($,I){if(!$||I===void 0)return;let U=Number($),_=Number(I);if(U<=0)return;return{available:_,monthly:U,usedPercent:(U-_)/U*100,remainingPercent:_/U*100}}function aF($){let I=$.userStatus??{},U=I.planStatus?.planInfo??{},_=JT(U.monthlyPromptCredits,I.planStatus?.availablePromptCredits),u=JT(U.monthlyFlowCredits,I.planStatus?.availableFlowCredits),z=(I.cascadeModelConfigData?.clientModelConfigs??[]).filter((J)=>J.quotaInfo!==void 0).map((J)=>{let N=J.quotaInfo.resetTime?new Date(J.quotaInfo.resetTime):null,X=N?N.getTime()-Date.now():0,G=J.quotaInfo.remainingFraction,q=0;if(G!==void 0&&G!==null)q=G*100;else if(J.quotaInfo.allowed)q=100;return{label:J.label||"Unknown",modelId:J.modelOrAlias?.model||"unknown",remainingPercent:q,isExhausted:J.quotaInfo.remainingFraction===0,resetTime:N,timeUntilReset:tF(X),supportsImages:J.supportsImages??!1}}),v=I.cascadeModelConfigData?.defaultOverrideModelConfig?.modelOrAlias?.model??null;return{userName:I.name||"Unknown",email:I.email||"",planName:U.planName||"Free",tierName:I.userTier?.name||"",promptCredits:_,flowCredits:u,models:z,defaultModel:v,timestamp:new Date}}async function XT(){let $=cF();if(!$)return null;let I=dF($);if(!I)return null;let U=pF($);for(let _ of U)if(await oF(_,I))return{pid:$,csrfToken:I,port:_};return null}async function eF($){try{let I=await GT($.port,"/exa.language_server_pb.LanguageServerService/GetUserStatus",$.csrfToken,{metadata:{ideName:"antigravity",extensionName:"antigravity",locale:"en"}});return aF(I)}catch{return null}}async function qT(){let $=await XT();if(!$)return null;try{return await GT($.port,"/exa.language_server_pb.LanguageServerService/GetUserStatus",$.csrfToken,{metadata:{ideName:"antigravity",extensionName:"antigravity",locale:"en"}})}catch{return null}}async function w0(){let $=await XT();if(!$)return null;return eF($)}JI();function EG(){try{let $=QS("claude auth status",{stdio:["pipe","pipe","ignore"],encoding:"utf-8"});return JSON.parse($).loggedIn===!0}catch{return!1}}function CG(){let $=wG(SG(),".gemini","oauth_creds.json");if(!jG($))return!1;try{let I=JSON.parse(FG($,"utf-8"));return!!(I.access_token&&I.refresh_token)}catch{return!1}}function fG(){let $=wG(SG(),".codex","auth.json");if(!jG($))return!1;try{return!!JSON.parse(FG($,"utf-8")).tokens?.access_token}catch{return!1}}function xG(){let $=wG(SG(),".qwen","settings.json");if(!jG($))return!1;try{return!!JSON.parse(FG($,"utf-8")).security?.auth?.selectedType}catch{return!1}}async function WT($=!1){let[I,U]=await Promise.all([y4(),w0().then((G)=>!!G)]),_=CG(),u=EG(),g=fG(),z=xG(),v={github:I,gemini:_,claude:u,codex:g,qwen:z,antigravity:U};if($){console.log(JSON.stringify(v,null,2));return}D$(v1.default.bgMagenta(v1.default.white(" \uD83D\uDD10 oh-my-agent auth status ")));let J=(G)=>G?"✅":"❌",N=(G)=>G?v1.default.green("Authenticated"):v1.default.red("Not Authenticated");k([["GitHub",I],["Gemini CLI",_],["Claude CLI",u],["Codex CLI",g],["Qwen CLI",z],["Antigravity",U]].map(([G,q])=>`${J(q)} ${G.padEnd(12)} ${N(q)}`).join(`
|
|
350
350
|
`),"Authentication Status"),d(`Use ${v1.default.cyan("gemini auth")}, ${v1.default.cyan("claude auth")}, etc. to login.`)}import{spawn as TS}from"node:child_process";import{existsSync as ZT,readFileSync as AT,writeFileSync as HS}from"node:fs";import YS from"node:http";import OS from"node:https";import{homedir as DS}from"node:os";import{join as bT}from"node:path";var VS="http://localhost:12341/mcp",jT=1000,BS=Number.parseInt(process.env.OH_MY_AG_BRIDGE_PROBE_TIMEOUT_MS??"2000",10),MS=Number.parseInt(process.env.OH_MY_AG_BRIDGE_STARTUP_TIMEOUT_MS??"120000",10),Z6={};function FT(){if(Z6.stdinData)process.stdin.off("data",Z6.stdinData);if(Z6.sigint)process.off("SIGINT",Z6.sigint);if(Z6.sigterm)process.off("SIGTERM",Z6.sigterm);Z6={}}function RS(){let $=bT(DS(),".serena","serena_config.yml");if(!ZT($))return;try{let U=AT($,"utf8").match(/^projects:\s*\n((?:\s*-\s*.+\n?)*)/m);if(!U)return;let u=((U[1]??"").match(/^\s*-\s*(.+)$/gm)||[]).map((g)=>g.replace(/^\s*-\s*/,"").trim());for(let g of u){let z=bT(g,".serena","project.yml");if(!ZT(z))continue;let v=AT(z,"utf8");if(!/^languages:/m.test(v)){console.error(`[Bridge] Missing 'languages' key in ${z}, adding default...`);let J=v.search(/\n(?=\w)/);if(J!==-1){let N=`${v.slice(0,J)}
|
|
@@ -490,12 +490,12 @@ Co-Authored-By: First Fluke <our.first.fluke@gmail.com>`,pr:"Generated with [oh-
|
|
|
490
490
|
</html>`;function KO(){let $=Jf();if(!_f($))gf($,{recursive:!0});let I=vf((z,v)=>{if(z.url==="/api/state")v.writeHead(200,{"Content-Type":"application/json"}),v.end(JSON.stringify(x9($)));else v.writeHead(200,{"Content-Type":"text/html"}),v.end(Tf)}),U=new f9.default({server:I}),_=null;function u(z,v){if(_)clearTimeout(_);_=setTimeout(()=>{let J=JSON.stringify({type:"update",event:z,file:v,data:x9($)});U.clients.forEach((N)=>{if(N.readyState===C9.default.OPEN)N.send(J)})},100)}let g=V2($,{persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:200,pollInterval:50}});g.on("all",(z,v)=>u(z,RO(v))),U.on("connection",(z)=>{z.send(JSON.stringify({type:"full",data:x9($)})),z.on("error",()=>z.terminate())}),process.on("SIGINT",()=>{console.log(`
|
|
491
491
|
Shutting down...`),g.close(),U.clients.forEach((z)=>{z.terminate()}),U.close(()=>I.close(()=>process.exit(0))),setTimeout(()=>process.exit(1),3000).unref()}),process.on("SIGTERM",()=>process.emit("SIGINT")),I.listen(MO,()=>{console.log(BI.magenta(`
|
|
492
492
|
\uD83D\uDEF8 Serena Memory Dashboard`)),console.log(BI.white(` http://localhost:${MO}`)),console.log(BI.dim(` Watching: ${$}
|
|
493
|
-
`))})}var LO={name:"oh-my-agent",version:"4.17.
|
|
493
|
+
`))})}var LO={name:"oh-my-agent",version:"4.17.2",description:"Portable multi-agent harness for .agents-based skills and workflows across Antigravity, Claude Code, Codex, OpenCode, and more",type:"module",bin:{"oh-my-ag":"./bin/cli.js",oma:"./bin/cli.js"},files:["bin"],keywords:["oh-my-agent","antigravity",".agents","agent","skills","agent-skills","multi-agent","orchestrator","claude","claude-code","codex","opencode","copilot","cursor","chatgpt","pm","frontend","backend","mobile","qa","debug","terraform","database","workflow","bug-fixing","gemini"],author:"our.first.fluke <our.first.fluke@gmail.com>",contributors:["gracefullight <gracefullight.dev@gmail.com>","gahyun-git <go4it.gh@gmail.com>"],license:"MIT",funding:[{type:"github",url:"https://github.com/sponsors/first-fluke"},{type:"buymeacoffee",url:"https://buymeacoffee.com/firstfluke"}],scripts:{"sync:readme":"node ./scripts/sync-readme.mjs",build:"bun run sync:readme && bun build cli.ts --outfile bin/cli.js --target node --minify",dev:"bun run cli.ts",lint:"biome check --write --unsafe .",test:"vitest run",prepublishOnly:"bun run build"},dependencies:{"@clack/prompts":"^1.1.0",chokidar:"^5.0.0",commander:"^14.0.3","p-map":"^7.0.4",picocolors:"^1.1.1",ws:"^8.18.0",yaml:"^2.8.2",zod:"^4.3.6"},devDependencies:{"@biomejs/biome":"2.4.5","@types/bun":"^1.3.10","@types/ws":"^8.18.1",vitest:"^4.0.18"},peerDependencies:{typescript:"^6"},repository:{type:"git",url:"https://github.com/first-fluke/oh-my-agent"},antigravity:{skillsPath:".agents/skills",skills:["oma-brainstorm","oma-coordination","oma-pm","oma-frontend","oma-backend","oma-db","oma-mobile","oma-qa","oma-debug","oma-orchestrator","oma-dev-workflow","oma-tf-infra","oma-commit"]}};import{existsSync as Yf,mkdirSync as Of,readdirSync as o0,readFileSync as Df,statSync as n9}from"node:fs";import{basename as Vf,join as A4}from"node:path";var i$=q$(b$(),1),Bf="●",Mf="✓",Rf="✗",Kf="○",Lf="◌";function Pf(){if(process.env.MEMORIES_DIR)return process.env.MEMORIES_DIR;let $=process.argv[3];if($)return A4($,".serena","memories");return A4(process.cwd(),".serena","memories")}function t0($){try{return Df($,"utf-8")}catch{return""}}function Wf($){try{let I=o0($);if(I.includes("orchestrator-session.md"))return A4($,"orchestrator-session.md");let U=I.filter((_)=>/^session-.*\.md$/.test(_)).map((_)=>({name:_,mtime:n9(A4($,_)).mtimeMs})).sort((_,u)=>u.mtime-_.mtime);if(U.length>0&&U[0])return A4($,U[0].name)}catch{}return null}function Zf($){let I=Wf($);if(!I)return{id:"N/A",status:"UNKNOWN"};let U=t0(I);if(!U)return{id:"N/A",status:"UNKNOWN"};let _=(U.match(/session-id:\s*(.+)/i)||[])[1]||(U.match(/# Session:\s*(.+)/i)||[])[1]||U.match(/(session-\d{8}-\d{6})/)?.[1]||Vf(I,".md"),u="UNKNOWN";if(/IN PROGRESS|RUNNING|## Active|\[IN PROGRESS\]/i.test(U))u="RUNNING";else if(/COMPLETED|DONE|## Completed|\[COMPLETED\]/i.test(U))u="COMPLETED";else if(/FAILED|ERROR|## Failed|\[FAILED\]/i.test(U))u="FAILED";else if(/Step \d+:.*\[/i.test(U))u="RUNNING";return{id:(_||"N/A").trim(),status:u}}function Af($){let I=t0(A4($,"task-board.md"));if(!I)return[];let U=[],_=I.split(`
|
|
494
494
|
`);for(let u of _){if(!u.startsWith("|")||/^\|\s*-+/.test(u))continue;let g=u.split("|").map((N)=>N.trim()).filter(Boolean),z=g[0];if(g.length<2||!z||/^agent$/i.test(z))continue;let v=g[1],J=g[2];U.push({agent:z,status:v||"pending",task:J||""})}return U}function i9($,I){try{let U=o0($).filter((g)=>g.startsWith(`progress-${I}`)&&g.endsWith(".md")).sort().reverse();if(U.length===0||!U[0])return null;let u=t0(A4($,U[0])).match(/turn[:\s]*(\d+)/i);return u?.[1]?parseInt(u[1],10):null}catch{return null}}function bf($){try{let I=o0($).filter((_)=>_.endsWith(".md")&&_!==".gitkeep").map((_)=>({name:_,mtime:n9(A4($,_)).mtimeMs})).sort((_,u)=>u.mtime-_.mtime).slice(0,5),U=[];for(let _ of I){let u=_.name.replace(/^(progress|result|session|debug|task)-?/,"").replace(/[-_]agent/,"").replace(/[-_]completion/,"").replace(/\.md$/,"").replace(/[-_]/g," ").trim()||_.name.replace(/\.md$/,""),z=t0(A4($,_.name)).split(`
|
|
495
495
|
`).map((J)=>J.trim()).filter((J)=>J&&!J.startsWith("---")&&J.length>3),v="";for(let J=z.length-1;J>=0;J--){let N=z[J];if(!N)continue;if(/^\*\*|^#+|^-|^\d+\.|Status|Result|Action|Step/i.test(N)){if(v=N.replace(/^[#*\-\d.]+\s*/,"").replace(/\*\*/g,"").trim(),v.length>5)break}}if(v.length>52)v=`${v.substring(0,49)}...`;if(v)U.push({agent:u,message:v})}return U}catch{return[]}}function jf($){let I=[],U=new Set;try{let _=o0($).filter((u)=>u.endsWith(".md")&&u!==".gitkeep").map((u)=>({name:u,mtime:n9(A4($,u)).mtimeMs})).sort((u,g)=>g.mtime-u.mtime);for(let u of _){let g=t0(A4($,u.name)),z=g.match(/\*\*Agent\*\*:\s*(.+)/i)||g.match(/Agent:\s*(.+)/i)||g.match(/^#+\s*(.+?)\s*Agent/im),v=null;if(z?.[1])v=z[1].trim();else if(/_agent|agent_|-agent/i.test(u.name))v=u.name.replace(/\.md$/,"").replace(/[-_]completion|[-_]progress|[-_]result/gi,"").replace(/[-_]/g," ").trim();if(v&&!U.has(v.toLowerCase())){U.add(v.toLowerCase());let J="unknown";if(/\[COMPLETED\]|## Completed|## Results/i.test(g))J="completed";else if(/\[IN PROGRESS\]|## Progress|IN PROGRESS/i.test(g))J="running";else if(/\[FAILED\]|## Failed|ERROR/i.test(g))J="failed";let N=g.match(/## Task\s*\n+(.+)/i)||g.match(/\*\*Task\*\*:\s*(.+)/i),X=N?.[1]?N[1].trim().substring(0,20):"";I.push({agent:v,status:J,task:X,turn:i9($,v)})}}}catch{}return I}function Ff($){let I=$.toLowerCase();if(["running","active","in_progress","in-progress"].includes(I))return`${i$.default.green(Bf)} running`;else if(["completed","done","finished"].includes(I))return`${i$.default.cyan(Mf)} completed`;else if(["failed","error"].includes(I))return`${i$.default.red(Rf)} failed`;else if(["blocked","waiting"].includes(I))return`${i$.default.yellow(Kf)} blocked`;return`${i$.default.dim(Lf)} pending`}function PO($){console.clear();let I=Zf($),_=Af($).map((Q)=>({...Q,turn:i9($,Q.agent)}));if(_.length===0)_=jf($);if(_.length===0)try{let Q=o0($).filter((Y)=>Y.startsWith("progress-")&&Y.endsWith(".md"));for(let Y of Q){let R=Y.replace(/^progress-/,"").replace(/\.md$/,"");_.push({agent:R,status:"running",task:"",turn:i9($,R)})}}catch{}let u=56,g="═".repeat(u),z=(Q)=>" ".repeat(Math.max(0,Q)),v=(Q)=>i$.default.magenta(Q),J=(Q)=>i$.default.bold(Q),N=(Q)=>i$.default.dim(Q),X=i$.default.yellow;if(I.status==="RUNNING")X=i$.default.green;else if(I.status==="COMPLETED")X=i$.default.cyan;else if(I.status==="FAILED")X=i$.default.red;console.log(`${v(`╔${g}╗`)}`),console.log(`${v("║")} ${J(v("Serena Memory Dashboard"))}${z(u-25)}${v("║")}`);let G=`Session: ${J(I.id.padEnd(20))} [${X(I.status)}]`;if(console.log(`${v("║")} ${G}${z(u-4-G.length-9)}${v("║")}`),console.log(`${v(`╠${g}╣`)}`),console.log(`${v("║")} ${J(`${"Agent".padEnd(12)} ${"Status".padEnd(12)} ${"Turn".padEnd(6)} ${"Task".padEnd(20)}`)} ${v("║")}`),console.log(`${v("║")} ${N(`${"──────────".padEnd(12)} ${"──────────".padEnd(12)} ${"────".padEnd(6)} ${"──────────────────".padEnd(20)}`)} ${v("║")}`),_.length===0)console.log(`${v("║")} ${N(`No agents detected yet${z(32)}`)}${v("║")}`);else for(let Q of _){let Y=Ff(Q.status),R=Q.turn!=null?String(Q.turn):"-",K=Q.task.substring(0,20);console.log(`${v("║")} ${Q.agent.padEnd(12)} ${Y.padEnd(22)} ${R.padEnd(6)} ${K.padEnd(20)}${v("║")}`)}console.log(`${v(`╠${g}╣`)}`),console.log(`${v("║")} ${J("Latest Activity:")}${z(u-18)}${v("║")}`);let q=bf($);if(q.length===0)console.log(`${v("║")} ${N(`No activity yet${z(38)}`)}${v("║")}`);else for(let Q of q){let Y=`[${Q.agent}] ${Q.message}`;console.log(`${v("║")} ${N(Y.substring(0,52).padEnd(52))}${v("║")}`)}console.log(`${v(`╠${g}╣`)}`);let H=`Updated: ${new Date().toLocaleString("en-US",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})} | Ctrl+C to exit`;console.log(`${v("║")} ${N(H)}${z(u-4-H.length)}${v("║")}`),console.log(`${v(`╚${g}╝`)}`)}async function WO(){let $=Pf();if(!Yf($))Of($,{recursive:!0}),console.log(i$.default.yellow(`Created ${$} — waiting for memory files...`));console.log(i$.default.magenta(`
|
|
496
496
|
\uD83D\uDEF8 Serena Terminal Dashboard`)),console.log(i$.default.dim(` Watching: ${$}
|
|
497
497
|
`)),PO($);let I=V2($,{persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:200,pollInterval:50}});return I.on("all",()=>PO($)),new Promise((U)=>{process.on("SIGINT",()=>{console.log(`
|
|
498
|
-
`),I.close(),U(),process.exit(0)}),process.on("SIGTERM",()=>process.emit("SIGINT"))})}var jO=LO.version,FO="OH_MY_AG_OUTPUT_FORMAT",a0=["text","json"],ZO=["gemini","claude","codex","qwen"],AO=["backend","frontend","mobile","qa","debug","pm"];function g6($,I="Output as JSON"){return $.option("--json",I).option("--output <format>","Output format (text/json)",(U)=>{let _=U.trim().toLowerCase();if(!a0.includes(_))throw Error(`Invalid output format: ${U}. Expected one of ${a0.join(", ")}`);return _})}function Sf($){if($?.json)return"json";let I=$?.output?.trim().toLowerCase();if(I&&a0.includes(I))return I;if(process.env[FO]?.trim().toLowerCase()==="json")return"json";return"text"}function r4($){return Sf($)==="json"}function SO($){let I=$.at(-1);return I instanceof r2?I:null}function wf($){let I=SO($);if(I)return I.opts();let U=$.at(-1);return U&&typeof U==="object"?U:{}}function Ef($){if($ instanceof Error)return $.message;return String($)}function C6($){throw Error($)}function l9($,I){for(let U of $){let _=U.charCodeAt(0);if(_>=0&&_<=31||_===127)C6(`${I} must not contain control characters`)}}function Cf($,I){if(l9($,I),/[?#%]/.test($))C6(`${I} must not contain ?, #, or %`);if($.includes(".."))C6(`${I} must not contain '..'`)}function ff($,I){l9($,I);try{new URL($)}catch{C6(`${I} must be a valid absolute URL`)}}function r9($,I,U="text"){if(typeof $==="string"){if(U==="identifier"){Cf($,I);return}if(U==="url"){ff($,I);return}l9($,I);return}if(Array.isArray($))for(let[_,u]of $.entries())r9(u,`${I}[${_}]`,U)}function bO($){let I=$.toLowerCase();if(I==="url"||I.endsWith("url"))return"url";if(I.includes("id")||I.includes("type")||I.includes("vendor")||I.includes("session"))return"identifier";return"text"}function xf($){let I=$.vendor;if(typeof I==="string"&&!ZO.includes(I))C6(`vendor must be one of ${ZO.join(", ")}`);let U=$.output;if(typeof U==="string"&&!a0.includes(U))C6(`output must be one of ${a0.join(", ")}`)}function kf($){let I=$.processedArgs??$.args??[];($.registeredArguments??[]).forEach((u,g)=>{let z=u.name?.()||String(g),v=I[g];if(r9(v,z,bO(z)),z==="agent-type"&&typeof v==="string"&&!AO.includes(v))C6(`agent-type must be one of ${AO.join(", ")}`)});let _=$.opts();xf(_);for(let[u,g]of Object.entries(_))r9(g,u,bO(u))}function yf($){return($.registeredArguments??[]).map((I)=>({name:I.name?.()||"",required:!!I.required,variadic:!!I.variadic}))}function nf($){return $.options.map((I)=>({flags:I.flags,long:I.long||void 0,short:I.short||void 0,description:I.description||"",required:!!I.required||!!I.mandatory,optional:!!I.optional,defaultValue:I.defaultValue}))}function wO($){let I=[],U=$;while(U?.parent)I.unshift(U.name()),U=U.parent;return I.join(" ")}function rf($){return $.options.some((I)=>I.long==="--json"||I.long==="--output")}function lf($){return $.options.some((I)=>I.long==="--dry-run")}function EO($){return{name:$.name(),path:wO($),summary:$.summary()||void 0,description:$.description(),arguments:yf($),options:nf($),supportsJsonOutput:rf($),supportsDryRun:lf($),subcommands:$.commands.map((I)=>EO(I))}}function mf($,I){if(!I)return $;let U=I.trim();if(!U)return $;let _=[...$.commands];while(_.length>0){let u=_.shift();if(!u)continue;if(u.name()===U||wO(u)===U)return u;_.push(...u.commands)}return null}function hf($,I){let U=mf($,I);if(!U)C6(`Unknown command: ${I}`);let _={name:$.name(),version:$.version(),description:$.description(),env:{[FO]:"Set to json to force machine-readable output on commands that support it."},command:EO(U)};console.log(JSON.stringify(_,null,2))}function B$($,I={}){return async(...U)=>{let _=SO(U),u=wf(U);try{if(_)kf(_);await $(...U)}catch(g){let z=Ef(g);if(I.supportsJsonOutput&&r4(u))console.log(JSON.stringify({error:z},null,2));else console.error(z);process.exitCode=1}}}var X$=new r2;X$.name("oh-my-
|
|
498
|
+
`),I.close(),U(),process.exit(0)}),process.on("SIGTERM",()=>process.emit("SIGINT"))})}var jO=LO.version,FO="OH_MY_AG_OUTPUT_FORMAT",a0=["text","json"],ZO=["gemini","claude","codex","qwen"],AO=["backend","frontend","mobile","qa","debug","pm"];function g6($,I="Output as JSON"){return $.option("--json",I).option("--output <format>","Output format (text/json)",(U)=>{let _=U.trim().toLowerCase();if(!a0.includes(_))throw Error(`Invalid output format: ${U}. Expected one of ${a0.join(", ")}`);return _})}function Sf($){if($?.json)return"json";let I=$?.output?.trim().toLowerCase();if(I&&a0.includes(I))return I;if(process.env[FO]?.trim().toLowerCase()==="json")return"json";return"text"}function r4($){return Sf($)==="json"}function SO($){let I=$.at(-1);return I instanceof r2?I:null}function wf($){let I=SO($);if(I)return I.opts();let U=$.at(-1);return U&&typeof U==="object"?U:{}}function Ef($){if($ instanceof Error)return $.message;return String($)}function C6($){throw Error($)}function l9($,I){for(let U of $){let _=U.charCodeAt(0);if(_>=0&&_<=31||_===127)C6(`${I} must not contain control characters`)}}function Cf($,I){if(l9($,I),/[?#%]/.test($))C6(`${I} must not contain ?, #, or %`);if($.includes(".."))C6(`${I} must not contain '..'`)}function ff($,I){l9($,I);try{new URL($)}catch{C6(`${I} must be a valid absolute URL`)}}function r9($,I,U="text"){if(typeof $==="string"){if(U==="identifier"){Cf($,I);return}if(U==="url"){ff($,I);return}l9($,I);return}if(Array.isArray($))for(let[_,u]of $.entries())r9(u,`${I}[${_}]`,U)}function bO($){let I=$.toLowerCase();if(I==="url"||I.endsWith("url"))return"url";if(I.includes("id")||I.includes("type")||I.includes("vendor")||I.includes("session"))return"identifier";return"text"}function xf($){let I=$.vendor;if(typeof I==="string"&&!ZO.includes(I))C6(`vendor must be one of ${ZO.join(", ")}`);let U=$.output;if(typeof U==="string"&&!a0.includes(U))C6(`output must be one of ${a0.join(", ")}`)}function kf($){let I=$.processedArgs??$.args??[];($.registeredArguments??[]).forEach((u,g)=>{let z=u.name?.()||String(g),v=I[g];if(r9(v,z,bO(z)),z==="agent-type"&&typeof v==="string"&&!AO.includes(v))C6(`agent-type must be one of ${AO.join(", ")}`)});let _=$.opts();xf(_);for(let[u,g]of Object.entries(_))r9(g,u,bO(u))}function yf($){return($.registeredArguments??[]).map((I)=>({name:I.name?.()||"",required:!!I.required,variadic:!!I.variadic}))}function nf($){return $.options.map((I)=>({flags:I.flags,long:I.long||void 0,short:I.short||void 0,description:I.description||"",required:!!I.required||!!I.mandatory,optional:!!I.optional,defaultValue:I.defaultValue}))}function wO($){let I=[],U=$;while(U?.parent)I.unshift(U.name()),U=U.parent;return I.join(" ")}function rf($){return $.options.some((I)=>I.long==="--json"||I.long==="--output")}function lf($){return $.options.some((I)=>I.long==="--dry-run")}function EO($){return{name:$.name(),path:wO($),summary:$.summary()||void 0,description:$.description(),arguments:yf($),options:nf($),supportsJsonOutput:rf($),supportsDryRun:lf($),subcommands:$.commands.map((I)=>EO(I))}}function mf($,I){if(!I)return $;let U=I.trim();if(!U)return $;let _=[...$.commands];while(_.length>0){let u=_.shift();if(!u)continue;if(u.name()===U||wO(u)===U)return u;_.push(...u.commands)}return null}function hf($,I){let U=mf($,I);if(!U)C6(`Unknown command: ${I}`);let _={name:$.name(),version:$.version(),description:$.description(),env:{[FO]:"Set to json to force machine-readable output on commands that support it."},command:EO(U)};console.log(JSON.stringify(_,null,2))}function B$($,I={}){return async(...U)=>{let _=SO(U),u=wf(U);try{if(_)kf(_);await $(...U)}catch(g){let z=Ef(g);if(I.supportsJsonOutput&&r4(u))console.log(JSON.stringify({error:z},null,2));else console.error(z);process.exitCode=1}}}var X$=new r2;X$.name("oh-my-agent").description("Multi-Agent Orchestrator for AI IDEs").version(jO).showSuggestionAfterError().showHelpAfterError().addHelpText("after",`
|
|
499
499
|
Aliases:
|
|
500
|
-
oma Alias for oh-my-
|
|
500
|
+
oma Alias for oh-my-agent after global installation.
|
|
501
501
|
`).action(B$(async()=>{await z2()}));X$.command("install").description("Install oh-my-agent skills and configurations").action(B$(async()=>{await z2()}));X$.command("describe [command-path]").description("Describe CLI commands as JSON for runtime introspection").action(B$(($)=>{hf(X$,$)},{supportsJsonOutput:!0}));X$.command("dashboard").description("Start terminal dashboard (real-time agent monitoring)").action(B$(async()=>{await WO()}));X$.command("dashboard:web").description("Start web dashboard on http://localhost:9847").action(B$(()=>{KO()}));g6(X$.command("auth:status").description("Check authentication status of all supported CLIs")).action(B$(async($)=>{await WT(r4($))},{supportsJsonOutput:!0}));g6(X$.command("usage:anti").description("Show model usage quotas (connects to local Antigravity IDE)").option("--raw","Dump raw RPC response")).action(B$(async($)=>{await yH(r4($),$.raw)},{supportsJsonOutput:!0}));X$.command("update").description("Update skills to latest version from registry").option("-f, --force","Overwrite user-customized config files").option("--ci","Run in non-interactive CI mode (skip prompts)").action(B$(async($)=>{await EH($.force??!1,$.ci??!1)}));g6(X$.command("doctor").description("Check CLI installations, MCP configs, and skill status"),"Output as JSON for CI/CD").action(B$(async($)=>{await fT(r4($))},{supportsJsonOutput:!0}));g6(X$.command("stats").description("View productivity metrics").option("--reset","Reset metrics data")).action(B$(async($)=>{await WH(r4($),$.reset)},{supportsJsonOutput:!0}));g6(X$.command("retro [window]").description("Engineering retrospective with metrics & trends").option("--interactive","Interactive mode (manual entry)").option("--compare","Compare current window vs prior same-length window")).action(B$(async($,I)=>{await MH($,{json:r4(I),compare:I.compare,interactive:I.interactive})},{supportsJsonOutput:!0}));g6(X$.command("cleanup").description("Clean up orphaned subagent processes and temp files").option("--dry-run","Show what would be cleaned without making changes").option("-y, --yes","Skip confirmation prompts and clean everything")).action(B$(async($)=>{await ET($.dryRun,r4($),$.yes)},{supportsJsonOutput:!0}));X$.command("bridge [url]").description("Bridge MCP stdio to Streamable HTTP (for Serena)").action(B$(async($)=>{await ST($)}));X$.command("agent:spawn <agent-id> <prompt> <session-id>").description("Spawn a subagent (prompt can be inline text or a file path)").option("-m, --model <vendor>","CLI vendor override (gemini/claude/codex/qwen)").option("-w, --workspace <path>","Working directory for the agent (auto-detected if omitted)").action(B$(async($,I,U,_)=>{await F7($,I,U,_.workspace||".",_.model)}));X$.command("agent:status <session-id> [agent-ids...]").description("Check status of subagents").option("-r, --root <path>","Root path for memory checks",process.cwd()).action(B$(async($,I,U)=>{await S7($,I,U.root)}));X$.command("agent:parallel [tasks...]").description("Run multiple sub-agents in parallel").option("-m, --model <vendor>","CLI vendor override (gemini/claude/codex/qwen)").option("-i, --inline","Inline mode: specify tasks as agent:task arguments").option("--no-wait","Don't wait for completion (background mode)").action(B$(async($,I)=>{await w7($,{vendor:I.model,inline:I.inline,noWait:!I.wait})}));X$.command("agent:review").description("Run code review using external CLI (codex/claude/gemini)").option("-m, --model <vendor>","CLI vendor (codex/claude/gemini)").option("-p, --prompt <prompt>","Custom review prompt").option("-w, --workspace <path>","Working directory (default: current)").option("--no-uncommitted","Review committed changes only").action(B$(async($)=>{await E7({prompt:$.prompt,model:$.model,workspace:$.workspace,uncommitted:$.uncommitted})}));g6(X$.command("memory:init").description("Initialize Serena memory schema in .serena/memories").option("--force","Overwrite empty or existing schema files")).action(B$(async($)=>{await hT(r4($),$.force)},{supportsJsonOutput:!0}));g6(X$.command("verify <agent-type>").description("Verify subagent output (backend/frontend/mobile/qa/debug/pm)").option("-w, --workspace <path>","Workspace path",process.cwd())).action(B$(async($,I)=>{await lH($,I.workspace,r4(I))},{supportsJsonOutput:!0}));X$.command("star").description("Star oh-my-agent on GitHub").action(B$(async()=>{await KH()}));g6(X$.command("visualize").alias("viz").description("Visualize project structure as a dependency graph")).action(B$(async($)=>{await oH({json:r4($)})},{supportsJsonOutput:!0}));X$.command("help").description("Show help information").action(B$(()=>{X$.help()}));X$.command("version").description("Show version number").action(B$(()=>{console.log(jO)}));X$.parse();
|
package/package.json
CHANGED